• 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.READ_NETWORK_USAGE_HISTORY" />
62    <uses-permission android:name="android.permission.CONTROL_VPN" />
63    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
64    <!-- Physical hardware -->
65    <uses-permission android:name="android.permission.MANAGE_USB" />
66    <uses-permission android:name="android.permission.DEVICE_POWER" />
67    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
68    <uses-permission android:name="android.permission.MASTER_CLEAR" />
69    <uses-permission android:name="android.permission.VIBRATE" />
70
71    <!-- ActivityManager -->
72    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
73    <uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
74    <uses-permission android:name="android.permission.REORDER_TASKS" />
75    <uses-permission android:name="android.permission.REMOVE_TASKS" />
76    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
77    <uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
78    <uses-permission android:name="android.permission.START_ANY_ACTIVITY" />
79    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
80    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
81    <uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" />
82    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
83    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
84
85    <!-- WindowManager -->
86    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
87    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
88    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
89    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
90    <uses-permission android:name="android.permission.SET_ORIENTATION" />
91    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
92
93    <!-- DreamManager -->
94    <uses-permission android:name="android.permission.READ_DREAM_STATE" />
95    <uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
96
97    <!-- Alarm clocks -->
98    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
99
100    <!-- Keyguard -->
101    <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
102    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
103    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
104    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
105    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
106    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
107    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
108    <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
109    <uses-permission android:name="android.permission.TRUST_LISTENER" />
110    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
111    <uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
112
113    <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
114    <uses-permission android:name="android.permission.SET_WALLPAPER"/>
115
116    <!-- Recents -->
117    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
118
119    <!-- Wifi Display -->
120    <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
121
122    <uses-permission android:name="android.permission.CAMERA" />
123
124    <!-- Screen Capturing -->
125    <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
126
127    <!-- Assist -->
128    <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
129
130    <!-- Listen for keyboard attachment / detachment -->
131    <uses-permission android:name="android.permission.TABLET_MODE" />
132
133    <!-- Self permission for internal broadcasts. -->
134    <permission android:name="com.android.systemui.permission.SELF"
135            android:protectionLevel="signature" />
136    <uses-permission android:name="com.android.systemui.permission.SELF" />
137
138    <application
139        android:name=".SystemUIApplication"
140        android:persistent="true"
141        android:allowClearUserData="false"
142        android:allowBackup="false"
143        android:hardwareAccelerated="true"
144        android:label="@string/app_label"
145        android:icon="@drawable/icon"
146        android:process="com.android.systemui"
147        android:supportsRtl="true"
148        android:theme="@style/systemui_theme">
149        <!-- Keep theme in sync with SystemUIApplication.onCreate().
150             Setting the theme on the application does not affect views inflated by services.
151             The application theme is set again from onCreate to take effect for those views. -->
152
153        <!-- Broadcast receiver that gets the broadcast at boot time and starts
154             up everything else.
155             TODO: Should have an android:permission attribute
156             -->
157        <service android:name="SystemUIService"
158            android:exported="true"
159            />
160
161        <!-- started from PhoneWindowManager
162             TODO: Should have an android:permission attribute -->
163        <service android:name=".screenshot.TakeScreenshotService"
164            android:process=":screenshot"
165            android:exported="false" />
166
167        <service android:name=".LoadAverageService"
168                android:exported="true" />
169
170        <service android:name=".ImageWallpaper"
171                android:permission="android.permission.BIND_WALLPAPER"
172                android:exported="true" />
173
174        <receiver android:name=".BootReceiver" androidprv:primaryUserOnly="true">
175            <intent-filter android:priority="1000">
176                <action android:name="android.intent.action.BOOT_COMPLETED" />
177            </intent-filter>
178        </receiver>
179
180        <receiver android:name=".qs.tiles.HotspotTile$APChangedReceiver"
181                androidprv:primaryUserOnly="true">
182            <intent-filter>
183                <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />
184            </intent-filter>
185        </receiver>
186
187        <activity android:name=".usb.UsbStorageActivity"
188                  android:label="@*android:string/usb_storage_activity_title"
189                  android:excludeFromRecents="true">
190        </activity>
191
192        <activity android:name=".tuner.TunerActivity"
193                  android:enabled="false"
194                  android:icon="@drawable/tuner"
195                  android:theme="@android:style/Theme.Material.Settings"
196                  android:label="@string/system_ui_tuner"
197                  android:process=":tuner"
198                  android:exported="true">
199            <intent-filter>
200                <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
201                <category android:name="android.intent.category.DEFAULT" />
202            </intent-filter>
203            <meta-data android:name="com.android.settings.category"
204                    android:value="com.android.settings.category.system" />
205        </activity>
206
207        <!-- Alternate Recents -->
208        <activity android:name=".recents.RecentsActivity"
209                  android:label="@string/accessibility_desc_recent_apps"
210                  android:exported="false"
211                  android:launchMode="singleInstance"
212                  android:excludeFromRecents="true"
213                  android:stateNotNeeded="true"
214                  android:resumeWhilePausing="true"
215                  android:screenOrientation="behind"
216                  android:theme="@style/config_recents_activity_theme">
217            <intent-filter>
218                <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
219            </intent-filter>
220        </activity>
221
222        <receiver android:name=".recents.RecentsUserEventProxyReceiver"
223                  android:exported="false">
224            <intent-filter>
225                <action android:name="com.android.systemui.recents.action.SHOW_RECENTS_FOR_USER" />
226                <action android:name="com.android.systemui.recents.action.HIDE_RECENTS_FOR_USER" />
227                <action android:name="com.android.systemui.recents.action.TOGGLE_RECENTS_FOR_USER" />
228                <action android:name="com.android.systemui.recents.action.PRELOAD_RECENTS_FOR_USER" />
229                <action android:name="com.android.systemui.recents.action.CONFIG_CHANGED_FOR_USER" />
230            </intent-filter>
231        </receiver>
232
233        <!-- Callback for dismissing screenshot notification after a share target is picked -->
234        <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver"
235                  android:process=":screenshot"
236                  android:exported="false" />
237
238        <!-- Callback for deleting screenshot notification -->
239        <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
240                  android:process=":screenshot"
241                  android:exported="false" />
242
243        <!-- started from UsbDeviceSettingsManager -->
244        <activity android:name=".usb.UsbConfirmActivity"
245            android:exported="true"
246            android:permission="android.permission.MANAGE_USB"
247            android:theme="@style/Theme.SystemUI.Dialog.Alert"
248            android:finishOnCloseSystemDialogs="true"
249            android:excludeFromRecents="true">
250        </activity>
251
252        <!-- started from UsbDeviceSettingsManager -->
253        <activity android:name=".usb.UsbPermissionActivity"
254            android:exported="true"
255            android:permission="android.permission.MANAGE_USB"
256            android:theme="@style/Theme.SystemUI.Dialog.Alert"
257            android:finishOnCloseSystemDialogs="true"
258            android:excludeFromRecents="true">
259        </activity>
260
261        <!-- started from UsbDeviceSettingsManager -->
262        <activity android:name=".usb.UsbResolverActivity"
263            android:exported="true"
264            android:permission="android.permission.MANAGE_USB"
265            android:theme="@style/Theme.SystemUI.Dialog.Alert"
266            android:finishOnCloseSystemDialogs="true"
267            android:excludeFromRecents="true">
268        </activity>
269
270        <!-- started from UsbDeviceSettingsManager -->
271        <activity android:name=".usb.UsbAccessoryUriActivity"
272            android:exported="true"
273            android:permission="android.permission.MANAGE_USB"
274            android:theme="@style/Theme.SystemUI.Dialog.Alert"
275            android:finishOnCloseSystemDialogs="true"
276            android:excludeFromRecents="true">
277        </activity>
278
279        <!-- started from UsbDebuggingManager -->
280        <activity android:name=".usb.UsbDebuggingActivity"
281            android:permission="android.permission.MANAGE_USB"
282            android:theme="@style/Theme.SystemUI.Dialog.Alert"
283            android:finishOnCloseSystemDialogs="true"
284            android:excludeFromRecents="true">
285        </activity>
286        <activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
287            android:theme="@style/Theme.SystemUI.Dialog.Alert"
288            android:finishOnCloseSystemDialogs="true"
289            android:excludeFromRecents="true">
290        </activity>
291
292        <!-- started from NetworkPolicyManagerService -->
293        <activity
294            android:name=".net.NetworkOverLimitActivity"
295            android:exported="true"
296            android:permission="android.permission.MANAGE_NETWORK_POLICY"
297            android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
298            android:finishOnCloseSystemDialogs="true"
299            android:launchMode="singleTop"
300            android:taskAffinity="com.android.systemui.net"
301            android:excludeFromRecents="true" />
302
303        <!-- started from MediaProjectionManager -->
304        <activity
305            android:name=".media.MediaProjectionPermissionActivity"
306            android:exported="true"
307            android:theme="@style/Theme.AlertDialogHost"
308            android:finishOnCloseSystemDialogs="true"
309            android:launchMode="singleTop"
310            android:excludeFromRecents="true" />
311
312        <!-- platform logo easter egg activity -->
313        <activity
314            android:name=".DessertCase"
315            android:exported="true"
316            android:label="@string/dessert_case"
317            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
318            android:hardwareAccelerated="true"
319            android:launchMode="singleInstance"
320            android:screenOrientation="locked"
321            android:process=":sweetsweetdesserts"
322            android:excludeFromRecents="true">
323            <intent-filter>
324                <action android:name="android.intent.action.MAIN" />
325                <category android:name="android.intent.category.DEFAULT" />
326            </intent-filter>
327        </activity>
328
329        <activity android:name=".egg.MLandActivity"
330                  android:theme="@android:style/Theme.Material.NoActionBar"
331                  android:exported="true"
332                  android:icon="@drawable/icon"
333                  android:label="@string/mland"
334                  android:hardwareAccelerated="true"
335                  android:launchMode="singleInstance"
336                  android:screenOrientation="locked"
337                  android:process=":sweetsweetdesserts"
338                  android:excludeFromRecents="true">
339            <intent-filter>
340                <action android:name="android.intent.action.MAIN"/>
341                <category android:name="android.intent.category.DEFAULT" />
342                <category android:name="com.android.internal.category.PLATLOGO" />
343            </intent-filter>
344        </activity>
345
346        <!-- a gallery of delicious treats -->
347        <service
348            android:name=".DessertCaseDream"
349            android:exported="true"
350            android:label="@string/dessert_case"
351            android:permission="android.permission.BIND_DREAM_SERVICE"
352            android:enabled="false"
353            android:process=":sweetsweetdesserts"
354            >
355            <intent-filter>
356                <action android:name="android.service.dreams.DreamService" />
357                <category android:name="android.intent.category.DEFAULT" />
358            </intent-filter>
359        </service>
360
361        <service
362            android:name=".keyguard.KeyguardService"
363            android:exported="true"
364            android:enabled="@bool/config_enableKeyguardService" />
365
366        <activity android:name=".Somnambulator"
367            android:label="@string/start_dreams"
368            android:icon="@mipmap/ic_launcher_dreams"
369            android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
370            android:exported="true"
371            android:excludeFromRecents="true"
372            >
373            <!--
374            <intent-filter>
375                <action android:name="android.intent.action.CREATE_SHORTCUT" />
376                <category android:name="android.intent.category.DEFAULT" />
377            </intent-filter>
378            -->
379            <intent-filter>
380                <action android:name="android.intent.action.MAIN" />
381                <category android:name="android.intent.category.DEFAULT" />
382                <category android:name="android.intent.category.DESK_DOCK" />
383            </intent-filter>
384        </activity>
385
386        <activity
387            android:name=".settings.BrightnessDialog"
388            android:label="@string/quick_settings_brightness_dialog_title"
389            android:theme="@android:style/Theme.DeviceDefault.Dialog"
390            android:finishOnCloseSystemDialogs="true"
391            android:launchMode="singleInstance"
392            android:excludeFromRecents="true"
393            android:exported="true">
394            <intent-filter>
395                <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
396                <category android:name="android.intent.category.DEFAULT" />
397            </intent-filter>
398        </activity>
399
400        <!-- Doze with notifications, run in main sysui process for every user  -->
401        <service
402            android:name=".doze.DozeService"
403            android:exported="true"
404            android:singleUser="true"
405            android:permission="android.permission.BIND_DREAM_SERVICE" />
406
407        <receiver
408            android:name=".tuner.TunerService$ClearReceiver"
409            android:exported="false">
410            <intent-filter>
411                <action android:name="com.android.systemui.action.CLEAR_TUNER" />
412            </intent-filter>
413        </receiver>
414    </application>
415</manifest>
416