下载:
参考:https://source.android.com/docs/setup/download/downloading?hl=zh-cn
1.创建源码目录
cd ~
mkdir AndroidSourceCode
cd AndroidSourceCode
2.配置 git 信息(已经配置则跳过)
git config --global user.name ykun089
git config --global user.email ykun089@163.com
3.关联仓库(只是关联仓库信息,不会同步到本地磁盘)
repo init -u https://android.googlesource.com/platform/manifest -b android-security-10.0.0_r75
或者使用国内源(推荐)
export REPO_URL="https://aosp.tuna.tsinghua.edu.cn/git-repo"
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r33
如果需要其他分支,则改变 -b 的参数,见 分支列表
可能的异常:
file=sys.stderr) ^ SyntaxError: invalid syntax
解决:
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ./repo chmod a+x ./repo python3 repo init -u https://android.googlesource.com/platform/manifest -b android-security-10.0.0_r75
上述异常是因为repo版本和python不匹配造成,如果出现上述异常,则在后续执行repo的时候都需要机上 python3 以指定 python 解释器。
4.同步代码到本地磁盘
repo sync -c -j8
或者
python3 repo sync -c -j8
编译:
配置编译环境
. ./build/envsetup.sh
选择目标机型
lunch
1.获取lunch操作的参数,如果参数不为空,参数则为指定要编译的设备型号和编译类型;如果参数为空,会调用print_lunch_menu来显示Lunch菜单项,读取用户的输入,存入answer。
2.如果answer为空,即之前在lunch菜单用,用户只敲了一个回车。会将默认选项改为aosp_arm-eng,结果存入selection。
3.如果lunch操作得到的输入是数字,则将数字转换为LUNCH_MENU_CHOICES中的字符串,结果存入selection。
选择默认选项 1 即可。
开始编译
make -j4 :编译所有
mm: 编译当前目录下的模块,它和mmm一样,不编译依赖模块;
mma: 编译当前目录下的模块及其依赖项