Ubuntu 18.04 WMware 编译 AOSP android-7.1.2_r33 笔记
0 前言
问:都快2022年了,为什么还要编译 android 7.1.2 ?
答:某脱壳机特征修改或移植到其他机型(此处省略1000字...)
笔者在编译之前并没有加入专有二进制文件(后续加入了再补充笔记),以供真机运行时一些硬件设备驱动都正常运行,详细请参考谷歌官方教程:https://source.android.com/setup/build/downloading#obtaining-proprietary-binaries
自备出国留学工具
主机配置:
Windows 10 HOME|I7 12700KF|海盗船 32G DDR4 3200MHz 双通道|西数 SN570 1T PCIE 3.0
虚拟环境:Ubuntu 18.04 Bionic (VMware)|8C 16G
编译目标:NZH54D|android-7.1.2_r33|Pixel (sailfish)、Pixel XL (marlin)
准备开始,接下来的每个完成一个步骤,都打个备份点,方便还原编译其它AOSP版本
1 系统安装
虚拟机和系统安装过程省略(网上大堆教程)...
改源
# backup sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# replace
sudo sed -i 's#//.*archive.ubuntu.com#//mirrors.aliyun.com#g' /etc/apt/sources.list
sudo sed -i 's#//.*security.ubuntu.com#//mirrors.aliyun.com#g' /etc/apt/sources.list
# update
sudo apt update
安装常用软件包
sudo apt install curl vim htop tmux lolcat tree
关闭屏幕休眠
设置 → 电源 → 节点 → 改为从不
2 源码同步(环境准备)
python
sudo apt install python
git
sudo apt install git
git config --global user.email "youremail@email.com"
git config --global user.name "yourname"
repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
# curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
3 源码同步
如果不指定分支默认获取 master,如需签出 master 之外的其他分支,请使用 -b 指定此分支。 如需查看分支列表,请参阅源代码标记和 build
cd; mkdir aosp; cd aosp;
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.2_r33 --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
repo sync -j8 # 同步源码到最新状态,-j8 是开启八个线程同时下载
大概要下载100多g,联通500M,实测耗时70分钟左右
4 源码编译(环境准备)
当前记录是针对 android 7.1.2,依赖环境如下,如果编译更高版本,环境也许不同,所以编译环境在下载源码之后进行会方便VMware打备份点
jdk
sudo apt install openjdk-8-jdk
提前修复编译时错误:SSL error when connecting to the Jack server. Try 'jack-diagnose'
- sudo vim /etc/java-8-openjdk/security/java.security
- 搜索找到这行代码:jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
- 删除 TLSv1, TLSv1.1, 后保存
如果没有提前修复,而是编译过程中报错了再修复这个问题的话,需要在修复之后重启 jack-admin,命令如下
- cd ~/aosp/prebuilts/sdk/tools/
- ./jack-admin kill-server
- ./jack-admin start-server
python
Ubuntu 18.04 自带 Python 3.6.9,编译 aosp 7.1.2 需要用 Python 2.x
如果编译更高版本可能依赖 Python 3,命令如下,现在不需要执行
# sudo apt install python3
# sudo ln -sfn /usr/bin/python3 /usr/bin/python
其他
sudo apt 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
5 源码编译
开始编译
如果在没有参数的情况下运行,则 lunch 会提示您从菜单中选择目标。如需了解所有现有设备的构建配置,请参阅择设备构建系统。
make -j20 是使用多少个线程编译,一般为CPU核心数×2,我这里多给了4,实测也没什么问题,并且编译速度确实提升了不少。
# cd ~/aosp
# rm -rf out
export LC_ALL=C
source build/envsetup.sh
lunch 18 # aosp_sailfish-userdebug
make -j20
编译成功
实测耗时
8C 16G make j1635分CPU占用50%左右
8C 16G make j2030分CPU占用55%左右资源占用和耗时比 最佳
10C 20G make j2028分CPU占用65%左右
12C 16G make j2427分CPU占用80%左右
12C 24G make j2426分CPU占用80%左右
输出目录 out/target/product/产品代号
ubuntu@ubuntu1804:~/aosp/out/target/product/sailfish$ du -h *.img
25M boot.img
6.4M ramdisk-recovery.img
1.5M ramdisk.img
825M system.img
223M system_other.img
146M userdata.img
Ubuntu 18.04 WMware 编译 AOSP android-7.1.2_r33 笔记的更多相关文章
- ubuntu 18.04下编译最新版本的KMS
KMS:kurento媒体服务,即 kurento media server 很庞大的一个WEBRTC项目,GIT库主项目:https://github.com/Kurento 基础实现,修改了gst ...
- Ubuntu 18.04 手动编译安装 ffmpeg
ffmpeg 是一个由提供对视频.音频和其他多媒体流文件进行处理功能的库和程序构成的自由软件项目,其常被用于适用于不同格式的音频和视频的录影.转换和流处理等场合.这里记录在 Ubuntu 18.04 ...
- Ubuntu 18.04编译AOSP源码
总结一下我从Ubuntu 18.04下编译成功AOSP的过程,以及遇到的坑 我的电脑配置: OS: Ubuntu 18.04 bionic Kernel: x86_64 Linux 4.18.0-17 ...
- 加密通信软件Signal 2.92版本编译安装折腾手记(Ubuntu 18.04)
加密通信软件Signal 2.92版本编译安装折腾手记(Ubuntu 18.04) 前言 加密通信软件Signal是开源的,安全性很高,号称斯诺登也推荐大家使用.既然这么好,那必然会有不少人去尝试复制 ...
- Ubuntu 18.04 编译 ijkplayer
Ubuntu 18.04 编译 ijkplayer 1. 配置安装源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu 2. 配置好安装源后,安装一些组 ...
- Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面
Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面.上网问了问百 ...
- Ubuntu 18.04 下配置 HAXM 加速 Android模拟器
Ubuntu 18.04 下配置 HAXM 加速 Android模拟器 最近在vmware环境下搭建ubuntu18.04开发环境,开始发现总是运行android模拟器在console提示加载如下错误 ...
- [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程
标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...
- Ubuntu 18.04及Snap体验——让Linux入门更简单(转))
https://www.linuxidc.com/Linux/2018-06/152993.htm 初次听说过Linux的时候,是大一计算机课时候老师介绍说除了Windows还有Linux.Unix操 ...
随机推荐
- Flink Sql 之 Calcite Volcano优化器(源码解析)
Calcite作为大数据领域最常用的SQL解析引擎,支持Flink , hive, kylin , druid等大型项目的sql解析 同时想要深入研究Flink sql源码的话calcite也是必备 ...
- 【转载-Andrew_qian】stm32中断学习
[转载]stm32中断学习 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大 ...
- Beta阶段第六次会议
第六次会议 时间:2020.5.22 完成工作 姓名 任务 难度 完成度 xyq 1.编写技术博客 中 90% ltx 1.编写小程序2.添加全局变量之后页面无法加载的bug 中 90% lm(迟到) ...
- [no code][scrum meeting] Beta 3
$( "#cnblogs_post_body" ).catalog() 例会时间:5月15日11:30,主持者:肖思炀 下次例会时间:5月16日11:30,主持者:伦泽标 一.工作 ...
- 运维常用python库&模块
sutil:是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资 ...
- JVM:Java内存区域与内存溢出异常
Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁时间,有些区域随着虚拟机进程的启动而存在,有些区域依赖用户线程的启动和 ...
- 高频面试题:一张图彻底搞懂Spring循环依赖
1 什么是循环依赖? 如下图所示: BeanA类依赖了BeanB类,同时BeanB类又依赖了BeanA类.这种依赖关系形成了一个闭环,我们把这种依赖关系就称之为循环依赖.同理,再如下图的情况: 上图中 ...
- 最详细的windows10系统封装教程
目录 自定义封装(定制)windows10教程 关于本教程及用到的工具的声明 第一阶段: 封装前的各种环境准备 安装vmware 创建虚拟机 对虚拟机进行分区 配置好BIOS 为虚拟机安装window ...
- Ubuntu mysql安装与使用
Ubuntu 下安装 mysql 运行下面的shell代码 #安装mysql sudo apt-get -y install mysql-server sudo apt-get -y install ...
- Unity——技能系统(二)
Unity技能系统(二) Unity技能系统(一) Demo展示: 五.技能管理和释放 1.CharacterSkillSystem 技能系统类,给外部(技能按钮,按键)提供技能释放方法: 技能释放逻 ...