android 系统rc添加 shell运行脚本

4.1 编写对应的rc文件和脚本文件

start_vendor_sniffer.sh

skyui_diag_mdlog.rc

4.2 拷贝文件到编译的vendor 分区

2.修改 .mk 配置文件,将创建的 test.sh 编译到系统分区

# copy start_vendor_sniffer.sh to vendor/bin/start_vendor_sniffer.sh

# copy skyui_diag_mdlog.rc to vendor/etc/init/skyui_diag_mdlog.rc

PRODUCT_COPY_FILES += ***/start_vendor_sniffer.sh:vendor/bin/start_vendor_sniffer.sh \

***/skyui_diag_mdlogsh:vendor/etc/init/skyui_diag_mdlog.rc 

//skyui vendor 目前不会编译,先使用push 方式推送文件到目标目录

4.3 在file_context 定义对应的标签

在vendor\skyui\sepolicy\private目录下的file_contexts文件中增加如下文件:

/vendor/bin/start_vendor_sniffer.sh u:object_r:vendor_sniffer_exec:s0

/vendor/bin/stop_vendor_sniffer.sh u:object_r:vendor_sniffer_exec:s0

4.4 创建脚本文件启动进程时对应的selinux的te文件

在vendor\skyui\sepolicy\private目录下, 添加vendor_sniffer.te 文件, 内容如下:

# add by shengqing.liu@nio.com skyui_diag_mdlog 2022/11/8 for_snifferlog start

type vendor_sniffer, domain;

type vendor_sniffer_exec, exec_type, vendor_file_type, file_type;

init_daemon_domain(vendor_sniffer)

allow vendor_sniffer vendor_shell_exec:file { execute_no_trans };

allow vendor_sniffer vendor_file:file { execute getattr setattr open read write create};

allow vendor_sniffer device:chr_file { ioctl };

allow vendor_sniffer system_file:file { execute };

allow vendor_sniffer sysfs:file { getattr setattr };

allow vendor_sniffer storage_file:dir { search open read };

allow vendor_sniffer storage_file:lnk_file { read };

allow vendor_sniffer mnt_user_file:lnk_file { read };

allow vendor_sniffer mnt_user_file:dir { search };

allow vendor_sniffer sdcardfs:dir { search write add_name create };

allow vendor_sniffer media_rw_data_file:dir { read open search write };

allow vendor_sniffer system_data_file:file { getattr };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值