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