2011-06-16 57 views
15

如果我調用命令「adb.exe devices」,我會得到一個具有唯一ID的設備列表。這些ID非常適合編程,但不適合人類閱讀。有什麼辦法可以將這些ID之一鏈接到手機的描述(不一定是唯一的)?例如,如果我有一個ID爲1234567890abcdef的設備,有什麼辦法可以在現實生活中找到它是摩托羅拉Droid X?我可以使用adb.exe查找手機的說明嗎?

回答

34

在Android中,在顯示電話名稱的設置中有一個Model number條目。

有一種方法通過命令行來快速地看到這一點:

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

這是表示對三星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" 
+1

在HTC的設備,你可能會想看看模型即ro.product.model =的HTC Desire作爲設備用於其代號(ro.product.device =布拉沃)。 – 2011-06-16 19:45:05

+0

我剛剛編輯答案提到'模型',然後看到您的評論:) – inazaruk 2011-06-16 19:48:18

+0

@David Caunt,你能編輯我的答案,並添加您的HTC輸出結果?所以其他人可以看到'model'和'device'之間的區別。 – inazaruk 2011-06-16 19:49:50

0

不幸的是,沒有可靠的方法來做到這一點,因爲每個廠商調整其生成屬性

如果鍵入「亞行幫助」進入命令行模式,你可以看到亞行命令的列表和每個描述。

4

對於較新的設備,你可以運行

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 
+1

你如何定義「最新版本的Android」? – 2016-12-06 18:53:34

+0

我想在這一點上,它將是Android的大多數版本。我相信截點是Android 4.2及更高版本。 – Sperr 2016-12-06 20:08:27

2

是,adb shell cat /system/build.prop是精彩,也可作爲@馬特說,它有時會不同,因爲不同的製造。

恕我直言,最可靠的方法是內置的命令: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 :)

0

我使用這個腳本(在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 
相關問題