Android 源码编译
基础要求
硬件要求
官网链接
环境配置
官方链接
源码下载
创建文件夹
安装源代码控制工具
1 2 3 4
| mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
|
配置repo
1 2
| vim ~/.bashrc export REPO_URL='https://mirrors.bfsu.edu.cn/git/git-repo'
|
初始化镜像仓库
分支列表
1
| repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r47
|
编译
设置环境
1
| source build/envsetup.sh
|
选择编译目标
| 构建类型 |
使用情况 |
| user |
权限受限;适用于生产环境 |
| userdebug |
与“user”类似,但具有 root 权限和调试功能;是进行调试时的首选编译类型 |
| eng |
具有额外调试工具的开发配置 |
构建源代码
-j8:指定8个线程进行编译
droid - m droid 是正常 build。此目标在此处,因为默认目标需要名称。
all - m all 会构建 m droid 构建的所有内容,加上不包含 droid 标记的所有内容。构建服务器会运行此命令,以确保包含在树中且包含 Android.mk 文件的所有元素都会构建。
m - 从树的顶部运行构建系统。这很有用,因为您可以在子目录中运行 make。如果您设置了 TOP 环境变量,它便会使用此变量。如果您未设置此变量,它便会从当前目录中查找相应的树,以尝试找到树的顶层。您可以通过运行不包含参数的 m 来构建整个源代码树,也可以通过指定相应名称来构建特定目标。
mma - 构建当前目录中的所有模块及其依赖项。
mmma - 构建提供的目录中的所有模块及其依赖项。
croot - cd 到树顶部。
clean - m clean 会删除此配置的所有输出和中间文件。此内容与 rm -rf out/ 相同。
构建完成
构建完成后会在out文件夹输出镜像文件
out/target/product/<your product>