AndroidManifest.xml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools">
  4. <!-- Internet -->
  5. <uses-permission android:name="android.permission.INTERNET" />
  6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  7. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  8. <!-- Storage -->
  9. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  10. <!-- For background jobs -->
  11. <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  12. <uses-permission android:name="android.permission.WAKE_LOCK" />
  13. <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
  14. <!-- For managing extensions -->
  15. <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  16. <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
  17. <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" />
  18. <!-- To view extension packages in API 30+ -->
  19. <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
  20. <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
  21. <uses-permission android:name="android.permission.READ_APP_SPECIFIC_LOCALES" />
  22. <!-- Remove permission from Firebase dependency -->
  23. <uses-permission android:name="com.google.android.gms.permission.AD_ID"
  24. tools:node="remove" />
  25. <application
  26. android:name=".App"
  27. android:allowBackup="false"
  28. android:enableOnBackInvokedCallback="true"
  29. android:hardwareAccelerated="true"
  30. android:icon="@mipmap/ic_launcher"
  31. android:label="@string/app_name"
  32. android:largeHeap="true"
  33. android:localeConfig="@xml/locales_config"
  34. android:networkSecurityConfig="@xml/network_security_config"
  35. android:requestLegacyExternalStorage="true"
  36. android:roundIcon="@mipmap/ic_launcher_round"
  37. android:supportsRtl="true"
  38. android:theme="@style/Theme.Tachiyomi">
  39. <!-- enable profiling by macrobenchmark -->
  40. <profileable
  41. android:shell="true"
  42. tools:targetApi="q" />
  43. <activity
  44. android:name=".ui.main.MainActivity"
  45. android:launchMode="singleTop"
  46. android:theme="@style/Theme.Tachiyomi.SplashScreen"
  47. android:exported="true">
  48. <intent-filter>
  49. <action android:name="android.intent.action.MAIN" />
  50. <category android:name="android.intent.category.LAUNCHER" />
  51. </intent-filter>
  52. <!--suppress AndroidDomInspection -->
  53. <meta-data
  54. android:name="android.app.shortcuts"
  55. android:resource="@xml/shortcuts" />
  56. </activity>
  57. <activity
  58. android:process=":error_handler"
  59. android:name=".crash.CrashActivity"
  60. android:exported="false" />
  61. <activity
  62. android:name=".ui.main.DeepLinkActivity"
  63. android:launchMode="singleTask"
  64. android:theme="@android:style/Theme.NoDisplay"
  65. android:label="@string/action_global_search"
  66. android:exported="true">
  67. <intent-filter>
  68. <action android:name="android.intent.action.SEARCH" />
  69. <action android:name="com.google.android.gms.actions.SEARCH_ACTION" />
  70. <category android:name="android.intent.category.DEFAULT" />
  71. </intent-filter>
  72. <intent-filter>
  73. <action android:name="eu.kanade.tachiyomi.SEARCH" />
  74. <category android:name="android.intent.category.DEFAULT" />
  75. </intent-filter>
  76. <intent-filter>
  77. <action android:name="android.intent.action.SEND" />
  78. <category android:name="android.intent.category.DEFAULT" />
  79. <data android:mimeType="text/plain" />
  80. </intent-filter>
  81. <meta-data
  82. android:name="android.app.searchable"
  83. android:resource="@xml/searchable" />
  84. </activity>
  85. <activity
  86. android:name=".ui.reader.ReaderActivity"
  87. android:launchMode="singleTask"
  88. android:exported="false">
  89. <intent-filter>
  90. <action android:name="com.samsung.android.support.REMOTE_ACTION" />
  91. </intent-filter>
  92. <meta-data android:name="com.samsung.android.support.REMOTE_ACTION"
  93. android:resource="@xml/s_pen_actions"/>
  94. </activity>
  95. <activity
  96. android:name=".ui.security.UnlockActivity"
  97. android:theme="@style/Theme.Tachiyomi"
  98. android:exported="false" />
  99. <activity
  100. android:name=".ui.webview.WebViewActivity"
  101. android:configChanges="uiMode|orientation|screenSize"
  102. android:exported="false" />
  103. <activity
  104. android:name=".extension.util.ExtensionInstallActivity"
  105. android:theme="@android:style/Theme.Translucent.NoTitleBar"
  106. android:exported="false" />
  107. <activity
  108. android:name=".ui.setting.track.AnilistLoginActivity"
  109. android:label="Anilist"
  110. android:exported="true">
  111. <intent-filter>
  112. <action android:name="android.intent.action.VIEW" />
  113. <category android:name="android.intent.category.DEFAULT" />
  114. <category android:name="android.intent.category.BROWSABLE" />
  115. <data
  116. android:host="anilist-auth"
  117. android:scheme="tachiyomi" />
  118. </intent-filter>
  119. </activity>
  120. <activity
  121. android:name=".ui.setting.track.MyAnimeListLoginActivity"
  122. android:label="MyAnimeList"
  123. android:exported="true">
  124. <intent-filter>
  125. <action android:name="android.intent.action.VIEW" />
  126. <category android:name="android.intent.category.DEFAULT" />
  127. <category android:name="android.intent.category.BROWSABLE" />
  128. <data
  129. android:host="myanimelist-auth"
  130. android:scheme="tachiyomi" />
  131. </intent-filter>
  132. </activity>
  133. <activity
  134. android:name=".ui.setting.track.ShikimoriLoginActivity"
  135. android:label="Shikimori"
  136. android:exported="true">
  137. <intent-filter>
  138. <action android:name="android.intent.action.VIEW" />
  139. <category android:name="android.intent.category.DEFAULT" />
  140. <category android:name="android.intent.category.BROWSABLE" />
  141. <data
  142. android:host="shikimori-auth"
  143. android:scheme="tachiyomi" />
  144. </intent-filter>
  145. </activity>
  146. <activity
  147. android:name=".ui.setting.track.BangumiLoginActivity"
  148. android:label="Bangumi"
  149. android:exported="true">
  150. <intent-filter>
  151. <action android:name="android.intent.action.VIEW" />
  152. <category android:name="android.intent.category.DEFAULT" />
  153. <category android:name="android.intent.category.BROWSABLE" />
  154. <data
  155. android:host="bangumi-auth"
  156. android:scheme="tachiyomi" />
  157. </intent-filter>
  158. </activity>
  159. <receiver
  160. android:name=".data.notification.NotificationReceiver"
  161. android:exported="false" />
  162. <receiver
  163. android:name="tachiyomi.presentation.widget.UpdatesGridGlanceReceiver"
  164. android:enabled="@bool/glance_appwidget_available"
  165. android:exported="false"
  166. android:label="@string/label_recent_updates">
  167. <intent-filter>
  168. <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
  169. </intent-filter>
  170. <meta-data
  171. android:name="android.appwidget.provider"
  172. android:resource="@xml/updates_grid_glance_widget_info" />
  173. </receiver>
  174. <service
  175. android:name=".data.download.DownloadService"
  176. android:exported="false" />
  177. <service
  178. android:name=".data.updater.AppUpdateService"
  179. android:exported="false" />
  180. <service android:name=".extension.util.ExtensionInstallService"
  181. android:exported="false" />
  182. <service
  183. android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
  184. android:enabled="false"
  185. android:exported="false">
  186. <meta-data
  187. android:name="autoStoreLocales"
  188. android:value="true" />
  189. </service>
  190. <provider
  191. android:name="androidx.core.content.FileProvider"
  192. android:authorities="${applicationId}.provider"
  193. android:exported="false"
  194. android:grantUriPermissions="true">
  195. <meta-data
  196. android:name="android.support.FILE_PROVIDER_PATHS"
  197. android:resource="@xml/provider_paths" />
  198. </provider>
  199. <provider
  200. android:name="rikka.shizuku.ShizukuProvider"
  201. android:authorities="${applicationId}.shizuku"
  202. android:multiprocess="false"
  203. android:enabled="true"
  204. android:exported="true"
  205. android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" />
  206. <meta-data
  207. android:name="android.webkit.WebView.EnableSafeBrowsing"
  208. android:value="false" />
  209. <meta-data
  210. android:name="android.webkit.WebView.MetricsOptOut"
  211. android:value="true" />
  212. <!-- Disable advertising ID collection for Firebase -->
  213. <meta-data
  214. android:name="google_analytics_adid_collection_enabled"
  215. android:value="false" />
  216. </application>
  217. </manifest>