安卓recovery的log如何直接输出到串口

安卓recovery的log如何直接输出到串口


我们在调试recovery升级的时候,我们经常需要查看recovery的log,google的原始逻辑中,recovery的log并非直接输出到串口,我们需要输入命令才能获取,我们有三种方式:

第一种:recovery下,遥控器选择view recovery logs,界面上查看。

第二种:recovery下,输入命令,cat /tmp/recovery.log

第三种:android下,输入命令,cat  /cache/recovery/last_log

有时候我们需要把recovery的log直接输出到终端串口,则我们需要修改下recovery的代码即可,下面以android L(5.1)版本的代码修改说明下:

bootable/recovery/recovery.cpp

static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log";
static void redirect_stdio(const char* filename) {
// If these fail, there's not really anywhere to complain...
freopen(filename, "a", stdout); setbuf(stdout, NULL);
freopen(filename, "a", stderr); setbuf(stderr, NULL);
}

Int main(int argc, char **argv) {
time_t start = time(NULL);
   redirect_stdio(TEMPORARY_LOG_FILE);
}

我们只需要把redirect_stdio函数的参数,有”/tmp/recovery.log”修改为”/dev/console”即可。redirect_stdio(”/dev/console”); 不同的平台可能有所不一样,可以先这样验证,echo “22222222” > /dev/console,检验下是否能够把打印正常输出到串口,如果可以,证明这个方法可行。

原文链接:https://blog.csdn.net/qq_30624591/article/details/92150891

上一篇:jQuery—获取表单标签的数据值


下一篇:帮助大家快速查找并恢复数据信息