【发布时间】: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