属性是由init进程读取到内存中,然后通过mmap只读方式共享到其他进程中。读的时候每个进程都可以直接读取,而修改或者添加只能由init进程来进行,这样方便selinux权限管理。
有root权限后,我们可以将属性内存通过mmap读写的方式共享到我们的内存中,这样可以任意修改,绕过init的限制。
上图其实很形象,是字典树和二叉树的混合。结点信息数据结构如下:
思路:
附上源码:https://github.com/W-WTerDan/android_properties
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!