adb shell getprop,setprop,watchprops更改,查看,监听系统属性
1.简介
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。
在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发送信息。属性服务将会在共享内存区中修改和创建属性。任何客户端想获得属性信息,可以从共享内存直接读取。
2.系统属性文件
属性服务调用libc中的__system_property_init函数来初始化属性系统的共享内存。当启动属性服务时,将从以下文件中加载默认属性:
- /default.prop
- /system/build.prop
- /system/default.prop
- /data/local.prop
属性将会以上述顺序加载。后加载的属性将覆盖原先的值。这些属性加载之后,最后加载的属性会被保持在/data/property/中。
用cat命令可以查看其中内容。如;
ro.config.ringtone=Bass_and_light_percussion.mp3
ro.config.ringtone_2=Bass_and_light_percussion.mp3
ro.config.notification_sound=Chimes_chord.mp3
ro.config.alarm_alert=Dawn.mp3
persist.sys.timezone=Asia/Shanghai
dalvik.vm.heapgrowthlimit=128m
dalvik.vm.heapminfree=4m
dalvik.vm.heapstartsize=16m
keyguard.no_require_sim=true
ro.com.android.dataroaming=true
ro.com.android.dateformat=MM-dd-yyyy
ro.carrier=unknown
ro.vendor.extension_library=libqti-perfd-client.so
persist.radio.apm_sim_not_pwdn=1
persist.radio.sib16_support=1
persist.radio.custom_ecc=1
ro.frp.pst=/dev/block/bootdevice/by-name/config
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapmaxfree=8m
persist.dbg.volte_avail_ovr=1
persist.env.data_roaming=false
persist.radio.vrte_logic=1
persist.radio.domain.ps=1
persist.radio.VT_ENABLE=1
persist.radio.VT_HYBRID_ENABLE=1
ro.telephony.default_cdma_sub=0
persist.sys.cdma.disable=false
persist.bmct.enabled=1
persist.sys.boot_music_ctrl=0
persist.sys.cdma_disable_iccid=false
persist.sys.dclick.camera=false
persist.sys.doubletp.click=0
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.arm64.features=div,needfix_835769
dalvik.vm.isa.arm.features=div
ro.kernel.android.checkjni=1
dalvik.vm.image-dex2oat-filter=verify-none
dalvik.vm.dex2oat-filter=interpret-only
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.location
ro.gps.agps_provider=1
ro.pip.gated=0
persist.radio.calls.on.ims=1
persist.radio.jbims=1
persist.radio.csvt.enabled=false
persist.radio.rat_on=combine
persist.radio.mt_sms_ack=20 import /system/vendor/default.prop import /system/vendor/vendor.prop import /system/vendor/power.prop
3.命名规则
- 以“ro.”开头,只读属性。一旦设置,属性值不能改变。
- 以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。(这是很巧妙的。 netresolve模块的使用这个属性来追踪在net.*属性上的任何变化。)
- 属性“ ctrl.start ”和“ ctrl.stop ”是用来启动和停止服务。每一项服务必须在/init.rc中定义.系统启动时,与init守护进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。客户端应用程序可以轮询那个属性值,以确定结果。
- 以“persist.”开头,当设置这个属性时,其值也将写入/data/property。可查看其下面已经写入的属性:
4d66gf@H3H287:~$ adb shell ls -l /data/property/
-rw------- root root 1 1970-01-01 11:11 persist.camera.isp.dump
-rw------- root root 3 1970-01-01 09:45 persist.camera.thermal.mode
-rw------- root root 1 1970-01-01 10:04 persist.radio.adb_log_on
-rw------- root root 5 1970-01-01 10:04 persist.radio.eons.enabled
-rw------- root root 6 1970-01-01 10:04 persist.radio.iccid_0
-rw------- root root 6 1970-01-01 10:04 persist.radio.iccid_1
-rw------- root root 1 1970-01-01 10:04 persist.radio.msim.stackid_0
-rw------- root root 1 1970-01-01 10:04 persist.radio.msim.stackid_1
-rw------- root root 1 1970-01-01 10:04 persist.radio.ril_payload_on
-rw------- root root 1 1970-01-01 10:04 persist.radio.sglte_target
-rw------- root root 1 1970-01-01 10:04 persist.radio.stack_id_0
-rw------- root root 1 1970-01-01 10:04 persist.radio.stack_id_1
-rw------- root root 0 1970-01-01 08:06 persist.service.adb.enable
-rw------- root root 1 1970-01-01 08:03 persist.service.adb.root
-rw------- root root 17 1970-01-01 08:06 persist.service.bdroid.bdaddr
-rw------- root root 1 1970-01-01 11:29 persist.sys.boot_music_ctrl
-rw------- root root 9 1970-01-01 10:05 persist.sys.dalvik.vm.lib.2
-rw------- root root 1 1970-01-01 08:03 persist.sys.dpmd.tcm
-rw------- root root 5 1970-01-01 08:07 persist.sys.media.use-awesome
-rw------- root root 1 1970-01-01 10:07 persist.sys.profiler_ms
-rw------- root root 5 1970-01-01 08:06 persist.sys.sw.firstLaunch
-rw------- root root 29 1970-01-01 08:03 persist.sys.usb.config
-rw------- root root 4 1970-01-01 08:03 persist.sys.usb.config.extra
4.监听命令
$adb shell watchprops persist.sys.boot_music_ctrl
5.更改命令
$adb shell setprop persist.sys.boot_music_ctrl 3
6.查看命令
$adb shell getprop persist.sys.boot_music_ctrl
adb shell getprop,setprop,watchprops更改,查看,监听系统属性的更多相关文章
- Android getprop setprop watchprops用法
转载请注明出处:https://www.cnblogs.com/lialong1st/p/10172973.html 在安卓系统中,当你写了一个脚本,已经添加到开机启动 init.rc 中,即使脚本中 ...
- adb获取Android系统属性(adb shell getprop ***)数据来源
在Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取 ...
- adb shell get/setprop, setenforce...
adb shell getprop <key> 获取设备参数信息adb shell setprop <key> <value> 设置设备参数信息 例子1:>C ...
- go 监听系统信号
linux 信号查看 kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFP ...
- Android监听系统短信数据库变化-提取短信内容
由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...
- 广播小案例-监听系统网络状态 --Android开发
本例通过广播实现简单的监听系统网络状态改变的小案例. 1.案例效果演示 当手机连网后,系统提示“已连接网络”, 当手机断网后,系统提示“当前网络不可用”. 2.案例实现 在主活动中动态注册广播,然后写 ...
- Android 监听 Android中监听系统网络连接打开或者关闭的实现代码
本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...
- Object.defineProperty 监听对象属性变化
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 侦听器watch 监听单个属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Python 005- 使用Pyecharts来绘制各种各样的图形
本文转载自:https://blog.csdn.net/qq_39143076/article/details/79065448,如有侵权,请联系删除啊 如何做Python 的数据可视化? pyech ...
- Spring源码深度解析——笔记
1.spring容器的基本用法 xml配置 <bean id="myTestBean" class="bean.MyTestBean"/> 调用 B ...
- HDOJ 5045 Contest
状压DP.. . . Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- 用WaveX实现音频文件的录音
原文地址:https://blog.csdn.net/gongluck93/article/details/53096013 1.WaveInOpen waveInOpen MMRESULT wave ...
- hihoCoder 1582 Territorial Dispute 【凸包】(ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
#1582 : Territorial Dispute 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In 2333, the C++ Empire and the Ja ...
- 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)
RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...
- Android ADB实现解析【转】
本文转载自:http://blog.csdn.net/u010223349/article/details/41120255 ADB是Android系统提供的调试工具,整个ADB工具由三部分组成: ...
- linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)
本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...
- luogu 4782【模板】 2-SAT 问题
2-SAT就是给出$m$个限制表示$x==val_x || y==val_y$ 求出满足的解 每个点拆成两个点,如果$x$不满足则$y$一定满足,$y$不满足同理.这样我们连边,然后$tarjan$即 ...
- [Selenium] 使用自定义的FirefoxProfile
FirefoxProfile 用于定制待测试的Firefox 浏览器的特定属性,其中包括所存储的密码.书签.历史信息.Cookies等.某些测试用例需要用到特定的用户信息,因此可通过定制当前Firef ...