- 论坛徽章:
- 3
|
回复 10# yang5856
1. init.rc中能识别的命令是有限的, busybox显然不是 init进程解析 init.rc 后能识别的命令.
exec这个命令 init 似乎是能识别的, 但是我看了下init的源码, 这个实现似乎是空实现, 所以可能没用.
2. 所以, 如果你想在系统起来后执行一些 shell 命令怎么办? 其实并不困难, 你写一个service, 这个service fork一个进程,
fork的子进程使用 system 或者 exec 族函数去启动 sh 解释器, 然后这个 sh 解释器去解释一个 sh 脚本, 你把你要执行
的shell命令写到那个脚本里面去, 然后就可以执行了 (说得有点绕, 不知道你明白我的意思了没, 表达能力有限, sorry).
---- 这个很容易做到, 因为这件事情我确实做过, 某个客户想要使用 apk 应用来执行一些需要root权限的命令, 我的解决
方案就是这样的, 只不过我写的那个服务多了一个内容, 客户的 apk 通过local socket和我的服务通讯.
3. 为什么你的服务打印消息没有出来? 具体的原因此处我无法解释, 不过我建议你检查一下ddms / logcat 的输出. |
|