ignore if adb root fails and prints more logging info for diagnosis
Change-Id: I7fa2776db5c2c43e2d872e9004e2e18b67e428ef
diff --git a/utils/python/controllers/android_device.py b/utils/python/controllers/android_device.py
index 607400a..7269a95 100644
--- a/utils/python/controllers/android_device.py
+++ b/utils/python/controllers/android_device.py
@@ -333,20 +333,19 @@
@property
def isBootloaderMode(self):
- """True if the device is in bootloader mode.
- """
+ """True if the device is in bootloader mode."""
return self.serial in list_fastboot_devices()
@property
def isAdbRoot(self):
- """True if adb is running as root for this device.
- """
- return "root" in self.adb.shell("id -u").decode("utf-8")
+ """True if adb is running as root for this device."""
+ id_str = self.adb.shell("id -u").decode("utf-8")
+ self.log.info(id_str)
+ return "root" in id_str
@property
def model(self):
- """The Android code name for the device.
- """
+ """The Android code name for the device."""
# If device is in bootloader mode, get mode name from fastboot.
if self.isBootloaderMode:
out = self.fastboot.getvar("product").strip()
@@ -393,10 +392,13 @@
setattr(self, k, v)
def rootAdb(self):
- """Change adb to root mode for this device.
- """
+ """Changes adb to root mode for this device."""
if not self.isAdbRoot:
- self.adb.root()
+ try:
+ self.adb.root()
+ except adb.AdbError as e:
+ # adb root is not always possible in the lab
+ logging.exception(e)
self.adb.wait_for_device()
self.adb.remount()
self.adb.wait_for_device()