在过去的几周中,我们发布了许多有关官方Android11更新和基于Android11的自定义ROM的文章。甚至还有一个特殊的自定义通用系统映像(GSI)构建,任何人都可以在其ProjectTreble兼容设备上体验Android11。但是,在通用内核开发领域还没有取得类似的成就。如果特定Android智能手机的每个硬件组件都可以上游到主线Linux内核,则该设备应该能够引导任何常规GNU/Linux发行版本而无需进行其他更改,这也使跟上更新的AOSP版本变得容易得多。。现在,资深内核开发人员PavelDubrova,AKAXDA成员Cubbins展示了实际在AOSP11.0自定义ROM下运行主线Linux内核的SonyXperiaM4Aqua。
与所有Android设备一样,2015年的SonyXperiaM4Aqua在修改后的Linux内核上运行。Google通常会采用MainlineLinux内核版本,然后对其进行修改以支持当时的最新Android版本–他们称其为“AndroidCommonKernel”。然后,芯片组制造商(在本例中为Qualcomm)采用AndroidCommonKernel并对其进行进一步修改以制造SoC专用内核。然后,OEM/ODM(如Sony)采用SoC特定的内核,并进行进一步的更改以支持其硬件或额外的供应商组件-我们将其称为设备特定的内核。
因为Linux内核是根据GNUGPLv2许可证分发的,所以要求分发内核分支的所有实体(包括在商业设备上运送的Linux内核Blob)都应根据请求提供其内核的源代码。索尼确实发布了基于LinuxKernel3.10的XperiaM4Aqua的内核源代码(代号为“tulip”),但是考虑到该手机版本太旧,无法支持ProjectTreble,因此官方源代码树还不足以支持将最新版本的Android(或任何Linux发行版)移植到此设备。
帕维尔(Pavel)也为postmarketOS项目做出了贡献,他从头开始为XperiaM4Aqua创建了一个自定义设备树,以支持主线Linux内核(请注意,此处的“主线”与Google自己的“项目主线”无关)。开发人员还为该手机上传了一个可随时刷新的AOSP11.0版本,该版本随附了预编译的LinuxKernel5.9RC7。
截至目前,ROM中缺少许多特定于硬件的功能,但这还可以,因为我们仍处于早期阶段,随着时间的流逝,这些功能将在源端得到修复。我们希望对Linux内核中几乎所有关键硬件组件的官方支持将为将来的Android版本以及其他基于Linux内核的操作系统移植到XperiaM4Aqua和其他类似设备铺平道路。如果您想了解更多信息,请查看下面链接的XDA线程。