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">
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.READ_EXTERNAL_STORAGE" />
9 android:name="android.permission.WRITE_EXTERNAL_STORAGE"
10 android:maxSdkVersion="28"
11 tools:ignore="ScopedStorage"
13 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
14 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
15 <uses-permission android:name="android.permission.CAMERA" />
16 <uses-permission android:name="android.permission.RECORD_AUDIO" />
17 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
18 <uses-permission android:name="android.permission.VIBRATE" />
19 <uses-permission android:name="android.permission.USE_BIOMETRIC" />
21 <!-- Needed for Google Play policy https://support.google.com/googleplay/android-developer/answer/6048248 -->
22 <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
24 <!-- Needed to prompt the user to give permission to install a downloaded apk -->
25 <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
27 <!-- Needed to interact with all apps installed on a device -->
28 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
29 tools:ignore="QueryAllPackagesPermission" />
31 <!-- Needed to post notifications on devices with Android 13 and later-->
32 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
34 <!-- Needed for uploading media files on devices with Android 13 and later. -->
35 <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
36 <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
37 <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
40 android:name=".FenixApplication"
41 android:allowBackup="false"
42 android:extractNativeLibs="true"
43 android:icon="@mipmap/ic_launcher"
44 android:label="@string/app_name"
45 android:roundIcon="@mipmap/ic_launcher_round"
46 android:supportsRtl="true"
47 android:theme="@style/NormalTheme"
48 android:usesCleartextTraffic="true"
49 tools:ignore="UnusedAttribute">
52 We inherited this entry (${applicationId}.App) from Fennec. We need to keep this as our
53 main launcher to avoid launcher icons on the home screen disappearing for all our users.
55 Note that `fennec*` build types override the targetActivity property in the Manifest
56 inside their source set.
59 android:name="${applicationId}.App"
60 android:exported="true"
61 android:targetActivity=".HomeActivity">
63 <action android:name="android.intent.action.MAIN" />
65 <category android:name="android.intent.category.LAUNCHER" />
69 android:name="android.app.shortcuts"
70 android:resource="@xml/shortcuts" />
74 Fennec declared entry for homescreen pinned shortcuts.
77 android:name="org.mozilla.gecko.BrowserApp"
78 android:targetActivity=".IntentReceiverActivity"
79 android:exported="true">
82 <!-- Activity alias from Fennec used by PWA launchers on the home screen -->
84 android:name="org.mozilla.gecko.LauncherActivity"
85 android:exported="true"
86 android:targetActivity=".IntentReceiverActivity">
88 <action android:name="org.mozilla.gecko.WEBAPP" />
93 android:name=".HomeActivity"
94 android:exported="true"
95 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
96 android:launchMode="singleTask"
97 android:resizeableActivity="true"
98 android:supportsPictureInPicture="true"
99 android:windowSoftInputMode="adjustResize">
101 <action android:name="android.intent.action.VIEW" />
102 <category android:name="android.intent.category.BROWSABLE" />
103 <category android:name="android.intent.category.DEFAULT" />
104 <data android:scheme="${deepLinkScheme}"
105 android:host="enable_private_browsing"/>
106 <data android:scheme="${deepLinkScheme}"
107 android:host="home"/>
108 <data android:scheme="${deepLinkScheme}"
109 android:host="home_collections"/>
110 <data android:scheme="${deepLinkScheme}"
111 android:host="install_search_widget"/>
112 <data android:scheme="${deepLinkScheme}"
113 android:host="make_default_browser"/>
114 <data android:scheme="${deepLinkScheme}"
115 android:host="open"/>
116 <data android:scheme="${deepLinkScheme}"
117 android:host="settings"/>
118 <data android:scheme="${deepLinkScheme}"
119 android:host="settings_accessibility"/>
120 <data android:scheme="${deepLinkScheme}"
121 android:host="settings_addon_manager"/>
122 <data android:scheme="${deepLinkScheme}"
123 android:host="settings_delete_browsing_data"/>
124 <data android:scheme="${deepLinkScheme}"
125 android:host="settings_logins"/>
126 <data android:scheme="${deepLinkScheme}"
127 android:host="settings_notifications"/>
128 <data android:scheme="${deepLinkScheme}"
129 android:host="settings_privacy"/>
130 <data android:scheme="${deepLinkScheme}"
131 android:host="settings_search_engine"/>
132 <data android:scheme="${deepLinkScheme}"
133 android:host="settings_tracking_protection"/>
134 <data android:scheme="${deepLinkScheme}"
135 android:host="turn_on_sync"/>
136 <data android:scheme="${deepLinkScheme}"
137 android:host="urls_bookmarks"/>
138 <data android:scheme="${deepLinkScheme}"
139 android:host="urls_history"/>
143 <activity android:name=".home.mozonline.PrivacyContentDisplayActivity"
144 android:exported="false"/>
147 android:name=".customtabs.ExternalAppBrowserActivity"
148 android:autoRemoveFromRecents="false"
149 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
150 android:exported="false"
151 android:label="@string/app_name"
152 android:persistableMode="persistNever"
153 android:taskAffinity=""
154 android:resizeableActivity="true"
155 android:supportsPictureInPicture="true"
156 android:windowSoftInputMode="adjustResize|stateAlwaysHidden" />
159 android:name=".IntentReceiverActivity"
160 android:theme="@style/Theme.Transparent"
161 android:relinquishTaskIdentity="true"
162 android:taskAffinity=""
163 android:exported="true"
164 android:excludeFromRecents="true" >
167 Respond to `Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER)`
170 <action android:name="android.intent.action.MAIN" />
171 <category android:name="android.intent.category.APP_BROWSER"/>
172 <category android:name="android.intent.category.DEFAULT"/>
176 <action android:name="android.intent.action.VIEW" />
178 <category android:name="android.intent.category.DEFAULT" />
179 <category android:name="android.intent.category.BROWSABLE" />
180 <category android:name="mozilla.components.pwa.category.SHORTCUT" />
181 <data android:scheme="http" />
182 <data android:scheme="https" />
185 <!--Exposed specific deep links for third-party apps to open wallpaper settings.-->
187 <action android:name="android.intent.action.VIEW" />
188 <category android:name="android.intent.category.BROWSABLE" />
189 <category android:name="android.intent.category.DEFAULT" />
190 <data android:scheme="${deepLinkScheme}"
191 android:host="settings_wallpapers"/>
195 <action android:name="android.intent.action.VIEW" />
197 <category android:name="android.intent.category.BROWSABLE" />
198 <category android:name="android.intent.category.DEFAULT" />
200 <data android:scheme="http" />
201 <data android:scheme="https" />
202 <data android:mimeType="text/html" />
203 <data android:mimeType="text/plain" />
204 <data android:mimeType="application/xhtml+xml" />
208 <action android:name="android.intent.action.SEND" />
209 <category android:name="android.intent.category.DEFAULT" />
210 <data android:mimeType="text/plain" />
214 <action android:name="android.intent.action.SEARCH" />
215 <category android:name="android.intent.category.DEFAULT" />
217 <meta-data android:name="android.app.searchable"
218 android:resource="@xml/searchable"/>
221 <action android:name="android.intent.action.WEB_SEARCH" />
222 <category android:name="android.intent.category.DEFAULT" />
226 <action android:name="mozilla.components.feature.pwa.VIEW_PWA" />
227 <category android:name="android.intent.category.DEFAULT" />
228 <data android:scheme="https" />
232 <action android:name="android.intent.action.ASSIST" />
233 <category android:name="android.intent.category.DEFAULT" />
237 <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
238 <category android:name="android.intent.category.DEFAULT" />
239 <data android:scheme="http" />
240 <data android:scheme="https" />
244 android:name="com.android.systemui.action_assist_icon"
245 android:resource="@mipmap/ic_launcher" />
250 android:name=".crashes.CrashListActivity"
251 android:exported="false" />
253 <activity android:name=".widget.VoiceSearchActivity"
254 android:theme="@style/Theme.AppCompat.Translucent"
255 android:taskAffinity=""
256 android:excludeFromRecents="true"
260 android:name=".settings.account.AuthCustomTabActivity"
261 android:autoRemoveFromRecents="false"
262 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
263 android:exported="false"
264 android:taskAffinity=""
265 android:windowSoftInputMode="adjustResize|stateAlwaysHidden" />
267 <activity android:name=".settings.account.AuthIntentReceiverActivity"
268 android:exported="false" />
270 <activity android:name=".autofill.AutofillUnlockActivity"
271 android:exported="false"
272 android:theme="@style/Theme.AppCompat.Translucent" />
274 <activity android:name=".autofill.AutofillConfirmActivity"
275 android:exported="false"
276 android:theme="@style/Theme.AppCompat.Translucent" />
278 <activity android:name=".autofill.AutofillSearchActivity"
279 android:exported="false"
280 android:theme="@style/DialogActivityTheme" />
283 android:name=".gleanplumb.NotificationClickedReceiverActivity"
284 android:exported="false" />
287 android:name=".autofill.AutofillService"
288 android:exported="true"
289 android:label="@string/app_name"
290 android:permission="android.permission.BIND_AUTOFILL_SERVICE">
292 <action android:name="android.service.autofill.AutofillService"/>
295 android:name="android.autofill"
296 android:resource="@xml/autofill_configuration" />
299 <service android:name=".media.MediaSessionService"
300 android:foregroundServiceType="mediaPlayback"
301 android:exported="false" />
304 android:name=".customtabs.CustomTabsService"
305 android:exported="true"
306 tools:ignore="ExportedService">
308 <action android:name="android.support.customtabs.action.CustomTabsService" />
309 <category android:name="androidx.browser.trusted.category.TrustedWebActivities" />
314 android:name=".downloads.DownloadService"
315 android:exported="false" />
318 android:name="org.mozilla.gecko.search.SearchWidgetProvider"
319 android:exported="true">
321 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
324 android:name="android.appwidget.provider"
325 android:resource="@xml/search_widget_info" />
328 <service android:name=".session.PrivateNotificationService"
329 android:exported="false" />
332 android:name=".gleanplumb.NotificationDismissedService"
333 android:exported="false" />
336 android:name=".push.FirebasePushService"
337 android:exported="false">
339 <action android:name="com.google.firebase.MESSAGING_EVENT" />
344 android:name="firebase_messaging_auto_init_enabled"
345 android:value="true" />
347 android:name="firebase_analytics_collection_enabled"
348 android:value="false" />
350 android:name="firebase_analytics_collection_deactivated"
351 android:value="true" />
352 <!-- Removes the default Workmanager initialization so that we can use on-demand initializer. -->
354 android:name="androidx.startup.InitializationProvider"
355 android:authorities="${applicationId}.androidx-startup"
356 android:exported="false"
359 android:name="androidx.work.WorkManagerInitializer"
360 android:value="androidx.startup"
361 tools:node="remove" />