سلام به همه دوستان
قصد داریم در این تاپیک نحوه کامپایل نرم افزار هایی که بیشتر به زبان C++ نوشته شدن برای آندروید کامپایل کنیم
لطفا دوستانی که در این ضمینه تجربه ای دارند دریغ ننمایند
Printable View
سلام به همه دوستان
قصد داریم در این تاپیک نحوه کامپایل نرم افزار هایی که بیشتر به زبان C++ نوشته شدن برای آندروید کامپایل کنیم
لطفا دوستانی که در این ضمینه تجربه ای دارند دریغ ننمایند
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 تو گوشیتون بریزید و از خط فرمان اجرا کنید
موفق باشید
اینم لینک کامپابل خودم
http://www.mediafire.com/view/bkseb06ogtcn14a/tcpdump