• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

实现 Ubuntu20.04编译Android10系统源码

武飞扬头像
h5630
帮助1

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账户

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

2.安装jdk

sudo apt-get install openjdk-8-jdk

  3.配置PATH环境变量

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

  4.安装curl库

sudo apt-get install curl

  5.下载repo并设置权限

  1.  
    curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
  2.  
    chmod a x ~/bin/repo

 6.安装python

sudo apt-get install python

 查看python版本

python --version

 如果有看到python的版本,即安装成功

学新通

 下载源码

1.创建Android源码目录:

  1.  
    mkdir source
  2.  
    cd source
  3.  
    mkdir android_10
  4.  
    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.安装依赖

  1.  
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g -multilib
  2.  
    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
  3.  
    sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
  4.  
    sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
  5.  
    sudo apt-get install git-core gnupg flex bison gperf build-essential
  6.  
    sudo apt-get install zip curl zlib1g-dev gcc-multilib g -multilib
  7.  
    sudo apt-get install libc6-dev-i386
  8.  
    sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
  9.  
    sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
  10.  
    sudo apt-get install lib32z-dev ccache
  11.  
    sudo apt-get install libssl-dev

  上面安装依赖中会有两个地方会出现问题

   (1) 安装 sudo apt-get install libesd0-dev 会报 Unable to locate package libesd0-dev 这个错

解决办法:

  1.  
    sudo gedit /etc/apt/sources.list //在行尾添加如下两行的内容
  2.  
    deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
  3.  
    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即可

开始编译

  1.  
    source build/envsetup.sh
  2.  
    lunch 21 (X86版本)
  3.  
    make -j8

这里 -j8表示让8个线程参与编译,这个数字一般满足cpu内核数*2,可以通过cat /proc/cpuinfo来查看相关的cpu信息。

编译成功,如下所示

学新通

启动模拟器

emulator

学新通

学新通

 成功运行,这个就是我们自己手动编译的Android源码。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiaibbh
系列文章
更多 icon
同类精品
更多 icon
继续加载