【问题标题】:How to inject SELinux policies permanently in android?如何在 android 中永久注入 SELinux 策略?
【发布时间】:2019-08-13 12:31:54
【问题描述】:

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

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 命令注入所需的策略。我面临一个问题,重启后这些策略不再存在。

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

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

现在,由于以下原因,我无法理解如何将所需的策略永久注入设备:

  1. /sys/fs/selinux/policy/sepolicy 不在永久存储分区上。
  2. boot.img 仅包含仅在恢复时可用的 SELinux 策略。

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

【问题讨论】:

    标签: android linux filesystems selinux root-access


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    只需将 selinux 设置为 permissive 即可禁用它

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 1970-01-01
      • 2013-04-19
      • 2015-03-08
      • 2016-02-20
      • 2014-12-03
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多