当前位置:主页 > 刷机教程 >

破解官方Recovery签名机制轻松1改0

分类栏目:刷机教程

14167

破解官方Recovery签名机制轻松1改0

提醒:修改方法相对简单,但得到修改方法的过程略微复杂,还涉及到一点点ARM汇编语法知识。感兴趣能折腾的人士可以尝试~仅供参考~

修改方法:
 
1、把官方recovery备份出来:在fastboot下临时进入第三方recovery,把氢OS给root后,使用Rashr的备份recovery功能进行提取,备份出来的recovery镜像在/sdcard/Rashr/recovery-backups/下面。(或者熟练adb命令的加油可以使用adb shell或者terminal用dd语句直接备份出来,参考语句dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of=/sdcard/recovery.img)

2、使用ROM大师或者蘑菇ROM均可对recovery.img编辑;
破解官方Recovery签名机制轻松1改0
3、找到ramdisk里面的sbin文件夹下的二进制recovery文件,这个就是我们要改的文件。
 破解官方Recovery签名机制轻松1改0
4、使用十六进制编辑器(UltraEdit,WinHex等)修改0005646位置的1为0,然后保存。
 破解官方Recovery签名机制轻松1改0
5、替换回原来的bin下的二进制recovery文件,使用对应工具重新打包。
 破解官方Recovery签名机制轻松1改0
6、此时打包好的recovery已经绕过的官方签名认证,即使认证不通过,对应的zip包一样可以刷写~
(官方recovery不支持dummy的updater-script,所以官方supersu不可使用,必须使用修改后的supersu进行root,这里一并提供下载~)
先不要下这个Recovery,8月14日后的氢OS底层有变动  dlhxr_OnePlus_SuperSU_Pro_v2.46_iKiraCN.zip H2OS_stock_re_crack.rar 
刷入这个recovery后,每次重启还会被氢OS恢复成官方原装的recovery,想阻止这个过程就刷一下这个zip包~
注意:任何对系统的改动都会导致无法ota哦~
 Disable_Recovery_Flash.zip
 
深层次原理:如何找到二进制文件recovery需要修改的位置
 
1.获得了二进制recovery文件后,使用进行IDAPro反编译,下载可以自行搜索或者用下面这个链接
链接: https://pan.baidu.com/s/1DtUkWAmxkaOSt8ClKihcAg 提取码: 8674
2.解压后打开idaq64.exe(32位电脑打开idaq.exe),并点击Go
 破解官方Recovery签名机制轻松1改0
3.打开之前的二进制recovery文件,一路点击ok
 破解官方Recovery签名机制轻松1改0
4.点击Search for text,输入signiture关键词
 破解官方Recovery签名机制轻松1改0
5.一般搜索到第一个就差不多定位到相关代码位置了~
 破解官方Recovery签名机制轻松1改0
6.然后我们再看看R0的值是在哪里赋过来的~跳到把R0赋值到R8的上一个函数那里
 破解官方Recovery签名机制轻松1改0
7.跳到sub_D384段
 破解官方Recovery签名机制轻松1改0
8.选中not enough字段点右键然后Graph view
 破解官方Recovery签名机制轻松1改0
9.发现好多代码块都汇总到了loc_D642,那么就看看这个loc_D642是啥
 破解官方Recovery签名机制轻松1改0
10.基本确定,这里把1赋值给了R0,导致后面R0赋值给R8,验证R8是否为0,如果不是0就刷机失败
 破解官方Recovery签名机制轻松1改0
11.那我们直接把这里的#1改成#0即可,位置在0005646,打开WinHex修改,大功告成!
 
12.刚才看了一下一加二的官方recovery,有几点不同。
(因手上没有二代机器,二代recovery是从xiping3501修改过的re中提取出来看的,希望不要介意哦~)
①关键变量不是R0,而是W0。
②把1赋值给W0的过程并不是一次完成的,而是在8种不同的错误中分别完成的,具体参考下图。
 破解官方Recovery签名机制轻松1改0