Android 10 开机启动sh脚本

2023-05-16

客户需求要在sdcard目录下增加文件和文件夹

开机后增加运行sh脚本,脚本中执行mkdir和cp操作

1、拷贝客户文件和脚本

PRODUCT_COPY_FILES += device/mediatek/vendor/common/xxx.zjs:/data/preloadmedia/xxx.zjs
PRODUCT_COPY_FILES += device/mediatek/vendor/common/preloadmedia.sh:/system/bin/preloadmedia.sh

2、脚本代码

#!/system/bin/sh
PRELOAD_DEST=/storage/emulated/0/xxx
PRELOAD_FLAG=${PRELOAD_DEST}/xxx.zjs
PRELOAD_SOURCE=/data/preloadmedia

if [ ! -d ${PRELOAD_DEST} ]
then
mkdir -p ${PRELOAD_DEST}
cat  ${PRELOAD_SOURCE}/xxx.zjs > ${PRELOAD_DEST}/xxx.zjs
fi

3、开机完成后执行脚本 init.rc

service preloadmedia /system/bin/preloadmedia.sh
    disabled
    user root
    group root
    seclabel u:r:preloadmedia:s0
    oneshot

on property:sys.boot_completed=1
    wait /sdcard/Android
    start preloadmedia

4、添加权限

preloadmedia.te
type preloadmedia, domain, mlstrustedsubject;
type preloadmedia_exec, exec_type, file_type, system_file_type;
typeattribute preloadmedia coredomain;
init_daemon_domain(preloadmedia)
permissive  preloadmedia;
domain_trans(init, shell_exec, preloadmedia)
allow preloadmedia shell_exec:file { read execute getattr};
allow preloadmedia system_data_file:file {  getattr};
allow preloadmedia storage_file:lnk_file { read };
allow preloadmedia toolbox_exec:file { getattr execute  read open execute_no_trans};

 file_contexts
 /(system\/vendor|vendor)/bin/preloadmedia.sh u:object_r:preloadmedia_exec:s0

然后根据log中的avc报错修改权限,或者关闭selinux

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 10 开机启动sh脚本 的相关文章

随机推荐