ubuntu-14.04-desktop-amd64.iso
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码s
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
sudo apt-get install openjdk-7-jdk
//如果系统上安装有多个jdk,需要配置默认jdk版本到java7。
sudo update-alternatives --config java
sudo update-alternatives --config javac
//设置后检查是否当前默认版本为java7。
java -version
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
sudo apt-get update
sudo apt-get install openjdk-7-jdk
# 如果系统上安装有多个jdk,需要配置默认jdk版本到java7。
sudo update-alternatives --config java
sudo update-alternatives --config javac
java -version # 设置后检查是否当前默认版本为java7。
wget -S -O - http://source.android.com/source/51-android.txt | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir android-6.0.1_r46
cd android-6.0.1_r46
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
//下载特定分支代码
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r46
//清华源: repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r46
初始化后即使用自动下载脚本进行源码下载:
#!/bin/bash
#download_android_source.sh
for (( ; ; ))
do
repo sync -j4
if [ $? == 0 ]; then
break;
fi
done
也可以自己执行命令同步:
repo sync
wget http://www.djangoz.com/ssr
sudo mv ssr /usr/local/bin
sudo chmod 766 /usr/local/bin/ssr
ssr install
ssr config
sudo ssr start # 启动
sudo ssr stop # 停止
sudo ssr help # 帮助
ssr config # 配置
将ss启动后,再安装polipo,polipo可以将socks5代/理转换为http/https全局代/理,可以让终端代/理生效。
//安装polipo
sudo apt-get install polipo
//配置polipo
sudo vim /etc/polipo/config
在config文件里写入如下配置:
logFile = /var/log/polipo/polipo.log
socksParentProxy = "localhost:1080"
socksProxyType = socks5
logLevel=4
然后再启动polipo:
//停止polipo服务
sudo service polipo stop
//启动polipo服务
sudo service polipo start
//设置Terminal全局代理,取消则用"unset http_proxy"、"unset https_proxy"
export http_proxy="http://localhost:8123"
export https_proxy="http://localhost:8123"
//验证ip是否已飞到国外
curl ip.gs
//例如:当前 IP:210.x.x.x 来自:日本XX县XX市
echo export USE_CCACHE=1 >> ~/.bashrc
prebuilts/misc/linux-x86/ccache/ccache -M 50G
source build/envsetup.sh #初始化编译环境
lunch #使用lunch命令选择编译目标
make -j4 #使用make命令进行构建
watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s #查看已使用的缓存空间大小
sudo sysctl -w net.ipv4.tcp_window_scaling=0
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
mkdir aospsource cd aospsource curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo export REPO_URL=’https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’ 然后执行 init sync,版本列表我也贴了,提供给那些没梯子的。
./repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r14
Android版本 编译要求的Ubuntu最低版本 编译要求的JDK版本 Android 6.0 (Marshmallow) - AOSP master Ubuntu 14.04 OpenJDK 8 Android 5.x (Lollipop) - Android 6.0 (Marshmallow) Ubuntu 12.04 OpenJDK 7 Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat) Ubuntu 12.04 Oracle JDK 6 Android 1.5 (Cupcake) - Android 2.3.x (Gingerbread) Ubuntu 10.04 Oracle JDK 5
找到aosp/build/make/core/version_defaults.mk
, 搜索PLATFORM_SDK_VERSION即可知道版本号
sync的时候并发数不宜太高,否则会出现 503 错误,即-j后面的数字不能太大,建议选择4。More
error.GitError: manifests rev-list ('^HEAD', u'9ba2390ca80628031e5315226ce4dd50d096fd25', '--'): fatal: Not a git repository (or any of the parent directories): .git
删除repo重解压
tar xf aosp-latest.tar
repo init -b android-6.0.1_r46
cd aosp
repo sync