Skip to content

缘起

最近公司业务涉及到抓包的工作内容,所以要研究抓包的工作内容,由于对数据抓取的内容研究不多,所以在摸索中慢慢研究。由于在研究的过程中,需要经常请教一位对安全研究比较多的同事,而且正好他有一台闲置的手机(lg nexus 5),就送给我了(感谢感谢同事的大力支持)。

那么,现在最新的android系统已经升级到了android 11,为什么要研究这么老的版本的系统呢?主要有两方面的考虑:

  • android 6以上的版本对抓包管理比较严格
  • lg nexus 5官方支持的最高版本是android 6,且nexus 5硬件配置比较低

前言

网上关于android源码开发的文章有很多,为什么要我这个门外汉来写一篇文章来贻笑大方呢?

这也是综合考虑的结果:

  • 网上教程虽多,大多是android 6比较流行时的教程,系统硬件迭代很快,在现在android 10版本比较流行的时候,很少有人像我这么傻的去编译android 6.0
  • 虽然教程比较多,但是我在尝试编译的过程中还是遇到了很多的问题,另一方面是用这篇文章来记录一下学习的过程

源码

android管理源码是基于一个叫做repo的工具实现的,当然最终还是基于git管理源码的。源码部分包含两部分内容:

  • 管理工具repo配置
  • 源码下载

配置repo

shell
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
shell
vim ~/bin/repo
# 修改REPO_URL地址为清华源
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' # 'https://gerrit.googlesource.com/git-repo'

源码下载

初始化仓库:

参数 --depth=1 表示只同步当前分支最后一次提交的代码,可以提高下载的速度

shell
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-6.0.1_r77 --depth=1

同步源码树(以后只需执行这条命令来同步):

参数 -c 表示只同步当前分支的代码,不会拉去其他的分支的源数据,可以提高下载的速度

shell
repo sync -c

上次更新于: