diff options
author | Yo Chiang <yochiang@google.com> | 2020-10-22 19:02:45 +0800 |
---|---|---|
committer | Yo Chiang <yochiang@google.com> | 2020-10-29 16:03:38 +0800 |
commit | 68e2d6b36049bdff1825ac86b36e8e46fc5ed0b1 (patch) | |
tree | 8cb3bffd104f73e13bcba1d7d3bc1d147a2420e0 /packages/DynamicSystemInstallationService/src | |
parent | c5d02da0f6553a00da6b0d833b67d3bbe87341e0 (diff) |
Disable DSU in executeRebootToNormalCommand()
executeRebootToNormalCommand() reboots the device only if DSU is
successfully disabled, else show a toast describing the failure.
Bug: 171380622
Test: 1. Install and boot into a DSU
2. adb shell gsi_tool enable
3. Press "Restart" in DSU notification
4. Observe the device reboots back to the original system
Change-Id: I19b3d09a64282a28ca7b99b441ca93dea45fcce0
Diffstat (limited to 'packages/DynamicSystemInstallationService/src')
-rw-r--r-- | packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java index f7f3cbb7d332..256d2cd23dec 100644 --- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java +++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java @@ -375,8 +375,17 @@ public class DynamicSystemInstallationService extends Service return; } - // Per current design, we don't have disable() API. AOT is disabled on next reboot. - // TODO: Use better status query when b/125079548 is done. + if (!mDynSystem.setEnable(/* enable = */ false, /* oneShot = */ false)) { + Log.e(TAG, "Failed to disable DynamicSystem."); + + // Dismiss status bar and show a toast. + sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); + Toast.makeText(this, + getString(R.string.toast_failed_to_disable_dynsystem), + Toast.LENGTH_LONG).show(); + return; + } + PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); if (powerManager != null) { |