• 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 };

  • 相关阅读:
    宝塔面板是干什么的?有哪些典型的功能作用?
    大厂都是如何处理重复消息的?
    SpringBoot整合Gateway 的Demo(附源码)
    Oracle使用exp和imp命令实现数据库导出导入
    Websocket集群解决方案以及实战(附图文源码)
    v-bind动态绑定
    Java面试题——进程和线程的关系
    【GCC编译优化系列】究竟什么样的代码会导致函数调用的栈溢出呢?
    PHP将word文件转为图片预览
    高德地图实现gps轨迹坐标定位代码
  • 原文地址:https://blog.csdn.net/jx232515/article/details/72629928