Linux驱动(5)--关于Bootloader
关于BootloaderBootloader分为Bootloader1和Bootloader2,一下简称BL1和BL2。Bootloader1可以放在四个地方:NAND, SD/MMC, eMMC, USBBL1在iROM上运行,因为iRAM上电就可以用,iRAM就是4412芯片内部的RAM,不用初始化就能用BL2是uboot的一部分,是uboot的前面一小段程序,也就是前14K,这前1...
·
关于Bootloader
Bootloader分为Bootloader1和Bootloader2,一下简称BL1和BL2。
- Bootloader1可以放在四个地方:NAND, SD/MMC, eMMC, USB
- BL1在iROM上运行,因为iRAM上电就可以用,iRAM就是4412芯片内部的RAM,不用初始化就能用
- BL2是uboot的一部分,是uboot的前面一小段程序,也就是前14K,这前14K也是要在IRAM里面运行的,也就是说BL1和BL2都在IRAM里面运行。
- bootloader和手机的安全关系非常密切,如果能够控制BootLoader,iPhone的越狱,Android的root以及在手机安装第三方ROM都不成问题。所以要防止BootLoader被篡改
- 怎么保护BootLoader1?
在上电启动IROM程序以后,加载BL1的时候,要对BL1进行多种安全检验,防止BL1是假的,然后BL1会对BL2进行各种检验,直至操作系统linux。 - BL1的结构
①header中有两部分内容,number of sector 就是BL1的大小,checksum value就是累加和校验。就是说把整个BL1主体部分的内容累加和放到这里,然后实际计算下整个累加和,做对比,如果不对,就说明BL1是假的或错误的,不予执行。
② Encrypted BL1 Binary 部分 就是已经过加密的BL1代码。
③ Signature部分是客户和三星的公钥以及签名文件
三重安全等级保护BL1 - BL2实际就是一个uboot,然后取出前14K就是了。
- BL1,BL2和UBOOT在EMMC里面的分布:
- BL2的结构
最上面的那部分其实就是14K,然后下面是checksum(校验),signature(签名),padding(补齐16K)。BL2的主体部分没有加密但是下面有签名。另外uboot也是要补齐的,补齐到328K。
10. 开发板的BL1和BL2是没有经过secure boot的,但是本身是安全的,由三星提供。但是BL1不在对BL2进行secure认证了。开发板的BL1的名字是:E4412_N.bl1.SCP2G.bin 中间的N就是表示这个意思。E4412.TZ.SSCR.EVT1.1.bin 这个就是一个要求认证的BL1,它会对下级的BL2进行签名认证
更多推荐
已为社区贡献9条内容
所有评论(0)