Ubuntu18.04 编译 Android10.0 系统源代码

简介: Ubuntu18.04 编译 Android10.0 系统源代码

编译环境


1、Ubuntu18.04 系统

2、三星500G SSD EVO系列

3、内存8G,cpu 4核,I5(8年老本了凑合着用用)


准备工作


1、下载 git

sudo apt-get install git


开始遇到的问题,git 下载不了,提示下面的信息


Some packages could not be installed. This may mean that you have

requested an impossible situation or if you are using the unstable

distribution that some required packages have not yet been created

or been moved out of Incoming.


解决办法,执行

sudo apt-get upgrade
sudo apt-get install git


2、设置 git 账户

git config --global user.email "xxxxxxx@gmail.com"
git config --global user.name "xxxxx"


3、下载python

sudo apt-get install python


4、配置PATH环境变量

mkdir ~/bin
echo "PATH=~/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc


5、安装 curl 库,并设置权限

sudo apt-get install curl
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

下载源码


1、建立工作目录

mkdir android10
cd android10


2、添加清华大学镜像源

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


3、初始化仓库,并指定要下载android版本

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


4、同步源码


repo sync -j8


慢慢的等待就好了,如果你网速很快,2个小时下载完成也是可能的。期间可能下载失败,失败了再次执行 repo sync -j8 就好。我这里经过一晚上下载完成了。


20200202142334359.png


编译源码


1、安装 openjdk8

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk


如果电脑里面存在多个java 版本,则通过如下命令选择openjdk-8即可

sudo update-alternative --config java
sudo update-alternative --config javac


2、安装依赖库

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


3、开始编译

通过 lscpu 命令查看当前cpu的详细信息


20200202142509646.png


执行命令


source build/envsetup.sh
lunch 21  (X86_64版本)
make -j8


lunch 根据上面cpu的类型,make -j cpu核数*2


4、排错过程

错误一


void cmdline::logParams(nsjconf_t *)():260 Process will be GID/EGID=0 in the global user namespace, and will have group root-level access to files


因为我在cmd下一直使用root身份登录,所以编译时就一直报错,后来修改文件夹属性权限改为普通用户,用user身份重新再次编译即可。


错误二

20200202143531985.png

按照提示执行 make update-api -j8 编译成功后再次 make 即可

错误三

java.lang.OutOfMemoryError: Java heap space

2020020214360741.png


这个问题我查了好久一直没找到解决办法,估计是和电脑本身内存有关系吧,如有解决的麻烦留言告诉下。


5、运行:


emulator


emulator -writable-system —> 能够remount system分区,emulator 的其他参数请参看 emulator -help


截图:


20200425153445458.png


目录
相关文章
|
3天前
|
Ubuntu 网络协议 搜索推荐
如何在Ubuntu系统上定制文件系统
本文介绍了如何基于全志T507H处理器的OKT507-C开发板上定制Forlinx Desktop(Ubuntu)文件系统。首先,通过解压文件系统并进入OKT507-linux-ubuntu目录。接着,安装QEMU,包括更新下载源和安装相关包。然后,修改配置,如复制DNS配置和修改下载源。挂载文件系统,通过编写ch-mount.sh脚本实现挂载和卸载。安装所需软件,例如使用apt-get安装minicom。最后,打包文件系统,用tar命令压缩并替换旧的文件系统压缩包,重新编译生成新镜像,烧录到开发板。测试方法是通过minicom验证软件是否成功安装。这种定制方式简化了批量生产中的软件安装步骤。
19 3
|
6天前
|
Web App开发 缓存 Ubuntu
Ubuntu系统的基础操作和使用
Ubuntu系统的基础操作和使用
15 2
|
7天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
24 1
|
8天前
|
监控 物联网 数据处理
构建未来:基于Android的智能物联网家居系统
【4月更文挑战第24天】 随着物联网技术的飞速发展,智能家居系统作为其重要分支之一,正逐渐渗透到千家万户。本文将详细探讨如何利用Android平台的灵活性和开放性,设计并实现一个高效、可靠的智能物联网家居系统。我们将从系统的架构设计出发,深入分析关键技术点,包括设备通信协议、用户界面设计以及后台数据处理等方面,并展示通过Android设备进行实时控制和监控的实用性。文章不仅聚焦于技术细节,还将对未来发展趋势及潜在挑战进行前瞻性讨论。
11 0
|
8天前
|
人工智能 Ubuntu 开发工具
【Ubuntu工具】避坑指南:搞坏一台电脑,终于在Ubuntu系统上成功源码安装了 QT WebEngine 5.15.13
【Ubuntu工具】避坑指南:搞坏一台电脑,终于在Ubuntu系统上成功源码安装了 QT WebEngine 5.15.13
32 0
|
8天前
|
人工智能 Ubuntu Shell
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
27 0
|
8天前
|
人工智能 Ubuntu C语言
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
17 0
|
9天前
|
Java Shell Android开发
Android构建系统:Android.mk(3)条件控制详解
Android构建系统:Android.mk(3)条件控制详解
15 1
|
9天前
|
存储 Android开发 开发者
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
18 0
|
9天前
|
Android开发
Android构建系统:Android.mk(2)函数详解
Android构建系统:Android.mk(2)函数详解
15 1