从android init.rc执行静态程序

tux*_*ind 2 android initialization

我想在这个init过程中启动一个自定义程序.我静态地编译了这个程序,从我启动的android stock ROM中运行良好.

从android init.rc文档我读到exec命令是我需要的.
BTW所有我能看到的dmesg是我的程序退出代码-1(我无法返回).

init.rc 片段:

on post-fs-data
write /dev/kmsg "launching test"
exec /data/test
Run Code Online (Sandbox Code Playgroud)

我所看到的dmesg只是:

<4>[    6.336816] launching test
<6>[    6.336902] init: command 'write' r=0
<6>[    6.337115] init: command 'exec' r=-1
Run Code Online (Sandbox Code Playgroud)

在这里,您是可执行的源代码:http://pastebin.com/Hym1APWx


UPDATE

我试图静态编译并运行这个程序:

int main(){return 0; }
Run Code Online (Sandbox Code Playgroud)

但结果总是如此command 'exec' r=-1.也许用户uselen是正确的,也许我无法/data在早期启动阶段运行可执行文件.

ekt*_*son 8

正如克里斯蒂安所说,看起来exec甚至没有实现.我开始认为init.rc记录的很多功能都没有实现.这是您可以启动程序的方法.

而不是将其作为"exec"命令运行,而是将其设置为服务.

在您的init.rc或其中包含的其他文件中:

service my_service /data/test
    class main
    oneshot 
Run Code Online (Sandbox Code Playgroud)

如果它在类main中,而不是禁用,它应该在/ data挂载后运行.