boot loader到底是什么东西,解锁原理?概念?

百度上说,可以把它当成电脑的bios,确实是一种底层引导程序。
几个迷惑:
bl锁相当于电脑的bios锁?
解锁是fastboot unlock xxxxxxxxxxxxxxx(密码),小米的解锁机制是解锁工具从服务器中调取这个密码来解锁的?
重点迷惑,解锁之后,boot loader是自我修改(把off变成on)还是有一段解锁数据存放在boot loader的分区(这个分区叫什么?)
如果通过9008重写底层,那么boot loader被重写之后,会不会回锁?
小米所谓的防回滚,为什么不能通过提取旧版线刷包的mbn文件重写bl回滚过去?难道9008刷机仍旧对某些分区存在禁写?

因为我总觉得,除了一次性硬盘(可能不存在),没有无法被格式化的硬盘,因此boot loader也可以像电脑重烧bios一样重写。。要不然他们维修换字库怎么换的

用电脑的「硬盘」来理解显然是不行的,毕竟个人电脑的架构相对于手机来说太老旧了。

解锁标记存放在手机存储芯片的特殊区域里,只有 Bootloader 自身通过专用协议可以读写它。无论通过 9008 还是在系统中,因为都受 SoC 底层的机制的保护,是无法触及到这个地方的数据的。

当然,如果你把闪存芯片撬下来用编程器甚至显微镜去读数据另当别论。但只要是个正常的厂商,这种数据都是有签名校验的,并不是随便把某个值从0改成1这么简单。

哦。。是这样啊,,怪不得有人把旧手机撬字库做硬盘,但对bl锁无解。。还是这里的回复专业!

怪不得…没听说过9008之后又锁回去的

小米这个比较高级,自己加了一层鉴权(而不是其它手机那样直接一解就解开),以防止被线下手机贩子卖给用户前自己私刷第三方系统。

这种机制应该是某种 challenge。简单地说,就是手机和服务器都各自知道一个密钥,手机先生成一个随机数告诉服务器,服务器用自己手上的密钥把这个随机数加密了,让用户把加密后的东西输入给手机,手机再判断下这个输入、和同一个数自己用自己的密钥加密的结果是否一致。这整个过程都不需要暴露出密码,生成的东西也是一次性的,既简单也无法破解。

哦。。了解了。。。谢谢解惑,困扰我很长时间的东西。。听说锤子那个bl锁是用漏洞解的。。锤子那个远没有小米bl锁的高级。。。

锤子是出厂直接预装了一个砍掉了所有 fastboot 指令的 Bootloader,但是用的 boot 签名是 AOSP 源码里的公开密钥,所以可以用 9008 直接烧第三方 boot,和 Bootloader 解锁没啥关系…有几个比较新的机型则是之前快倒闭的时候工厂的人在论坛放了没砍功能的完整 Bootloader,用 9008 替换原 Bootloader 之后就可以用 fastboot 解锁了。

1 Like

哦,明白了。。。。。。。。