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    <uses-permission android:name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" />
29    <uses-permission android:name="android.permission.WAKE_LOCK" />
30
31    <uses-permission android:name="android.permission.INJECT_EVENTS" />
32    <uses-permission android:name="android.permission.DUMP" />
33    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
34
35    <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
36    <uses-permission android:name="android.permission.STATUS_BAR" />
37    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
38    <uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" />
39
40    <uses-permission android:name="android.permission.MANAGE_USERS" />
41    <uses-permission android:name="android.permission.READ_PROFILE" />
42    <uses-permission android:name="android.permission.READ_CONTACTS" />
43    <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
44    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
45    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
46
47    <!-- Networking and telephony -->
48    <uses-permission android:name="android.permission.BLUETOOTH" />
49    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
50    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
51    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
52    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
53    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
54    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
55    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
56    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
57    <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
58    <uses-permission android:name="android.permission.CONTROL_VPN" />
59
60    <!-- Physical hardware -->
61    <uses-permission android:name="android.permission.MANAGE_USB" />
62    <uses-permission android:name="android.permission.DEVICE_POWER" />
63    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
64    <uses-permission android:name="android.permission.MASTER_CLEAR" />
65    <uses-permission android:name="android.permission.VIBRATE" />
66
67    <!-- ActivityManager -->
68    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
69    <uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
70    <uses-permission android:name="android.permission.REORDER_TASKS" />
71    <uses-permission android:name="android.permission.REMOVE_TASKS" />
72    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
73    <uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
74    <uses-permission android:name="android.permission.START_ANY_ACTIVITY" />
75    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
76    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
77    <uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" />
78    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
79    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
80
81    <!-- WindowManager -->
82    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
83    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
84    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
85    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
86    <uses-permission android:name="android.permission.SET_ORIENTATION" />
87    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
88
89    <!-- DreamManager -->
90    <uses-permission android:name="android.permission.READ_DREAM_STATE" />
91    <uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
92
93    <!-- Alarm clocks -->
94    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
95
96    <!-- Keyguard -->
97    <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
98    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
99    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
100    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
101    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
102    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
103    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
104    <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
105    <uses-permission android:name="android.permission.TRUST_LISTENER" />
106
107    <!-- Recents -->
108    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
109
110    <!-- Wifi Display -->
111    <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
112
113    <uses-permission android:name="android.permission.CAMERA" />
114
115    <!-- Screen Capturing -->
116    <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
117
118    <application
119        android:name=".SystemUIApplication"
120        android:persistent="true"
121        android:allowClearUserData="false"
122        android:allowBackup="false"
123        android:hardwareAccelerated="true"
124        android:label="@string/app_label"
125        android:icon="@drawable/icon"
126        android:process="com.android.systemui"
127        android:supportsRtl="true"
128        android:theme="@style/systemui_theme">
129        <!-- Keep theme in sync with SystemUIApplication.onCreate().
130             Setting the theme on the application does not affect views inflated by services.
131             The application theme is set again from onCreate to take effect for those views. -->
132
133        <!-- Broadcast receiver that gets the broadcast at boot time and starts
134             up everything else.
135             TODO: Should have an android:permission attribute
136             -->
137        <service android:name="SystemUIService"
138            android:exported="true"
139            />
140
141        <!-- started from PhoneWindowManager
142             TODO: Should have an android:permission attribute -->
143        <service android:name=".screenshot.TakeScreenshotService"
144            android:process=":screenshot"
145            android:exported="false" />
146
147        <service android:name=".LoadAverageService"
148                android:exported="true" />
149
150        <service android:name=".ImageWallpaper"
151                android:permission="android.permission.BIND_WALLPAPER"
152                android:exported="true" />
153
154        <receiver android:name=".BootReceiver" androidprv:primaryUserOnly="true">
155            <intent-filter android:priority="1000">
156                <action android:name="android.intent.action.BOOT_COMPLETED" />
157            </intent-filter>
158        </receiver>
159
160        <receiver android:name=".qs.tiles.HotspotTile$APChangedReceiver"
161                androidprv:primaryUserOnly="true">
162            <intent-filter>
163                <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />
164            </intent-filter>
165        </receiver>
166
167        <activity android:name=".usb.UsbStorageActivity"
168                  android:label="@*android:string/usb_storage_activity_title"
169                  android:excludeFromRecents="true">
170        </activity>
171        <activity android:name="com.android.internal.app.ExternalMediaFormatActivity"
172                android:theme="@*android:style/Theme.Dialog.Alert"
173                android:excludeFromRecents="true">
174        </activity>
175
176        <activity android:name=".recent.RecentsActivity"
177                android:label="@string/accessibility_desc_recent_apps"
178                android:theme="@style/RecentsStyle"
179                android:excludeFromRecents="true"
180                android:launchMode="singleInstance"
181                android:resumeWhilePausing="true"
182                android:exported="true">
183          <intent-filter>
184            <action android:name="com.android.systemui.TOGGLE_RECENTS" />
185          </intent-filter>
186        </activity>
187
188        <receiver
189            android:name=".recent.RecentsPreloadReceiver"
190            android:exported="false">
191            <intent-filter>
192                <action android:name="com.android.systemui.recent.action.PRELOAD" />
193                <action android:name="com.android.systemui.recent.action.CANCEL_PRELOAD" />
194            </intent-filter>
195        </receiver>
196
197        <!-- Alternate Recents -->
198        <activity android:name=".recents.RecentsActivity"
199                  android:label="@string/accessibility_desc_recent_apps"
200                  android:exported="false"
201                  android:launchMode="singleInstance"
202                  android:excludeFromRecents="true"
203                  android:stateNotNeeded="true"
204                  android:resumeWhilePausing="true"
205                  android:theme="@style/config_recents_activity_theme">
206            <intent-filter>
207                <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
208            </intent-filter>
209        </activity>
210
211        <receiver android:name=".recents.RecentsUserEventProxyReceiver"
212                  android:exported="false">
213            <intent-filter>
214                <action android:name="com.android.systemui.recents.action.SHOW_RECENTS_FOR_USER" />
215                <action android:name="com.android.systemui.recents.action.HIDE_RECENTS_FOR_USER" />
216                <action android:name="com.android.systemui.recents.action.TOGGLE_RECENTS_FOR_USER" />
217                <action android:name="com.android.systemui.recents.action.PRELOAD_RECENTS_FOR_USER" />
218                <action android:name="com.android.systemui.recents.action.CONFIG_CHANGED_FOR_USER" />
219            </intent-filter>
220        </receiver>
221
222        <!-- started from UsbDeviceSettingsManager -->
223        <activity android:name=".usb.UsbConfirmActivity"
224            android:exported="true"
225            android:permission="android.permission.MANAGE_USB"
226            android:theme="@style/Theme.SystemUI.Dialog.Alert"
227            android:finishOnCloseSystemDialogs="true"
228            android:excludeFromRecents="true">
229        </activity>
230
231        <!-- started from UsbDeviceSettingsManager -->
232        <activity android:name=".usb.UsbPermissionActivity"
233            android:exported="true"
234            android:permission="android.permission.MANAGE_USB"
235            android:theme="@style/Theme.SystemUI.Dialog.Alert"
236            android:finishOnCloseSystemDialogs="true"
237            android:excludeFromRecents="true">
238        </activity>
239
240        <!-- started from UsbDeviceSettingsManager -->
241        <activity android:name=".usb.UsbResolverActivity"
242            android:exported="true"
243            android:permission="android.permission.MANAGE_USB"
244            android:theme="@style/Theme.SystemUI.Dialog.Alert"
245            android:finishOnCloseSystemDialogs="true"
246            android:excludeFromRecents="true">
247        </activity>
248
249        <!-- started from UsbDeviceSettingsManager -->
250        <activity android:name=".usb.UsbAccessoryUriActivity"
251            android:exported="true"
252            android:permission="android.permission.MANAGE_USB"
253            android:theme="@style/Theme.SystemUI.Dialog.Alert"
254            android:finishOnCloseSystemDialogs="true"
255            android:excludeFromRecents="true">
256        </activity>
257
258        <!-- started from UsbDebuggingManager -->
259        <activity android:name=".usb.UsbDebuggingActivity"
260            android:permission="android.permission.MANAGE_USB"
261            android:theme="@style/Theme.SystemUI.Dialog.Alert"
262            android:finishOnCloseSystemDialogs="true"
263            android:excludeFromRecents="true">
264        </activity>
265
266        <!-- started from NetworkPolicyManagerService -->
267        <activity
268            android:name=".net.NetworkOverLimitActivity"
269            android:exported="true"
270            android:permission="android.permission.MANAGE_NETWORK_POLICY"
271            android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
272            android:finishOnCloseSystemDialogs="true"
273            android:launchMode="singleTop"
274            android:taskAffinity="com.android.systemui.net"
275            android:excludeFromRecents="true" />
276
277        <!-- started from MediaProjectionManager -->
278        <activity
279            android:name=".media.MediaProjectionPermissionActivity"
280            android:exported="true"
281            android:theme="@style/Theme.AlertDialogHost"
282            android:finishOnCloseSystemDialogs="true"
283            android:launchMode="singleTop"
284            android:excludeFromRecents="true" />
285
286        <!-- platform logo easter egg activity -->
287        <activity
288            android:name=".DessertCase"
289            android:exported="true"
290            android:label="@string/dessert_case"
291            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
292            android:hardwareAccelerated="true"
293            android:launchMode="singleInstance"
294            android:screenOrientation="locked"
295            android:process=":sweetsweetdesserts"
296            android:excludeFromRecents="true">
297            <intent-filter>
298                <action android:name="android.intent.action.MAIN" />
299                <category android:name="android.intent.category.DEFAULT" />
300            </intent-filter>
301        </activity>
302
303        <activity android:name=".egg.LLandActivity"
304                  android:theme="@android:style/Theme.Material.Light.NoActionBar"
305                  android:exported="true"
306                  android:label="@string/lland"
307                  android:hardwareAccelerated="true"
308                  android:launchMode="singleInstance"
309                  android:screenOrientation="locked"
310                  android:process=":sweetsweetdesserts"
311                  android:excludeFromRecents="true">
312            <intent-filter>
313                <action android:name="android.intent.action.MAIN"/>
314                <category android:name="android.intent.category.DEFAULT" />
315                <category android:name="com.android.internal.category.PLATLOGO" />
316            </intent-filter>
317        </activity>
318
319        <!-- a gallery of delicious treats -->
320        <service
321            android:name=".DessertCaseDream"
322            android:exported="true"
323            android:label="@string/dessert_case"
324            android:permission="android.permission.BIND_DREAM_SERVICE"
325            android:enabled="false"
326            android:process=":sweetsweetdesserts"
327            >
328            <intent-filter>
329                <action android:name="android.service.dreams.DreamService" />
330                <category android:name="android.intent.category.DEFAULT" />
331            </intent-filter>
332        </service>
333
334        <service
335            android:name=".keyguard.KeyguardService"
336            android:exported="true"
337            android:enabled="@bool/config_enableKeyguardService" />
338
339        <activity android:name=".Somnambulator"
340            android:label="@string/start_dreams"
341            android:icon="@mipmap/ic_launcher_dreams"
342            android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
343            android:exported="true"
344            android:excludeFromRecents="true"
345            >
346            <!--
347            <intent-filter>
348                <action android:name="android.intent.action.CREATE_SHORTCUT" />
349                <category android:name="android.intent.category.DEFAULT" />
350            </intent-filter>
351            -->
352            <intent-filter>
353                <action android:name="android.intent.action.MAIN" />
354                <category android:name="android.intent.category.DEFAULT" />
355                <category android:name="android.intent.category.DESK_DOCK" />
356            </intent-filter>
357        </activity>
358
359        <activity
360            android:name=".settings.BrightnessDialog"
361            android:label="@string/quick_settings_brightness_dialog_title"
362            android:theme="@android:style/Theme.DeviceDefault.Dialog"
363            android:finishOnCloseSystemDialogs="true"
364            android:launchMode="singleInstance"
365            android:excludeFromRecents="true"
366            android:exported="true">
367            <intent-filter>
368                <action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
369                <category android:name="android.intent.category.DEFAULT" />
370            </intent-filter>
371        </activity>
372
373        <!-- Doze with notifications, run in main sysui process for every user  -->
374        <service
375            android:name=".doze.DozeService"
376            android:exported="true"
377            android:singleUser="true"
378            android:permission="android.permission.BIND_DREAM_SERVICE" />
379    </application>
380</manifest>
381