|
1 #filter substitution |
|
2 <?xml version="1.0" encoding="utf-8"?> |
|
3 <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
|
4 package="@ANDROID_PACKAGE_NAME@" |
|
5 android:installLocation="auto" |
|
6 android:versionCode="@ANDROID_VERSION_CODE@" |
|
7 android:versionName="@MOZ_APP_VERSION@" |
|
8 #ifdef MOZ_ANDROID_SHARED_ID |
|
9 android:sharedUserId="@MOZ_ANDROID_SHARED_ID@" |
|
10 #endif |
|
11 > |
|
12 <uses-sdk android:minSdkVersion="8" |
|
13 android:targetSdkVersion="@ANDROID_TARGET_SDK@"/> |
|
14 |
|
15 #include ../services/manifests/AnnouncementsAndroidManifest_permissions.xml.in |
|
16 #include ../services/manifests/FxAccountAndroidManifest_permissions.xml.in |
|
17 #include ../services/manifests/HealthReportAndroidManifest_permissions.xml.in |
|
18 #include ../services/manifests/SyncAndroidManifest_permissions.xml.in |
|
19 |
|
20 #ifndef RELEASE_BUILD |
|
21 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> |
|
22 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> |
|
23 #endif |
|
24 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> |
|
25 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
|
26 <uses-permission android:name="android.permission.INTERNET"/> |
|
27 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
|
28 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> |
|
29 <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/> |
|
30 <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/> |
|
31 |
|
32 <uses-permission android:name="android.permission.WAKE_LOCK"/> |
|
33 <uses-permission android:name="android.permission.VIBRATE"/> |
|
34 <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER"/> |
|
35 <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> |
|
36 <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER"/> |
|
37 |
|
38 #ifdef MOZ_WEBSMS_BACKEND |
|
39 <!-- WebSMS --> |
|
40 <uses-permission android:name="android.permission.SEND_SMS"/> |
|
41 <uses-permission android:name="android.permission.RECEIVE_SMS"/> |
|
42 <uses-permission android:name="android.permission.WRITE_SMS"/> |
|
43 <uses-permission android:name="android.permission.READ_SMS"/> |
|
44 #endif |
|
45 |
|
46 <uses-feature android:name="android.hardware.location" android:required="false"/> |
|
47 <uses-feature android:name="android.hardware.location.gps" android:required="false"/> |
|
48 <uses-feature android:name="android.hardware.touchscreen"/> |
|
49 |
|
50 #ifdef NIGHTLY_BUILD |
|
51 <!-- Contacts API --> |
|
52 <uses-permission android:name="android.permission.READ_CONTACTS"/> |
|
53 <uses-permission android:name="android.permission.WRITE_CONTACTS"/> |
|
54 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> |
|
55 #endif |
|
56 |
|
57 #ifdef MOZ_ANDROID_BEAM |
|
58 <!-- Android Beam support --> |
|
59 <uses-permission android:name="android.permission.NFC"/> |
|
60 <uses-feature android:name="android.hardware.nfc" android:required="false"/> |
|
61 #endif |
|
62 |
|
63 #ifdef MOZ_WEBRTC |
|
64 <uses-permission android:name="android.permission.RECORD_AUDIO"/> |
|
65 <uses-feature android:name="android.hardware.audio.low_latency" android:required="false"/> |
|
66 <uses-feature android:name="android.hardware.camera.any" android:required="false"/> |
|
67 <uses-feature android:name="android.hardware.microphone" android:required="false"/> |
|
68 #endif |
|
69 <uses-permission android:name="android.permission.CAMERA" /> |
|
70 <uses-feature android:name="android.hardware.camera" android:required="false"/> |
|
71 <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> |
|
72 |
|
73 <!-- App requires OpenGL ES 2.0 --> |
|
74 <uses-feature android:glEsVersion="0x00020000" android:required="true" /> |
|
75 |
|
76 <application android:label="@string/moz_app_displayname" |
|
77 android:icon="@drawable/icon" |
|
78 android:name="org.mozilla.gecko.GeckoApplication" |
|
79 android:hardwareAccelerated="true" |
|
80 #if MOZILLA_OFFICIAL |
|
81 android:debuggable="false"> |
|
82 #else |
|
83 android:debuggable="true"> |
|
84 #endif |
|
85 |
|
86 <!-- If the windowSoftInputMode adjust* flag changes below, the |
|
87 setSoftInputMode call in BrowserSearch#onStop must also be updated. --> |
|
88 <activity android:name=".App" |
|
89 android:label="@string/moz_app_displayname" |
|
90 android:taskAffinity="@ANDROID_PACKAGE_NAME@.BROWSER" |
|
91 android:alwaysRetainTaskState="true" |
|
92 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize" |
|
93 android:windowSoftInputMode="stateUnspecified|adjustResize" |
|
94 android:launchMode="singleTask" |
|
95 android:theme="@style/Gecko.App"> |
|
96 <intent-filter> |
|
97 <action android:name="android.intent.action.MAIN" /> |
|
98 <category android:name="android.intent.category.LAUNCHER" /> |
|
99 </intent-filter> |
|
100 <intent-filter> |
|
101 <action android:name="org.mozilla.gecko.ACTION_ALERT_CALLBACK" /> |
|
102 </intent-filter> |
|
103 |
|
104 <intent-filter> |
|
105 <action android:name="org.mozilla.gecko.UPDATE"/> |
|
106 <category android:name="android.intent.category.DEFAULT" /> |
|
107 </intent-filter> |
|
108 |
|
109 <!-- Default browser intents --> |
|
110 <intent-filter> |
|
111 <action android:name="android.intent.action.VIEW" /> |
|
112 <category android:name="android.intent.category.DEFAULT" /> |
|
113 <category android:name="android.intent.category.BROWSABLE" /> |
|
114 <data android:scheme="http" /> |
|
115 <data android:scheme="https" /> |
|
116 <data android:scheme="about" /> |
|
117 <data android:scheme="javascript" /> |
|
118 </intent-filter> |
|
119 <intent-filter> |
|
120 <action android:name="android.intent.action.VIEW" /> |
|
121 <category android:name="android.intent.category.BROWSABLE" /> |
|
122 <category android:name="android.intent.category.DEFAULT" /> |
|
123 <data android:scheme="file" /> |
|
124 <data android:scheme="http" /> |
|
125 <data android:scheme="https" /> |
|
126 <data android:mimeType="text/html"/> |
|
127 <data android:mimeType="text/plain"/> |
|
128 <data android:mimeType="application/xhtml+xml"/> |
|
129 </intent-filter> |
|
130 |
|
131 <intent-filter> |
|
132 <action android:name="android.intent.action.WEB_SEARCH" /> |
|
133 <category android:name="android.intent.category.DEFAULT" /> |
|
134 <category android:name="android.intent.category.BROWSABLE" /> |
|
135 <data android:scheme="" /> |
|
136 <data android:scheme="http" /> |
|
137 <data android:scheme="https" /> |
|
138 </intent-filter> |
|
139 |
|
140 <intent-filter> |
|
141 <action android:name="android.intent.action.SEARCH" /> |
|
142 </intent-filter> |
|
143 |
|
144 <!-- For XPI installs from websites and the download manager. --> |
|
145 <intent-filter> |
|
146 <action android:name="android.intent.action.VIEW" /> |
|
147 <category android:name="android.intent.category.DEFAULT" /> |
|
148 <data android:scheme="file" /> |
|
149 <data android:scheme="http" /> |
|
150 <data android:scheme="https" /> |
|
151 <data android:mimeType="application/x-xpinstall" /> |
|
152 </intent-filter> |
|
153 |
|
154 <!-- For XPI installs from file: URLs. --> |
|
155 <intent-filter> |
|
156 <action android:name="android.intent.action.VIEW" /> |
|
157 <category android:name="android.intent.category.DEFAULT" /> |
|
158 <data android:host="" /> |
|
159 <data android:scheme="file" /> |
|
160 <data android:pathPattern=".*\\.xpi" /> |
|
161 </intent-filter> |
|
162 |
|
163 #ifdef MOZ_ANDROID_BEAM |
|
164 <intent-filter> |
|
165 <action android:name="android.nfc.action.NDEF_DISCOVERED"/> |
|
166 <category android:name="android.intent.category.DEFAULT" /> |
|
167 <data android:scheme="http" /> |
|
168 <data android:scheme="https" /> |
|
169 </intent-filter> |
|
170 #endif |
|
171 |
|
172 <meta-data android:name="android.app.searchable" |
|
173 android:resource="@xml/searchable" /> |
|
174 |
|
175 <!-- For debugging --> |
|
176 <intent-filter> |
|
177 <action android:name="org.mozilla.gecko.DEBUG" /> |
|
178 <category android:name="android.intent.category.DEFAULT" /> |
|
179 </intent-filter> |
|
180 </activity> |
|
181 |
|
182 #ifdef MOZ_ANDROID_SYNTHAPKS |
|
183 <activity android:name="org.mozilla.gecko.webapp.Dispatcher" |
|
184 android:noHistory="true" > |
|
185 <intent-filter> |
|
186 <!-- catch links from synthetic apks --> |
|
187 <action android:name="android.intent.action.VIEW" /> |
|
188 <category android:name="android.intent.category.DEFAULT" /> |
|
189 <data android:mimeType="application/webapp" /> |
|
190 </intent-filter> |
|
191 </activity> |
|
192 |
|
193 <receiver android:name="org.mozilla.gecko.webapp.UninstallListener" > |
|
194 <intent-filter> |
|
195 <action android:name="android.intent.action.PACKAGE_REMOVED" /> |
|
196 <data android:scheme="package" /> |
|
197 </intent-filter> |
|
198 </receiver> |
|
199 |
|
200 <receiver android:name="org.mozilla.gecko.webapp.TaskKiller"> |
|
201 <intent-filter> |
|
202 <action android:name="org.mozilla.webapp.TASK_REMOVED" /> |
|
203 <category android:name="android.intent.category.DEFAULT" /> |
|
204 </intent-filter> |
|
205 </receiver> |
|
206 #endif |
|
207 |
|
208 <activity android:name=".Webapp" |
|
209 android:label="@string/webapp_generic_name" |
|
210 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize" |
|
211 android:windowSoftInputMode="stateUnspecified|adjustResize" |
|
212 android:launchMode="singleTask" |
|
213 android:taskAffinity="org.mozilla.gecko.WEBAPP" |
|
214 android:process=":@ANDROID_PACKAGE_NAME@.Webapp" |
|
215 android:excludeFromRecents="true" |
|
216 android:theme="@style/Gecko.App"> |
|
217 <intent-filter> |
|
218 <action android:name="org.mozilla.gecko.WEBAPP" /> |
|
219 </intent-filter> |
|
220 <intent-filter> |
|
221 <action android:name="org.mozilla.gecko.ACTION_ALERT_CALLBACK" /> |
|
222 </intent-filter> |
|
223 </activity> |
|
224 |
|
225 <!-- Declare a predefined number of Webapp<num> activities. These are |
|
226 used so that each web app can launch in its own process. Keep |
|
227 this number in sync with the total number of web apps handled in |
|
228 WebappAllocator. --> |
|
229 |
|
230 #define FRAGMENT WebappManifestFragment.xml.frag.in |
|
231 #include WebappFragmentRepeater.inc |
|
232 |
|
233 <!-- Masquerade as the Resolver so that we can be opened from the Marketplace. --> |
|
234 <activity-alias |
|
235 android:name="com.android.internal.app.ResolverActivity" |
|
236 android:targetActivity=".App" |
|
237 android:exported="true" /> |
|
238 |
|
239 <receiver android:name="org.mozilla.gecko.GeckoUpdateReceiver"> |
|
240 <intent-filter> |
|
241 <action android:name="@ANDROID_PACKAGE_NAME@.CHECK_UPDATE_RESULT" /> |
|
242 </intent-filter> |
|
243 </receiver> |
|
244 |
|
245 <receiver android:name="org.mozilla.gecko.GeckoMessageReceiver" |
|
246 android:permission="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER"> |
|
247 <intent-filter> |
|
248 <action android:name="org.mozilla.gecko.INIT_PW"></action> |
|
249 </intent-filter> |
|
250 </receiver> |
|
251 |
|
252 <receiver android:name="org.mozilla.gecko.ReferrerReceiver" android:exported="true"> |
|
253 <intent-filter> |
|
254 <action android:name="com.android.vending.INSTALL_REFERRER" /> |
|
255 </intent-filter> |
|
256 </receiver> |
|
257 |
|
258 <activity android:name="org.mozilla.gecko.Restarter" |
|
259 android:process="@ANDROID_PACKAGE_NAME@Restarter" |
|
260 android:noHistory="true" |
|
261 android:theme="@style/Gecko"> |
|
262 <intent-filter> |
|
263 <action android:name="org.mozilla.gecko.restart"/> |
|
264 <action android:name="org.mozilla.gecko.restart_update"/> |
|
265 </intent-filter> |
|
266 </activity> |
|
267 |
|
268 #include ../services/manifests/AnnouncementsAndroidManifest_activities.xml.in |
|
269 #include ../services/manifests/FxAccountAndroidManifest_activities.xml.in |
|
270 #include ../services/manifests/HealthReportAndroidManifest_activities.xml.in |
|
271 #include ../services/manifests/SyncAndroidManifest_activities.xml.in |
|
272 |
|
273 #if MOZ_CRASHREPORTER |
|
274 <activity android:name="org.mozilla.gecko.CrashReporter" |
|
275 android:label="@string/crash_reporter_title" |
|
276 android:icon="@drawable/crash_reporter" |
|
277 android:theme="@style/Gecko" |
|
278 android:exported="false" |
|
279 android:excludeFromRecents="true"> |
|
280 <intent-filter> |
|
281 <action android:name="org.mozilla.gecko.reportCrash" /> |
|
282 </intent-filter> |
|
283 </activity> |
|
284 #endif |
|
285 |
|
286 <activity android:name="org.mozilla.gecko.VideoPlayer" |
|
287 android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation" |
|
288 android:theme="@android:style/Theme.NoTitleBar"> |
|
289 <intent-filter> |
|
290 <action android:name="org.mozilla.gecko.PLAY_VIDEO" /> |
|
291 </intent-filter> |
|
292 </activity> |
|
293 |
|
294 <activity android:name="org.mozilla.gecko.preferences.GeckoPreferences" |
|
295 android:theme="@style/Gecko.Preferences" |
|
296 android:label="@string/settings_title" |
|
297 android:configChanges="orientation|screenSize" |
|
298 android:excludeFromRecents="true"/> |
|
299 |
|
300 <activity android:name="org.mozilla.gecko.home.HomePanelPicker" |
|
301 android:theme="@style/Gecko.TitleDialog" |
|
302 android:label="@string/home_add_panel_title" |
|
303 android:excludeFromRecents="true" /> |
|
304 |
|
305 <provider android:name="org.mozilla.gecko.db.BrowserProvider" |
|
306 android:authorities="@ANDROID_PACKAGE_NAME@.db.browser" |
|
307 android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"> |
|
308 |
|
309 <path-permission android:pathPrefix="/search_suggest_query" |
|
310 android:readPermission="android.permission.GLOBAL_SEARCH" /> |
|
311 |
|
312 </provider> |
|
313 |
|
314 <!-- |
|
315 Ensure that passwords provider runs in its own process. (Bug 718760.) |
|
316 Process name is per-application to avoid loading CPs from multiple |
|
317 Fennec versions into the same process. (Bug 749727.) |
|
318 Process name is a mangled version to avoid a Talos bug. (Bug 750548.) |
|
319 --> |
|
320 <provider android:name="org.mozilla.gecko.db.PasswordsProvider" |
|
321 android:label="@string/sync_configure_engines_title_passwords" |
|
322 android:authorities="@ANDROID_PACKAGE_NAME@.db.passwords" |
|
323 android:permission="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER" |
|
324 android:process="@MANGLED_ANDROID_PACKAGE_NAME@.PasswordsProvider"/> |
|
325 |
|
326 <provider android:name="org.mozilla.gecko.db.FormHistoryProvider" |
|
327 android:label="@string/sync_configure_engines_title_history" |
|
328 android:authorities="@ANDROID_PACKAGE_NAME@.db.formhistory" |
|
329 android:permission="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER" |
|
330 android:protectionLevel="signature"/> |
|
331 |
|
332 <provider android:name="org.mozilla.gecko.GeckoProfilesProvider" |
|
333 android:authorities="@ANDROID_PACKAGE_NAME@.profiles"/> |
|
334 |
|
335 <provider android:name="org.mozilla.gecko.db.TabsProvider" |
|
336 android:label="@string/sync_configure_engines_title_tabs" |
|
337 android:authorities="@ANDROID_PACKAGE_NAME@.db.tabs" |
|
338 android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> |
|
339 |
|
340 <provider android:name="org.mozilla.gecko.db.HomeProvider" |
|
341 android:authorities="@ANDROID_PACKAGE_NAME@.db.home" |
|
342 android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> |
|
343 |
|
344 <provider android:name="org.mozilla.gecko.db.ReadingListProvider" |
|
345 android:authorities="@ANDROID_PACKAGE_NAME@.db.readinglist" |
|
346 android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> |
|
347 |
|
348 <service |
|
349 android:exported="false" |
|
350 android:name="org.mozilla.gecko.updater.UpdateService" |
|
351 android:process="@MANGLED_ANDROID_PACKAGE_NAME@.UpdateService"> |
|
352 </service> |
|
353 |
|
354 <service |
|
355 android:exported="false" |
|
356 android:name="org.mozilla.gecko.NotificationService"> |
|
357 </service> |
|
358 |
|
359 |
|
360 #include ../services/manifests/AnnouncementsAndroidManifest_services.xml.in |
|
361 #include ../services/manifests/FxAccountAndroidManifest_services.xml.in |
|
362 #include ../services/manifests/HealthReportAndroidManifest_services.xml.in |
|
363 #include ../services/manifests/SyncAndroidManifest_services.xml.in |
|
364 |
|
365 </application> |
|
366 |
|
367 <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER" |
|
368 android:protectionLevel="signature"/> |
|
369 |
|
370 <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER" |
|
371 android:protectionLevel="signature"/> |
|
372 |
|
373 <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER" |
|
374 android:protectionLevel="signature"/> |
|
375 |
|
376 </manifest> |