可复用的技术操作记录与排障手册。记录真实做过、真实踩过坑、最终真正有效的步骤。
每篇都遵循同一个写法:现象 → 排查路径(含被排除的假设)→ 根因 → 真正有效的步骤 → 验收标准。 不写"应该可以",只写"实测如此"。
| 篇 | 主题 | 适用场景 |
|---|---|---|
| 01 | MTK 设备刷机前全分区备份 | 手上有联发科(MTK)手机/平板,想在任何改动前把全部固件分区 dump 下来保命 |
| 02 | Windows 上与 BROM/Preloader 通信的驱动障碍 | mtkclient 卡在 Waiting for PreLoader VCOM,或 libusb 报 NOT_SUPPORTED / ACCESS |
| 03 | Magisk root:Android 9 legacy system-as-root 设备 | 刷入 Magisk 补丁后设备能开机,但 Magisk 完全不生效(/sbin/su 不存在、/proc/1/cmdline 仍是 /init) |
| 04 | su 请求被静默拒绝 |
su 明明存在,su -c id 却返回 Permission denied,改"自动响应"和重启都无效 |
| 05 | 踩坑清单与心得 | 想先看结论、避坑的人 |
| 脚本 | 用途 |
|---|---|
scripts/extract_magisk_payload.py |
从 Magisk APK 中按 boot_patch.sh 需要的文件名解出全部 payload,免 Linux 环境 |
scripts/install_winusb_inf.ps1 |
为「无驱动绑定的 USB 设备」自签并安装 WinUSB 驱动(不需要 WDK / 不需要 Zadig GUI) |
scripts/probe_usb_access.py |
判定某个 USB 设备到底能不能被 libusb 访问,输出可读的错误码含义 |
在 Windows 上折腾 MTK 设备,最大的拦路虎几乎总是驱动层,不是软件层的用法。
判断方法:用 probe_usb_access.py 打开设备。
| 返回 | 含义 | 该做什么 |
|---|---|---|
0 SUCCESS |
驱动正常 | 去看软件层用法 |
-12 NOT_SUPPORTED |
没有任何 libusb 支持的驱动绑定 | 装 WinUSB(见 02) |
-3 ACCESS |
驱动绑上了,但设备被别的进程占用 | 杀掉残留进程,或让设备重新枚举 |
Android 侧折腾 Magisk,先分清你的设备是哪一代 system-as-root:
boot 分区原本没有 ramdisk(magiskboot unpack 显示 RAMDISK_SZ [0])→ 必须用 LEGACYSAR=true,
否则补丁看起来"成功"但完全不生效(见 03)。
本仓库内容仅用于自有设备的备份、恢复与系统定制。
- 刷机与 root 有变砖风险。没有完整分区备份之前,不要动手(见 01)。
- 部分分区(
nvram/nvdata/proinfo一类)一旦丢失不可恢复,会导致基带/IMEI 永久损坏。 - 请遵守你所在地区的法律法规与设备保修条款。
- 本仓库作者不对任何因照做而导致的设备损坏、数据丢失或法律后果负责。
本仓库刻意不包含任何具体设备的唯一标识符(序列号、IMEI、EMMC CID、SoC ID、MAC、IP 等), 也不包含任何个人信息、账号信息或本机路径。所有路径均写为占位符。
如果你要照着做,请自行记录你自己设备的信息,并不要把那些信息提交到公开仓库。
MIT,见 LICENSE。