BL锁的原理是什么？
Android系统的启动或更新过程大致如下:正常启动: 芯片内部固化的BootROM -> Bootloader -> Boot.img (Linux kernel)-> system.img(Android)OTA刷机包更新: Bootloader -> recovery.img -> 更新OTA刷机包fastoot刷机: Bootloaer->烧写分区镜像 BL锁一般是锁两个方向:1. Bootloader会去检查它加载的镜像boot.img或recovery.img的签名信息，这个签名只有手机原厂能做出来。修改过后的或第三方镜像的签名不存在或无效，Bootloader会拒绝继续启动。boot.img会去检查system镜像签名，如果不是原厂的，拒绝启动。recovery会去检查OTA刷机包的签名，不是原厂的拒绝更新。2. 一般出厂机器会禁用常规Bootloader的直接刷机功能。 以上这个流程，其实是secure boot规范的一部分，主要有两个目的:1. 防止用户刷入第三方ROM, 导致系统出现不可逆的损坏，增加售后服务支持和维修成本2. 防止不明系统窃取手机的底层机密信息，比如，HDCP秘钥，各种钱包数据，这些东西应用甚至android系统层都无法直接接触到(一般从硬件层面加密过)，但刷入不明ROM会大大增加泄露破解的风险。也因此，有些机器发现被root之后，钱包功能会被永久禁用。 secure boot是很多服务供应商(收费视频，手机支付，生物特征识别等)要求手机oem厂商必须做到的。 Bootloader锁的解锁原理:在某处存放一个标志，标识有没有解锁，如果解锁了，就放开以上限制。存放这个标志的位置在解锁前第三方app是没有权限读写的，所以不可能绕过官方解锁流程。 正常的解锁过程一般跟电脑软件的注册码实现原理相当，解锁软件根据手机硬件特征生成中间码，把中间码发给服务器，服务器进行某种加密传回来写入特定位置，bootloader会在这个位置检查解锁信息是否合法，合法就写入已解锁的标志，就可以刷入并加载第三方镜像了。解锁码的生成过程一般会用到非对称加密外加私有算法，几乎不可破解，即使拿到原代码也做不到。 官方解锁后一般会失去保修，第三方ROM风险也相当大，极度不建议解锁root。很多人root后装个某某管家某某卫士啥的，感觉就像你把自己家的大门给卸了，在街上找了个不认识的老头来跟你守门。对于不可卸载的内建app，去手机厂商的官方论坛发帖，或打售后电话，申明严重影响正常使用，一般正规厂商都会重视。刷第三方镜像或ROOT之后，各种盗号盗网银密码盗短信微信信息的风险极度增大。原厂(正规厂商)比互联网上你连面都没见过的各种大大更值得信赖。 PC上也有secure boot了。如果电脑够新，可以在BIOS里看到。 转载请注明出处！ ------------------------------------------------------------------ 更多相关知识 