本文来自依云's Blog,转载请注明。
在 Android 这个奇怪的平台想弄点 Linux-style 的东西用真不容易。网上现成的东西也比较少,这里有 stunnel、redsocks 和 iptables 等。另外 GAEProxy 里有 redsocks、iptables 和 Python 2.7,在/data/data/org.gaeproxy
目录下。但它的 Python 不支持 readline,redsocks 不支持 UDP。
下边是我自己编译的几个工具和其特点(全部没有第三方库依赖):
-
redsocks:取自 git 版本,支持 UDP。其中,支持 UDP 需要
search.h
头和相关库函数,但是 Android 的 C 库中没有。我使用了 musl 这个 C 库中的相关文件。 - socat:支持 readline 和 OpenSSL。openssl 这个命令行工具也作为附加文件得到了,但是感觉用处不大。
- tcpdump:著名的网络抓包工具。没什么特别的。
编译全部使用的是 Android NDK。编译命令基本上类似于:
CC='arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-14/arch-arm' \ ./configure --host=arm-linux-androideabi --prefix=/ldata/media/temp/android/installed_binaries
但是不同的软件通常都会需要一些修改。比如上边说到的 redsocks。最无痛编译成功的是 LuaJIT 了,但是我这里没找到什么实际用途。另外记得把生成的可执行文件用arm-linux-androideabi-strip
处理下,减小体积。
May 22, 2013 01:23:58 AM
或者说该说GNU-style,毕竟android自己就是100%的linux(内核)了……
我想弄个android的sshfs,但是没用弄成……
May 22, 2013 12:02:24 PM
我的 mlocate 也没弄成呢。我那个工具链的 glibc 头文件有 bug……
Nov 08, 2013 09:02:47 PM
大大威武...从Google搜索到这里来的....
May 05, 2014 04:53:30 PM
https://github.com/l3iggs/android_external_sshfs 这里有Android 的sshfs,但是要CM10.2环境,脱了半个月没把cm源码脱下来
Jan 21, 2015 11:18:06 AM
'socat' 不是内部或外部命令,也不是可运行的程序