Cache SIM PIN for verification after unattended reboot.
Bug: 160784387
Test: manual
Change-Id: Iab402b2651b9dac78f3d40d5bea9b929d31db54d
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 9676e59..f9df005 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -74,6 +74,7 @@
private static final String EMERGENCY_NUMBER_TEST_MODE = "emergency-number-test-mode";
private static final String END_BLOCK_SUPPRESSION = "end-block-suppression";
private static final String RESTART_MODEM = "restart-modem";
+ private static final String UNATTENDED_REBOOT = "unattended-reboot";
private static final String CARRIER_CONFIG_SUBCOMMAND = "cc";
private static final String DATA_TEST_MODE = "data";
private static final String ENABLE = "enable";
@@ -211,6 +212,8 @@
return handleRestartModemCommand();
case CALL_COMPOSER_SUBCOMMAND:
return handleCallComposerCommand();
+ case UNATTENDED_REBOOT:
+ return handleUnattendedReboot();
default: {
return handleDefaultCommands(cmd);
}
@@ -241,6 +244,8 @@
pw.println(" RCS VoLTE Single Registration Config Commands.");
pw.println(" restart-modem");
pw.println(" Restart modem command.");
+ pw.println(" unattended-reboot");
+ pw.println(" Prepare for unattended reboot.");
onHelpIms();
onHelpUce();
onHelpEmergencyNumber();
@@ -1466,6 +1471,20 @@
return result ? 0 : -1;
}
+ private int handleUnattendedReboot() {
+ // Verify that the user is allowed to run the command. Only allowed in rooted device in a
+ // non user build.
+ if (Binder.getCallingUid() != Process.ROOT_UID || TelephonyUtils.IS_USER) {
+ getErrPrintWriter().println("UnattendedReboot: Permission denied.");
+ return -1;
+ }
+
+ int result = TelephonyManager.getDefault().prepareForUnattendedReboot();
+ getOutPrintWriter().println("result: " + result);
+
+ return result != TelephonyManager.PREPARE_UNATTENDED_REBOOT_ERROR ? 0 : -1;
+ }
+
private int handleGbaCommand() {
String arg = getNextArg();
if (arg == null) {