Devil: Device Blacklist

What is it?

The device blacklist is a per-run list of devices detected to be in a known bad state along with the reason they are suspected of being in a bad state (offline, not responding, etc). It is stored as a json file. This gets reset every run during the device recovery step (currently part of bb_device_status_check).

Bots

On bots, this is normally found at //out/bad_devices.json. If you are having problems with blacklisted devices locally even though a device is in a good state, you can safely delete this file.

Tools for interacting with device black list.

You can interact with the device blacklist via devil.android.device_blacklist. This allows for any interaction you would need with a device blacklist:

  • Reading
  • Writing
  • Extending
  • Resetting

An example usecase of this is:

from devil.android import device_blacklist

blacklist = device_blacklist.Blacklist(blacklist_path)
blacklisted_devices = blacklist.Read()
for device in blacklisted_devices:
  print 'Device %s is blacklisted' % device
blacklist.Reset()
new_blacklist = {'device_id1': {'timestamp': ts, 'reason': reason}}
blacklist.Write(new_blacklist)
blacklist.Extend([device_2, device_3], reason='Reason for blacklisting')

Where it is used.

The blacklist file path is passed directly to the following scripts in chromium:

The blacklist is also used in the following scripts: