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 ...
随机推荐
- MySQL(6)--复制,docker容器中
MySQL5.7.11实现replication 启动两个安装好mysql的空的docker image ----------------- shell1 master $docker run -i ...
- yum lock
状态 :睡眠中,进程ID:18439Another app is currently holding the yum lock; waiting for it to exit... 另一个应用程序是: ...
- C++,Base64编解码字符串或文件
参考链接:在C语言中使用libb64进行Base64编解码 GitHub地址:https://github.com/BuYishi/cpp_base64_demo base64_demo.cpp #i ...
- ElasticSearch远程随意代码运行漏洞(CVE-2014-3120)分析
原理 这个漏洞实际上非常easy,ElasticSearch有脚本运行(scripting)的功能,能够非常方便地对查询出来的数据再加工处理. ElasticSearch用的脚本引擎是MVEL,这个引 ...
- codeforces 450C. Jzzhu and Chocolate 解题报告(449A)
题目链接:http://codeforces.com/contest/450/problem/C 题目意思:给出一个 n * m 大小的chocolate bar,你需要在这个bar上切 k 刀,使得 ...
- BZOJ1040:骑士(基环树DP)
Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...
- java8的常用的新特征
一.Java 8 对接口做了进一步的增强.(默认方法和静态方法) a. 在接口中可以添加使用 default 关键字修饰的非抽象方法.即:默认方法(或扩展方法不用被实现)如:comparator接口. ...
- servlet中的servletURL,servletURI和servletPath
String servletURL=request.getservletURL(); url:站点名+当前web应用名+(目录名)+页面名 String servletURI=reques ...
- 出现"Unable to instantiate Action,xxxxx, defined for 'login' in namespace '/' xxxxx 解决办法
转自:https://blog.csdn.net/heroful/article/details/17261169 问题原因: 在MyEclipse 利用SSH框架写程序,运行时出现 " U ...
- GetSafeHwnd()
CreateCompatibleBitmap The CreateCompatibleBitmap function creates a bitmap compatible with the devi ...