1. 程式人生 > >Aosp原始碼下載編譯

Aosp原始碼下載編譯

之前上班一直都是使用公司給的地址下載,修改原始碼,沒有自己去下載過,想到這,所以決定自己來下載編譯一下aosp原始碼。

以下是編譯原始碼版本對系統和jdk版本的要求,不符合要求的同學趕緊按要求安裝吧。

Android 7.0 (Nougat) - Android 8.0 (O):Ubuntu - OpenJDK 8;Mac OS - jdk 8u45 或更高版本
Android 5.x (Lollipop) - Android 6.0 (Marshmallow):Ubuntu - OpenJDK 7;Mac OS - jdk-7u71-macosx-x64.dmg
Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat):Ubuntu - Java JDK 6;Mac OS - Java JDK 6
Android 1.5 (Cupcake) - Android 2.2.x (Froyo):Ubuntu - Java JDK 5

滿足要求的同學,可以準備開始原始碼下載了。

首先我們要安裝repo工具,通過repo指令碼我們可以下載aosp原始碼,使用如下命令建立一個資料夾儲存repo指令碼並加入到使用者環境變數裡:

mkdir ~/bin
PATH=~/bin:$PATH

同學們注意,不要使用root許可權執行以上命令哦,不然bin資料夾會出現在計算機根目錄下。下載repo指令碼和新增執行許可權的命令:

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

如果沒有安裝curl工具的同學可以安裝一下,順便安裝配置一下git(安裝好的同學跳過此步驟),使用如下命令:

sudo apt-get install curl git-core
git config  --global user.name yourname
git config  --global user.email youremail

下載好了我們可以進入~/bin/下開啟repo檔案檢視其內容

cd ~/bin/
gedit repo

可以看到有這麼幾行,而其中REPO_URL就是定義的下載aosp原始碼的連結

#!/usr/bin/env python
# repo default configuration
#
import os
REPO_URL = os.environ.get('REPO_URL', None)
if not REPO_URL:
  REPO_URL = 'https://gerrit.googlesource.com/git-repo'
REPO_REV = 'stable'

之後我們可以新建一個目錄用於存放原始碼

cd ~
mkdir android_source & cd android_source

然而,因為某些原因,我們不使用代理的話就無法下載原始碼,這時我們可以使用國內的aosp開源映象網站下載。

執行
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.1.2_r1
repo sync

之後,我們就可以開始同步aosp原始碼了

repo sync

原始碼同步下來以後,就可以開始編譯了。

編譯原始碼我們首先要配置環境,安裝依賴包等。

ubuntu14.04依賴包

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

ubuntu12.04依賴包

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
source build/envsetup.sh
lunch
make -j4