4
30
2013
5

编译了点 Android 的网络命令行工具

本文来自依云'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处理下,减小体积。

以上三个工具打包下载请点击这里备用地址)。

Category: Linux | Tags: linux 网络 Android 交叉编译 | Read Count: 18721
yx_wh 说:
May 22, 2013 01:23:58 AM

或者说该说GNU-style,毕竟android自己就是100%的linux(内核)了……
我想弄个android的sshfs,但是没用弄成……

Avatar_small
依云 说:
May 22, 2013 12:02:24 PM

我的 mlocate 也没弄成呢。我那个工具链的 glibc 头文件有 bug……

Lucifel 说:
Nov 08, 2013 09:02:47 PM

大大威武...从Google搜索到这里来的....

tofuliang 说:
May 05, 2014 04:53:30 PM

https://github.com/l3iggs/android_external_sshfs 这里有Android 的sshfs,但是要CM10.2环境,脱了半个月没把cm源码脱下来

1508 说:
Jan 21, 2015 11:18:06 AM

'socat' 不是内部或外部命令,也不是可运行的程序


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com