1、编译(可以不看)
去android.com下载NDK,其实aosp的源码树更好,不过就是大了点
然后NDK的项目已经准备好,下载下面的附件
主要是Android.mk,部分代码也有改动,有兴趣的自己去diff一下看看.
准备好内核源代码树,可以从developer.htc.com下载对应的型号
准备交叉编译器,这里可以用SDK的那个,但是各种设置过于繁杂
因为是编译内核模块,与现有的include和lib其实没什么关系,所以这里可以随便找个合适的
比如codesourcery的,或者angstrom的
2、安装
准备好上面编译得到的所有内核模块
这些一般需要放在/system/lib/modules
下载下面现成的ipset和iptable
这两个放到/system/xbin,并且删除以前有的iptables
3、使用
4、结果
在G4上进行的测试
DNS反污染工作正常,测试可以得到twitter.com和youtube.com的正确地址
TCP连接混淆似乎因为路由器问题,一直无法成功,但查看日志发现,确实触发了丢弃RESET包的规则,相信在合适的环境中应该能够达到效果
因为需要编译内核模块,所以这部分不可以通用,不同的型号需要分别编译,所以暂时没有提供(需要和boot.img配合使用)。
from http://bbs.anzhi.com/thread-7166-1-1.html
scholarzhang要求ipset版本>=4.2
ipset的版本4.2则要求iptables版本>=1.4.4
android自己的iptables是1.3.7,所以有必要升级iptables,并且加入scholarzhang的模块
去android.com下载NDK,其实aosp的源码树更好,不过就是大了点
然后NDK的项目已经准备好,下载下面的附件
主要是Android.mk,部分代码也有改动,有兴趣的自己去diff一下看看.
然后就是ipset和scholarzhang的内核模块了
准备好内核源代码树,可以从developer.htc.com下载对应的型号
准备交叉编译器,这里可以用SDK的那个,但是各种设置过于繁杂
因为是编译内核模块,与现有的include和lib其实没什么关系,所以这里可以随便找个合适的
比如codesourcery的,或者angstrom的
以codesourcery为例
复制代码
- export PATH=$PATH:/opt/codesourcery/arm-2010q1/bin
ipset内核模块编译
修改ipset-4.2/Makefile,CC改成arm-none-linux-gnueabi-gcc
复制代码
- KERNEL_DIR=<内核源代码树> make
scholarzhang内核模块编译
复制代码
- cd west-chamber
- ./autogen.sh
- ./configure --target=arm-none-linux-gnueabi --with-kbuild=<内核源代码树>
- make
2、安装
准备好上面编译得到的所有内核模块
这些一般需要放在/system/lib/modules
下载下面现成的ipset和iptable
这两个放到/system/xbin,并且删除以前有的iptables
3、使用
ipset用到了mktmp,所以要求/tmp存在
复制代码
- mkdir -p /tmp
- mount -t tmpfs tmpfs /tmp
永久性的解决方案是修改boot.img中的init.rc启动脚本
如果modprobe报错找不到模块
复制代码
- for f in /system/lib/modules/*.ko; do insmod $f; done
出错的原因是android并未提供modprobe这个小工具,第三方ROM中包含的modprobe不一定会在/system/lib/modules下搜寻模块
然后其他的就完全参照scholarzhang的wiki了
4、结果
在G4上进行的测试
DNS反污染工作正常,测试可以得到twitter.com和youtube.com的正确地址
TCP连接混淆似乎因为路由器问题,一直无法成功,但查看日志发现,确实触发了丢弃RESET包的规则,相信在合适的环境中应该能够达到效果
因为需要编译内核模块,所以这部分不可以通用,不同的型号需要分别编译,所以暂时没有提供(需要和boot.img配合使用)。
from http://bbs.anzhi.com/thread-7166-1-1.html
No comments:
Post a Comment