AOSP Ubuntu编译环境搭建

一、搭建环境

Liunx系统:Ubuntu18.04 Android系统:12
现在open-vm-tools(推荐open-vm-tools-desktop,能够实现分辨率自适应)可以直接通过apt安装,速度快(只有13M),一键安装
安装流程:
换源(换成国内aliyun或者清华)

sudo apt update
sudo apt-get install open-vm-tools-desktop -y

给Ubuntu增加虚拟内存

Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。交换分区的作用是,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。

首先查看是否已经存在交换空间,终端输入:

free -m

我们安装的Ubuntu默认有2G大小的swap空间

使用以下命令查看swap详情:

swapon -s

停用交换文件:

sudo swapoff /swapfile

删除文件:

sudo rm /swapfile

删除后继续创建

创建swap交换空间
新建swap空间,以16G为例,创建文件:

sudo fallocate -l 16G /swapfile 

这里我们还是命名为“swapfile”,当然你也可以随意写
查看文件信息:

ls -lh  /swapfile

设置文件权限:

sudo chmod 600 /swapfile

挂载:

sudo mkswap /swapfile

激活启用:

sudo swapon /swapfile

再次查看内存使用情况:

free -m

准备编译环境

安装jdk8

sudo apt-get update
sudo apt-get install openjdk-8-jdk

安装依赖包,Ubuntu18.04系统以上

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
//不知道哪些有用,哪些没用,网上都是这么写的,索性都安装了
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev

二、下载代码

安装 Repo

下载Repo前先安装 curl 库

sudo apt-get install curl

下载好 curl 库后,设置清华源下载 Repo ,然后给repo文件添加可执行权限

sudo apt-get install repo

设置 repo 镜像源自动更新

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

初始化 repo

安装git

sudo apt-get install git

配置 Git,没有安装 git 要先安装 git

引号里面填自己设置的用户和邮箱

git config --global user.name "***"
git config --global user.email "***"

查看一下Git是否配置成功

git config --global --list

下载源码

直接下载
Git配置完成后创建工作目录

mkdir ~/Android_12_AOSP
cd ~/Android_12_AOSP

运行 repo init 以获取最新版本的 Repo并指定版本,使用清华源

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-12.1.0_r5

最后同步代码

repo sync -j8

下载内核源码

AOSP源码中并不包括内核源码,需要单独下载,内核源码有很多版本,比如common是通用的Linux内核,msm是用于使用高通MSM芯片的Android设备,goldfish是用于Android模拟器的内核源码,这里以goldfish为例。

和下载AOSP源码一样,我们需要先建立工作目录 :

mkdir kernel
cd kernel

使用清华的镜像:

git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

完成后kernel目录中会生成一个goldfish文件夹,进入goldfish目录并使用git命令

cd goldfish
git branch -a

这时会列出有哪些内核的版本分支可以下载

这里选择下载goldfish 3.4版本

git checkout remotes/origin/android-goldfish-3.4

三、编译源码

编译源码时处理器可以设置多一些
设置Ubuntu处理器数量

Ubuntu关机,在VirtualBox主页进入Ubuntu右侧设置–>系统–>处理器选项,设置处理器数量,设置最大处理器数量的一半或更高,也不要设置最大,容易卡主,我设置了一半。

源码整编

进入到源码根目录

cd Android_12_AOSP/

在根目录下输入以下指令

source build/envsetup.sh

lunch选择准备编译的版本,根据自己的需要选择版本,比如我选择的是sdk_phone_x86_64

lunch sdk_phone_x86_64

开始编译,指定的线程数一般应该遵从cpu内核数的2倍这个规律,可以通过cat /proc/cpuinfo查看相关cpu信息

make -j6 2>&1 | tee build.log

编译成功后,在 Android 模拟器中运行 AVD 系统映像:

emulator

你可能感兴趣的:(Android固件开发,ubuntu,linux,服务器)