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文件。
评论区