From 62aad7f66fcd673831029eb96dd49c95f76b17bd Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Thu, 14 Mar 2013 01:11:53 -0700 Subject: add reboot and shutdown to `svc power` command a runtime shutdown will be performed first, then device will reboot with the provided reason or power off. Change-Id: I44cfbae19626c46147fad3bc8e91434970daa5d5 --- .../src/com/android/commands/svc/PowerCommand.java | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'cmds/svc/src') diff --git a/cmds/svc/src/com/android/commands/svc/PowerCommand.java b/cmds/svc/src/com/android/commands/svc/PowerCommand.java index 58105fa..da8586c 100644 --- a/cmds/svc/src/com/android/commands/svc/PowerCommand.java +++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java @@ -36,12 +36,18 @@ public class PowerCommand extends Svc.Command { return shortHelp() + "\n" + "\n" + "usage: svc power stayon [true|false|usb|ac|wireless]\n" - + " Set the 'keep awake while plugged in' setting.\n"; + + " Set the 'keep awake while plugged in' setting.\n" + + " svc power reboot [reason]\n" + + " Perform a runtime shutdown and reboot device with specified reason.\n" + + " svc power shutdown\n" + + " Perform a runtime shutdown and power off the device.\n"; } public void run(String[] args) { fail: { if (args.length >= 2) { + IPowerManager pm = IPowerManager.Stub.asInterface( + ServiceManager.getService(Context.POWER_SERVICE)); if ("stayon".equals(args[1]) && args.length == 3) { int val; if ("true".equals(args[2])) { @@ -60,8 +66,6 @@ public class PowerCommand extends Svc.Command { } else { break fail; } - IPowerManager pm - = IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE)); try { if (val != 0) { // if the request is not to set it to false, wake up the screen so that @@ -74,6 +78,26 @@ public class PowerCommand extends Svc.Command { System.err.println("Faild to set setting: " + e); } return; + } else if ("reboot".equals(args[1])) { + String mode = null; + if (args.length == 3) { + mode = args[2]; + } + try { + // no confirm, wait till device is rebooted + pm.reboot(false, mode, true); + } catch (RemoteException e) { + System.err.println("Failed to reboot."); + } + return; + } else if ("shutdown".equals(args[1])) { + try { + // no confirm, wait till device is off + pm.shutdown(false, true); + } catch (RemoteException e) { + System.err.println("Failed to shutdown."); + } + return; } } } -- cgit v1.1