免责声明:

该过程需要一定的内核开发和 Git 操作经验,建议在正式升级前先在模拟环境或备用设备上验证。祝你升级顺利!

本教程以 Realme GT5(芯片平台为骁龙 8 Gen2,在github上面的soc代号为SM8550,内核版本基于 Linux 5.15) 为例,详细演示如何将官方开源内核通过合并高通 Code Aurora Forum(CAF)的最新源码,实现 Kernel Source从官方基线升级到高通 CAF 的最新标签,从而适配更新的 Android 版本(例如从 Android 13 升级到 Android 14)。整个过程主要使用 git 进行版本控制与合并,并解决可能的冲突。

前置准备

1. 环境要求

  • 操作系统:Ubuntu 20.04 或更高版本(推荐 22.04 LTS)

  • 我个人喜欢土耳其的Pardus OS‌,基于 Debian,用xfce省内存些。或者用Linux Mint,我感觉比Ubuntu更稳定。

  • 磁盘空间:至少 100GB 可用空间

  • 内存:16GB 以上(编译内核需要)

  • 已安装的软件包

     
    sudo apt update
    sudo apt install git build-essential bc bison flex libssl-dev libelf-dev \
        device-tree-compiler lz4 python3 python3-distutils python3-pip \
        ccache u-boot-tools

2. 获取 Realme GT5 官方内核源码

Realme 官方会在 GitHub 上发布内核源码,仓库通常命名为 realme_kernel 或类似。对于 GT5,需查找对应型号(如 RMX3820 或 RMX3823)的仓库。

git clone https://github.com/realme-kernel-opensource/realme_gt5_kernel.git
cd realme_gt5_kernel

注意:如果官方未提供公开仓库,可通过 Realme 开源网站(http://download.realme.com/opensource)下载压缩包,解压后进入目录。

3. 确定当前内核版本及 CAF 基线

进入内核源码目录,查看 Makefile 开头的几行,确定内核版本号:

head -n 5 Makefile

输出示例:

VERSION = 5
PATCHLEVEL = 15
SUBLEVEL = 78
EXTRAVERSION =
NAME = Trick or Treat

可知当前内核为 5.15.78。

接下来需要确定 Realme 官方内核是基于哪个 CAF 标签。通常 CAF 分支命名格式为 kernel.lnx.5.15.rX-rel(X 为数字)。可以通过以下方式推断:

  • 查看 arch/arm64/configs/vendor/ 下的 defconfig 文件名(如 vendor/realme_RMX3820_defconfig),有时会在注释中标明 CAF 基线。

  • 通过 git log 查看最早提交,或查找 CAF 相关的提交说明。

如果官方仓库中保留了 CAF 标签,可以查看所有标签:

git tag | grep -i "kernel.lnx"

若没有,则需从高通 CAF 的 kernel/msm-5.15 仓库查找与设备匹配的基线。通常 Realme 会基于某个特定的 CAF 标签(如 kernel.lnx.5.15.r8-rel)进行开发。

4. 克隆 CAF 内核仓库并添加为远程仓库

高通 CAF 内核源码地址为 https://source.codeaurora.org/quic/la/kernel/msm-5.15,将其添加为远程仓库,方便合并更新。

git remote add caf https://source.codeaurora.org/quic/la/kernel/msm-5.15
git fetch caf

此时会拉取 CAF 仓库的所有分支和标签,耗时较长(约数 GB)。可以只拉取需要的标签以节省时间:

git fetch caf refs/tags/<TAG_NAME>:refs/tags/<TAG_NAME>

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐