首先 Xposed 的編譯依賴于 Android的編譯,所以要先搭建一個(gè) android 的編譯環(huán)境。
Android 官方對(duì)下載源碼和編譯的要求:鏈接
- 在 VMware 安裝一個(gè) Ubuntu(我用的是 18.04.1 LTC )
ps: VMware 的使用和 Ubuntu 的安裝限于篇幅以及也不是我們的重點(diǎn)就不介紹了,不會(huì)的話自行查找相關(guān)資料。當(dāng)然你也可以直接安裝 Ubuntu 到物理機(jī)
- 安裝之后,配置一下開發(fā)環(huán)境,無(wú)非就是安裝一些工具包(比如: openjdk-1.8、git、 gradle、python 2.x、sdk、ndk) 上面的東西看個(gè)人需要吧
ps: 順便說(shuō)下 gradle 直接下載是真的慢,建議使用 sdkman
- 然后就進(jìn)入正題了,下載并同步 aosp??梢赃x擇使用清華大學(xué)/中科大的 aosp 鏡像, 建議使用中科大的鏡像源,清華大學(xué)的現(xiàn)在不支持 git:// ,使用 https 同步偶爾會(huì)有問(wèn)題,而且個(gè)人感覺(jué)中科大的速度會(huì)快一點(diǎn),官方都有教程,參考教程使用即可。
下載的過(guò)程可能會(huì)很久,而且伴隨著失敗 Fatal : 過(guò)早的文件結(jié)束符(EOF)
一般重試就可以了,下面給出一個(gè)失敗重試的腳本。內(nèi)容如下:
#!/bin/sh
echo "開始 repo sync ****************************************************"
repo sync -j4
while [ $? -ne 0 ]
do
echo "開始 重試 *********************************************************"
repo sync -j4
done
復(fù)制下來(lái)放到一個(gè)文件中,每次同步代碼直接運(yùn)行即可。
上面的過(guò)程同步完成之后, android 代碼就同步完成了,下面我們就可以選擇一個(gè)分支來(lái)編譯 android 源碼。
aosp 分支對(duì)應(yīng)的 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 分支對(duì)應(yīng)的 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)
我們也可以通過(guò)在 aosp 倉(cāng)庫(kù)的目錄下執(zhí)行 repo branches
來(lái)查看可以切換的分支
參考鏈接
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