【问题标题】:How can I run a script at boot under LineageOS 13, and not be blocked by SELinux?如何在 LineageOS 13 下启动时运行脚本,而不被 SELinux 阻止?
【发布时间】:2018-01-25 16:56:07
【问题描述】:

我正在尝试在启动时在 LineageOS 13 上运行 sshd。该设置大致与 https://web.archive.org/web/20161224194019/https://wiki.cyanogenmod.org/w/Doc:_sshd 中对 CyanogenMod 的描述相同。遵循建议的配置步骤后,我可以在根 adb 下以交互方式启动 sshd,如下所示:

root@espressowifi:/ # /data/local/userinit.d/99sshd
Could not load host key: /data/ssh/ssh_host_dsa_key

它抱怨密钥,但无论如何启动,客户端可以连接,到目前为止一切顺利。

我现在想在启动时启动 sshd。看起来这被 SELinux 阻止了:

root@espressowifi:/ # logcat | grep 99sshd
01-25 17:44:28.492   199   199 W logwrapper: type=1400 audit(0.0:5): avc: denied { execute } for name="99sshd" dev=mmcblk0p10 ino=1830 scontext=u:r:sysinit:s0 tcontext=u:object_r:system_data_file:s0 tclass=file permissive=0
01-25 17:44:28.499   196   196 I 99sshd  : executing /data/local/userinit.d/99sshd failed: Permission denied
01-25 17:44:28.499   199   199 E logwrapper: executing /data/local/userinit.d/99sshd failed: Permission denied
01-25 17:44:28.506   196   196 I 99sshd  : 99sshd terminated by exit(255)

我尝试chcon 99sshd 文件,但无济于事,实际上启动后上下文最终被恢复。恢复的文件上下文似乎取自 /file_contexts,您可以在之后进行编辑

root@espressowifi:/ # mount -o rw,remount -t rootfs /

但该文件也会恢复到某个原始版本。 setenforce 0 无法在启动后存活。

其他人似乎也有类似的问题,但 lineageos jira 将问题标记为功能:https://jira.lineageos.org/browse/BUGBASH-118

有没有办法在 Lineage OS 13 下运行自定义启动脚本?

【问题讨论】:

    标签: android android-source selinux cyanogenmod


    【解决方案1】:

    最近我做了类似的事情,将 VNC 服务器添加到 LOS 14.1 ROM。理论上你需要做到以下几点:

    1) 为您的 sshd 守护进程创建一个服务,它将是一个 .rc 文件,您将放置在 /etc/init/ 文件夹中

    2) 从引导初始化脚本 .sh 文件启动该服务

    3) 将 sshd 添加到 sepolicy/file_contexts

    4) 更改引导初始化脚本的 SE 策略,以执行您的二进制文件 (sshd)

    5) 为您的二进制文件添加 SE 策略,以访问 linux 资源

    您可以查看我为小米 Note 4 (mido) 修改了哪些文件以将 VNC 放在那里:https://github.com/mixaz/android_device_xiaomi_mido/commit/25d62bd131d6ed51999d8a19f70fd427758a0bac

    重要提示 - 那里的 SE 策略规则是通过一个工具从 logcat 输出生成的,我现在不记得我使用了什么,你可能可以 google。不推荐,但我的 rom 是实验性的,所以我不在乎。我在这方面没有太多研究。

    【讨论】:

      猜你喜欢
      • 2014-06-04
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      相关资源
      最近更新 更多