下載下傳編譯Android5.1
- 環境配置
-
- VMware
- ubuntu
- 虛拟機安裝
- 源碼下載下傳
- 源碼編譯
- 運作模拟器
環境配置
VMware
下載下傳位址
ubuntu
進入下載下傳位址,點選下載下傳選擇桌面版
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLmVGNkJzYzkjYjhzN5ATZhRmMlRDNzU2MwYWNmRWZiNzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
進入舊版本的選擇界面
選擇18.04版本
下載下傳ubuntu-18.04.5-desktop-amd64.iso
虛拟機安裝
建立OS存放鏡像,VM存放虛拟機,磁盤需有200GB空間
建立虛拟機,一直下一步,直到下圖選擇剛下載下傳的iso檔案
一直下一步,直到建立使用者,全名指的是linux系統名稱,使用者名需小寫,需記住密碼,安裝完需要密碼登入
一直下一步,直到選擇虛拟機位置,這裡選擇剛剛建立的VM檔案夾
一直下一步,直到選擇處理器數量,覺得自己機器比較老可選擇2*2
一直下一步,直到選擇虛拟機記憶體,推薦為電腦記憶體的一半
一直下一步,直到選擇磁盤容量,前面已經說了要200G
一直下一步到完成,安裝完成後輸入剛剛配置的密碼進入linux系統
源碼下載下傳
本步驟在本文釋出時可成功下載下傳,并不保證以後可以使用,最好跟着步驟連同報錯一起走一遍,如出現不一樣的錯誤請自行百度
跳過開機向導和更新提示,Crtl+Alt+t開啟終端,或右鍵open terminal
下面代碼複制到終端運作,解除安裝并重裝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
下面代碼複制到終端運作,修改/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
報錯如下
下面代碼複制到終端運作,修改~/.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
報錯如下
下面代碼複制到終端運作,再次設定環境變量
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
報錯如下
下面代碼複制到終端運作,直接運作提示的内容,這裡的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
下載下傳完成,界面如下
源碼編譯
下面代碼複制到終端運作,初始化環境,此時在~/android5.1下
source build/envsetup.sh
下面代碼複制到終端運作,選擇建構目标,這裡選擇5
lunch
下面代碼複制到終端運作,編譯源代碼
make
報錯如下,編譯需要下載下傳1.7.x版本的jdk
下面代碼複制到終端運作,建立~/devTools存放JDK
mkdir ~/devTools
由于這個版本的Ubuntu不能通過指令下載下傳JDK7,隻好在windows中下載下傳好,再通過Vmware tools放到linux下(直接拖到裡面)
下面代碼複制到終端運作,解壓壓縮包
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
下面代碼複制到終端運作,修改build/core/main.mk
vi build/core/main.mk
将其中的require_openjdk改為false
下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch
make
報錯如下
下面代碼複制到終端運作,修改build/envsetup.sh
vi build/envsetup.sh
将下面的内容複制到裡面儲存
export LC_ALL=C
下面代碼複制到終端運作,再次編譯源代碼,修改envsetup.sh後需要重新source
source build/envsetup.sh
lunch
make
報錯如下
下面代碼複制到終端運作,按照提示更新api
make update-api
下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch
make
報錯如下
下面代碼複制到終端運作,修改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 \
下面代碼複制到終端運作,先用make clean删掉/out,再編譯
make clean
make
報錯如下
下面代碼複制到終端運作,安裝gperf
sudo apt-get install gperf
下面代碼複制到終端運作,再次編譯源代碼,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch
make
終于編譯成功,界面如下
運作模拟器
下面代碼複制到終端運作,運作模拟器,如果關閉并重開了終端,則需要重新source build/envsetup.sh和lunch
emulator
報錯如下
下面代碼複制到終端運作,安裝kvm
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
下面代碼複制到終端運作,檢視是否安裝成功
kvm-ok
将虛拟機關機,進入下圖位置打開虛拟化引擎
下面代碼複制到終端運作,運作模拟器,關機後要重新配置環境
source build/envsetup.sh
lunch
emulator
報錯如下
下面代碼複制到終端運作,将目前使用者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
模拟器啟動完成,界面如下