Android ADB命令获取设备属性

86

我正在尝试使用ADB命令获取设备属性。我可以通过运行示例Android应用程序来获得这些值。但是,我希望通过adb shell命令本身来轻松地获取这些值。以下是我将通过示例应用程序获得的方式,但我想要对应的adb命令:

  1. 设备制造商
  2. 设备硬件
  3. 设备型号
  4. 操作系统版本(整数值)
  5. 内核版本

*请注意,我的设备未经过root处理,我也不知道如何root设备来获取这些值 :-) *

## Code snippet
import android.os.Build;
manufacturer = Build.MANUFACTURER;
hardware = Build.HARDWARE;
model = Build.MODEL;
oSVersion = Build.VERSION.SDK_INT;
kernelVersion = System.getProperty("os.version");

然而,我能够获取操作系统版本。但是我想要以整数形式获得SDK版本。我想要18而不是4.2.2。

C:\>adb shell getprop ro.build.version.release
4.2.2

1
一个示例输出在这里也会很有用。 - not2qubit
4个回答

170
adb shell getprop ro.build.version.sdk

如果你想查看完整的参数列表,只需输入:

adb shell getprop

2
如果我们有多个设备连接,我们如何获取这些信息? - Gokhan Arik
3
你可以编写一个脚本来执行相同的adb命令到所有设备,或者只需使用“-s”指定你感兴趣的设备。 - dmarin
还有一个adb -d开关,它可以:将命令发送到唯一连接的USB设备,并在存在多个USB设备时返回错误。(或者使用-e选项来指定模拟器) - CJBS
谢谢,我用这个命令 adb shell getprop ro.crypto.state 来了解我的华为 P9 Lite 是否启用了全盘加密。希望其他人在使用谷歌搜索时能够找到这条评论。 - vault

38

从Linux终端:

adb shell getprop | grep "model\|version.sdk\|manufacturer\|hardware\|platform\|revision\|serialno\|product.name\|brand"

来自 Windows PowerShell:

adb shell 
getprop | grep -e 'model' -e 'version.sdk' -e 'manufacturer' -e 'hardware' -e 'platform' -e 'revision' -e 'serialno' -e 'product.name' -e 'brand'

三星的示例输出:

[gsm.version.baseband]: [G900VVRU2BOE1]
[gsm.version.ril-impl]: [Samsung RIL v3.0]
[net.knoxscep.version]: [2.0.1]
[net.knoxsso.version]: [2.1.1]
[net.knoxvpn.version]: [2.2.0]
[persist.service.bdroid.version]: [4.1]
[ro.board.platform]: [msm8974]
[ro.boot.hardware]: [qcom]
[ro.boot.serialno]: [xxxxxx]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [G900VVRU2BOE1]
[ro.build.version.release]: [5.0]
[ro.build.version.sdk]: [21]
[ro.build.version.sdl]: [2101]
[ro.com.google.gmsversion]: [5.0_r2]
[ro.config.timaversion]: [3.0]
[ro.hardware]: [qcom]
[ro.opengles.version]: [196108]
[ro.product.brand]: [Verizon]
[ro.product.manufacturer]: [samsung]
[ro.product.model]: [SM-G900V]
[ro.product.name]: [kltevzw]
[ro.revision]: [14]
[ro.serialno]: [e5ce97c7]

5
您可以使用adb shell getprop命令和grep特定信息来获取有关当前设备的信息。如需更多信息,请参阅文档:Android Debug Bridge documentation 以下是一些示例:
  1. 语言 - adb shell getprop | grep language

    [persist.sys.language]: [en]

    [ro.product.locale.language]: [en]

  2. 启动完成(重置后设备准备就绪)- adb shell getprop | grep boot_completed

    [sys.boot_completed]: [1]

  3. 设备型号 - adb shell getprop | grep model

    [ro.product.model]: [Nexus 4]

  4. sdk版本 - adb shell getprop | grep sdk

    [ro.build.version.sdk]: [22]

  5. 时区 - adb shell getprop | grep timezone

    [persist.sys.timezone]: [Asia/China]

  6. 序列号 - adb shell getprop | grep serialno

    [ro.boot.serialno]: [1234567]


1

针对PowerShell

./adb shell getprop | Select-String -Pattern '(model)|(version.sdk)|(manufacturer)|(platform)|(serialno)|(product.name)|(brand)'

对于Linux(从@0x8BADF00D中获取的答案)
adb shell getprop | grep "model\|version.sdk\|manufacturer\|hardware\|platform\|revision\|serialno\|product.name\|brand"

在PowerShell中查找单个字符串

./adb shell getprop | Select-String -Pattern 'model'

或者

./adb shell getprop | Select-String -Pattern '(model)'

对于多个

./adb shell getprop | Select-String -Pattern '(a|b|c|d)'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接