android - 如何在 android 中永久注入(inject) SELinux 策略?

标签 android linux filesystems selinux root-access

我有一个 root 的 android 设备,我需要在其中注入(inject)以下策略:

sepolicy-inject -s init -t su -c process -p transition -l
sepolicy-inject -s su -t system_file -c file -p entrypoint -l
sepolicy-inject -s init -t su -c process -p rlimitinh -l
sepolicy-inject -s init -t su -c process -p siginh -l
sepolicy-inject -s su -t shell_exec -c file -p read -l
sepolicy-inject -s su -t shell_exec -c file -p execute -l
sepolicy-inject -s su -t shell_exec -c file -p getattr  -l
sepolicy-inject -s su -t vendor_toolbox_exec -c file -p execute_no_trans -l
sepolicy-inject -s init -t su -c process -p noatsecure -l
sepolicy-inject -s su -t toolbox_exec -c file -p getattr -l
sepolicy-inject -s su -t toolbox_exec -c file -p execute -l
sepolicy-inject -s su -t system_file -c file -p execute_no_trans -l
sepolicy-inject -s su -t storage_file -c dir -p search -l
sepolicy-inject -s su -t storage_file -c lnk_file -p read -l
sepolicy-inject -s su -t tmpfs -c dir -p search -l
sepolicy-inject -s su -t mnt_user_file -c dir -p search -l
sepolicy-inject -s su -t mnt_user_file -c lnk_file -p read -l
sepolicy-inject -s su -t sdcardfs -c dir -p search -l
sepolicy-inject -s su -t sdcardfs -c file -p append -l
sepolicy-inject -s su -t toolbox_exec -c file -p read -l
sepolicy-inject -s su -t toolbox_exec -c file -p open -l
sepolicy-inject -s su -t sdcardfs -c file -p read -l
sepolicy-inject -s su -t sdcardfs -c file -p write -l

如您所见,我使用的是 sepolicy-inject注入(inject)所需策略的命令。我面临一个问题,重新启动这些策略不再存在。

据我了解,新政策是在 /sys/fs/selinux/policy 注入(inject)的。位置,这不是持久存储。另外,根分区有一个文件/sepolicy其中包含这些策略规则。

我找到了./sepolicyboot.img .我有一个 A/B 分区设备,所以 ./sepolicyboot.img仅用于恢复。

现在,由于以下原因,我无法理解如何将所需的策略永久注入(inject)设备:
  • /sys/fs/selinux/policy/sepolicy不在永久存储分区上。
  • boot.img仅包含仅在恢复时可用的 SELinux 策略。

  • 请建议我如何实现我的目标。

    最佳答案

    “/sepolicy” 是一个 ramdisk,所以它是临时的。您可以通过将该命令放入一些“init”脚本中来解决它,该脚本将在启动时运行“sepolicy-inject ...”命令;)

    关于android - 如何在 android 中永久注入(inject) SELinux 策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477794/

    相关文章:

    android - 安装 react-navigation 5 后,应用程序在启动时使用 React Native CLI 崩溃

    javascript - 如何在cocos creator javascript中使用sqlite数据库

    linux - svn ssh 连接的详细日志记录

    linux - 通过 ssh 运行命令时向远程机器提问

    linux - write(2)/read(2) linux 进程间的原子性

    javascript - 在移动浏览器中以 60 FPS 的速度捕获视频

    android - 支持的最低 Gradle 版本为 4.1。当前版本是 3.3

    linux - 使用 ADC 生成正弦波

    ios - IOS的文件系统加密?

    unix - UNIX 上的文件系统如何查找文件?