手機(jī)設(shè)備信息與 Android build.prop 文件
什么是 build.prop 文件
路徑: /system/build.prop
說明: build.prop
是 Android 系統(tǒng)中的一個重要的屬性文件,記錄了系統(tǒng)的設(shè)置和改變口柳。
主要信息類型:ro.build.*
(編譯信息)苹粟,ro.product.*
(設(shè)備信息),ro.config.*
(默認(rèn)設(shè)置信息)跃闹,dalvik.vm.*
(虛擬機(jī)信息)等嵌削。
獲取 Android 設(shè)備信息的命令
一種是通過訪問 /system/build.prop
文件進(jìn)行查看
# 打印 /system/build.prop 所有內(nèi)容
adb shell cat /system/build.prop
# 通過 grep 篩選特定內(nèi)容
adb shell cat /system/build.prop | grep ro.product
也可以用 ADB 的命令查看
# 顯示所有信息
adb shell getprop
# 顯示特定信息
adb shell getprop ro.product.model
# 篩選信息
adb shell getprop | grep product
部分 build.prop 信息說明
參數(shù) | 說明 | 例子 |
---|---|---|
ro.build.display.full_id |
顯示標(biāo)識,標(biāo)識顯示設(shè)備的完整版本號 | ro.build.display.full_id=A31u_11_A.04_160613 |
ro.product.model |
機(jī)器型號 | ro.product.model=A31u |
ro.product.device |
設(shè)備名 | ro.product.device=A31u |
ro.product.name=A31u |
機(jī)器名 | ro.product.name=A31u |
ro.build.id=KTU84P |
編譯標(biāo)識 | ro.build.id=KTU84P |
ro.build.display.id |
顯示標(biāo)識 | ro.build.display.id=KTU84P release-keys |
ro.build.version.incremental |
版本增加說明 | ro.build.version.incremental=eng.root.20160613 |
ro.build.version.sdk |
編譯時使用的 SDK 版本 | ro.build.version.sdk=19 |
ro.build.version.codename |
版本編碼名稱 | ro.build.version.codename=REL |
ro.build.version.release |
公布的版本(一般用于手機(jī)信息的系統(tǒng)版本) | ro.build.version.release=4.4.4 |
ro.build.date |
系統(tǒng)編譯時間 | ro.build.date=Mon Jun 13 21:38:06 CST 2016 |
ro.build.date.utc |
系統(tǒng)編譯時間(UTC版本) | ro.build.date.utc=1465825086 |
ro.build.type |
系統(tǒng)編譯類型 | ro.build.type=user |
ro.build.user |
系統(tǒng)用戶名 | ro.build.user=root |
ro.build.host |
系統(tǒng)主機(jī)名 | ro.build.host=ubuntu-121-114 |
ro.build.tags |
系統(tǒng)標(biāo)記 | ro.build.tags=release-keys |
ro.product.model |
機(jī)器型號 | ro.product.model=msm8916_32 |
ro.product.brand |
機(jī)器品牌 | ro.product.brand=OPPO |
ro.product.name |
機(jī)器 | ro.product.name=msm8916_32 |
ro.product.device |
設(shè)備名 | ro.product.device=msm8916_32 |
ro.product.board |
主板名 | ro.product.board=msm8916 |
ro.product.cpu.abi |
CPU 支持的架構(gòu) | ro.product.cpu.abi=armeabi-v7a |
ro.product.cpu.abi2 |
CPU 支持的架構(gòu) | ro.product.cpu.abi2=armeabi |
ro.product.manufacturer |
制造商 | ro.product.manufacturer=OPPO |
ro.product.locale.language |
系統(tǒng)語言 | ro.product.locale.language=zh |
ro.product.locale.region |
系統(tǒng)所在區(qū)域 | ro.product.locale.region=CN |
ro.wifi.channels |
WiFi的網(wǎng)絡(luò)信道(空表示自動識別) | ro.wifi.channels= |
ro.board.platform |
主板板卡型號 | ro.board.platform=msm8916 |
debug.sf.hw |
硬件 GPU 加速(1:開啟望艺,0:關(guān)閉) | debug.sf.hw=1 |
dalvik.vm.heapsize |
Dalvik 虛擬內(nèi)存大小 | dalvik.vm.heapsize=36m |
dalvik.vm.heapstartsize |
Dalvik 虛擬內(nèi)存初始堆棧大小 | dalvik.vm.heapstartsize=12m |
dalvik.vm.heapgrowthlimit |
Dalvik 虛擬內(nèi)存堆棧增長極限 | dalvik.vm.heapgrowthlimit=128m |
dalvik.vm.heapsize |
Dalvik 虛擬內(nèi)存最大堆棧大小 | dalvik.vm.heapsize=256m |
dalvik.vm.heaptargetutilization |
Dalvik 堆指標(biāo)利用效率/堆內(nèi)存利用百分比 | dalvik.vm.heaptargetutilization=0.75 |
net.bt.name |
藍(lán)牙網(wǎng)絡(luò)中顯示的名字 | net.bt.name=Android |
ro.config.alarm_alert |
默認(rèn)鬧鐘鈴聲 | ro.config.alarm_alert=alarm_005.ogg |
ro.config.ringtone |
默認(rèn)響鈴鈴聲 | ro.config.ringtone=ringtone_001.ogg |
ro.config.ringtone_sim2 |
默認(rèn)響鈴鈴聲(卡2) | ro.config.ringtone_sim2=ringtone_005.ogg |
ro.config.notification_sound |
默認(rèn)通知鈴聲 | ro.config.notification_sound=notification_001.ogg |
ro.config.notification_sim2 |
默認(rèn)通知鈴聲(卡2) | ro.config.notification_sim2=notification_009.ogg |
ro.com.android.dateformat |
默認(rèn)時間格式 | ro.com.android.dateformat=MM-dd-yyyy |
JNI 獲取設(shè)備信息
知道一些字段的信息苛秕,那么就可以通過 JNI 的一些接口訪問部分信息了。
(不需要繁瑣的用 JNI 調(diào)用 Java 接口提取設(shè)備信息)
#include <sys/system_properties.h>
...
{
char info[256];
__system_property_get("ro.build.version.sdk", info); // 獲取 SDK 版本找默。提取的信息會存入 info 中艇劫。
...
__system_property_get("ro.product.model", info); // 獲取機(jī)型。提取的信息會存入 info 中惩激。
...
__system_property_get("ro.serialno", info); // 獲取序列號店煞。提取的信息會存入 info 中蟹演。
}
需要包含 <sys/system_properties.h>
頭文件。
調(diào)用 __system_property_get
接口浅缸」熘模【int __system_property_get(const char* __name, char* __value)
】
附錄:一個設(shè)備的 build.prop 文件內(nèi)容
# run command:
# `adb shell cat /system/build.prop`
#
#
# begin build oppo properties
# autogenerated by oppo_buildinfo.sh
ro.build.date.Ymd=160613
ro.build.date.ymd=160613
ro.build.date.YmdHM=201606132138
ro.build.display.full_id=A31u_11_A.04_160613
ro.common.soft=MSM_15006
ro.product.model=A31u
persist.sys.assert.panic=true
persist.sys.oppo.dump=1
persist.sys.cfu_auto=1
ro.product.device=A31u
ro.product.name=A31u
ro.build.product=A31u
ro.build.version.ota=A31u_11.A.04_004_201606131927
ro.build.soft.majorversion=
ro.build.display.id=A31u_11_160613
ro.build.soft.version=A.04
ro.xxversion=v0.5
ro.build.kernel.id=3.10.28-G201606131927
sys.foreground_process=android
ro.oppo.version=
persist.sys.timezone=Asia/Shanghai
persist.sys.oppo.region=CN
persist.power.useautobrightadj=true
persist.sys.modem=yes
persist.sys.net=yes
persist.sys.assert.state=true
persist.oppo.ctsversion=false
ro.build.fingerprint=OPPO/A31u/A31u:4.4.4/KTU84P/1390465867:user/release-keys
ro.build.oppofingerprint=
persist.radio.multisim.config=dsds
# end build oppo properties
ro.rf_version=W_G_L_15006
ro.telephony.default_network=9,1
persist.sys.autoclearsave=3
persist.sys.assert.state=false
persist.sys.assert.panic=false
persist.sys.oppo.dump=0
ro.build.release_type=true
persist.sys.oem_smooth=1
ro.qualcomm.svi=0
persist.radio.lte_vrte_ltd=1
persist.sys.savetosdcard=cache
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KTU84P
ro.build.display.id=KTU84P release-keys
ro.build.version.incremental=eng.root.20160613
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4
ro.build.date=Mon Jun 13 21:38:06 CST 2016
ro.build.date.utc=1465825086
ro.build.type=user
ro.build.user=root
ro.build.host=ubuntu-121-114
ro.build.tags=release-keys
ro.product.model=msm8916_32
ro.product.brand=OPPO
ro.product.name=msm8916_32
ro.product.device=msm8916_32
ro.product.board=msm8916
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=OPPO
ro.product.locale.language=zh
ro.product.locale.region=CN
ro.wifi.channels=
ro.board.platform=msm8916
# ro.build.product is obsolete; use ro.product.device
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=msm8916_32-user 4.4.4 KTU84P eng.root.20160613 release-keys
ro.build.fingerprint=OPPO/msm8916_32/msm8916_32:4.4.4/KTU84P/eng.root.20160613:user/release-keys
ro.build.characteristics=default
ro.build.version.opporom=V2.0.1
ro.rom.different.version=ColorOS2.0.1
# end build properties
#
# from device/qcom/msm8916_32/system_cu.prop
#
#
# system.prop for msm8916
#
#rild.libpath=/system/lib/libreference-ril.so
rild.libpath=/system/vendor/lib/libril-qc-qmi-1.so
rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
ril.subscription.types=NV,RUIM
DEVICE_PROVISIONED=1
# Start in cdma mode
ro.telephony.default_network=5
debug.sf.hw=1
debug.egl.hw=1
debug.composition.type=c2d
persist.hwc.mdpcomp.enable=true
debug.mdpcomp.logs=0
#Enable translucent status bar feature
persist.hwc.ptor.enable=true
dalvik.vm.heapsize=36m
dev.pm.dyn_samplingrate=1
persist.demo.hdmirotationlock=false
debug.sf.gpu_comp_tiling=1
#ro.hdmi.enable=true
#tunnel.decode=true
#tunnel.audiovideo.decode=true
#lpa.decode=false
#lpa.use-stagefright=true
#persist.speaker.prot.enable=false
#
# system props for the cne module
#
persist.cne.feature=1
#
# system props for the dpm module
#
#ifndef VENDOR_EDIT
#LinJie.Xu@Prd.Android.USB, 2014/10/27, Modify for Qcom chen yan provider modify
#wenhua.Leng@Prd.Android.USB, 2015/04/28, Modify for Qcom gaojiugang provider modify
#persist.dpm.feature=0
#else /* VENDOR_EDIT */
#persist.dpm.feature=4
persist.dpm.feature=7
#endif /* VENDOR_EDIT */
#system props for the MM modules
media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-fma2dp=true
media.stagefright.enable-scan=true
media.swhevccodectype=0
media.hwhevccodectype=0
mmp.enable.3g2=true
mm.enable.smoothstreaming=true
mm.disable.sec_smoothstreaming=true
media.aac_51_output_enabled=true
#codecs:(PARSER_)AAC AC3 ASF AVI DTS 3G2 MP2TS QCP FLAC
mm.enable.qcom_parser=168563
#
# system props for the data modules
#
ro.use_data_netmgrd=true
persist.data.netmgrd.qos.enable=true
#system props for time-services
persist.timed.enable=true
#
# system prop for opengles version
#
# 196608 is decimal for 0x30000 to report version 3
ro.opengles.version=196608
# System property for cabl
#ifdnef VENDOR_EDIT
#Xiaori.Yuan@Mobile Phone Software Dept.Driver, 2014/09/02 shutdown cabl
#ro.qualcomm.cabl=2
#else
ro.qualcomm.cabl=0
#endif
#
# System props for telephony
# System prop to turn on CdmaLTEPhone always
telephony.lteOnCdmaDevice=1
persist.omh.enabled=false
#
# System props for bluetooh
# System prop to turn on hfp client
#ifdef VENDOR_EDIT
#HuiTao@Prd.BasicSrv.BT, 2014/08/06 Modify for Close HFP Client
bluetooth.hfp.client=0
bluetooth.a2dp.sink.enabled=false
#else
#bluetooth.hfp.client=1
#endif
#Simulate sdcard on /data/media
#
persist.fuse_sdcard=true
#
#snapdragon value add features
#
ro.qc.sdk.audio.ssr=false
##fluencetype can be "fluence" or "fluencepro" or "none"
ro.qc.sdk.audio.fluencetype=none
persist.audio.fluence.voicecall=true
persist.audio.fluence.voicerec=false
persist.audio.fluence.speaker=true
#Set for msm8916
tunnel.audio.encode = false
#Buffer size in kbytes for compress offload playback
audio.offload.buffer.size.kb=32
#use VERY_HIGH_QUALITY for audio resampler
af.resampler.quality=4
#Enable offload audio video playback by default
av.offload.enable=false
#enable voice path for PCM VoIP by default
use.voice.path.for.pcm.voip=true
#
#System property for FM transmitter
#
ro.fm.transmitter=false
#enable dsp gapless mode by default
audio.offload.gapless.enabled=true
#Audio voice concurrency related flags
voice.playback.conc.disabled=true
voice.record.conc.disabled=true
voice.voip.conc.disabled=true
#Set composition for USB
#ifndef VENDOR_EDIT
#LinJie.Xu@Prd.Android.USB, 2014/07/29, Remove for we don't need initialize persist.sys.usb.config
#persist.sys.usb.config=diag,serial_smd,rmnet_bam,adb
#endif /* VENDOR_EDIT */
# set max starting background services
ro.config.max_starting_bg=8
#property to enable user to access Google WFD settings
persist.debug.wfd.enable=1
#propery to enable VDS WFD solution
persist.hwc.enable_vds=1
#property to enable narrow search range for video encoding
vidc.enc.narrow.searchrange=1
#ifdef VENDOR_EDIT
#Xiaori.Yuan@Mobile Phone Software Dept.Driver, 2014/10/11 Add for 14005 performance
sys.hwc.gpu_perf_mode=1
#endif /* VENDOR_EDIT */
#hwui properties
#ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
ro.hwui.r_buffer_cache_size=8
ro.hwui.path_cache_size=32
ro.hwui.gradient_cache_size=1
ro.hwui.drop_shadow_cache_size=6
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.text_small_cache_width=1024
ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=1024
#
# ADDITIONAL_BUILD_PROPERTIES
#
dalvik.vm.heapminfree=4m
dalvik.vm.heapstartsize=12m
keyguard.no_require_sim=true
ro.com.android.dataroaming=false
ro.com.android.dateformat=MM-dd-yyyy
ro.config.alarm_alert=alarm_005.ogg
ro.config.ringtone=ringtone_001.ogg
ro.config.ringtone_sim2=ringtone_005.ogg
ro.config.notification_sound=notification_001.ogg
ro.config.notification_sim2=notification_009.ogg
ro.carrier=unknown
ro.oppo.theme.version=701
ro.vendor.extension_library=/vendor/lib/libqc-opt.so
persist.radio.apm_sim_not_pwdn=1
dalvik.vm.heapgrowthlimit=128m
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapmaxfree=8m
drm.service.enabled=true
persist.sys.dalvik.vm.lib=libdvm.so
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
persist.gps.qc_nlp_in_use=1
persist.loc.nlp_name=com.qualcomm.services.location
ro.gps.agps_provider=1
ro.pip.gated=0