使用klogctl接口离线保存android kernel log
来源:互联网 发布:淘宝远望数码手机真假 编辑:程序博客网 时间:2024/04/30 09:52
源文件如下,通过修改dmesg文件,借用klogctl接口将LOG保存到文件中。
使用方法:
1 拷贝该文件到/system/core/toolbox目录,覆盖掉原文件。
2 编译
make /system/core/toolbox
3 将生成的二进制文件out/target/product/iXXXXXX/system/bin/toolbox 拷贝到手机内部
adb push out/target/product/iXXXXXX/system/bin/toolbox /system/bin/toolbox
4 然后在手机shell中,调用dmesg,将保存LOG文件到log_eric.txt中。
1 拷贝该文件到/system/core/toolbox目录,覆盖掉原文件。
2 编译
make /system/core/toolbox
3 将生成的二进制文件out/target/product/iXXXXXX/system/bin/toolbox 拷贝到手机内部
adb push out/target/product/iXXXXXX/system/bin/toolbox /system/bin/toolbox
4 然后在手机shell中,调用dmesg,将保存LOG文件到log_eric.txt中。
adb shell
cd /data/
dmesg
将会生成/data/log_eric.txt
1 拷贝该文件到/system/core/toolbox目录,覆盖掉原文件。
2 编译
make /system/core/toolbox
3 将生成的二进制文件out/target/product/iXXXXXX/system/bin/toolbox 拷贝到手机内部
adb push out/target/product/iXXXXXX/system/bin/toolbox /system/bin/toolbox
4 然后在手机shell中,调用dmesg,将保存LOG文件到log_eric.txt中。
adb shell
cd /data/
dmesg
将会生成/data/log_eric.txt
1 拷贝该文件到/system/core/toolbox目录,覆盖掉原文件。
2 编译
make /system/core/toolbox
3 将生成的二进制文件out/target/product/iXXXXXX/system/bin/toolbox 拷贝到手机内部
adb push out/target/product/iXXXXXX/system/bin/toolbox /system/bin/toolbox
4 然后在手机shell中,调用dmesg,将保存LOG文件到log_eric.txt中。
adb shell
cd /data/
dmesg
将会生成/data/log_eric.txt
adb shell
cd /data/
dmesg
将会生成/data/log_eric.txt
#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <errno.h>#include <sys/klog.h>#include <string.h>#define FALLBACK_KLOG_BUF_SHIFT 17 /* CONFIG_LOG_BUF_SHIFT from our kernel */#define FALLBACK_KLOG_BUF_LEN (1 << FALLBACK_KLOG_BUF_SHIFT)#define KLOG_CLOSE 0#define KLOG_OPEN 1#define KLOG_READ 2#define KLOG_READ_ALL 3#define KLOG_READ_CLEAR 4#define KLOG_CLEAR 5#define KLOG_CONSOLE_OFF 6#define KLOG_CONSOLE_ON 7#define KLOG_CONSOLE_LEVEL 8#define KLOG_SIZE_UNREAD 9#define KLOG_SIZE_BUFFER 10int main(int argc, char **argv){ char *buffer; char *p; ssize_t ret; int n, op, klog_buf_len; FILE *fp = fopen("log_eric.txt","wa"); if(fp == NULL){ printf("Eric Open File Failed!!!\n"); return EXIT_FAILURE; } klog_buf_len = klogctl(KLOG_SIZE_BUFFER , 0, 0); if (klog_buf_len <= 0) { klog_buf_len = FALLBACK_KLOG_BUF_LEN; } buffer = (char *)malloc(klog_buf_len + 1); if (!buffer) { perror("malloc"); return EXIT_FAILURE; } p = buffer; if((argc == 2) && (!strcmp(argv[1],"-c"))) { op = KLOG_READ_CLEAR; } else { op = KLOG_READ_ALL; } n = klogctl(op, buffer, klog_buf_len); if (n < 0) { perror("klogctl"); return EXIT_FAILURE; } buffer[n] = '\0'; fwrite(p,n,1,fp);#ifdef DISPLAY_KLOG while((ret = write(STDOUT_FILENO, p, n))) { if (ret == -1) { if (errno == EINTR) continue; perror("write"); return EXIT_FAILURE; } p += ret; n -= ret; }#endif fflush(fp); fclose(fp); return 0;}
- 使用klogctl接口离线保存android kernel log
- Android 离线log 保存工具类
- android LOG接口使用
- android查看kernel log
- Android kernel log获取
- android查看kernel log
- android查看kernel log
- Kernel panic时log的保存
- qcom 平台 Kernel Panic log 的保存
- 编译能自动保存 logcat 和kernel log 的android镜像
- Android中抓取kernel log
- android kernel 添加时间log
- android log丢失(二)使用and4.4log kernel机制
- android log丢失(二)使用and4.4log kernel机制
- Android 使用log4j 保存log日志信息至sdcard中
- kernel log 的保存位置,可以保存offline log到T卡中
- Android log到保存文件
- User space程序读取kernel log 并保存
- Move
- 第七讲 项目3 输入时间求周工资
- apache配置文件:http.conf配置详解
- 一个合格的程序员应该读过哪些书
- Java IO流之字符流框架图
- 使用klogctl接口离线保存android kernel log
- 括号,加减,乘除的编译原理
- “Rotate sorted array”系列问题
- Android中的单元测试
- More Effective C++----(14)审慎使用异常规格(exception specifications)
- php中mysql常用函数
- Android LayoutInflater详解
- 求最大值的程序解读
- 计算数字出现的次数