这篇文章上次修改于 675 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
总述
最近折腾了好几次高通410的随身WIFI棒子,因此记录下折腾过程,方面后续查找使用记录
开启9008模式
目前有不少板子,进入9008模式的方法各不相同,记录下我手上所有类型的开启方法:
sp970-B-v11
苏宁uz801
其他
ufi003 & ufi103s_v03 & ufi001b
应该都是按住板子上按钮即可,这几个好像都差不多能直接进,如果不是可以去酷安或者网上搜一下有没有开启方式
前期准备
软件
- MiKo、QPT、星海SVIP、9008驱动和ARDC
- 123Pan(提取码:5835)
- Mega
- Google Drive
重点是vivo9008drivers.exe、MiKo_Pro.7z和QualcommPremiumTool.7z
vivo9008drivers.exe用于windows支持9008驱动
miko和qpt都是用于备份,防止棒子变砖等各种问题救援恢复的
不过我目前只用过miko恢复就是了,有问题直接miko全盘恢复一遍,再重新进行刷机流程就行
切卡
有些设备切换SIM卡需要密码,一般有以下几种可能:
UFIadmin88888;L100;az952#;XBX888。
不确定刷成openstick前切卡有没有用,反正我每次刷机前都已经切成卡槽的卡,不过刷完之后能用不能用还是得看兼容性
debian包下载
另一个版本的openstick debian刷机包及openwrt刷机包
备份
MiKo备份
MiKo备份出来的是一个binary文件,其中包含整机的所有分区镜像,可用于救砖。
首先运行miko.exe安装Miko,安装完成后先不要运行,进入Miko安装目录,找到miko_service_tool_pro_v5.3_fix.exe,去掉后缀变成miko_service_tool_pro_v5.3_fix,然后将Loader.exe复制到MiKo安装目录,最后运行Loader即可启动Miko。
将棒子进入9008模式后按照下图操作生成备份,备份时间可能较长。

读取完成后复制到安全的位置保存即可,如果读取不到分区表请检查驱动是否装好、接触是否良好、机身是否没有指示灯闪烁。
MiKo恢复
打开MiKo,将棒子置于9008模式,并按下图操作恢复:

QPT 备份
Qualcomm Premium Tool 备份出来的是所有分区的小镜像,也用于提取部分分区。
首先关闭电脑声音,打开注册机文件夹中的注册机.exe,点击主界面中的Generate Key,在跳出的另存为界面中将.key文件随便保存到哪,然后退出注册机。
打开QualcommPremiumTool.exe,在主界面中点击Help,Activate,导入刚才导出的Key文件即可。
将棒子进入9008模式,按照下图操作生成备份,备份时间可能较长。

读取完成后复制到安全的位置保存即可,如果读取不到分区表请检查驱动是否装好、接触是否良好、机身是否没有指示灯闪烁。
ADB开启
目前手上的棒子基本都直接开启了adb,插上电脑之后
adb reboot bootloader
即可进入fastboot模式
好像有一款是没开启adb的?不过应该也是搜一下对应型号就能从网上找到开启办法,之后如果想起来再改吧
刷机
- 如果你的设备之前刷过base.zip,则可以将设备置于fastboot模式后从第4步开始。
- ufi001b/c之外的版型请使用更为通用的base-generic.zip,然后使用本机型的boot.img替换debian.zip中的boot.img
- 解压base.zip压缩包。
- 将你的设备置于fastboot模式
- 执行其中的flash.bat
- 当完成后解压<系统名称>.zip压缩包。
- 执行其中的flash.bat
- enjoy!
基本就是按照上面教程给的里的内容,先刷入base,然后刷入debian即可,linux下换成执行.sh脚本
Debian换源
这里以清华源为例。如果你装了https://github.com/OpenStick/OpenStick 版本的debian安装包,需要先安装apt install apt-transport-https ca-certificates,更新一下,因为他里面的包太老,直接换清华源会因为证书问题而无法使用,如果已经先把源换掉了,可以直接下载最新的包离线安装,另外里面可能还没有vi,vim,nano等常用编辑器,可以选择adb pull 再push 回去
vi /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
禁用mobian源
mv /etc/apt/sources.list.d/mobian.list /etc/apt/sources.list.d/mobian.list.bak
mobian源已经寄了,更新时会报404
debian切卡
刷完后如果你的棒子型号是支持sim卡的,则应该是能直接使用,如果不行,也有可能是因为默认使用的sim卡不对,此时可以参考下面的内容进行切卡
查看sim卡状态
mmcli -m 0
切换esim
首先 openstick debian 下会有两个这样的设备(实际上是把切卡的 GPIO 抽象成灯泡了),可以用 cat 看它是关闭(0)还是开启(1),其中 en 结尾的是外置卡槽,sel 结尾的是 eSIM
也有可能是反过来的,根据实际情况进行切换吧
切换需要至少几十秒的时间,不要着急,连上了自然有网,可以用上面的那条命令检查卡是否识别到
Debian
echo 0 > /sys/class/leds/sim\:en/brightness
echo 1 > /sys/class/leds/sim\:sel/brightness
systemctl restart rmtfs
systemctl restart ModemManager
另外有些棒子可能切卡之后 Modem 还起不来,可以参考这里给 SIM 卡部分重新上电 (我没遇到过)
systemctl stop ModemManager
qmicli -d /dev/wwan0qmi0 --uim-sim-power-off=1 && qmicli -d /dev/wwan0qmi0 --uim-sim-power-on=1
systemctl start ModemManager
网络共享
此时刷完的debian,如果sim卡能用,则万事大吉,反之,如果兼容有问题,sim卡不识别,不能上网等等,这是就会是一个不能联网的棒子,还需要继续配置让他上网
WIFI
OpenStick版本的debian 是无法rndis与wifi热点共存的, 这里给了解决办法
不过这不重要,因为如果家里有无线网,则可以通过nmtui工具直接加入无线网,然后也可以进行联网了,进行软件更新及服务等操作,不涉及wifi热点
不过因为这个棒子的硬件比较垃圾,wifi有可能无法加入先进的wifi6网络,或者因为天线等问题,导致网络波动情况大,这时就不得不使用USB共享网络了
USB共享网络
openstick的adb,rndis使用的是里的gc工具
不过openstick里的gc应该是特别版本,如果用github上的gc编译,会需要修改启动脚本
重要的软件位置,gc在/usr/bin 下,rndis配置脚本在 /usr/sbin/
root@openstick:~# ls /usr/bin/gc -l
-rwxr-xr-x 1 root root 39472 Apr 5 18:18 /usr/bin/gc
root@openstick:~# ls /usr/sbin/mobian-usb-gadget -l
-rwxr-xr-x 1 root root 723 Apr 5 18:28 /usr/sbin/mobian-usb-gadget
编辑gc
修改前记得备份
cp /usr/bin/gc /usr/bin/gc.bak
cp /usr/sbin/mobian-usb-gadget /usr/sbin/mobian-usb-gadget.bak
rndis和adb在linux下显示的id和名字都是直接编译在gc里的,所以刷了相同地包的seies等都是一模一样的,如下:
lsusb
Bus 001 Device 005: ID 18d1:d001 Google Inc. Nexus 4 (fastboot)
adb devices
0123456789 device
如果只有1个设备还好,如果有多个设备且插在同一个主机上,adb直接废了,因此需要修改gc让每个设备都独一无二
为了保证gc可用性,可以通过vim 进行二进制模式编辑,修改完直接保存,保证不会因编译https://github.com/HandsomeMod/gc 里的gc而产生问题
vim -b /usr/bin/gc
进入二进制编辑
:%!xxd
完成后恢复
:%!xxd -r
退出并保存
:wq
二进制内容:
000060a0: 3078 6430 3031 0000 3078 3138 6431 0000 0xd001..0x18d1..
000060b0: 4861 6e64 736f 6d65 5465 6368 0000 0000 HandsomeTech....
000060c0: 4861 6e64 736f 6d65 4d6f 6420 4465 7669 HandsomeMod Devi
000060d0: 6365 0000 0000 0000 3031 3233 3435 3637 ce......01234567
000060e0: 3839 0000 0000 0000 2d68 0000 0000 0000 89......-h......
使用/搜索19d2,定位后直接修改中间的16进制内容
3078 对应 0x ,6430 3031 即是d001 ,3138 6431对应18d1 ,HandsomeTech和HandsomeMod Device可按喜好修改,将字母转换成对应的16进制,进行修改即可, 01234567890修改为自定义series number
最后使用%!xxd -r转化回去,再:wq保存即可
举例我修改后的内容
000060a0: 3078 3035 3336 0000 3078 3139 6432 0000 0x0536..0x19d2..
000060b0: 5269 6e53 7469 636b 5465 6368 0000 0000 RinStickTech....
000060c0: 5269 6e53 7469 636b 4d6f 6420 4465 7669 RinStickMod Devi
000060d0: 6365 0000 0000 0000 3230 3233 3034 3036 ce......20230406
000060e0: 3031 0000 0000 0000 2d68 0000 0000 0000 01......-h......
修改脚本
原版脚本内容
#!/bin/sh
CONFIGFS=/sys/kernel/config/usb_gadget/g1
setup() {
# Remove All Gadgets If Gadget Exist
[ -d $CONFIGFS ] && gc -c
# Setiing Up Rndis
gc -a rndis
sleep 1
# Setting Up Adbd
gc -a ffs
mkdir -p /dev/usb-ffs/adb
# in offical version of gc name will be ffs.x
mount -t functionfs adb /dev/usb-ffs/adb
# Fire Up Adbd
adbd -D &
# (hack) wait adbd setup
sleep 1
# Enable Gadget
gc -e
}
reset() {
echo "Removing the USB gadget..."
# Remove USB gadget
if [ -d $CONFIGFS ]; then
echo "Removing gadget configuration..."
gc -c
fi
}
case "$1" in
reset) reset ;;
setup) setup ;;
*) ;;
esac
gc -a rndis即为添加rndis网络共享
gc -a ffs为添加adb
gc -e为让配置生效
如果想要添加ecm模式,可以在gc -a rndis后添加gc -a ecm 即可
!!!
警告:如果需要修改启动脚本,一定要先测试脚本里所有gc命令是否能正常使用!!!
另外,进行gc -c 之前务必确认自己还有办法对openstick进行访问!!!
如果丢失了所有能访问openstick的方法,且重启后也不能恢复,估计就只能9008重装了!!!
dhcp修改
nmtui可以直接通过界面修改usb网卡等配置
如果nmtui用不了,且提示
root@openstick:/# nmtui
TERM environment variable needs set.设置TERM环境变量即可
export TERM=linux
修改完usb网卡ip地址后,还需要修改dhcp配置,方便usb共享网络后客户端能自动配置ip地址
openstick的dhcp配置用的是dnsmasq,修改/etc/dnsmasq.conf文件末尾的配置即可
附上我使用usb共享网络进行上网的配置:
nmcli con show USB
ipv4.addresses: 10.88.90.5/30
ipv4.gateway: 10.88.90.6
root@openstick:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.88.90.6 0.0.0.0 UG 1500 0 0 usb0
10.88.90.4 0.0.0.0 255.255.255.252 U 1500 0 0 usb0
root@openstick:~#
root@openstick:~# tail -2 /etc/dnsmasq.conf
listen-address=10.88.90.5/30
dhcp-range=10.88.90.6,10.88.90.6,12h
主机:
iptables -P FORWARD ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.88.90.4/30 -o enp1s0 -j MASQUERADE
允许转发与配置MASQUERADE
路由器
增加10.88.90.4/30网关为主机ip 的路由
然后可以进行apt update
其他
暂时想不到别的,后面有什么再补