在挂载/system之前,我正在尝试向dmesg日志中写入一些内容。
我的问题是,为了写入dmesg (在android上),我需要使用android特定的东西,而不仅仅是我通常使用的crossdev arm系统。
只要:
__android_log_print(ANDROID_LOG_DEBUG, "libnav", "DEBUG - custom program started");如果您按如下方式编译它,一切都很好(我在/var/tmp/android中创建了一个独立的工具链):
arm-linux-androideabi-gcc --sysroot /var/tmp/android/sysroot -llog -o custom_program custom_program.c但上面的命令将构建一个动态链接的可执行文件,如果系统尚未启动,它将运行得很好。
“很简单,静态编译就行了!”我想。
android ndk附带了一些库,但是liblog只是liblog.so,而不是liblog.a,那么在/system beign挂载之前,我如何在dmesg中登录一些东西呢?
提前谢谢。
发布于 2012-12-28 21:10:52
使用arm-unknown-gnueabi gcc和
fopen在fopen返回的文件*上打开/dev/kmsg和fprintf。
在android运行时运行该程序将写入dmesg,但如果是在早期启动过程中,则不会。为什么?
@auselen我已经修改了init来启动这个静态程序:
init.rc代码段
on post-fs-data
write /dev/kmsg "launching test"
exec /data/test我在dmesg里看到的就是...
<4>[ 6.336816] launching test
<6>[ 6.336902] init: command 'write' r=0
<6>[ 6.337115] init: command 'exec' r=-1这里是可执行的源代码:http://pastebin.com/Hym1APWx
https://stackoverflow.com/questions/14061967
复制相似问题