资料:AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
前言
时隔多年,我又来下载源码了。
开发环境:
MacBookPro inter笔记本
VMWare Fusion虚拟机
ubuntu 22.04版
以前都是使用windows电脑安装虚拟机下载源码,早两年想折腾下源码的时候,感觉mac安装虚拟机不方便,特别是很多虚拟机软件都是收费的,后面安装的visualbox虚拟机,感觉非常的不好用,就没折腾了。
于是把家里的windows电脑装好了windowns和ubuntu的双系统,环境也都配好了。但是还是感觉应该用自己上班的mac电脑方便(我们自带电脑上班),然后又开始折腾我的mac电脑。
当我ubuntu启动盘都做好了,快要装双系统的时候,同事说你咋不装个虚拟机,我说虚拟机不好用,之前装的那个剧难用,其他的还收费。于是还是去看搜索了下,发现VMWare Fusion居然开放了个人注册许可证的东西,真是太良心了。赶紧装好了VMWare Fusion的虚拟机。
1. 虚拟机安装遇到的问题
下载后安装的过程中,一切都很正常,但是到了磁盘分区的时候,我记得在windows中的vmware是需要分区的,然后这里我也点了个分区,进去后发现居然没发分区,然后还没法后退和前进了,退出了安装。最后启动后一直有问题,会卡住。
想了下还是删除VMWare Fusion虚拟机重来吧,没想到删了很多地下,安装好VMWare Fusion后,一直报错找不到文件,应该还是之前安装的有遗漏的文件没删除干净。报错原因应该是 ubuntu 的虚拟机文件被我删除了,但是软件VMWare Fusion我都重装了呀,重复搞了几次,还是去网上找找原因。最后发现,只要去VMWare Fusion里面把那个系统列表中的 ubuntu 系统删除就好了,看图:
Android 镜像使用帮助
注意: 本镜像是 AOSP 镜像,Android SDK因版权原因,我们不能提供镜像服务。
参考 Google 教程 https://source.android.com/source/downloading.html, 将 https://android.googlesource.com/
全部使用 https://aosp.tuna.tsinghua.edu.cn/
代替即可。
下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod a+x ~/bin/repo
repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc
里
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
并重启终端。
可访问 https://cs.android.com 或 Android Open Source Project · GitHub 在线搜索及浏览 AOSP 源码。
参考 Google 教程 https://source.android.com/setup/build/downloading, 将 https://android.googlesource.com/
全部使用 https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/
代替即可。
传统初始化方法
建立工作目录:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
初始化仓库:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
如果需要某个特定的 Android 版本(列表):
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r15
同步源码树(以后只需执行这条命令来同步):
repo sync
替换已有的 AOSP 源代码的 remote
如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将.repo/manifest.xml
把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com
改为 https://aosp.tuna.tsinghua.edu.cn/
。
<manifest>
<remote name="aosp"
- fetch="https://android.googlesource.com"
+ fetch="https://aosp.tuna.tsinghua.edu.cn"
review="android-review.googlesource.com" />
<remote name="github"
同时,修改 .repo/manifests.git/config
,将
url = https://android.googlesource.com/platform/manifest
更改为
url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
同步失败后继续强制同步
您可以尝试继续同步以下步骤:
-
运行
repo sync -c --force-sync
命令以重新开始同步。该命令将跳过已克隆的存储库的克隆步骤,并尝试从上次中断的地方继续同步。 -
如果仍然失败,请尝试在
repo sync
命令后添加-j1
选项。该选项将强制 Repo 使用单个线程进行同步,这可能会增加同步的时间,但可以减少同步过程中的错误。 -
如果您的同步过程中有一个特定的存储库失败,您可以使用以下命令仅同步失败的存储库:
repo sync <repository-name>
- 如果您的同步过程中没有遇到任何错误,但您中途中断了同步,请使用以下命令以恢复同步:
repo sync
- 在这种情况下,Repo 将检测到上次中断的位置,并从该位置继续同步。