背景
近期的冠状病毒在国内肆虐,当真是国之不幸,好在时至今日大有好转的迹象,致敬奋斗在前线的白衣天使。白衣天使正在前线与病毒大战,咱们身为程序猿暂时也帮不上什么忙,也只能在家操练技艺了。原本这个假期准备全家旅游的,所以也就没有带工作电脑在身边了,一些源码资料也没法看咋办?那就看现在还能看的呗。
工具准备
对于工具就直接下载最新的就好了。源码的下载主要用到git、python及repo,repo使用python语言所写,使用git对源码仓库进行管理。
- git
$brew install git
$mkdir ~/bin
$ln -s <your git location> ~/bin/git
- python
对于python的安装可以去官网直接在下.pkg的文件,然后和windows环境下傻瓜式的安装一样,下面给出网址
https://www.python.org
对于python3.8版本在安装好后根据官网提示需要需要运行下如下脚本
/Applications/Python\ 3.8/Install\Certificates.command
否则在python中https协议认证会失败,并出现如下报错
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
- repo
对于国内的大局域网环境,既然TUNA给出了镜像就先不用google的了。
$curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
$chmod a+x ~/bin/repo
- 环境变量配置
临时配置
$PATH=~/bin:$PATH
永久配置
将如下信息写入用户配置文件~/.bash_profile尾行
PATH="~/bin:${PATH}"
export PATH
源码下载
repo只是对git的封装以实现对多git仓库的统一管理而开发的,对于其中各个git仓库的地址则是记录在manifest.xml中的。所以我们在下载独立仓库前先获取manifest.xml。
- manifest.xml获取
$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r9
如果无法确认具体分支,则可以先不指定,执行完后所有的可用分支都会显示出来。
repo的默认链接还是google的,可以临时设置如下环境变量
$export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
- 单例仓库获取示例
比如我需要如下源码
hardware/interfaces
可以直接在manifest.xml中搜索其属于哪个仓库,并根据其name来确认git仓库的远程地址,interfaces在清单中则是被记录如下,git仓库则是以name为准
<project path="hardware/interfaces" name="platform/hardware/interfaces" groups="pdk" />
根据以上信息可以使用如下命令去下载interfaces的源码
$git clone https://aosp.tuna.tsinghua.edu.cn/platform/frameworks/hardware/interfaces --depth=1