增加将log信息存入/data/中的功能
来源:互联网 发布:linux 命令行浏览器 编辑:程序博客网 时间:2024/06/14 17:06
增加将log信息存入/data/中的功能
1源码在system/extras/test/rec-kmsg/main.c
2修改system/extras/test/rec-kmsg/Android.mk
将LOCAL_MODULE_TAGS := optional
修改为LOCAL_MODULE_TAGS := optional eng
因为前者生成的文件rec-kmsg只存于out/target/product/ msm8660_surf/symbols/system中,加了eng之后,还存于out/target/product/ msm8660_surf/system中。
LOCAL_MODULE_TAGS用于指定编译android时形成的版本风格
3修改system/core/rootdir/init.rc
加入:
service rec-kmsg /system/xbin/rec-kmsg
class main
user root
则在系统启动时,自动运行rec-kmsg。
1 #include <stdio.h> 2 #include <unistd.h> 3 #include <fcntl.h> 4 #include <linux/ioctl.h> 5 #include <time.h> 6 #include <linux/msm_audio.h> 7 #include <pthread.h> 8 #include <sys/ioctl.h> 9 #include <string.h> 10 #include <stdlib.h> 11 #include <unistd.h> 12 #include <stdint.h> 13 14 #define CAT_BUFSIZ (4096) 15 16 static void raw_cat(void) 17 { 18 time_t now_t = time(NULL); 19 struct tm now = *localtime(&now_t); 20 char date[32]; 21 char logcat[32]; 22 char command[256]; 23 static char *buf; 24 static char fb_buf[CAT_BUFSIZ]; 25 static size_t bsize; 26 ssize_t nr, nw, off; 27 int wfd, rfd; 28 29 /* Get day time as file name */ 30 strftime(date, 32, "/data/%Y%m%d-%H-%M-%S-kmsg", &now); 31 strftime(logcat, 32, "/data/%Y%m%d-%H-%M-%S-logcat", &now); 32 date[31] = 0; 33 logcat[31] = 0; 34 printf("%s\n", date); 35 snprintf(command, 256, "/system/bin/logcat -b main -b system -b events -b radio -v time *:v > %s&", logcat); 36 37 system(command); 38 39 /* Read fd */ 40 rfd = open("/proc/kmsg", O_RDONLY); 41 //printf("rfd = %d\n", rfd); 42 43 /* Write fd */ 44 wfd = open(date, O_RDWR|O_CREAT); 45 //wfd = open("/data/kmsg", O_RDWR|O_CREAT); 46 //printf("wfd = %d\n", wfd); 47 48 if (buf == NULL) { 49 buf = fb_buf; 50 bsize = CAT_BUFSIZ; 51 } 52 53 while ((nr = read(rfd, buf, bsize)) > 0) 54 for (off = 0; nr; nr -= nw, off += nw) 55 if ((nw = write(wfd, buf + off, (size_t)nr)) < 0) 56 { 57 perror("write"); 58 exit(EXIT_FAILURE); 59 } 60 } 61 62 int main(int argc, char **argv) 63 { 64 raw_cat(); 65 return 0; 66 }
system/extras/tests/rec-kmsg/Android.mk
1 ifneq ($(TARGET_SIMULATOR),true) 2 ifeq ($(TARGET_PRODUCT),msm8660_surf) 3 LOCAL_PATH:= $(call my-dir) 4 include $(CLEAR_VARS) 5 LOCAL_SRC_FILES := \ 6 main.c 7 LOCAL_MODULE := rec-kmsg 8 LOCAL_MODULE_TAGS := optional 9 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) 10 include $(BUILD_EXECUTABLE) 11 endif # TARGET_PRODUCT == msm8660_surf 12 endif # TARGET_SIMULATOR != true~
- 增加将log信息存入/data/中的功能
- PHP如何将log信息写入服务器中的log文件
- 用java将html网页中的文本信息存入txt文件?
- 将非文本信息存入xml
- MYSQL存储过程在XML文本信息中读取数据节点信息,将节点中的数据存入数据库
- 将webservice中的数据存入datatable中
- 将DataGridview中的数据存入数据库
- 将文本文件中的数据存入数据库
- 修改SVN中的Log信息
- 修改SVN中的Log信息
- 使用python将得到whois信息,存入数据库(分片法)
- adb 查看log信息中的 Tag 信息
- Android将应用log信息保存文件
- Android将应用log信息保存文件
- Android将应用log信息保存文件
- Android将应用log信息保存文件
- Android将应用log信息保存文件
- Android将应用log信息保存文件
- 11 csdn java 课堂总结
- 我的第一个WPF程序(最终版!)
- 1003
- fileupload
- Oracle 用户 对 表空间 配额(quota )
- 增加将log信息存入/data/中的功能
- 内核模块学习--编译自己的第一个内核模块hello_module
- 异步操作之异步通知编程
- jQuery插件autoComplete介绍(10级学员 张帅鹏总结)
- Linux 进程间通信之消息队列的几点注意事项
- 新浪微博开发之保存授权信息
- 机器学习10大经典算法
- 将RSS转成json
- VS2010配置DirectShow(Win7系统)