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

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

Ответы

Ответ 1

В 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"

Ответ 2

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

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

Ответ 3

Да, 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:)

Ответ 4

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

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

Ответ 5

Я использую этот script (на 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