实现 Ubuntu20.04编译Android10系统源码
1.前言
编译Android系统使用的是Ubuntu20.04搭建Android10源码编译
2.详细步骤
1.下载VMware Workstation Pro
这里使用的是目前最新的版本VMware Workstation Pro16 为例,官网下载地址为:Windows 虚拟机 | Workstation Pro | VMware | CN 选择试用版本
安装过程比较的简单,这里就详细介绍了。
2.下载Ubuntu20.04
这里使用的是20.04版本,官方下载地址为:Ubuntu系统下载 | Ubuntu
找到对应的Ubuntu版本下载就可以
3.在VM上安装Ubuntu20.04
1.在VM主页上选择创建新的虚拟机,如下图所示
2. 选择典型安装
3.在安装程序光盘映像文件里找到下载好的Ubuntu系统,如下图所示
4.填好用户信息
5.设置系统在物理机中的磁盘位置
6.设置磁盘的大小
磁盘的大小建议是300G,Android系统源码挺大的(当时下载Android10的源码将近100G),后续编译将近到200G左右,以防磁盘空间不够,造成Android系统编译失败的情况。
7.设置Ubuntu的内存和处理器
将内存设置成16G(内存建议设置成16G,如果太小了很容就会出现很对异常问题,如内存溢出等等,各种奇葩的问题) ,处理器为8核。此外需要注意的是,在处理器上,需要将虚拟化的VT打上勾,不然Android系统编译成功后,用emulator的模拟器指令无法启动Android模拟器。
点击完成,Ubuntu的系统就可以在VM上安装了
安装成功后的Ubuntu如下所示,至此,VM上安装Ubuntu20.04结束。
4.下载Android源码
在下载Android源码前,需要安装编译依赖库和工具下载。
1.安装git
sudo apt-get install git
安装成功后,查看git版本
git --version
出现git版本,即安装成功
下载好git后,设置git账户
-
git config --global user.email "xxxxxxx@gmail.com"
-
git config --global user.name "xxxxx"
2.安装jdk
sudo apt-get install openjdk-8-jdk
3.配置PATH环境变量
-
mkdir ~/bin
-
echo "PATH=~/bin:\$PATH" >> ~/.bashrc
-
source ~/.bashrc
4.安装curl库
sudo apt-get install curl
5.下载repo并设置权限
-
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
-
chmod a x ~/bin/repo
6.安装python
sudo apt-get install python
查看python版本
python --version
如果有看到python的版本,即安装成功
下载源码
1.创建Android源码目录:
-
mkdir source
-
cd source
-
mkdir android_10
-
cd android_10
2.设置repo的地址,这里使用的tanna源:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
3.初始化仓库:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
4.制定Android版本并初始化:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r10
5.开始同步代码源:
repo sync
Android源码非常大,需要同步很长的时间,如果同步过程中有出现某个地方卡顿了很久,可以使用ctrl z来中断同步,重新 repo sync来进行同步
编译源码
1.安装依赖
-
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
上面安装依赖中会有两个地方会出现问题
(1) 安装 sudo apt-get install libesd0-dev 会报 Unable to locate package libesd0-dev 这个错
解决办法:
-
sudo gedit /etc/apt/sources.list //在行尾添加如下两行的内容
-
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
-
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
(2) 安装sudo apt-get install lib32ncurses5-dev可能报"lib32ncurses5-dev : Depends: libncurses5-dev (= 6.0 20160213-1ubuntu1) Unable to correct problems, you have held broken packages."
解决办法:
1.安装aptitude
sudo apt install aptitude
2.安装lib32ncurses5-de
需要注意的是,安装这个lib32ncurses5-de需要切换到root权限(第一次安装Ubuntu root密码是随机的,可以使用sudo passwd root)来输入或修改密码
sudo passwd root
在使用su 回车切换到root用户
su
在输入root的密码即可,root用户命令行最前面有一个#,即切换到超级用户,安装lib32ncurses5-de
aptitude install lib32ncurses5-dev
安装时,会提示你是否保持当前版本,先输入n,再回提示你是否降级,输入y即可
开始编译
-
source build/envsetup.sh
-
lunch 21 (X86版本)
-
make -j8
这里 -j8表示让8个线程参与编译,这个数字一般满足cpu内核数*2,可以通过cat /proc/cpuinfo来查看相关的cpu信息。
编译成功,如下所示
启动模拟器
emulator
成功运行,这个就是我们自己手动编译的Android源码。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiaibbh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22