天天看點

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下載下傳編譯Android5.1

  • 環境配置
    • VMware
    • ubuntu
    • 虛拟機安裝
  • 源碼下載下傳
  • 源碼編譯
  • 運作模拟器

環境配置

VMware

下載下傳位址

ubuntu

進入下載下傳位址,點選下載下傳選擇桌面版

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

進入舊版本的選擇界面

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器
AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

選擇18.04版本

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下載下傳ubuntu-18.04.5-desktop-amd64.iso

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

虛拟機安裝

建立OS存放鏡像,VM存放虛拟機,磁盤需有200GB空間

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

建立虛拟機,一直下一步,直到下圖選擇剛下載下傳的iso檔案

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步,直到建立使用者,全名指的是linux系統名稱,使用者名需小寫,需記住密碼,安裝完需要密碼登入

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步,直到選擇虛拟機位置,這裡選擇剛剛建立的VM檔案夾

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步,直到選擇處理器數量,覺得自己機器比較老可選擇2*2

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步,直到選擇虛拟機記憶體,推薦為電腦記憶體的一半

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步,直到選擇磁盤容量,前面已經說了要200G

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

一直下一步到完成,安裝完成後輸入剛剛配置的密碼進入linux系統

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

源碼下載下傳

本步驟在本文釋出時可成功下載下傳,并不保證以後可以使用,最好跟着步驟連同報錯一起走一遍,如出現不一樣的錯誤請自行百度

跳過開機向導和更新提示,Crtl+Alt+t開啟終端,或右鍵open terminal

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,解除安裝并重裝vim,避免上下左右鍵變成ABCD

sudo apt-get remove vim-common
sudo apt-get install vim
           

下面代碼複制到終端運作,安裝各種軟體包,需輸入密碼,并選擇y,若出錯重複此步驟

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
           
AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,修改/etc/apt/sources.list

sudo vi /etc/apt/sources.list
           

将下面的内容複制到裡面儲存

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse


deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
           

下面代碼複制到終端運作,更新上面的下載下傳源

sudo apt-get update
           

下面代碼複制到終端運作,安裝python2和python3

sudo apt-get install python
sudo apt-get install python3
           

下面代碼複制到終端運作,在~建立bin并添加到環境變量

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

下面代碼複制到終端運作,在~/bin/repo下載下傳repo并修改其權限

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

下面代碼複制到終端運作,建立存放代碼的檔案夾

mkdir android5.1
           

下面代碼複制到終端運作,初始化repo倉庫,注意版本是android-5.1.1_r38

cd android5.1
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-5.1.1_r38
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,修改~/.bashrc

vi ~/.bashrc
           

将下面的内容複制到裡面儲存

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
           

退出并重進終端,下面代碼複制到終端運作,再次初始化repo倉庫

cd android5.1
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-5.1.1_r38
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,再次設定環境變量

PATH=~/bin:$PATH
           

下面代碼複制到終端運作,再次初始化repo倉庫,此時在~/android5.1下

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-5.1.1_r38
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,直接運作提示的内容,這裡的email和使用者名沒啥用

git config --global user.email "[email protected]"
git config --global user.name "Your Name"
           

下面代碼複制到終端運作,再次初始化repo倉庫,選擇y

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-5.1.1_r38
           

下面代碼複制到終端運作,拉取代碼,此時在~/android5.1下,這個過程相當長,最好晚上下載下傳,電腦不斷電,若中斷則重複此步驟

repo sync
           

下載下傳完成,界面如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

源碼編譯

下面代碼複制到終端運作,初始化環境,此時在~/android5.1下

source build/envsetup.sh
           

下面代碼複制到終端運作,選擇建構目标,這裡選擇5

lunch
           

下面代碼複制到終端運作,編譯源代碼

make
           

報錯如下,編譯需要下載下傳1.7.x版本的jdk

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,建立~/devTools存放JDK

mkdir ~/devTools
           

由于這個版本的Ubuntu不能通過指令下載下傳JDK7,隻好在windows中下載下傳好,再通過Vmware tools放到linux下(直接拖到裡面)

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,解壓壓縮包

cd ~/devTools
tar -xvf jdk-7u80-linux-x64.tar.gz
           

下面代碼複制到終端運作,修改~/ .profile配置JAVA環境變量

cd ~
vi .profile
           

将下面的内容複制到裡面儲存

export JAVA_HOME=/home/aosp/devTools/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
           

下面代碼複制到終端運作,更新.profile,輸入java -version有輸出即表示配置成功

source .profile
java -version
           

下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch

cd android5.1
make
           

報錯如下,提示需要的是OpenJDK,而剛剛解壓的OracleJDK

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,修改build/core/main.mk

vi build/core/main.mk
           

将其中的require_openjdk改為false

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch

make
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,修改build/envsetup.sh

vi build/envsetup.sh
           

将下面的内容複制到裡面儲存

export LC_ALL=C
           

下面代碼複制到終端運作,再次編譯源代碼,修改envsetup.sh後需要重新source

source build/envsetup.sh
lunch
make
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,按照提示更新api

make update-api
           

下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch

make
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,修改build/core/clang/HOST_x86_common.mk

vi build/core/clang/HOST_x86_common.mk
           

将下面的内容複制到下圖位置儲存

-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
           
AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,先用make clean删掉/out,再編譯

make clean
make
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,安裝gperf

sudo apt-get install gperf
           

下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch

make
           

終于編譯成功,界面如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

運作模拟器

下面代碼複制到終端運作,運作模拟器,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch

emulator
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,安裝kvm

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
           

下面代碼複制到終端運作,檢視是否安裝成功

kvm-ok
           
AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

将虛拟機關機,進入下圖位置打開虛拟化引擎

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,運作模拟器,關機後要重新配置環境

source build/envsetup.sh
lunch
emulator
           

報錯如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

下面代碼複制到終端運作,将目前使用者aosp加入kvm使用者組

sudo usermod -a -G kvm aosp
           

下面代碼複制到終端運作,建立rules

sudo gedit /etc/udev/rules.d/60-qemu-kvm.rules
           

将下面的内容複制到裡面儲存

KERNEL=="kvm", GROUP="kvm", MODE="0660"
           

下面代碼複制到終端運作,需要重新開機虛拟器再運作指令

source build/envsetup.sh
lunch
emulator
           

模拟器啟動完成,界面如下

AOSP——下載下傳編譯Android5.1.1_r38環境配置源碼下載下傳源碼編譯運作模拟器

繼續閱讀