Android 7.1.2 添加开机启动脚本

需求:基于msm8953平台,在系统开机过程中的开机服务中,添加一个开机服务,并由改服务启动一个开机脚本。

以下patch验证可行

diff --git a/device/qcom/common/base.mk b/device/qcom/common/base.mk
index 91ad523..d020f23 100755
--- a/device/qcom/common/base.mk
+++ b/device/qcom/common/base.mk
@@ -284,6 +284,7 @@ INIT += init.mdm.sh
 INIT += init.qcom.uicc.sh
 INIT += fstab.qcom
 INIT += init.qcom.sensors.sh
+INIT += testScript.sh
 
 #IPROUTE2
 IPROUTE2 := ip
diff --git a/device/qcom/common/rootdir/Android.mk b/device/qcom/common/rootdir/Android.mk
index f761806..a57f0b9 100644
--- a/device/qcom/common/rootdir/Android.mk
+++ b/device/qcom/common/rootdir/Android.mk
@@ -234,6 +234,14 @@ LOCAL_SRC_FILES    := etc/init.qcom.sensors.sh
 LOCAL_MODULE_PATH  := $(TARGET_ROOT_OUT)
 include $(BUILD_PREBUILT)
 
+include $(CLEAR_VARS)
+LOCAL_MODULE       := testScript.sh
+LOCAL_MODULE_TAGS  := optional eng
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES    := etc/testScript.sh
+LOCAL_MODULE_PATH  := $(TARGET_OUT_EXECUTABLES)
+include $(BUILD_EXECUTABLE)
+
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
     include $(CLEAR_VARS)
     LOCAL_MODULE       := init.qcom.test.rc
diff --git a/device/qcom/common/rootdir/etc/init.qcom.rc b/device/qcom/common/rootdir/etc/init.qcom.rc
index c38b539..2fbce87 100644
--- a/device/qcom/common/rootdir/etc/init.qcom.rc
+++ b/device/qcom/common/rootdir/etc/init.qcom.rc
@@ -1242,3 +1242,16 @@ on property:sys.boot_completed=1
         touch /sys/hdmiin1/format
         chmod 777 /sys/hdmiin0/format
         chmod 777 /sys/hdmiin1/format
+
+        #update_bq57520.sh script
+        chmod 777 /system/bin/testScript.sh
+   start testScript
+
+service testScript /system/bin/testScript.sh
+   class late_start
+   user root
+   group root shell system
+   disabled 
+   oneshot   
+
+
diff --git a/device/qcom/sepolicy/common/file_contexts b/device/qcom/sepolicy/common/file_contexts
index 3269b2d..d34f538 100755
--- a/device/qcom/sepolicy/common/file_contexts
+++ b/device/qcom/sepolicy/common/file_contexts
@@ -394,3 +394,5 @@
 
 #ethan add for wifi nv file
 /system/bin/WifiNvService                                            u:object_r:mmi_exec:s0
+
+/system/bin/testScript\.sh                                           u:object_r:qti_init_shell_exec:s0
diff --git a/device/qcom/sepolicy/common/init_shell.te b/device/qcom/sepolicy/common/init_shell.te
index 3962d29..88f2f71 100644
--- a/device/qcom/sepolicy/common/init_shell.te
+++ b/device/qcom/sepolicy/common/init_shell.te
@@ -2,6 +2,7 @@
 # Normally these are shell commands or scripts invoked via sh
 # from an init*.rc file.  No service should ever run in this domain.
 type qti_init_shell, domain, domain_deprecated;
+type qti_init_shell_exec, exec_type,file_type;
 domain_auto_trans(init, shell_exec, qti_init_shell)
 
 # For executing init shell scripts (init.qcom.early_boot.sh)
@@ -199,3 +200,14 @@ allow qti_init_shell sysfs_zram:file w_file_perms;
 
 # To get GPU frequencies
 allow qti_init_shell sysfs_kgsl:file r_file_perms;
+
+
+#added by fieger
+allow qti_init_shell sdcardfs:chr_file {read};
+allow qti_init_shell mnt_user_file:dir search;
+allow qti_init_shell mnt_user_file:lnk_file read;
+allow qti_init_shell sdcardfs:dir search;
+allow qti_init_shell storage_file:dir search;
+allow qti_init_shell storage_file:lnk_file read;
+allow qti_init_shell tmpfs:lnk_file read;
+allow qti_init_shell sysfs:file {read write};


你可能感兴趣的:(Android 7.1.2 添加开机启动脚本)