From fa539d136efbf172124fca21a6a42bf9fef5b24d Mon Sep 17 00:00:00 2001 From: Darryl L Johnson Date: Tue, 22 Sep 2020 16:21:59 -0700 Subject: Add DeviceStateManagerService shell commands to get and override state. This also introduces the CONTROL_DEVICE_STATE permission to protect against setting the device state. The permission is granted to the shell to allow overriding via ADB. Two ADB commands are introduced with this change: -> adb shell cmd device_state print-states will print the list of states supported by the device Ex: $ adb shell cmd device_state print-states [ 0, 1, 2 ] -> adb shell cmd device_state state [reset|OVERRIDE_DEVICE_STATE] will print the current device state or override the current device state with the supplied override state. Ex: $ adb shell cmd device_state 0 Ex: $ adb shell cmd device_state state Device state: 0 ---------------------- Base state: 2 Override state: 0 Bug: 159401801 Test: atest DeviceStateManagerServiceTest Test: adb shell cmd device_state print-states Test: adb shell cmd device_state state Change-Id: I8a74f1f2bf8189523bdae861fb38f86988c21b2a --- core/res/AndroidManifest.xml | 6 + packages/Shell/AndroidManifest.xml | 3 + .../devicestate/DeviceStateManagerService.java | 106 ++++++++++++++--- .../DeviceStateManagerShellCommand.java | 128 +++++++++++++++++++++ .../devicestate/DeviceStateManagerServiceTest.java | 41 +++++++ 5 files changed, 270 insertions(+), 14 deletions(-) create mode 100644 services/core/java/com/android/server/devicestate/DeviceStateManagerShellCommand.java diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index f2af514c08ba..85eaa65e2d3f 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -5151,6 +5151,12 @@ + + + diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index 5f018a0322a3..9cd69ccabf13 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -338,6 +338,9 @@ + + +