首先他利用了BootROM漏洞获取了U-Boot加密密钥,禁用了BL2的的ARB(Anti-rollback防回滚)检查,禁用了BL33的镜像验证,最后利用获取的密钥加密了修改好的U-boot镜像,最后重启,再次利用BootROM漏洞加载修改后的BL2,然后通过USB加载处理好的U-boot镜像,最后成功启动了Ubuntu系统。
另一个人利用了这个BootROM漏洞,开发了Chromecast with Google TV解锁BL工具,这是项目地址
厂商后续的缓解措施:Fire TV在后续生产的批次直接禁用了Download模式,使得外界无法与BootROM进行交互,自然也就间接地缓解了这个漏洞,这个禁用策略是烧写入eFuse的;Chromecast with Google TV则是在2020年1
2月以后生产的批次和2021年2月的固件更新启用了burn-mode password,这意味着没有密码将无法与BootROM进行交互,自然也就无法利用BootROM漏洞了,为了使这个密码不被破解,我估计谷歌是使用了由SoC内部的TRNG(真随机数发生器)生成的高熵密码,写入了eFuse,这样子就没有任何人可以与BootROM进行交互了,包括谷歌自己[受虐滑稽]。好在电视盒子类的硬件非常便宜,如果有问题无法刷机还不如直接换新了,可以这么搞。