玩转Android Framework:下载对应版本的Android Linux Kernel源码

本文将介绍如何查找和下载对应版本的Android Linux Kernel代码。

系统版本: Ubuntu 22.04 lts

AOSP分支: android-14.0.0_r28

什么是Android Linux Kernel

众所周知,Android是基于Linux的,那么Android Linux Kernel,实际就是指优化过的针对Android的一种特殊版本的Linux,这是官方的文档,里面详细介绍了关于Android Linux Kernel的一些知识:

source.android.com/docs/core/a...

为什么我们需要下载Android Linux Kernel源码

当我们打开AOSP源码的/kernel目录下的时候,我们可以看到AOSP并不包含对应使用的Linux源码,只有预先编译好的各个版本的Linux,这意味着如果我们替换AOSP编译时使用的Linux Kernel版本,或者希望修改Linux Kernel代码在设备在启动Android之前做一些工作的话,我们就必须下载对应版本的Linux源码进行修改和编译。

确认使用的Android Linux Kernel版本

下面我们就要想办找到我们设备所使用的Android Linux Kernel版本,首先打开模拟器,进入Setting->About->Android Version,我们就可以看到我们的Linux Kernel版本了:

我们现在可以看到,我们的Kernel version

6.1.23-android14-4-00257-g7e35917775b8-ab9964412 #1 Mon Apr 17 20:50:58 UTC 2023

下载源码

这里是Android Linux Kernel的git仓库:

android.googlesource.com/kernel/comm...

如果想了解关于Kernel Common中这些分支都代表着什么,可以在这里看到:

source.android.com/docs/core/a...

打开之后我们可以看到如下界面:

然后我们下载代码:

bash 复制代码
git clone https://android.googlesource.com/kernel/common

下载完成之后,我们就能看到如下的文件结构:

切换到指定commit

现在我们已经有了内核源码,下面我们就要切换指定的提交了。

通过上面的Kernel versiong开头后面的那一部分,就可以找到我们的短commit id,也就是7e35917775b8,直接checkout:

bash 复制代码
git checkout 7e35917775b8

等待完成之后,目前的代码就是我们设备所真正使用的Android Linux Kernel源码了。

关于Android Linux Kernel的编译以及如何在emulator和cuttlefish上使用指定编译好的Linux Kernel,后面我会找机会再写一篇。

相关推荐
赵药师1 分钟前
dpkg: warning: files list file for package ‘libselinux1:amd64‘ missing;
linux·运维·服务器
STDD14 分钟前
Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹
linux·服务器·windows
程序员码歌19 分钟前
别再让 AI 自由发挥了:OpenSpec 才是团队协作不跑偏的关键
android·前端·人工智能
liudanzhengxi27 分钟前
CRM系统技术文章
linux·服务器·网络·人工智能·新人首发
南境十里·墨染春水30 分钟前
守护进程编程流程
linux·学习
敲代码的鱼34 分钟前
NFC读卡能力 支持安卓/iOS/鸿蒙 UTS插件
android·ios·uni-app
刮风那天1 小时前
Android 常驻进程如何被查杀?
android
eggrall2 小时前
Linux进程信号——像收快递一样理解 Linux 信号
linux·开发语言·c++
灰色人生qwer2 小时前
Python 规则:带默认值的参数必须放在不带默认值的后面
linux·windows·python
嘿嘿嘿x32 小时前
Linux-实践
linux·运维·算法