学向勤中得,萤窗万卷书。这篇文章主要讲述如何在init.rc文件中完全禁用Android L中的SELinux?相关的知识,希望能为你提供帮助。
我想在启动时为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
。有什么建议?
答案后
setenforce 0enforce属性将立即为Permissive。
另一答案而不是放入init.rc,你可以通过向内核命令行添加一些参数(BOARD_KERNEL_CMDLINE)来实现它
【如何在init.rc文件中完全禁用Android L中的SELinux()】例如:在
enforcing=0 androidboot.selinux=permissive
中添加device/<
manufacturer>
/<
target>
/BoardConfig.mk
另一答案好吧,我猜你可以为你的“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_daemonu:object_r:mydomain_exec:s0
这是你的init.rc文件:
service my_daemon /system/bin/my_daemon
class core
所以这里的好处是只有mydomain才会允许,并且系统的其余部分都会强制执行,因此你可以让你的守护进程运行没有任何问题并且仍然保持系统安全性。
推荐阅读
- 无法配置NDK android studio并获取错误
- Android NDK抛出信号SIGSEGV(通过JNI获取Activity中的GoogleSignInClient后无效的地址)
- Android NDK(找不到平台文件(标题和库))
- 在android ndk中使用ubuntu header lib
- 构建使用协议缓冲区的Android可执行gRPC服务器(不使用APK)
- Android studio 3.1.3创建新项目,c ++支持同步失败
- 在没有Android Studio的情况下为Android创建(Cmake)C / C ++库
- Android NDK“ndk-build”被识别为内部或外部命令批处理文件
- 将cpp类添加到android项目中