天天看点

Android 系统属性定制

需求:客户想要这个只读的系统属性可直接被应用修改

          ro.product.model

方案1:使用root权限,修改system/build.prop文件

Android 系统属性定制

应用通过调用shell脚本执行su指令

SystemProperties.set("ctl.start", "db_chmod");

#!/system/bin/sh
su
chmod 666  system/build.prop
           

那么系统如何找到db_chmod.sh文件呢?

init.rc中声明db_chmod服务

service db_chmod /vendor/bin/db_chmod.sh
        disabled
        oneshot
        seclabel u:r:shell:s0
           

这样就可以很方便的代码中启动或者停止这个service:

评估:可行,但是开放root权限存在安全隐患

方案2:系统属性存在如下这些文件中

bionic/libc/include/sys/_system_properties.h

#define PROP_PATH_RAMDISK_DEFAULT  "/default.prop"

#define PROP_PATH_SYSTEM_BUILD     "/system/build.prop"

#define PROP_PATH_SYSTEM_DEFAULT   "/system/default.prop"

#define PROP_PATH_LOCAL_OV