Android ADB 命令获取设备属性

Posted

技术标签:

【中文标题】Android ADB 命令获取设备属性【英文标题】:Android ADB commands to get the device properties 【发布时间】:2014-02-01 16:07:23 【问题描述】:

我正在尝试从 ADB 命令中获取设备属性。我可以通过运行示例 android 应用程序来获得这些值。我多么希望使用 adb shell 命令本身来让我的生活更轻松。这是我将通过示例应用程序的方式,但我想要相应的 adb 命令用于

    设备制造商 设备硬件 设备型号 操作系统版本(整数值) 内核版本

* 请注意,我的设备没有植根,我不知道植根设备以获得这些值 :-) *

## 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】:
adb shell getprop ro.build.version.sdk

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

adb shell getprop

【讨论】:

如果我们连接了多个设备,我们如何获取这些信息? 您可以编写一个脚本来对所有设备执行相同的 adb 命令,或者使用 -s 指定您感兴趣的一个 还有 adb -d 开关,如果存在多个 USB 设备,则将命令定向到唯一连接的 USB 设备会返回错误。 (或 -e 用于模拟器) 谢谢,我用这个adb shell getprop ro.crypto.state来了解我的华为p9 lite是否是全盘加密的。希望其他人用谷歌搜索找到这条评论。【参考方案2】:

从 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.knox***.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]

【讨论】:

【参考方案3】:

您应该使用adb shell getprop 命令和grep 有关您当前设备的特定信息,有关其他信息,您可以阅读文档: Android Debug Bridge documentation

我在下面添加了一些示例:

    语言 - adb shell getprop | grep language

    [persist.sys.language]: [zh]

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

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

    [sys.boot_completed]:[1]

    设备型号 - adb shell getprop | grep model

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

    sdk 版本 - adb shell getprop | grep sdk

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

    时区 - adb shell getprop | grep timezone

    [persist.sys.timezone]:[亚洲/中国]

    序列号 - adb shell getprop | grep serialno

    [ro.boot.serialno]:[1234567]

【讨论】:

【参考方案4】:

用于 Power-Shell

./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"

在 power shell 中查找单个字符串

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

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

多个

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

【讨论】:

以上是关于Android ADB 命令获取设备属性的主要内容,如果未能解决你的问题,请参考以下文章

Android 常用 adb 命令总结

Android ADB 你想要的都在这

如何获得Android设备名称(ADB命令详细介绍)

Android: adb 命令查日志

Android 常用 adb 命令

如何通过 adb 获取 Android 设备的供应商 ID?