Bugreport is now triggered using API and not via broadcasts from
dumpstate. As migration to API flow is stable, we can remove methods and
broadcasts that were used in non-API bugreport flow. Now, callbacks are used
for communication between dumpsate and Shell instead of broadcasts.
* Remove BugreportReceiver.java as it used to handle BUGREPORT_STARTED and
BUGREPORT_FINISHED intents which are not required by Shell anymore to
track bugreports.
* Remove RemoteBugreportReceiver.java as it used to handle
REMOTE_BUGREPORT_FINISHED intent which is not required by Shell
anymore.
* Remove methods that were being used when processing these broadcasts.
* Remove pid as that is not used anymore.
* Since Shell owns the file now, don't need mTempName, mSavedName,
onFocusListener and disable file name after the bugreport is finished.
File name can be sanitized and updated even after bugreport finished.
Bug: 136066578
Test: Build and flash. Interactive/Full bugreports from Settings/Power button.
Test: Rename workflow for interactive bugreports works as expected.
Test: * Build and flash
* Install TestDPC
* Make it device owner
* Take a remote bugreport. Works as expected
Change-Id: I5e0f829631cb63074c41c914236e78abe95ba162
262 lines
16 KiB
XML
262 lines
16 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/*
|
|
* Copyright (C) 2015 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
-->
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="com.android.shell"
|
|
coreApp="true"
|
|
android:sharedUserId="android.uid.shell"
|
|
>
|
|
|
|
<!-- Standard permissions granted to the shell. -->
|
|
<uses-permission android:name="android.permission.GET_RUNTIME_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.SEND_SMS" />
|
|
<uses-permission android:name="android.permission.READ_SMS" />
|
|
<uses-permission android:name="android.permission.CALL_PHONE" />
|
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.READ_ACTIVE_EMERGENCY_SESSION" />
|
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
|
<uses-permission android:name="android.permission.READ_CALENDAR" />
|
|
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
|
|
<uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
|
|
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
|
|
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
|
|
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
|
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
|
|
<uses-permission android:name="android.permission.MANAGE_USB" />
|
|
<uses-permission android:name="android.permission.USE_RESERVED_DISK" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
|
<!-- System tool permissions granted to the shell. -->
|
|
<uses-permission android:name="android.permission.REAL_GET_TASKS" />
|
|
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
|
|
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
|
<uses-permission android:name="android.permission.REMOVE_TASKS" />
|
|
<uses-permission android:name="android.permission.SET_ANIMATION_SCALE" />
|
|
<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
|
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
|
|
<uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG" />
|
|
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
|
|
<uses-permission android:name="android.permission.MANAGE_ACCESSIBILITY" />
|
|
<!-- Development tool permissions granted to the shell. -->
|
|
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
|
|
<uses-permission android:name="android.permission.SET_PROCESS_LIMIT" />
|
|
<uses-permission android:name="android.permission.SET_ALWAYS_FINISH" />
|
|
<uses-permission android:name="android.permission.DUMP" />
|
|
<uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES" />
|
|
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
|
|
<!-- Internal permissions granted to the shell. -->
|
|
<uses-permission android:name="android.permission.FORCE_BACK" />
|
|
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
|
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
|
|
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
|
|
<uses-permission android:name="android.permission.INJECT_EVENTS" />
|
|
<uses-permission android:name="android.permission.RETRIEVE_WINDOW_CONTENT" />
|
|
<uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER" />
|
|
<uses-permission android:name="android.permission.READ_INPUT_STATE" />
|
|
<uses-permission android:name="android.permission.SET_ORIENTATION" />
|
|
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
|
|
<uses-permission android:name="android.permission.MOVE_PACKAGE" />
|
|
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
|
|
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
|
|
<uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" />
|
|
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
|
|
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
|
|
<uses-permission android:name="android.permission.MANAGE_ROLLBACKS" />
|
|
<uses-permission android:name="android.permission.TEST_MANAGE_ROLLBACKS" />
|
|
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
|
|
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
|
|
<uses-permission android:name="android.permission.DEVICE_POWER" />
|
|
<uses-permission android:name="android.permission.POWER_SAVER" />
|
|
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
|
|
<uses-permission android:name="android.permission.BACKUP" />
|
|
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES" />
|
|
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
|
|
<uses-permission android:name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY" />
|
|
<uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.WHITELIST_RESTRICTED_PERMISSIONS" />
|
|
<!-- Permission required to test onPermissionsChangedListener -->
|
|
<uses-permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS" />
|
|
<uses-permission android:name="android.permission.SET_KEYBOARD_LAYOUT" />
|
|
<uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
|
|
<uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
|
|
<uses-permission android:name="android.permission.CREATE_USERS" />
|
|
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
|
|
<uses-permission android:name="android.permission.ACCESS_LOWPAN_STATE"/>
|
|
<uses-permission android:name="android.permission.CHANGE_LOWPAN_STATE"/>
|
|
<uses-permission android:name="android.permission.READ_LOWPAN_CREDENTIAL"/>
|
|
<uses-permission android:name="android.permission.BLUETOOTH_STACK" />
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.RETRIEVE_WINDOW_TOKEN" />
|
|
<uses-permission android:name="android.permission.FRAME_STATS" />
|
|
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
|
|
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
|
|
<uses-permission android:name="android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"/>
|
|
<uses-permission android:name="android.permission.CHANGE_APP_IDLE_STATE" />
|
|
<uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
|
|
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
|
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
|
|
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
|
<!-- Shell only holds android.permission.NETWORK_SCAN in order to to enable CTS testing -->
|
|
<uses-permission android:name="android.permission.NETWORK_SCAN" />
|
|
<uses-permission android:name="android.permission.REGISTER_CALL_PROVIDER" />
|
|
<uses-permission android:name="android.permission.REGISTER_CONNECTION_MANAGER" />
|
|
<uses-permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION" />
|
|
<uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
|
|
<uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
|
|
<uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
|
|
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
|
|
<uses-permission android:name="android.permission.ACTIVITY_EMBEDDING" />
|
|
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
|
|
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
|
|
<uses-permission android:name="android.permission.MANAGE_AUTO_FILL" />
|
|
<uses-permission android:name="android.permission.MANAGE_CONTENT_CAPTURE" />
|
|
<uses-permission android:name="android.permission.MANAGE_CONTENT_SUGGESTIONS" />
|
|
<uses-permission android:name="android.permission.MANAGE_APP_PREDICTIONS" />
|
|
<uses-permission android:name="android.permission.NETWORK_SETTINGS" />
|
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
|
<uses-permission android:name="android.permission.SET_TIME" />
|
|
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
|
|
<uses-permission android:name="android.permission.DISABLE_HIDDEN_API_CHECKS" />
|
|
<uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
|
|
<uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS" />
|
|
<uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
|
|
<uses-permission android:name="android.permission.STATUS_BAR" />
|
|
<!-- Permission needed to rename bugreport notifications (so they're not shown as Shell) -->
|
|
<uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
|
|
<uses-permission android:name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
|
|
<!-- Permission needed to hold a wakelock in dumpstate.cpp (drop_root_user()) -->
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<!-- Permission needed to enable/disable overlays -->
|
|
<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
|
|
<!-- Permission needed to access privileged VR APIs -->
|
|
<uses-permission android:name="android.permission.RESTRICTED_VR_ACCESS" />
|
|
<uses-permission android:name="android.permission.MANAGE_BIND_INSTANT_SERVICE" />
|
|
<uses-permission android:name="android.permission.SET_HARMFUL_APP_WARNINGS" />
|
|
<uses-permission android:name="android.permission.MANAGE_SENSORS" />
|
|
<uses-permission android:name="android.permission.MANAGE_AUDIO_POLICY" />
|
|
<uses-permission android:name="android.permission.MANAGE_CAMERA" />
|
|
<!-- Permissions needed to test system only camera devices -->
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
<uses-permission android:name="android.permission.SYSTEM_CAMERA" />
|
|
<!-- Permissions needed for CTS camera test: RecordingTest.java when assuming shell id -->
|
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
<!-- Permission needed to enable/disable Bluetooth/Wifi -->
|
|
<uses-permission android:name="android.permission.MANAGE_BLUETOOTH_WHEN_WIRELESS_CONSENT_REQUIRED" />
|
|
<uses-permission android:name="android.permission.MANAGE_WIFI_WHEN_WIRELESS_CONSENT_REQUIRED" />
|
|
<!-- Permission needed to invoke DynamicSystem (AOT) -->
|
|
<uses-permission android:name="android.permission.INSTALL_DYNAMIC_SYSTEM" />
|
|
|
|
|
|
<uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
|
|
<uses-permission android:name="android.permission.SUSPEND_APPS" />
|
|
<uses-permission android:name="android.permission.OBSERVE_APP_USAGE" />
|
|
<uses-permission android:name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" />
|
|
<!-- Permission needed to wipe the device for Test Harness Mode -->
|
|
<uses-permission android:name="android.permission.ENABLE_TEST_HARNESS_MODE" />
|
|
<uses-permission android:name="android.permission.MANAGE_COMPANION_DEVICES" />
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_APPOPS" />
|
|
|
|
<!-- Permission needed to run network tests in CTS -->
|
|
<uses-permission android:name="android.permission.MANAGE_TEST_NETWORKS" />
|
|
<!-- Permission needed to test tcp keepalive offload. -->
|
|
<uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" />
|
|
|
|
<!-- Permission needed to run keyguard manager tests in CTS -->
|
|
<uses-permission android:name="android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS" />
|
|
|
|
<!-- Permission needed to test wallpaper component -->
|
|
<uses-permission android:name="android.permission.SET_WALLPAPER" />
|
|
<uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
|
|
|
|
<!-- Permission required to test ContentResolver caching. -->
|
|
<uses-permission android:name="android.permission.CACHE_CONTENT" />
|
|
|
|
<!-- Permission required to test ExplicitHealthCheckServiceImpl. -->
|
|
<uses-permission android:name="android.permission.BIND_EXPLICIT_HEALTH_CHECK_SERVICE" />
|
|
|
|
<!-- Permission required for CTS test - CrossProfileAppsHostSideTest -->
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_PROFILES"/>
|
|
|
|
<application android:label="@string/app_label"
|
|
android:theme="@android:style/Theme.DeviceDefault.DayNight"
|
|
android:defaultToDeviceProtectedStorage="true"
|
|
android:directBootAware="true">
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="com.android.shell"
|
|
android:grantUriPermissions="true"
|
|
android:exported="false">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/file_provider_paths" />
|
|
</provider>
|
|
|
|
<provider
|
|
android:name=".BugreportStorageProvider"
|
|
android:authorities="com.android.shell.documents"
|
|
android:grantUriPermissions="true"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_DOCUMENTS"
|
|
android:enabled="false">
|
|
<intent-filter>
|
|
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
|
|
</intent-filter>
|
|
</provider>
|
|
|
|
<activity
|
|
android:name=".BugreportWarningActivity"
|
|
android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight"
|
|
android:finishOnCloseSystemDialogs="true"
|
|
android:excludeFromRecents="true"
|
|
android:exported="false" />
|
|
|
|
<receiver
|
|
android:name=".BugreportRequestedReceiver"
|
|
android:permission="android.permission.TRIGGER_SHELL_BUGREPORT">
|
|
<intent-filter>
|
|
<action android:name="com.android.internal.intent.action.BUGREPORT_REQUESTED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service
|
|
android:name=".BugreportProgressService"
|
|
android:exported="false"/>
|
|
</application>
|
|
</manifest>
|