在android系统中编译运行tcpdump有两个方法,一个是直接在android系统中进行源码编译;另一个是在x86系统上进行交叉编译,然后将编译生成的二进制文件复制到android系统中。本文采用第二种方法。

先编译libpcap,下载地址如下,其实是和tcpdump在同一页面上的:

http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz

将下载得到的tcpdump和libpcap解压后放在同一个文件夹中。

先到libpcap文件夹中,执行如下编译安装命令

(可能需要安装flex,命令:yum install flex bison)

#./configure --prefix=/root/androidtcpdump/tools --host=arm-linux --target=arm-linux CC=arm-none-linux-gnueabi-gcc --with-pcap=linux

make && make install

接着编译tcpdump

./configure --prefix=/root/androidtcpdump/tools --host=arm-linux --target=arm-linux CC=arm-none-linux-gnueabi-gcc

make && make install

编译完成后会在~/androidtcpdump/tools/sbin目录下找到独立的可执行文件tcpdump

注意编译两者时需要指定相同的目录, 否则在编译tcpdump时需要指定libpcap的路径

如果是动态编译,文件放到android系统后就会显示tcpdump: No such file or directory。需要静态编译,在Makefile中加入-static参数。

然后就可以抓包了。

1.1.1.1  编译netstat

关于netstat的源码包和常规编译,参考:

netstat工具源码剖析——网络诊断必备

修改makefile文件,

将CC修改为如下:

CC      = arm-none-linux-gnueabi-gcc

增加-static参数,如下

netstat:        $(NET_LIB) netstat.o statistics.o

$(CC) -static $(LDFLAGS) -o netstat netstat.o statistics.o $(NLIB) $(RESLIB)

如果缺少if_strip.h和if_tc.h文件,可以将/usr/include/linux/if_strip.h路径上的文件复制到源码中的include中,然后将lib/tr.c和lib/strip.c中的头文件包含改成

//#include <linux/if_strip.h>

#include <if_strip.h>

…..

//#include <linux/if_tr.h>

#include <if_tr.h>

#make netstat来完成编译即可。

1.1.1.2  移植gdb

源码下载地址:https://www.gnu.org/software/gdb/download/

或者:https://ftp.gnu.org/gnu/gdb/

下载解压后,进行编译

./configure --prefix=/root/androidtcpdump/tools --host=arm-linux --target=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc AS=arm-none-linux-gnueabi-as AR=arm-none-linux-gnueabi-ar CXX=arm-none-linux-gnueabi-g++ LDFLAGS="-static"

然后执行:make && make install,会在/root/androidtcpdump/tools/bin文件夹中生产二进制文件,直接复制到android系统中就可以使用。

tcpdump源码分析(3)——android系统移植(tcpdump,gdb,netstat)相关推荐

  1. 【Android源码分析】Android系统关键服务启动简析

    一.关于Android系统重要的进程 (1).init进程:init进程是Linux内核启动完成之后,启动的第一个用户进程,Android系统就是在这个进程的基础上启动起来的,进程pid为1.init ...

  2. 从源码角度看Android系统SystemServer进程启动过程

    SystemServer进程是由Zygote进程fork生成,进程名为system_server,主要用于创建系统服务. 备注:本文将结合Android8.0的源码看SystemServer进程的启动 ...

  3. 从源码角度看Android系统Zygote进程启动过程

    在Android系统中,DVM.ART.应用程序进程和SystemServer进程都是由Zygote进程创建的,因此Zygote又称为"孵化器".它是通过fork的形式来创建应用程 ...

  4. 从源码角度看Android系统Launcher在开机时的启动过程

    Launcher是Android所有应用的入口,用来显示系统中已经安装的应用程序图标. Launcher本身也是一个App,一个提供桌面显示的App,但它与普通App有如下不同: Launcher是所 ...

  5. AOSP源码分析:Android Input事件的产生、读取和分发

    大家好,今天为大家推荐来自MIUI的Cheeeelok同学的AOSP源码分析系列文章,本文依然从源码的角度带大家理解Android Input事件的产生.读取和分发.还没有看过作者上一篇文章 Andr ...

  6. [Abp vNext 源码分析] - 2. 模块系统的变化

    一.简要说明 本篇文章主要分析 Abp vNext 当中的模块系统,从类型构造层面上来看,Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块,它现在则是 I ...

  7. 【源码分析】Android触摸事件的分发拦截

    Android中View的分发拦截机制是一块重要的内容,网上也有很多大神进行过相关的分析. 在这篇文章里我将以自己的理解尽量全面地分析整个流程,有些分析结果是很多文章没有提及的. 整个分析过程将通过d ...

  8. 云客Drupal源码分析之配置系统Configuration(一)

    各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal8底层原理,并缩短学习时间,但自<插件系统(上)>主题开始 ...

  9. 云客Drupal源码分析之插件系统(下)

    以下内容仅是一个预览,完整内容请见文尾: 至此本系列对插件的介绍全部完成,涵盖了系统插件的所有知识 全文目录(全文10476字): 实例化插件 插件映射Plugin mapping 插件上下文   具 ...

  10. 云客Drupal源码分析之插件系统(上)

    各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal底层原理,并缩短学习时间,但自<插件系统(上)>主题开始博 ...

最新文章

  1. 双系统安装的流程记录
  2. 2018年视频云服务市场格局进入整合阶段,阿里云视频云位居市场竞争力领导者的位置...
  3. 浅说Java中的反射机制(一)
  4. python线下培训-北京哪里有Python线下培训辅导班
  5. 学习笔记:UINavigationbar的背景修改方法集合
  6. 中商惠民签约神策数据 致力为客户提供最优服务模式
  7. 电脑机箱cad图纸_如何批量打印高清黑白CAD图纸?这么好用的方法现在才知道
  8. 【redis3在linux安装与基本操作】
  9. 【BZOJ4108】[Wf2015]Catering 有上下界费用流
  10. android 动态改变语言,android动态设置app当前运行语言的方法
  11. android伸缩动画,Android 伸缩动画xml配置
  12. kali linux nmap命令的使用
  13. linux shell题库,shell习题-30
  14. 网易mumu模拟器怎么清理缓存?
  15. 你好,我是计算机组成原理(计算机组成原理1)
  16. 一物一码溯源防伪系统
  17. Pyhon在振动信号处理中的高级应用(十一):监督式特征的选择方法(F_Score、Chi-square Score、mRMR)
  18. R语言缺失值判断与处理-2
  19. 世界上究竟有多少种云计算?这其实是个伪命题
  20. 情人节来了,要不要去当舔狗

热门文章

  1. Atitit uuid 的概念与实现与最佳实践总结 目录 1. 概念与组成 1 1.1. 在空间(Space)与时间(Time)上的唯一性 1 1.2. UUID 1 1.3. 组成 2 1.3.1
  2. Atitit 图像指纹识别匹配sift算法 atlks总结
  3. Atitit  记录方法调用参数上下文arguments
  4. paip.多维理念 输入法的外码输入理论跟文字输出类型精髓
  5. paip. lbmall V3.1.1 乐彼多用户商城系统的安全漏洞总结
  6. Julia : |>的用法及多参数下的使用
  7. (转)每个人都应该读一读贝索斯的致股东信 1997-2016
  8. 从毛坯房到精装修,阿里云企业IT治理样板间助力云上管控和治理
  9. 【优化算法】社会群体优化算法(SGO)【含Matlab源码 1449期】
  10. 【空瓶识别】基于matlab灰度+二值化空瓶检测【含Matlab源码 806期】