mobile/android/base/AndroidManifest.xml.in

changeset 0
6474c204b198
     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>

mercurial