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

深度解析 Android 系统属性 在 Android 系统中,为统一管理系统的属性,设计了一个统一的属性系统,每个属性都是一个 key-value 对。我们可以通过 shell 命令,Native 函数接口,Java 函数接口的方式来读写这些 key-vaule 对。init 进程在启动会去加载后缀为 .prop 的属性文件, 将属性文件中的属性加载到共享内存中, 这样系统就有了默认的一些属性。Android O 以后,属性的 Selinux 的规则变得复杂起来了,今天我们先看一个简单的例子,做基本的了解。 阅读详情

        系统属性:就是在整个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开头的为只读属性,不可设置

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

        

Android 11 添加系统属性 介绍各个属性文件的生成过程,并介绍如何添加自定义的系统属性 阅读详情

相关推荐

Android 系统增加ro property

那我参考上面方式,直接ro.boot.revision 这个可以吗,发现也不行,vendor 修改selinux 不通过。qssi 修改,直接不生效,莫名其妙。我用上面两种方式方式修改,发现是不生效的,为什么呢,代码里面会把ro.boot.revision赋值给ro.revision.新增自己的参考系统的device/qcom/xxxx/xxxx.mk。device/qcom/xxxx/Boardconfig 中,加一个行。build/tools/buildinfo.sh 里面很多可以参考。

xss534890437的博客 1065

[Android 基础] -- Android 添加系统属性

在 Android 系统中有一个 Property Service 服务,这个服务对外提供了两个接口: SystemProperties.get(String key, String def) 读取系统属性 SystemProperties.set(String key, String val) 设置系统属性 有两个命令行对这两个接口进行了封装,我们可以直接在 adb shell 中输入: getprop key 读取系统属性 setprop key val 设置系统...

u014674293的博客 3093

RK-Android11-系统增加一个属性值

场景的一个属性修改,给出方法,记录下。针对属性值判断,针对应用、系统级别都有参考意义,业务上面会有需求。这里整理出来,方便后续实现其它功能,知识点串联起来如果应用级别的就用 参考资料中的Framework 层Settings.System, Settings.Secure和Settings.Global存储及应用就够了,如果需要通过属性判断,这里也是一个解决方案。

十年饮冰,难凉热血 741

Android 添加自定义系统属性

读写时引入framework.jar 调用其中的SystemProperties.java的 get set方法读写,或使用反射方式调用。系统定义的两种典型的属性分别是ro(用于仅设置一次的属性)或 persist(用于在重新启动过程中保持不变的属性)。Google 会严格审核具有 ro 或 persist 属性的系统属性。

拾荒 1186

Sprd Android 13 增加系统属性判断当前有无 OTG U盘插入,App 读取系统属性

【代码】Sprd Android 13 增加系统属性判断当前有无 OTG U盘插入,App 读取系统属性。

m0_60898338的博客 674

Android 添加系统设置属性的实现及步骤

Android 添加系统设置属性的实现及步骤 Android源码开发中,常常要用到一些全局标志或者说变量,这时候我们可以给android系统添加自己想要的属性。 1. 整个android系统都能访问的属性; 2.该属性值永久保存;  那么我们可以仿照Settings.System.SCRREN_OFF_TIMEOUT这个系统设置的方式来新建一个系统设置值; 操作步骤如下: 1. 设置该值的关键字;  涉及文件:frameworks/base/core/java/android/provider/Settings.java 2. 初始化该属性值;  涉及文件:frameworks

Android13增加系统只读属性

2、打开/build/make/core/sysprop.mk,在gen_from_buildinfo_sh增加FIRMWARE_CUSTOM_VERSION。3、打开/build/core/version_defaults.mk ,在mk文件最后增加。4、如果需要显示,找到一个显示位置,比如“设置”---“关于”---“版本号”,加上一行。增加一个ro.build.firmware.custom.version,只读属性,注意。1、打开/build/tools/buildinfo.sh。

oh_my_god的专栏 674

python数据处理与分析案例,python如何进行数据处理

大家好,本文将围绕基于python的数据处理案例展开说明,python数据处理与分析案例是一个很多人都想弄明白的事情,想搞清楚python如何进行数据处理需要先了解以下几个事情。大家好,小编来为大家解答以下问题,python数据处理案例步骤及其代码,python数据处理与分析教程,今天让我们一起来看看吧!哈喽~今天学习记录的是数据分析实训小案例。就用这个案例来好好巩固一下 python 数据分析三剑客。

a17348的博客 1237

Android P 增加系统属性必读

如何增加属性 Android P 对属性配置有很严格的要求,不建议增加system 分区内的属性,建议增加的属性都在nonsystem分区。 Non-system 分区的限制 Android P 为稳定的exported-platform 属性在non-system 分区的使用定义了4 种类型的白名单: 1. vendor-init-settable · 非system 分区的Property 文件和init rc 文件只能write 这些属性及vendor (或odm) 属性。 2. vendo

android_sniper的专栏 2113

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5265

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 208

Android 系统属性的增加和操作

1、在参与编译生成 .prop文件的系统源码中添加定义 系统属性。 例如,default.prop文件参与编译: /vendor/qcom/proprietary/qrdplus/Extension/config/default.prop --- a/vendor/qcom/proprietary/qrdplus/Extension/config/default.prop +++ b/vendor/qcom/proprietary/qrdplus/Extension/config/default.prop

RedKeyer的博客 1487

四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

移位寄存器有哪些分类呢? 按移位方向分类:①单向移位寄存器(包括左移、右移)②双向移位寄存器 按循环方式分类:①循环移位寄存器②非循环移位寄存器 按部位的不同分类:①逻辑移位寄存器②算术移位寄存器 按输入输出方式分类:①串入串出②串入并出③并入串出④并入并出

Loudrs的博客 1万+

Android rom开发:android9.0增加自定义系统属性注意事项

场景:在vendor/etc/init/hw/init.mt6765.rc中,通过设置自定义系统属性触发执行服务 实测代码: 如果这样写,属性可以设置成功,但是不会触发执行服务 on property:persist.gpio_out_high.enable=1 start gpioOutHigh 改为persist.vendor开头,可以触发执行服务 on property:persist.vendor.gpio_out_high.enable=1 start gpioOutHigh 注意,自定义属性不能

Android 2919

【AI气象6】Skilful nowcasting of extreme precipitation with NowcastNet

极端降水是气象灾害的重要因素,因此迫切需要通过高分辨率、长时间预报和局部细节的精准短期预报来减轻其社会经济影响。当前的方法存在模糊、衰减、强度或位置误差,基于物理的数值方法在捕捉关键的混沌动态(如对流起始)时面临挑战,而数据驱动的学习方法则未能遵循内在的物理法则(如平流守恒)。我们提出了 NowcastNet,这是一种针对极端降水的非线性短期预报模型,将物理演变方案与条件学习方法统一到一个端到端的神经网络框架中,通过优化预测误差进行训练。基于来自美国和中国的雷达观测数据,我们的模型能够生成物理上合理的降水短

weixin_51473374的博客 2322

[LVGL]:MACOS下使用LVGL模拟器

[LVGL]:MACOS下使用LVGL模拟器

LINKKEEE的博客 2456

linux文件增加自定义属性,解析linux或android添加文件系统的属性接口的方法

第一种:1、添加关键头文件:#include #include #include #include #include #include 2、在已经存在驱动文件中搜索"DEVICE_ATTR"关键字,如果存在,直接参考已经存在的方法添加一个即可,如下:unsigned int Gpio134_OtgID = 134; //定义全局变量static unsigned int otgid_status ...

weixin_31188325的博客 349

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 557

[日更-2019.4.14] cm-14.1 Android系统定制(三):Setting相关的默认值、系统属性

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34387284的博客 572

动力学约束下的运动规划算法——状态栅格规划器(State Lattice Planner)

A*、RRT等算法建立的用于路径搜索的图模型是不考虑机器人的动力学约束的,其构建的图模型的两个相邻节点之间的路径可能是不可行的,或者很难被机器人跟踪的,现在我们想要使得图中相邻两个节点间的连接是一种满足动力学约束的可行的连接,那么如何构建一个这样的图呢? 构建这样的图通常有两种方法:第一种是基于控制空间的采样(正向方法)

慕羽★的博客 3104

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

L上自定义一个属性,如何开启这个属性的写的权限

android L(5.0) 以及以后的版本:  Google 删除了permission table, 而是直接通过SELinux 来限制SELinux 的添加与修改. 对于"ro." 开头的系统属性,如果原本已经存在,则无法修改,所谓"read only", 即最多写一次。 对于一个 "xxx.yyy.zzz" 的系统属性("ro.xxx.yyy.zzz" 当作 "xxx.yyy.zzz

yizhesong的专栏 1055

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

cm-14.1 Android系统定制(三):Setting相关的默认值、系统属性

声明 通常情况下,Android系统定制的一个重要环节是对系统性功能的裁剪、增加,最能体现系统功能的就是Setting应用中的设置项,系统功能的多少一般都会体现在Setting中。 另外就是系统的属性 1 Settings应用的默认值     在源码目录~/LineageOS/frameworks/base/packages/SettingsProvider/res/values/defaul...

Android系统工程师--小馬佩德罗 1069

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android属性系统之build.prop的生成

转自:http://blog.youkuaiyun.com/zhandoushi1982/article/details/7378264 简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//system

魔戒 934

修改系统信息,增加壁纸 logo

一般是在/alps/device/和目录下 build/make/target/product/languages_full.mk(语言排序 默认第一个就是默认语言) build/make/tools/buildinfo.sh -echo "ro.build.user=$USER" +echo "ro.build.user=DSIC" echo "ro.build.host=`hostname...

zzlzeuszl的博客 513

android:sharedUserId="android.uid.system"属性

外部开发的app需要增加android:sharedUserId="android.uid.system"属性,同时签上系统签名放在priv-app下,就可以写这个数据库字段了。这样就可以操作系统api 用mm编译应该也可以 ...

kaf_ka的博客 1119
上一篇: Android设备在PC端上通过adb push/pull时需要验证的方案解决(push/pull之前需要先通过某些方式验证,之后才能push/pull)
江雪丶
博客等级 码龄9年 7粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值