AndroidManifest.xml 9.9 KB

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