Forked from 原文 and 非自审查版
准备环境
- ubuntu 16.04
- 原版梅林源码
- ss-libev 源码
原理说明
解包梅林 SS 插件发现,基本都是脚本,核心都是调用 ss-redir ,因此猜测 ss-redir 为原版 SS ,只需要更新原版 SS ,并在前端进行相应修改,便能对其续命
ubuntu 16.04
不是很了解 linux,但是应该只要能够运行 arm-linux-gcc 的 linux 发行版都可以,但我在 ubuntu 16.04 下实验成功,因此这里写 ubuntu 16.04,当然 docker 是可以的(因为我就是在 macos 下用的 docker)
原版梅林源码
虽然是 koolshare 改版固件,但其还是合并了梅林的代码,因此可以使用梅林的交叉编译工具链
下载时,注意对应相对的梅林版本号,可以看一下固件发布时的说明
梅林的交叉编译工具链在梅林源码 release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3
,release 下应该是固件版本的不同,但几个固件版本下的 toolchains 均指向这个文件夹,应该是 toolchains 没有改变过
ss-libev 源码
不解释
炼丹编译
镜像准备与 arm-linux-gcc
ubuntu 首先需要安装一些编译工具,如果对系统有洁癖的,推荐使用docker,我使用了别人写好的 DockerFile 的镜像
启动并挂载源码,运行 docker exec -it container-name zsh
进入容器后尝试运行 arm-linux-gcc
如果出现 arm-linux-gcc: no input files
说明正常,进行下一步
如果出现 其他,请检查路径,权限,否则等下编译出来的可能是 ubuntu 的 ss (我之前编译时,解压后arm-linux-gcc没有运行权限,于是没法编译,给了权限就可以了)
编译 SS 依赖与 SS
编译 SS 还有一些依赖需要安装,以下过程参阅
需要编译 mbedTLS
、pcre
、libsodium
、libev
、libudns
按照原博文的编译后,最后编译 SS 时死活没有检测到编译了libudns,怕是编译后文件夹没有添加到 PATH
中,当然刚才的博文里还提供了一键编译脚本,但那个一键编译脚本中判断参数的部分在ubuntu里报错,于是我就去了,直接写死环境 arm-linux
即可
fork了一下
编译过程大约需要持续 5-10 分钟
使用一键脚本编译的话,在 dists/ss-libev/bin
中拿到 ss-redir
,将他scp到路由器上,执行 ss-redir -v
出现以上则为成功
替换原插件并自行打包
Fork原插件repo
base=shadowsocks
./ss/ssconfig.sh
中将地址更换成自己的repo可以使用自动更新
./version
第一行是版本号 第二行是 tar.gz 的 hash值
./bin
SS 的各种二进制执行文件,可以将刚才编译出来的东西都覆盖进来
./webs/Main_Ss_Content.asp
前端界面,加加密方式都在这里添加