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 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,对吧?
安装步骤:
- 下载
repo脚本:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- 赋予执行权限:
chmod a+x ~/bin/repo
- 添加到 PATH:
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc
- 验证:
repo --version
repo launcher version 2.45,说明安装成功。如果报错 Python 3 required,回去检查 Python 安装。
你想想看,repo 的工作原理其实很简单:它维护一个 manifest 文件(XML 格式),里面列出了所有仓库的地址、分支、路径。你执行 repo init 时,它下载这个 manifest;执行 repo sync 时,它按照 manifest 逐个 git clone 或 git 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 |
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 源码。准备好了吗?