Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

wlya/AndRouter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

6 Commits

Repository files navigation

本文目的是合理利用旧手机,利用废物和低功耗高性能的特点,将其作为环保可靠的家庭软路由/服务器设备。

Android Router / 安卓路由器 Android as router / server

笔者环境:

  • 旧手机zuk z2 pro,6+128,骁龙820,支持2.4g/5g wifi,otg
  • 系统:自编译lineageos 17.1(安卓10, Linux 4.9,LinuxDeploy ubuntu 18)

最终效果:

  • 稳定运行已有2个星期
  • 整机待机功耗 < 0.5W,代理功耗约 < 2W(功耗表测)
  • openssl 测试aes算力大概单核100M/s。(受限于火龙820,上次测试红米k40(骁龙870),算力可以到900M/s。)

费用

合计3元:

  • 可调电源模块:3元(也可以直接用电阻)
  • 12v/2A DC电源:0元(旧设备的,约10元)
  • type-c/RJ45网卡:0元(笔记本送的,约25元)

硬件改造:

散热:

由于我的zuk z2用的是火龙820,因此可以增强一下散热以应对极端满载情况。 拆开后盖,在对应发热位置,垫上导热硅胶片,再盖上铝制散热鳞甲。

网卡:

因为我的目的是有线链接路由器,无线开热点,因此需要利用type-c口来otg一块RJ45网卡,刚好我有笔记本送的闲置着,就直接插上使用。

供电:

网上有直接用电容替换电芯,手机直插type-c口充电的方案,因为我网卡占了type-c口,所以我只能改电芯的方案。 淘宝3块钱买了个可调降压模块。 将电池拆开,小心去除电芯剩下电池保护板,按照对应的正负极把供电模块的输出端接到电池保护板。

我的手机电池电芯是3.8v高电压的,通过降压模块输出端显示4.3v,手机显示电量是84%。4.2v显示电量80%。

注意: 如果手机开机一小段时间后自动重启,请检查供电情况。

这里我买的可调降压模块必须要是压差2.5v以上。再加上启动电流2A以上,所以我测试5v/2a的充电器并不可以用,在负载高的场景会掉电压然后就断电重启了。 我最终用的是12v/2a的dc电源,非常稳定。

系统改造:

优先选择LineageOS。

内核配置

这个手机有lineageos官方支持17.1,内核4.9,把一些常见的内核config打开(可选):

CONFIG_NET_NS=y
CONFIG_PID_NS=y
CONFIG_IPC_NS=y
CONFIG_UTS_NS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_MEMCG=y
CONFIG_VETH=y
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
CONFIG_POSIX_MQUEUE=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_USER_NS=y
CONFIG_CGROUP_PIDS=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_NENCG_KMEM=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_NET_CLS_CGROUP=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_IP_VS=y
CONFIG_IP_VS_NFCT=y
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_RR=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_VXLAN=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_GHASH=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_ALGO=y
CONFIG_INET_ESP=y
CONFIG_NETFILTER_XT_MATCH_BPF=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y

Docker原生支持(可选):

参照这个帖子,不可以自动化安装,实测会出错,需要手动逐步安装。 最后将/目录手动remount成rw,可以成功运行hello world。 但是后来跑了个nginx,也能跑起来,但运行3-4分钟以后系统会crash重启,看了一圈日志也没看到什么异常。感觉自己暂时也用不到docker就弃坑了。 https://gist.github.com/arno01/ebf570af208e28c1a0cf78da4f63bc9c

手机开AP热点并走vpn:

在LineageOS系统中: 设置 - 网络与连接 - 热点 - 允许接入热点的设备使用VPN

软件改造:

软件列表

  • macrodroid:安卓自动化工具
  • linux deploy:原生的linux环境,因为我们有root,所以用linuxdeploy实现完整的root linux,而不是其他使用proot的linux。
  • via浏览器:浏览网页时使用
  • 迅雷破解版apk:下载时使用

开机启动:

macrodroid:安卓自动化工具,系统启动时执行以下动作:

  • 启动adb wifi,可以方便远程用scrcpy连接手机
  • 启动热点
  • 禁用电池优化和待机相关策略
  • 模拟充电:直供电会有系统掉电的bug(可能),因此直接供电
  • 启动vpn(v2rayng)

linux deploy:

  • 设置开机自启动
  • 设置linux启动脚本,在linux 内部创建/etc/rc.local(linux内部服务自启动)
  • 启用网络变化监控
  • 挂载sdcard

v2rayNg

Clash / Clash Meta for Android

  • 注意配置选项:网络:
    • 自动路由系统流量(开)
    • 绕过私有网络(关)
    • DNS劫持(关)
    • 允许其他应用绕过(开)
    • 系统代理(开)
    • StackMode(Mixed Stack)
    • 访问控制模式(不允许已选择的应用)

About

android as router

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /