查看: 23286|回复: 0

清华大学官方文档:如何下载Android AOSP源码

[复制链接]

425

主题

253

回帖

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
20628
发表于 2018-5-2 19:37:55 | 显示全部楼层 |阅读模式
源文章:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

Android 镜像使用帮助

注意: 本镜像是 AOSP 镜像,Android SDK因版权原因,我们不能提供镜像服务。

参考 Google 教程 https://source.android.com/source/downloading.html, 将 https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 代替即可。

由于使用 HTTPS 协议更安全,并且更便于我们灵活处理,所以强烈推荐使用 HTTPS 协议同步 AOSP 镜像。

由于 AOSP 镜像造成CPU/内存负载过重,我们限制了并发数量,因此建议: 1. sync的时候并发数不宜太高,否则会出现 503 错误,即-j后面的数字不能太大,建议选择4。 2. 请尽量选择流量较小时错峰同步。

  • 2017-08-28 : 更新镜像大小信息
  • 2016-06-24 : 关闭 git:// 协议,仅支持 HTTPS
  • 2016-04-03 : 删除每月初始化包中的冗余内容,使用方法更新
  • 2015-12-21 : 增加每月初始化包,少量修正文档错误
  • 2015-10-13 : 修复上游替换文档错误
  • 2015-10-13 : 修复次级镜像文档错误
  • 2015-10-09 : 恢复 git://aosp.tuna.tsinghua.edu.cn/aosp/ 访问
  • 2015-10-08 : 镜像地址更新为 https://aosp.tuna.tsinghua.edu.cn/ (结尾没有/android)
过程摘录

(参考 https://lug.ustc.edu.cn/wiki/mirrors/help/aosp 编写)

下载 repo 工具:

  1. mkdir ~/bin
  2. PATH=~/bin:$PATH
  3. curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  4. chmod a+x ~/bin/repo
复制代码

或者使用tuna的git-repo镜像

使用每月更新的初始化包

由于首次同步需要下载约 30GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。

下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。

由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。

使用方法如下:

  1. wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
  2. tar xf aosp-latest.tar
  3. cd AOSP   # 解压得到的 AOSP 工程目录
  4. # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
  5. repo sync # 正常同步一遍即可得到完整目录
  6. # 或 repo sync -l 仅checkout代码
复制代码

此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间

传统初始化方法

建立工作目录:

  1. mkdir WORKING_DIRECTORY
  2. cd WORKING_DIRECTORY
复制代码

初始化仓库:

  1. repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
复制代码

如果提示无法连接到 gerrit.googlesource.com,请参照git-repo的帮助页面的更新一节。

如果需要某个特定的 Android 版本(列表):

  1. repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
复制代码

同步源码树(以后只需执行这条命令来同步):

  1. repo sync
复制代码
建立次级镜像

由于 AOSP 镜像需求量巨大,且 Git 服务占资源较多,TUNA 服务器因 AOSP 产生的负载已经占主要部分。 如果你是团队用户,我们强烈建议你通过 TUNA 建立次级镜像,再分享给团队内其他用户,减轻 TUNA 服务器压力。 建立 AOSP 镜像需要占用约 164G 磁盘。

具体步骤为:

下载 repo 工具和建立工作目录(略)

初始化:

  1. repo init -u https://aosp.tuna.tsinghua.edu.cn/mirror/manifest --mirror
复制代码

最后同步源码树:

  1. repo sync
复制代码

同步完成后,运行 git daemon --verbose --export-all --base-path=WORKING_DIR WORKING_DIR (WORKING_DIR为代码树所在目录) 。

此后,其他用户使用 git://ip.to.mirror/ 作为镜像即可。

替换已有的 AOSP 源代码的 remote

如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将.repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/

  1. manifest>

  2.    <remote  name="aosp"
  3. -           fetch="https://android.googlesource.com"
  4. +           fetch="https://aosp.tuna.tsinghua.edu.cn"
  5.             review="android-review.googlesource.com" />

  6.    <remote  name="github"
复制代码

同时,修改 .repo/manifests.git/config,将

  1. url = https://android.googlesource.com/platform/manifest
复制代码

更改为

  1. url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
复制代码
FAQ
  • 镜像的是什么?
    • AOSP 的 git 仓库
  • 为何不能通过浏览器访问?
    • 暂时没有 gitweb, 而且反正是 git bare 仓库,没有可以直接看到的内容。
  • 出现 curl: (22) The requested URL returned error: 404 Not Found Server does not provide clone.bundle; ignoring. 怎么办?
    • 无视即可。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|小黑屋|深圳风火轮团队 ( 粤ICP备17095099号 )

GMT+8, 2024-12-27 03:55 , Processed in 0.063256 second(s), 20 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn