fastboot: Let "fastboot devices" work in all cases

Ignore ANDROID_SERIAL when requesting to list devices, or else it is
impossible to list devices without unsetting the env var. Even
  ANDROID_SERIAL=  fastboot devices
or
  fastboot -s "" devices
won't work.

Change-Id: Ie92f35bda852c6ecea4ebaefb75b8f18c10b6d0c
This commit is contained in:
JP Abgrall 2012-06-06 11:53:33 -07:00
parent 845f106a93
commit a032dedefe
1 changed files with 8 additions and 3 deletions

View File

@ -150,6 +150,11 @@ oops:
#endif
int match_fastboot(usb_ifc_info *info)
{
return match_fastboot_with_serial(info, serial);
}
int match_fastboot_with_serial(usb_ifc_info *info, const char *local_serial)
{
if(!(vendor_id && (info->dev_vendor == vendor_id)) &&
(info->dev_vendor != 0x18d1) && // Google
@ -170,14 +175,14 @@ int match_fastboot(usb_ifc_info *info)
if(info->ifc_protocol != 0x03) return -1;
// require matching serial number or device path if requested
// at the command line with the -s option.
if (serial && (strcmp(serial, info->serial_number) != 0 &&
strcmp(serial, info->device_path) != 0)) return -1;
if (local_serial && (strcmp(local_serial, info->serial_number) != 0 &&
strcmp(local_serial, info->device_path) != 0)) return -1;
return 0;
}
int list_devices_callback(usb_ifc_info *info)
{
if (match_fastboot(info) == 0) {
if (match_fastboot_with_serial(info, NULL) == 0) {
char* serial = info->serial_number;
if (!info->writable) {
serial = "no permissions"; // like "adb devices"