AOSP源码环境搭建
下载源码
AOSP源码是通过Repo和Git管理的,下载之前需进行基本的配置。
配置Repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
配置Git
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
开始下载
这里提供两种方式:
1、谷歌官网方式
https://source.android.com/docs/setup/start?hl=zh-cn
2、清华大学镜像方式(推荐)
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
编译源码
在编译源码之前,可先了解下AOSP源码的编译工具相关内容。
经过数小时源码下载后,我们正式开始AOSP代码的编译。
完整编译
整编命令就4个,只是比较耗时,单独编译一次数小时。
官方参考文档
https://source.android.com/docs/setup/build/building?hl=zh-cn
设置环境
source build/envsetup.sh
或者
. build/envsetup.sh
选择产品
lunch
开始构建
make
单独模块编译
以Settings为例,执行完 source
和 lunch
命令后,
cd packages/app/Settings
mm
或者
make Settings
常用命令及说明
m
:等同于make
,进行一次完整编译。mm
:在当前目录下编译所有模块,但不包括依赖项。mmm [目录]
:编译指定目录下的所有模块,但不包括依赖项。只编译指定模块:mmm [dir/:target1,target2]
mma
:在当前目录下编译所有模块,包括依赖项。mmma [目录]
:编译指定目录下的所有模块,包括依赖项。make clean
:删除整个out/
目录。make clobber
:用于清除编译缓存。make snod
:当重新编译部分模块完成后,快速生成system.img文件。cgrep
:对C/C++文件执行grep
(只搜寻C/C++文件类型,也包括.h类型)。jgrep
:只对Java文件执行grep
(只搜寻Java文件类型)。resgrep
:只匹配/res
目录下的 xml 文件。sepgrep
:只查找sepolicy文件。
评论区