WaitDeviceRecovery

public class WaitDeviceRecovery
extends Object implements IDeviceRecovery

java.lang.Object
   ↳ com.android.tradefed.device.WaitDeviceRecovery


A simple implementation of a IDeviceRecovery that waits for device to be online and respond to simple commands.

Summary

Constants

int BOOTLOADER_POLL_ATTEMPTS

The number of attempts to check if device is in bootloader.

long INITIAL_PAUSE_TIME

the time in ms to wait before beginning recovery attempts

Fields

protected long mBootloaderWaitTime

protected boolean mDisableUnresponsiveReboot

protected boolean mDisableUsbReset

protected long mFastbootWaitTime

protected long mOnlineWaitTime

protected int mRequiredMinBattery

protected long mShellWaitTime

protected long mWaitTime

Public constructors

WaitDeviceRecovery()

Public methods

void recoverDevice(IDeviceStateMonitor monitor, boolean recoverUntilOnline)

Attempt to recover the given device that can no longer be communicated with.

void recoverDeviceBootloader(IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in bootloader mode.

void recoverDeviceFastbootd(IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in fastbootd mode.

void recoverDeviceRecovery(IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in recovery mode.

void setFastbootPath(String fastbootPath)

Sets the path to the fastboot binary to be used.

Protected methods

void checkMinBatteryLevel(IDevice device)

Checks if device battery level meets min requirement

IRunUtil getRunUtil()

Get the RunUtil instance to use.

void handleDeviceNotAvailable(IDeviceStateMonitor monitor, boolean recoverTillOnline)

Handle situation where device is not available.

void handleDeviceUnresponsive(IDevice device, IDeviceStateMonitor monitor)

Handle situation where device is online but unresponsive.

Constants

BOOTLOADER_POLL_ATTEMPTS

public static final int BOOTLOADER_POLL_ATTEMPTS

The number of attempts to check if device is in bootloader.

Exposed for unit testing

Constant Value: 3 (0x00000003)

INITIAL_PAUSE_TIME

protected static final long INITIAL_PAUSE_TIME

the time in ms to wait before beginning recovery attempts

Constant Value: 5000 (0x0000000000001388)

Fields

mBootloaderWaitTime

protected long mBootloaderWaitTime

mDisableUnresponsiveReboot

protected boolean mDisableUnresponsiveReboot

mDisableUsbReset

protected boolean mDisableUsbReset

mFastbootWaitTime

protected long mFastbootWaitTime

mOnlineWaitTime

protected long mOnlineWaitTime

mRequiredMinBattery

protected int mRequiredMinBattery

mShellWaitTime

protected long mShellWaitTime

mWaitTime

protected long mWaitTime

Public constructors

WaitDeviceRecovery

public WaitDeviceRecovery ()

Public methods

recoverDevice

public void recoverDevice (IDeviceStateMonitor monitor, 
                boolean recoverUntilOnline)

Attempt to recover the given device that can no longer be communicated with.

Method should block and only return when device is in requested state.

Parameters
monitor IDeviceStateMonitor: the IDeviceStateMonitor to use.

recoverUntilOnline boolean: if true, method should return as soon as device is online on adb. If false, method should block until device is fully available for testing (ie IDeviceStateMonitor#waitForDeviceAvailable() succeeds.

Throws
DeviceNotAvailableException

recoverDeviceBootloader

public void recoverDeviceBootloader (IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in bootloader mode.

Parameters
monitor IDeviceStateMonitor: the IDeviceStateMonitor to use.

Throws
DeviceNotAvailableException

recoverDeviceFastbootd

public void recoverDeviceFastbootd (IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in fastbootd mode.

Parameters
monitor IDeviceStateMonitor: the IDeviceStateMonitor to use.

Throws
DeviceNotAvailableException

recoverDeviceRecovery

public void recoverDeviceRecovery (IDeviceStateMonitor monitor)

Attempt to recover the given unresponsive device in recovery mode.

Parameters
monitor IDeviceStateMonitor: the IDeviceStateMonitor to use.

Throws
DeviceNotAvailableException

setFastbootPath

public void setFastbootPath (String fastbootPath)

Sets the path to the fastboot binary to be used.

Parameters
fastbootPath String: a String defining the path to the fastboot binary.

Protected methods

checkMinBatteryLevel

protected void checkMinBatteryLevel (IDevice device)

Checks if device battery level meets min requirement

Throws
DeviceNotAvailableException if battery level cannot be read or lower than min

getRunUtil

protected IRunUtil getRunUtil ()

Get the RunUtil instance to use.

Exposed for unit testing.

Returns
IRunUtil

handleDeviceNotAvailable

protected void handleDeviceNotAvailable (IDeviceStateMonitor monitor, 
                boolean recoverTillOnline)

Handle situation where device is not available.

Parameters
monitor IDeviceStateMonitor: the IDeviceStateMonitor

recoverTillOnline boolean: if true this method should return if device is online, and not check for responsiveness

Throws
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

handleDeviceUnresponsive

protected void handleDeviceUnresponsive (IDevice device, 
                IDeviceStateMonitor monitor)

Handle situation where device is online but unresponsive.

Parameters
device IDevice

Throws
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException