1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3/* 4 * Copyright (c) 2014 Google Inc. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18--> 19<manifest xmlns:android="http://schemas.android.com/apk/res/android" 20 xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" 21 package="com.android.systemui" 22 android:sharedUserId="android.uid.systemui" 23 coreApp="true"> 24 25 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 26 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 27 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 28 <!-- Used to read storage for all users --> 29 <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" /> 30 <uses-permission android:name="android.permission.WAKE_LOCK" /> 31 32 <uses-permission android:name="android.permission.INJECT_EVENTS" /> 33 <uses-permission android:name="android.permission.DUMP" /> 34 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 35 36 <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" /> 37 <uses-permission android:name="android.permission.STATUS_BAR" /> 38 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> 39 <uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" /> 40 41 <uses-permission android:name="android.permission.MANAGE_USERS" /> 42 <uses-permission android:name="android.permission.READ_PROFILE" /> 43 <uses-permission android:name="android.permission.READ_CONTACTS" /> 44 <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" /> 45 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 46 <uses-permission android:name="android.permission.GET_APP_OPS_STATS" /> 47 48 <!-- Networking and telephony --> 49 <uses-permission android:name="android.permission.BLUETOOTH" /> 50 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 51 <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> 52 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 53 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 54 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 55 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> 56 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 57 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 58 <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" /> 59 <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" /> 60 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> 61 <uses-permission android:name="android.permission.TETHER_PRIVILEGED" /> 62 <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" /> 63 <uses-permission android:name="android.permission.CONTROL_VPN" /> 64 <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/> 65 <!-- Physical hardware --> 66 <uses-permission android:name="android.permission.MANAGE_USB" /> 67 <uses-permission android:name="android.permission.DEVICE_POWER" /> 68 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 69 <uses-permission android:name="android.permission.MASTER_CLEAR" /> 70 <uses-permission android:name="android.permission.VIBRATE" /> 71 72 <!-- ActivityManager --> 73 <uses-permission android:name="android.permission.REAL_GET_TASKS" /> 74 <uses-permission android:name="android.permission.GET_DETAILED_TASKS" /> 75 <uses-permission android:name="android.permission.REORDER_TASKS" /> 76 <uses-permission android:name="android.permission.REMOVE_TASKS" /> 77 <uses-permission android:name="android.permission.STOP_APP_SWITCHES" /> 78 <uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" /> 79 <uses-permission android:name="android.permission.START_ANY_ACTIVITY" /> 80 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> 81 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> 82 <uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" /> 83 <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" /> 84 <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> 85 <uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" /> 86 87 <!-- WindowManager --> 88 <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" /> 89 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 90 <uses-permission android:name="android.permission.READ_FRAME_BUFFER" /> 91 <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" /> 92 <uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" /> 93 <uses-permission android:name="android.permission.SET_ORIENTATION" /> 94 <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 95 96 <!-- DreamManager --> 97 <uses-permission android:name="android.permission.READ_DREAM_STATE" /> 98 <uses-permission android:name="android.permission.WRITE_DREAM_STATE" /> 99 100 <!-- Alarm clocks --> 101 <uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> 102 103 <!-- Keyguard --> 104 <uses-permission android:name="android.permission.CONTROL_KEYGUARD" /> 105 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 106 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 107 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 108 <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" /> 109 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 110 <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" /> 111 <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" /> 112 <uses-permission android:name="android.permission.TRUST_LISTENER" /> 113 <uses-permission android:name="android.permission.USE_FINGERPRINT" /> 114 <uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" /> 115 116 <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked --> 117 <uses-permission android:name="android.permission.SET_WALLPAPER"/> 118 119 <!-- Recents --> 120 <uses-permission android:name="android.permission.BIND_APPWIDGET" /> 121 122 <!-- Wifi Display --> 123 <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" /> 124 125 <uses-permission android:name="android.permission.CAMERA" /> 126 127 <!-- Screen Capturing --> 128 <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" /> 129 130 <!-- Assist --> 131 <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" /> 132 133 <!-- Listen for keyboard attachment / detachment --> 134 <uses-permission android:name="android.permission.TABLET_MODE" /> 135 136 <!-- Self permission for internal broadcasts. --> 137 <permission android:name="com.android.systemui.permission.SELF" 138 android:protectionLevel="signature" /> 139 <uses-permission android:name="com.android.systemui.permission.SELF" /> 140 141 <!-- Adding Quick Settings tiles --> 142 <uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" /> 143 144 <!-- Block notifications inline notifications --> 145 <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> 146 147 <!-- Access battery information --> 148 <uses-permission android:name="android.permission.BATTERY_STATS" /> 149 150 <!-- DevicePolicyManager get user restrictions --> 151 <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" /> 152 153 <!-- TV picture-in-picture --> 154 <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" /> 155 156 <!-- DND access --> 157 <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" /> 158 159 <!-- It's like, reality, but, you know, virtual --> 160 <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" /> 161 162 <!-- the ability to rename notifications posted by other apps --> 163 <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" /> 164 165 <!-- shortcut manager --> 166 <uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" /> 167 168 <application 169 android:name=".SystemUIApplication" 170 android:persistent="true" 171 android:allowClearUserData="false" 172 android:allowBackup="false" 173 android:hardwareAccelerated="true" 174 android:label="@string/app_label" 175 android:icon="@drawable/icon" 176 android:process="com.android.systemui" 177 android:supportsRtl="true" 178 android:theme="@style/systemui_theme" 179 android:defaultToDeviceProtectedStorage="true" 180 android:directBootAware="true"> 181 <!-- Keep theme in sync with SystemUIApplication.onCreate(). 182 Setting the theme on the application does not affect views inflated by services. 183 The application theme is set again from onCreate to take effect for those views. --> 184 185 <!-- Broadcast receiver that gets the broadcast at boot time and starts 186 up everything else. 187 TODO: Should have an android:permission attribute 188 --> 189 <service android:name="SystemUIService" 190 android:exported="true" 191 /> 192 193 <!-- Recents depends on every user having their own SystemUI process, so on user switch, 194 ensure that the process is created by starting this service. 195 --> 196 <service android:name="SystemUISecondaryUserService" 197 android:exported="true" 198 android:permission="com.android.systemui.permission.SELF" /> 199 200 201 <!-- started from PhoneWindowManager 202 TODO: Should have an android:permission attribute --> 203 <service android:name=".screenshot.TakeScreenshotService" 204 android:process=":screenshot" 205 android:exported="false" /> 206 207 <!-- Called from PhoneWindowManager --> 208 <receiver android:name=".screenshot.ScreenshotServiceErrorReceiver" 209 android:process=":screenshot" 210 android:exported="false"> 211 <intent-filter> 212 <action android:name="com.android.systemui.screenshot.SHOW_ERROR" /> 213 </intent-filter> 214 </receiver> 215 216 <service android:name=".ImageWallpaper" 217 android:permission="android.permission.BIND_WALLPAPER" 218 android:exported="true" /> 219 220 <activity android:name=".tuner.TunerActivity" 221 android:enabled="false" 222 android:icon="@drawable/tuner" 223 android:theme="@style/TunerSettings" 224 android:label="@string/system_ui_tuner" 225 android:process=":tuner" 226 android:exported="true"> 227 <intent-filter> 228 <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> 229 <category android:name="android.intent.category.DEFAULT" /> 230 </intent-filter> 231 <meta-data android:name="com.android.settings.category" 232 android:value="com.android.settings.category.system" /> 233 </activity> 234 235 <activity-alias android:name=".DemoMode" 236 android:targetActivity=".tuner.TunerActivity" 237 android:icon="@drawable/tuner" 238 android:theme="@style/TunerSettings" 239 android:label="@string/demo_mode" 240 android:process=":tuner" 241 android:exported="true"> 242 <intent-filter> 243 <action android:name="com.android.settings.action.DEMO_MODE" /> 244 <category android:name="android.intent.category.DEFAULT" /> 245 </intent-filter> 246 </activity-alias> 247 248 <!-- Service used by secondary users to register themselves with the system user. --> 249 <service android:name=".recents.RecentsSystemUserService" 250 android:exported="false" 251 android:permission="com.android.systemui.permission.SELF" /> 252 253 <!-- Alternate Recents --> 254 <activity android:name=".recents.RecentsActivity" 255 android:label="@string/accessibility_desc_recent_apps" 256 android:exported="false" 257 android:launchMode="singleInstance" 258 android:excludeFromRecents="true" 259 android:stateNotNeeded="true" 260 android:resumeWhilePausing="true" 261 android:screenOrientation="behind" 262 android:resizeableActivity="true" 263 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden" 264 android:theme="@style/RecentsTheme.Wallpaper"> 265 <intent-filter> 266 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 267 </intent-filter> 268 </activity> 269 270 <activity android:name=".recents.tv.RecentsTvActivity" 271 android:label="@string/accessibility_desc_recent_apps" 272 android:exported="false" 273 android:launchMode="singleInstance" 274 android:excludeFromRecents="true" 275 android:stateNotNeeded="true" 276 android:resumeWhilePausing="true" 277 android:screenOrientation="behind" 278 android:theme="@style/RecentsTvTheme.Wallpaper"> 279 <intent-filter> 280 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 281 </intent-filter> 282 </activity> 283 284 <activity 285 android:name=".stackdivider.ForcedResizableInfoActivity" 286 android:theme="@style/ForcedResizableTheme" 287 android:excludeFromRecents="true" 288 android:stateNotNeeded="true" 289 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 290 android:exported="false"> 291 </activity> 292 293 <!-- Callback for dismissing screenshot notification after a share target is picked --> 294 <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver" 295 android:process=":screenshot" 296 android:exported="false" /> 297 298 <!-- Callback for deleting screenshot notification --> 299 <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver" 300 android:process=":screenshot" 301 android:exported="false" /> 302 303 <!-- started from UsbDeviceSettingsManager --> 304 <activity android:name=".usb.UsbConfirmActivity" 305 android:exported="true" 306 android:permission="android.permission.MANAGE_USB" 307 android:theme="@style/Theme.SystemUI.Dialog.Alert" 308 android:finishOnCloseSystemDialogs="true" 309 android:excludeFromRecents="true"> 310 </activity> 311 312 <!-- started from UsbDeviceSettingsManager --> 313 <activity android:name=".usb.UsbPermissionActivity" 314 android:exported="true" 315 android:permission="android.permission.MANAGE_USB" 316 android:theme="@style/Theme.SystemUI.Dialog.Alert" 317 android:finishOnCloseSystemDialogs="true" 318 android:excludeFromRecents="true"> 319 </activity> 320 321 <!-- started from UsbDeviceSettingsManager --> 322 <activity android:name=".usb.UsbResolverActivity" 323 android:exported="true" 324 android:permission="android.permission.MANAGE_USB" 325 android:theme="@style/Theme.SystemUI.Dialog.Alert" 326 android:finishOnCloseSystemDialogs="true" 327 android:excludeFromRecents="true"> 328 </activity> 329 330 <!-- started from UsbDeviceSettingsManager --> 331 <activity android:name=".usb.UsbAccessoryUriActivity" 332 android:exported="true" 333 android:permission="android.permission.MANAGE_USB" 334 android:theme="@style/Theme.SystemUI.Dialog.Alert" 335 android:finishOnCloseSystemDialogs="true" 336 android:excludeFromRecents="true"> 337 </activity> 338 339 <!-- started from UsbDebuggingManager --> 340 <activity android:name=".usb.UsbDebuggingActivity" 341 android:permission="android.permission.MANAGE_USB" 342 android:theme="@style/Theme.SystemUI.Dialog.Alert" 343 android:finishOnCloseSystemDialogs="true" 344 android:excludeFromRecents="true"> 345 </activity> 346 <activity android:name=".usb.UsbDebuggingSecondaryUserActivity" 347 android:theme="@style/Theme.SystemUI.Dialog.Alert" 348 android:finishOnCloseSystemDialogs="true" 349 android:excludeFromRecents="true"> 350 </activity> 351 352 <!-- started from NetworkPolicyManagerService --> 353 <activity 354 android:name=".net.NetworkOverLimitActivity" 355 android:exported="true" 356 android:permission="android.permission.MANAGE_NETWORK_POLICY" 357 android:theme="@android:style/Theme.DeviceDefault.Light.Panel" 358 android:finishOnCloseSystemDialogs="true" 359 android:launchMode="singleTop" 360 android:taskAffinity="com.android.systemui.net" 361 android:excludeFromRecents="true" /> 362 363 <!-- started from MediaProjectionManager --> 364 <activity 365 android:name=".media.MediaProjectionPermissionActivity" 366 android:exported="true" 367 android:theme="@style/Theme.AlertDialogHost" 368 android:finishOnCloseSystemDialogs="true" 369 android:launchMode="singleTop" 370 android:excludeFromRecents="true" /> 371 372 <!-- started from PipUI --> 373 <activity 374 android:name="com.android.systemui.tv.pip.PipMenuActivity" 375 android:exported="true" 376 android:theme="@style/PipTheme" 377 android:launchMode="singleTop" 378 android:taskAffinity="" 379 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection" 380 android:resizeableActivity="true" 381 android:supportsPictureInPicture="true" 382 androidprv:alwaysFocusable="true" 383 android:excludeFromRecents="true" /> 384 <activity 385 android:name="com.android.systemui.tv.pip.PipOverlayActivity" 386 android:exported="true" 387 android:theme="@style/PipTheme" 388 android:taskAffinity="" 389 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection" 390 android:resizeableActivity="true" 391 android:supportsPictureInPicture="true" 392 android:excludeFromRecents="true" /> 393 <activity 394 android:name="com.android.systemui.tv.pip.PipOnboardingActivity" 395 android:exported="true" 396 android:theme="@style/PipTheme" 397 android:launchMode="singleTop" 398 android:excludeFromRecents="true" /> 399 400 <!-- platform logo easter egg activity --> 401 <activity 402 android:name=".DessertCase" 403 android:exported="true" 404 android:label="@string/dessert_case" 405 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 406 android:hardwareAccelerated="true" 407 android:launchMode="singleInstance" 408 android:screenOrientation="locked" 409 android:process=":sweetsweetdesserts" 410 android:excludeFromRecents="true"> 411 <intent-filter> 412 <action android:name="android.intent.action.MAIN" /> 413 <category android:name="android.intent.category.DEFAULT" /> 414 </intent-filter> 415 </activity> 416 417 <activity android:name=".egg.MLandActivity" 418 android:theme="@android:style/Theme.Material.NoActionBar" 419 android:exported="true" 420 android:icon="@drawable/icon" 421 android:label="@string/mland" 422 android:hardwareAccelerated="true" 423 android:launchMode="singleInstance" 424 android:screenOrientation="locked" 425 android:process=":sweetsweetdesserts" 426 android:excludeFromRecents="true"> 427 <intent-filter> 428 <action android:name="android.intent.action.MAIN"/> 429 <category android:name="android.intent.category.DEFAULT" /> 430 </intent-filter> 431 </activity> 432 433 <!-- a gallery of delicious treats --> 434 <service 435 android:name=".DessertCaseDream" 436 android:exported="true" 437 android:label="@string/dessert_case" 438 android:permission="android.permission.BIND_DREAM_SERVICE" 439 android:enabled="false" 440 android:process=":sweetsweetdesserts" 441 > 442 <intent-filter> 443 <action android:name="android.service.dreams.DreamService" /> 444 <category android:name="android.intent.category.DEFAULT" /> 445 </intent-filter> 446 </service> 447 448 <service 449 android:name=".keyguard.KeyguardService" 450 android:exported="true" 451 android:enabled="@bool/config_enableKeyguardService" /> 452 453 <activity android:name=".Somnambulator" 454 android:label="@string/start_dreams" 455 android:icon="@mipmap/ic_launcher_dreams" 456 android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 457 android:exported="true" 458 android:excludeFromRecents="true" 459 > 460 <!-- 461 <intent-filter> 462 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 463 <category android:name="android.intent.category.DEFAULT" /> 464 </intent-filter> 465 --> 466 <intent-filter> 467 <action android:name="android.intent.action.MAIN" /> 468 <category android:name="android.intent.category.DEFAULT" /> 469 <category android:name="android.intent.category.DESK_DOCK" /> 470 </intent-filter> 471 </activity> 472 473 <activity 474 android:name=".settings.BrightnessDialog" 475 android:label="@string/quick_settings_brightness_dialog_title" 476 android:theme="@android:style/Theme.DeviceDefault.Dialog" 477 android:finishOnCloseSystemDialogs="true" 478 android:launchMode="singleInstance" 479 android:excludeFromRecents="true" 480 android:exported="true"> 481 <intent-filter> 482 <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" /> 483 <category android:name="android.intent.category.DEFAULT" /> 484 </intent-filter> 485 </activity> 486 487 <!-- Doze with notifications, run in main sysui process for every user --> 488 <service 489 android:name=".doze.DozeService" 490 android:exported="true" 491 android:singleUser="true" 492 android:permission="android.permission.BIND_DREAM_SERVICE" /> 493 494 <receiver 495 android:name=".tuner.TunerService$ClearReceiver" 496 android:exported="false"> 497 <intent-filter> 498 <action android:name="com.android.systemui.action.CLEAR_TUNER" /> 499 </intent-filter> 500 </receiver> 501 502 <receiver 503 android:name=".statusbar.KeyboardShortcutsReceiver"> 504 <intent-filter> 505 <action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" /> 506 <action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" /> 507 </intent-filter> 508 </receiver> 509 </application> 510</manifest> 511