怎么在Android系统中增加系统属性?

本文介绍了如何在Android系统中添加和使用全局系统属性,包括在/build/core/version_defaults.mk中增加字段,修改build/tools/buildinfo.sh和build/core/Makefile,以及系统属性在FW层和C层的调用方法。通过adb可以获取和设置系统属性,实现功能的开启和关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        系统属性:就是在整个Android系统中都是可以调用的属性,比如我们某个功能,在fw层和c层都有改动,我们需要用一个变量去控制这个功能是否启用和关闭,这就需要用到全局的系统属性;

        /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变。这个文件是如何生成的呢?

build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件
build/core/Makefile中使用build/tools/buildinfo.sh 脚本生成build.prop文件,所以我们要添加系统属性,主要就是在buildinfo.sh、Makefile和version_defaults.mk中

        记录一下我新增系统属性的流程:

        1、需求:公司领导让我新增一个功能,这个功能在fw层和c层都有改动,然后需要控制这个功能的启动和关闭(每次编译都去删除代码这肯定不太现实),所以需要加一个系统属性,每次编译修改这个系统属性就行

        2、首先我们需要在/build/core/version_defaults.mk中增加字段,

        TARGET_CONFIGURE := false



        然后需要在build/tools/buildinfo.sh中增加

   echo "ro.product.configure=$TARGET_CONFIGURE"

        最后需要在build/core/Makefile中添加

    TARGET_CONFIGURE="$(TARGET_CONFIGURE)"

        最后编译,编译完成后就会在 /out/target/product/<product>/system/build.prop中出现加入的ro.product.configure属性,

        如果需要修改属性的值,只需要更改/build/core/version_defaults.mk即可

        使用:我们定义了系统属性,肯定是需要调用在fw层调用的方法是:

        getString("ro.product.configure")

        在C层调用的方法是:

        property_get("ro.product.configure", value, "") 注:value是接收的字段

       在adb获取系统属性的方法是:

                adb shell getprop   //获取系统全部属性

                adb shell getprop "ro.product.configure" //获取某个属性

                adb shell setprop "ro.product.configure" "12"   //设置某个属性的值  ro开头的为只读属性,不可设置

由于我刚接触系统层源码,可能还处于比较菜的地步,如果有错误的地方,麻烦大佬指点下,感谢感谢........

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值