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 <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=".LoadAverageService" 217 android:exported="true" /> 218 219 <service android:name=".ImageWallpaper" 220 android:permission="android.permission.BIND_WALLPAPER" 221 android:exported="true" /> 222 223 <receiver android:name=".BootReceiver" androidprv:systemUserOnly="true"> 224 <intent-filter android:priority="1000"> 225 <action android:name="android.intent.action.BOOT_COMPLETED" /> 226 </intent-filter> 227 </receiver> 228 229 <activity android:name=".tuner.TunerActivity" 230 android:enabled="false" 231 android:icon="@drawable/tuner" 232 android:theme="@style/TunerSettings" 233 android:label="@string/system_ui_tuner" 234 android:process=":tuner" 235 android:exported="true"> 236 <intent-filter> 237 <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> 238 <category android:name="android.intent.category.DEFAULT" /> 239 </intent-filter> 240 <meta-data android:name="com.android.settings.category" 241 android:value="com.android.settings.category.system" /> 242 </activity> 243 244 <activity-alias android:name=".DemoMode" 245 android:targetActivity=".tuner.TunerActivity" 246 android:icon="@drawable/tuner" 247 android:theme="@style/TunerSettings" 248 android:label="@string/demo_mode" 249 android:process=":tuner" 250 android:exported="true"> 251 <intent-filter> 252 <action android:name="com.android.settings.action.DEMO_MODE" /> 253 <category android:name="android.intent.category.DEFAULT" /> 254 </intent-filter> 255 </activity-alias> 256 257 <!-- Service used by secondary users to register themselves with the system user. --> 258 <service android:name=".recents.RecentsSystemUserService" 259 android:exported="false" 260 android:permission="com.android.systemui.permission.SELF" /> 261 262 <!-- Alternate Recents --> 263 <activity android:name=".recents.RecentsActivity" 264 android:label="@string/accessibility_desc_recent_apps" 265 android:exported="false" 266 android:launchMode="singleInstance" 267 android:excludeFromRecents="true" 268 android:stateNotNeeded="true" 269 android:resumeWhilePausing="true" 270 android:screenOrientation="behind" 271 android:resizeableActivity="true" 272 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 273 android:theme="@style/RecentsTheme.Wallpaper"> 274 <intent-filter> 275 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 276 </intent-filter> 277 </activity> 278 279 <activity android:name=".recents.tv.RecentsTvActivity" 280 android:label="@string/accessibility_desc_recent_apps" 281 android:exported="false" 282 android:launchMode="singleInstance" 283 android:excludeFromRecents="true" 284 android:stateNotNeeded="true" 285 android:resumeWhilePausing="true" 286 android:screenOrientation="behind" 287 android:theme="@style/RecentsTvTheme.Wallpaper"> 288 <intent-filter> 289 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> 290 </intent-filter> 291 </activity> 292 293 <activity 294 android:name=".stackdivider.ForcedResizableInfoActivity" 295 android:theme="@style/ForcedResizableTheme" 296 android:excludeFromRecents="true" 297 android:stateNotNeeded="true" 298 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 299 android:exported="false"> 300 </activity> 301 302 <!-- Callback for dismissing screenshot notification after a share target is picked --> 303 <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver" 304 android:process=":screenshot" 305 android:exported="false" /> 306 307 <!-- Callback for deleting screenshot notification --> 308 <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver" 309 android:process=":screenshot" 310 android:exported="false" /> 311 312 <!-- started from UsbDeviceSettingsManager --> 313 <activity android:name=".usb.UsbConfirmActivity" 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.UsbPermissionActivity" 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.UsbResolverActivity" 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 UsbDeviceSettingsManager --> 340 <activity android:name=".usb.UsbAccessoryUriActivity" 341 android:exported="true" 342 android:permission="android.permission.MANAGE_USB" 343 android:theme="@style/Theme.SystemUI.Dialog.Alert" 344 android:finishOnCloseSystemDialogs="true" 345 android:excludeFromRecents="true"> 346 </activity> 347 348 <!-- started from UsbDebuggingManager --> 349 <activity android:name=".usb.UsbDebuggingActivity" 350 android:permission="android.permission.MANAGE_USB" 351 android:theme="@style/Theme.SystemUI.Dialog.Alert" 352 android:finishOnCloseSystemDialogs="true" 353 android:excludeFromRecents="true"> 354 </activity> 355 <activity android:name=".usb.UsbDebuggingSecondaryUserActivity" 356 android:theme="@style/Theme.SystemUI.Dialog.Alert" 357 android:finishOnCloseSystemDialogs="true" 358 android:excludeFromRecents="true"> 359 </activity> 360 361 <!-- started from NetworkPolicyManagerService --> 362 <activity 363 android:name=".net.NetworkOverLimitActivity" 364 android:exported="true" 365 android:permission="android.permission.MANAGE_NETWORK_POLICY" 366 android:theme="@android:style/Theme.DeviceDefault.Light.Panel" 367 android:finishOnCloseSystemDialogs="true" 368 android:launchMode="singleTop" 369 android:taskAffinity="com.android.systemui.net" 370 android:excludeFromRecents="true" /> 371 372 <!-- started from MediaProjectionManager --> 373 <activity 374 android:name=".media.MediaProjectionPermissionActivity" 375 android:exported="true" 376 android:theme="@style/Theme.AlertDialogHost" 377 android:finishOnCloseSystemDialogs="true" 378 android:launchMode="singleTop" 379 android:excludeFromRecents="true" /> 380 381 <!-- started from PipUI --> 382 <activity 383 android:name="com.android.systemui.tv.pip.PipMenuActivity" 384 android:exported="true" 385 android:theme="@style/PipTheme" 386 android:launchMode="singleTop" 387 android:taskAffinity="" 388 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" 389 android:resizeableActivity="true" 390 android:supportsPictureInPicture="true" 391 androidprv:alwaysFocusable="true" 392 android:excludeFromRecents="true" /> 393 <activity 394 android:name="com.android.systemui.tv.pip.PipOverlayActivity" 395 android:exported="true" 396 android:theme="@style/PipTheme" 397 android:taskAffinity="" 398 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" 399 android:resizeableActivity="true" 400 android:supportsPictureInPicture="true" 401 android:excludeFromRecents="true" /> 402 <activity 403 android:name="com.android.systemui.tv.pip.PipOnboardingActivity" 404 android:exported="true" 405 android:theme="@style/PipTheme" 406 android:launchMode="singleTop" 407 android:excludeFromRecents="true" /> 408 409 <!-- platform logo easter egg activity --> 410 <activity 411 android:name=".DessertCase" 412 android:exported="true" 413 android:label="@string/dessert_case" 414 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 415 android:hardwareAccelerated="true" 416 android:launchMode="singleInstance" 417 android:screenOrientation="locked" 418 android:process=":sweetsweetdesserts" 419 android:excludeFromRecents="true"> 420 <intent-filter> 421 <action android:name="android.intent.action.MAIN" /> 422 <category android:name="android.intent.category.DEFAULT" /> 423 </intent-filter> 424 </activity> 425 426 <activity android:name=".egg.MLandActivity" 427 android:theme="@android:style/Theme.Material.NoActionBar" 428 android:exported="true" 429 android:icon="@drawable/icon" 430 android:label="@string/mland" 431 android:hardwareAccelerated="true" 432 android:launchMode="singleInstance" 433 android:screenOrientation="locked" 434 android:process=":sweetsweetdesserts" 435 android:excludeFromRecents="true"> 436 <intent-filter> 437 <action android:name="android.intent.action.MAIN"/> 438 <category android:name="android.intent.category.DEFAULT" /> 439 </intent-filter> 440 </activity> 441 442 <!-- a gallery of delicious treats --> 443 <service 444 android:name=".DessertCaseDream" 445 android:exported="true" 446 android:label="@string/dessert_case" 447 android:permission="android.permission.BIND_DREAM_SERVICE" 448 android:enabled="false" 449 android:process=":sweetsweetdesserts" 450 > 451 <intent-filter> 452 <action android:name="android.service.dreams.DreamService" /> 453 <category android:name="android.intent.category.DEFAULT" /> 454 </intent-filter> 455 </service> 456 457 <service 458 android:name=".keyguard.KeyguardService" 459 android:exported="true" 460 android:enabled="@bool/config_enableKeyguardService" /> 461 462 <activity android:name=".Somnambulator" 463 android:label="@string/start_dreams" 464 android:icon="@mipmap/ic_launcher_dreams" 465 android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 466 android:exported="true" 467 android:excludeFromRecents="true" 468 > 469 <!-- 470 <intent-filter> 471 <action android:name="android.intent.action.CREATE_SHORTCUT" /> 472 <category android:name="android.intent.category.DEFAULT" /> 473 </intent-filter> 474 --> 475 <intent-filter> 476 <action android:name="android.intent.action.MAIN" /> 477 <category android:name="android.intent.category.DEFAULT" /> 478 <category android:name="android.intent.category.DESK_DOCK" /> 479 </intent-filter> 480 </activity> 481 482 <activity 483 android:name=".settings.BrightnessDialog" 484 android:label="@string/quick_settings_brightness_dialog_title" 485 android:theme="@android:style/Theme.DeviceDefault.Dialog" 486 android:finishOnCloseSystemDialogs="true" 487 android:launchMode="singleInstance" 488 android:excludeFromRecents="true" 489 android:exported="true"> 490 <intent-filter> 491 <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" /> 492 <category android:name="android.intent.category.DEFAULT" /> 493 </intent-filter> 494 </activity> 495 496 <!-- Doze with notifications, run in main sysui process for every user --> 497 <service 498 android:name=".doze.DozeService" 499 android:exported="true" 500 android:singleUser="true" 501 android:permission="android.permission.BIND_DREAM_SERVICE" /> 502 503 <receiver 504 android:name=".tuner.TunerService$ClearReceiver" 505 android:exported="false"> 506 <intent-filter> 507 <action android:name="com.android.systemui.action.CLEAR_TUNER" /> 508 </intent-filter> 509 </receiver> 510 511 <receiver 512 android:name=".statusbar.KeyboardShortcutsReceiver"> 513 <intent-filter> 514 <action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" /> 515 <action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" /> 516 </intent-filter> 517 </receiver> 518 </application> 519</manifest> 520