android properties分析(3) Bionic code properties设置和获取的接口分析

本文分析了Bionic库中系统属性的设置和获取接口,详细讲解了如何通过`__system_property_init`初始化,`__system_property_get`获取属性,以及`__system_property_set`如何通过socket发送命令到`property_service`来设置属性。核心数据结构包括`prop_area`和`prop_info`,而set操作由于权限限制,不直接通过共享内存完成。
摘要由CSDN通过智能技术生成

Bionic code properties设置和获取的接口:

bionic/libc/include/sys/system_properties.h

bionic/libc/include/sys/_system_properties.h

bionic/libc/bionic/system_properties.c

在C code中,最终调用的是Bionic中System_Properties的实现


//system_properties初始化,与server端通过mmap共享一块只读的内存,从中根据Key得到value

//如果是只读内存,那就只能实现get,不能实现set,因此set有另外一套逻辑。

int __system_properties_init(void) {

//得到环境变量ANDROID_PROPERTY_WORKSPACE

//例如我的板子上的值 ANDROID_PROPERTY_WORKSPACE=8,49152

    env = getenv("ANDROID_PROPERTY_WORKSPACE");
//第一个值为fd

    fd = atoi(env);
    env = strchr(env, ',');   
//第二个值为size

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值