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就行了

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
Elasticsearch2 天前
如何通过 Claude Code 来写入 CSV 数据到 Elasticsearch
elasticsearch
A小辣椒2 天前
TShark:基础知识
linux
逐光老顽童2 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
爱勇宝2 天前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
Yeyu3 天前
刷新一帧的艺术:invalidate / postInvalidate / postInvalidateOnAnimation全解析
android
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
潘潘潘3 天前
Android OTA 升级原理和流程介绍
android
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux