• 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    <!-- TV picture-in-picture -->
154    <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" />
155
156    <!-- DND access -->
157    <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" />
158
159    <!-- It's like, reality, but, you know, virtual -->
160    <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
161
162    <!-- the ability to rename notifications posted by other apps -->
163    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
164
165    <!-- shortcut manager -->
166    <uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" />
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=".ImageWallpaper"
217                android:permission="android.permission.BIND_WALLPAPER"
218                android:exported="true" />
219
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">
227            <intent-filter>
228                <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
229                <category android:name="android.intent.category.DEFAULT" />
230            </intent-filter>
231            <meta-data android:name="com.android.settings.category"
232                    android:value="com.android.settings.category.system" />
233        </activity>
234
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">
242            <intent-filter>
243                <action android:name="com.android.settings.action.DEMO_MODE" />
244                <category android:name="android.intent.category.DEFAULT" />
245            </intent-filter>
246        </activity-alias>
247
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" />
252
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">
265            <intent-filter>
266                <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
267            </intent-filter>
268        </activity>
269
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">
279            <intent-filter>
280                <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
281            </intent-filter>
282        </activity>
283
284        <activity
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">
291        </activity>
292
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" />
297
298        <!-- Callback for deleting screenshot notification -->
299        <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
300                  android:process=":screenshot"
301                  android:exported="false" />
302
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">
310        </activity>
311
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">
319        </activity>
320
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">
328        </activity>
329
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">
337        </activity>
338
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">
345        </activity>
346        <activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
347            android:theme="@style/Theme.SystemUI.Dialog.Alert"
348            android:finishOnCloseSystemDialogs="true"
349            android:excludeFromRecents="true">
350        </activity>
351
352        <!-- started from NetworkPolicyManagerService -->
353        <activity
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" />
362
363        <!-- started from MediaProjectionManager -->
364        <activity
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" />
371
372        <!-- started from PipUI -->
373        <activity
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" />
384        <activity
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" />
393        <activity
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" />
399
400        <!-- platform logo easter egg activity -->
401        <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">
411            <intent-filter>
412                <action android:name="android.intent.action.MAIN" />
413                <category android:name="android.intent.category.DEFAULT" />
414            </intent-filter>
415        </activity>
416
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">
427            <intent-filter>
428                <action android:name="android.intent.action.MAIN"/>
429                <category android:name="android.intent.category.DEFAULT" />
430            </intent-filter>
431        </activity>
432
433        <!-- a gallery of delicious treats -->
434        <service
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"
441            >
442            <intent-filter>
443                <action android:name="android.service.dreams.DreamService" />
444                <category android:name="android.intent.category.DEFAULT" />
445            </intent-filter>
446        </service>
447
448        <service
449            android:name=".keyguard.KeyguardService"
450            android:exported="true"
451            android:enabled="@bool/config_enableKeyguardService" />
452
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"
459            >
460            <!--
461            <intent-filter>
462                <action android:name="android.intent.action.CREATE_SHORTCUT" />
463                <category android:name="android.intent.category.DEFAULT" />
464            </intent-filter>
465            -->
466            <intent-filter>
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" />
470            </intent-filter>
471        </activity>
472
473        <activity
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">
481            <intent-filter>
482                <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
483                <category android:name="android.intent.category.DEFAULT" />
484            </intent-filter>
485        </activity>
486
487        <!-- Doze with notifications, run in main sysui process for every user  -->
488        <service
489            android:name=".doze.DozeService"
490            android:exported="true"
491            android:singleUser="true"
492            android:permission="android.permission.BIND_DREAM_SERVICE" />
493
494        <receiver
495            android:name=".tuner.TunerService$ClearReceiver"
496            android:exported="false">
497            <intent-filter>
498                <action android:name="com.android.systemui.action.CLEAR_TUNER" />
499            </intent-filter>
500        </receiver>
501
502        <receiver
503            android:name=".statusbar.KeyboardShortcutsReceiver">
504            <intent-filter>
505                <action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" />
506                <action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" />
507            </intent-filter>
508        </receiver>
509    </application>
510</manifest>
511