按照this post中给出的示例,我将这些行添加到/init.rc中:
application.ios.addNotificationObserver(UIKeyboardWillChangeFrameNotification, function (notification) {
let hght = notification.userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey).CGRectValue.size.height;
})
这个/system/bin/bc_handler.sh:
on property:dev.bootcomplete=1
start boot_handler
service boot_handler /system/bin/bc_handler.sh
class main
user root
group root
disabled
oneshot
我正在为模拟器构建Android 8.0。当系统启动时,我可以看到脚本没有运行,并且在日志中可以看到此消息:
#!/system/bin/sh
echo hi > /data/local/hi.txt
我尝试将服务更改为以下形式:
[ 217.280853] init: service boot_handler does not have a SELinux domain defined
现在错误是
service boot_handler /system/bin/sh /system/bin/bc_handler.sh
class main
user root
group root
disabled
oneshot
seclabel u:r:shell:s0
是否有关于如何在SELinux下向Android添加新服务的文档?或有关如何在Android上禁用SELinux的文档?我已经搜寻了几个小时,发现的所有信息似乎都已过时。
答案 0 :(得分:1)
您可以通过在运行的平台上设置许可模式来禁用SELinux
在宽松模式下,selinux仅转储警告消息
默认情况下,它处于强制模式,在该模式下,任何SELinux违规行为都将被拒绝。
要添加服务,应在file_context中添加文件上下文,并为服务编写一个.te文件
Here是一个基本示例,您可以深入了解SELinux