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 <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" />
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" />
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" />
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" />
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" />
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" />
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" />
97 <uses-permission android:name="android.permission.READ_DREAM_STATE" />
98 <uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
100 <!-- Alarm clocks -->
101 <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
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" />
116 <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
117 <uses-permission android:name="android.permission.SET_WALLPAPER"/>
120 <uses-permission android:name="android.permission.BIND_APPWIDGET" />
122 <!-- Wifi Display -->
123 <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
125 <uses-permission android:name="android.permission.CAMERA" />
127 <!-- Screen Capturing -->
128 <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
131 <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
133 <!-- Listen for keyboard attachment / detachment -->
134 <uses-permission android:name="android.permission.TABLET_MODE" />
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" />
141 <!-- Adding Quick Settings tiles -->
142 <uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" />
144 <!-- Block notifications inline notifications -->
145 <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
147 <!-- Access battery information -->
148 <uses-permission android:name="android.permission.BATTERY_STATS" />
150 <!-- DevicePolicyManager get user restrictions -->
151 <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
153 <!-- TV picture-in-picture -->
154 <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" />
157 <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" />
159 <!-- It's like, reality, but, you know, virtual -->
160 <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
162 <!-- the ability to rename notifications posted by other apps -->
163 <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
165 <!-- shortcut manager -->
166 <uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" />
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. -->
185 <!-- Broadcast receiver that gets the broadcast at boot time and starts
187 TODO: Should have an android:permission attribute
189 <service android:name="SystemUIService"
190 android:exported="true"
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.
196 <service android:name="SystemUISecondaryUserService"
197 android:exported="true"
198 android:permission="com.android.systemui.permission.SELF" />
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" />
207 <!-- Called from PhoneWindowManager -->
208 <receiver android:name=".screenshot.ScreenshotServiceErrorReceiver"
209 android:process=":screenshot"
210 android:exported="false">
212 <action android:name="com.android.systemui.screenshot.SHOW_ERROR" />
216 <service android:name=".ImageWallpaper"
217 android:permission="android.permission.BIND_WALLPAPER"
218 android:exported="true" />
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">
228 <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
229 <category android:name="android.intent.category.DEFAULT" />
231 <meta-data android:name="com.android.settings.category"
232 android:value="com.android.settings.category.system" />
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">
243 <action android:name="com.android.settings.action.DEMO_MODE" />
244 <category android:name="android.intent.category.DEFAULT" />
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" />
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">
266 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
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">
280 <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
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">
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" />
298 <!-- Callback for deleting screenshot notification -->
299 <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
300 android:process=":screenshot"
301 android:exported="false" />
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">
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">
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">
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">
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">
346 <activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
347 android:theme="@style/Theme.SystemUI.Dialog.Alert"
348 android:finishOnCloseSystemDialogs="true"
349 android:excludeFromRecents="true">
352 <!-- started from NetworkPolicyManagerService -->
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" />
363 <!-- started from MediaProjectionManager -->
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" />
372 <!-- started from PipUI -->
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" />
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" />
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" />
400 <!-- platform logo easter egg 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">
412 <action android:name="android.intent.action.MAIN" />
413 <category android:name="android.intent.category.DEFAULT" />
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">
428 <action android:name="android.intent.action.MAIN"/>
429 <category android:name="android.intent.category.DEFAULT" />
433 <!-- a gallery of delicious treats -->
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"
443 <action android:name="android.service.dreams.DreamService" />
444 <category android:name="android.intent.category.DEFAULT" />
449 android:name=".keyguard.KeyguardService"
450 android:exported="true"
451 android:enabled="@bool/config_enableKeyguardService" />
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"
462 <action android:name="android.intent.action.CREATE_SHORTCUT" />
463 <category android:name="android.intent.category.DEFAULT" />
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" />
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">
482 <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
483 <category android:name="android.intent.category.DEFAULT" />
487 <!-- Doze with notifications, run in main sysui process for every user -->
489 android:name=".doze.DozeService"
490 android:exported="true"
491 android:singleUser="true"
492 android:permission="android.permission.BIND_DREAM_SERVICE" />
495 android:name=".tuner.TunerService$ClearReceiver"
496 android:exported="false">
498 <action android:name="com.android.systemui.action.CLEAR_TUNER" />
503 android:name=".statusbar.KeyboardShortcutsReceiver">
505 <action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" />
506 <action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" />