当前位置:   article > 正文

记录——Ubuntu18.04编译Android8.0系统源码_x3399pro ubuntu 编译android 源码

x3399pro ubuntu 编译android 源码

废话不多说。

首先 需要一个台式电脑,有个i7处理器,有一个1T的机械+ 500G的固态,如果条件允许改一个服务器也可以。我这里是一个台式电脑。

在台式电脑上安装一个虚拟机,基本是使用的VMware ,应该这个虚拟机有一个好处就是把每次成功的结果做成一个快照,就相当于做了一个备份,可以回退。

安装好虚拟机你就可以在创建虚拟机, 编译android 源码我用的Ubuntu 18.4 ,在虚拟机中安装即可。不会的自行百度,我这里不做赘述。

安装完系统 再启动虚拟机,这个时候需要  aosp 系统镜像

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

我下载的不是最新的,最新的现在要 95G,很浪费磁盘空间。

https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/   在这个链接中可以看到

本人下载的是   这个版本,这个版本刚好有 Android 9,相对小了很多

下载完成之后   执行文件MD5 完整性校验,看看是不是 文件有损害,

md5sum  aosp-20190401.tar   

再通过命令来解压 

tar  xf  aosp-20190401.tar  

解压完成之后就 配置编译的环境

编译android 8.0以上的源码需要 配置 jdk8

##安装openjdk

  1. sudo apt-get update
  2. sudo apt-get install openjdk-8-jdk
  3. sudo apt-get install openjdk-8-jre


##安装编译依赖的库文件
首先需要更新软件源,这里使用阿里源

  1. 编辑如下文件:
  2. sudo apt update vim #先安装vim
  3. sudo apt install vim -y
  4. sudo vim /etc/apt/sources.list #或者sudo gedit /etc/apt/sources.list
  5. 末尾添加如下内容
  6. deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
  7. deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
  8. deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
  9. deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
  10. deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
  11. deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
  12. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
  13. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
  14. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
  15. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
  16. deb http://kr.archive.ubuntu.com/ubuntu/ xenial main universe
  17. deb-src http://kr.archive.ubuntu.com/ubuntu/ xenial main universe

上述软件源添加完成以后,需要先做更新操作:

sudo apt-get update
  • ###安装依赖库文件
  1. sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
  2. sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
  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 lib32z-dev ccache
  10. sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

 

安装并配置git
 

  1. sudo apt-get install git -y
  2. git config --global user.name "your name"
  3. git config --global user.email "your@example.com"

在根目录 
 

  1. sudo gedit ~/.bashrc 
  2. PATH=~/bin:$PATH          
  3. export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'   

 

保存以后退出

 

安装repo

sudo apt install repo -y

同步源码

  1. cd aosp
  2. repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.0.0_r2
  3. repo sync

这里就等待 大概1小时 ,如果同步不成功  就在 执行   repo  sync  ,多次执行除非同步成功。

同步成功如下

需要下载对应的驱动

https://developers.google.com/android/drivers#sailfishopm4.171019.021.p1  

下载这两个 压缩文件  并解压得到两个脚本  ,拷贝到 aosp 目录下  运行,

  1. ./extract-google_devices-sailfish.sh
  2. ./extract-qcom-sailfish.sh

 输入      I ACCEPT

 

另一个同样的方法,这样子脚本就安装完成。

##编译AOSP
 

  1. source build/envsetup.sh
  2. lunch   


这里写图片描述

我自己用的pixel 手机,所以选择的  23  

设备编码选择  https://source.android.com/setup/build/running#selecting-device-build

 

最后一步就是  在主目录找到   .bashrc 文件,在最后面添加    export LC_ALL=C       

  1. echo "export LC_ALL=C" >> ~/.bashrc
  2. source ~/.bashrc

  链接文件

   sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

然后就是编译 

  1. make -j16
  2. 如果用python3编译失败,那就切换用python2来编译

当出现heap不足时有两种解决办法:

方法1 : 

  1. 打开 prebuilts/sdk/tools/jack-admin
  2. 对JACK_SERVER_COMMAND增加-Xmx4096m选项
  3. 用如下命令
  4. sudo vim /jack-admin 或者sudo gedit /jack-admin
  5. JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8}"
  6. 修改为
  7. JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -Xmx8g}"

方法2 : 导出环境变量

  1. export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8g"
  2. 两种方式任选其一都可以,然后执行jack重启命令:
  3. out/host/linux-x86/bin/jack-admin kill-server
  4. out/host/linux-x86/bin/jack-admin start-server

 

编译完成如下

 

刷机

可以写成脚本来刷机 ,刷机的时候 需要解锁 bootloader,谷歌官网先下载对应版本的 刷机包 ,解压之后 

第一种刷机方法

用刷机命令 如下图: 

第二种刷机方法  

在所有.img 文件的文件夹里面,打开 cmd直接执行   如下命令,

fastboot flashall -w

就是将所有的.img 文件刷入手机。

刷机完成  

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/576969
推荐阅读
相关标签
  

闽ICP备14008679号