环境:
主机: windows 10 ,64位
VMware: Workstation Pro 15
子系统: ubuntu 18.04.6, 64位
下载交叉编译包:
交叉编译器: arm-linux-androideabi-4.6.tar.bz2
新建目录/homt/biren/gccarm
将包文件复制到此目录里
新建版本文件夹4.6
(/mnt/hgfs/tmpWin是虚拟机共享文件挂载点)
解压包文件到4.6里
biren@ubuntu:~$ mkdir gccarm
biren@ubuntu:~$ cp /mnt/hgfs/tmpWin/arm-linux-androideabi-4.6.tar.bz2 ./gccarm/
biren@ubuntu:~$ cd gccarm/
biren@ubuntu:~/gccarm$ mkdir 4.6
biren@ubuntu:~/gccarm$ tar -jxf arm-linux-androideabi-4.6.tar.bz2 -C ./4.6
biren@ubuntu:~/gccarm$ cd 4.6/
biren@ubuntu:~/gccarm/4.6$ ll
总用量 12
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ./
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ../
drwxr-xr-x 9 biren biren 4096 12月 6 2012 arm-linux-androideabi-4.6/
biren@ubuntu:~/gccarm/4.6$ mv arm-linux-androideabi-4.6/* ./
biren@ubuntu:~/gccarm/4.6$ ll
总用量 92
drwxrwxr-x 10 biren biren 4096 3月 30 21:46 ./
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ../
drwxr-xr-x 4 biren biren 4096 10月 15 2012 arm-linux-androideabi/
drwxr-xr-x 2 biren biren 4096 3月 30 21:46 arm-linux-androideabi-4.6/
drwxr-xr-x 2 biren biren 4096 10月 15 2012 bin/
-rw-r--r-- 1 biren biren 18002 10月 15 2012 COPYING
-rw-r--r-- 1 biren biren 26527 10月 15 2012 COPYING.LIB
drwxr-xr-x 3 biren biren 4096 12月 6 2012 include/
drwxr-xr-x 3 biren biren 4096 10月 15 2012 lib/
drwxr-xr-x 2 biren biren 4096 10月 15 2012 lib32/
drwxr-xr-x 3 biren biren 4096 10月 15 2012 libexec/
-rw-r--r-- 1 biren biren 1116 10月 15 2012 SOURCES
drwxr-xr-x 3 biren biren 4096 12月 6 2012 sysroot/
biren@ubuntu:~/gccarm/4.6$ rm -rf arm-linux-androideabi-4.6
配置交叉编译环境:
主要是设置path
biren@ubuntu:~$ export GCCARM46=/home/biren/gccarm/4.6
biren@ubuntu:~$ export PATH=$PATH:$GCCARM46:$GCCARM46/bin:$GCCARM46/libexec/gcc/arm-linux-androideabi/4.6:$GCCARM46/arm-linux-androideabi/bin
biren@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/biren/gccarm/4.6:/home/biren/gccarm/4.6/bin:/home/biren/gccarm/4.6/libexec/gcc/arm-linux-androideabi/4.6:/home/biren/gccarm/4.6/arm-linux-androideabi/bin
arm-linux-androideabi-gcc -v查看版本:
出现如下问题(之一):
- 没有那个文件或目录
- No such file or directory
- cannot execute binary file: Exec format error
biren@ubuntu:~/gccarm/4.6$ ./bin/arm-linux-androideabi-gcc -v
bash: ./bin/arm-linux-androideabi-gcc: 没有那个文件或目录
原因:是缺乏32位的支持包
解决上面问题:
下载并安装2个包:lib32ncurses5-dev,lib32z1
命令:
sudo apt-get install lib32ncurses5-dev
sudo apt-get install lib32z1
biren@ubuntu:~/gccarm/4.6$ sudo apt-get install lib32ncurses5-dev
[sudo] biren 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
gcc gcc-7 gcc-7-multilib gcc-multilib lib32asan4 lib32atomic1 lib32cilkrts5
lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32ncurses5 lib32quadmath0
lib32stdc++6 lib32tinfo-dev lib32tinfo5 lib32ubsan0 libasan4 libatomic1 libc-dev-bin
libc6 libc6-dbg libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32
libcilkrts5 libgcc-7-dev libitm1 liblsan0 libmpx2 libncurses5-dev libquadmath0
libtinfo-dev libtsan0 libubsan0 libx32asan4 libx32atomic1 libx32cilkrts5
libx32gcc-7-dev libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++6
libx32ubsan0 linux-libc-dev manpages-dev
建议安装:
make autoconf automake libtool flex bison gcc-doc gcc-7-doc gcc-7-locales
libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg
libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg ncurses-doc
glibc-doc
下列【新】软件包将被安装:
gcc gcc-7 gcc-7-multilib gcc-multilib lib32asan4 lib32atomic1 lib32cilkrts5
lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32ncurses5
lib32ncurses5-dev lib32quadmath0 lib32stdc++6 lib32tinfo-dev lib32tinfo5 lib32ubsan0
libasan4 libatomic1 libc-dev-bin libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386
libc6-x32 libcilkrts5 libgcc-7-dev libitm1 liblsan0 libmpx2 libncurses5-dev
libquadmath0 libtinfo-dev libtsan0 libubsan0 libx32asan4 libx32atomic1
libx32cilkrts5 libx32gcc-7-dev libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0
libx32stdc++6 libx32ubsan0 linux-libc-dev manpages-dev
下列软件包将被升级:
libc6 libc6-dbg
升级了 2 个软件包,新安装了 49 个软件包,要卸载 0 个软件包,有 148 个软件包未被升级。
需要下载 43.5 MB 的归档。
解压缩后会消耗 153 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dbg amd64 2.27-3ubuntu1.5 [5,163 kB]
......
再次检查交叉编译环境:
记住这个前缀:arm-linux-androideabi- 后面会用到
biren@ubuntu:~/gccarm/4.6/bin$ ll
总用量 27476
-rwxr-xr-x 1 biren biren 693184 10月 15 2012 arm-linux-androideabi-addr2line*
-rwxr-xr-x 2 biren biren 721540 10月 15 2012 arm-linux-androideabi-ar*
-rwxr-xr-x 2 biren biren 1249860 10月 15 2012 arm-linux-androideabi-as*
-rwxr-xr-x 2 biren biren 327200 10月 15 2012 arm-linux-androideabi-c++*
-rwxr-xr-x 1 biren biren 691680 10月 15 2012 arm-linux-androideabi-c++filt*
-rwxr-xr-x 1 biren biren 323104 10月 15 2012 arm-linux-androideabi-cpp*
-rwxr-xr-x 1 biren biren 23236 10月 15 2012 arm-linux-androideabi-elfedit*
-rwxr-xr-x 2 biren biren 327200 10月 15 2012 arm-linux-androideabi-g++*
-rwxr-xr-x 2 biren biren 323104 10月 15 2012 arm-linux-androideabi-gcc*
.......
版本:gcc version 4.6,显示版本正常说明配置基本没问题了
biren@ubuntu:~/gccarm/4.6/bin$ ./arm-linux-androideabi-gcc -v
Using built-in specs.
COLLECT_GCC=./arm-linux-androideabi-gcc
COLLECT_LTO_WRAPPER=/home/biren/gccarm/4.6/bin/../libexec/gcc/arm-linux-androideabi/4.6/lto-wrapper
Target: arm-linux-androideabi
Configured with: /usr/local/google/home/andrewhsieh/ndk-andrewhsieh/src/build/../gcc/gcc-4.6/configure --prefix=/tmp/ndk-andrewhsieh/build/toolchain/prefix --target=arm-linux-androideabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/tmp/ndk-andrewhsieh/build/toolchain/temp-install --with-mpfr=/tmp/ndk-andrewhsieh/build/toolchain/temp-install --with-mpc=/tmp/ndk-andrewhsieh/build/toolchain/temp-install --without-ppl --without-cloog --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --enable-initfini-array --disable-nls --prefix=/tmp/ndk-andrewhsieh/build/toolchain/prefix --with-sysroot=/tmp/ndk-andrewhsieh/build/toolchain/prefix/sysroot --with-binutils-version=2.21 --with-mpfr-version=2.4.1 --with-mpc-version=0.8.1 --with-gmp-version=5.0.5 --with-gcc-version=4.6 --with-gdb-version=7.3.x --with-gxx-include-dir=/tmp/ndk-andrewhsieh/build/toolchain/prefix/include/c++/4.6 --disable-bootstrap --disable-libquadmath --disable-plugin --enable-gold --with-arch=armv5te --program-transform-name='s&^&arm-linux-androideabi-&' --enable-gold=default
Thread model: posix
gcc version 4.6 20120106 (prerelease) (GCC)
下载file命令的源码文件:
下载地址:
- ftp://ftp.astron.com/pub/file
我的android是5.0版本的,就下载了file-5.08.tar.gz
在ubuntu里解压源码文件:
解压到/home/biren/filecmd
命令:tar -zxf /mnt/hgfs/tmpWin/linux-file-command/file-5.08.tar.gz -C /home/biren/filecmd
biren@ubuntu:/$ mkdir /home/biren/filecmd
biren@ubuntu:/$ tar -zxf /mnt/hgfs/tmpWin/linux-file-command/file-5.25.tar.gz -C /home/biren/filecmd
biren@ubuntu:/$ ll /home/biren/filecmd/file-5.08/
总用量 1116
drwxrwxr-x 8 biren biren 4096 3月 30 21:19 ./
drwxrwxr-x 3 biren biren 4096 3月 30 21:19 ../
-rw-rw-r-- 1 biren biren 2019 7月 21 2010 acinclude.m4
-rw-rw-r-- 1 biren biren 45668 9月 16 2015 aclocal.m4
-rw-rw-r-- 1 biren biren 12 2月 6 2008 AUTHORS
-rw-rw-r-- 1 biren biren 45961 9月 16 2015 ChangeLog
-rwxr-xr-x 1 biren biren 7333 9月 16 2015 compile*
-rwxr-xr-x 1 biren biren 44826 9月 16 2015 config.guess*
-rw-rw-r-- 1 biren biren 11338 9月 16 2015 config.h.in
-rwxr-xr-x 1 biren biren 35516 9月 16 2015 config.sub*
-rwxrwxr-x 1 biren biren 489520 9月 16 2015 configure*
-rw-rw-r-- 1 biren biren 4430 9月 16 2015 configure.ac
-rw-rw-r-- 1 biren biren 1650 2月 6 2008 COPYING
-rwxr-xr-x 1 biren biren 23566 9月 16 2015 depcomp*
drwxrwxr-x 2 biren biren 4096 3月 30 21:19 doc/
-rw-r--r-- 1 biren biren 15578 5月 16 2012 INSTALL
-rwxr-xr-x 1 biren biren 6760 9月 16 2015 install-sh*
-rw-r--r-- 1 biren biren 283813 9月 16 2015 ltmain.sh
drwxrwxr-x 2 biren biren 4096 3月 30 21:19 m4/
drwxrwxr-x 3 biren biren 4096 3月 30 21:19 magic/
-rw-rw-r-- 1 biren biren 1492 2月 6 2008 MAINT
-rw-rw-r-- 1 biren biren 82 6月 21 2012 Makefile.am
-rw-rw-r-- 1 biren biren 25441 9月 16 2015 Makefile.in
-rwxr-xr-x 1 biren biren 6872 9月 16 2015 missing*
-rw-rw-r-- 1 biren biren 14 2月 6 2008 NEWS
drwxrwxr-x 2 biren biren 4096 3月 30 21:19 python/
-rw-rw-r-- 1 biren biren 6211 1月 3 2015 README
drwxrwxr-x 2 biren biren 4096 3月 30 21:19 src/
drwxrwxr-x 2 biren biren 4096 3月 30 21:19 tests/
-rw-rw-r-- 1 biren biren 1016 4月 10 2015 TODO
执行脚本文件configure产生Makefile:
前缀(前面一样):export ARMPREFIX=arm-linux-androideabi-
./configure的参数:
–host=arm-linux :表示编译后的用于arm
–enable-static : 表示静态编译文件(因为手机系统中缺乏许多的动态库)
“CC=${ARMPREFIX}gcc” :用前缀替换后即CC=arm-linux-androideabi-gcc,即编译器,即将替换脚本里的CC的位置。
biren@ubuntu:~/filecmd/file-5.08$ export ARMPREFIX=arm-linux-androideabi-
biren@ubuntu:~/filecmd/file-5.08$ ./configure --host=arm-linux --enable-static --disable-shared CC=${ARMPREFIX}gcc AS=${ARMPREFIX}as LD=${ARMPREFIX}ld AR=${ARMPREFIX}ar RANLIB=${ARMPREFIX}ranlib
configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-linux-gnueabi-strip... no
checking for strip... strip
......
checking for gzopen in -lz... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating magic/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating python/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
修改2个文件:
第一个是./file-5.08/Makefile
将 CFLAGS = -g -O2
修改为CFLAGS = -g -O2 –static
第二个是./file-5.08/src/file.c
将 const char *magicfile = NULL;
修改为const char *magicfile = “/system/bin/Magdir.mgc”;
用make编译文件:
编译时出错:error: cannot find -lz
biren@ubuntu:~/filecmd/file-5.08$ make
make all-recursive
make[1]: 进入目录“/home/biren/filecmd/file-5.08”
Making all in src
make[2]: 进入目录“/home/biren/filecmd/file-5.08/src”
CC magic.lo
CC apprentice.lo
CC softmagic.lo
......
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lz
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./.libs/libmagic.a(compress.o): in function file_zmagic:compress.c:357: error: undefined reference to 'inflateInit2_'
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./.libs/libmagic.a(compress.o): in function file_zmagic:compress.c:363: error: undefined reference to 'inflate'
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./.libs/libmagic.a(compress.o): in function file_zmagic:compress.c:370: error: undefined reference to 'inflateEnd'
collect2: ld returned 1 exit status
Makefile:370: recipe for target 'file' failed
make[2]: *** [file] Error 1
make[2]: 离开目录“/home/biren/filecmd/file-5.08/src”
Makefile:304: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: 离开目录“/home/biren/filecmd/file-5.08”
Makefile:233: recipe for target 'all' failed
make: *** [all] Error 2
安装zlib1g-dev解决:
命令:sudo apt-get install zlib1g-dev
biren@ubuntu:~/filecmd/file-5.08$ sudo apt-get install zlib1g-dev
[sudo] biren 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
zlib1g
下列【新】软件包将被安装:
zlib1g-dev
下列软件包将被升级:
zlib1g
升级了 1 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 150 个软件包未被升级。
需要下载 232 kB 的归档。
解压缩后会消耗 460 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 zlib1g amd64 1:1.2.11.dfsg-0ubuntu2.1 [56.4 kB]
获取:2 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-0ubuntu2.1 [176 kB]
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 libc-bin (2.27-3ubuntu1.4) 的触发器 ...
继续编译又出现新的错误:
funcs.c:446: error: undefined reference to ‘regcomp’
funcs.c:455: error: undefined reference to ‘regexec’
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./.libs/libmagic.a(funcs.o): in function file_replace:funcs.c:446: error: undefined reference to 'regcomp'
/home/biren/gccarm/4.6/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./.libs/libmagic.a(funcs.o): in function file_replace:funcs.c:455: error: undefined reference to 'regexec'
可能是编译器和file源码版本太旧,不一致。
换个编译器和file版本:
(操作步骤和配置与前同)
file源码版本:5.32
编译器版本:aarch64–glibc–stable-2018.11-1.tar.bz2
线程模型:posix
gcc 版本 7.3.0 (Buildroot 2018.08.1-00003-g576b333)
执行configure脚本创建Makefile:
运行/home/biren/filecmd/file-5.32/下面的configure脚本
export ARMPREFIX=aarch64-linux-
biren@ubuntu:~/filecmd/file-5.32$ export ARMPREFIX=aarch64-linux-
biren@ubuntu:~/filecmd/file-5.32$ ./configure --host=arm-linux --enable-static --disable-shared CC=${ARMPREFIX}gcc AS=${ARMPREFIX}as LD=${ARMPREFIX}ld AR=${ARMPREFIX}ar RANLIB=${ARMPREFIX}ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-linux-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
......
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating magic/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating python/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
只能编译与当前系统的file命令一致的版本:
ubuntu系统当前版本:5.32
编译5.38出错:
biren@ubuntu:~/filecmd/file-5.38$ file -v
file-5.32
magic file from /etc/magic:/usr/share/misc/magic
biren@ubuntu:~/filecmd/file-5.38$ ./configure --host=arm-linux-gnueabi --enable-static --disable-shared CC=${ARMPREFIX}gcc AS=${ARMPREFIX}as LD=${ARMPREFIX}ld AR=${ARMPREFIX}ar RANLIB=${ARMPREFIX}ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
......
make[2]: 进入目录“/home/biren/filecmd/file-5.38/magic”
Cannot use the installed version of file (5.32) to
cross-compile file 5.38
Please install file 5.38 locally first
Makefile:825: recipe for target 'magic.mgc' failed
make[2]: *** [magic.mgc] Error 1
make[2]: 离开目录“/home/biren/filecmd/file-5.38/magic”
Makefile:400: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: 离开目录“/home/biren/filecmd/file-5.38”
Makefile:332: recipe for target 'all' failed
make: *** [all] Error 2
编译5.08同样出错(比当前系统版本低):
biren@ubuntu:~/filecmd/file-5.08$ make
make all-recursive
make[1]: 进入目录“/home/biren/filecmd/file-5.08”
Making all in src
make[2]: 进入目录“/home/biren/filecmd/file-5.08/src”
CC magic.lo
......
CCLD file
make[2]: 离开目录“/home/biren/filecmd/file-5.08/src”
Making all in magic
make[2]: 进入目录“/home/biren/filecmd/file-5.08/magic”
Cannot use the installed version of file (5.32) to
cross-compile file 5.08
Please install file 5.08 locally first
Makefile:656: recipe for target 'magic.mgc' failed
开始编译make:
biren@ubuntu:~/filecmd/file-5.32$ make
make all-recursive
make[1]: 进入目录“/home/biren/filecmd/file-5.32”
Making all in src
make[2]: 进入目录“/home/biren/filecmd/file-5.32/src”
sed -e "s/X.YY/$(echo 5.32 | tr -d .)/" < ../src/magic.h.in > magic.h
make all-am
make[3]: 进入目录“/home/biren/filecmd/file-5.32/src”
CC magic.lo
CC apprentice.lo
CC softmagic.lo
......
sed -e s@__CSECTION__@1@g \
-e s@__FSECTION__@4@g \
-e s@__VERSION__@5.32@g \
-e s@__MAGIC__@/usr/local/share/misc/magic@g ./libmagic.man > libmagic.3
make[2]: 离开目录“/home/biren/filecmd/file-5.32/doc”
Making all in python
make[2]: 进入目录“/home/biren/filecmd/file-5.32/python”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/biren/filecmd/file-5.32/python”
make[2]: 进入目录“/home/biren/filecmd/file-5.32”
make[2]: 离开目录“/home/biren/filecmd/file-5.32”
make[1]: 离开目录“/home/biren/filecmd/file-5.32”
编译结果:
file命令放在./src/file
比现系统的大多了,原因是用–static静态参数编译的。
biren@ubuntu:~/filecmd/file-5.32$ ll src/file 编译出来的file命令
-rwxrwxr-x 1 biren biren 1438904 4月 1 15:19 src/file*
biren@ubuntu:~/filecmd/file-5.32$ ll /usr/bin/file 当前系统的file命令
-rwxr-xr-x 1 root root 22792 5月 12 2020 /usr/bin/file*
biren@ubuntu:~/filecmd/file-5.32$ file src/file
src/file: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 4.1.0, with debug_info, not stripped
biren@ubuntu:~/filecmd/file-5.32$ readelf -h src/file
ELF 头:
Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
类别: ELF64
数据: 2 补码,小端序 (little endian)
版本: 1 (current)
OS/ABI: UNIX - GNU
ABI 版本: 0
类型: EXEC (可执行文件)
系统架构: AArch64
版本: 0x1
入口点地址: 0x403430
程序头起点: 64 (bytes into file)
Start of section headers: 1436472 (bytes into file)
标志: 0x0
本头的大小: 64 (字节)
程序头大小: 56 (字节)
Number of program headers: 6
节头大小: 64 (字节)
节头数量: 38
字符串表索引节头: 37
将file命令(即./file-5.32/src/file)复制到手机/system/bin里
将Magdir目录及目录下所有文件(即./file-5.32/magic/Magdir)都复制到手机的/system/bin里
进入/system/bin
执行命令:file -C -m Magdir