| <!-- | |
| ** | |
| ** Copyright 2014, The Android Open Source Project | |
| ** | |
| ** Licensed under the Apache License, Version 2.0 (the "License"); | |
| ** you may not use this file except in compliance with the License. | |
| ** You may obtain a copy of the License at | |
| ** | |
| ** http://www.apache.org/licenses/LICENSE-2.0 | |
| ** | |
| ** Unless required by applicable law or agreed to in writing, software | |
| ** distributed under the License is distributed on an "AS IS" BASIS, | |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| ** See the License for the specific language governing permissions and | |
| ** limitations under the License. | |
| */ | |
| --> | |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
| xmlns:tools="http://schemas.android.com/tools" | |
| package="com.android.managedprovisioning"> | |
| <permission | |
| android:name="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY" | |
| android:protectionLevel="signature|preinstalled" /> | |
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |
| <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | |
| <uses-permission android:name="android.permission.MANAGE_USERS" /> | |
| <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" /> | |
| <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> | |
| <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> | |
| <uses-permission android:name="android.permission.DELETE_PACKAGES" /> | |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> | |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> | |
| <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" /> | |
| <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> | |
| <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" /> | |
| <uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS" /> | |
| <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> | |
| <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> | |
| <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> | |
| <uses-permission android:name="android.permission.INTERNET" /> | |
| <uses-permission android:name="android.permission.MASTER_CLEAR" /> | |
| <uses-permission android:name="android.permission.NFC" /> | |
| <uses-permission android:name="android.permission.SET_TIME" /> | |
| <uses-permission android:name="android.permission.SET_TIME_ZONE" /> | |
| <uses-permission android:name="android.permission.CRYPT_KEEPER" /> | |
| <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | |
| <uses-permission android:name="android.permission.SHUTDOWN" /> | |
| <uses-permission android:name="android.permission.WRITE_SETTINGS" /> | |
| <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> | |
| <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" /> | |
| <uses-permission android:name="android.permission.ACCESS_PDB_STATE" /> | |
| <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" /> | |
| <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" /> | |
| <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> | |
| <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" /> | |
| <!-- To set the bg color of the deferred setup notification (without a foreground service) --> | |
| <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" /> | |
| <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" /> | |
| <!-- Required by setup design library --> | |
| <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" /> | |
| <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" /> | |
| <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> | |
| <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" /> | |
| <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> | |
| <uses-permission android:name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" /> | |
| <!-- Used to read the device management role holder package name --> | |
| <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" /> | |
| <application | |
| android:name=".ManagedProvisioningApplication" | |
| android:allowClearUserData="false" | |
| android:hardwareAccelerated="true" | |
| android:label="@string/app_label" | |
| android:supportsRtl="true" | |
| android:usesCleartextTraffic="true"> | |
| <meta-data | |
| android:name="com.android.managedprovisioning.patch.24760218" | |
| android:value="true" /> | |
| <!-- | |
| Note: Setup activities are android:immersive to prevent full-screen notifications (USB | |
| mass storage; incoming calls) from taking over. Note that high-priority notifications | |
| (phone calls) will still pop up a small window that can be activated. | |
| --> | |
| <activity | |
| android:name=".provisioning.ProvisioningActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@style/SudThemeGlifV4.DayNight"></activity> | |
| <activity | |
| android:name=".provisioning.AdminIntegratedFlowPrepareActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@style/SudThemeGlifV4.DayNight"></activity> | |
| <activity | |
| android:name=".preprovisioning.PreProvisioningActivity" | |
| android:excludeFromRecents="true" | |
| android:exported="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@style/SudThemeGlifV4.DayNight"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> | |
| <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity> | |
| <activity | |
| android:name=".provisioning.ResetAndReturnDeviceActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.Light" /> | |
| <activity | |
| android:name=".provisioning.ResetDeviceActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.Light" /> | |
| <!-- | |
| Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc | |
| stack can trigger this. | |
| --> | |
| <activity | |
| android:name=".preprovisioning.PreProvisioningActivityViaNfc" | |
| android:exported="true" | |
| android:permission="android.permission.DISPATCH_NFC_MESSAGE" | |
| android:theme="@style/SudThemeGlifV4.DayNight"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="android.nfc.action.NDEF_DISCOVERED" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| <data android:mimeType="application/com.android.managedprovisioning" /> | |
| </intent-filter> | |
| </activity> | |
| <!-- | |
| Trusted app entry for device owner provisioning, protected by a permission so only | |
| privileged app can trigger this. | |
| --> | |
| <activity-alias | |
| android:name=".PreProvisioningActivityViaTrustedApp" | |
| android:exported="true" | |
| android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" | |
| android:targetActivity=".preprovisioning.PreProvisioningActivity"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" /> | |
| <action android:name="android.app.action.PROVISION_FINANCED_DEVICE" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity-alias> | |
| <!-- Entry to resume encryption after reboot. --> | |
| <activity-alias | |
| android:name=".PreProvisioningActivityAfterEncryption" | |
| android:exported="false" | |
| android:targetActivity=".preprovisioning.PreProvisioningActivity"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity-alias> | |
| <activity | |
| android:name=".preprovisioning.terms.TermsActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".preprovisioning.EncryptDeviceActivity" | |
| android:immersive="true" | |
| android:launchMode="singleTop"></activity> | |
| <!-- | |
| Entry point for silent device owner provisioning. | |
| --> | |
| <service android:name=".provisioning.SilentDeviceOwnerProvisioningService"></service> | |
| <receiver | |
| android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver" | |
| android:exported="true" | |
| android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" /> | |
| </intent-filter> | |
| </receiver> | |
| <activity | |
| android:name=".preprovisioning.WebActivity" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:process=":webview" | |
| android:theme="@style/SudThemeGlifV4.DayNight"></activity> | |
| <activity | |
| android:name=".TrampolineActivity" | |
| android:excludeFromRecents="true" | |
| android:theme="@android:style/Theme.NoDisplay"></activity> | |
| <!-- | |
| When PostEncryptionActivity is disabled, its entire task is going to get killed. | |
| So, we explicitly specify a taskAffinity for this instead of a package default to make | |
| sure it starts in a new task. | |
| --> | |
| <activity | |
| android:name=".preprovisioning.PostEncryptionActivity" | |
| android:enabled="false" | |
| android:excludeFromRecents="true" | |
| android:exported="true" | |
| android:noHistory="true" | |
| android:taskAffinity=":PostEncryptionActivity" | |
| android:theme="@android:style/Theme.NoDisplay"> | |
| <intent-filter android:priority="10"> | |
| <action android:name="android.intent.action.MAIN" /> | |
| <category android:name="android.intent.category.HOME" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity> | |
| <service android:name=".provisioning.ProvisioningService" /> | |
| <service android:name=".finalization.SendDpcBroadcastService" /> | |
| <service android:name=".ota.OtaService" /> | |
| <receiver | |
| android:name="com.android.managedprovisioning.BootReminder" | |
| android:exported="true"> | |
| <intent-filter> | |
| <action android:name="android.intent.action.BOOT_COMPLETED" /> | |
| </intent-filter> | |
| </receiver> | |
| <receiver | |
| android:name="com.android.managedprovisioning.ota.PreBootListener" | |
| android:exported="true"> | |
| <intent-filter> | |
| <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> | |
| </intent-filter> | |
| </receiver> | |
| <receiver | |
| android:name="com.android.managedprovisioning.provisioninglisteners.ProvisioningCompletedListener" | |
| android:exported="true"> | |
| <intent-filter> | |
| <action android:name="android.app.action.PROVISIONING_COMPLETED" /> | |
| </intent-filter> | |
| </receiver> | |
| <receiver | |
| android:name="com.android.managedprovisioning.provisioninglisteners.ManagedUserRemovalListener" | |
| android:exported="true"> | |
| <intent-filter> | |
| <action android:name="android.intent.action.USER_REMOVED" /> | |
| </intent-filter> | |
| </receiver> | |
| <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? --> | |
| <activity | |
| android:name=".finalization.FinalizationForwarderActivity" | |
| android:excludeFromRecents="true" | |
| android:exported="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@android:style/Theme.Translucent.NoTitleBar"> | |
| <intent-filter> | |
| <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW | |
| after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt --> | |
| <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" /> | |
| <action android:name="android.app.action.PROVISION_FINALIZATION" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity> | |
| <activity | |
| android:name=".finalization.FinalizationInsideSuwActivity" | |
| android:excludeFromRecents="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".provisioning.LandingActivity" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".provisioning.FinancedDeviceLandingActivity" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".preprovisioning.DownloadRoleHolderActivity" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".common.RetryLaunchActivity" | |
| android:immersive="true" | |
| android:theme="@style/SudThemeGlifV4.DayNight" /> | |
| <activity | |
| android:name=".networkconnection.EstablishNetworkConnectionActivity" | |
| android:excludeFromRecents="true" | |
| android:exported="true" | |
| android:immersive="true" | |
| android:launchMode="singleTop" | |
| android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" | |
| android:theme="@style/SudThemeGlifV3.DayNight"> | |
| <intent-filter> | |
| <action android:name="android.app.action.ESTABLISH_NETWORK_CONNECTION" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| </intent-filter> | |
| </activity> | |
| <service | |
| android:name=".analytics.ProcessMetricsJobService" | |
| android:permission="android.permission.BIND_JOB_SERVICE" /> | |
| <!-- (b/197919878) Disable startup provider due to resource loading issue. --> | |
| <provider | |
| android:name="androidx.startup.InitializationProvider" | |
| android:authorities="${applicationId}.androidx-startup" | |
| tools:node="remove" /> | |
| </application> | |
| </manifest> |