Android 5.0升级后,SELinux模式已经升级为Enforcing, 而且是everything Enforcing, 不像Android 4.4时只是几个主要process为Enforcing,其他还是permissive.
直接举例: 比如要生成一个10MB大小的EXT4 格式helloworld.img 对里面的内容打上u:object_r:hello_world_t:s0的 label 首先在out 目录下创建helloworld 文件夹 make_ext4fs -l 10485760 -S out/root/file_contexts -a helloworld out/helloworld.img out/helloworld
参数-S 用来指定file_contexts文件路径,它会指定打什么标签,重要 -a 参数用来指定文件系统在android里的挂载点,可以使用默认的owner group等,在android_filesystem_config.h里指定 此路径会在-S指定的file_contexts里用到,所以-a 必须是helloworld
file_contexts:
/helloworld(/.*)? u:object_r:hello_world_t:s0
接下来自然要加label 许可。 首先弄清楚访问/helloworld的app是何种app, 比如system app, 那么要在system_app.te 来增加对应的许可。 当然前提是已经增加hello_world_t 的定义。