1.repo工具下载及安装
mkdir ~/android-repo
cd ~/android-repo
git clone https://aosp.tuna.tsinghua.edu.cn/git-repo/
chmod a+x git-repo/repo
然后添加repo(路径目录如:~/git-repo/repo)到PATH环境变量
export PATH=~/git-repo:$PATH
然后到打开 ~/git-repo/repo 文件,将 REPO_URL 替换为清华镜像地址,以避免下载 android 源码时可能出现的无法连接到 gerrit.googlesource.com 问题。
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
2.Android 源码下载
首先创建一个自己存放源码的目录,cd 到对应的路径下执行下面命令:
mkdir ~/android-repo/android-source
cd ~/android-repo/android-source
repo init --depth 1 -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r52 (相当于 git init\clone )
repo init --depth 1 -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r43 如果不需要看以前的历史记录,设为1即可
repo sync (这个过程时间较长,可能需要2个小时以上)
注意:在 ubuntu 分配至少 250 G 空间
3.Ubuntu 18.04 编译环境配置
首先得配置 openjdk-8
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-8-jre
然后配置在 ubantu 18.04 中编译 android 源码需要的一些依赖
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
4、编译Android源码
始化编译环境,命令
source build/envsetup.sh
选择编译目标
lunch aosp_arm64-eng
或 lunch aosp_x86_64-eng
开始编译与运行模拟器
make -j32
emulator
5、相关错误说明
(1)_nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME)
export LC_ALL=C
export USER=$(whoami)
(2) echo $PATH — 查看环境变量
/etc/profile 中设定的变量(全局)的可以作用于任何用户,
而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile 中的变量,他们是"父子"关系
alias python='/usr/bin/python3.6'
/usr/bin/env python 改成 /usr/bin/env python3
6、参考文档:
(1)在谷歌云上高速编译安卓AOSP ROM、驱动、内核并完成刷机
(2)AOSP 源码编译及刷入Nexus 5
(3)使用 Android 模拟器运行自定义 Rom