Можно ли использовать adb.exe для поиска описания телефона?

Если я вызываю команду «adb.exe devices», я получаю список устройств с уникальным идентификатором для каждого. Эти идентификаторы идеально подходят для программирования, но не очень удобочитаемы. Есть ли способ связать один из этих ID с (не обязательно уникальным) описанием телефона? Например, если у меня есть устройство с ID 1234567890abcdef, есть ли способ понять, что в реальной жизни это Motorola Droid X?

Solutions Collecting From Web of "Можно ли использовать adb.exe для поиска описания телефона?"

В Android есть запись Model number в настройках, отображающих название телефона.

Есть способ быстро увидеть это через командную строку:

 adb shell cat /system/build.prop | grep "product" 

Это то, что показано для Samsung Galaxy S 4G :

 ro.product.model=SGH-T959V ro.product.brand=TMOUS ro.product.name=SGH-T959V ro.product.device=SGH-T959V ro.product.board=SGH-T959V ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.manufacturer=Samsung ro.product.locale.language=en ro.product.locale.region=US # ro.build.product is obsolete; use ro.product.device ro.build.product=SGH-T959V 

Результат HTC Desire выглядит следующим образом:

 ro.product.model=HTC Desire ro.product.brand=htc_wwe ro.product.name=htc_bravo ro.product.device=bravo ro.product.board=bravo ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.manufacturer=HTC ro.product.locale.language=hdpi ro.product.locale.region= 

Вы можете уточнить свой запрос, чтобы показать только одну строку:

 adb shell cat /system/build.prop | grep "ro.product.device" 

или

 adb shell cat /system/build.prop | grep "ro.product.model" 

С более новыми устройствами вы можете запускать

adb devices -l

Это отобразит некоторые устройства в более удобной для восприятия форме

Пример:

 04d9a601ce516d53 device usb:1A134500 product:occam model:Nexus_4 device:mako 015d4b3406280a07 device usb:1A134700 product:nakasi model:Nexus_7 device:grouper 01466E620900F005 device usb:1A134600 product:mysid model:Galaxy_Nexus device:toro 

Да, adb shell cat /system/build.prop замечательный, но также, как сказал @Matt, он иногда отличается из-за различного производства.

IMHO, самым надежным подходом является встроенная команда: adb shell getprop

================================================== ====================

Вот сравнение для исключения (эмулятор Genymotion):

С помощью adb shell cat /system/build.prop вы получите

 ro.product.brand=generic ro.product.name=vbox86p ro.product.device=vbox86p ro.product.board= ro.product.cpu.abi=x86 ro.product.manufacturer=Genymotion ro.product.locale.language=en ro.product.locale.region=US 

Таким образом, нет значения модели 🙁

С помощью adb shell getprop вы получите

 [ro.product.manufacturer]: [Genymotion] [ro.product.model]: [Nexus422ForAutomation] [ro.product.name]: [vbox86p] 

Здесь вы получите название модели: Nexus422ForAutomation 🙂

К сожалению, нет надежного способа сделать это, поскольку каждый производитель настраивает свои свойства сборки

Если вы введете «adb help» в командную строку, вы увидите список команд adb и описание для каждого.

Я использую этот скрипт (в MacOS):

  #!/bin/bash devices=`adb devices | grep "device" | grep -v "List of" | cut -d " " -f 1` for device in $devices do manufacturer=`adb -s $device shell getprop ro.product.manufacturer | sed -e 's/[[:space:]]*\$//'` model=`adb -s $device shell getprop ro.product.model | sed -e 's/[[:space:]]*\$//'` echo "$device: $manufacturer $model" done 

Он производит, например, следующий результат:

 T076000UWX: motorola XT1053 C4F12070E5A068E: samsung GT-P7510 4df1ff977b919f91: samsung GT-N7100 4258393032523638324D: Sony Ericsson LT18i