anchor.diff:            if (devicesText.isEmpty) {
               controller.add(<AdbDevice>[]);
             } else {
  -            controller.add(devicesText.split('\n').map((String deviceInfo) {
  +            List<AdbDevice> devices = devicesText.split('\n').map((String deviceInfo) {
                 return new AdbDevice(deviceInfo);
  -            }).toList());
  +            }).toList();
  +
  +            await _populateDeviceNames(devices);
  +
  +            controller.add(devices);
             }
           });
           socket.done.then((_) => controller.close());
  
positive.code:         socket = await Socket.connect(InternetAddress.LOOPBACK_IP_V4, adbServerPort);
          printTrace('--> host:track-devices');
          socket.add(_createAdbRequest('host:track-devices'));
          socket.listen((List<int> data) {
            String stringResult = new String.fromCharCodes(data);
            printTrace('<-- ${stringResult.trim()}');
            _AdbServerResponse response = new _AdbServerResponse(
  
negative.code: 
    /// Device model; can be null. `XT1045`, `Nexus_7`
    String get modelID => _info['model'];
  
    set modelID(String value) {
      _info['model'] = value;
    }
  
    /// Device code name; can be null. `peregrine`, `grouper`
    String get deviceCodeName => _info['device'];
  