• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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