静心者老郑 發表於 2022-11-21 21:14:00

Android系统开发 SystemProperties的详解

<h1><span style="color: rgba(0, 128, 128, 1)">前言</span></h1>
<p>  &nbsp;SystemProperties是Android的系统属性,了解它对掌控设备开发意义很大。此博客刚开坑,后续会陆续更新</p>
<h1><span style="color: rgba(0, 128, 128, 1)">要求</span></h1>
<p><span style="color: rgba(0, 0, 0, 1)">1.应用是系统级权限</span></p>
<p><span style="color: rgba(0, 0, 0, 1)">2.需要架framerwork包</span></p>
<h1><span style="color: rgba(0, 128, 128, 1)">属性头介绍</span></h1>
<ul>
<li>gsm开头的是移动电话的一些版本信息(软硬件,基带版本等信息)、所在国家、漫游状态、序列号等信息等一系列与sim相关的信息</li>
<li>ro开头的是只读属性,一旦赋值不能修改</li>
<li>sys开头的是系统信息</li>
<li>persist&nbsp;修改属性后,重启依然有效。数据会保存到 /data/property 目录。其他前缀的属性被设置后,只是保存在内存中而已,并没有保存到磁盘,所有重启后就恢复默认值了。</li>
<li>init.svc手机当前进程的状态(启动的显示running未启动的显示stopped)。进程是否启动是有init.rc文件中定义的</li>
<li>net开头的是与网络相关的信息,比如dns、主机名、为各功能预留的缓冲区大小</li>
<li>dhcp.wlan 是网关、IP地址等无线网络相关信息;</li>
<li>external_sd_path 是外部存储SD卡的路径</li>
<li>fmradio.driver 是FMradio相关属性</li>
</ul>
<h1><span style="color: rgba(0, 128, 128, 1)">获得与设置</span></h1>
<p><span style="color: rgba(0, 0, 0, 1)">下面举例了开启网络adb功能。 注意ro开头的属性,只能读不能写</span></p>
<div class="cnblogs_code">
<pre>android.os.SystemProperties.set("persist.internet.adb.enable", "1"<span style="color: rgba(0, 0, 0, 1)">)
val enable </span>= android.os.SystemProperties.get("persist.internet.adb.enable")</pre>
</div>
<h1><span style="color: rgba(0, 128, 128, 1)">用Adb命令查看属性列表</span></h1>
<div class="cnblogs_code">
<pre>adb shell getprop</pre>
</div>
<p>以Android 10为例的属性如下:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">:
:
: [</span>8000<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
: [<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">]
:
: [</span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">]
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>192.168.1.1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>60<span style="color: rgba(0, 0, 0, 1)">]
: []
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: []
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
: []
: []
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>0]                        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">版本类型0=user模式 1=eng模式</span>
<span style="color: rgba(0, 0, 0, 1)">: []
: [reboot,</span>1668995058<span style="color: rgba(0, 0, 0, 1)">
cold,</span>1668860636<span style="color: rgba(0, 0, 0, 1)">
reboot,adb,</span>1668853934<span style="color: rgba(0, 0, 0, 1)">
reboot,userrequested,</span>1668838713<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
:                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">时区</span>
:                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">usb模式</span>
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>5<span style="color: rgba(0, 0, 0, 1)">]
: [</span>5<span style="color: rgba(0, 0, 0, 1)">]
: [</span>5<span style="color: rgba(0, 0, 0, 1)">]
: [</span>5<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0x6771<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>16000<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
:
: [</span>1.1<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>1.1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>10176<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
: [</span>1667289938<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>8601550307<span style="color: rgba(0, 0, 0, 1)">]
: [</span>7727144076<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>8118895615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8121412768<span style="color: rgba(0, 0, 0, 1)">]
: [</span>18081961231<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>10116260076<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8123538615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8619640307<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8663164845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8623085769<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8151599845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8149482615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8598878769<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8604047538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8625236692<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8606309230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8134779461<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8665709845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8704175922<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8088215461<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8125680384<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>21680656769<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>8071023615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6432140384<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8627953769<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8630359384<span style="color: rgba(0, 0, 0, 1)">]
: [</span>5320<span style="color: rgba(0, 0, 0, 1)">]
: [</span>151<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>212<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8634586769<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8637620538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8612259076<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8110575999<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>8127966230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6427431230<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>8765852769<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8648191538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8700832845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8657835615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8639815230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8641651845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8643504999<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8610195538<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>8048958230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8718804153<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8101294153<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>8159316999<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>6429916538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8650274461<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8652986845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8130699999<span style="color: rgba(0, 0, 0, 1)">]
: [</span>7606202153<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8132813922<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8668287538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8671753307<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8632581153<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8674303922<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8706432153<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6109817615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8716544384<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>8142966615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8136970845<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8153930692<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
:
:
:
:
:
:
: [</span>14184540615<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6435290230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>6467617461<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8655290922<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8679326692<span style="color: rgba(0, 0, 0, 1)">]
: [</span>7613349230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>7611002230<span style="color: rgba(0, 0, 0, 1)">]
: [</span>15099584384<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8050662538<span style="color: rgba(0, 0, 0, 1)">]
: [</span>8052289307<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>1667289938<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
: []
:
:
: [</span>23<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>10<span style="color: rgba(0, 0, 0, 1)">]
: [</span>29<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2021-08-05<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
: [</span>/dev/block/platform/bootdevice/by-name/<span style="color: rgba(0, 0, 0, 1)">frp]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
: []
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>38,108,105,16<span style="color: rgba(0, 0, 0, 1)">]
: [</span>60<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>100<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1667270043<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
: [</span>10<span style="color: rgba(0, 0, 0, 1)">]
: [</span>29<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>196610<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>/<span style="color: rgba(0, 0, 0, 1)">system]
:
:
:
: [</span>1667270043<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
: [</span>10]                  <span style="color: rgba(0, 128, 0, 1)">//
</span>:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认Android SDK版本</span>
:
:
:                 <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认32架构</span>
:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认64架构</span>
:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认设备</span>
:
:                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认语言</span>
<span style="color: rgba(0, 0, 0, 1)">:
:                   </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认型号</span>
:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认设备名称</span>
:                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认制造商品牌</span>
:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认制造商设备</span>
<span style="color: rgba(0, 0, 0, 1)">:
:                   </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认制造商型号</span>
:                   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认制造商名称                  </span>
<span style="color: rgba(0, 0, 0, 1)">:    
:
:
:
:
:
:                   </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认系统</span>
<span style="color: rgba(0, 0, 0, 1)">:
:
:
:
:
:
:
:
:
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1668995071381<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>160]                                    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">屏幕密度</span>
:
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>1667289938<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:                                     </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">系统编译类型 user是正式版本</span>
<span style="color: rgba(0, 0, 0, 1)">:
: [</span>10<span style="color: rgba(0, 0, 0, 1)">]
: [</span>29<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0,0,0,0<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span>]                                    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">是否启用高音?</span>
:
:
: [</span>1667289938<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>2021-08-05<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>10<span style="color: rgba(0, 0, 0, 1)">]
: [</span>29<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>3<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0x800000000<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
:
: [</span>/vendor/etc/init/hw/<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>29<span style="color: rgba(0, 0, 0, 1)">]
: []
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>/data/misc_ce/0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1]                              <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">是否adb root1=获得root权限</span>
:                             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认网络adb端口</span>
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>18432:0,23040:100,27648:200,32256:250,55296:900,80640:950<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>10800<span style="color: rgba(0, 0, 0, 1)">]
: [</span>60<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>11781<span style="color: rgba(0, 0, 0, 1)">]
: [</span>11781<span style="color: rgba(0, 0, 0, 1)">]
:                             </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">USB配置</span>
:
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:                               </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">USB状态</span>
: [<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">]
: [<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>536805376<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>431<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>9<span style="color: rgba(0, 0, 0, 1)">]
: [</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>-d /dev/<span style="color: rgba(0, 0, 0, 1)">ttyC0]
:
:
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0<span style="color: rgba(0, 0, 0, 1)">]
: []
: []
:
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0x201C<span style="color: rgba(0, 0, 0, 1)">]
: [</span>0x0E8D<span style="color: rgba(0, 0, 0, 1)">]
: [</span>2.0.1.1-20221101104735<span style="color: rgba(0, 0, 0, 1)">]
: [</span>4.4.103<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
: [</span>1<span style="color: rgba(0, 0, 0, 1)">]
:
:
:
:
: </span></pre>
</div>
<p>&nbsp;</p>
<h1><span style="color: rgba(0, 128, 128, 1)">拷贝一些别人未验证的博客内容,谨慎参考,后续我会验证</span></h1>
<h1>系统属性默认值配置文件</h1>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统启动的时候会从几个配置文件中加载属性的默认值,大概有以下几个文件,在不同 Android 版本系统上可能不一样:</p>
<ul>
<li>/default.prop 或者是 /prop.default</li>
<li>/vendor/default.prop</li>
<li>/system/build.prop</li>
<li>/vendor/build.prop</li>
<li>/data/local.prop</li>
<li>/data/property/*</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统会按先后顺序依次加载以上文件,后加载的属性将覆盖原先的值。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default.prop 的值是通过 build/tools 目录下的 buildinfo.sh 和 vendor_buildinfo.sh 生成的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要修改的话,就要修改编译系统了,这种方法不好维护,不推荐。一般来说我们可以把属性加到 /system/build.prop 或者 /vendor/build.prop。</p>
<h1>添加系统属性到 /system/build.prop</h1>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只要在 $(TARGET_DEVICE_DIR) 目录创建一个 system.prop 文件,在里面添加属性即可。编译系统会把 $(TARGET_DEVICE_DIR)/system.prop 添加到 /system/build.prop 文件中去。在 device/pure 目录下添加文件 system.prop:</p>
<pre data-index="0"><code class="hljs language-undefined">ro.pure.version=1.0</code></pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后冲洗编译系统,编译完之后查看 out/target/product/pure/system/build.prop 文件,发现并没有我们添加的属性。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原来在 Android 9.0 之后,google 不推荐把厂家定制的 property 加到 /system 分区了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只是在 device/pure 目录下添加 system.prop 文件时没有作用的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 具体原因见 build/make/core/Makefile 391 行左右代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">ifdef TARGET_SYSTEM_PROP

system_prop_file :</span>=<span style="color: rgba(0, 0, 0, 1)"> $(TARGET_SYSTEM_PROP)

$(info TARGET_SYSTEM_PROP </span>=<span style="color: rgba(0, 0, 0, 1)"> $(TARGET_SYSTEM_PROP))

</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">

system_prop_file :</span>= $(wildcard $(TARGET_DEVCIE_DIR)/<span style="color: rgba(0, 0, 0, 1)">system.prop)

endif</span></pre>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们在这里加了个 log,然后编译系统,发现 TARGET_SYSTEM_PROP 已经定义过了:</p>
<p><img src="https://img-blog.csdnimg.cn/2021100915380394.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="739" height="167"></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因此,如果我们一定要把属性加到 /system/build.prop 的话,还需要在 device/qiushao/pure/BoardConfig.mk 添加以下配置才可以:</p>
<pre data-index="2"><code class="hljs language-bash">TARGET_SYSTEM_PROP += device/qiushao/pure/system.prop</code></pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加之后,重新编译,再查看 out/target/product/pure/system/build.prop 文件,发现我们添加的属性已经在里面了:</p>
<p><img src="https://img-blog.csdnimg.cn/20211009163641981.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="738" height="185"></p>
<h1>添加系统属性到 /vendor/build.prop</h1>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然通过上面的方法可以将属性添加到 /system/build.prop,但在 Android9.0 之后,更推荐把厂家私有属性添加到 /vendor/build.prop 中。</p>
<blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过 PRODUCT_PROPERTY_OVERRIDES 变量添加即可。编译系统会把 PRODUCT_PROPERTY_OVERRIDES 变量的值添加到 /vendor/build.prop 文件中去。</p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 具体代码位置在 编译系统的 build/make/Makefile 文件 476 行左右:</p>
<p><img src="https://img-blog.csdnimg.cn/20211009163953591.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="738" height="371"></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 device/qiushao/pure/pure.mk 中添加以下配置:</p>
<p><img src="https://img-blog.csdnimg.cn/20211009164117294.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="734" height="167"></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后重新编译系统,查看 out/target/pruduct/pure/vendor/build.prop 发现属性已经添加进去了。</p>
<p><img src="https://img-blog.csdnimg.cn/2021100916481879.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="732" height="213"></p>
<h1>虚拟机验证</h1>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动虚拟机后,再另外启动一个终端使用&nbsp;adb&nbsp;shell:</p>
<p><img src="https://img-blog.csdnimg.cn/20211009164942301.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="736" height="448"></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们先用 getprop 命令读取了我们添加的属性,都可以正常读取。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后我们尝试用 setprop 命令改写属性的值,发现 ro 前缀的属性改写失败了,其他属性可以改写成功。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后我们重启系统再重新读取:</p>
<p><img src="https://img-blog.csdnimg.cn/20211009165141399.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmVzdFcyWQ==,size_20,color_FFFFFF,t_70,g_se,x_16" alt="" width="725" height="191"></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div style="text-align: center">
    <p style="color:orange;font-size:16px;" >本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/16913276.html </p>
    <div style="color:orange;font-size:16px;">本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。 </div>
</div><br><br>
来源:https://www.cnblogs.com/guanxinjing/p/16913276.html
頁: [1]
查看完整版本: Android系统开发 SystemProperties的详解