Android系统中setprop,getprop,watchprops命令的使用

本文介绍了Android系统中用于配置开机设置的初始化配置文件及其使用方法,包括如何通过getprop和setprop命令获取和设置系统属性,以及watchprops命令监听系统属性变化。
在android系统中,有一些初始化的配置文件,例如:

/init.rc

/default.prop

/system/build.prop

文件里面里面配置了开机设置的系统属性值,

这些属性值,可以通过getprop获取,setprop设置,

它的格式如下:

getprop [key]

获取指定key的配置值,如果不带参数,只是getprop则是显示系统所有的配置值。

[dalvik.vm.heapsize]: [24m]

[curlockscreen]: [1]

[ro.sf.hwrotation]: [0]

[ro.config.notification_sound]: [OnTheHunt.ogg]

[ro.config.alarm_alert]: [Alarm_Classic.ogg]

setprop [key] [value]
设置指定key的属性值,
watchprops
监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来
/system # watchprops 
1307501833 sys.settings_system_version = '37'
1307501836 sys.settings_system_version = '38'
1307501862 persist.sys.timezone = 'Asia/Hong_Kong'
其实这三个命令都是toolbox的子命令,如果有兴趣的可以看在android源码中看到其对应的源码:
system/core/toolbox/
try {
Runtime rnTm=Runtime.getRuntime();
Process execLang = rnTm.exec(new String[]{"getprop", "persist.sys.language"});
mCurrLocale = new BufferedReader(new InputStreamReader (execLang.getInputStream())).readLine();
execLang.destroy();
Process execCountry = rnTm.exec(new String[]{"getprop", "persist.sys.country"});
mCurrCountry = new BufferedReader(new InputStreamReader    (execCountry.getInputStream())).readLine();
execLang.destroy();
Log.e("", "Device locale: "+mCurrLocale+" Co:"+mCurrCountry);
} catch (IOException e) {
 e.printStackTrace();
 return;
 }
catch (SecurityException se) {
    se.printStackTrace();
return;




                
Android 系统中,`setprop` 命令用于动态设置系统属性。这些系统属性通常以键值对的形式存在,用于控制设备的底层行为、调试选项、日志级别等。`setprop` 命令通常通过 `adb shell` 执行,适用于开发和调试阶段。 ### 基本用法 ```bash adb shell setprop <key> <value> ``` - `<key>`:系统属性的名称。 - `<value>`:要设置的值。 ### 示例 #### 1. 设置日志级别 ```bash adb shell setprop log.tag.OMX VERBOSE ``` 该命令将 OMX 模块的日志输出级别设置为 `VERBOSE`,用于调试媒体相关的问题 [^2]。 #### 2. 修改设备型号信息 ```bash adb shell setprop ro.product.model MyCustomDevice ``` 该命令修改设备型号为 `MyCustomDevice`,某些定制 ROM 或调试场景中会使用此类设置 [^1]。 #### 3. 控制调试行为 ```bash adb shell setprop debug.sf.showupdates 1 ``` 此命令启用 SurfaceFlinger 的更新显示调试功能,用于 UI 渲染调试 [^3]。 ### 注意事项 - **权限要求**:使用 `setprop` 需要具有相应的系统权限。通常只有 root 用户或具有调试权限的开发者可以修改某些关键系统属性。 - **临时性**:通过 `setprop` 设置的属性通常是临时的,设备重启后会恢复默认值。 - **持久化设置**:如果需要持久化设置系统属性,可以通过修改系统配置文件(如 `/default.prop` 或 `/system/build.prop`)来实现。 ### 与 `settings put` 的区别 虽然 `adb shell settings put` 也用于设置属性,但它主要用于设置应用层的设置项(如屏幕亮度、飞行模式状态等),而 `setprop` 更偏向底层系统配置 [^3]。 --- ```bash # 示例:查看所有系统属性 adb shell getprop # 示例:查看特定属性值 adb shell getprop ro.product.model ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值