1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/mobile/android/base/AndroidManifest.xml.in Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,376 @@ 1.4 +#filter substitution 1.5 +<?xml version="1.0" encoding="utf-8"?> 1.6 +<manifest xmlns:android="http://schemas.android.com/apk/res/android" 1.7 + package="@ANDROID_PACKAGE_NAME@" 1.8 + android:installLocation="auto" 1.9 + android:versionCode="@ANDROID_VERSION_CODE@" 1.10 + android:versionName="@MOZ_APP_VERSION@" 1.11 +#ifdef MOZ_ANDROID_SHARED_ID 1.12 + android:sharedUserId="@MOZ_ANDROID_SHARED_ID@" 1.13 +#endif 1.14 + > 1.15 + <uses-sdk android:minSdkVersion="8" 1.16 + android:targetSdkVersion="@ANDROID_TARGET_SDK@"/> 1.17 + 1.18 +#include ../services/manifests/AnnouncementsAndroidManifest_permissions.xml.in 1.19 +#include ../services/manifests/FxAccountAndroidManifest_permissions.xml.in 1.20 +#include ../services/manifests/HealthReportAndroidManifest_permissions.xml.in 1.21 +#include ../services/manifests/SyncAndroidManifest_permissions.xml.in 1.22 + 1.23 +#ifndef RELEASE_BUILD 1.24 + <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 1.25 + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 1.26 +#endif 1.27 + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 1.28 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 1.29 + <uses-permission android:name="android.permission.INTERNET"/> 1.30 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 1.31 + <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 1.32 + <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/> 1.33 + <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/> 1.34 + 1.35 + <uses-permission android:name="android.permission.WAKE_LOCK"/> 1.36 + <uses-permission android:name="android.permission.VIBRATE"/> 1.37 + <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER"/> 1.38 + <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> 1.39 + <uses-permission android:name="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER"/> 1.40 + 1.41 +#ifdef MOZ_WEBSMS_BACKEND 1.42 + <!-- WebSMS --> 1.43 + <uses-permission android:name="android.permission.SEND_SMS"/> 1.44 + <uses-permission android:name="android.permission.RECEIVE_SMS"/> 1.45 + <uses-permission android:name="android.permission.WRITE_SMS"/> 1.46 + <uses-permission android:name="android.permission.READ_SMS"/> 1.47 +#endif 1.48 + 1.49 + <uses-feature android:name="android.hardware.location" android:required="false"/> 1.50 + <uses-feature android:name="android.hardware.location.gps" android:required="false"/> 1.51 + <uses-feature android:name="android.hardware.touchscreen"/> 1.52 + 1.53 +#ifdef NIGHTLY_BUILD 1.54 + <!-- Contacts API --> 1.55 + <uses-permission android:name="android.permission.READ_CONTACTS"/> 1.56 + <uses-permission android:name="android.permission.WRITE_CONTACTS"/> 1.57 + <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 1.58 +#endif 1.59 + 1.60 +#ifdef MOZ_ANDROID_BEAM 1.61 + <!-- Android Beam support --> 1.62 + <uses-permission android:name="android.permission.NFC"/> 1.63 + <uses-feature android:name="android.hardware.nfc" android:required="false"/> 1.64 +#endif 1.65 + 1.66 +#ifdef MOZ_WEBRTC 1.67 + <uses-permission android:name="android.permission.RECORD_AUDIO"/> 1.68 + <uses-feature android:name="android.hardware.audio.low_latency" android:required="false"/> 1.69 + <uses-feature android:name="android.hardware.camera.any" android:required="false"/> 1.70 + <uses-feature android:name="android.hardware.microphone" android:required="false"/> 1.71 +#endif 1.72 + <uses-permission android:name="android.permission.CAMERA" /> 1.73 + <uses-feature android:name="android.hardware.camera" android:required="false"/> 1.74 + <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> 1.75 + 1.76 + <!-- App requires OpenGL ES 2.0 --> 1.77 + <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 1.78 + 1.79 + <application android:label="@string/moz_app_displayname" 1.80 + android:icon="@drawable/icon" 1.81 + android:name="org.mozilla.gecko.GeckoApplication" 1.82 + android:hardwareAccelerated="true" 1.83 +#if MOZILLA_OFFICIAL 1.84 + android:debuggable="false"> 1.85 +#else 1.86 + android:debuggable="true"> 1.87 +#endif 1.88 + 1.89 + <!-- If the windowSoftInputMode adjust* flag changes below, the 1.90 + setSoftInputMode call in BrowserSearch#onStop must also be updated. --> 1.91 + <activity android:name=".App" 1.92 + android:label="@string/moz_app_displayname" 1.93 + android:taskAffinity="@ANDROID_PACKAGE_NAME@.BROWSER" 1.94 + android:alwaysRetainTaskState="true" 1.95 + android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize" 1.96 + android:windowSoftInputMode="stateUnspecified|adjustResize" 1.97 + android:launchMode="singleTask" 1.98 + android:theme="@style/Gecko.App"> 1.99 + <intent-filter> 1.100 + <action android:name="android.intent.action.MAIN" /> 1.101 + <category android:name="android.intent.category.LAUNCHER" /> 1.102 + </intent-filter> 1.103 + <intent-filter> 1.104 + <action android:name="org.mozilla.gecko.ACTION_ALERT_CALLBACK" /> 1.105 + </intent-filter> 1.106 + 1.107 + <intent-filter> 1.108 + <action android:name="org.mozilla.gecko.UPDATE"/> 1.109 + <category android:name="android.intent.category.DEFAULT" /> 1.110 + </intent-filter> 1.111 + 1.112 + <!-- Default browser intents --> 1.113 + <intent-filter> 1.114 + <action android:name="android.intent.action.VIEW" /> 1.115 + <category android:name="android.intent.category.DEFAULT" /> 1.116 + <category android:name="android.intent.category.BROWSABLE" /> 1.117 + <data android:scheme="http" /> 1.118 + <data android:scheme="https" /> 1.119 + <data android:scheme="about" /> 1.120 + <data android:scheme="javascript" /> 1.121 + </intent-filter> 1.122 + <intent-filter> 1.123 + <action android:name="android.intent.action.VIEW" /> 1.124 + <category android:name="android.intent.category.BROWSABLE" /> 1.125 + <category android:name="android.intent.category.DEFAULT" /> 1.126 + <data android:scheme="file" /> 1.127 + <data android:scheme="http" /> 1.128 + <data android:scheme="https" /> 1.129 + <data android:mimeType="text/html"/> 1.130 + <data android:mimeType="text/plain"/> 1.131 + <data android:mimeType="application/xhtml+xml"/> 1.132 + </intent-filter> 1.133 + 1.134 + <intent-filter> 1.135 + <action android:name="android.intent.action.WEB_SEARCH" /> 1.136 + <category android:name="android.intent.category.DEFAULT" /> 1.137 + <category android:name="android.intent.category.BROWSABLE" /> 1.138 + <data android:scheme="" /> 1.139 + <data android:scheme="http" /> 1.140 + <data android:scheme="https" /> 1.141 + </intent-filter> 1.142 + 1.143 + <intent-filter> 1.144 + <action android:name="android.intent.action.SEARCH" /> 1.145 + </intent-filter> 1.146 + 1.147 + <!-- For XPI installs from websites and the download manager. --> 1.148 + <intent-filter> 1.149 + <action android:name="android.intent.action.VIEW" /> 1.150 + <category android:name="android.intent.category.DEFAULT" /> 1.151 + <data android:scheme="file" /> 1.152 + <data android:scheme="http" /> 1.153 + <data android:scheme="https" /> 1.154 + <data android:mimeType="application/x-xpinstall" /> 1.155 + </intent-filter> 1.156 + 1.157 + <!-- For XPI installs from file: URLs. --> 1.158 + <intent-filter> 1.159 + <action android:name="android.intent.action.VIEW" /> 1.160 + <category android:name="android.intent.category.DEFAULT" /> 1.161 + <data android:host="" /> 1.162 + <data android:scheme="file" /> 1.163 + <data android:pathPattern=".*\\.xpi" /> 1.164 + </intent-filter> 1.165 + 1.166 +#ifdef MOZ_ANDROID_BEAM 1.167 + <intent-filter> 1.168 + <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 1.169 + <category android:name="android.intent.category.DEFAULT" /> 1.170 + <data android:scheme="http" /> 1.171 + <data android:scheme="https" /> 1.172 + </intent-filter> 1.173 +#endif 1.174 + 1.175 + <meta-data android:name="android.app.searchable" 1.176 + android:resource="@xml/searchable" /> 1.177 + 1.178 + <!-- For debugging --> 1.179 + <intent-filter> 1.180 + <action android:name="org.mozilla.gecko.DEBUG" /> 1.181 + <category android:name="android.intent.category.DEFAULT" /> 1.182 + </intent-filter> 1.183 + </activity> 1.184 + 1.185 +#ifdef MOZ_ANDROID_SYNTHAPKS 1.186 + <activity android:name="org.mozilla.gecko.webapp.Dispatcher" 1.187 + android:noHistory="true" > 1.188 + <intent-filter> 1.189 + <!-- catch links from synthetic apks --> 1.190 + <action android:name="android.intent.action.VIEW" /> 1.191 + <category android:name="android.intent.category.DEFAULT" /> 1.192 + <data android:mimeType="application/webapp" /> 1.193 + </intent-filter> 1.194 + </activity> 1.195 + 1.196 + <receiver android:name="org.mozilla.gecko.webapp.UninstallListener" > 1.197 + <intent-filter> 1.198 + <action android:name="android.intent.action.PACKAGE_REMOVED" /> 1.199 + <data android:scheme="package" /> 1.200 + </intent-filter> 1.201 + </receiver> 1.202 + 1.203 + <receiver android:name="org.mozilla.gecko.webapp.TaskKiller"> 1.204 + <intent-filter> 1.205 + <action android:name="org.mozilla.webapp.TASK_REMOVED" /> 1.206 + <category android:name="android.intent.category.DEFAULT" /> 1.207 + </intent-filter> 1.208 + </receiver> 1.209 +#endif 1.210 + 1.211 + <activity android:name=".Webapp" 1.212 + android:label="@string/webapp_generic_name" 1.213 + android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize" 1.214 + android:windowSoftInputMode="stateUnspecified|adjustResize" 1.215 + android:launchMode="singleTask" 1.216 + android:taskAffinity="org.mozilla.gecko.WEBAPP" 1.217 + android:process=":@ANDROID_PACKAGE_NAME@.Webapp" 1.218 + android:excludeFromRecents="true" 1.219 + android:theme="@style/Gecko.App"> 1.220 + <intent-filter> 1.221 + <action android:name="org.mozilla.gecko.WEBAPP" /> 1.222 + </intent-filter> 1.223 + <intent-filter> 1.224 + <action android:name="org.mozilla.gecko.ACTION_ALERT_CALLBACK" /> 1.225 + </intent-filter> 1.226 + </activity> 1.227 + 1.228 + <!-- Declare a predefined number of Webapp<num> activities. These are 1.229 + used so that each web app can launch in its own process. Keep 1.230 + this number in sync with the total number of web apps handled in 1.231 + WebappAllocator. --> 1.232 + 1.233 +#define FRAGMENT WebappManifestFragment.xml.frag.in 1.234 +#include WebappFragmentRepeater.inc 1.235 + 1.236 + <!-- Masquerade as the Resolver so that we can be opened from the Marketplace. --> 1.237 + <activity-alias 1.238 + android:name="com.android.internal.app.ResolverActivity" 1.239 + android:targetActivity=".App" 1.240 + android:exported="true" /> 1.241 + 1.242 + <receiver android:name="org.mozilla.gecko.GeckoUpdateReceiver"> 1.243 + <intent-filter> 1.244 + <action android:name="@ANDROID_PACKAGE_NAME@.CHECK_UPDATE_RESULT" /> 1.245 + </intent-filter> 1.246 + </receiver> 1.247 + 1.248 + <receiver android:name="org.mozilla.gecko.GeckoMessageReceiver" 1.249 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER"> 1.250 + <intent-filter> 1.251 + <action android:name="org.mozilla.gecko.INIT_PW"></action> 1.252 + </intent-filter> 1.253 + </receiver> 1.254 + 1.255 + <receiver android:name="org.mozilla.gecko.ReferrerReceiver" android:exported="true"> 1.256 + <intent-filter> 1.257 + <action android:name="com.android.vending.INSTALL_REFERRER" /> 1.258 + </intent-filter> 1.259 + </receiver> 1.260 + 1.261 + <activity android:name="org.mozilla.gecko.Restarter" 1.262 + android:process="@ANDROID_PACKAGE_NAME@Restarter" 1.263 + android:noHistory="true" 1.264 + android:theme="@style/Gecko"> 1.265 + <intent-filter> 1.266 + <action android:name="org.mozilla.gecko.restart"/> 1.267 + <action android:name="org.mozilla.gecko.restart_update"/> 1.268 + </intent-filter> 1.269 + </activity> 1.270 + 1.271 +#include ../services/manifests/AnnouncementsAndroidManifest_activities.xml.in 1.272 +#include ../services/manifests/FxAccountAndroidManifest_activities.xml.in 1.273 +#include ../services/manifests/HealthReportAndroidManifest_activities.xml.in 1.274 +#include ../services/manifests/SyncAndroidManifest_activities.xml.in 1.275 + 1.276 +#if MOZ_CRASHREPORTER 1.277 + <activity android:name="org.mozilla.gecko.CrashReporter" 1.278 + android:label="@string/crash_reporter_title" 1.279 + android:icon="@drawable/crash_reporter" 1.280 + android:theme="@style/Gecko" 1.281 + android:exported="false" 1.282 + android:excludeFromRecents="true"> 1.283 + <intent-filter> 1.284 + <action android:name="org.mozilla.gecko.reportCrash" /> 1.285 + </intent-filter> 1.286 + </activity> 1.287 +#endif 1.288 + 1.289 + <activity android:name="org.mozilla.gecko.VideoPlayer" 1.290 + android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation" 1.291 + android:theme="@android:style/Theme.NoTitleBar"> 1.292 + <intent-filter> 1.293 + <action android:name="org.mozilla.gecko.PLAY_VIDEO" /> 1.294 + </intent-filter> 1.295 + </activity> 1.296 + 1.297 + <activity android:name="org.mozilla.gecko.preferences.GeckoPreferences" 1.298 + android:theme="@style/Gecko.Preferences" 1.299 + android:label="@string/settings_title" 1.300 + android:configChanges="orientation|screenSize" 1.301 + android:excludeFromRecents="true"/> 1.302 + 1.303 + <activity android:name="org.mozilla.gecko.home.HomePanelPicker" 1.304 + android:theme="@style/Gecko.TitleDialog" 1.305 + android:label="@string/home_add_panel_title" 1.306 + android:excludeFromRecents="true" /> 1.307 + 1.308 + <provider android:name="org.mozilla.gecko.db.BrowserProvider" 1.309 + android:authorities="@ANDROID_PACKAGE_NAME@.db.browser" 1.310 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"> 1.311 + 1.312 + <path-permission android:pathPrefix="/search_suggest_query" 1.313 + android:readPermission="android.permission.GLOBAL_SEARCH" /> 1.314 + 1.315 + </provider> 1.316 + 1.317 + <!-- 1.318 + Ensure that passwords provider runs in its own process. (Bug 718760.) 1.319 + Process name is per-application to avoid loading CPs from multiple 1.320 + Fennec versions into the same process. (Bug 749727.) 1.321 + Process name is a mangled version to avoid a Talos bug. (Bug 750548.) 1.322 + --> 1.323 + <provider android:name="org.mozilla.gecko.db.PasswordsProvider" 1.324 + android:label="@string/sync_configure_engines_title_passwords" 1.325 + android:authorities="@ANDROID_PACKAGE_NAME@.db.passwords" 1.326 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER" 1.327 + android:process="@MANGLED_ANDROID_PACKAGE_NAME@.PasswordsProvider"/> 1.328 + 1.329 + <provider android:name="org.mozilla.gecko.db.FormHistoryProvider" 1.330 + android:label="@string/sync_configure_engines_title_history" 1.331 + android:authorities="@ANDROID_PACKAGE_NAME@.db.formhistory" 1.332 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER" 1.333 + android:protectionLevel="signature"/> 1.334 + 1.335 + <provider android:name="org.mozilla.gecko.GeckoProfilesProvider" 1.336 + android:authorities="@ANDROID_PACKAGE_NAME@.profiles"/> 1.337 + 1.338 + <provider android:name="org.mozilla.gecko.db.TabsProvider" 1.339 + android:label="@string/sync_configure_engines_title_tabs" 1.340 + android:authorities="@ANDROID_PACKAGE_NAME@.db.tabs" 1.341 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> 1.342 + 1.343 + <provider android:name="org.mozilla.gecko.db.HomeProvider" 1.344 + android:authorities="@ANDROID_PACKAGE_NAME@.db.home" 1.345 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> 1.346 + 1.347 + <provider android:name="org.mozilla.gecko.db.ReadingListProvider" 1.348 + android:authorities="@ANDROID_PACKAGE_NAME@.db.readinglist" 1.349 + android:permission="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER"/> 1.350 + 1.351 + <service 1.352 + android:exported="false" 1.353 + android:name="org.mozilla.gecko.updater.UpdateService" 1.354 + android:process="@MANGLED_ANDROID_PACKAGE_NAME@.UpdateService"> 1.355 + </service> 1.356 + 1.357 + <service 1.358 + android:exported="false" 1.359 + android:name="org.mozilla.gecko.NotificationService"> 1.360 + </service> 1.361 + 1.362 + 1.363 +#include ../services/manifests/AnnouncementsAndroidManifest_services.xml.in 1.364 +#include ../services/manifests/FxAccountAndroidManifest_services.xml.in 1.365 +#include ../services/manifests/HealthReportAndroidManifest_services.xml.in 1.366 +#include ../services/manifests/SyncAndroidManifest_services.xml.in 1.367 + 1.368 + </application> 1.369 + 1.370 + <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.BROWSER_PROVIDER" 1.371 + android:protectionLevel="signature"/> 1.372 + 1.373 + <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.PASSWORD_PROVIDER" 1.374 + android:protectionLevel="signature"/> 1.375 + 1.376 + <permission android:name="@ANDROID_PACKAGE_NAME@.permissions.FORMHISTORY_PROVIDER" 1.377 + android:protectionLevel="signature"/> 1.378 + 1.379 +</manifest>