OnePlus 8 (IN2010) Root 操作记录
音量上电源按键强制重启OnePlus 8 手机有A/B 槽位刷坏一个槽设置到另外一个槽启动就好刷机比较安全可以用这个OTA连接 获取boot.img用magisk patch后重现刷入即可获得root权限。设备信息机型: OnePlus 8 (IN2010_CH, 国行)系统: ColorOS 13.1, Android 13固件版本: IN2010_13.1.0.190(CN01B7001)分区方案: A/B 槽位 动态分区 (super)初始槽位: b文件目录结构所有 OP8 相关文件已整理到oneplus8/目录:oneplus8/ ├── IN2010_13.1.0.190_CN01_F74.zip # 完整固件包 (6.0G, MD5: 7c2a3609991a5999b346efdbcbf7c51a) ├── payload.bin # 从固件包解压 (6.0G) ├── payload-dumper-go # 提取工具 v1.3.0 ├── boot_coloros_stock.img # ✅ ColorOS 原版 boot.img (96M, MD5: 82d89d27587250b224582e4a9c1ae9f3) ├── vbmeta_coloros_stock.img # ✅ ColorOS 原版 vbmeta.img (8K) ├── Magisk-v30.7.apk # Magisk 安装包 ├── magisk_patched.img # Magisk 修补后的 boot.img (已刷入 a 槽) └── extracted/ # payload-dumper-go 输出目录执行的操作记录Step 1: 解锁 Bootloader (成功)# 进入 fastbootadbrebootbootloader# 确认状态fastboot oem device-info# 结果: Device unlocked: false, current-slot: b, Verity mode: true# 解锁 (会 wipe 全部数据)fastboot oem unlock# 结果: OKAY, 设备自动 wipe 并重启解锁后验证:adb shell getprop ro.boot.flash.locked# 0 (已解锁)adb shell getprop ro.boot.slot_suffix# _badb shell getprop ro.boot.veritymode# enforcingadb shell getprop ro.build.display.id# IN2010_13.1.0.190(CN01)Step 2: 尝试 fastboot boot 临时启动 recovery (全部失败)尝试了多个 recovery 镜像 (TWRP 官方 A11、TWRP 社区 A11) 通过fastboot boot临时启动, 全部失败:A11 内核与 ColorOS 13.1 (A13) 系统不兼容, 设备回到 fastbootColorOS 13.1 的 fastboot 实现限制了boot命令期间还尝试了刷禁用 verity 的 vbmeta 后再 boot, 仍然失败。Step 3: 检查 adb shell 直接 dd (失败)adb shellls-la/dev/block/sde35# brw------- root root (shell 用户无权限)adb shelldd if/dev/block/by-name/boot_b of/sdcard/boot_test.img bs1M count1# 结果: Permission denied结论: 块设备权限brw------- root root, shell 用户无法读取, 必须有 root 才能 dd。Step 4: 故障与恢复在尝试 recovery 启动过程中, 设备多次进入重启循环, 屏幕提示 “系统出现故障选择语言后请尝试在线更新保留数据进行系统修复”。原因: recovery 启动失败导致当前槽位被标记为 unbootable, 系统自动切换槽位。恢复方法:# 进 fastboot 后清除 unbootable 标记, 切回可启动的槽位fastboot set_active b fastbootrebootStep 5: 核心死结要 root → 需要 Magisk patched boot.img 要 patch → 需要原版 boot.img 要获取 boot.img → 需要 root (dd) 或 recovery (dd) 或固件包 recovery 不可用 (fastboot boot 失败) adb 无 root (dd 权限拒绝) 固件包找不到 (CN01B7001 公开渠道无)Step 6: 搜索 CN01B7001 精确版本固件 (成功找到)精确版本ColorOS IN2010_13.1.0.190(CN01) F.74已在多个渠道找到:#来源URL内容费用状态1大侠阿木 ROM站https://yun.daxiaamu.com/OnePlus_Roms/一加8/ColorOS%20IN2010_13.1.0.190(CN01)%20F.74/完整 OTA 全量包 (6.3GB), 含7个 OPPO 官方 CDN 直链免费✅ 可达2BOOT汇https://www.boothui.com/post/3800.html原厂 boot.img Magisk/KSU/APatch 修补版免费可达3一加社区官方帖https://bbs.oneplus.com/thread/1614294637457965064更新公告, 含下载链接和 MD5 校验免费可达4ONFIXhttps://onfix.cn/rom/958929boot.img 单独下载 (线刷包)付费(~几元)可达OPPO 官方 CDN 直链 (7条, 均已确认 HTTP 200, 文件大小 6337997010 字节)组件 OTA MD5: f984c493a54a4873a5b09a96d3aee37f 完整包 MD5: 7c2a3609991a5999b346efdbcbf7c51a OTA 版本号: IN2010_11.F.74_2740_202406060040#URL1https://gauss-componentotacostmanual-cn.allawnfs.com/remove-e7e1bd561e12e3cef7d870bef87baedc/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip2https://gauss-compotacostauto-cn.allawnfs.com/remove-e7e1bd561e12e3cef7d870bef87baedc/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip3https://gauss-otacostmanual-cn.allawnfs.com/remove-e7e1bd561e12e3cef7d870bef87baedc/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip4https://gauss-otacostauto-cn.allawnfs.com/remove-e7e1bd561e12e3cef7d870bef87baedc/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip5https://componentota-manual-cn.allawnfs.com/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip6https://componentota-auto-cn.allawnfs.com/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip7https://component-ota-afs.coloros.com/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip其他工具/资源工具地址说明一加全能盒子https://optool.daxiaamu.com/wiki_pctool大侠阿木开发的 PC 工具箱, 可自动拉取 OTA 全量包并一键 Rootoppo_decrypthttps://github.com/bkerler/oppo_decrypt解密 .ofp/.ozip 固件payload-dumper-gohttps://github.com/ssut/payload-dumper-go/releases (最新 1.3.0)从 payload.bin 提取 boot.img大侠阿木百度网盘https://pan.baidu.com/s/1ORvunqMKT9XTg_zhRLEpuQ?pwddxam (提取码 dxam)一加8 全版本固件网盘最接近的替代版本 (若 .190 下载失败)版本F 编号来源IN2010_13.1.0.186 (CN01)F.72yun.daxiaamu.com / onfix.cnIN2010_13.1.0.185 (CN01)F.71同上IN2010_13.1.0.183 (CN01)F.70同上Step 7: 提取 ColorOS 原版 boot.img vbmeta.img (成功)下载固件# 从 OPPO 官方 CDN 下载 (链接 #5)curl-L-HUser-Agent: Android-oIN2010_13.1.0.190_CN01_F74.zip\https://componentota-manual-cn.allawnfs.com/component-ota/24/06/07/f984c493a54a4873a5b09a96d3aee37f.zip# 结果: 6.0G, MD5 校验通过 (7c2a3609991a5999b346efdbcbf7c51a)解压 payload.binunzip-oIN2010_13.1.0.190_CN01_F74.zip payload.bin# 结果: payload.bin (6.0G)提取 boot.img vbmeta.img./payload-dumper-go-listpayload.bin# 确认有 boot (101 MB) 和 vbmeta (8.2 kB)./payload-dumper-go-pboot,vbmeta-o./extracted payload.bin# 结果: extracted/boot.img (96M) extracted/vbmeta.img (8K)验证fileextracted/boot.img# Android bootimg, kernel (0x8000), ramdisk (0x1000000) ✅head-c8extracted/boot.img|xxd# 414e 4452 4f49 4421 ANDROID! ✅md5sum extracted/boot.img# 82d89d27587250b224582e4a9c1ae9f3 ✅head-c8extracted/vbmeta.img|xxd# 4156 4230 AVB0 ✅备份原版cpextracted/boot.img boot_coloros_stock.imgcpextracted/vbmeta.img vbmeta_coloros_stock.imgStep 8: Magisk Patch boot.img (成功)# 推送原版 boot.img 到手机adb push oneplus8/boot_coloros_stock.img /sdcard/Download/boot.img# 安装 Magisk APKadbinstalloneplus8/Magisk-v30.7.apk# 手机上操作: Magisk App → 安装 → 选择并修补一个文件 → /sdcard/Download/boot.img# 产物: /sdcard/Download/magisk_patched-30700_NQxh7.img# 拉回 PCadb pull /sdcard/Download/magisk_patched-30700_NQxh7.img oneplus8/magisk_patched.img# 结果: 96M, Android bootimg, ANDROID! 魔数 ✅Step 9: 刷入 a 槽 (b 槽兜底) - ROOT 成功! 策略: 在 a 槽刷入 Magisk patched boot, b 槽保持原版系统兜底。# 进 fastbootadbrebootbootloader# 1. 刷 magisk_patched 到 boot_afastboot flash boot_a oneplus8/magisk_patched.img# 结果: OKAY (98304 KB)# 2. 刷原版 vbmeta 到 vbmeta_a (关 verity)fastboot --disable-verity --disable-verification flash vbmeta_a oneplus8/vbmeta_coloros_stock.img# 结果: OKAY (8 KB)# 3. 切到 a 槽fastboot set_active a# 4. 重启fastbootreboot# 结果: 系统正常启动 ✅Root 验证adb shell getprop ro.build.display.id# IN2010_13.1.0.190(CN01) ✅adb shell getprop ro.boot.slot_suffix# _a ✅adb shellsu -c id# uid0(root) gid0(root) contextu:r:magisk:s0 ✅adb shellsu -c magisk -v# 30.7:MAGISK:R ✅最终状态项目值说明bootloader已解锁✅当前槽位a✅ Magisk root 运行中boot_aMagisk patched (v30.7)✅ root 生效vbmeta_a原版 (verity 已禁用)✅boot_b原版 ColorOS✅ 兜底, 随时可切回系统IN2010_13.1.0.190(CN01)✅ 正常运行rootuid0(root), Magisk v30.7✅ 成功重置系统 (保留 root)第一次重置: fastboot -w# 进 fastbootadbrebootbootloader# 擦除 userdata metadata (不动 boot/vbmeta, root 保留)fastboot-w# 结果: userdata 和 metadata 擦除并重新格式化 ✅# 重启fastbootreboot注意:fastboot -w只擦除 userdata, 不动 boot/vbmeta 分区, 所以 root (Magisk patched boot_a) 保留。但 Magisk App 装在 /data/app 下会被清除, 需要重装 Magisk APK 才能激活 su。重置后恢复 root# 重装 Magisk APK (需先在手机上完成开机向导 开启 USB 调试)adbinstalloneplus8/Magisk-v30.7.apk# 打开 Magisk App, 它会自动完成初始化, su 恢复验证 root 恢复adb shellsu -c id# uid0(root) ✅adb shellsu -c magisk -v# 30.7:MAGISK:R ✅第二次重置: 清除残留密码 fastboot -w第一次重置后发现锁屏密码残留, 需要在重置前用 root 清除密码相关文件:# 1. 用 root 清除锁屏密码残留文件adb shellsu -c rm -f /data/system/locksettings.db*# 锁屏设置数据库adb shellsu -c rm -f /data/system/gatekeeper.password.key# Gatekeeper 密码 keyadb shellsu -c rm -f /data/system/gatekeeper.pattern.key# Gatekeeper 图案 keyadb shellsu -c rm -f /data/system/password.key# 旧版密码 keyadb shellsu -c rm -f /data/system/gesture.key# 旧版手势 key# 2. 清除 FRP (工厂重置保护) 残留adb shellsu -c rm -f /persist/data/frp# 3. 进 fastboot 执行最终重置adbrebootbootloader fastboot-wfastbootreboot说明:persist分区受 fastboot 保护, 无法用fastboot erase persist擦除 (返回 “Erase is not allowed for Critical Partitions”)但有 root 时可以用rm删除 persist 里的特定文件 (如 frp)密码残留主要在/data/system/下的 gatekeeper/password key 文件, 以及/persist/data/frp重置后需走完开机向导, 重新开启 USB 调试 (首次开机 USB 默认 MIDI 模式)重置后使用的检查清单走完开机向导 (选语言、跳过登录)确认无锁屏密码要求开发者选项 → 开启 USB 调试重装 Magisk APK 恢复 root (如需保留 root):adbinstalloneplus8/Magisk-v30.7.apk验证 root:adb shellsu -c id# uid0(root)adb shellsu -c magisk -v# 30.7:MAGISK:R兜底方案如果 a 槽 root 系统出问题, 可随时切回 b 槽原版系统:adbrebootbootloader fastboot set_active b fastbootreboot后续可选配置Magisk App → 设置 → Zygisk ON安装 Shamiko (隐藏 root): https://github.com/LSPosed/LSPosed.github.io/releases安装 Play Integrity Fix: https://github.com/chiteroman/PlayIntegrityFix/releasesEnforce DenyList ON, 配置需要隐藏 root 的 App