-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is it possible to disable secureboot persistently? #5
Comments
TLDR:理论上可行,实际上很难;即使能够实现,也不一定具有实用价值。 首先,PBL补丁是通过修改页表映射实现的,修补后的PBL随着设备启动就消失了。但是,通过将关机替换为深度休眠来实现保留代码执行权限的思路是可行的。 如果你有能力: 实际上,关闭到最小状态相对容易,从这个状态重新启动就相当困难了。我尝试过使用Reset Debug功能但是没能成功。 另外,“深度休眠”状态下功耗怎样也很难说,对于这种大型SoC来说,很可能和常规待机差不了多少。所以很可能最终成功了也意义不大。 |
嗯嗯。另外我还有一个问题,为什么修补之后无法启动emmc中的内核,而必须使用sd卡?按理来说emmc的供电已经有了,怎么会没法访问呢? |
这个也是我一直没解决的疑问了... 总结一下,目前我所了解的情况是:
还有一点:我尝试过两个land,emmc vendor分别是Samsung和Toshiba,问题完全一致,因此基本可以排除emmc本身的问题。 其他情况我就不清楚了,也记不清了。 我的猜测只能是某些寄存器的配置在EDL启动路径上和正常启动不一样,并且它还不会被常规的block asynchronous reset之类的局部复位给清掉,导致后面的重新引导路径都受影响。但是我甚至手动对比过寄存器也一直没找到问题在哪。Nokia的底层版本、EDL版本和电路设计的组合或许刚好避开了这个问题。 如果你用emmc启动的话其实也有很多问题要解决,比如原版SBL1如何与patch版共存,可以改分区GUID但是也很麻烦;另外,原版的底层是不能删的,因为我试过,如果SoC冷启动直接进EDL,然后执行lk4edl的启动路径的话,后面的SBL1会直接甩进9008,具体什么情况我也不清楚,总之肯定又是某些模块的寄存器初始化的问题。 另外,其实KVM也一直是一路坎坷,在3.18内核上用qemu-kvm启动WoA到内核阶段会直接导致主机重启(UEFI阶段不会),主机内核应该是报了一个data abort。3.18的kvm启动Linux倒是没问题。不过4.9上两个都不行了,很无语。我记得最后我用一个配置启动过WoA,但我已经忘记当时怎么配的了。毕竟我是强行把主机内核改到EL2的,而8937原本底层是不用HYP,所以TZ估计根本没有考虑过EL2,出各种问题也不意外。 平台大了,底层也不开放的情况下,玄学问题会很多。这个问题最彻底的解决办法,大概就是了解清楚启动的细节,然后实现一个开源的SBL1罢,不过我在放弃land和qcom的兴趣之前,都一直没能实现它。8937本来就是各厂的secboot刚普及的那几代平台,况且mainline kernel的支持一直不是很有希望,我建议对底层感兴趣的话还是去玩8916吧...甚至还能从sd接口连jtag呢... |
嗯嗯,感谢。 |
你好,我看到了你的研究,感觉非常有意思。目前我打算在华为使用msm8937或者msm8953的设备上复刻。我的目标很简单,就是以EL2加载内核,启动KVM和主线linux。但是有一个很大的缺点是每次重启设备都需要重新连接usb进入edl。有没有一种办法可以修补负责关机的程序,让设备在关机时保留给内存供电,这样下次开机时还是使用修补后的PBL?你可以直接说中文。
Hello, I have seen your research and find it very interesting. Currently, I plan to replicate on Huawei devices using MSM8937 or MSM8953. My goal is simple, which is to load the kernel with EL2, start KVM and mainline Linux. But there is a big drawback that every time the device is restarted, it needs to reconnect to USB and enter EDL. Is there a way to patch the program responsible for shutting down, so that the device retains power to the memory during shutdown, and the patched PBL will still be used during the next boot?
The text was updated successfully, but these errors were encountered: