编译 Android 11
本篇文章主要介绍如何编译 Android 系统, 其中包括 uboot, kernel, aosp 编译打包等内容
环境配置
系统环境
apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig
Repo下载
Repo 是 Android 开发中用于管理多个 Git 仓库的工具,它是一个Python脚本,方便开发者对多个 Git 库进行版本控制和管理。 Repo 的下载可以使用以下命令
wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/bin/
or
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
源码下载
$ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml $ repo sync -d --no-tags -j4
镜像编译
镜像编译可以使用两种方法
方法一 (推荐)
使用 SDK 编译脚本方式编译
$ source build/envsetup.sh $ lunch rk3399_ROCKPI4B_Android11-userdebug $ ./build.sh -UACKu
等待编译完成就可以在 IMAGE 目录找到镜像
方法二
可以根据这个方法一步一步编译镜像
- 设置编译项目的环境
$ source build/envsetup.sh $ lunch rk3399_ROCKPI4B_Android11-userdebug
- 编译 U-boot
$ ./build.sh -U
- 编译内核
$ ./build.sh -CK
- 编译AOSP
$ ./build.sh -A
- 制作 Images
$ ./build.sh -u
常见问题
- Android 11 推荐在 Ubuntu 16.04 的环境下编译,其他版本的 Ubuntu 可能会出现编译错误。