Android 10 开机启动sh脚本

客户需求要在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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值