自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (7)
  • 收藏
  • 关注

原创 unix编程(五)信号

信号,用于通知进程发生了什么。函数signal处理信号的函数,可以选择SIG_DEF,默认 SIG_IGN忽略此信号子进程终止如果子进程终止,父进程不处理会导致子进程关闭的信号SIGCLD成为一个僵尸进程。但是如果选择SIG_IGN忽略这个信号就不会。kill函数只是给进程发送信号而已,不要从字面意思以为是kill进程raise函数给

2016-04-29 16:28:33 537

原创 unix编程(四)进程控制

fork函数fork创建子进程,子进程是父进程的副本,会得到父进程数据空间、堆、栈的副本。然后文件的共享这块也比较复杂,父进程和子进程各自都有文件描述符表,但是文件表示公用的(而一般两个进程,文件表是每个进程独有的),也就是说文件的偏移量是一致。一个文件在父进程中打开,在子进程中也会被打开一遍,因此如果在子进程中不使用这个文件,先要close这个文件。vfork函数

2016-04-27 08:55:18 454

转载 linux:SUID、SGID详解

如果你对SUID、SGID仍有迷惑可以好好参考一下!转载地址:http://www.cnblogs.com/fhefh/archive/2011/09/20/2182155.html由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详

2016-04-26 10:30:20 4249

原创 unix编程(三)进程环境

main函数 当内核执行c程序时,使用一个exec函数,在调用main函数之前先调用了一个特殊的启动例程。这个例程为程序的起始地址。启动例程从内核中取得命令行参数和环境变量值。启动例程调用了main函数,然后退出。启动例程的代码一般用汇编,但是用c代码表示的话就是如下意思:代码可以理解为:exit(main(argc,argc));退出函数:exit_Exit_

2016-04-23 09:28:25 541

原创 fflush和fsync的区别

1.fflush函数和fsync函数fflush接受一个参数FILE *.fflush(FILE *);fflush是libc.a中提供的方法,是用来将流中未写的数据传送到内核。如果参数为null,将导致所有流冲洗。fsync接受的时一个Int型的文件描述符。fsync(int fd);fsync是系统提供的系统调用。将数据写到磁盘上2.功能区别

2016-04-22 14:22:28 1037

原创 unix编程(二)文件和目录

stat函数 lstat函数这两个函数都是统计文件信息,区别是当文件时符号链接的时候stat统计的是符号链接的文件,而lstat统计的是符号链接本身。统计文件得到的数据类型是stat结构体,其中有一个mode_t是文件类型,我们可以通过宏比如:S_ISREG()代表普通文件 S_ISDIR():目录文件等文件访问权限在上一章create函数最后有一个mode参数,可以指定文

2016-04-21 18:35:24 579

原创 unix编程(一)文件I/O

文件描述符0,1,2对应STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO三个标准输入,输出,出错open函数#include int open(const char* path, int oflag, ...)'path就是文件名字oflag参数首先必须5项选1:O_RDONLY只读  O_RDONLY只写 O_RDWR读写 O_

2016-04-20 17:42:00 621

转载 linux文件系统 dup dup2函数

Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同的文件系统格式之上

2016-04-20 16:11:16 651

原创 android dumpsys实时查看各service状态

我们先来看下有哪些service可以看dump先进入adb shell , dumpsys | grep "DUMP OF SERVICE"就可以看哪些service可以dumpdumpsys | grep "DUMP OF SERVICE"DUMP OF SERVICE DockObserver:DUMP OF SERVICE SurfaceFlinger:DUMP OF SERV

2016-04-15 11:03:51 12512

原创 android6.0 adbd深入分析(五)adbd处理adb root的一个bug

在之前博客中我们分析了很多adbd的代码,也分析了adb root的代码流程,这篇博客我们说下adb root的一个bug。一、问题我们先来回顾下adbd处理adb root的代码:void restart_root_service(int fd, void *cookie) { if (getuid() == 0) { WriteFdExactly(f

2016-04-14 16:32:39 7343

原创 android6.0 adbd深入分析(四)adbd usb线拔掉再连接的过程

这篇博客我们主要分析下adbd在usb线拔掉,然后再连接的代码流程。一、log打印流程我们先来看下自己调试的代码打印:由于显示的问题,我把log的时间去除了,只显示了pid 和tid//拔去usb线185 188 I adbd : output_thread:(null): remote read failed for transport185 188 I

2016-04-14 16:14:10 5682 1

原创 android中c文件log做宏打印

android有时候我们需要在c文件中,自己定义打印的格式,那我们可以使用宏,下面我举个在adbd中自己打印的log宏#if !ADB_HOST# define LOG(...) \ do { \ __andro

2016-04-14 10:25:31 1587

原创 android6.0 adbd深入分析(三)adb root重启adbd流程

上篇博客中分析过adb root pc到adbd的流程,这篇博客我们再来讲下adb root是adbd重启并且获取root的流程。我们再来回顾之前的函数:void restart_root_service(int fd, void *cookie) { if (getuid() == 0) {//uid为0,说明已经是root了 WriteFdExactly(fd, "

2016-04-13 11:14:53 10669 3

原创 android6.0 adbd深入分析(二)adb驱动数据的处理、写数据到adb驱动节点

上篇博客最后讲到在output_thread中,读取了adb驱动的数据后,就调用write_packet(t->fd, t->serial, &p)函数,把数据网socketpair的一侧写。这会导致socketpair的另一侧有数据,另一侧有数据会调用transport_socket_events函数来处理数据。一、处理驱动读取的数据我们现在来看看transport_

2016-04-12 19:00:37 7497 4

原创 android6.0 adbd深入分析(一)adb驱动初始化、读取adb节点线程

adbd之前看过一次,觉得代码太复杂然后,又是adb client  adb server adbd交织在一起感觉看起来太累,最近项目需要把它大致看完了,梳理下,感觉从adbd能学到很多东西,在此总结下,adbd的代码。我只分析我看懂了,不可能面面俱到。而且主要注重在通信方面,以及一些命令处理等。一、adb主函数我们先来看下主函数:int main(int argc, char *

2016-04-12 16:12:34 9429 3

原创 android分析手机唤醒源

一、唤醒源我们可以先从kernel的log看唤醒源: Line 1591: [ 234.245434]{0} exit comip suspend by modem 0x00000004|0x00000000|0x00000000|0x00000000 Line 1621: [ 235.766679]{0} exit comip suspend by modem 0x0000000

2016-04-07 16:02:26 5449

原创 android 6.0 logcat机制(三)logd处理请求log

一、logd LogReader监听logdr socket在logd的main函数中会有一个监听logdr socket的LogReader类我们来看下main函数的源码 LogReader *reader = new LogReader(logBuf); if (reader->startListener()) { exit(1); }再来

2016-04-06 19:39:04 8695

原创 android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中

一、设置保存log文件的路径在手机刚开机的时候,会有类似如下命令执行/system/bin/logcat -r 5120 -v threadtime -v usec -v printable -n 5 -f /data/local/log/logcat.log/system/bin/logcat -r 5120 -v threadtime -v usec -v printabl

2016-04-06 18:45:56 14138 6

原创 android 6.0 logcat机制(一)java层写log,logd接受log

一、logcat常用命令  logcat -c 清除已有log信息  logcat -b main 显示主缓冲区的log logcat -b radio 显示无线缓冲区的log logcat -b events 显示事件缓冲区的log  logcat -f [filename] 将log保存到指定的文件中,例如logcat -b radio -f /data/rad

2016-04-06 15:26:39 9679

原创 按键精灵代码 自动

Form1.showEvent Form1.Button1.ClickForm1.Inputup.Enabled = FalseForm1.InputEnter.Enabled = FalseForm1.Button1.Enabled = Falsee= BeginThread (main ())End EventEvent Form1.Button2.ClickStopTh

2016-04-04 11:58:30 4337

原创 按键精灵 代码

//软件有效期MyYear = Year(Date)MyMonth = Month(Date)configYear = 2016configMonth = 3If MyYear > configYear Then Msgbox "软件过期了!!"ExitScript  End IfIf MyMonth > configMo

2016-04-04 11:57:27 1785

android ART原理介绍

android ART原理介绍

2017-01-05

android关机时间慢

android关机时间慢

2017-01-05

selinux问题

selinux问题

2017-01-05

Android AlarmManager

Android AlarmManager

2017-01-05

跟我一起写makefile

跟我一起写makefile

2016-07-15

opencv 保存录像

opencv中用来保存摄像头录的录像,c++语言摄像头播放录像

2011-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除