1. SP970是什么?先搞清手上这台设备的底细
格行SP970系列随身WiFi,用的是高通骁龙410平台,芯片型号是MSM8916。这颗芯片在当年是手机市场的入门级处理器,四核A53架构,主频1.2GHz左右,放到今天来看性能不算强,但作为随身WiFi的核心SoC,它的优势非常明显:发热低、功耗小、外围电路成熟、Linux和Android的适配资源多。正因如此,市面上大量随身WiFi设备都基于这颗芯片方案,格行只是其中的品牌之一。
很多朋友拿到刷机教程第一反应就是照着敲命令,但我建议你先花十分钟确认一下手里的机器到底是什么版本。同样是SP970这个型号,不同批次可能有差异,常见的有1GB RAM加8GB ROM的版本,也有512MB RAM配4GB ROM的低配版。硬件配置不同,对应的刷机包和分区表可能都不一样,刷错包会直接变砖,这一步别省。
确认版本的方式主要有两个路径。一是看机身背面或电池仓里的标签,找到完整的型号标识,最好再核对一下SN码前缀。二是通过ADB命令读取系统信息,在设备开启并连接电脑后,执行adb shell getprop ro.product.model和adb shell cat /proc/meminfo,能直接看到系统识别的型号和内存大小。两者交叉比对,基本就能确定是哪个硬件版本。
另外要说一个容易被忽略的点:格行SP970系列虽然披着品牌定制的外壳,但主板方案大概率是公版方案改的,这就意味着你用网上流传的高通410通用刷机包时,有很大概率能直接适配,只有少数定制程度较高的批次需要单独找包。这也是为什么刷机圈常说“高通410的随身WiFi折腾起来最省心”的原因。不过省心不等于随便刷,大方向对的前提下,分区表的差异依然可能让你踩坑,后面我会专门讲。
接入Windows电脑时还有个老生常谈但必须提的事:随身WiFi的USB接口通常有两种模式,一种是RNDIS网络共享模式,电脑端看到的是网卡;另一种是ADB调试模式,电脑端能看到Android设备。默认情况下很多设备只开RNDIS,你要先在设备屏幕上找到“开发者选项”里的USB调试开关,或者通过设备自带的设置菜单切换USB模式,才能让ADB识别到设备。这一步做不对,后面所有命令都没法执行,但恰恰是新手最容易卡住的地方。
2. 刷机前置准备:工具链、驱动与第一个难关“解锁BL”
2.1 工具清单与下载注意事项
刷这套设备,你需要准备的东西并不复杂,但每样都得对版:
- SP970 Toolkit工具包,社区里流传的专门针对高通410随身WiFi的刷机脚本合集,集成了常用的备份、刷入、读取操作
- 高通USB驱动(QDL驱动和ADB驱动),这是电脑识别设备的前提
- QPST或QFIL,高通官方烧录工具,主要用于分区刷写和全量备份
- 一个靠谱的刷机包,来源尽量选论坛里有人实测反馈过的,别拿陌生人的网盘直链
下载方面多说一句:这些工具文件都不大,但网上来源乱,很多人打包时夹带私货。下载完先用杀毒软件扫一遍,再看压缩包里的文件结构是否完整、是否有来源说明。SP970 Toolkit这类社区工具有时会被杀毒软件误报,原因是它包含底层驱动和脚本工具,但“误报”和“真有问题”很难区分,我的经验是优先找GitHub仓库或知名论坛的置顶帖下载,至少有人审查过。
2.2 驱动安装:为什么总是识别不到设备
驱动安装是门槛最低、但卡住人最多的一步。核心原因在于高通设备在不同状态下需要不同的驱动:正常开机进入系统时用的是ADB驱动,进入bootloader(fastboot模式)时用的是fastboot驱动,进入9008模式时则需要用Qualcomm HS-USB QDLoader驱动。很多人只装了一个驱动,换个模式就识别不到了,就开始怀疑设备坏了。
实际操作时我建议按顺序来:先装高通通用驱动包,然后在设备连接电脑后打开设备管理器,看在“端口”或“通用串行总线设备”里是否出现了Qualcomm相关的条目。如果显示的是带黄色感叹号的未知设备,右键手动更新驱动,指向你下载的驱动目录,让系统强制安装一遍。这个手动指定驱动的操作很关键,Windows的自动搜索经常找不到正确驱动。
驱动安装完成的标准不是“不报错了”,而是ADB或QDLoader工具能正常枚举设备。用命令行验证最直接:设备正常开机连接电脑后,运行adb devices,能看到一串序列号并且状态为device,就可以继续。如果状态显示unauthorized,说明手机上没点“允许USB调试”的弹窗确认,重新插拔一次再弹窗时勾选始终允许即可。
2.3 解锁BL与OEM锁:具体命令与常见报错
解锁Bootloader是刷第三方系统的第一道坎。格行SP970这类设备出厂时,BL锁通常是关闭的,但部分批次会加上OEM锁,尤其在后期固件里,厂商有意降低了刷机的便利性。验证是否上锁的方法很直接:先通过adb reboot bootloader让设备进入fastboot模式,然后执行fastboot oem device-info,看输出的几行信息里Device unlocked是true还是false。
- 如果是true,恭喜你,直接跳到刷recovery那一步
- 如果是false,执行
fastboot oem unlock,设备屏幕上会出现解锁确认界面,用音量键选择Unlock,电源键确认 - 如果提示
unknown command,说明这台设备的bootloader不支持OEM指令,换fastboot flashing unlock试试
解锁过程必须注意:其一,解锁操作会清除设备所有用户数据,相当于恢复出厂设置的加强版,刷机前的数据备份要做在解锁之前,否则什么都没了。其二,解锁后设备会处于“已解锁”状态,每次开机都可能出现警告画面,这是高通方案的标准行为,不影响使用,不用慌。其三,执行unlock指令时如果长时间卡在waiting for device,先检查fastboot驱动是否工作正常,这项判断极其重要,因为此时设备已经退出Android系统,普通ADB驱动完全不起作用。
有朋友问过我可不可以不解锁BL直接刷机,我的回答是:如果只刷官方签名的固件包,确实可以跳过这一步,但如果你想刷入第三方系统或Magisk这类需要改动系统分区的工具,不解锁就没有写权限,只有解锁后才能刷进去。所以,除非你只做官方固件恢复,否则这一步绕不开。
3. 备份大于一切:完整备份固件与分区才是刷机的前提
刷机圈有条不成文的规矩:先备份,后折腾。对于随身WiFi这类设备,备份的意义甚至比手机还大,因为设备本身小众,网上能找到的对应刷机包未必全,万一刷坏了想回原厂,你会发现原厂系统包才是最稀缺的资源。
SP970系列的原厂系统一般分为几个关键分区:boot(内核)、system(系统)、modem(基带)、persist(射频校准数据)、fsg(网络配置)。其中modem和persist这两个分区尤其重要,modem分区里存着基带固件,丢了它设备就没信号;persist分区里存着每个设备独有的校准数据,每个设备的persist内容都不一样,丢了它WiFi和射频相关功能可能出现异常。这两个分区无法从别人的备份里恢复,只能用自己的备份,所以操作之前必须备份,这话我说再多次都不过分。
用SP970 Toolkit做备份的流程大致如下:设备正常开机连接电脑,确认ADB连接正常;打开Toolkit,选择“读取设备分区”或“Backup”选项;工具会自动读取当前设备的分区表,并在本地生成一个带日期时间的备份目录。整个过程大约五到十分钟,取决于设备上数据的多少和读取速度。
备份完成后一定要做两件事:第一,把备份目录下的分区文件分别校验一下MD5,和工具输出的原始校验值对照,确保没有读取中断或文件损坏;第二,将整个备份目录复制到电脑的其他磁盘或移动硬盘上,别只放在一个地方。随身WiFi刷机过程中设备断电、USB线松动都可能导致备份不完整,校验这一步能帮你提前发现问题。
有个细节值得单独说:SP970 Toolkit虽然名字里带了SP970,但本质上是针对高通410平台做的脚本封装,所以它对同平台其他品牌设备也有一定兼容性。这意味着你手上的备份文件格式也是通用的,以后换其他高通410设备折腾时也能参考同一套备份结构,多攒几份备份文件对你理解整个分区布局很有帮助。
4. 去云控的真正做法:刷入定制ROM与关闭云控链路
4.1 去云控的本质是什么
很多随身WiFi用户刷机的首要动机是“去云控”。所谓云控,就是设备出厂时固件里内置了一个远程管理服务,商家或服务商可以通过云端平台远程下发指令,比如限制设备使用时长、锁定设备无法更换SIM卡、甚至直接断网。这个东西在共享WiFi、租赁设备场景里有它的合理性,但如果是你自己花钱买的设备,被远程掐着脖子就很不舒服了。
去云控的本质并不只是“删掉一个App”那么简单。云控往往有两层:一是用户态的应用和服务,你在设置里能看到,卸载掉就能暂时摆脱;二是系统底层的内置命令和守护进程,藏在system分区里,开机就会自启,单纯卸载表面应用根本防不住它自启。这就是为什么大家常说刷机才是去云控的根本方法——只有刷掉整个系统分区,把定制ROM装上去,才能彻底清掉隐藏的远程管理逻辑。
4.2 刷机核心步骤:走到9008模式的完整流程
刷入定制ROM的通用流程是:解锁BL后,通过fastboot刷入第三方recovery,再在recovery里刷入ROM包。但SP970这类设备有个特殊性:它的fastboot模式未必完整可用,某些批次在bootloader阶段直接没有fastboot命令响应。遇到这种设备,就得走9008模式。
9008模式是高通处理器的底层下载模式,全称叫Emergency Download(EDL),可以理解成手机的“工程模式”。在这个模式下,设备的所有软件层都不运行,只有芯片内部的引导程序在等待电脑通过USB发送烧录数据。因为它在最底层,所以它也是设备变砖后最后的救星。
让SP970进入9008模式,我试过两种可行方案:
一是软件方式:在设备正常开机状态下,用adb reboot edl命令,部分固件支持直接跳转。如果不支持这个命令,可以用adb reboot bootloader进fastboot后再输入fastboot reboot edl。
二是硬件方式:拆开设备外壳,在主板上找到USB数据线对应的D+和D-触点,用镊子短接后再插电脑USB,设备通电即进入9008模式。不同批次的板子短接点位置略有差异,SP970系列的短接点通常在USB接口附近,有一对露出的测试焊盘,网上有人整理过拆机图,可以参考对照。
进入9008模式后,设备管理器里会出现一个串行设备(Qualcomm HS-USB QDLoader 9008),这时候就可以用QFIL或SP970 Toolkit来刷写了。QFIL的操作逻辑是:在Flat Build模式下选择prog_emmc_firehose_8916.mbn这个引导文件(高通410方案配套的Programmer),然后载入刷机包里的分区xml,点击Download即可全量刷写。
刷入定制ROM之后,我强烈建议顺手刷入一个Magisk补丁过的boot分区,这样后续可以随时通过Magisk管理root权限,也能更方便地屏蔽掉不需要的系统组件。对于随身WiFi这类小设备,root权限不是用来玩游戏的,而是用来限制后台自启、调整系统分区挂载权限的,实用性很高。
4.3 刷完之后的收尾:关闭云控、验证系统状态
ROM刷完、系统能正常启动后,去云控的工作还没彻底结束。部分云控服务会写入NV分区或FSG分区,刷系统分区并不能覆盖这些区域。如果刷机后发现设备依然尝试连接某个远程服务器,或者在某些时间点莫名重启,多半是残留的云指令在作怪。
处理方式是进入9008模式,用QFIL单独擦除或刷写对应的分区,通常涉及persist、fsg这两个分区,将它们恢复为干净状态就可以。注意,这一步操作会丢失设备原有的射频校准数据,可能导致WiFi信号强度略差,所以操作前一定确认你已经备份了原分区。如果备份过,恢复后可以再用备份的分区文件刷回去,先保留备份的校准数据。
刷机完成后,验证工作不能少。我通常按三步走:第一步,检查系统版本号和内核日志,确认改动已经生效;第二步,连接WiFi热点,用另一台设备跑一轮测速和Ping测试,确认数据转发正常;第三步,连续运行24小时,观察是否有异常重启、断网、发热严重的问题。都通过了,这台设备的去云控才算真正完成。
5. 从失败到救砖:SP970最常见的三个坑与排查思路
5.1 坑一:901D端口占用导致刷写中断
9008模式下刷写过程中突然报错,是遇到最多的问题之一。报错信息千奇百怪,但根源常常是同一个:电脑上有其他程序占用了9008对应的串口。刷写工具和占用程序同时抢同一个端口,数据流一断,刷写自然中断。
排查思路:刷机前先关掉QQ、微信的USB调试辅助功能,关掉各种手机助手类软件,再打开设备管理器确认9008端口没有黄色感叹号。如果刷写过程中报错,直接拔线、重新进9008模式、重刷,别在中断状态尝试续传,那只会让问题更麻烦。
有个容易被忽略的细节:某些电脑的前置USB口供电不稳,9008模式下设备功耗虽然低,但数据线质量差或者接口接触不良,刷写过程就容易失败。我刷机一般强制要求使用电脑后置USB口,并且用质量好的短线,这类问题的概率能大幅降低。
5.2 坑二:分区表不匹配导致的变砖
刷机包里自带的分区XML文件定义了刷写哪些分区以及各自的大小。如果刷机包适用于某个高配版,而你手里的设备是低配版,分区表就可能对不上。比如高配版modem分区大小是64MB,低配版只有32MB,刷写时QFIL按64MB写入,低配版的存储芯片没有足够的物理空间,写入就会失败,结果就是变砖。
应对方案有两个。其一,刷机前用SP970 Toolkit读取当前设备的分区表,和执行刷写时使用的XML对比,确认每个分区的大小完全一致。其二,选择整包刷写时,如果XML文件对不上,只刷boot和system两个核心分区,其他分区保持原样不动。绝大多数定制ROM的核心改动都在boot和system里,其他分区不乱动,变砖风险会小很多。
万一因为分区表问题变砖了,只要是9008模式还能进,就还有救。找一台同型号且能正常开机的设备,备份它的完整分区,再把备份分区表里的boot、system、modem等关键分区刷回变砖设备,通常能恢复开机。这个方法能成功的原因在于,同型号设备的分区表结构相同,区别只在个体校准数据上,而校准数据影响的是信号质量,不致命。
5.3 再救一救:9008短接救砖实操
如果设备怎么都进不了9008,也就是所谓的“深度变砖”,就只能靠硬件短接来强制触发EDL了。具体操作:拆机后断电,找到主板上D+和D-测试点,用镊子短接这两个点,保持短接状态将USB线连接到电脑,等待设备管理器弹出9008设备后松开镊子。整个过程只需要接触两三秒,但前提是你找对了测试点。
SP970系列的测试点位置在拆机图中比较明显,通常是在USB母座背面附近、芯片屏蔽罩旁边的两个小圆点。如果没有万用表,可以用目测法判断:这两点直接连接到USB口中间两根数据线的走线,沿着USB口数据线走线往回找就能找到。
短接时的要点是胆大心细:镊子别碰到旁边其他元件避免短路,短接时间别过长。如果插线后电脑没有任何反应,先确认主板有没有通电,你插的USB口是否正常供电,然后再试一次。多试几次失败但相同操作有时会成功的原因很简单——接触不良是常态,换镊子角度和力度,总会碰到对的点。
6. 刷完以后可以做些什么:进一步折腾的方向
系统层面的折腾完成后,SP970就不再是那个被云控拴着脖子的普通随身WiFi了。从高通410平台的能力来看,这台设备刷完机之后至少可以往三个方向延伸使用。
第一个方向是当轻量级Linux服务器。高通410的CPU性能虽然打不过现代手机,但它功耗极低,整机功耗一般在2瓦以内,作为一个7x24小时运行的设备很划算。刷入Arm版本的Debian或者Ubuntu系统后,可以部署一些轻量级服务,比如内网穿透客户端、定时任务脚本、简单的Web服务,或者做Samba共享的小型存储。随身WiFi本身的WiFi能力也能继续使用,把它变成一个真正的口袋服务器。
第二个方向是跑Klipper这类3D打印机上位机系统。这在前段时间的社区里非常火,很多人把手头闲置的随身WiFi改造成3D打印机控制器。高通410平台的算力跑Klipper完全足够,配合USB连接打印机主板,可以实现远程控制、打印状态监控、切片参数调整等功能。这要求刷机时选一个包含完整USB Host支持的系统镜像,并且确认设备在运行中不会因为过热降频导致掉USB连接。
第三个方向是把它改造成一个稳定的物联网网关。随身WiFi自带4G模组,刷机后你可以直接调用基带能力实现联网和数据传输,再通过USB接口挂载传感器模块,做远程数据采集和上报。这比买专门的物联网网关便宜得多,唯一的代价是需要自己写一部分控制代码,但这个过程本身就很好玩。
我个人的看法是,刷完别急着装一堆东西,先运行几天看看稳定性。虽然高通410的整体功耗很低,但不同刷机包的内核调校和电源管理策略差别很大,有的包跑一晚上电量掉得很快,有的包则稳如老狗。找到适合自己设备的稳定配置,比追求最新功能更重要。
如果你刷完系统后一切正常,最后分享一个小经验:找一个可靠的刷机包存档目录,把SP970 Toolkit和你这台设备的完整备份文件都整理好,标注上日期、版本、备注信息。自己折腾过一遍就会明白,同样的设备在不同人手里、不同网络环境下,遇到的问题可能完全不同,有一份完整的备份和工具存档,下次再折腾就从容得多,也不怕把设备刷挂后干着急。