Cross compiling is always a PITA, so here goes:
1 2 3 4 5 6 7 8 9 10 11 12 13
| AR=arm-linux-androideabi-ar OLDPWD=/home/transfusion/android-bash/fileutil LD_LIBRARY_PATH=/home/transfusion/android-ndk-r9c/platforms/android-18/arch-arm/usr/lib/ PATH=/home/transfusion/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games LD=arm-linux-androideabi-ld PWD=/home/transfusion/android-bash/fileutil/bin STRIP=arm-linux-androideabi-strip --strip-unneeded CXX=arm-linux-androideabi-g++ CFLAGS=-L/home/transfusion/android-ndk-r9c/platforms/android-18/arch-arm/usr/lib/ --sysroot=/home/transfusion/android-ndk-r9c/platforms/android-18/arch-arm/ -I/home/transfusion/android-ndk-r9c/platforms/android-18/arch-arm/usr/include/ RANLIB=arm-linux-androideabi-ranlib ANDROID_NDK=/home/transfusion/android-ndk-r9c CC=arm-linux-androideabi-gcc READELF=arm-linux-androideabi-readelf
|
I have android-ndk-r9c extracted to my home directory.
1 2 3 4 5 6
| cd file-5.11 cd src ln -s $ANDROID_NDK/platforms/android-19/arch-arm/usr/lib/crtend_so.o ln -s $ANDROID_NDK/platforms/android-19/arch-arm/usr/lib/crtbegin_so.o ./configure --prefix=/home/transfusion/file-android-build --host=arm-linux ---datarootdir=/system/share make && make install
|
See https://stackoverflow.com/questions/6881164/crtbegin-so-o-missing-for-android-toolchain-custom-build as to why those two files need to be linked. The magic.mgc file is going to be placed in /system/share/misc/magic on the device. Copy all the files into /system on the device, and create the symlink to libmagic.so in /system/lib if it hasn’t been created
1 2
| cd /system/lib ln -s libmagic.so.1.0.0 libmagic.so.1
|
If all works well,
1 2
| $ file /system/bin/file /system/bin/file: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
|