Use new IDevice.reboot method.
Change-Id: Ic8756ce1e32d594e9c9515df01ab35cf426b9bba
diff --git a/src/com/android/tradefed/device/TestDevice.java b/src/com/android/tradefed/device/TestDevice.java
index 3435c57..397e6f1 100644
--- a/src/com/android/tradefed/device/TestDevice.java
+++ b/src/com/android/tradefed/device/TestDevice.java
@@ -587,7 +587,7 @@
} else {
Log.i(LOG_TAG, String.format("Booting device %s into bootloader",
getSerialNumber()));
- executeAdbCommand("reboot", "bootloader");
+ doAdbReboot("bootloader");
}
if (!mMonitor.waitForDeviceBootloader(FASTBOOT_TIMEOUT)) {
// TODO: add recoverBootloader method
@@ -606,9 +606,8 @@
executeFastbootCommand("reboot");
} else {
Log.i(LOG_TAG, String.format("Rebooting device %s", getSerialNumber()));
- executeAdbCommand("reboot");
+ doAdbReboot(null);
waitForDeviceNotAvailable("reboot", 2*60*1000);
-
}
if (!mMonitor.waitForDeviceAvailable()) {
recoverDevice();
@@ -616,6 +615,23 @@
postBootSetup();
}
+ /**
+ * Perform a adb reboot.
+ *
+ * @param into the bootloader name to reboot into, or <code>null</code> to just reboot the
+ * device.
+ * @throws DeviceNotAvailableException
+ */
+ private void doAdbReboot(final String into) throws DeviceNotAvailableException {
+ IDeviceAction rebootAction = new IDeviceAction() {
+ public boolean doAction() throws IOException {
+ getIDevice().reboot(into);
+ return true;
+ }
+ };
+ performDeviceAction("reboot", rebootAction, MAX_RETRY_ATTEMPTS);
+ }
+
private void waitForDeviceNotAvailable(String operationDesc, long time) {
// TODO: a bit of a race condition here. Would be better to start a device listener
// before the operation