2026年8月

背景

红米5A(riva,msm8937 平台)作为无电池 USB 直供电设备使用(如工控、kiosk、测试机等场景),面临三个核心问题:

  1. 插电无法自动开机:断电后重新插上 USB,设备停留在充电界面,需要手动长按电源键才能进入系统
  2. 充电模式启动后 ADB 失效:即使设法从充电模式转入正常系统,USB gadget 仍保持在 mass_storage 模式,ADB 无法使用
  3. ADB 只能 USB 连接:需要通过内网穿透实现远程 ADB 访问

经过多轮测试和诊断,最终找到了可靠的解决方案。本文记录完整的排查过程和最终方案。

核心优势:全程无需按电源键,无需控制任何电源开关——只需接好双路供电并插入 USB,系统自动完成从充电界面到远程 ADB 可用的全部流程。


设备环境

  • 设备:Xiaomi 红米5A (riva)
  • 芯片:Qualcomm msm8937
  • ROM:MIUI 9.6.27 开发版 (Android 8.1)
  • Bootloader:已解锁(verifiedbootstate=orange)
  • 供电方式:保留电池保护板(BMS)+ USB 双路供电(详见下文)
  • 使用场景:需要断电后插电自动开机,并通过 ADB 远程控制

前置条件

软件前提

  • 已获取 root 权限(通常需要 bootloader 已解锁,通过 SuperSU 或 Magisk 获取),需要修改 /system/vendor 分区

硬件改造:无电池直供电

本文的软件方案基于以下硬件改造前提:

改造方法

  1. 拆除电芯,保留电池保护板(BMS):将原装电池的电芯拆掉,但保留电池上的保护板(排线和小板)
  2. 从保护板输出端引出正负极,串联一个二极管后接入外部 5V/2A 电源(需稳压至 3.8V-4.2V 模拟满电状态),直接供电给主板
  3. 这样系统能检测到"电池存在"(BMS 正常通信),不会因检测不到电池内阻而关机或限频

为什么要保留 BMS

如果直接通过尾插 USB 供电(不接任何电池相关硬件),部分机型会因为检测不到电池内阻而:

  • 拒绝开机
  • 开机后自动关机
  • CPU 限频运行

保留 BMS 可以欺骗主板,让它认为电池仍然在位。

双路供电触发充电模式

实际使用中需要同时提供两路供电:

  • 保护板供电(模拟电池,维持主板正常工作)
  • USB 接口供电(提供主要电力 + 数据连接)
...

本文为会员专享,请先登录