手机里安装判断文件格式的命令file,ubuntu里配置交叉编译和32位库lib32ncurses5-dev、lib32z1

环境:

主机: 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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中微中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值