首页
社区
课程
招聘
[原创]从1开始学编译Android内核
发表于: 2024-7-14 15:08 3382

[原创]从1开始学编译Android内核

2024-7-14 15:08
3382

最近在学安卓内核编译,边从网上搜资料(太多过时内容,搜索引擎不干人事-_-!!)边自己摸索,终于编译通过,在此做个记录。

为什么是从1开始而不是从0呢,是因为您需要自行准备以下几项环境:

  1. Windows 11
  2. WSL 2
  3. Docker

准备完成,我们开始!
打开命令提示符:
图片描述
硬盘空间要留足20G 20G 20G,重要事情说三遍!然后,复制粘贴如下命令:

1
mkdir android-kernel && fsutil file setCaseSensitiveInfo android-kernel enable && docker run -it --name android-kernel -v /e/android-kernel:/root ubuntu:18.04 /bin/bash

注意上面的/e要换成你自己的操作目录,等命令执行完毕后继续输入:

1
sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && apt update && apt install apt-utils libterm-readkey-perl dialog locales ca-certificates apt-transport-https -y && dpkg-reconfigure locales

弹出语言配置界面:
图片描述
+来到[ ] en_US.UTF-8 UTF-8,然后按Space选中,按Enter然后再选中en_US.UTF-8 UTF-8,最后按Enter确认。
下面这行命令是消除包安装时warning提示用的,非强迫症患者可跳过:

1
rm /etc/dpkg/dpkg.cfg.d/excludes && apt update && dpkg -l | grep ^ii | cut -d' ' -f3 | xargs apt install -y --reinstall && apt install -y man && rm -r /var/lib/apt/lists/*

然后安装编译必须的包:

1
apt update && apt install git gpg python build-essential flex bison zip libxml2-utils xsltproc curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib lib32z1-dev libssl-dev -y

配置git用户信息,自行替换yourusername youremail

1
git config --global user.name 'yourusername' && git config --global user.email 'youremail'

然后:

1
mkdir bin && PATH=~/bin:$PATH && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > bin/repo && chmod +x bin/repo && export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' && repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/kernel/manifest -b android-4.19-stable && repo sync -c -j8

等待完成,android-4.19-stable可自行替换为您需要的版本。

通用版本可从Android common kernels中查阅。

1
BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh -j8

等待编译完成即可,完工。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 4
支持
分享
最新回复 (3)
雪    币: 2376
活跃值: (10510)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
arm的内核也是这样吗
2024-7-15 10:36
0
雪    币: 510
活跃值: (590)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
arm改build_config为aarch64(64)arm(32)
2024-7-16 00:28
0
雪    币: 1407
活跃值: (3014)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2024-7-30 16:55
0
游客
登录 | 注册 方可回帖
返回
//