[MTK] 遇到加密问题,如何抓取log?
文摘 MediaTek 2020-07-16 阅读:5831Download第一次开机的加密过程执行的比较早,因此很多log比较难抓到。
- 如果是毕现问题,可以参考如下方式抓取。进入cmd --》输入adb logcat -v
time>log.txt--》连接usb---》开机 - 如果是概率性的问题,可以在uart log中,将logcat log抓一下。 Uart console可用情况下的抓取方法如下:Uart 上进行输入,实际就是开启了一个sh 对接起来,所以绝对不能在uart 上输入一个长命令(不可中断),否则uart 将被卡住,不能再输入。 抓取上层log, 我们通常需要call logcat, 但logcat 是不可中断的,将导致uart 不能再输入。 处理的方法即将logcat 转入后台执行,如下操作即可。
Main log: logcat -v time &
Radio log: logcat -v time -b radio &
Event log: logcat -v time -b events &
如果想关闭上层log, 直接ps 查阅前面开启的logcat process pid, 然后kill -9
pid 杀掉即可。 注意一定要带"&",否则将block 住uart输入 - 如果uart console不可以用的话, 只能让main log直接导入到uart 口了。 参考:[FAQ18350]main
log导入到uart口 - 如果只是想把Crypts.c中的log打印到kernel
log的方法如下,然后连着uart复现问题,直到复现到问题为止。在复现问题前,先确认下log确实有印到uart log中。
1).system/vold/main.cpp
int main(int argc, char** argv) {
......
/* For when cryptfs checks and mounts an encrypted filesystem */
klog_init(); //添加这行
klog_set_level(6); //6修改为5
2). alps/system/vold/cryptfs.c
......
#include <math.h>
#include <cutils/klog.h> //添加这行
#include "cryptfs.h"
......
#define RETRY_MOUNT_ATTEMPTS 10
#define RETRY_MOUNT_DELAY_SECONDS 1
//add bengin
#undef ALOGE
#define ALOGE(x...) do {KLOG_ERROR(LOG_TAG, x);} while(0)
#undef SLOGI
#define SLOGI(x...) do {KLOG_NOTICE(LOG_TAG, x);} while(0)
#undef SLOGD
#define SLOGD(x...) do {KLOG_NOTICE(LOG_TAG, x);} while(0)
#undef SLOGW
#define SLOGW(x...) do {KLOG_NOTICE(LOG_TAG, x);} while(0)
//#undef SLOGV
//#define SLOGV(x...) do {KLOG_NOTICE(LOG_TAG, x);} while(0)
#undef SLOGE
#define SLOGE(x...) do {KLOG_ERROR(LOG_TAG, x);} while(0)
//add end
char *me = "cryptfs";
static unsigned char saved_master_key[KEY_LEN_BYTES];
......
共0
条评论
作者
Pixiv日榜Top50