1una0bserver
2024-01-30 11:08:45 +08:00
我觉得应该统一回复下上面将 Android 系统视为固件而认为可以不开放 bl 的。
众所周知,虽然手机早期的系统是设备固件的一部分,且不可修改,但是随着科技进步和智能手机时代的到来,现代手机的操作系统已经逐渐与底层代码脱离,并且可以独立更新,且可做到与设备无关,再将之称为固件,就不合时宜了。Google 为了解决 Android 系统碎片化,上游的系统补丁难以更新到下游设备的问题,通过 project treble ,通用内核映像( gki ),project mainline 实现了 Android 系统更新与设备商固件更新的解构,先是系统 hal 层通过 project treble 实现 vendor 与 framework 的解耦,使得系统层可以刷入不同的系统; gki 2.0 开始则为内核模块提供稳定的 kmi ,使得不同硬件可以刷入通用的 gki 内核来加载私有驱动启动系统;而 project mainline 则使得系统大部分组件可以不再依赖厂商,而是独立地通过 play 商店更新,比如 GPU 驱动。这三者结合,使得 arm 架构中位于 el1 层的 guest OS ,也就是我们日常生活中能接触到的 Android 系统,可以不必依赖固件更新完成升级。你也可以通过刷入 gsi 镜像和支持 gki 2.0 的同 Soc 通用内核镜像来使用跨设备使用一个系统。在解锁后,你可以通过开发者选项里的动态系统更新( dsu )下载谷歌发布的,跨设备通用的 aosp gsi 镜像来体验 aosp 系统,在里面设备的大部分功能都是可用的。这已经很接近于 x86 平台 uefi 的效果了吧,请问这种系统还能算固件吗?