首先 Xposed 的编译依赖于 Android的编译,所以要先搭建一个 android 的编译环境。
Android 官方对下载源码和编译的要求:链接
- 在 VMware 安装一个 Ubuntu(我用的是 18.04.1 LTC )
ps: VMware 的使用和 Ubuntu 的安装限于篇幅以及也不是我们的重点就不介绍了,不会的话自行查找相关资料。当然你也可以直接安装 Ubuntu 到物理机
- 安装之后,配置一下开发环境,无非就是安装一些工具包(比如: openjdk-1.8、git、 gradle、python 2.x、sdk、ndk) 上面的东西看个人需要吧
ps: 顺便说下 gradle 直接下载是真的慢,建议使用 sdkman
- 然后就进入正题了,下载并同步 aosp。可以选择使用清华大学/中科大的 aosp 镜像, 建议使用中科大的镜像源,清华大学的现在不支持 git:// ,使用 https 同步偶尔会有问题,而且个人感觉中科大的速度会快一点,官方都有教程,参考教程使用即可。
下载的过程可能会很久,而且伴随着失败 Fatal : 过早的文件结束符(EOF)
一般重试就可以了,下面给出一个失败重试的脚本。内容如下:
#!/bin/sh
echo "开始 repo sync ****************************************************"
repo sync -j4
while [ $? -ne 0 ]
do
echo "开始 重试 *********************************************************"
repo sync -j4
done
复制下来放到一个文件中,每次同步代码直接运行即可。
上面的过程同步完成之后, android 代码就同步完成了,下面我们就可以选择一个分支来编译 android 源码。
aosp 分支对应的 android 版本:
android-6.0.1_r1 --------- 23 (Marsmallow)
android-7.0.0_r1 --------- 24 (Nougat)
android-7.1.1_r1 --------- 25 (Nougat)
android-8.0.0_r1 --------- 26 (Oreo)
aosp 分支对应的 android 版本(部分):
android-6.0.1_r1 --------- 23 (Marsmallow)
android-7.0.0_r1 --------- 24 (Nougat)
android-7.1.1_r1 --------- 25 (Nougat)
android-8.0.0_r1 --------- 26 (Oreo)
我们也可以通过在 aosp 仓库的目录下执行 repo branches
来查看可以切换的分支
参考链接
https://source.android.com/setup/build/initializing
https://source.android.com/setup/build/downloading
sdkman: https://sdkman.io/
清华 aosp镜像: https://mirror.tuna.tsinghua.edu.cn/help/AOSP/
中科大aosp 镜像: https://lug.ustc.edu.cn/wiki/mirrors/help/aosp