文章目录
- 前言
- 1 准备一台Ubuntu系统电脑
- 2 安装依赖工具
- 3 安装 repo
- 4 下载 AOSP 源码
- 5 整编AOSP
- 6 运行
前言
作为Android应用层开发多年, 一直不了解 Framework和Android系统的运行原理真的说不过去。希望本篇博客可以带你构建自己的Android系统,打开通向 Framework的大门。
1 准备一台Ubuntu系统电脑
笔记本大部分都是Windows系统, 可以参考以下视频再装一个Ubuntu系统(建议选Ubuntu 20.04 LTS)
Windows 和 Ubuntu 双系统的安装
这里要着重强调以下几点
- 物理内存最低8G (不然运行真的太慢了)
- 分配磁盘空间 /home 在300G以上 (不然编译失败会提示没有空间)
- 电脑设置常亮不休眠,保证可以夜以继日工作
2 安装依赖工具
打开终端输入如下命令
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
3 安装 repo
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod +x ~/bin/repo
# 以下这条命令可以添加到 `~/.bashrc` 文件中
export PATH=~/bin:$PATH
4 下载 AOSP 源码
选择指定的Android版本 (这里选择了 android-12.1.0_r27,不建议编14,语法太新,遇到问题没有解决方案)
源代码标记和 build
mkdir aosp
cd asop
# 初始化repo,指定源码分支为 `android-12.1.0_r27`
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r27
# 同步远程代码,大概2h左右时间,耐心等待。。。
repo sync
5 整编AOSP
# 初始化环境
source ./build/envsetup.sh
# 选择编译目标
lunch sdk_phone_x86_64
# 最大线程数编译,这一步十分耗时, 大概8h左右,建议晚上睡前make,第二天起来才能编好
m
不出意外的话, 执行 m 命令后会报错,按照错误提示简单Google一下就能找到答案
编译是一个极其漫长的过程, 如下图所示的一次编译就要了8h14min (我睡醒了还没编好。。。。)
6 运行
emulator
恭喜💐 属于你的Android系统就这样被启动,接下来你可以好好把玩你的Android系统了!