Android高级——下载编译Android5.1.1_r38

环境配置

VMware

点击进入VMware官网的下载地址,下载步骤网上很多,不再赘述

ubuntu

点击进入ubuntu官网的下载地址,编译Android系统需要在ubuntu虚拟机环境下,点击下载选择桌面版(官网会更新,可能页面不一致)
在这里插入图片描述
进入旧版本的选择界面
在这里插入图片描述
在这里插入图片描述
选择18.04版本,如果是新手,最好按照步骤下载这个版本
在这里插入图片描述
下载ubuntu-18.04.5-desktop-amd64.iso
在这里插入图片描述

虚拟机安装

创建OS文件夹存放上面下载的镜像,VM文件夹存放虚拟机,磁盘需有200GB空间
在这里插入图片描述
新建虚拟机,一直下一步,直到下图选择刚下载的iso文件
在这里插入图片描述
一直下一步,直到创建用户,全名指的是电脑名,用户名是敲命令时的用户,用户名需小写,需记住密码,安装完需要密码登录
在这里插入图片描述
一直下一步,直到选择虚拟机位置,这里选择刚刚创建的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

将下面的内容复制到里面保存,这是ubuntu国内镜像的源,用于加速软件的下载

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 "you@example.com"
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

报错如下

在这里插入图片描述
下面代码复制到终端运行,清理所有项目的缓存

repo forall -c git clean -fdx

下面代码复制到终端运行,重新拉取代码

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

模拟器启动完成,界面如下
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值