Android AOSP 编译并烧录到Google Pixel4XL

在这里插入图片描述

简介

AOSP(Android Open Source Project)是Android系统的开源版本,任何人都可以下载、编译和修改。手头上有一台Pixel 4XL,尝试编译AOSP并将其烧录到的设备上。

准备工作

在开始之前,您需要确保您的电脑满足以下条件:

  • 足够的存储空间:编译AOSP需要大量的存储空间,建议至少预留200GB的空间。
  • 足够的RAM:编译AOSP也需要大量的RAM,建议至少16GB的RAM。
  • 一台运行Linux或macOS的电脑:Windows系统不适用于编译AOSP。
  • TYPEC线一条,
  • 一部快废了的pixel手机

救砖: 烧录变砖的风险很高.
https://developers.google.cn/android/images这里下载对应版本的固件,并进行解压

虽然找得到固件, 但是并不能正常下载下来
We’re sorry…
… but your computer or network may be sending automated queries. To protect our users, we can’t process your request right now.

See Google Help for more information.

进入引导程序界面,连接电脑,直接打开**flach-all.bat**,等待完成后你的手机就能开机
pixel4XL进入引导界面的步骤:1. 首先,确保您的设备已关闭。(按住 Pixel 4 XL 的电源按钮约 30 秒钟来强制关机)
2. 按住音量下按钮和电源按钮同时长达30秒钟,直到设备重新启动。
3. 在Pixel徽标出现时松开电源按钮,但继续按住音量下按钮,直到您看到“启动器锁定状态”选项。
4. 使用音量按钮导航到“启动器锁定状态”,然后按电源按钮确认。

https://flash.android.com/release/13.0.0 界面如下
在这里插入图片描述
在这里插入图片描述
后续确认并下载固件:
在这里插入图片描述
下载完后, 会自动烧录到手机中, 等待烧录完成即可!
小插曲: 由于前面已经解锁过bootloader, 烧录的最后会提示重新锁定.

为PIXEL4XL编译AOSP[使用清华镜像]

AOSP的下载和编译过程可参考:Ubuntu 20.04编译AOSP 并启动模拟器

1. 编译Pixel4XL的固件, 还需要获取对应失败的驱动程序二进制文件
Nexus 和 Pixel 设备的驱动程序二进制文件
在这里插入图片描述

很明显, Pixel4XL 最新支持到 Android 13.0.0

下载下来的两个文件, 放到AOSP源码的目录下执行后再编译系统, 执行过程会提示一些LICENCE之类的问题, 同意即可
在这里插入图片描述

2. 确定Pixel4XL支持的系统版本并切换到制定分支

//https://blog.csdn.net/weixue9/article/details/100572970
# 查看所有分支
aosp/.repo/manifests$ git branch -a | cut -d / -f 3 | grep android-13
# 切换分支
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r31
repo sync

如果没有切换到对应的分支, 根本找不到对应的Pixel 4XL 的项目配置

3. 编译

source build/envsetup.sh
lunch aosp_coral-userdebug
make -j12

可能编译失败: 内存问题, 增加虚拟内存解决

make
20:43:39 ************************************************************
20:43:39 You are building on a machine with 15.4GB of RAM
20:43:39 
20:43:39 The minimum required amount of free memory is around 16GB,
20:43:39 and even with that, some configurations may not work.
20:43:39 
20:43:39 If you run into segfaults or other errors, try reducing your
20:43:39 -j value.
20:43:39 ************************************************************
build/make/core/soong_config.mk:209: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated
. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead.
build/make/core/soong_config.mk:210: warning: BOARD_PLAT_PRIVATE_SEPOLICY_DIR has been deprecate
d. Use SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS instead.
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=13
TARGET_PRODUCT=aosp_coral
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.0-27-generic-x86_64-Ubuntu-22.04.4-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=TP1A.221005.002.B2
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=hardware/google/av hardware/google/camera hardware/google/interfaces ha
rdware/google/pixel device/google/coral hardware/qcom/sm8150/display hardware/qcom/sm8150/data/i
pacfg-mgr hardware/qcom/sm8150/gps vendor/google/airbrush/floral vendor/google/biometrics/face/f
lorence vendor/google/camera vendor/google/darwinn vendor/google_devices/common/proprietary/conf
irmatioui_hal vendor/google_nos/host/android vendor/qcom/sm8150 vendor/qcom/sm8150/proprietary/c
ommonsys/telephony-apps/DataStatusNotification vendor/qcom/sm8150/proprietary/gps vendor/qcom/sm
8150/proprietary/qmi vendor/qcom/sm8150/codeaurora/location vendor/google/interfaces vendor/goog
le_nos/test/system-test-harness vendor/qcom/sensors vendor/google/tools/sensors vendor/qcom/sm72
50/codeaurora/commonsys/telephony/ims/ims-ext-common vendor/qcom/sm7250/codeaurora/dataservices/
rmnetctl vendor/qcom/sm7250/proprietary/commonsys/qcrilOemHook vendor/qcom/sm7250/proprietary/co
mmonsys/telephony-apps/ims vendor/qcom/sm7250/proprietary/commonsys/telephony-apps/QtiTelephonyS
ervice vendor/qcom/sm7250/proprietary/commonsys/telephony-apps/xdivert vendor/qcom/sm7250/propri
etary/qcril-data-hal vendor/qcom/sm7250/proprietary/qcril-hal vendor/qcom/sm7250/proprietary/dat
a vendor/qcom/proprietary/bluetooth/hidl_client vendor/qcom/coral/proprietary
============================================
[100% 1/1] analyzing Android.bp files and generating ninja file at out/soong/build.ninja
FAILED: out/soong/build.ninja
cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux
-x86/bin/soong_build")" && cd / && env -i  "$BUILDER"     --top "$TOP"     --soong_out "out/soon
g"     --out "out"     -o out/soong/build.ninja --globListDir build --globFile out/soong/globs-b
uild.ninja -t -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.a
vailable --used_env out/soong/soong.environment.used.build Android.bp
Killed
20:45:07 soong bootstrap failed with: exit status 1
ninja: build stopped: subcommand failed.#### failed to build some targets (01:31 (mm:ss)) ####

烧录

  1. 打开两个调试开关
    “Settings”/”System”/”Advanced”/”Developer options”/”USB debugging
    “Settings”/”System”/”Advanced”/”Developer options”/”OEM unlocking
  2. 开始烧录
cd out/target/product/coral/
adb reboot bootloader
fastboot flashing unlock
fastboot flashall -w

注意
如果是bootloader未解锁, 需要通过配合音量键和电源键解锁, 解锁后可以进入fastbootd模式
烧录过程会重启几次

android@MR26:/aosp/out/target/product/coral$ fastboot flashall -w
< waiting for any device >
--------------------------------------------
Bootloader Version...: c2f2-0.5-8906123
Baseband Version.....: g8150-00123-220708-B-8810441
Serial Number........: 9B051FFBA00E7C
--------------------------------------------
Checking 'product'                                 OKAY [  0.070s]
Setting current slot to 'b'                        OKAY [  0.079s]
Sending 'boot_b' (65536 KB)                        OKAY [  2.350s]
Writing 'boot_b'                                   OKAY [  0.425s]
Sending 'dtbo_b' (8192 KB)                         OKAY [  0.410s]
Writing 'dtbo_b'                                   OKAY [  0.124s]
Sending 'vbmeta_b' (4 KB)                          OKAY [  0.140s]
Writing 'vbmeta_b'                                 OKAY [  0.078s]
Sending 'vbmeta_system_b' (4 KB)                   OKAY [  0.140s]
Writing 'vbmeta_system_b'                          OKAY [  0.077s]
Rebooting into fastboot                            OKAY [  0.070s]
< waiting for any device >
Sending 'super' (4 KB)                             OKAY [  0.045s]
Updating super partition                           OKAY [  1.015s]
Resizing 'product_b'                               OKAY [  0.005s]
Resizing 'system_b'                                OKAY [  0.005s]
Resizing 'system_ext_b'                            OKAY [  0.005s]
Resizing 'system_a'                                OKAY [  0.006s]
Resizing 'vendor_b'                                OKAY [  0.005s]
Resizing 'vendor_a'                                OKAY [  0.006s]
Invalid sparse file format at header magic
Resizing 'product_b'                               OKAY [  0.006s]
Sending sparse 'product_b' 1/2 (262140 KB)         OKAY [  8.997s]
Writing 'product_b'                                OKAY [  2.498s]
Sending sparse 'product_b' 2/2 (19320 KB)          OKAY [  0.753s]
Writing 'product_b'                                OKAY [  0.147s]
Invalid sparse file format at header magic
Resizing 'system_b'                                OKAY [  0.006s]
Sending sparse 'system_b' 1/4 (262116 KB)          OKAY [  9.101s]
Writing 'system_b'                                 OKAY [  2.500s]
Sending sparse 'system_b' 2/4 (262116 KB)          OKAY [  9.269s]
Writing 'system_b'                                 OKAY [  1.459s]
Sending sparse 'system_b' 3/4 (262140 KB)          OKAY [  9.488s]
Writing 'system_b'                                 OKAY [  1.471s]
Sending sparse 'system_b' 4/4 (70868 KB)           OKAY [  2.458s]
Writing 'system_b'                                 OKAY [  0.442s]
Resizing 'system_ext_b'                            OKAY [  0.005s]
Sending 'system_ext_b' (163524 KB)                 OKAY [  5.689s]
Writing 'system_ext_b'                             OKAY [  1.936s]
Resizing 'system_a'                                OKAY [  0.008s]
Sending 'system_a' (24708 KB)                      OKAY [  0.996s]
Writing 'system_a'                                 OKAY [  0.199s]
Invalid sparse file format at header magic
Resizing 'vendor_b'                                OKAY [  0.010s]
Sending sparse 'vendor_b' 1/4 (262116 KB)          OKAY [  8.423s]
Writing 'vendor_b'                                 OKAY [  2.476s]
Sending sparse 'vendor_b' 2/4 (262096 KB)          OKAY [  8.982s]
Writing 'vendor_b'                                 OKAY [  1.549s]
Sending sparse 'vendor_b' 3/4 (262140 KB)          OKAY [  9.284s]
Writing 'vendor_b'                                 OKAY [  1.436s]
Sending sparse 'vendor_b' 4/4 (67856 KB)           OKAY [  2.437s]
Writing 'vendor_b'                                 OKAY [  0.430s]
Erasing 'userdata'                                 OKAY [  4.547s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Erasing 'metadata'                                 OKAY [  0.004s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 123.496s

在这里插入图片描述

参考

Android 12源码编译报错:FAILED: out/soong/build.ninja
使用Google Pixel5手机调试AOSP(代码下载、编译、刷机、调试)详细攻略
aosp-刷入到pixel4XL设备
Build, Flash and Un-Flash AOSP Image on Pixel Phones

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验08 软件设计模式及应用

目录 实验目的实验内容一、能播放各种声音的软件产品Sound.javaDog.javaViolin.javaSimulator.javaApplication.java运行结果 二、简单工厂模式--女娲造人。Human.javaWhiteHuman.javaYellowHuman.javaBlackHuman.javaHumanFactory.javaNvWa.java运行结果 三、工厂方法模式--女…

Python爬虫项目集:豆瓣电影排行榜top250

关于整理日常练习的一些爬虫小练习&#xff0c;可用作学习使用。 爬取项目以学习为主&#xff0c;尽可能使用更多的模块进行练习&#xff0c;而不是最优解。 爬虫概要 示例python 库爬取模块request解析模块BeautifulSoup存储类型list&#xff08;方便存入数据库&#xff09…

2024年最新 Windows 操作系统安装部署 MongoDB 数据库详细教程(更新中)

MongoDB 概述 MongoDB 是一个基于分布式文件存储的开源数据库系统&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系…

使用mysql的binlog进行数据恢复

1.mysql安装环境 在你本地电脑windows上建一个和生产环境一样的mysql版本 我的是 mysql5.7.43 安装教程可以自行上网搜&#xff08;这里不做介绍&#xff09; 可参考&#xff1a; 1.1安装路径 我的mysql安装路径&#xff1a; D:\mysql\mysql-5.7.43-winx64\bin * 1.2my.in…

Docker部署私有仓库(registryHarbor)

简介Docker Hub 官方仓库 在 Docker 中&#xff0c;当我们执行 docker pull xxx 的时候 &#xff0c;它实际上是从 registry.hub.docker.com 这个地址去查找&#xff0c;这就是Docker公司为我们提供的公共仓库。在工作中&#xff0c;我们不可能把企业项目push到公有仓库进行管理…

讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)

目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式…

双目相机测距原理

一、普通双目相机测距原理 普通双目相机具有如下特点&#xff1a;左右两个相机位于同一平面&#xff08;光轴平行&#xff09;&#xff0c;且相机参数&#xff08;焦距f&#xff09;一致。其原理图如下&#xff1a; 如图所示&#xff0c;P点为相应的物体位置&#xff0c;CL和C…

【等保】网络安全等级保护(等保2.0PPT)

等保2.0&#xff08;网络安全等级保护基本要求的第二代标准&#xff09;的推出和实施&#xff0c;是基于多方面的考虑和需求。以下是实施等保2.0的主要原因&#xff1a; 加强网络安全保护&#xff1a; 随着网络技术的不断发展和网络威胁的不断增加&#xff0c;传统的网络安全保…

2024年广西三支一扶报名详细流程(附报名照处理流程)​

2024年广西将招募1650名高校毕业生到基层从事支农、支医、支教和帮扶乡村振兴工作&#xff08;简称“三支一扶”&#xff09;。 招募对象为全日制普通高校应届及择业期内2022年至2024年毕业的全日制普通高校毕业生。 ➡️招募条件。 1.具有全日制大专&#xff08;含高职高专&am…

B端系统:配置页面如何设计,这可是用户体验的关键的关键。

提升配置页面体验的十大原则 设计B端系统的配置页面时&#xff0c;用户体验确实是非常关键的。以下是一些设计原则和建议&#xff0c;可以帮助提高配置页面的用户体验&#xff1a; 简洁明了&#xff1a;配置页面应该尽量简洁明了&#xff0c;避免过多的复杂选项和信息。使用清…

【代码阅读】SSC:Semantic Scan Context for Large-Scale Place Recognition

一、主函数 官方开源的代码提供了四个主函数&#xff0c;其中eval_pair.cpp和eval_top1.cpp是一组&#xff0c;分别用于计算两帧的相似度分数以及一帧点云在所有的51帧点云中相似度最高的25帧的相似度分数。eval_seq.cpp是在eval_top1.cpp的基础上&#xff0c;给了一堆序列&am…

图解布隆过滤器(Bloom Filter)

布隆过滤器详解 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率非常高的随机数据结构&#xff0c;由布隆&#xff08;Burton Howard Bloom&#xff09;在1970年提出&#xff0c;用于检验一个元素是否属于一个集合。 具体来说&#xff0c;它可能会错误地认为一个…

Jmeter插件管理器,websocket协议,Jmeter连接数据库,测试报告的查看

目录 1、Jmeter插件管理器 1、Jmeter插件管理器用处&#xff1a;Jmeter发展并产生大量优秀的插件&#xff0c;比如取样器、性能监控的插件工具等。但要安装这些优秀的插件&#xff0c;需要先安装插件管理器。 2、插件的下载&#xff0c;从Availabale Plugins中选择&#xff…

达梦(DM8)数据库表空间的备份与还原(联机备份) 四

一、表空间的备份 1、备份表空间的命令操作 backup tablespace main backupset /home/dmdba/dmdata/DAMENG/bak/full_back_01 ; 2、检查表空间的备份文件 select sf_bakset_check(disk,/home/dmdba/dmdata/DAMENG/bak/full_back_01); 二、表空间的还原 1、修改表空间位脱机…

AI播客下载:Edge of AI (AI最新应用场景和发展趋势)

Edge of AI Podcast 是一个探讨人工智能&#xff08;AI&#xff09;最新应用和发展的播客。该播客由Ron Levy主持&#xff0c;他于2023年8月9日接任新主持人。每个节目都会邀请专家分享他们在AI领域的见解和经验&#xff0c;探索最新的应用场景和发展趋势。例如&#xff0c;在第…

PointCloudLib 法线微分算法(Don)分割点云 C++版本

0.实现效果 原始点云 不同尺度上计算法向量 计算出don特征量,并以颜色显示在点云上 可以看出平面中心的点 不涉及到周围点变化的点 特征量比较低,以红色表示 边缘过渡剧烈的点,特征量比较高,以蓝色表示 以Don算法特征量来作为阈值分割点云,可以分割出剧烈变化的点云 欧…

国标GB28181视频汇聚平台EasyCVR设备展示数量和显示条数不符的原因排查与解决

国标GB28181/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级…

Django教程(002):模板语法的使用

目录 1 字符串2 列表3 字典4 列表中是字典5 if语句6 案例&#xff1a;使用爬虫爬取联通新闻并在页面渲染 模板语法本质上&#xff1a;在HTML中写一些占位符&#xff0c;由数据对这些占位符进行替换和处理。模板语法主要是方便对方法返回的数据在前端进行渲染&#xff0c;这些数…

【Proteus仿真】【Arduino单片机】寻迹避障蓝牙遥控小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使LCD1602液晶&#xff0c;L298电机&#xff0c;直流电机&#xff0c;HC05/06蓝牙模块&#xff0c;HCSR04超声波&#xff0c;红外寻迹模块等。 主…

C++初学者指南-2.输入和输出---命令行参数

C初学者指南-2.输入和输出—命令行参数 文章目录 C初学者指南-2.输入和输出---命令行参数1.这是什么&为什么这样&#xff1f;2.如何在C中访问3.转换为std::string、int......4.字符串到数字的转换函数5.命令行参数解析库 1.这是什么&为什么这样&#xff1f; 程序调用后…