在Android init.rc中执行守护进程

时间:2015-03-18 19:01:02

标签: android android-ndk android-5.0-lollipop daemon nexus-5

我正在尝试在启动Nexus 5时执行守护程序。这是一个根据c++中的源代码构建的守护程序。但每当我构建AOSP并在我的Nexus 5设备上刷新图像时,守护程序就不会在后台运行。我将此代码添加到我的 init.rc 文件中:(应该让它在启动时在后台运行)

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
setenforce 1

我使用setenfonce的原因是因为Android 5.0及更高版本上的SELinux。问题是在启动时,守护程序没有在启动时运行。我没有任何关于为什么的线索。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我遇到了与nexus 9相同的问题。我在device / htc / flounder / init.flounder.rc中添加了代码但是没有用。

service pollingclient /system/bin/sh logwrapper
    class late_start
    user root
    group root
    oneshot

on property:dev.bootcomplete=1
    start pollingclient

我的快速解决方法是在fdevent_add(& t-> auth_fde,FDE_READ)之后添加代码以在system / core / adb / adb_auth_client.c中启动我的守护程序;

kill_if_exist_service("mydaemon");
system("sleep 5; mydaemon");

它有效,但它的某种“快速修复”。我仍在调查正确的解决方案。

<强>更新 我通过编辑禁用selinux ./arch/arm64/configs/flounder_defconfig设置CONFIG_SECURITY_SELINUX = n然后重新编译内核并重新编译boot.img。 哇,它有效!