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更改,查看,监听系统属性的更多相关文章

  1. Android getprop setprop watchprops用法

    转载请注明出处:https://www.cnblogs.com/lialong1st/p/10172973.html 在安卓系统中,当你写了一个脚本,已经添加到开机启动 init.rc 中,即使脚本中 ...

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

    在Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取 ...

  3. adb shell get/setprop, setenforce...

    adb shell getprop <key> 获取设备参数信息adb shell setprop <key> <value> 设置设备参数信息 例子1:>C ...

  4. go 监听系统信号

    linux 信号查看 kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFP ...

  5. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  6. 广播小案例-监听系统网络状态 --Android开发

    本例通过广播实现简单的监听系统网络状态改变的小案例. 1.案例效果演示 当手机连网后,系统提示“已连接网络”, 当手机断网后,系统提示“当前网络不可用”. 2.案例实现 在主活动中动态注册广播,然后写 ...

  7. Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

    本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...

  8. Object.defineProperty 监听对象属性变化

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. 侦听器watch 监听单个属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. SequenceFileInputFormat区别TextInputFormat

    通过InputFormat,Hadoop可以: l           检查MapReduce输入数据的正确性: l           将输入数据切分为逻辑块InputSplit,这些块会分配给Ma ...

  2. java上下文Context类

    Context在Java中的出现是如此频繁,但其中文翻译"上下文"又是如此诡异拗口,因此导致很多人不是很了解Context的具体含义是指什么,所以很有必要来深究一下这词的含义. 先 ...

  3. spring MVC (学习笔记)

    web.xml 相关配置 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns=" ...

  4. 时光轴一之listView实现时光轴效果

    尼玛.非要搞什么时光轴,一想简单的不就是个listView吗,然后一步一步来就好了,哈哈别看那么好看事实上不要想多了. 时光轴timeline最大的作用就是把过去的事物系统化.完整化.精确化.时间轴可 ...

  5. 【POJ3740】Easy Finding DLX(Dancing Links)精确覆盖问题

    题意:多组数据,每组数据给你几行数,要求选出当中几行.使得每一列都有且仅有一个1.询问是可不可行,或者说能不能找出来. 题解:1.暴搜.2.DLX(Dancing links). 本文写的是DLX. ...

  6. 您可能试图从server上的安全浏览器訪问此站点。请启用脚本然后又一次载入此页。

    您可能试图从server上的安全浏览器訪问此站点.请启用脚本然后又一次载入此页.         我使用域Admin组的账户登入SharePoint2010的server,打开SharePoint首页 ...

  7. hihocoder 1082 然而沼跃鱼早就看穿了一切 (替换指定的串 )

    #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句 ...

  8. 织梦dedecms如何显示所有文章列表

    本文介绍了dedecms中显示所有文章列表的实现方法,dedecms如何显示所有文章列表,有需要的朋友参考下. 例子,dedecms中显示所有文章列表.   代码示例:{dede:channelart ...

  9. 【Java】DateUtil(2)

    import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; impor ...

  10. hadoop部署之防火墙

    在部署hadoop时,好多资料上都写了要关闭防火墙,如果不关闭可能出现节点间无法通信的情况,于是大家也都这样做了,因此集群通信正常.当然集群一般是处于局域网中的,因此关闭防火墙一般也不会存在安全隐患, ...