用repo从清华开源镜像站同步安卓最新AOSP源码(ubuntu平台)

本文详细介绍如何在Ubuntu平台上从清华开源镜像站同步AOSP(Android Open Source Project)源码,包括下载repo工具、同步源码的具体步骤及解决过程中可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔者使用的ubuntu平台,其他系统请自行研究

AOSP全称:Android Open Source Project



若只是想下载源码来看看,不关注最新版本的,可以在下方链接下载,是热心网友转存的

http://pan.baidu.com/s/1c8C0ns
aosp源码4.4 5.0下载


如果你网络好,不怕翻墙的话,也可以直接从谷歌官网同步,本文讲述从清华开源镜像站同步的方法。

清华开源镜像站地址如下,该网站也有同步教程,可以过去看
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

本文主要在该网站教程基础上,增加了遇到报错时的解决办法。

1、下载repo工具,终端输入命令

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

2、同步源码

建议先下载一份源码,在此基础上再同步,会比直接同步快多了
最新源码下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。

使用方法如下:
将下载后的aosp-latest.tar解压,然后进入解压文件夹
输入repo sync
正常同步一遍即可得到完整目录
此后,每次只需运行 repo sync 即可保持同步。

教程到此为止,如果你成功同步的话 终端会有一大串正在同步信息的信息输出,等几十分钟就好了,当然,笔者没那么好运。



如果你不想麻烦的话,也可以直接repo仓库,就不用做sync设置了,在某文件夹终端输入

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest  

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


笔者过程中遇到的错误:

1、python编码问题

这里写图片描述
注意最后一句UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe8 in position 1: ordinal not in range(128).

这里能找到答案
http://stackoverflow.com/questions/21129020/how-to-fix-unicodedecodeerror-ascii-codec-cant-decode-byte
就是说要改一下python编码,可以在python目录下的sitecustomize.py中修改,
也可以直接在报错文件的头部添加
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)

还有更方便的办法,直接在终端输入python,然后陆续输入
import sys
reload(sys)
sys.setdefaultencoding(“utf-8”)
然后查一下成功了没sys.getdefaultencoding(),输出utf-8那就对了
这下继续到aosp目录下输入repo sync看能否成功

2、error: .repo/manifests/: contains uncommitted changes

提示 还有未提交的改变
网上有很多解决办法,大多说的是
先 cd .repo/manifests
再执行 git stash 和 git clean -f -d
然后再repo sync 就可以通过了

很不幸运,这都对我没用,最后找到一个回答
在终端输入

git config core.filemode false

(加入忽略文件权限的配置)
再输入repo sync总算成功了,等待数十分钟的初始化,完成后得到aosp源码了
最终得到的目录如下
这里写图片描述

### 在 Ubuntu 系统上编译 AOSP 9 的具体步骤 #### 准备工作 为了成功编译 AOSP 9,在开始之前需要满足一些基本的硬件和软件需求。以下是具体的准备事项: - **硬件要求** 至少需要 16 GB 的内存,推荐使用更大的内存(如 32 GB 或更高)。构建过程中还需要至少 400 GB 的磁盘空间[^4]。 - **操作系统** 推荐使用 Ubuntu LTS 版本,虽然引用中提到的是 Ubuntu 22.04 和 20.04,但由于 AOSP 9 是较旧的版本,建议使用兼容性更好的 Ubuntu 18.04 LTS[^5]。 --- #### 步骤 1: 更新系统 确保系统的包管理器是最新的,并升级已有的软件包: ```bash sudo apt update && sudo apt upgrade -y ``` 这一步非常重要,因为它能减少后续可能遇到的一些依赖冲突问题[^1]。 --- #### 步骤 2: 安装必要的工具与依赖项 AOSP 需要一系列开发工具和库的支持。可以通过以下命令安装这些依赖项: ```bash sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libncurses5-dev xz-utils libssl-dev python3 python3-pip python-setuptools unzip rsync subversion squashfs-tools bc kpartx debootstrap jq expect ccache -y ``` 如果目标设备需要调试功能,则还需额外安装 `adb` 工具: ```bash sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install android-tools-adb ``` 完成安装后可通过 `adb version` 来确认是否正确安装[^3]。 --- #### 步骤 3: 创建并设置工作目录 创建一个新的文件夹用于存储 AOSP 源码,并切换到该目录下: ```bash mkdir ~/aosp-android-9 cd ~/aosp-android-9 ``` 初始化 Repo 工具以便于管理多个 Git 存储库: ```bash curl https://storage.googleapis.com/git-repo-downloads/repo > repo chmod a+x ./repo ``` --- #### 步骤 4: 下载 AOSP 源码 通过 Repo 初始化仓库并指定分支为 Android 9 (`pie`): ```bash ./repo init -u https://android.googlesource.com/platform/manifest -b pie ``` 随后同步源码至本地: ```bash ./repo sync --force-sync --no-tags --current-branch --jobs=8 ``` 注意:`--jobs=8` 参数表示同时开启 8 个线程加速下载速度,可以根据 CPU 核心数调整数值[^5]。 如果某些模块未能正常下载,可以单独重新尝试: ```bash ./repo sync <module_name> ``` --- #### 步骤 5: 设置构建环境 进入源码根目录并加载构建脚本: ```bash source build/envsetup.sh ``` 选择默认的目标产品配置(例如 Pixel 手机对应的 `aosp_arm64`): ```bash lunch aosp_arm64-eng ``` 其中 `-eng` 表示工程模式,适合开发者测试;生产环境中应改为 `-userdebug` 或 `-user`[^4]。 --- #### 步骤 6: 开始编译 启动实际的编译过程: ```bash make -j$(nproc) ``` 这里的参数 `-j$(nproc)` 动态计算核心数量以充分利用多核处理器性能。 完整编译时间取决于机器性能,通常需要几小时甚至更长时间。 --- #### 步骤 7: 启动模拟器或刷入真机 编译完成后可以在终端运行以下命令来启动内置的 Android 模拟器: ```bash emulator ``` 或者将生成的镜像刷入真实设备(需提前解锁 Bootloader 并连接 USB 调试): ```bash fastboot flashall -w ``` --- ### 注意事项 - 如果在同步阶段遇到网络问题,可以考虑更换国内镜像站点(如清华开源镜像站),替换 URL 即可。 - 对于初学者来说,可能会因为遗漏某步而导致失败,请严格按照顺序操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值