Ubuntu20.4环境下,Android11(R)源码,下载,编译,Pixel4刷机
Ubuntu20.04.2LTS 环境下,Android11(R)版本源码下载,编译,Pixel4刷机
前言:前段时间为了给Pixel4刷机,下载源码、编译、刷机,踩了无数个坑,也花了很多时间,在这里做个笔记,便于以后避坑,也给以后遇到同样问题的同学一些参考
一、源码下载
下载 android11 需要python3.9
1、sudo apt update
2、sudo apt install software-properties-common
3、sudo add-apt-repository ppa:deadsnakes/ppa
4、sudo apt install python3.9//查看python版本号,确认是否安装成功
5、python3.9 -V
如果python还安装了其他版本需要切换版本到3.9版本
安装git
sudo apt-get upgrade
sudo apt-get install git
git config --global user.email "xxxxxxx@gmail.com"
git config --global user.name "xxxxx"
安装curl
sudo apt-get install curl
配置环境变量,安装repo(使用清华镜像站下载)
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
打开bin文件夹下的repo文件,将
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
初始化仓库、选择分支、同步
创建放源码的文件夹
mkdir android11.0.0
cd android11.0.0
初始化仓库
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
切换到指定分支
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r36
这里的 android-11.0.1_r36 是源码分支,需要填写对应设备的分支,可点击这里查询(没有梯子的可以在百度上搜):分支列表
同步源码树
repo sync
不出意外的话,几个小时就下载好了
二、源码编译
准备编译环境
安装jdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk
构建编译环境依赖
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 libncurses5
下载编译驱动
如果只是运行模拟器忽略这一步,我的设备Pixel4手机需要下载驱动编译脚本–脚本链接,下载机器对应的驱动编译脚本文件并解压,得到extract-google_devices-flame.sh和extract-qcom-flame.sh,放到源码的根目录执行(会让输入 I ACCEPT,回车别按的太快),执行后会得到vender目录
开始编译
//进入源码根目录
cd android11.0.0
source build/envsetup.sh
lunch
选择自己需要的编译配置,点这里配置列表(需要梯子)或者下表查看配置
我是Pixel4设备所以要选aosp_flame_userdebug也就是22然后回车,如果只运行模拟器,则需要选择电脑对应cpu架构的配置(不然模拟器运行不起来),一般电脑的CPU架构是X86(可以根据电脑选择29或者30)
开始编译:
make -j8
这里的8为CPU的线程数量,如果电脑配置不太好,建议直接:
make
不出意外的话几个小时后编译OK
//运行模拟器,如果选择模拟器的话到这里就可以看到源码编译的系统了
emulator
三、刷机
安装adb
apt-get install android-tools-adb
连接上手机
开始刷机
进入bootloader模式
adb reboot bootloader
解锁设备
fastboot flashing unlock
配置ANDROID_PRODUCT_OUT环境
export ANDROID_PRODUCT_OUT=/home/ubuntu/android11.0.0/out/target/product/flame
开始刷机
fastboot flashall -w
完成
四、过程中遇到的问题
1:找不到 ncurses.so 库
sudo apt-get install -y libncurses5
2:内存不足
增加Swap分区
1.创建交换分区的文件:增加4G大小的交换分区,count 为块大小。
# dd if=/dev/zero of=/home/swapfile bs=1M count=4096
2.设置交换分区文件:
# mkswap /home/swapfile # 建立swap 的文件系统
3.立即启用交换分区文件:
# swapon /home/swapfile #启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/home/swapfile swap swap defaults 0 0
3:Out of memory error
在make前输入(增加JVM内存)
export _JAVA_OPTIONS="-Xmx8g"
如果还不能解决,可以在编译时,打开系统监视器看一下内存,不够的话需要加内存条或者换其他android版本
4:找不到vendor/qcom/coral/proprietary/com.qualcomm.qcrilmsgtunnel.xml
这里可能是Google工程师写错了吧,找到源头改一下路径就可以了
源头在:vendor/qcom/flame/device-partial.mk
将
vendor/qcom/coral/proprietary/com.qualcomm.qcrilmsgtunnel.xml:system_ext/etc/permissions/com.qualcomm.qcrilmsgtunnel.xml \
改为
vendor/qcom/flame/proprietary/com.qualcomm.qcrilmsgtunnel.xml:system_ext/etc/permissions/com.qualcomm.qcrilmsgtunnel.xml \
即可
5:刷机过程中报错 :FAILED (remote: Partition should be flashed in fastbootd),原因是adb版本太旧,可以通过( adb version )查看版本号,需要到官网下载SDK Platform Tools,替换掉原来的目录(usr/lib/android-sdk/platform-tools)
6:刷机时发现缺少镜像文件,或者刷完机开不起机可以排查下源码分支、build配置和驱动脚本
Ubuntu20.4环境下,Android11(R)源码,下载,编译,Pixel4刷机相关推荐
- Ubuntu 22.04环境下安装lxr源码阅读器详细过程
Ubuntu 22.04环境下安装lxr源码阅读器详细过程 一.lxr介绍 二.依赖关系 三.安装过程 1.下载源码 2.执行检查 3.安装依赖 4.安装数据库和服务器 四.配置过程 1.主配置 2. ...
- Ubuntu20.4 Android-9.0.0_r46源码下载编译
Ubuntu20.4 Android-9.0.0_r46源码下载编译调试 安装Ubuntu虚拟机 ubuntu镜像下载地址: https://ubuntu.com/download 官网下载地址较慢可 ...
- win10下llvm的源码安装编译
win10下llvm的源码安装编译 1.下载llvm源码 2.下载安装cmake 你好!如需转载请标明本文出处. 1.下载llvm源码 下载llvm源码:https://github.com/llvm ...
- Android AOSP和Android-X86源码下载编译终极普法
Android AOSP和Android-X86源码下载编译终极普法 引言 最近有朋友在询问怎么下载Android AOSP源码和Android-X86源码,编译学习!其实这个说简单也简单 ...
- RedHat6.4系统下LAMP环境的搭建---(源码包编译安装)---v1.0
一:配置本地yum源 :--目录 作者:李文轩 座右铭:一个愿意为理想奋斗终生的人! 联系QQ:838997384 网站地址:www.74cto.com 说明:本篇安装的系统版本RedHat6.4(6 ...
- 从零开始搭建Ubuntu 环境下的Android 源码开发环境
本文从一个干净的Ubuntu 10.04 操作系统出发,一步一步引导你搭建自己的基于eclipse IDE 的Android源码开发环境. 正文会包含一下这些内容: 获得源码 编译源码准备工作 编译工 ...
- android4.4源码下载 windows,android4.4_android4.0 x86笔记本安装及开发环境搭建_android4.4源码下载...
Android 4.0让手机和平板电脑最终走到了一起,这是多么唯美的一件事,其实不仅仅有手机和平板,甚至连PC也与他们同路.日前Android for x86放出了最新的Android 4.0版,这也 ...
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
- [Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
1 前言 经过一周的奋战,终于从谷歌官网上下载最新的Android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载 ...
最新文章
- 主要推荐系统算法总结及Youtube深度学习推荐算法实例概括
- Java精讲:生产者-消费者
- SQLite学习手册(命令行工具)
- WebBrowser脚本错误的完美解决方案
- 推荐一款生成SQL插入语句的软件
- 『设计模式』状态模式(不起花里胡哨的名字了)
- 动态规划经典算法--最长公共子序列 LCS
- 杭电 1233 最小生成树 kruskal()算法
- Fiddler 抓包详细使用教程
- 程序闪退怎么运行_苹果应用程序崩溃闪退怎么办?如何解决苹果设备的软故障?...
- 【课程】MIT深度学习课程:架起理论与实践的桥梁
- 矩池云上安装CUDA头文件教程
- 京东抄袭源码;腾讯回应裁员;新 iPad Pro 十月发布 ​| 极客头条
- css3动画保持状态不变
- 绵阳创客开发长语音识别平台 1小时语音10分钟转化为文字
- java我的世界1.14.4_我的世界1.14.4国际版下载
- linux下开通ssh
- 计算机专业毕业答辩ppt优秀范例,毕业论文答辩PPT模板优秀范例课件.ppt
- RS485,uart串口加瑞芬68协议
- Python——利用协程实现视频的拖影效果