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

news/2024/7/7 5:56:20 标签: android, elasticsearch, 大数据

一、想在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.niftyadmin.cn/n/5231764.html

相关文章

CGAL的3D多面体表面

1、介绍 三维多面体表面由顶点、边、面和它们之间的关联关系组成。其底层组织是一种半边数据结构,它限制了可表示的表面类为可定向的2-流形,有边界和无边界。如果表面是封闭的,我们称之为多面体,例如,见下面的锤头模型…

深度学习手势识别 - yolo python opencv cnn 机器视觉 计算机竞赛

文章目录 0 前言1 课题背景2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存 5 模型训练5.1 修…

卷积神经网络(VGG-16)猫狗识别

文章目录 一、前言二、前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 再次检查数据3. 配置数据集4. 可视化数据 三、构建VG-16网络四、编译五、训练模型六、模型评估七、保存and加载模型八、预测…

力扣232-用栈实现队列

文章目录 力扣232-用栈实现队列示例代码实现总结收获 力扣232-用栈实现队列 示例 代码实现 class MyQueue {Deque<Integer> instack;Deque<Integer> outstack ;public MyQueue() {instacknew ArrayDeque<Integer>();outstacknew ArrayDeque<Integer>(…

GAN:ImprovedGAN-训练GAN的改进策略

论文&#xff1a;https://arxiv.org/abs/1606.03498 代码&#xff1a;https://github.com/openai/improved_gan 发表&#xff1a;NIPS 2016 一、文章创新 1&#xff1a;Feature matching&#xff1a;特征匹配通过为生成器指定新目标来解决GANs的不稳定性&#xff0c;从而防止…

Could not load dynamic library 'libnvinfer.so.7' 解决方法

1.首先安装TensorRTpip install tensorrt 2.找到tensorrt_libs目录&#xff0c;一般在~/.local/lib/python3.10/site-packages/tensorrt_libs/。目录下可以看到libnvinfer.so.8等文件注&#xff1a;有些教程说的是tensorrt目录&#xff0c;但是我在这个目录下面没找到文件 3.创…

canvas基础:渲染文本

canvas实例应用100 专栏提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。 canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重要的帮助。 文章目录 示例…

无人巡检 | AIRIOT变电站无人机运防一体管理解决方案

传统的变电站安全管理存在着人力成本高、效率低、安全风险难以全面控制等问题&#xff0c;主要依靠人工巡检和监控设备&#xff0c;往往存在如下的运维问题和管理痛点&#xff1a; 巡检监控能力差&#xff1a;传统变电站管理系统无法对变电站进行全面的巡检监控&#xff0c;以…