code: def list_devices():
      out = execute("adb devices", False)
      serialno_list = out.strip().split("\n")[1:]
      serialno_list = [
          tuple(pair.split("\t")) for pair in serialno_list
      ]
      devices = []
      for serialno in serialno_list:
          if (
              len(serialno) < 2
              or serialno[1].startswith("no permissions")
              or serialno[1].startswith("unauthorized")
          ):
              continue
          devices.append(serialno[0])
  
      return devices
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import os
  import re
  import subprocess
  import random
  import tempfile
  from utils import util
label_desc: Use image node_id 2 for calling the AndroidDevice obj's underlying member method code with example usage: obj.list_devices() and returns: devices