0
点赞
收藏
分享

微信扫一扫

Android系统 10.0 AOSP源码编译(二):AOSP源码下载

 配套系列教学视频链接:

​​Android 10 根文件系统和编译系统-51cto学堂​​


说明

系统:AOSP Android10.0

设备:Android模拟器

前言

本章节重点介绍如何下载谷歌官方的AOSP源码。

一, 版本说明

谷歌发布新版本源码之后, 芯片原厂会根据自己的芯片特性进行适配,因为原厂适配Android系统更专业和稳定, 所以在实际开发中,我们都是从原厂或者方案公司那里获取到针对某个特定芯片的特定版本源码,当然了, 芯片原厂适配的周期也会长一些,  作为个人而言,如果想更早的获取到Android 源码, 并且想体现和了解最新版本源码和技术, 那么就可以直接自己去下载谷歌官方的源码。

Android版本说明:

Build

标记

版本

支持的设备

安全补丁程序级别

RP1A.201105.002

android-11.0.0_r17

Android11

Pixel 3、Pixel 3a、Pixel 3a XL、Pixel 3 XL、Pixel 4、Pixel 4a、Pixel 4 XL

2020-11-05

RD1A.201105.003.C1

android-11.0.0_r15

Android11

Pixel 4a (5G)、Pixel 5

2020-11-05

RD1A.201105.003.B1

android-11.0.0_r14

Android11

Pixel 4a (5G)、Pixel 5

2020-11-05

RD1A.201105.003.A1

android-11.0.0_r13

Android11

Pixel 4a (5G)、Pixel 5

2020-11-05

以上表格只摘取部分,详细的可以参考如下谷歌网站:

​​代号、标记和 Build 号  |  Android 开源项目  |  Android Open Source Project​​

Android O(8.0)之后的版本, 相比之前的版本,设计了新的系统框架, 名为Treble项目,将框架和厂商实现部分严格隔离出来,如HIDL和VNDK技术, selinux权限管控,  并新增加了很多功能技术, 如System-as-root,强制A/B设备, 动态分区,APEX模块化升级等。

二, repo工具下载和安装

Android源码中集中了非常多的git子仓库, 为了方便有效的管理多git仓库, 谷歌利用repo对所有git仓库进行管理,并且让用户通过repo工具批量下载Android源码, 所以我们下载Android源码之前必须先安装repo工具, 同时需要注意的是, 因为国内网络的问题, 无法直接访问谷歌安卓源码服务器, 所以国内都是通过清华大学开源软件镜像站或者中科大AOSP镜像网站下载,个人强烈推荐中科大, 速度快,也比较稳定。直接在百度搜索AOSP中科大即可, 链接如下:

​​AOSP(Android) 镜像使用帮助 - LUG @ USTC​​ (中科大)

Android源码下载官方指引:

​​下载源代码  |  Android 开源项目  |  Android Open Source Project​​

下载repo 方法:


mkdir ~/bin

PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

## 如果上述 URL 不可访问,可以用下面的:

## curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo

chmod a+x ~/bin/repo


三, 源码下载

选定android-10.0.0_r45版本进行下载


##指定repo仓库服务器

export REPO_URL='https://mirrors.ustc.edu.cn/aosp/git-repo.git/'

##下载repo仓库,并指定android版本

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-10.0.0_r45

Android系统 10.0 AOSP源码编译(二):AOSP源码下载_android源码Android系统 10.0 AOSP源码编译(二):AOSP源码下载_Android系统源码编译_02​编辑

##下载android源码, 建议用低于4个线程下载

repo sync  -j2


四, 出错处理

下载的过程中如果出错或者警告,可参考如下方法进行解决:

repo版本过低问题:

Android系统 10.0 AOSP源码编译(二):AOSP源码下载_android源码_03Android系统 10.0 AOSP源码编译(二):AOSP源码下载_Android系统源码编译_04​编辑

这是因为repo版本过低, 按照提示更新一下即可:

cp /mnt/extend_disk/android_src/android9.0/.repo/repo/repo /mnt/extend_disk/bin/repo

python版本过低问题:


Android系统 10.0 AOSP源码编译(二):AOSP源码下载_Android系统源码编译_05Android系统 10.0 AOSP源码编译(二):AOSP源码下载_android源码_06​编辑

下载源码需要python3.6,  Ubuntu16.04安装python3.6需做如下操作:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt-get update

sudo apt-get install python3.6



 五, 内核源码下载(可选)

如果大家对下载android内核源码也敢兴趣, 可自行根据以下方法进行下载


git clone git://mirrors.ustc.edu.cn/aosp/kernel/goldfish.git


六, repo工作原理介绍

歌其实是建立了一个manifests仓库来维护Android源码, 而mainfests仓库保存这一个default.xml文件, 该文件就记录了Android源码中的各个子仓库的地址, 以及下载到本地哪个地方, 然后repo是用python编写的一个脚本, repo脚本就会根据default.xml中配置进行批量下载:

Android系统 10.0 AOSP源码编译(二):AOSP源码下载_Android系统源码编译_07Android系统 10.0 AOSP源码编译(二):AOSP源码下载_Android系统源码编译_08​编辑

manifest的仓库地址如下所示, 也可以单独下载:


git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest


 .repo/manifests/default.xml 部分内容语法介绍:
 



fetch是所有git url真正路径的前缀,所有git的project name加上这个前缀,就是git url的真正路径
-->
fetch="."
/>
则使用default元素的属性值 -->
remote="aosp"
sync-j="4" />
name :git 的名称,用于生成git url。URL格式是:${remote fetch}/${project name}.git 其中的 fetch就是上面提到的remote 中的fetch元素,
name 就是此处的name
path :clone到本地的git的工作目录,如果没有配置的话,跟name一样
remote :定义remote name,如果没有定义的话就用default中定义的remote name
revision :指定需要获取的git提交点,可以定义成固定的branch,或者是明确的commit 哈希值
groups :列出project所属的组,以空格或者逗号分隔多个组名。所有的project都自动属于"all"组。每一个project自动属于-->













Android系统 10.0 AOSP源码编译(二):AOSP源码下载_android源码_09

总结

Android源码下载尽量使用中科大的镜像, 下载需要时间比较长, 耐心等待即可。


举报

相关推荐

0 条评论