2014 年,罗永浩声称要开放锤子手机的 Bootloader 功能 ,两年后,44岁的他因食言而站上被告席,之后罗永浩发布微博致歉,表示该计划因安全理由被技术人员否决掉了。
然而以苹果越狱闻名世界的盘古团队却“不务正业”,开始搞锤子。就在2月6日,他们发布微博表示已成功破解锤子手机的 Bootloader 功能,满足发烧友们的期待。
不少读者朋友可能对 Bootloader 并不太了解,以至于会产生如下疑问:
老罗的计(qing)划(huai)为何会被否决?
Bootloader 是什么?解锁后意味着什么?
发烧友们为什么希望厂商开放 Bootloader?
众多手机厂商为何紧抓 Bootloader 不放?
盘古团队又是如何将之破解的?
今天雷锋网宅客频道就用通俗易懂的方式和大家聊聊——盘古破解锤子手机 bootLoader锁 那些事儿 。
BootLoader ——启动引导器,简单来说就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
不严谨的讲,Android 系统中的 Bootloader 和 PC 的 BIOS有些类似,它可以引导 Android 系统正确启动。
有人曾把 Android 系统比喻为在球场上疯狂砍分的科比,Bootloader 就是传奇教练菲尔·杰克逊,只有他才能调动起科比的情绪,布置好进攻方式和防守阵型,把科比的潜能充分激发出来。只要这些都准备好了,科比就能攻无不克战无不胜;此外,教练也能从球员中选出发挥稳定、适合自己球队风格的球星(官方ROM或基于官方ROM的第三方固件)上场比赛,而拒绝一些与球队风格不合的球员加入(民间ROM)
BootLoader 既然要执行硬件初始化,那必然和硬件相关,所以它的代码并非通用的,不同的硬件需要不同的 BootLoader 代码,各大厂商可能都有自己的,也可能有一些通用的。使用高通处理器的手机通常 Bootloader 都是基于一个叫LK( little kernel ) 的东西做的,比如锤子手机。
据雷锋网了解,发烧友们常说的刷机,一般分为"卡刷"和“线刷”,两种方式都可以将第三方的手机系统 ROM 包刷入设备当中。
不同的是,卡刷是把 ROM 包放在手机内存卡里刷;“线刷”是手机连着电脑,用电脑来输入刷机指令。无论卡刷还是线刷,都是在 Bootloader 之后进行的, Bootloader 大门一锁 ,什么刷都没得玩。
在 Bootloader 初始化手机硬件之后,通常可以用组合键(比如开机键 + 音量键 )进入Fastboot 模式,用电脑对手机输入指令,可以理解为实现了一个简单的通信协议。
如果没有进入Fastboot 模式,则可以通过另一个组合件进入 Recovery 模式,Recovery ——“恢复模式”,相当于PC上常见的“一键还原精灵”、Ghost系统等,可以用来刷手机系统的 ROM 包。
如果既没有进 Fastboot 模式也没有进 Recovery,那么 Bootloader就开始通过 Boot image 读取手机的系统内核,然后启动 Android。
看懂 Bootloader 的重要性,就会知道手机厂商一旦开放 Bootloader ,至少要面对这三大麻烦:
手机厂商通常和网络运营商合作推出合约机,难免内置预装软件 ,预装软件通常无法自行删除,一旦开放 Bootloader,运营商及合作伙伴的利益无法保障。
手机厂商各自的UI实则是最鲜明的品牌烙印,一旦 Bootloader解锁,用户买了你的手机却用别人家的系统,手机厂商就有可能沦为单纯的制造商。
罗永浩此前曾语带轻浮地讽刺过魅族不提供该解锁 Bootloader 功能,是对自家 UI 系统的“不自信”。想必老罗刚开始计划开放 Bootloader 功能,也是出于对 Smartisan OS 爆棚的自信。
手机刷入的第三方固件可能会存在各种各样的Bug,轻则影响用户体验,重则引发手机睡死、过热、漏电等现象,稳定性难以保证。从数据安全方面考虑,当用户的手机不慎遗失,如果 Bootloader 没锁,对方可以随心所欲地刷入第三方系统,轻而易举取得手机中的隐私信息,“查找我的手机”、“远程抹除数据”之类安全功能完全失效。
正因为牵扯太多问题,手机厂商们对待 Bootloader 的态度由紧到松又到紧,经历了一次倒U型变化。目前大多数厂商都锁了Bootloader,不同的是,有的提供了官方的解锁渠道,比如“发烧”的小米,但解锁之后仍会失去保修,有的则干脆禁止 Bootloader 解锁。
事实上,正如老罗所说,其实2014年他们可能确实考虑对 Smartisan OS 开放Bootloader ,因此在初代ROM中保留了解锁的功能,但其后该功能的大部分指令都被“阉割”,也许正是考虑到安全等问题。
对于T1和T2手机,2.6.7 是最后一个可以解锁的 ROM 版本号。
根据盘古在微博中所述,在被破解的锤子T2 手机中,其中涉及 Bootloader解锁的一个安全分区使用了 RSA+MD5 两种加密算法进行签名校验,在这个过程中,盘古发现了由于技术人员对加密算法不太熟悉,导致了两个的逻辑漏洞:
在 RSA 加密算法中,有公钥和私钥两把“钥匙”,公钥是公共的,私钥掌握在加密者手里,原本这两把钥匙应该是相互独立的,但一个小错误让盘古团队直接通过公钥推导出私钥。
第二个漏洞是其中MD5算法中的某个值可以任意指定,盘古团队将其设置为 0 之后,可以让原本瞬息万变的哈希值固定为某一个数值。
通过这两个漏洞,他们成功构造校验签名,将一台装载 2.6.7版本 Smartisan OS 的锤子手机解锁。
盘古团队在文中表示,目前锤子手机的系统已经升级到 3.x 版本,解锁需要先将系统版本降级至 2.6.7 的版本,利用旧版 Bootloader 存在的漏洞进行解锁,解锁完成后再在不更新 Bootloader 的情况下升级回原来版本的系统,操作相对繁琐。
据雷锋网了解,从原理上看来,锤子科技如果一心要防止用户利用该漏洞解锁 Bootloader,只需通过ROM签名验证等方式,让用户无法降级回 2.6.7以下版本即可让此破解方式失效。
锤子科技将如何处理此次破解事件,目前还尚未可知。但无论如何,安全总是第一位的,借用盘古团队对老罗未兑现承诺一事的评价:“ 能从认为加锁是对系统的不自信,到后来发现解锁是安全隐患,绝对是个进步(loser口中的打脸)”
雷锋网