RK3399 开机自启一个shell脚本,一直起不来BUG

开机自启shell脚本如下:

bash 复制代码
diff --git a/device/rockchip/common/sepolicy/file_contexts b/device/rockchip/common/sepolicy/file_contexts
index eb6b5e4bb4..0bbe781a7c 100755
--- a/device/rockchip/common/sepolicy/file_contexts
+++ b/device/rockchip/common/sepolicy/file_contexts
@@ -165,3 +165,4 @@
 /system/vendor/bin/camera_test   u:object_r:camera_test_exec:s0
 
 /system/bin/xone-agent u:object_r:xone-agent_exec:s0
+/system/bin/myshell.sh u:object_r:myshell_exec:s0
diff --git a/device/rockchip/common/sepolicy/myshell.te b/device/rockchip/common/sepolicy/myshell.te
new file mode 100644
index 0000000000..11fc663901
--- /dev/null
+++ b/device/rockchip/common/sepolicy/myshell.te
@@ -0,0 +1,18 @@
+type myshell, domain;
+type myshell_exec, exec_type, file_type;
+ 
+ 
+init_daemon_domain(myshell)
+ 
+allow myshell init_tmpfs:file create_file_perms;
+allow myshell self:capability { dac_override net_admin net_raw setgid setuid };
+allow myshell device:dir { open read };
+allow myshell shell:lnk_file { read };
+allow myshell rootfs:lnk_file { getattr };
+allow myshell socket_device:sock_file { write };
+ 
+allow myshell shell_exec:file { getattr read};
+allow myshell fuse:dir { search write add_name getattr};
+allow myshell fuse:file { create write open getattr};
+allow myshell system_file:file { execute_no_trans};
+permissive myshell;

diff --git a/device/rockchip/rk3399/init.rk3399.rc b/device/rockchip/rk3399/init.rk3399.rc
index 805ce6f79e..743e6d3aa2 100755
--- a/device/rockchip/rk3399/init.rk3399.rc
+++ b/device/rockchip/rk3399/init.rk3399.rc
@@ -31,10 +31,18 @@ on boot
     chmod 0777 /system/bin/xone-agent
     start xone-agent
 
+    chown root shell /system/bin/myshell.sh
+    chmod 0777 /system/bin/myshell.sh
+    start myshell
+
 service xone-agent /system/bin/xone-agent
        user root
        group root
        disabled
        oneshot
 
-
+service myshell /system/bin/myshell.sh
+    user root
+       group root
+       disabled
+       oneshot
diff --git a/device/rockchip/rk3399/myshell.sh b/device/rockchip/rk3399/myshell.sh
new file mode 100644
index 0000000000..c5505b6adc
--- /dev/null
+++ b/device/rockchip/rk3399/myshell.sh
@@ -0,0 +1,6 @@
+#!/system/bin/sh
+while [ true ] 
+do
+        echo "123"
+done
diff --git a/device/rockchip/rk3399/rk3399_all.mk b/device/rockchip/rk3399/rk3399_all.mk
index 8bbcdef3a3..db7136f077 100755
--- a/device/rockchip/rk3399/rk3399_all.mk
+++ b/device/rockchip/rk3399/rk3399_all.mk
@@ -103,6 +103,7 @@ PRODUCT_COPY_FILES += \
    device/rockchip/rk3399/rockchip_test/rockchip_test.sh:/system/bin/rockchip_test.sh
 
 PRODUCT_COPY_FILES += \
+       device/rockchip/rk3399/myshell.sh:/system/bin/myshell.sh \
    device/rockchip/rk3399/top:/system/bin/top \
        device/rockchip/rk3399/xone-agent:/system/bin/xone-agent \
        device/rockchip/rk3399/xoneagent.sh:/system/bin/xoneagent.sh \
diff --git a/system/sepolicy/file_contexts b/system/sepolicy/file_contexts
index d64e67d29b..01e69da280 100644
--- a/system/sepolicy/file_contexts
+++ b/system/sepolicy/file_contexts
@@ -220,7 +220,7 @@
 /system/bin/update_engine        u:object_r:update_engine_exec:s0
 /system/bin/bspatch              u:object_r:update_engine_exec:s0
 /system/bin/selectrildlib      u:object_r:selectrildlib_exec:s0
-
+/system/bin/myshell             u:object_r:myshell_exec:s0 

然后就是死活起不来,但是和别人的是一模一样的,csdn都翻烂了,最后找到解决办法:

bash 复制代码
--- a/device/rockchip/rk3399/init.rk3399.rc
+++ b/device/rockchip/rk3399/init.rk3399.rc
@@ -33,7 +33,6 @@ on boot
 
     chown root shell /system/bin/myshell.sh
     chmod 0777 /system/bin/myshell.sh
-    start myshell
 
 service xone-agent /system/bin/xone-agent
        user root
@@ -41,8 +40,12 @@ service xone-agent /system/bin/xone-agent
        disabled
        oneshot
 
-service myshell /system/bin/myshell.sh
-    user root
+service myshell /system/bin/sh /system/bin/myshell.sh
+       user root
        group root
        disabled
        oneshot
+       seclabel u:r:shell:s0
+    
+on property:sys.boot_completed=1
+    start myshell

其实就是在service下面加上seclabel u:r:shell:s0就行了

相关推荐
NiceCloud喜云3 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
为思念酝酿的痛3 小时前
POSIX信号量
linux·运维·服务器·后端
Are_You_Okkk_3 小时前
基于MonkeyCode解析AI研发新模式,根治开发低效痛点
大数据·人工智能·开源·ai编程
人还是要有梦想的4 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
科技AI训练师4 小时前
2026高压清洗泵厂家选择指南:判断标准与选购要点
大数据·人工智能
Percent_bigdata4 小时前
“模数共振”开启产业AI新阶段,重新定义数据治理
大数据·人工智能
bush45 小时前
嵌入式linux学习记录二
linux·运维·学习
9分钟带帽5 小时前
linux_通过NFS挂载远程服务器的硬盘
linux·服务器
狒狒热知识6 小时前
2026年AI传播新闻软文营销发布当下178软文网领衔发展路径
大数据·人工智能