当前位置: 首页 > article >正文

2023-12-01 AndroidR 系统在root目录下新建文件夹和创建链接,编译的时候需要修改sepolicy权限

一、想在android 系统的根目录下新建一个tmp 文件夹,建立一个链接usr链接到data目录。

二、在system/core/rootdir/Android.mk里面的LOCAL_POST_INSTALL_CMD 增加

dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk tmp
ln -sf /data $(TARGET_ROOT_OUT)/usr; \

三、编译的时候会遇到set_selinux_xattr: No such file or directory searching for label "/usr"问题,需要修改selinux的权限问题。在最下面的修改内容里面有。

四、最后实现的效果图。

五、修改的内容

diff --git a/system/core/rootdir/Android.mk b/system/core/rootdir/Android.mk
old mode 100644
new mode 100755
index a9d0ed08a9..36214f2e53
--- a/system/core/rootdir/Android.mk
+++ b/system/core/rootdir/Android.mk
@@ -77,12 +77,13 @@ endif
 #
 # create some directories (some are mount points) and symlinks
 LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_ROOT_OUT)/, \
-    dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk \
+    dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk tmp \
     linkerconfig $(BOARD_ROOT_EXTRA_FOLDERS)); \
     ln -sf /system/bin $(TARGET_ROOT_OUT)/bin; \
     ln -sf /system/etc $(TARGET_ROOT_OUT)/etc; \
     ln -sf /data/user_de/0/com.android.shell/files/bugreports $(TARGET_ROOT_OUT)/bugreports; \
     ln -sfn /sys/kernel/debug $(TARGET_ROOT_OUT)/d; \
+    ln -sf /data $(TARGET_ROOT_OUT)/usr; \
     ln -sf /storage/self/primary $(TARGET_ROOT_OUT)/sdcard
 ifdef BOARD_USES_VENDORIMAGE
   LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/vendor
diff --git a/system/sepolicy/prebuilts/api/30.0/private/file_contexts b/system/sepolicy/prebuilts/api/30.0/private/file_contexts
old mode 100644
new mode 100755
index 9620b75127..76f8ce2a44
--- a/system/sepolicy/prebuilts/api/30.0/private/file_contexts
+++ b/system/sepolicy/prebuilts/api/30.0/private/file_contexts
@@ -36,6 +36,7 @@
 # Symlinks
 /bin                u:object_r:rootfs:s0
 /bugreports         u:object_r:rootfs:s0
+/usr                u:object_r:system_data_root_file:s0
 /charger            u:object_r:rootfs:s0
 /d                  u:object_r:rootfs:s0
 /etc                u:object_r:rootfs:s0
@@ -471,6 +472,8 @@
 #
 /data		u:object_r:system_data_root_file:s0
 /data/(.*)?		u:object_r:system_data_file:s0
+/tmp		u:object_r:system_data_root_file:s0
+/tmp/(.*)?		u:object_r:system_data_file:s0
 /data/system/packages\.list u:object_r:packages_list_file:s0
 /data/unencrypted(/.*)?         u:object_r:unencrypted_data_file:s0
 /data/backup(/.*)?		u:object_r:backup_data_file:s0
diff --git a/system/sepolicy/private/file_contexts b/system/sepolicy/private/file_contexts
old mode 100644
new mode 100755
index 9620b75127..76f8ce2a44
--- a/system/sepolicy/private/file_contexts
+++ b/system/sepolicy/private/file_contexts
@@ -36,6 +36,7 @@
 # Symlinks
 /bin                u:object_r:rootfs:s0
 /bugreports         u:object_r:rootfs:s0
+/usr                u:object_r:system_data_root_file:s0
 /charger            u:object_r:rootfs:s0
 /d                  u:object_r:rootfs:s0
 /etc                u:object_r:rootfs:s0
@@ -471,6 +472,8 @@
 #
 /data		u:object_r:system_data_root_file:s0
 /data/(.*)?		u:object_r:system_data_file:s0
+/tmp		u:object_r:system_data_root_file:s0
+/tmp/(.*)?		u:object_r:system_data_file:s0
 /data/system/packages\.list u:object_r:packages_list_file:s0
 /data/unencrypted(/.*)?         u:object_r:unencrypted_data_file:s0
 /data/backup(/.*)?		u:object_r:backup_data_file:s0

六、参考文章

Android系统在root目录下新建文件夹并创建链接_在root目录创建文件file6的软链接-CSDN博客

基于rk3588s andriod在根目录下创建软连接-CSDN博客

Android在rootdir根目录创建自定义目录和挂载点的方法_android高通平台根目录下创建目录_阿迷创客的博客-CSDN博客


http://www.kler.cn/a/159624.html

相关文章:

  • Unity教程(十八)战斗系统 攻击逻辑
  • RabbitMQ 篇-深入了解延迟消息、MQ 可靠性(生产者可靠性、MQ 可靠性、消费者可靠性)
  • 使用CNN进行验证码识别:深度学习与图像预处理教程
  • 微服务即时通讯系统的实现(客户端)----(1)
  • web安全测试渗透案例知识点总结(上)——小白入狱
  • Oracle 单机及 RAC 环境 db_files 参数修改
  • 创建腾讯云存储桶---上传图片--使用cos-sdk完成上传
  • 简介Kadane算法及相关的普通动态规划
  • RepidJson将内容格式化后写入文件
  • 【OpenSSH升级】升级后证书认证登录突然失效
  • C语言能判断一个变量是int还是float吗?
  • 若依框架 前台自己获取登录用户信息
  • 矩阵处理—转圈打印矩阵
  • HomeAssistant如何添加HACS插件实现公网控制米家与HomeKit等智能家居
  • Redis的基本数据类型及常用命令
  • Codeforces Round 913 (Div. 3) A~E(F,G更新中)
  • ES6迭代器
  • Elasticsearch一些函数查询
  • 【头歌系统数据库实验】实验4 MySQL单表查询
  • HarmonyOS学习--TypeScript语言学习(三)
  • 图片点击放大
  • go基础语法10问(2)
  • WPF Live Charts2 自学笔记
  • 20、pytest中的参数化
  • 213. 打家劫舍 II --力扣 --JAVA
  • 华为云obs在java中的使用