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 <!-- Needed for passing extras with intent ACTION_SHOW_ADMIN_SUPPORT_DETAILS --> 154 <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> 155 156 <!-- TV picture-in-picture --> 157 <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" /> 158 159 <!-- DND access --> 160 <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" /> 161 162 <!-- It's like, reality, but, you know, virtual --> 163 <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" /> 164 165 <!-- the ability to rename notifications posted by other apps --> 166 <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" /> 167 168 <!-- shortcut manager --> 169 <uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" /> 170 171 <application 172 android:name=".SystemUIApplication" 173 android:persistent="true" 174 android:allowClearUserData="false" 175 android:allowBackup="false" 176 android:hardwareAccelerated="true" 177 android:label="@string/app_label" 178 android:icon="@drawable/icon" 179 android:process="com.android.systemui" 180 android:supportsRtl="true" 181 android:theme="@style/systemui_theme" 182 android:defaultToDeviceProtectedStorage="true" 183 android:directBootAware="true"> 184 <!-- Keep theme in sync with SystemUIApplication.onCreate(). 185 Setting the theme on the application does not affect views inflated by services. 186 The application theme is set again from onCreate to take effect for those views. --> 187 188 <!-- Broadcast receiver that gets the broadcast at boot time and starts 189 up everything else. 190 TODO: Should have an android:permission attribute 191 --> 192 <service android:name="SystemUIService" 193 android:exported="true" 194 /> 195 196 <!-- Recents depends on every user having their own SystemUI process, so on user switch, 197 ensure that the process is created by starting this service. 198 --> 199 <service android:name="SystemUISecondaryUserService" 200 android:exported="true" 201 android:permission="com.android.systemui.permission.SELF" /> 202 203 204 <!-- started from PhoneWindowManager 205 TODO: Should have an android:permission attribute --> 206 <service android:name=".screenshot.TakeScreenshotService" 207 android:process=":screenshot" 208 android:exported="false" /> 209 210 <!-- Called from PhoneWindowManager --> 211 <receiver android:name=".screenshot.ScreenshotServiceErrorReceiver" 212 android:process=":screenshot" 213 android:exported="false"> 214 <intent-filter> 215 <action android:name="com.android.systemui.screenshot.SHOW_ERROR" /> 216 </intent-filter> 217 </receiver> 218 219 <service android:name=".LoadAverageService" 220 android:exported="true" /> 221 222 <service android:name=".ImageWallpaper" 223 android:permission="android.permission.BIND_WALLPAPER" 224 android:exported="true" /> 225 226 <receiver android:name=".BootReceiver" androidprv:systemUserOnly="true"> 227 <intent-filter android:priority="1000"> 228 <action android:name="android.intent.action.BOOT_COMPLETED" /> 229 </intent-filter> 230 </receiver> 231 232 <activity android:name=".tuner.TunerActivity" 233 android:enabled="false" 234 android:icon="@drawable/tuner" 235 android:theme="@style/TunerSettings" 236 android:label="@string/system_ui_tuner" 237 android:process=":tuner" 238 android:exported="true"> 239 <intent-filter> 240 <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> 241 <category android:name="android.intent.category.DEFAULT" /> 242 </intent-filter> 243 <meta-data android:name="com.android.settings.category" 244 android:value="com.android.settings.category.system" /> 245 </activity> 246 247 <activity-alias android:name=".DemoMode" 248 android:targetActivity=".tuner.TunerActivity" 249 android:icon="@drawable/tuner" 250 android:theme="@style/TunerSettings" 251 android:label="@string/demo_mode" 252 android:process=":tuner" 253 android:exported="true"> 254 <intent-filter> 255 <action android:name="com.android.settings.action.DEMO_MODE" /> 256 <category android:name="android.intent.category.DEFAULT" /> 257 </intent-filter> 258 </activity-alias> 259 260 <!-- Service used by secondary users to register themselves with the system user. --> 261 <service android:name=".recents.RecentsSystemUserService" 262 android:exported="false" 263 android:permission="com.android.systemui.permission.SELF" /> 264 265 <!-- Alternate Recents --> 266 <activity android:name=".recents.RecentsActivity" 267 android:label="@string/accessibility_desc_recent_apps" 268 android:exported="false" 269 android:launchMode="singleInstance" 270 android:excludeFromRecents="true" 271 android:stateNotNeeded="true" 272 android:resumeWhilePausing="true" 273 android:screenOrientation="behind" 274 android:resizeableActivity="true" 275 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 276 android:theme="@style/RecentsTheme.Wallpaper"> 277 <intent-filter> 278 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 279 </intent-filter> 280 </activity> 281 282 <activity android:name=".recents.tv.RecentsTvActivity" 283 android:label="@string/accessibility_desc_recent_apps" 284 android:exported="false" 285 android:launchMode="singleInstance" 286 android:excludeFromRecents="true" 287 android:stateNotNeeded="true" 288 android:resumeWhilePausing="true" 289 android:screenOrientation="behind" 290 android:theme="@style/RecentsTvTheme.Wallpaper"> 291 <intent-filter> 292 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 293 </intent-filter> 294 </activity> 295 296 <activity 297 android:name=".stackdivider.ForcedResizableInfoActivity" 298 android:theme="@style/ForcedResizableTheme" 299 android:excludeFromRecents="true" 300 android:stateNotNeeded="true" 301 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 302 android:exported="false"> 303 </activity> 304 305 <!-- Callback for dismissing screenshot notification after a share target is picked --> 306 <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver" 307 android:process=":screenshot" 308 android:exported="false" /> 309 310 <!-- Callback for deleting screenshot notification --> 311 <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver" 312 android:process=":screenshot" 313 android:exported="false" /> 314 315 <!-- started from UsbDeviceSettingsManager --> 316 <activity android:name=".usb.UsbConfirmActivity" 317 android:exported="true" 318 android:permission="android.permission.MANAGE_USB" 319 android:theme="@style/Theme.SystemUI.Dialog.Alert" 320 android:finishOnCloseSystemDialogs="true" 321 android:excludeFromRecents="true"> 322 </activity> 323 324 <!-- started from UsbDeviceSettingsManager --> 325 <activity android:name=".usb.UsbPermissionActivity" 326 android:exported="true" 327 android:permission="android.permission.MANAGE_USB" 328 android:theme="@style/Theme.SystemUI.Dialog.Alert" 329 android:finishOnCloseSystemDialogs="true" 330 android:excludeFromRecents="true"> 331 </activity> 332 333 <!-- started from UsbDeviceSettingsManager --> 334 <activity android:name=".usb.UsbResolverActivity" 335 android:exported="true" 336 android:permission="android.permission.MANAGE_USB" 337 android:theme="@style/Theme.SystemUI.Dialog.Alert" 338 android:finishOnCloseSystemDialogs="true" 339 android:excludeFromRecents="true"> 340 </activity> 341 342 <!-- started from UsbDeviceSettingsManager --> 343 <activity android:name=".usb.UsbAccessoryUriActivity" 344 android:exported="true" 345 android:permission="android.permission.MANAGE_USB" 346 android:theme="@style/Theme.SystemUI.Dialog.Alert" 347 android:finishOnCloseSystemDialogs="true" 348 android:excludeFromRecents="true"> 349 </activity> 350 351 <!-- started from UsbDebuggingManager --> 352 <activity android:name=".usb.UsbDebuggingActivity" 353 android:permission="android.permission.MANAGE_USB" 354 android:theme="@style/Theme.SystemUI.Dialog.Alert" 355 android:finishOnCloseSystemDialogs="true" 356 android:excludeFromRecents="true"> 357 </activity> 358 <activity android:name=".usb.UsbDebuggingSecondaryUserActivity" 359 android:theme="@style/Theme.SystemUI.Dialog.Alert" 360 android:finishOnCloseSystemDialogs="true" 361 android:excludeFromRecents="true"> 362 </activity> 363 364 <!-- started from NetworkPolicyManagerService --> 365 <activity 366 android:name=".net.NetworkOverLimitActivity" 367 android:exported="true" 368 android:permission="android.permission.MANAGE_NETWORK_POLICY" 369 android:theme="@android:style/Theme.DeviceDefault.Light.Panel" 370 android:finishOnCloseSystemDialogs="true" 371 android:launchMode="singleTop" 372 android:taskAffinity="com.android.systemui.net" 373 android:excludeFromRecents="true" /> 374 375 <!-- started from MediaProjectionManager --> 376 <activity 377 android:name=".media.MediaProjectionPermissionActivity" 378 android:exported="true" 379 android:theme="@style/Theme.AlertDialogHost" 380 android:finishOnCloseSystemDialogs="true" 381 android:launchMode="singleTop" 382 android:excludeFromRecents="true" /> 383 384 <!-- started from PipUI --> 385 <activity 386 android:name="com.android.systemui.tv.pip.PipMenuActivity" 387 android:exported="true" 388 android:theme="@style/PipTheme" 389 android:launchMode="singleTop" 390 android:taskAffinity="" 391 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection" 392 android:resizeableActivity="true" 393 android:supportsPictureInPicture="true" 394 androidprv:alwaysFocusable="true" 395 android:excludeFromRecents="true" /> 396 <activity 397 android:name="com.android.systemui.tv.pip.PipOverlayActivity" 398 android:exported="true" 399 android:theme="@style/PipTheme" 400 android:taskAffinity="" 401 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection" 402 android:resizeableActivity="true" 403 android:supportsPictureInPicture="true" 404 android:excludeFromRecents="true" /> 405 <activity 406 android:name="com.android.systemui.tv.pip.PipOnboardingActivity" 407 android:exported="true" 408 android:theme="@style/PipTheme" 409 android:launchMode="singleTop" 410 android:excludeFromRecents="true" /> 411 412 <!-- platform logo easter egg activity --> 413 <activity 414 android:name=".DessertCase" 415 android:exported="true" 416 android:label="@string/dessert_case" 417 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 418 android:hardwareAccelerated="true" 419 android:launchMode="singleInstance" 420 android:screenOrientation="locked" 421 android:process=":sweetsweetdesserts" 422 android:excludeFromRecents="true"> 423 <intent-filter> 424 <action android:name="android.intent.action.MAIN" /> 425 <category android:name="android.intent.category.DEFAULT" /> 426 </intent-filter> 427 </activity> 428 429 <activity android:name=".egg.MLandActivity" 430 android:theme="@android:style/Theme.Material.NoActionBar" 431 android:exported="true" 432 android:icon="@drawable/icon" 433 android:label="@string/mland" 434 android:hardwareAccelerated="true" 435 android:launchMode="singleInstance" 436 android:screenOrientation="locked" 437 android:process=":sweetsweetdesserts" 438 android:excludeFromRecents="true"> 439 <intent-filter> 440 <action android:name="android.intent.action.MAIN"/> 441 <category android:name="android.intent.category.DEFAULT" /> 442 </intent-filter> 443 </activity> 444 445 <!-- a gallery of delicious treats --> 446 <service 447 android:name=".DessertCaseDream" 448 android:exported="true" 449 android:label="@string/dessert_case" 450 android:permission="android.permission.BIND_DREAM_SERVICE" 451 android:enabled="false" 452 android:process=":sweetsweetdesserts" 453 > 454 <intent-filter> 455 <action android:name="android.service.dreams.DreamService" /> 456 <category android:name="android.intent.category.DEFAULT" /> 457 </intent-filter> 458 </service> 459 460 <service 461 android:name=".keyguard.KeyguardService" 462 android:exported="true" 463 android:enabled="@bool/config_enableKeyguardService" /> 464 465 <activity android:name=".Somnambulator" 466 android:label="@string/start_dreams" 467 android:icon="@mipmap/ic_launcher_dreams" 468 android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 469 android:exported="true" 470 android:excludeFromRecents="true" 471 > 472 <!-- 473 <intent-filter> 474 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 475 <category android:name="android.intent.category.DEFAULT" /> 476 </intent-filter> 477 --> 478 <intent-filter> 479 <action android:name="android.intent.action.MAIN" /> 480 <category android:name="android.intent.category.DEFAULT" /> 481 <category android:name="android.intent.category.DESK_DOCK" /> 482 </intent-filter> 483 </activity> 484 485 <activity 486 android:name=".settings.BrightnessDialog" 487 android:label="@string/quick_settings_brightness_dialog_title" 488 android:theme="@android:style/Theme.DeviceDefault.Dialog" 489 android:finishOnCloseSystemDialogs="true" 490 android:launchMode="singleInstance" 491 android:excludeFromRecents="true" 492 android:exported="true"> 493 <intent-filter> 494 <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" /> 495 <category android:name="android.intent.category.DEFAULT" /> 496 </intent-filter> 497 </activity> 498 499 <!-- Doze with notifications, run in main sysui process for every user --> 500 <service 501 android:name=".doze.DozeService" 502 android:exported="true" 503 android:singleUser="true" 504 android:permission="android.permission.BIND_DREAM_SERVICE" /> 505 506 <receiver 507 android:name=".tuner.TunerService$ClearReceiver" 508 android:exported="false"> 509 <intent-filter> 510 <action android:name="com.android.systemui.action.CLEAR_TUNER" /> 511 </intent-filter> 512 </receiver> 513 514 <receiver 515 android:name=".statusbar.KeyboardShortcutsReceiver"> 516 <intent-filter> 517 <action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" /> 518 <action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" /> 519 </intent-filter> 520 </receiver> 521 </application> 522 </manifest> 523