Chinaunix
标题:
android系统启动之后自动执行程序
[打印本页]
作者:
yang5856
时间:
2012-05-18 10:05
标题:
android系统启动之后自动执行程序
android启动之后,如何实现insmod一个ko驱动,然后再执行我的一个应用程序?
我在init.rc中做了如下修改,可是不起作用:
chmod 777 /sdcard/busybox
insmod /sdcard/t.ko
busybox mdev
./hello
系统起来之后提示:
invalid command 'busybox'
invalid command './hello
作者:
sdphome
时间:
2012-05-18 11:01
你的当前目录不在/sdcard下面,,
改成下面的试试
chmod 777 /sdcard/busybox
chmod +X /sdcard/hello
insmod /sdcard/t.ko
/sdcard/busybox mdev
/sdcard/hello
作者:
tempname2
时间:
2012-05-18 11:01
启动程序要以service的形式。
作者:
yang5856
时间:
2012-05-18 13:22
回复
2#
sdphome
我要使用exec 来运行命令么?
chmod 777 /sdcard/busybox
insmod /sdcard/t.ko
/sdcard/busybox mdev
exec hello
我看android init.rc里面command里面有这个命令的。
作者:
yang5856
时间:
2012-05-22 11:28
我使用了下下面的命令,insmod执行后t.ko有串口提示,但是exec执行后面俩个命令,没有任何作用的,这样执行有问题么?
chmod 777 /data/busybox
insmod /data/t.ko
exec /data/busybox mdev -s
exec /data/hello
作者:
yang5856
时间:
2012-05-22 11:35
我在串口里面输入下面俩个命令,串口都有输出的。
exec /data/busybox mdev -s
exec /data/hello
作者:
sdphome
时间:
2012-05-22 12:44
算了,简单一点吧,这样试试看呢
chmod 777 /sdcard/busybox
chmod +X /sdcard/hello
insmod /sdcard/t.ko
cp /sdcard/busybox /system/bin
cp /sdcard/hello /system/bin
busybox mdev
hello
作者:
yang5856
时间:
2012-05-22 13:53
回复
7#
sdphome
我照着这样做了 但是
busybox mdev
hello
也没有任何输出的 ,
为啥直接在串口下就能收入
exec /data/busybox mdev -s
exec /data/hello 并且结果正确,
但是放在init.rc里面就不可以了?
作者:
sdphome
时间:
2012-05-22 14:36
这个 其实我也不太了解了,如果那两条命令执行了的话,那么可能是在init.rc执行的时候,那个时候应用层的log没有指向串口??
作者:
yang5856
时间:
2012-05-29 16:37
使用了一个简单的service测试,
test.c,
int main(void)
{
printf("test hello\n");
return 0;
}
修改 init.rc,
chmod +X /data/ test
service test /data/test
oneshot
android系统起来之后,应该来运行test的,但是串口里面没有打印 printf("test hello\n"),这是什么原因,我的service写的有什么问题?
作者:
captivated
时间:
2012-06-03 05:58
回复
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 的输出.
作者:
captivated
时间:
2012-06-03 06:00
回复
1#
yang5856
PS... 这主题怎么发到内核板块了, 呵呵.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2