new_contents: #!/usr/bin/env python
  # Copyright (c) 2015 The Chromium Authors. All rights reserved.
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
  
  
  """Produce health statistics for all attached Android devices."""
  
  
  import json
  import re
  import shlex
  import subprocess
  
  
  def sanitize(string):
    """Return a string which is safe for InfluxDB."""
    return re.sub('\W+', '_', string.strip())
  
  
  def get_devices():
    """Return a list of attached-and-ready Android devices."""
    devices = []
    for line in subprocess.check_output(['adb', 'devices']).splitlines()[1:]:
      if not line:
        continue
      parts = shlex.split(line)
      if len(parts) != 2:
        continue
      if parts[1] == 'device':
        devices.append(parts[0])
    return devices
  
  
  def get_device_model(serial):
    """Return the model name for the given device."""
    cmd = ['adb', '-s', serial, 'shell', 'getprop', 'ro.product.model']
    return sanitize(subprocess.check_output(cmd))
  
  
  def get_battery_stats(serial):
    """Obtain and return a dictionary of battery statistics for the device."""
    cmd = ['adb', '-s', serial, 'shell', 'dumpsys', 'batteryproperties']
    output = subprocess.check_output(cmd)
    parts = re.findall('([a-zA-Z0-9\s]+): (\d+)\s*', output)
    rv = {}
    for k, v in parts:
      rv[sanitize(k)] = int(v)
    return rv
  
  
  def get_temperature(serial):
    """Obtain and return the temperature of the device."""
    temp_file = '/sys/devices/virtual/thermal/thermal_zone0/temp'
    cmd = ['adb', '-s', serial, 'shell', 'cat', temp_file]
    output = subprocess.check_output(cmd).strip()
    try:
      temp = float(output)
    except Exception:
      return -1
    # Normalize the temperature, assuming it's 9 < t < 100 degrees C.
    while temp > 100.0:
      temp /= 10
    return temp
  
  
  def get_device_stats(serial):
    """Obtain and return a dictionary of device statistics."""
    return {
      'battery': get_battery_stats(serial),
      'model': get_device_model(serial),
      'temperature': get_temperature(serial),
    }
  
  
  def get_all_device_stats():
    """Obtain and return statistics for all attached devices."""
    devices = get_devices()
    stats = {}
    for device in devices:
      stats[device] = get_device_stats(device)
    return stats
  
  
  if __name__ == '__main__':
    print json.dumps(get_all_device_stats(), sort_keys=True, indent=4)
  
subject: Add android_stats.py script