天天看點

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