事情经过
最近刷印度网友制作的Infinity-X 3.7 Android 16 QPR2 ROM的时候遇到了疯狂锁屏的问题。查看日志发现出现大量:"Macle hall report key s " 错误,猜测是霍尔传感器的bug。反馈给作者,说应该是内核的问题。
后来有网友提出Los的内核可以解决这个bug,刷了后结果不开机。但是刷回最新的带KernelSU-Next的内核时,发现bug消失。 遂分析内核zip包,发现有问题的ROM和内核,boot.img或AnyKernel-zip解包后都名为Image.gz-dtb,Los的也是,最新的带KSUN的是Image.gz,不带dtb字样。瞬间反应过来是dtb的问题。随后上网查了下,红米Note5没有单独的dtb.img,dtb文件需要直接二进制附在Image.gz文件后,dtb文件开头的HEX值是"D0 0D FE ED" 随后的四个字节代表了文件大小。
使用extract-dtb来解包los内核和有问题的内核,发现只有一个01_dtbdump_Qualcomm_Technologies,_Inc._SDM_636_PM660_+_PM660L_E7S.dtb,而有问题的内核解包后有一堆dtb文件,其中只有一个是名字接近的13_dtbdump_Qualcomm_Technologies,_Inc._SDM_636_PM660_+_PM660L_E7S.dtb。使用十六进制编辑软件通过搜索dtb的Magicword,替换了有问题内核的E7S文件段落为los的该文件内容后,刷入测试。果然OK了。
总结要点:
1.红米note5的dtb文件是直接二进制附在内核镜像后的;
2.dtb文件开头的HEX值是"D0 0D FE ED" 随后的四个字节代表了文件大小;
3.dtb文件的差异会导致硬件配合软件出BUG。
以上。
相关推荐
- 红米note5本田车型车载蓝牙无声bug修复补丁 2018-05-09
评论0
暂时没有评论