Android 源码 (AOSP) 下载与编译

您所在的位置:网站首页 aosp源码大小 Android 源码 (AOSP) 下载与编译

Android 源码 (AOSP) 下载与编译

2023-09-08 06:49| 来源: 网络整理| 查看: 265

准备工作

在下载 Android 开放源代码项目(Android Open Source Project,简称 AOSP )时,需要进行如下的准备工作:

安装 Python 3; 安装 Git; 安装 Repo。

为了方便后续编译代码,建议所有的操作需要在 Linux 中完成。

安装 Python 3 更新系统软件包库; sudo apt update 安装 Python 3; sudo apt-get install python3 检查是否安装成功。 python --version

要是能够成功显示 Python 的版本号,说明已经安装成功。否则就要回头检查一下,到底是哪个步骤没有成功。

注意:如果你的系统是 Ubuntu 20.04.2 LTS 及其以上安装 Python 3 可能会报 /usr/bin/env: ‘python’: No such file or directory 异常,解决办法是需要创建一个符号链接。1)whereis python3,找到 python3 的位置;2)sudo ln -s /usr/bin/python3 /usr/bin/python,创建符号链接。

安装 Git 下载和安装 Git; sudo apt-get install git 配置环境变量; mkdir ~/bin PATH=~/bin:$PATH 检查是否安装成功; git --version 配置用户信息。 git config --global user.email "[email protected]" git config --global user.name "Your Name"

例如,姓名 张三 的邮件是 zhangsan@example 的话,配置就是:

git config --global user.email "[email protected]" git config --global user.name "San Zhang" 安装 Repo 下载 Repo; mkdir ~/bin curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

报错 Command 'curl' not found, but can be installed with:,解决办法是先安装 curl,命令 sudo apt-get install curl。

权限设置; chmod a+x ~/bin/repo export PATH=~/bin:$PATH 检查是否安装成功。 repo --version 下载 AOSP

确保下载前的准备工作都已经完成后,就可以开始下载 AOSP 了。要是可以访问国外的网络环境,下载 AOSP 的方法可以直接参考 官网方法 。要是在国内的话,可以使用 清华大学开源软件镜像站 。

初始化仓库 先新建一个存放 AOSP 的代码仓库; mkdir android cd android 选择 AOSP 版本;

因为 Android 有很多版本的代码,官网 提供了所有 Android 版本的代码分支,先确认自己所需要的 Android 版本分支。

初始化仓库;

在第 2 步中,选择需要的代码分支,假如需要的是 android-13.0.0_r24 分支的代码,那么初始化仓库的命令就是:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r24

这一步可能会报如下错误:

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle; fatal: error [Errno 101] Network is unreachable

解决方法是在 ~/.bashrc 文件中添加一个路径,步骤如下:

vim ~/.bashrc; 在最后添加 export REPO_URL='mirrors.tuna.tsinghua.edu.cn/git/git-rep… 保存退出。 初始化成功。

执行完初始化命令后,成功的话,控制台会返回:

repo has been initialized in /home/user/android/android 同步全部代码

最后,只需要一条命令就可以同步 Android 源码树:

repo sync

等待下载完成,大概需要花费 4 ~ 5 小时(具体要看当时的网络情况)。

同步单仓库代码

全部同步到本地代码最大的好处就是可以在本地编译 Android 源码。但是,有时候我们不需要编译源码,比如当你只想看某个仓库的代码的时候,那么上述的命令就显得很冗余。此时,可以按照如下的步骤单独下载某个仓库的源码:

Step 1:在你执行 repo init 的路径下,执行 ls -a 找到隐藏文件夹 .repo ,然后查看 manifest.xml 的文件。 ls -a cat ./repo/manifest.xml

只有在 repo init 执行成功的情况下,才可以找到 manifest.xml 文件。

有的公司会直接把仓库信息显示在 manifest.xml 文件中,但是更多时候我们看到的 manifest.xml 信息是这样的:

这时候就需要找到 default.xml 查看里面的内容。

cd ./.repo/manifests cat default.xml

你可以看到每一个仓库的信息:

从 defalut.xml 中找到需要的仓库信息。比如,需要的是 Permission 这个仓库:

cat default.xml | grep Permission

Permission 仓库的信息:

Step 2:同步单个仓库代码,以 Permission 仓库为例。 repo sync -c packages/modules/Permission

最后,就可以在本地查看到想要仓库的代码了。

编译 AOSP source build/envsetup.sh lunch

然后,选择一个想要编译的工程,比如 aosp_raven_car-userdebug 。

在编译的时候,有的主机上会出现 prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No 15:44:33 ninja failed with: exit status 1 错误,此时解决办法是:

32-bit 机器:sudo apt-get install libncurses5:i386 64-bit 机器:sudo apt-get install libncurses5

要是安装时间太久,可以将源更换成国内源,建议使用 清华源。

假如你手上正好有 Pixel 手机的话,可以根据官网提供的 Pixel 设备工程对照表 进行编译。

Android 代码检索

谷歌提供了在线的 AOSP 代码检索网站,可以在不下载 AOSP 的情况下直接检索每个版本的代码:

国内访问速度较慢甚至无法访问。

原生刷机

原生机器指的是谷歌旗下的 Nexus 和 Pixel 终端设备,谷歌提供了相关的刷机工具:

国内访问速度较慢甚至无法访问。

解锁 Bootloader

在刷机前,需要先解锁 Bootloader 和 OEM。步骤如下:

配置 fastboot 环境; 连接网络登录谷歌账号; 开启 OEM unlocking 和 USB 调式; 执行刷机命令。

对于 连接网络登录谷歌账号 不在赘述,可从设置中登录。

配置 fastboot 环境

先检查环境是否可用;

fastboot devices

假如出现 'fastboot' is not recognized ... 的提示信息,可以检测一下 adb devices 是否可用。通常,只要配置了 adb 环境变量就可以使用 fastboot 命令。否则,需要配置 fastboot 环境变量。

若配置环境变量后,还无法使用 fastboot 命令的话,可以看看是否需要安装相关驱动。具体步骤可以参见 这篇文档。

开启 OEM unlocking 和 USB 调式 开启 OEM unlocking; Settings -> About Phone -> Tap on Build Number several times -> Go back to Settings -> System -> Developer Options -> enable OEM unlocking 打开 USB 调试; Settings -> About Phone -> Tap on Build Number several times -> Go back to Settings -> System -> Developer Options -> USB Debugging 执行刷机命令

一切配置完成后,就可以开始执行刷机命令了:

adb reboot bootloader fastboot flashing unlock fastboot reboot 推荐 AOSP 源 清华大学开源软件镜像站 中科大开源镜像站

这些都是比较稳定和可靠的 AOSP 源,并且文档也很规范。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3