在 Android init.rc 中执行守护进程
Execute a daemon in Android init.rc
我正在尝试在我的 Nexus 5 启动时执行一个守护进程。这是一个从 c++
中的源代码构建的守护进程。但是每当我构建 AOSP 并在我的 Nexus 5 设备上刷新图像时,守护进程都不会 运行ning 在后台。我将此代码添加到我的 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。问题是在启动时,守护进程不是 运行ning。我不知道为什么。有什么建议吗?
我在 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);[=12= 之后在 system/core/adb/adb_auth_client.c 中添加启动守护进程的代码]
kill_if_exist_service("mydaemon");
system("sleep 5; mydaemon");
它有效,但有点 "quick fix"。我仍在研究正确的解决方案。
更新:
我通过编辑禁用 selinux。/arch/arm64/configs/flounder_defconfig 设置 CONFIG_SECURITY_SELINUX=n 然后重新编译内核并重新编译 boot.img。 哇,好用!
我正在尝试在我的 Nexus 5 启动时执行一个守护进程。这是一个从 c++
中的源代码构建的守护进程。但是每当我构建 AOSP 并在我的 Nexus 5 设备上刷新图像时,守护进程都不会 运行ning 在后台。我将此代码添加到我的 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。问题是在启动时,守护进程不是 运行ning。我不知道为什么。有什么建议吗?
我在 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);[=12= 之后在 system/core/adb/adb_auth_client.c 中添加启动守护进程的代码]
kill_if_exist_service("mydaemon");
system("sleep 5; mydaemon");
它有效,但有点 "quick fix"。我仍在研究正确的解决方案。
更新: 我通过编辑禁用 selinux。/arch/arm64/configs/flounder_defconfig 设置 CONFIG_SECURITY_SELINUX=n 然后重新编译内核并重新编译 boot.img。 哇,好用!