簡體   English   中英

如何在init.rc文件中完全禁用Android L中的SELinux?

[英]How to completely disable SELinux in Android L in the init.rc file?

我想在啟動時為Android L或5禁用SELinux。原因是因為SELinux問題,我的守護程序在啟動時不會開始執行。 我在init.rc文件中有以下內容:

su 0 setenforce 0
service my_daemon /system/bin/my_daemon 
    class main     # Also tried: class core (but it didn't make a difference)
    user root
    group root

但是,在啟動時,我使用adb shell來檢查SELinux是否被禁用(使用getenforce )並返回Enforcing 我希望SELinux在啟動時完全禁用。 如果沒有完全禁用那么至少是Permissive

有什么建議?

而不是放入init.rc,你可以通過向內核命令行添加一些參數(BOARD_KERNEL_CMDLINE)來實現它

例如:在device/<manufacturer>/<target>/BoardConfig.mk添加enforcing=0 androidboot.selinux=permissive

好吧,我猜你可以為你的“my_daemon”創建一個新的域策略。 例如,您可以在AOSP的device / manufacturer / device-name / sepolicy /創建mydomain.te文件,其中包含以下內容:

# mydomain policy here
type mydomain, domain;
permissive mydomain;
type mydomain_exec, exec_type, file_type;

init_daemon_domain(mydomain)

現在將以下行添加到device / manufacturer / device-name / sepolicy / file_contexts:

/system/bin/my_daemon   u:object_r:mydomain_exec:s0

這是你的init.rc文件:

service my_daemon /system/bin/my_daemon
    class core

所以這里的好處是只有mydomain才會允許,並且系統的其余部分都會強制執行,因此你可以讓你的守護進程運行沒有任何問題並且仍然保持系統安全性。

setenforce 0

enforce屬性將是imissivediately。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM