系统添加自定义路径属性到系统属性中

30 篇文章 0 订阅
3 篇文章 1 订阅

 

系统开机会加载build.prop 属性到系统中,这样方便系统使用 getprop 获取系统属性的值 ,

正常情况下在源码中按照如下方式添加

device/qcom/msmxxx/system.prop
 
添加
my.adb.myroot=0

但是我们为了保险起见,比如说机器的唯一标识,如果system.prop下面有可能会随着版本升级被修改,这样会带来一系列的问题,最好的方式就是放在/cache/文件加下,这样系统重启或者系统从重置都不会收到影响,那么我们如何将我们放到/cache的文件属性读取到系统中,可以通过getprop 的命令进行获取那?

查看7.1的源码发现系统属性的起始位置是 init.c文件main函数中调用start_property_service()

之后调用到property_service.cpp 中 load_system_props ,在 load_system_props 方法中可以看到  load_properties_from_file读取各种属性 

PROP_PATH_SYSTEM_BUILD  是 /system/build.prop

PROP_PATH_VENDOR_BUILD 是/system/default.prop

PROP_PATH_FACTORY 是 /data/local.prop 

void load_system_props() {
    load_properties_from_file(PROP_PATH_SYSTEM_BUILD, NULL);
    load_properties_from_file(PROP_PATH_VENDOR_BUILD, NULL);
    load_properties_from_file(PROP_PATH_FACTORY, "ro.*");
    load_recovery_id_prop();
}

因此我们在/cache/文件夹创建 /cache/test.bo 即可

diff --git a/core/init/property_service.cpp b/core/init/property_service.cpp
--- a/core/init/property_service.cpp
+++ b/core/init/property_service.cpp
@@ -58,6 +58,7 @@
 #define PERSISTENT_PROPERTY_DIR  "/data/property"
 #define FSTAB_PREFIX "/fstab."
 #define RECOVERY_MOUNT_POINT "/recovery"
+#define PROP_PATH_MYTEST_BO  "/cache/test.bo"
 
 static int persistent_properties_loaded = 0;
 
@@ -520,6 +521,7 @@
 void load_system_props() {
     load_properties_from_file(PROP_PATH_SYSTEM_BUILD, NULL);
     load_properties_from_file(PROP_PATH_VENDOR_BUILD, NULL);
+    load_properties_from_file(PROP_PATH_MYTEST_BO, NULL);
     load_properties_from_file(PROP_PATH_FACTORY, "ro.*");
     load_recovery_id_prop();
 }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值