1 <?xml version="1.0" encoding="utf-8"?>
4 * Copyright (c) 2014 Google Inc.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
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"
25 <protected-broadcast android:name="com.android.systemui.action.PLUGIN_CHANGED" />
27 <!-- SysUI must be the one to define this permission; its name is
28 referenced by the core OS. -->
29 <permission android:name="android.permission.systemui.IDENTITY"
30 android:protectionLevel="signature" />
32 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
33 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
34 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
35 <!-- Used to read storage for all users -->
36 <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
37 <uses-permission android:name="android.permission.WAKE_LOCK" />
39 <uses-permission android:name="android.permission.INJECT_EVENTS" />
40 <uses-permission android:name="android.permission.DUMP" />
41 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
43 <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
44 <uses-permission android:name="android.permission.STATUS_BAR" />
45 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
46 <uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" />
48 <uses-permission android:name="android.permission.MANAGE_USERS" />
49 <uses-permission android:name="android.permission.READ_PROFILE" />
50 <uses-permission android:name="android.permission.READ_CONTACTS" />
51 <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
52 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
53 <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
55 <!-- Networking and telephony -->
56 <uses-permission android:name="android.permission.BLUETOOTH" />
57 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
58 <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
59 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
60 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
61 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
62 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
63 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
64 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
65 <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
66 <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
67 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
68 <uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
69 <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
70 <uses-permission android:name="android.permission.REQUEST_NETWORK_SCORES" />
71 <uses-permission android:name="android.permission.CONTROL_VPN" />
72 <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
73 <!-- Physical hardware -->
74 <uses-permission android:name="android.permission.MANAGE_USB" />
75 <uses-permission android:name="android.permission.DEVICE_POWER" />
76 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
77 <uses-permission android:name="android.permission.MASTER_CLEAR" />
78 <uses-permission android:name="android.permission.VIBRATE" />
80 <!-- ActivityManager -->
81 <uses-permission android:name="android.permission.REAL_GET_TASKS" />
82 <uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
83 <uses-permission android:name="android.permission.REORDER_TASKS" />
84 <uses-permission android:name="android.permission.REMOVE_TASKS" />
85 <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
86 <uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
87 <uses-permission android:name="android.permission.START_ANY_ACTIVITY" />
88 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
89 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
90 <uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" />
91 <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
92 <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
93 <uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" />
95 <!-- WindowManager -->
96 <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
97 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
98 <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
99 <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
100 <uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" />
101 <uses-permission android:name="android.permission.SET_ORIENTATION" />
102 <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
104 <!-- DreamManager -->
105 <uses-permission android:name="android.permission.READ_DREAM_STATE" />
106 <uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
108 <!-- Alarm clocks -->
109 <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
112 <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
113 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
114 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
115 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
116 <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
117 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
118 <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
119 <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
120 <uses-permission android:name="android.permission.TRUST_LISTENER" />
121 <uses-permission android:name="android.permission.USE_FINGERPRINT" />
122 <uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
124 <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
125 <uses-permission android:name="android.permission.SET_WALLPAPER"/>
128 <uses-permission android:name="android.permission.BIND_APPWIDGET" />
130 <!-- Wifi Display -->
131 <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
133 <uses-permission android:name="android.permission.CAMERA" />
135 <!-- Screen Capturing -->
136 <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
139 <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
141 <!-- Doze mode temp whitelisting for notification dispatching. -->
142 <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
144 <!-- Listen for keyboard attachment / detachment -->
145 <uses-permission android:name="android.permission.TABLET_MODE" />
147 <!-- Self permission for internal broadcasts. -->
148 <permission android:name="com.android.systemui.permission.SELF"
149 android:protectionLevel="signature" />
150 <uses-permission android:name="com.android.systemui.permission.SELF" />
152 <permission android:name="com.android.systemui.permission.PLUGIN"
153 android:protectionLevel="signature" />
155 <!-- Adding Quick Settings tiles -->
156 <uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" />
158 <!-- Block notifications inline notifications -->
159 <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
161 <!-- Access battery information -->
162 <uses-permission android:name="android.permission.BATTERY_STATS" />
164 <!-- DevicePolicyManager get user restrictions -->
165 <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
167 <!-- TV picture-in-picture -->
168 <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" />
171 <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" />
173 <!-- It's like, reality, but, you know, virtual -->
174 <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
176 <!-- To control car audio module volume -->
177 <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" />
179 <!-- the ability to rename notifications posted by other apps -->
180 <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
182 <!-- shortcut manager -->
183 <uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" />
185 <uses-permission android:name="android.permission.MODIFY_THEME_OVERLAY" />
187 <!-- accessibility -->
188 <uses-permission android:name="android.permission.MODIFY_ACCESSIBILITY_DATA" />
190 <!-- to control accessibility volume -->
191 <uses-permission android:name="android.permission.CHANGE_ACCESSIBILITY_VOLUME" />
193 <!-- to access ResolverRankerServices -->
194 <uses-permission android:name="android.permission.BIND_RESOLVER_RANKER_SERVICE" />
197 android:name=".SystemUIApplication"
198 android:persistent="true"
199 android:allowClearUserData="false"
200 android:allowBackup="false"
201 android:hardwareAccelerated="true"
202 android:label="@string/app_label"
203 android:icon="@drawable/icon"
204 android:process="com.android.systemui"
205 android:supportsRtl="true"
206 android:theme="@style/systemui_theme"
207 android:defaultToDeviceProtectedStorage="true"
208 android:directBootAware="true">
209 <!-- Keep theme in sync with SystemUIApplication.onCreate().
210 Setting the theme on the application does not affect views inflated by services.
211 The application theme is set again from onCreate to take effect for those views. -->
213 <!-- Broadcast receiver that gets the broadcast at boot time and starts
215 TODO: Should have an android:permission attribute
217 <service android:name="SystemUIService"
218 android:exported="true"
221 <!-- Recents depends on every user having their own SystemUI process, so on user switch,
222 ensure that the process is created by starting this service.
224 <service android:name="SystemUISecondaryUserService"
225 android:exported="true"
226 android:permission="com.android.systemui.permission.SELF" />
229 <!-- started from PhoneWindowManager
230 TODO: Should have an android:permission attribute -->
231 <service android:name=".screenshot.TakeScreenshotService"
232 android:process=":screenshot"
233 android:exported="false" />
235 <!-- Called from PhoneWindowManager -->
236 <receiver android:name=".screenshot.ScreenshotServiceErrorReceiver"
237 android:process=":screenshot"
238 android:exported="false">
240 <action android:name="com.android.systemui.screenshot.SHOW_ERROR" />
244 <receiver android:name=".SysuiRestartReceiver"
245 android:exported="false">
247 <action android:name="com.android.systemui.action.RESTART" />
249 <data android:scheme="package" />
253 <service android:name=".ImageWallpaper"
254 android:permission="android.permission.BIND_WALLPAPER"
255 android:exported="true" />
257 <activity android:name=".tuner.TunerActivity"
258 android:enabled="false"
259 android:icon="@drawable/tuner"
260 android:theme="@style/TunerSettings"
261 android:label="@string/system_ui_tuner"
262 android:process=":tuner"
263 android:exported="true">
265 <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
266 <category android:name="android.intent.category.DEFAULT" />
268 <meta-data android:name="com.android.settings.category"
269 android:value="com.android.settings.category.system" />
272 <activity-alias android:name=".tuner.TunerSettingLink"
273 android:targetActivity=".tuner.TunerActivity"
274 android:enabled="false"
275 android:process=":tuner">
276 <intent-filter android:priority="1">
277 <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
278 <category android:name="android.intent.category.DEFAULT" />
280 <meta-data android:name="com.android.settings.category"
281 android:value="com.android.settings.category.ia.system" />
284 <activity-alias android:name=".DemoMode"
285 android:targetActivity=".tuner.TunerActivity"
286 android:icon="@drawable/tuner"
287 android:theme="@style/TunerSettings"
288 android:label="@string/demo_mode"
289 android:process=":tuner"
290 android:exported="true">
292 <action android:name="com.android.settings.action.DEMO_MODE" />
293 <category android:name="android.intent.category.DEFAULT" />
297 <!-- Service used by secondary users to register themselves with the system user. -->
298 <service android:name=".recents.RecentsSystemUserService"
299 android:exported="false"
300 android:permission="com.android.systemui.permission.SELF" />
302 <!-- Alternate Recents -->
303 <activity android:name=".recents.RecentsActivity"
304 android:label="@string/accessibility_desc_recent_apps"
305 android:exported="false"
306 android:launchMode="singleInstance"
307 android:excludeFromRecents="true"
308 android:stateNotNeeded="true"
309 android:resumeWhilePausing="true"
310 android:screenOrientation="behind"
311 android:resizeableActivity="true"
312 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden"
313 android:theme="@style/RecentsTheme.Wallpaper">
315 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
320 android:name=".stackdivider.ForcedResizableInfoActivity"
321 android:theme="@style/ForcedResizableTheme"
322 android:excludeFromRecents="true"
323 android:stateNotNeeded="true"
324 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
325 android:exported="false">
328 <!-- Callback for dismissing screenshot notification after a share target is picked -->
329 <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver"
330 android:process=":screenshot"
331 android:exported="false" />
333 <!-- Callback for deleting screenshot notification -->
334 <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
335 android:process=":screenshot"
336 android:exported="false" />
338 <!-- started from UsbDeviceSettingsManager -->
339 <activity android:name=".usb.UsbConfirmActivity"
340 android:exported="true"
341 android:permission="android.permission.MANAGE_USB"
342 android:theme="@style/Theme.SystemUI.Dialog.Alert"
343 android:finishOnCloseSystemDialogs="true"
344 android:excludeFromRecents="true">
347 <!-- started from UsbDeviceSettingsManager -->
348 <activity android:name=".usb.UsbPermissionActivity"
349 android:exported="true"
350 android:permission="android.permission.MANAGE_USB"
351 android:theme="@style/Theme.SystemUI.Dialog.Alert"
352 android:finishOnCloseSystemDialogs="true"
353 android:excludeFromRecents="true">
356 <!-- started from UsbDeviceSettingsManager -->
357 <activity android:name=".usb.UsbResolverActivity"
358 android:exported="true"
359 android:permission="android.permission.MANAGE_USB"
360 android:theme="@style/Theme.SystemUI.Dialog.Alert"
361 android:finishOnCloseSystemDialogs="true"
362 android:excludeFromRecents="true">
365 <!-- started from UsbDeviceSettingsManager -->
366 <activity android:name=".usb.UsbAccessoryUriActivity"
367 android:exported="true"
368 android:permission="android.permission.MANAGE_USB"
369 android:theme="@style/Theme.SystemUI.Dialog.Alert"
370 android:finishOnCloseSystemDialogs="true"
371 android:excludeFromRecents="true">
374 <!-- started from UsbDebuggingManager -->
375 <activity android:name=".usb.UsbDebuggingActivity"
376 android:permission="android.permission.MANAGE_USB"
377 android:theme="@style/Theme.SystemUI.Dialog.Alert"
378 android:finishOnCloseSystemDialogs="true"
379 android:excludeFromRecents="true">
381 <activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
382 android:theme="@style/Theme.SystemUI.Dialog.Alert"
383 android:finishOnCloseSystemDialogs="true"
384 android:excludeFromRecents="true">
387 <!-- started from NetworkPolicyManagerService -->
389 android:name=".net.NetworkOverLimitActivity"
390 android:exported="true"
391 android:permission="android.permission.MANAGE_NETWORK_POLICY"
392 android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
393 android:finishOnCloseSystemDialogs="true"
394 android:launchMode="singleTop"
395 android:taskAffinity="com.android.systemui.net"
396 android:excludeFromRecents="true" />
398 <!-- started from MediaProjectionManager -->
400 android:name=".media.MediaProjectionPermissionActivity"
401 android:exported="true"
402 android:theme="@style/Theme.AlertDialogHost"
403 android:finishOnCloseSystemDialogs="true"
404 android:launchMode="singleTop"
405 android:excludeFromRecents="true" />
407 <!-- started from PipUI -->
409 android:name=".pip.tv.PipMenuActivity"
410 android:exported="true"
411 android:theme="@style/PipTheme"
412 android:launchMode="singleTop"
413 android:taskAffinity=""
414 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection"
415 android:resizeableActivity="true"
416 android:supportsPictureInPicture="true"
417 androidprv:alwaysFocusable="true"
418 android:excludeFromRecents="true" />
420 android:name=".pip.tv.PipOverlayActivity"
421 android:exported="true"
422 android:theme="@style/PipTheme"
423 android:taskAffinity=""
424 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection"
425 android:resizeableActivity="true"
426 android:supportsPictureInPicture="true"
427 android:excludeFromRecents="true" />
429 android:name=".pip.tv.PipOnboardingActivity"
430 android:exported="true"
431 android:theme="@style/PipTheme"
432 android:launchMode="singleTop"
433 android:excludeFromRecents="true" />
436 android:name=".pip.phone.PipMenuActivity"
437 android:theme="@style/PipPhoneOverlayControlTheme"
438 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
439 android:excludeFromRecents="true"
440 android:exported="false"
441 android:resizeableActivity="true"
442 android:supportsPictureInPicture="true"
443 android:stateNotNeeded="true"
444 android:taskAffinity=""
445 android:launchMode="singleTop"
446 androidprv:alwaysFocusable="true" />
448 <!-- platform logo easter egg activity -->
450 android:name=".DessertCase"
451 android:exported="true"
452 android:label="@string/dessert_case"
453 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
454 android:hardwareAccelerated="true"
455 android:launchMode="singleInstance"
456 android:screenOrientation="locked"
457 android:process=":sweetsweetdesserts"
458 android:excludeFromRecents="true">
460 <action android:name="android.intent.action.MAIN" />
461 <category android:name="android.intent.category.DEFAULT" />
465 <activity android:name=".egg.MLandActivity"
466 android:theme="@android:style/Theme.Material.NoActionBar"
467 android:exported="true"
468 android:icon="@drawable/icon"
469 android:label="@string/mland"
470 android:hardwareAccelerated="true"
471 android:launchMode="singleInstance"
472 android:screenOrientation="locked"
473 android:process=":sweetsweetdesserts"
474 android:excludeFromRecents="true">
476 <action android:name="android.intent.action.MAIN"/>
477 <category android:name="android.intent.category.DEFAULT" />
481 <!-- a gallery of delicious treats -->
483 android:name=".DessertCaseDream"
484 android:exported="true"
485 android:label="@string/dessert_case"
486 android:permission="android.permission.BIND_DREAM_SERVICE"
487 android:enabled="false"
488 android:process=":sweetsweetdesserts"
491 <action android:name="android.service.dreams.DreamService" />
492 <category android:name="android.intent.category.DEFAULT" />
497 android:name=".keyguard.KeyguardService"
498 android:exported="true"
499 android:enabled="@bool/config_enableKeyguardService" />
501 <activity android:name=".keyguard.WorkLockActivity"
502 android:label="@string/accessibility_desc_work_lock"
503 android:permission="android.permission.MANAGE_USERS"
504 android:exported="false"
505 android:excludeFromRecents="true"
506 android:stateNotNeeded="true"
507 android:resumeWhilePausing="true"
508 android:theme="@android:style/Theme.Black.NoTitleBar">
510 <action android:name="android.app.action.CONFIRM_DEVICE_CREDENTIAL_WITH_USER" />
511 <category android:name="android.intent.category.DEFAULT" />
515 <activity android:name=".Somnambulator"
516 android:label="@string/start_dreams"
517 android:icon="@mipmap/ic_launcher_dreams"
518 android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
519 android:exported="true"
520 android:excludeFromRecents="true"
524 <action android:name="android.intent.action.CREATE_SHORTCUT" />
525 <category android:name="android.intent.category.DEFAULT" />
529 <action android:name="android.intent.action.MAIN" />
530 <category android:name="android.intent.category.DEFAULT" />
531 <category android:name="android.intent.category.DESK_DOCK" />
536 android:name=".settings.BrightnessDialog"
537 android:label="@string/quick_settings_brightness_dialog_title"
538 android:theme="@android:style/Theme.DeviceDefault.Dialog"
539 android:finishOnCloseSystemDialogs="true"
540 android:launchMode="singleInstance"
541 android:excludeFromRecents="true"
542 android:exported="true">
544 <action android:name="com.android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
545 <category android:name="android.intent.category.DEFAULT" />
549 <!-- Doze with notifications, run in main sysui process for every user -->
551 android:name=".doze.DozeService"
552 android:exported="true"
553 android:singleUser="true"
554 android:permission="android.permission.BIND_DREAM_SERVICE" />
557 android:name=".tuner.TunerService$ClearReceiver"
558 android:exported="false">
560 <action android:name="com.android.systemui.action.CLEAR_TUNER" />
565 android:name="android.support.v4.content.FileProvider"
566 android:authorities="com.android.systemui.fileprovider"
567 android:exported="false"
568 android:grantUriPermissions="true">
570 android:name="android.support.FILE_PROVIDER_PATHS"
571 android:resource="@xml/fileprovider" />
575 android:name=".statusbar.KeyboardShortcutsReceiver">
577 <action android:name="com.android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" />
578 <action android:name="com.android.intent.action.SHOW_KEYBOARD_SHORTCUTS" />