Android 深入系统完全讲解(17)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

这个就是我们在初始化的时候给对应的属性设置上下文。chcon 这个可以修改上下文。
我们在遇见类似的属性读取不到的时候一般操作是:
getprop -z 看下属性的上下文然后 ps -z 看下进程的上下文然后判断出来是否有对应的
权限这里就是 te 文件的配置方式。
plat_service_contexts 是个服务的权限这里我们可以看一列 android.os.UpdateEngineService

u:object_r:update_engine_service:s0
plat_file_contexts 这个是文件的上下文配置。
3 APP 签名权限
我们现在来看 plat_seapp_contexts 这个是指示上层的进程的上下文的对应关系。在这里插入图片描述
这个是非常重要的对上层 APP 配置的上下文。代码位置在这里。在这里插入图片描述
应 用 创 建 之 后 ForkAndSpecializeCommon 在 这 里 实 现 的 时 候 调 用 rc =
selinux_android_setcontext(uid, is_system_server, se_info_c_str, se_name_c_str);设置 selinux 上
下文。在这里插入图片描述
我们这个上下文在上层 APP 中就是使用签名进行区分的。做个总结:
上层使用配置对应的 AndroidManifest.xml 然后获取对应的 gid通过签名获取对应的 uid
两个配合在 te 文件中添加对驱动节点的访问权限。
2 与 Linux 的区别
Linux 的 SElinux 主要对的是文件和进程而 Android 里面多了属性和 APP因为 APP 分系统media 等等于是 Android 在 Linux 的基础上添加了一些方法来完成 SElinux 的机制。
我这里想说的一点是 SELinux 的加入主要是解决我们之前只用用户组这个分类太过简略
导致很多手机 Root 权限被获取后手机整个都处在被访问的情况于是补充进来 SELinux
来限定更细致的权限设定。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: android

“Android 深入系统完全讲解(17)” 的相关文章