Android (Android Open Source Project) 是一个开源的移动操作系统,它在底层运行 Linux 内核。它主要设计用于智能手机和平板电脑等触屏移动设备。作为一个开源操作系统,任何人都可以为任何设备构建它。
今天我们将从设置我们的构建环境开始,同步 AOSP 源,然后构建 AOSP。
设置环境
确保您运行的是 Linux 操作系统(首选 Ubuntu)。我将以 Ubuntu 为例。
首先,我们将在基于 Ubuntu 的系统中安装以下软件包,这些软件包是构建 AOSP 所必需的。
sudo apt update
sudo apt install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-gtk3-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev python ssh python2 patchelf binutils
让我们在构建环境中设置我们的 git 凭据。
git config --global user.email "username@client.com"
git config --global user.name "Your Name"
让我们repo现在安装。
mkdir -p ~/.bin
PATH="${HOME}/.bin:${PATH}"
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+rx ~/.bin/repo
同步源
当我们为构建 AOSP 设置构建环境时,让我们同步 AOSP 源。
首先让我们创建一个名为aospusing的新文件夹mkdir并使用导航到它cd
mkdir aosp
cd aosp
现在我们必须在当前文件夹中启动 AOSP 清单。
repo init -u https://android.googlesource.com/platform/manifest -b BRANCH
在这里,
BRANCH ->
要同步的AOSP分支。它主要是Android版本及其标签。假设您想同步Android 12.1版本r2标记。你必须把android-12.1.0_ r2放进去。
或者,如果不想提交源代码的历史记录,可以在repo init
中的-u之前添加–depth=1选项。
启动AOSP清单后,下一步是同步源,这可以通过repo
命令完成。
repo sync
或者,您可以使用repo sync命令添加选项。几个常用的选项是:
--force-sync->
此选项强制将源同步到当前源并取消源中所做的任何更改。
-jx->
它提到了用于同步源的线程数。x 表示线程数。示例:-j4表示同步将使用 4 个线程。
构建 AOSP
如果您按照以下步骤操作,我相信您已经成功同步了 AOSP 源代码。现在您可以为您的 Google Pixel 设备或任何其他设备构建 AOSP(需要克隆外部设备树)。
完成设备树后,只需按照步骤开始构建 AOSP。
envsetup.sh
使用脚本初始化 AOSP 环境。
. build/envsetup.sh
或者
source build/envsetup.sh
然后我们必须到lunch设备。
lunch aosp_device-buildtype
在这里,
device->
设备代号
buildtype->
构建类型:user
用于生产构建,userdebug
用于类似于用户类型的可调试构建,eng
仅用于调试,不推荐用于生产。
例子:
假设我想为 Google Pixel 6a userdebug 构建构建,所以我的午餐命令将是:
lunch aosp_bluejay-userdebug
在这里,
bluejay
-> Pixel 6a 的设备代号
userdebug
-> 构建类型
然后,我们终于可以通过运行以下命令开始为我们的设备编译 AOSP:
make otapackage
这将为您的设备制作一个可闪存的 AOSP zip。编译完成后,您将在out/target/product/devicecodename目录中找到您的 zip。