<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- Internet --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- Storage --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- For background jobs --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <!-- For managing extensions --> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" /> <!-- To view extension packages in API 30+ --> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.READ_APP_SPECIFIC_LOCALES" /> <!-- Remove permission from Firebase dependency --> <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" /> <application android:name=".App" android:allowBackup="false" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:localeConfig="@xml/locales_config" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/Theme.Tachiyomi" android:supportsRtl="true" android:networkSecurityConfig="@xml/network_security_config"> <!-- enable profiling by macrobenchmark --> <profileable android:shell="true" tools:targetApi="q" /> <activity android:name=".ui.main.MainActivity" android:launchMode="singleTop" android:theme="@style/Theme.Tachiyomi.SplashScreen" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!--suppress AndroidDomInspection --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity> <activity android:process=":error_handler" android:name=".crash.CrashActivity" android:exported="false" /> <activity android:name=".ui.main.DeepLinkActivity" android:launchMode="singleTask" android:theme="@android:style/Theme.NoDisplay" android:label="@string/action_global_search" android:exported="true"> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <action android:name="com.google.android.gms.actions.SEARCH_ACTION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="eu.kanade.tachiyomi.SEARCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity> <activity android:name=".ui.reader.ReaderActivity" android:launchMode="singleTask" android:exported="false"> <intent-filter> <action android:name="com.samsung.android.support.REMOTE_ACTION" /> </intent-filter> <meta-data android:name="com.samsung.android.support.REMOTE_ACTION" android:resource="@xml/s_pen_actions"/> </activity> <activity android:name=".ui.security.UnlockActivity" android:theme="@style/Theme.Tachiyomi" android:exported="false" /> <activity android:name=".ui.webview.WebViewActivity" android:configChanges="uiMode|orientation|screenSize" android:exported="false" /> <activity android:name=".extension.util.ExtensionInstallActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="false" /> <activity android:name=".ui.setting.track.AnilistLoginActivity" android:label="Anilist" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="anilist-auth" android:scheme="tachiyomi" /> </intent-filter> </activity> <activity android:name=".ui.setting.track.MyAnimeListLoginActivity" android:label="MyAnimeList" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="myanimelist-auth" android:scheme="tachiyomi" /> </intent-filter> </activity> <activity android:name=".ui.setting.track.ShikimoriLoginActivity" android:label="Shikimori" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="shikimori-auth" android:scheme="tachiyomi" /> </intent-filter> </activity> <activity android:name=".ui.setting.track.BangumiLoginActivity" android:label="Bangumi" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="bangumi-auth" android:scheme="tachiyomi" /> </intent-filter> </activity> <receiver android:name=".data.notification.NotificationReceiver" android:exported="false" /> <receiver android:name=".glance.UpdatesGridGlanceReceiver" android:enabled="@bool/glance_appwidget_available" android:exported="false" android:label="@string/label_recent_updates"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/updates_grid_glance_widget_info" /> </receiver> <service android:name=".data.library.LibraryUpdateService" android:exported="false" /> <service android:name=".data.download.DownloadService" android:exported="false" /> <service android:name=".data.updater.AppUpdateService" android:exported="false" /> <service android:name=".data.backup.BackupRestoreService" android:exported="false" /> <service android:name=".extension.util.ExtensionInstallService" android:exported="false" /> <service android:name="androidx.appcompat.app.AppLocalesMetadataHolderService" android:enabled="false" android:exported="false"> <meta-data android:name="autoStoreLocales" android:value="true" /> </service> <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider> <provider android:name="rikka.shizuku.ShizukuProvider" android:authorities="${applicationId}.shizuku" android:multiprocess="false" android:enabled="true" android:exported="true" android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" /> <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="false" /> <meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" /> <!-- Disable advertising ID collection for Firebase --> <meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" /> </application> </manifest>