3、基础工具安装:Git、Python、curl、repo工具安装与配置

好,咱们继续往下走。上一章我们把 Ubuntu 系统搞定了,现在桌面干干净净,像个刚装修好的毛坯房。接下来要往里塞「家具」了——也就是 AOSP 编译环境依赖的基础工具。

说实话,我见过不少新手在这步翻车。明明代码下到一半,突然报错说 repo 找不到,或者 Python 版本不对。嗯,咱们今天就把这些坑提前填上。

3.1 Git:版本控制的基石

AOSP 的源码管理全靠 Git。每个项目都是一个独立的 Git 仓库,几百个仓库靠 repo 工具统一调度。所以 Git 必须装,而且版本不能太老。

安装命令

sudo apt update
sudo apt install git -y

装完验证一下:

git --version

我建议输出类似 git version 2.25.1 或更高。如果版本太低,后面 repo 可能会抱怨。

个人习惯: 装完 Git 第一件事,配置用户信息。不然 commit 时会弹个红色警告,看着心烦。
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

还有个小技巧:设置 core.filemode 为 false。我在项目中遇到过,从 Windows 拷贝过来的文件权限全乱了,Git 每次都提示有改动,其实内容没变。

git config --global core.filemode false

3.2 Python:脚本世界的瑞士军刀

AOSP 的编译系统、repo 工具、各种构建脚本,底层全是 Python。目前主流是 Python 3,但有些老项目还依赖 Python 2。咱们稳妥起见,两个都装。

安装命令

sudo apt install python3 python3-pip -y
sudo apt install python2 -y   # 部分旧脚本需要

检查版本:

python3 --version
python2 --version

这里有个坑:Ubuntu 20.04 之后,python 命令默认指向 python2 还是 python3?其实它可能根本不存在。我建议手动创建一个软链接,省得后面脚本报错。

sudo ln -s /usr/bin/python3 /usr/bin/python
注意: 别把 python 链接到 python2,除非你确定项目只支持 Python 2。AOSP 最新版已经全面转向 Python 3 了。

3.3 curl:网络请求的搬运工

curl 是个轻量级的网络工具,用来下载文件、发送 HTTP 请求。咱们后面下载 repo 工具、拉取源码,都离不开它。

安装命令

sudo apt install curl -y

验证:

curl --version

说实话,curl 本身没什么好讲的。但我要提醒你:国内网络环境复杂,curl 下载 Google 源的文件经常超时。我曾经在搭建环境时,卡在 curl 下载这一步整整一下午。

解决办法?要么用代理,要么换国内镜像。后面我会专门讲镜像配置。

3.4 repo:AOSP 源码管理的神器

repo 是 Google 基于 Git 开发的 Python 脚本。它不管理单个文件,而是管理「一群 Git 仓库」。AOSP 有几百个仓库,你不可能一个个 git clone,对吧?

安装步骤

  1. 下载 repo 脚本:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  1. 赋予执行权限:
chmod a+x ~/bin/repo
  1. 添加到 PATH:
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc
  1. 验证:
repo --version
重要: 如果输出类似 repo launcher version 2.45,说明安装成功。如果报错 Python 3 required,回去检查 Python 安装。

你想想看,repo 的工作原理其实很简单:它维护一个 manifest 文件(XML 格式),里面列出了所有仓库的地址、分支、路径。你执行 repo init 时,它下载这个 manifest;执行 repo sync 时,它按照 manifest 逐个 git clonegit pull

嗯,这里要注意:repo 默认从 Google 的源下载 manifest。在国内,这一步经常失败。我建议你提前准备好镜像地址,比如中科大的 AOSP 镜像。

3.5 其他辅助工具

除了上面四个核心工具,还有几个小工具建议一并装上。它们不是必须的,但能让你后续编译更顺畅。

工具 用途 安装命令
make 构建系统核心 sudo apt install make -y
gcc/g++ C/C++ 编译器 sudo apt install build-essential -y
openssl HTTPS 通信支持 sudo apt install libssl-dev -y
rsync 文件同步工具 sudo apt install rsync -y
避坑指南: 我曾经在 Ubuntu 18.04 上编译 AOSP 10,因为 make 版本太低,编译到一半报错 ninja: build stopped: subcommand failed。后来升级到 make 4.2.1 才解决。所以建议装完检查一下版本:make --version

3.6 环境验证脚本

工具都装完了,怎么确认没问题?我写了个小脚本,你可以跑一下:

#!/bin/bash
echo "=== 基础工具版本检查 ==="
echo "Git: $(git --version 2>/dev/null || echo '未安装')"
echo "Python3: $(python3 --version 2>/dev/null || echo '未安装')"
echo "Python2: $(python2 --version 2>/dev/null || echo '未安装')"
echo "curl: $(curl --version 2>/dev/null | head -1 || echo '未安装')"
echo "repo: $(repo --version 2>/dev/null | head -1 || echo '未安装')"
echo "make: $(make --version 2>/dev/null | head -1 || echo '未安装')"
echo "gcc: $(gcc --version 2>/dev/null | head -1 || echo '未安装')"

保存为 check_tools.sh,然后 bash check_tools.sh。如果所有工具都显示版本号,恭喜你,基础环境搭建完毕!

说实话,这步看起来琐碎,但它是整个 AOSP 编译的根基。我见过太多人跳过这步,直接去下源码,结果编译时报错「xxx command not found」,又回头一个个补装。浪费时间不说,还容易漏掉依赖。

好了,工具装完了。下一章咱们开始配置 Java 开发环境,然后正式拉取 AOSP 源码。准备好了吗?