本文来自依云's Blog,转载请注明。
编译完 lsof,却发现 htop 还是不能用……另开一个终端 strace 之,才知它竟然在调用 /bin/sh
而不是 /system/bin/sh
。检查之,原来这个 htop 来自 Terminal IDE,是一个静态链接的版本,大概是使用 glibc 的吧,所以才会去标准位置寻找命令解释器。
编译过程:
path+=/opt/android-ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin mkdir android-build && cd android-build CFLAGS='-I/ldata/media/temp/android/installed_binaries/include/ncurses -I/ldata/media/temp/android/installed_binaries/include' LDFLAGS=-L/ldata/media/temp/android/installed_binaries/lib CC='arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-18/arch-arm' ../configure --host=arm-linux-gnu --prefix=/system --bindir=/system/xbin --disable-unicode rm ../config.h
然后修改当前目录中的 config.h
文件,注释掉 HAVE_NATIVE_AFFINITY
行,添加两个 syscall 的定义,即:
// #define HAVE_NATIVE_AFFINITY 1 #define SYS_ioprio_get __NR_ioprio_get #define SYS_ioprio_set __NR_ioprio_set
继续 make 即可。
编译好的 htop 可由此下载。
Mar 08, 2014 11:50:47 PM
po主编译了好多Android下的命令行软件啊。
Mar 08, 2014 11:54:28 PM
缺什么编译什么 =w=
Mar 09, 2014 02:12:32 AM
呃。。。求编译dig(BIND)
感谢
Mar 09, 2014 11:29:23 AM
好东西,,我喜欢htop
Mar 09, 2014 02:12:57 PM
头像我喜欢,所以附赠另两个工具 :-)
下载地址:http://lilyshare.b0.upaiyun.com/binary/android/dig-host-nslookup-9.9.2-P2.7z
编译时没什么坑,打上 Arch 官方 patch 以不编译其它东西后,只需要弄好的 configure 命令即可:
BUILD_CC=gcc CC='arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-18/arch-arm' CXX='arm-linux-androideabi-g++ --sysroot=/opt/android-ndk/platforms/android-18/arch-arm' ../configure --host=arm-linux-gnu --prefix=/system --bindir=/system/xbin --enable-epoll --without-openssl --without-gssapi --disable-static --with-randomdev=/dev/urandom
Mar 09, 2014 02:36:27 PM
压缩文件损坏的说。。7z 跟 rar 都试过了,下载了好多遍也都是损坏的打不开。。。
Mar 09, 2014 03:14:02 PM
囧,少传了 3K……
已经更新,新地址 http://lilyshare.b0.upaiyun.com/binary/android/dig-host-nslookup-9.9.2-P2.2.7z
md5sum cd162cfd83fd7bc1a060ff88d472d82d
看来以后得使用 HTTP + md5 校验上传了喵……
Jun 29, 2014 02:58:11 PM
请问一下,我是手机是Android 4.2.2 系统的,下载你的编译好的二进制包lsof, htop 之类的可以用吗?
如何将这些编译好的二进制文件放到Android 平台, 放在哪个目录,能写一个升级步骤给我吗? 谢谢
因类我试着将它下载下来,放到/system/bin/目录,运行不了呀!
Jun 30, 2014 03:22:44 PM
可能是版本问题。你是怎么运行的?报错信息是什么?