adb获取Android系统属性(adb shell getprop ***)数据来源

Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件:

[cpp] view plain copy
 
  1. /init.rc  
  2. /default.prop  
  3. /system/build.prop  

通常我们可以通过命令getprop获取,setprop设置;在使用这两个命令前,先看看build.prop里面到底有些什么东西:

adb shell cat /system/build.prop

结果如下:(只取一部分列出)

ro.build.id=KOT49H
ro.build.display.id=KOT49H.20140814 test-keys
ro.build.version.incremental=20140814
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.build.date=2014-08-14 16:50:37
ro.product.model=K1
ro.product.brand=MBX
ro.product.name=K1
ro.product.device=K1
ro.product.board=K1
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=MBX
ro.product.locale.language=zh

很显然,该文件存放的数据是以这种等号形式存放的,而且它们是键值对成对出现的。

现在我们再看看getprop取得的结果: (只取一部分列出)

[ro.build.characteristics]: [mbx]
[ro.build.date.utc]: [1407987033]
[ro.build.date]: [2014-08-14 16:50:37]
[ro.build.description]: [k200-user 4.4.2 KOT49H 20140814 test-keys]
[ro.build.display.id]: [KOT49H.20140814 test-keys]
[ro.build.id]: [KOT49H]
[ro.build.product]: [K1]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [20140814]
[ro.build.version.release]: [4.4.2]
[ro.product.board]: [K1]
[ro.product.brand]: [MBX]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a
[ro.product.device]: [K1]
[ro.product.locale.language]: [zh]
[ro.product.locale.region]: [cn]
[ro.product.model]: [K1]
[ro.product.name]: [K1]

因此,getprop就是将配置文件里的信息读取出来并经过整理后,并以字典的形式展示给用户的。

它的格式如下:
getprop [key]  取得对应的key的属性值
getprop  列出所有配置属性值
如果要修改属性的话,很简单,只需修改字典值就可以了,如:
setprop [key] [value] 设置指定key的属性值;
watchprops  监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来
其实这三个命令都是toolbox的子命令,如果有兴趣的可以看在android源码中看到其对应的源码:system/core/toolbox/

getprop 查看机器的全部信息参数
getprop ro.serialno 查看机器的序列号
getprop ro.carrier 查看机器的CID号
getprop ro.hardware 查看机器板子代号
getprop ro.bootloader 查看SPL(Hboot)版本号

原文:http://www.xue5.com/Mobile/Android/707887.html

原文地址:https://www.cnblogs.com/Ph-one/p/6522545.html