libpcap & Tcpdump :
برای شروع میخوایم libpcap , Tcpdump رو برای آندروید کامپایل کنیم
سیستم عامل من Ubuntu 14 هست و از قبل arm-linux-gnueabi-gcc رو نصب کردم
ابتدا از لینک http://www.tcpdump.org/ سورس libpcap , tcpdump رو دانلود کرده و اکسترکت میکنیم
tar zxvf libpcap-1.6.1.tar.gz
حالا باید کانفیگ اونو برای ARM آماده کنیم
./configure --host=arm-linux-gnueabi --with-pcap=linux
checking build system type... x86_64-unknown-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking target system type... arm-unknown-linux-gnu
checking for arm-linux-gcc... arm-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
..........
حالا با Make فایل libpcap.a میسازیم
$make
arm-linux-gnueabi-gcc -fpic -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -g -O2 -c ./pcap-linux.c
arm-linux-gnueabi-gcc -fpic -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -g -O2 -c ./pcap-usb-linux.c
arm-linux-gnueabi-gcc -fpic -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -g -O2 -c ./pcap-can-linux.c
..........
حالا با این کد میتونیم از صحت کامپایل برای ARM مطمئن بشیم
$ /usr/bin/arm-linux-gnueabi-readelf -h ./libpcap.a | grep -i 'class\|machine'
Class: ELF32
Machine: ARM
حالا باید Tcpdump رو کامپایل کنیم
$ tar zxvf tcpdump-4.6.1.tar.gz
$ cd tcpdump-4.6.1
چون تو آندروید shared libraries نصب نیست باید بوسیله کد های زیر تو یک فایل کل برنامه کامپایل بشه
[CODE]
$ export CFLAGS=-static
$ export CPPFLAGS=-static
$ export LDFLAGS=-static
حالا کانفیگ برای ARM :
./configure --host=arm-linux-gnueabi
$ make
اینم برای تست فایل اجرایی
$ file tcpdump
tcpdump: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, BuildID[sha1]=5a7f6e82ddc0c7530856dd8f5684ccea0dbe9d12, not stripped
اینم برای کاهش حجم فایل کامپایل شده :
arm-linux-gnueabi-strip tcpdump
حالا برای اجرا باید در مسیر /system/xbin تو گوشیتون بریزید و از خط فرمان اجرا کنید
موفق باشید