V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AnnaIsGod
V2EX  ›  Android

OPPO 真的没办法 ROOT 吗?

  •  1
     
  •   AnnaIsGod · 199 天前 · 7698 次点击
    这是一个创建于 199 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手上有一台 OPPO A92s ,每年我都会尝试 ROOT 这台手机,但没有一次成功的,说一下我的尝试,希望有大佬了解我还不知道的信息。
    最开始是想利用 21 年 3 月的联发科漏洞,可以获取到临时 ROOT ,但要求系统版本在 21 年 3 月以前。尝试了一下降级,发现 Rec 有验证,没办法刷等级更低的包,后来手机半夜自动更新了一次系统,把 Rec 模式里面选择本地刷机包的功能给砍了,这条路就彻底没了。
    官方有发布降级工具,但是我的型号用不了。

    然后再底层一点,就是 fastboot 模式,这个模式我从手机买来的那一天起,就没成功进入过,adb 命令进入 fastboot 以后会显示一串英文:the serial is not match,fastboot verfity failed.
    提前输入 fastboot 命令,会提示 Remote not support HAL 还是什么的,反正就是用不了。

    最后只能把希望寄托在 bootrom 模式上,网上说的是天玑 1200 以下的芯片都可以用 mtkclient 解锁,我的天玑 800 理论上是可以的,也有跟我相同 cpu ,但是别的型号的手机成功解锁,但是我的这台手机不行。
    驱动是完美安装的,版本是最新的,但 mtkclient 还会提示握手失败。
    我去看了一下 mtkclient 的源码,握手阶段会通过串口向手机发送四个字节,得到回复以后就可以执行各种命令,通过漏洞覆盖掉特定内存区域的值。
    我手动用串口工具模拟了这个握手的过程,发现根本没卵用,手机依旧不停发送 Ready ,然后关机。
    我是做安卓开发的,嵌入式这一块儿确实不太懂,到底怎么才能握手通过,可能只有 OPPO 的工程师知道了.....

    然后我还尝试了直接用 SP Flash Tool 线刷,好不容易把官方给的 ofp 格式的包转成了线刷包,验证文件跟 scatter 也都正常识别了,最后还是报了一样的错,握手失败......要不就是 DA 发送失败。
    也试过一些 bypass 工具,无一例外都是报错。

    然后就想着找一下 MTK 官方的文档,官网找不到,搜索引擎搜不到,ChatGPT 也不知道,基本没有资料......

    最后的尝试是去逆向官方的降级工具,因为只有这个工具处理过的刷机包,才能在手机端通过设置卡刷,但是折腾了半天也没用,官方工具就只是生成了一个签名,然后把卡刷包跟签名放在同一个 zip 文件里,但是哪怕我用相同的算法给网上找的官方 ROM 生成签名并打包,手机端依旧显示认证不通过,反正就是不给降级......

    到这里我真的已经没辙了,我的想法是硬件上的漏洞应该是没办法在软件层面修复的,而且还是 bootrom 这种只读存储器上的漏洞,希望有嵌入式大佬能赐教一二......
    38 条回复    2024-06-08 10:46:07 +08:00
    JensenQian
        1
    JensenQian  
       199 天前 via Android
    oppo 看型号,有些型号官方参加那个什么测试就可以
    realme 也是,一加肯定可以

    你别折腾了
    AnnaIsGod
        2
    AnnaIsGod  
    OP
       199 天前
    @JensenQian 指望官方就算了,我的问题是是否还存在一些漏洞可以用来解 bl(硬件层面),因为前几次的漏洞都没赶上......
    StarsunYzL
        3
    StarsunYzL  
       199 天前   ❤️ 1
    撞到我的“专业”了,你的这个型号应该是可以用 MTK 漏洞解锁 BL / 刷改版 ROM 的。

    mtkclient 跑不通估计是你的 BootRom 已经禁了,只能连接到 Preloader ,看设备管理里的 MediaTek 设备,如果是以下几个 VID/PID 那就是 Preloader:

    0x0e8d/0x2000
    0x22d9/0x0006
    0x22d9/0x2000

    Preloader 下你只能用官方的 DA 刷官方的 ROM ,要解锁 BL 或者 root ,需要先想办法从 Preloader 进入 BootRom ,然后用 BootRom 漏洞禁用安全认证就可以任意刷机了
    dandycheung
        4
    dandycheung  
       199 天前 via Android
    一年前,也曾想 root OPPO Reno4 5G
    HojiOShi
        5
    HojiOShi  
       199 天前 via Android   ❤️ 1
    我以为自 Android L 以来,想 root 只能买能官解 BL 的手机这点已经是常识了。没想到十年过去了,还是有人不知道以前那些一键 root 的工具是怎么死的。
    AnnaIsGod
        6
    AnnaIsGod  
    OP
       199 天前
    @StarsunYzL 好像跟你说的一样,确实只能进 preloader ,ID 是 22d9,2000 ,OPPO 独有的 ID......官方刷机包是有的,大佬知道官方 DA 要怎么弄吗? T T
    AnnaIsGod
        7
    AnnaIsGod  
    OP
       199 天前
    @HojiOShi 我以前也觉得是常识,直到爆出各种漏洞,觉得相信常识未必有点傻
    jkfadsljlasdgs
        8
    jkfadsljlasdgs  
       199 天前
    蹲一个 OPPO K9 的 root
    yolee599
        9
    yolee599  
       199 天前 via Android
    想办法解 BL 吧,解不了 BL 永远不可能 root ,我的魅族就是帖吧找人解的,要价 ¥ 160
    HojiOShi
        10
    HojiOShi  
       199 天前 via Android   ❤️ 1
    @AnnaIsGod #7 能 root 的漏洞又不像树上的果子,隔段时间就能曝一个的。你要觉得你的能力能强过一大批黑帽白帽,那你就尽情折腾吧。对几乎所有人来说,想 root 直接买谷歌一加还是划算多了。
    AnnaIsGod
        11
    AnnaIsGod  
    OP
       199 天前
    @StarsunYzL 我用了一些工具,日志是这样的:
    Switch preloader to bootrom...crash succeed!
    Waiting for mtk usb device... ok
    BootMode : BootLoader[COM3]
    USBDriver : wdm_usb
    DriverVersion : 3.0.1512.0
    DriverDate : 1-4-2023
    ProviderName : MediaTek Inc.
    Connecting to BootROM......
    ● Chipset MT6873
    ● Identifier Dimensity 800
    ● Info 8A00_CA00_0000_Margaux
    ● SecCFG SBC+SDA
    Disabling watchdog..
    Disable BRom protection...
    send usb_ctrl data ...!
    MTK Auth Disable(SLA/DAA) error!

    crash 掉 preloader 以后,手机就直接重启了,然后再次按住音量加减,最后报错,手机就一直在 Preloader 模式下,只能长按电源键重启,这个模式下向串口发送任何数据,都会返回一样的数据。我在想是不是要拆机短接触点......
    StarsunYzL
        12
    StarsunYzL  
       199 天前   ❤️ 1
    @AnnaIsGod 官方 DA 不好搞,目前最靠谱的方法是去年年底新出的一种利用方式,可以直接从 Preloader 禁用安全认证,但这个方式目前没有免费工具,要是愿意花钱的话可以看看 unlocktool.net ,最便宜大概 3 个月 200 块,应该是支持你的手机型号,有一键解锁 BL 功能,要是不着急的话可以等等看有没有免费工具放出来,mtkclient 感觉应该已经在开发了,或者等等下半年可能我也会开发这个功能,到时候看看能不能给你测试 ->_->
    hdp5252
        13
    hdp5252  
       199 天前 via Android
    再买个能 root 的手机把
    StarsunYzL
        14
    StarsunYzL  
       199 天前
    @AnnaIsGod mtkclient 就带有 crash preloader 功能,并且当连接到 Preloader 时 mtkclient 会自动尝试 crash preloader ,如果成功的话就会进入到 BootRom ,没进入 BootRom 就是没成功,这个方法已经很老了,对稍微新一点的系统补丁基本都失效了
    AnnaIsGod
        15
    AnnaIsGod  
    OP
       199 天前
    @StarsunYzL 我还是不太懂,系统补丁不是只能更新特定几个分区的文件吗,应该只能在安卓系统这个层级做更新。这些底层的漏洞为什么可以被修补,preloader 跟 bootrom 不都是写死的吗。求解
    StarsunYzL
        16
    StarsunYzL  
       199 天前   ❤️ 1
    @AnnaIsGod 只有 BootRom 是写死在芯片里的,更新不了,preloader 是在 eMMC / UFS 闪存上的一个“分区”里,手机厂商可以随便 OTA 更新 preloader 的,比如 VIVO 更新 preloader 可勤快了

    你用过 MTK 官方刷机工具 SP_Flash_Tool 刷机时,在加载 scatter 文件后应该就能看到有一个 preloader 分区,可以自己勾选要不要刷 preloader
    AnnaIsGod
        17
    AnnaIsGod  
    OP
       199 天前
    @StarsunYzL 懂了。但是很多跟我同样 CPU 型号的华为一类的品牌,就可以进入 bootrom ,所以我一直觉得是自己哪里操作错了,才导致握手失败,但是中途换了好几个 Mtk 驱动,重装了 Usb 驱动,还换了 linux 系统,结果都是提示:
    Handshake failed 。preloader 可以在线更新,也就是说 OPPO 更新了 preloader ,导致 preloader 崩溃后不会进入 bootrom ,把这个漏洞修复了,可以这么理解吧。
    thqw0925
        18
    thqw0925  
       199 天前
    8gen2 机型好像可以,9008 被破解了。可以用 9008 刷入一加 8gen2 机型的 bootloader ,之后就可以解锁了。
    StarsunYzL
        19
    StarsunYzL  
       199 天前
    @AnnaIsGod 差不多吧,Preloader 还可以控制开不开放 BootRom ,有些手机最早出厂时是开放 BootRom 的,还有同时开放 Preloader 和 BootRom 的(上电时通过不同按键触发),后来 BootRom 爆出漏洞就 OTA 更新 Preloader 禁用掉了 BootRom ,所以同一 CPU 型号甚至同一个手机型号 BootRom/Preloader 的开放情况都可能不一样,据说 MTK 开始要求以后 Preloader 都不能开放了,现在三星一些 MTK 的手机 BootRom 和 Preloader 都没了
    tammy
        20
    tammy  
       199 天前
    unlocktool 可以免拆解 a92s ,不过这软件得咸鱼租
    uuhhme
        21
    uuhhme  
       199 天前 via Android
    a92s 比较特殊吧。不好弄
    kokutou
        22
    kokutou  
       199 天前
    咸鱼卖了就行了呗...
    AnnaIsGod
        23
    AnnaIsGod  
    OP
       199 天前
    @kokutou 你不如把你挂闲鱼卖了= =
    efsg
        24
    efsg  
       199 天前
    用社会工程学的方法来解决这个问题,电话骂客服,骂的越难听越好,然后去售后骂,再拍视频发网上,就是欠投诉了
    hqt1021
        25
    hqt1021  
       199 天前 via Android
    留个 tg 明晚上我给你整整
    Admin8012
        26
    Admin8012  
       198 天前 via Android
    一加秒解 真我部分型号也可以解
    ltkun
        27
    ltkun  
       198 天前 via Android
    发哥的芯片 root 了也没啥大用吧 原生系统估计也不会有 现阶段还是高通适配的多一点
    wuyswu
        28
    wuyswu  
       198 天前
    库安对应区搜一下看有没有。手里有一台 realme , 要下载 app 深度测试(好像要对应型号),然后要指定的 rom 版本(我的 realme UI 1.0 才可以),然后就是正常刷 magisk 了
    AnnaIsGod
        29
    AnnaIsGod  
    OP
       198 天前
    @wuyswu 酷安我从 21 年就在蹲,并没有,realme 跟 oneplus 的搞基难度相对低一些
    VonLea
        30
    VonLea  
       198 天前
    老的系统 12 有 dirtypipe 漏洞,可以不接 bootloader 直接 root ,https://github.com/tiann/DirtyPipeRoot/releases ,下一下这个 apk 试一下,可以的话直接 root 授权给 magisk 或者 kernelsu ,直接修补重启就可以获得 root 权限,并且不破坏 tee
    AnnaIsGod
        31
    AnnaIsGod  
    OP
       198 天前
    @VonLea 试了一下,好像不行,要 linux 内核版本 5.8 以上,我的系统内核版本只有 4.14......
    VonLea
        32
    VonLea  
       198 天前
    @AnnaIsGod #31 可以找一下 linux 内核对应的漏洞利用,可以参考一下这个 qu1ckr00t ,https://github.com/grant-h/qu1ckr00thttps://bugs.chromium.org/p/project-zero/issues/detail?id=1942
    AnnaIsGod
        33
    AnnaIsGod  
    OP
       198 天前
    @VonLea 经过测试,依旧没用。uname -a 指令显示,我的 Linux 版本是 2024 年编译的,已经修复了。
    VonLea
        34
    VonLea  
       198 天前
    @AnnaIsGod #33 那就没办法了
    mXw
        35
    mXw  
       198 天前
    这个情况,要么漏洞,要么内鬼
    HojiOShi
        36
    HojiOShi  
       198 天前
    @AnnaIsGod #33 不是吧,想 ROOT 这种机型你还去升级系统?!
    junyee
        37
    junyee  
       197 天前
    我的做法是没有重大功能/性能缺失或 BUG 能不升级就不升.
    软件厂家很次升级都号称优化内存占用,鬼信.
    安卓 才几年就从 普遍 256M RAM 飞升到现在 8G,12G 的.
    而且无论你多大的内存,进桌面 可用 RAM 几乎只有一半.
    AnnaIsGod
        38
    AnnaIsGod  
    OP
       197 天前
    @junyee 又不是你想不升就不升,只要你连接 wifi ,有些机型就后台自动下载 ROM ,然后在半夜自动更新,你不特意去看系统版本甚至是无感知的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1265 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:34 · PVG 01:34 · LAX 09:34 · JFK 12:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.