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