Home | History | Annotate | Download | only in ManagedProvisioning
      1 <!--
      2 **
      3 ** Copyright 2014, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 -->
     18 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     19     package="com.android.managedprovisioning" >
     20 
     21     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     22     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     23     <uses-permission android:name="android.permission.MANAGE_USERS" />
     24     <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
     25     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
     26     <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
     27     <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
     28     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     29     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
     30     <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
     31     <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
     32 
     33     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     34     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
     35     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     36 
     37     <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
     38     <uses-permission android:name="android.permission.INTERNET" />
     39     <uses-permission android:name="android.permission.MASTER_CLEAR" />
     40     <uses-permission android:name="android.permission.NFC" />
     41     <uses-permission android:name="android.permission.SET_TIME" />
     42     <uses-permission android:name="android.permission.SET_TIME_ZONE" />
     43 
     44     <uses-permission android:name="android.permission.CRYPT_KEEPER" />
     45     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     46     <uses-permission android:name="android.permission.SHUTDOWN" />
     47 
     48     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     49     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
     50 
     51     <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
     52     <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
     53 
     54     <application
     55         android:label="@string/app_label"
     56         android:allowClearUserData="false"
     57         android:hardwareAccelerated="true"
     58         android:usesCleartextTraffic="true"
     59         android:supportsRtl="true">
     60 
     61         <!--
     62              Note: Setup activities are android:immersive to prevent full-screen notifications (USB
     63             mass storage; incoming calls) from taking over. Note that high-priority notifications
     64             (phone calls) will still pop up a small window that can be activated.
     65         -->
     66         <activity
     67              android:name="DeviceOwnerProvisioningActivity"
     68              android:excludeFromRecents="true"
     69              android:immersive="true"
     70              android:launchMode="singleTop"
     71              android:theme="@style/SetupWorkSpaceTheme">
     72         </activity>
     73         <activity
     74             android:name="ProfileOwnerProvisioningActivity"
     75             android:excludeFromRecents="true"
     76             android:immersive="true"
     77             android:launchMode="singleTop"
     78             android:theme="@style/SetupWorkSpaceTheme">
     79         </activity>
     80         <activity
     81             android:name=".uiflows.PreProvisioningActivity"
     82             android:excludeFromRecents="true"
     83             android:immersive="true"
     84             android:launchMode="singleTop"
     85             android:theme="@style/SetupWorkSpaceTheme">
     86             <intent-filter android:priority="10">
     87                 <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
     88                 <action android:name="android.app.action.PROVISION_MANAGED_USER" />
     89                 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
     90                 <action android:name="android.app.action.PROVISION_MANAGED_SHAREABLE_DEVICE" />
     91                 <category android:name="android.intent.category.DEFAULT" />
     92             </intent-filter>
     93         </activity>
     94         <!--
     95             Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
     96             stack can trigger this.
     97         -->
     98         <activity-alias
     99             android:name="PreProvisioningActivityViaNfc"
    100             android:targetActivity=".uiflows.PreProvisioningActivity"
    101             android:permission="android.permission.DISPATCH_NFC_MESSAGE"
    102             android:exported="true">
    103             <intent-filter android:priority="10">
    104                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    105                 <category android:name="android.intent.category.DEFAULT" />
    106                 <data android:mimeType="application/com.android.managedprovisioning" />
    107             </intent-filter>
    108         </activity-alias>
    109         <!--
    110             Trusted app entry for device owner provisioning, protected by a permission so only
    111             privileged app can trigger this.
    112         -->
    113         <activity-alias
    114             android:name="PreProvisioningActivityViaTrustedApp"
    115             android:targetActivity=".uiflows.PreProvisioningActivity"
    116             android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
    117             android:exported="true">
    118             <intent-filter android:priority="10">
    119                 <action
    120                     android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE"
    121                 />
    122                 <category android:name="android.intent.category.DEFAULT" />
    123             </intent-filter>
    124         </activity-alias>
    125         <!-- Entry to resume encryption after reboot. -->
    126         <activity-alias
    127             android:name="PreProvisioningActivityAfterEncryption"
    128             android:targetActivity=".uiflows.PreProvisioningActivity"
    129             android:exported="false">
    130             <intent-filter android:priority="10">
    131                 <action
    132                     android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING"
    133                 />
    134                 <category android:name="android.intent.category.DEFAULT" />
    135             </intent-filter>
    136         </activity-alias>
    137         <activity
    138             android:name=".uiflows.EncryptDeviceActivity"
    139             android:immersive="true"
    140             android:launchMode="singleTop"
    141             android:theme="@style/SetupWorkSpaceTheme">
    142         </activity>
    143 
    144         <activity
    145             android:name=".uiflows.WebActivity"
    146             android:immersive="true"
    147             android:launchMode="singleTop"
    148             android:process=":webview"
    149             android:theme="@style/SetupWorkSpaceTheme">
    150         </activity>
    151 
    152         <activity
    153             android:name=".TrampolineActivity"
    154             android:theme="@android:style/Theme.NoDisplay"
    155             android:excludeFromRecents="true">
    156         </activity>
    157 
    158         <!--
    159             When PostEncryptionActivity is disabled, its entire task is going to get killed.
    160             So, we explicitly specify a taskAffinity for this instead of a package default to make
    161             sure it starts in a new task.
    162         -->
    163         <activity android:name=".uiflows.PostEncryptionActivity"
    164             android:theme="@android:style/Theme.NoDisplay"
    165             android:noHistory="true"
    166             android:excludeFromRecents="true"
    167             android:enabled="false"
    168             android:taskAffinity=":PostEncryptionActivity">
    169             <intent-filter android:priority="10">
    170                 <action android:name="android.intent.action.MAIN" />
    171                 <category android:name="android.intent.category.HOME" />
    172                 <category android:name="android.intent.category.DEFAULT" />
    173             </intent-filter>
    174         </activity>
    175 
    176         <service
    177             android:name="ProfileOwnerProvisioningService" >
    178         </service>
    179         <service
    180             android:name="DeviceOwnerProvisioningService" >
    181         </service>
    182 
    183         <receiver android:name="com.android.managedprovisioning.BootReminder">
    184             <intent-filter>
    185                 <action android:name="android.intent.action.BOOT_COMPLETED" />
    186             </intent-filter>
    187         </receiver>
    188 
    189         <receiver android:name="com.android.managedprovisioning.PreBootListener">
    190             <intent-filter>
    191                 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
    192             </intent-filter>
    193         </receiver>
    194 
    195         <!-- TODO: Add permission for setup-wizard to guard access? -->
    196         <activity android:name=".FinalizationActivity"
    197                 android:theme="@android:style/Theme.NoDisplay"
    198                 android:noHistory="true"
    199                 android:excludeFromRecents="true"
    200                 android:exported="true">
    201             <intent-filter>
    202                 <action android:name="android.app.action.PROVISION_FINALIZATION" />
    203                 <category android:name="android.intent.category.DEFAULT" />
    204             </intent-filter>
    205         </activity>
    206     </application>
    207 </manifest>
    208