mobile/android/base/AndroidManifest.xml.in

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:c66b1fff383f
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>

mercurial