安卓手机安装Openwrt

正戏开始

更新源

apt-get update

你可以查看qemu有什么包,可以根据自己的需求安装模拟其他架构

apt search qemu

安装qemu工具包

apt install qemu-utils

当然,我的是arm64位架构的,模拟arm的性能损耗会更低

安装模拟aarch64架构的

apt install qemu-system-aarch64-headless

首先进行arm架构的教程

这里先采用官方releases版固件,你们成功后可以换其他充满插件的固件、或者手动构建armvirt镜像,替换执行命令里固件名字就行了

下载arm固件

wget https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/19.07.8/targets/armvirt/64/openwrt-19.07.8-armvirt-64-root.ext4.gz

(额,可能提示The program wget is not installed.那就执行pkg install wget安装wget后,再下载)

gzip -d openwrt-19.07.8-armvirt-64-root.ext4.gz

与X86会有combined不同的是,还有指定kernel,所以还要内核镜像。你们使用自己编译的固件时,记得也把内核文件复制到手机

wget https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/19.07.8/targets/armvirt/64/openwrt-19.07.8-armvirt-64-Image

这个时候输入查看命令ls执行可以看到文件openwrt-19.07.8-armvirt-64-root.ext4 和 openwrt-19.07.8-armvirt-64-Image

开始运行openwrt

qemu-system-aarch64 -M virt -m 1024m -kernel openwrt-19.07.8-armvirt-64-Image -append “root=fe00” -hda openwrt-19.07.8-armvirt-64-root.ext4 -no-reboot -nographic -cpu cortex-a53 -smp 3 -net nic -net user,id=wan,hostfwd=tcp::7080-:80,hostfwd=tcp::7022-:22

命令说明:

​ -M 是模拟的机器,可以执行qemu-system-aarch64 -M help查看列表,可以看到有树莓派的,所以也可以直接用树莓派的固件

​ -m 是分配内存大小 我这里分配1024mb

​ -kernel是指定内核

​ -append cmdline 设置Linux内核命令行和启动参数

​ 我这里”root=fe00“指定根的块设备是fe00,如果你没有指定这个,内核将列出可用的块设备并重新启动,之后你们自己的固件可以取消这个”root=fe00“看可用块设备列表,再修改填上。我之前在这徘徊了很久啊。

​ -hda是指定硬盘镜像

​ –no-reboot 就是字面意思,里面客户系统如果重启就会直接退出qemu,重启相当于关机退出qemu。可以不要这条,这样客户系统可以进行重启的操作

​ -nographic 关闭qemu的图形化界面输出。也可以去掉,然后加上–vnc :1 以vnc为图像模式输出到”显示器”,并占用vnc 1端口,vnc访问手机ip:5901显示进入图像界面。-nographic与–vnc不同的是执行运行后不会立即有回显。

​ -cpu cortex-a53 模拟cortex-a53类型的处理器,因为前面查询我的骁龙625是cortex-a53类型处理器,模拟这个性能损失较小。可以输入qemu-system-aarch64 -cpu help查看可模拟列表

​ -smp 核数,给cpu分配核数

​ -net nic 就是快速配置网卡。后面net user,id=wan,hostfwd=tcp::7080-:80,hostfwd=tcp::7022-:22配置网卡网络模式为用户模式(nat模式,使用主机网络nat联网),分配id标识为wan,hostfwd是端口重定向参数,可以加逗号多个使用,很清晰可以自己根据需要增加和删改,这里我把主机7080端口重定向到客户系统的80端口,把主机7022端口重定向到客户系统的22端口。这两个端口分别是web网页管理地址端口、ssh端口。还有具体设置网卡可以百度搜索qemu网络模式。

执行后耐心等待跑码,看下面图

出现第一个框就可以按回车输命令了,但是不急,等第二个

出现br-lan: port 1(eth0) entered forwarding state就是启动好了(改过下面以后,第二次运行是出现8021q: adding VLAN 0 to HW filter on device eth0)

因为第一个网卡默认是分配给lan的,所以我们要改一下,分给wan(这个镜像改过一次,下次再启动就不用改了)

输入

vi /etc/config/network

按键盘i就可以编辑进行增删了,把config interface ‘wan’ 那整部分改成以下这样

config interface ‘wan’

​ option ifname ‘eth0’

​ option proto ‘dhcp’

编辑好了,按键盘ESC,然后按住shift再按一下键盘上的;就可以输入wq回车后保存退出(就是按esc退出后,按出冒号,wq命令保存退出)

重启网络服务

/etc/init.d/network restart

输入ifconfig看看

eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56

​ inet addr:10.0.2.15

获得了一个nat地址

现在ping一下外网

ping www.baidu.com

只要手机能联网,它就能联网!

因为我手机用的是4g数据,地方信号不好,延迟有点大哈别介意

开放wan的80端口

iptables -I INPUT -p tcp –dport 80 -j ACCEPT

前面执行命令的时候,我们已经弄好手机7080端口重定向客户机的80端口了,所以我们在浏览器访问手机ip加7080端口,就可以进入openwrt的管理页面啦!

连上openwrt的ssh,前面执行命令的时候,我们已经弄好手机7022端口重定向客户机的22端口了,只要在openwrt开放22端口,就可以手机ip加7022连上了

iptables -I INPUT -p tcp –dport 80 -j ACCEPT

你可以根据需要设置好重定向端口和开放端口,例子很明白了

iptables -I INPUT -p tcp –dport 7080 -j ACCEPT

浏览器访问手机ip:7080进行设置

本次用到的工具是termux 安卓7 (API 24) 及以上版本,旧版本系统使用本镜像可能导致程序错误。

替换国内清华源参考 https://mirrors.tuna.tsinghua.edu.cn/help/termux/


安卓手机安装Openwrt
https://kingjem.github.io/2022/08/16/安卓手机安装Openwrt/
作者
Ruhai
发布于
2022年8月16日
许可协议