Now that we have LocalCallingIdentity, we can start caching it in very narrow cases. We must be careful to not cache too long, since any changes to granted permissions for the UID mean we need to re-evaluate any cached answers. The best middle-ground for this in the Q release is to use an active camera session as a proxy for when we should create a cache object and then later invalidate it. (It's very unlikely that a user changes permissions while actively using the camera, and this is a strong signal that the caller is sensitive to performance.) Many other sprinkled optimizations to avoid extra binder calls into the OS, such as aggressively caching VolumeInfo related details. Track IDs that are owned by each LocalCallingIdentity, to speed up all future security checks. Dispatch all change notifications asynchronously, and delay them by several seconds while the camera is being actively used, to give more important foreground work a fighting chance. Invalidate thumbnails asynchronously. Optimizations to ModernMediaScanner where it's safe to skip the "reconcile" and "clean" steps when we're focused on a single file that we successfully scanned. Local tests show this CL improves performance of a test app that takes 100 rapid shots by 45%. (All the collective optimizations done so far this week add up to a 70% improvement.) Bug: 130758409 Test: atest --test-mapping packages/providers/MediaProvider Exempt-From-Owner-Approval: trivial manifest change Change-Id: I38cc826af47d41219ef44eae6fbd293caa0c01d5
658 lines
31 KiB
XML
658 lines
31 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/*
|
|
* Copyright (c) 2014 Google Inc.
|
|
*
|
|
* 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:androidprv="http://schemas.android.com/apk/prv/res/android"
|
|
package="com.android.systemui"
|
|
android:sharedUserId="android.uid.systemui"
|
|
coreApp="true">
|
|
|
|
<!-- Using OpenGL ES 2.0 -->
|
|
<uses-feature
|
|
android:glEsVersion="0x00020000"
|
|
android:required="true" />
|
|
|
|
<!-- SysUI must be the one to define this permission; its name is
|
|
referenced by the core OS. -->
|
|
<permission android:name="android.permission.systemui.IDENTITY"
|
|
android:protectionLevel="signature" />
|
|
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
|
|
<!-- Used to read wallpaper -->
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
|
|
<!-- Used to read storage for all users -->
|
|
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
|
|
<uses-permission android:name="android.permission.INJECT_EVENTS" />
|
|
<uses-permission android:name="android.permission.DUMP" />
|
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
|
|
|
|
<uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
|
|
<uses-permission android:name="android.permission.STATUS_BAR" />
|
|
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
|
|
<uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" />
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_USERS" />
|
|
<uses-permission android:name="android.permission.READ_PROFILE" />
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
<uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
|
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
|
|
<uses-permission android:name="android.permission.USE_RESERVED_DISK" />
|
|
|
|
<!-- Networking and telephony -->
|
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
|
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
|
|
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
|
|
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
|
|
<uses-permission android:name="android.permission.NETWORK_SETTINGS" />
|
|
<uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
|
|
<uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
|
|
<uses-permission android:name="android.permission.REQUEST_NETWORK_SCORES" />
|
|
<uses-permission android:name="android.permission.CONTROL_VPN" />
|
|
<uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
|
|
<!-- Physical hardware -->
|
|
<uses-permission android:name="android.permission.MANAGE_USB" />
|
|
<uses-permission android:name="android.permission.CONTROL_DISPLAY_BRIGHTNESS" />
|
|
<uses-permission android:name="android.permission.DEVICE_POWER" />
|
|
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
|
<uses-permission android:name="android.permission.MASTER_CLEAR" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.MANAGE_SENSOR_PRIVACY" />
|
|
|
|
<!-- ActivityManager -->
|
|
<uses-permission android:name="android.permission.REAL_GET_TASKS" />
|
|
<uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
|
|
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
|
<uses-permission android:name="android.permission.REMOVE_TASKS" />
|
|
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
|
|
<uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
|
|
<uses-permission android:name="android.permission.START_ANY_ACTIVITY" />
|
|
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
|
|
<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.GET_TOP_ACTIVITY_INFO" />
|
|
<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
|
|
<uses-permission android:name="android.permission.START_ACTIVITY_AS_CALLER" />
|
|
<uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
|
|
<uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" />
|
|
|
|
<!-- WindowManager -->
|
|
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
|
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
|
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
|
|
<uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
|
|
<uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" />
|
|
<uses-permission android:name="android.permission.SET_ORIENTATION" />
|
|
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
|
<uses-permission android:name="android.permission.MONITOR_INPUT" />
|
|
|
|
<!-- DreamManager -->
|
|
<uses-permission android:name="android.permission.READ_DREAM_STATE" />
|
|
<uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
|
|
|
|
<!-- Alarm clocks -->
|
|
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
|
|
|
|
<!-- Keyguard -->
|
|
<uses-permission android:name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" />
|
|
<uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
|
|
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
|
|
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
|
|
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
|
<uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
|
|
<uses-permission android:name="android.permission.TRUST_LISTENER" />
|
|
<uses-permission android:name="android.permission.USE_BIOMETRIC_INTERNAL" />
|
|
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
|
<uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
|
|
<uses-permission android:name="android.permission.MANAGE_BIOMETRIC" />
|
|
<uses-permission android:name="android.permission.MANAGE_SLICE_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS" />
|
|
<uses-permission android:name="android.permission.GET_RUNTIME_PERMISSIONS" />
|
|
|
|
<!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
|
|
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
|
|
|
<!-- Wifi Display -->
|
|
<uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
|
|
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
|
|
<!-- Screen Capturing -->
|
|
<uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
|
|
|
|
<!-- Screen Recording -->
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
|
|
<!-- Assist -->
|
|
<uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
|
|
|
|
<!-- Doze mode temp whitelisting for notification dispatching. -->
|
|
<uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
|
|
|
|
<!-- Listen for keyboard attachment / detachment -->
|
|
<uses-permission android:name="android.permission.TABLET_MODE" />
|
|
|
|
<!-- Self permission for internal broadcasts. -->
|
|
<permission android:name="com.android.systemui.permission.SELF"
|
|
android:protectionLevel="signature" />
|
|
<uses-permission android:name="com.android.systemui.permission.SELF" />
|
|
|
|
<permission android:name="com.android.systemui.permission.PLUGIN"
|
|
android:protectionLevel="signature" />
|
|
|
|
<!-- Adding Quick Settings tiles -->
|
|
<uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" />
|
|
|
|
<!-- Quick Settings tile: Night Mode / Dark Theme -->
|
|
<uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE" />
|
|
|
|
<!-- Block notifications inline notifications -->
|
|
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
|
|
|
|
<!-- Access battery information -->
|
|
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
|
|
|
<!-- DevicePolicyManager get user restrictions -->
|
|
<uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
|
|
|
|
<!-- TV picture-in-picture -->
|
|
<uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" />
|
|
|
|
<!-- DND access -->
|
|
<uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" />
|
|
|
|
<!-- It's like, reality, but, you know, virtual -->
|
|
<uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
|
|
|
|
<!-- the ability to rename notifications posted by other apps -->
|
|
<uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
|
|
|
|
<!-- shortcut manager -->
|
|
<uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" />
|
|
|
|
<uses-permission android:name="android.permission.MODIFY_THEME_OVERLAY" />
|
|
|
|
<!-- accessibility -->
|
|
<uses-permission android:name="android.permission.MODIFY_ACCESSIBILITY_DATA" />
|
|
|
|
<!-- to control accessibility volume -->
|
|
<uses-permission android:name="android.permission.CHANGE_ACCESSIBILITY_VOLUME" />
|
|
|
|
<!-- to access ResolverRankerServices -->
|
|
<uses-permission android:name="android.permission.BIND_RESOLVER_RANKER_SERVICE" />
|
|
|
|
<!-- to access instant apps -->
|
|
<uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" />
|
|
|
|
<!-- to control remote app transitions -->
|
|
<uses-permission android:name="android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS" />
|
|
|
|
<!-- to change themes - light or dark -->
|
|
<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
|
|
|
|
<!-- to read and change hvac values in a car -->
|
|
<uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE" />
|
|
|
|
<!-- to be able to detect the driving state in a car-->
|
|
<uses-permission android:name="android.car.permission.CAR_DRIVING_STATE" />
|
|
|
|
<!-- Permission necessary to change car audio volume through CarAudioManager -->
|
|
<uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" />
|
|
|
|
<!-- Permission to control Android Debug Bridge (ADB) -->
|
|
<uses-permission android:name="android.permission.MANAGE_DEBUGGING" />
|
|
|
|
<uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" />
|
|
|
|
<!-- Permission to change the display color -->
|
|
<uses-permission android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS" />
|
|
|
|
<protected-broadcast android:name="com.android.settingslib.action.REGISTER_SLICE_RECEIVER" />
|
|
<protected-broadcast android:name="com.android.settingslib.action.UNREGISTER_SLICE_RECEIVER" />
|
|
<protected-broadcast android:name="com.android.settings.flashlight.action.FLASHLIGHT_CHANGED" />
|
|
|
|
<application
|
|
android:name=".SystemUIApplication"
|
|
android:persistent="true"
|
|
android:allowClearUserData="false"
|
|
android:allowBackup="false"
|
|
android:hardwareAccelerated="true"
|
|
android:label="@string/app_label"
|
|
android:icon="@drawable/icon"
|
|
android:process="com.android.systemui"
|
|
android:supportsRtl="true"
|
|
android:theme="@style/Theme.SystemUI"
|
|
android:defaultToDeviceProtectedStorage="true"
|
|
android:directBootAware="true"
|
|
android:appComponentFactory="androidx.core.app.CoreComponentFactory">
|
|
<!-- Keep theme in sync with SystemUIApplication.onCreate().
|
|
Setting the theme on the application does not affect views inflated by services.
|
|
The application theme is set again from onCreate to take effect for those views. -->
|
|
|
|
<!-- Broadcast receiver that gets the broadcast at boot time and starts
|
|
up everything else.
|
|
TODO: Should have an android:permission attribute
|
|
-->
|
|
<service android:name="SystemUIService"
|
|
android:exported="true"
|
|
/>
|
|
|
|
<!-- On user switch, this service is started to ensure that the associated SystemUI
|
|
process for the current user is started. See the resource
|
|
"config_systemUIServiceComponentsPerUser".
|
|
-->
|
|
<service android:name="SystemUISecondaryUserService"
|
|
android:exported="false"
|
|
android:permission="com.android.systemui.permission.SELF" />
|
|
|
|
<!-- started from PhoneWindowManager
|
|
TODO: Should have an android:permission attribute -->
|
|
<service android:name=".screenshot.TakeScreenshotService"
|
|
android:process=":screenshot"
|
|
android:exported="false" />
|
|
|
|
<!-- Called from PhoneWindowManager -->
|
|
<receiver android:name=".screenshot.ScreenshotServiceErrorReceiver"
|
|
android:process=":screenshot"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="com.android.systemui.screenshot.SHOW_ERROR" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<activity android:name=".screenrecord.ScreenRecordDialog"
|
|
android:theme="@style/ScreenRecord" />
|
|
<service android:name=".screenrecord.RecordingService" />
|
|
|
|
<receiver android:name=".SysuiRestartReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="com.android.systemui.action.RESTART" />
|
|
|
|
<data android:scheme="package" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service android:name=".ImageWallpaper"
|
|
android:permission="android.permission.BIND_WALLPAPER"
|
|
android:exported="true" />
|
|
|
|
<activity android:name=".tuner.TunerActivity"
|
|
android:enabled="false"
|
|
android:icon="@drawable/tuner"
|
|
android:theme="@style/TunerSettings"
|
|
android:label="@string/system_ui_tuner"
|
|
android:process=":tuner"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="com.android.settings.action.EXTRA_SETTINGS" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
<meta-data android:name="com.android.settings.category"
|
|
android:value="com.android.settings.category.ia.system" />
|
|
<meta-data android:name="com.android.settings.summary"
|
|
android:resource="@string/summary_empty"/>
|
|
</activity>
|
|
|
|
<activity-alias android:name=".DemoMode"
|
|
android:targetActivity=".tuner.TunerActivity"
|
|
android:icon="@drawable/tuner"
|
|
android:theme="@style/TunerSettings"
|
|
android:label="@string/demo_mode"
|
|
android:process=":tuner"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="com.android.settings.action.DEMO_MODE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity-alias>
|
|
|
|
<activity
|
|
android:name=".stackdivider.ForcedResizableInfoActivity"
|
|
android:theme="@style/ForcedResizableTheme"
|
|
android:excludeFromRecents="true"
|
|
android:stateNotNeeded="true"
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
|
|
android:exported="false">
|
|
</activity>
|
|
|
|
<!-- Springboard for launching the share and edit activity. This needs to be in the main
|
|
system ui process since we need to notify the status bar to dismiss the keyguard -->
|
|
<receiver android:name=".screenshot.GlobalScreenshot$ActionProxyReceiver"
|
|
android:exported="false" />
|
|
|
|
<!-- Callback for dismissing screenshot notification after a share target is picked -->
|
|
<receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver"
|
|
android:exported="false" />
|
|
|
|
<!-- Callback for deleting screenshot notification -->
|
|
<receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
|
|
android:exported="false" />
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
<activity android:name=".usb.UsbConfirmActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_USB"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
<activity android:name=".usb.UsbPermissionActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_USB"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
<activity android:name=".usb.UsbResolverActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_USB"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
<activity android:name=".usb.UsbAccessoryUriActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_USB"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from UsbPortManager -->
|
|
<activity android:name=".usb.UsbContaminantActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_USB"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from AdbDebuggingManager -->
|
|
<activity android:name=".usb.UsbDebuggingActivity"
|
|
android:permission="android.permission.MANAGE_DEBUGGING"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
<activity-alias
|
|
android:name=".UsbDebuggingActivityAlias"
|
|
android:permission="android.permission.DUMP"
|
|
android:targetActivity=".usb.UsbDebuggingActivity"
|
|
android:exported="true">
|
|
</activity-alias>
|
|
<activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
</activity>
|
|
|
|
<!-- started from NetworkPolicyManagerService -->
|
|
<activity
|
|
android:name=".net.NetworkOverLimitActivity"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_NETWORK_POLICY"
|
|
android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:launchMode="singleTop"
|
|
android:taskAffinity="com.android.systemui.net"
|
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
|
|
android:excludeFromRecents="true" />
|
|
|
|
<!-- started from MediaProjectionManager -->
|
|
<activity
|
|
android:name=".media.MediaProjectionPermissionActivity"
|
|
android:exported="true"
|
|
android:theme="@style/Theme.SystemUI.MediaProjectionAlertDialog"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:launchMode="singleTop"
|
|
android:excludeFromRecents="true"
|
|
android:visibleToInstantApps="true"/>
|
|
|
|
<!-- started from PipUI -->
|
|
<activity
|
|
android:name=".pip.tv.PipMenuActivity"
|
|
android:permission="com.android.systemui.permission.SELF"
|
|
android:exported="false"
|
|
android:theme="@style/PipTheme"
|
|
android:launchMode="singleTop"
|
|
android:taskAffinity=""
|
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection"
|
|
android:resizeableActivity="true"
|
|
android:supportsPictureInPicture="true"
|
|
androidprv:alwaysFocusable="true"
|
|
android:excludeFromRecents="true" />
|
|
|
|
<activity
|
|
android:name=".pip.phone.PipMenuActivity"
|
|
android:permission="com.android.systemui.permission.SELF"
|
|
android:theme="@style/PipPhoneOverlayControlTheme"
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
|
|
android:excludeFromRecents="true"
|
|
android:exported="false"
|
|
android:resizeableActivity="true"
|
|
android:supportsPictureInPicture="true"
|
|
android:stateNotNeeded="true"
|
|
android:taskAffinity=""
|
|
android:launchMode="singleTop"
|
|
androidprv:alwaysFocusable="true" />
|
|
|
|
<!-- started from SliceProvider -->
|
|
<activity android:name=".SlicePermissionActivity"
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true">
|
|
<intent-filter>
|
|
<action android:name="com.android.intent.action.REQUEST_SLICE_PERMISSION" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- platform logo easter egg activity -->
|
|
<activity
|
|
android:name=".DessertCase"
|
|
android:exported="true"
|
|
android:label="@string/dessert_case"
|
|
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
|
|
android:launchMode="singleInstance"
|
|
android:screenOrientation="locked"
|
|
android:process=":sweetsweetdesserts"
|
|
android:excludeFromRecents="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".egg.MLandActivity"
|
|
android:theme="@android:style/Theme.Material.NoActionBar"
|
|
android:exported="true"
|
|
android:icon="@drawable/icon"
|
|
android:label="@string/mland"
|
|
android:launchMode="singleInstance"
|
|
android:screenOrientation="locked"
|
|
android:process=":sweetsweetdesserts"
|
|
android:excludeFromRecents="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN"/>
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- a gallery of delicious treats -->
|
|
<service
|
|
android:name=".DessertCaseDream"
|
|
android:exported="true"
|
|
android:label="@string/dessert_case"
|
|
android:permission="android.permission.BIND_DREAM_SERVICE"
|
|
android:enabled="false"
|
|
android:process=":sweetsweetdesserts"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.service.dreams.DreamService" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</service>
|
|
|
|
<service
|
|
android:name=".keyguard.KeyguardService"
|
|
android:exported="true"
|
|
android:enabled="@bool/config_enableKeyguardService" />
|
|
|
|
<activity android:name=".keyguard.WorkLockActivity"
|
|
android:label="@string/accessibility_desc_work_lock"
|
|
android:permission="android.permission.MANAGE_USERS"
|
|
android:exported="false"
|
|
android:excludeFromRecents="true"
|
|
android:stateNotNeeded="true"
|
|
android:resumeWhilePausing="true"
|
|
android:theme="@android:style/Theme.Black.NoTitleBar">
|
|
<intent-filter>
|
|
<action android:name="android.app.action.CONFIRM_DEVICE_CREDENTIAL_WITH_USER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".Somnambulator"
|
|
android:label="@string/start_dreams"
|
|
android:icon="@mipmap/ic_launcher_dreams"
|
|
android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
|
|
android:exported="true"
|
|
android:excludeFromRecents="true"
|
|
>
|
|
<!--
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
-->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.DESK_DOCK" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".settings.BrightnessDialog"
|
|
android:label="@string/quick_settings_brightness_dialog_title"
|
|
android:theme="@*android:style/Theme.DeviceDefault.QuickSettings.Dialog"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:launchMode="singleInstance"
|
|
android:excludeFromRecents="true"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="com.android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".ForegroundServicesDialog"
|
|
android:process=":fgservices"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleTop"
|
|
android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog">
|
|
<intent-filter android:priority="1">
|
|
<action android:name="android.settings.FOREGROUND_SERVICES_SETTINGS" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".chooser.ChooserActivity"
|
|
android:theme="@*android:style/Theme.NoDisplay"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true"
|
|
android:documentLaunchMode="never"
|
|
android:relinquishTaskIdentity="true"
|
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
|
|
android:process=":ui"
|
|
android:visibleToInstantApps="true">
|
|
</activity>
|
|
|
|
<!-- Doze with notifications, run in main sysui process for every user -->
|
|
<service
|
|
android:name=".doze.DozeService"
|
|
android:exported="true"
|
|
android:singleUser="true"
|
|
android:permission="android.permission.BIND_DREAM_SERVICE" />
|
|
|
|
<receiver
|
|
android:name=".tuner.TunerService$ClearReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="com.android.systemui.action.CLEAR_TUNER" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="com.android.systemui.fileprovider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/fileprovider" />
|
|
</provider>
|
|
|
|
<provider android:name=".keyguard.KeyguardSliceProvider"
|
|
android:authorities="com.android.systemui.keyguard"
|
|
android:grantUriPermissions="true"
|
|
android:exported="true">
|
|
</provider>
|
|
|
|
<!-- Provides list and realistic previews of clock faces for the picker app. -->
|
|
<provider
|
|
android:name="com.android.keyguard.clock.ClockOptionsProvider"
|
|
android:authorities="com.android.keyguard.clock"
|
|
android:exported="true"
|
|
android:grantUriPermissions="true">
|
|
</provider>
|
|
|
|
<receiver
|
|
android:name=".statusbar.KeyboardShortcutsReceiver">
|
|
<intent-filter>
|
|
<action android:name="com.android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" />
|
|
<action android:name="com.android.intent.action.SHOW_KEYBOARD_SHORTCUTS" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
</application>
|
|
</manifest>
|