下载repo

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

将PATH export进来

初始化repo

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

选择特定版本

我们需求从5.0到最新的8.0 比如选择7.0:

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-7.0.0_r1

特定版本号可以直接在googlesource查看,也可以通过下面的方式:

cd .repo/manifests
git branch -a

查看当前已有的版本

cat build/core/version_defaults.mk |grep PLATFORM_VERSION

下载

因文件较大,可能出现断线的情况。用下面的脚本确保续传。

#!/bin/bash     
echo "======start repo sync======"     
repo sync 
while [ $? -ne 0 ];do     
echo "======sync failed, re-sync again======"     
sleep 3     
repo sync  
done 

编译

按我们的项目其实并不需要编译,我们可以把特定版本的手机system/lib pull 下来即可。

  • error 1

缺乏jdk支持

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk
  • error 2
unsupported reloc 43 against global symbol

参考这里

  • android-7.0 error 1
Communication error with Jack server (56). Try 'jack-diagnose'
  • android-7.0 error 2
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
 31 Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.co    m)).
 32 GC overhead limit exceeded.

参考这里