当前位置: 首页 > news >正文

Android10源码刷入Pixel2以及整合GMS

一、ASOP源码下载

具体可以参考我之前发布的文章

二、下载相关驱动包

这一步很关键,关系到编译后的镜像能否刷入后运行

下载链接:Nexus 和 Pixel 设备的驱动程序二进制文件

如下图所示,将两个驱动程序上传到Ubuntu服务器,并进行解压,得到两个脚本:

下载解压后会有两个脚本文件,运行后输入I ACCEPT就会得到一个vendor文件夹的文件夹

三、AOSP源码编译

首先加载配置文件,然后选择机型

source build/envsetup.sh
lunch aosp_walleye-userdebug

这里直接输入lunch就能看到可以编译的全部机型,然后选择对应的机型就行

然后就直接

make -j6

如果期间有什么报错可以百度,修复后,直接make -j6继续运行就行。

经过漫长的等待,6个小时,终于成功了

[ 99% 101428/101980] //art/build/apex:art-check-debug-apex-gen generate art-check-debug-apex-gen.dummy
--bitness=auto, trying to autodetect. This may be incorrect!Detected multilib
[100% 101980/101980] Target vbmeta image: out/target/product/walleye/vbmeta.img#### build completed successfully (05:52:50 (hh:mm:ss)) ####

编译之后的输入镜像文件,其所在路径为"/out/target/product/walleye"

四、刷入镜像

1.打开OEM开关

先点击设置—关于手机----版本号七次—开发者选项—打开OEM解锁(这步必须可以上网,否则打不开)

2.启动进入fastboot模式

方法1:

adb reboot bootloader

方法2:
使用下图的快捷键,我的手机Pixel2 就是音量减键和电源键

成功fastboot模式进入,如下图:

3.解锁手机

对于新款设备(2015 年及之后发布的设备)

fastboot flashing unlock

对于老款设备(2014 年及之前发布的设备)

fastboot oem unlock

解锁确认界面,如下图:

4.刷机

cd out/target/product/walleye
fastboot flashall -w

成功进入桌面,如下图:

5.windows挂载 Ubuntu服务器的情况

在进行刷机时,需要设置环境变量ANDROID_PRODUCT_OUT。 如果是windows 需要指向其编译机器下的镜像输出目录。要想实现共享,需要在Ubuntu Server上安装和配置samba服务器。
1.在windows中,将服务器编译输出目录,映射为本地文件夹,编译访问
2.设置Windows环境变量

5.刷入部分镜像

由于常常修改的都是System镜像部分内容,但是编译出来的System有两个部分system.img和system_other.img使用这里就讲一讲System一个如何单独刷入进去。

于Android8之后采用A/B更新, 所以有2套分区, 刷分区方式和以往不同:

fastboot flash system system.img
fastboot flash system_a system_other.img
fastboot set_active b
fastboot reboot

五、添加GMS服务

GMS是Google Map/Chrome/Youtube等Google软件,是Google私有的套件。只有与Google签订合同的手机厂商可以预加载GMS。因此,虽然我们编译AOSP是Android官方发布,但不会包含GMS预加载。
理论上,Google为了同时保持开放性和服务可靠性,可以说是放水了。它让解锁后的手机可以安装GMS到Android系统。而重点是“解锁后”,所以Google不会告你侵权,只要不是预装在市售ROM就可以。于是Open GAPP计划就产生了,它让第三方ROM可以使用GMS及其服务。Open Gapps官网
OpenGapps也有教你如何把GMS整合进整个源代码https://github.com/opengapps/aosp_build

1.修改manifest.xml

找到你的清单文件.repo\manifests\default.xml,并在末尾添加以下内容:

<remote name

相关文章:

Android10源码刷入Pixel2以及整合GMS

一、ASOP源码下载 具体可以参考我之前发布的文章 二、下载相关驱动包 这一步很关键,关系到编译后的镜像能否刷入后运行 下载链接:Nexus 和 Pixel 设备的驱动程序二进制文件 如下图所示,将两个驱动程序上传到Ubuntu服务器,并进行解压,得到两个脚本: 下载解压后会有两…...

wpf触发与模板的使用示例:批量生产工具

批量生产工具 <Window x:Class"WpfM20UpdateFW.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressio…...

brew install node提示:Error: No such keg: /usr/local/Cellar/node

打开本地文件发现Cellar目录下无法生成 node文件&#xff0c;应该是下载时出现问题&#xff0c;重复下载无法解决问题&#xff0c;只能重新安装brew。 步骤1&#xff08;安装 brew&#xff09;&#xff1a; /bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/ra…...

记录一下gitlab社区版的安装教程

目录 1.更新系统软件包 2.安装必要的依赖 3.添加GitLab源 3.1对于GitLab Enterprise Edition&#xff08;EE&#xff09;&#xff1a; 3.2对于GitLab Community Edition&#xff08;CE&#xff09;&#xff1a; 4.安装GitLab 4.1安装GitLab Enterprise Edition&#xff08;E…...

20. 如何在MyBatis中处理多表关联查询?常见的实现方式有哪些?

在MyBatis中处理多表关联查询是一项常见的需求&#xff0c;特别是在关系型数据库中存储复杂的实体关系时。MyBatis提供了多种方式来实现多表关联查询&#xff0c;常见的实现方式包括使用<association>和<collection>标签在<resultMap>中进行对象关系映射&…...

【百日算法计划】:每日一题,见证成长(013)

题目 回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 思路 找到中间节点反转后半部分链表前后链表顺序比…...

PCL 读取和保存点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 1.1原理 PCL (Point Cloud Library) 是…...

js | TypeError: Cannot read properties of null (reading ‘indexOf’) 【解决】

js | TypeError: Cannot read properties of null (reading ‘indexOf’) 【解决】 描述 概述 在前端开发中&#xff0c;遇到TypeError: Cannot read properties of null (reading indexOf)这类错误并不罕见。这个错误通常表明你试图在一个null值上调用indexOf方法&#xff0c…...

微信小程序-formData使用

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 一、介绍 在小程序中使用formdata上传数据&#xff0c;可实现多文件上传 跟浏览器中的FormData对象类…...

潜在语义分析(Latent Semantic Analysis,LSA)—无监督学习方法、非概率模型、判别模型、线性模型、非参数化模型、批量学习

定义 输入: X [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] , 文本集合 D { d 1 , d 2 , ⋯ , d n } , 单词集合 W { ω 1 , ω 2 , ⋯ , ω m } , x i j : 单词 ω i 在文本 d j 中出现的频数或权值 X\left[ \begin{array}{cccc} x_{11} …...

【安全漏洞】MySQL 8.0.33 、CVE-2023-22102

mysql-connector-java:jar:8.0.33已经重新定位到mysql-connector-j:jar:8.0.33 安全漏洞描述 在SBOM扫描过程中&#xff0c;检测到mysql-connector-j:8.0.33存在如下高危安全漏洞&#xff1a; CVE-2023-22102&#xff1a;Oracle MySQL Connectors 8.1.0 版本之前存在安全漏洞&…...

Flutter 响应式框架

一、简介 响应式框架会自动使用户界面适应不同的屏幕大小。创建你的用户界面一次&#xff0c;让它显示完美的像素在移动&#xff0c;平板电脑和桌面&#xff01; 1.1 问题 支持多种显示尺寸通常意味着要多次重新创建同一布局。在传统的Bootstrap方法下&#xff0c;构建响应式…...

电脑AE特效软件 After Effects软件2017中文版下载安装指南 (Win/Mac)

电脑ae特效软件 After Effects软件2017中文版下载安装win/... 电脑AE特效软件 After Effects软件2017中文版下载安装指南 (Win/Mac) Adobe After Effects 2017 是一款功能强大的视频后期处理软件&#xff0c;广泛应用于影视特效制作、动态图形设计、视觉效果合成等领域。其丰…...

C#中的装箱和拆箱是什么

在 C# 中&#xff0c;装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09;是与值类型和引用类型相关的概念&#xff0c;涉及到值类型的数据在托管堆&#xff08;Heap&#xff09;上的存储方式。 装箱&#xff08;Boxing&#xff09; 装箱是指将值类型…...

在 Debian 12 上安装中文五笔输入法

在 Debian 12 上安装中文五笔输入法&#xff0c;你可以通过以下步骤进行&#xff1a; 更新系统包列表&#xff1a; 打开终端&#xff0c;首先更新你的系统包列表&#xff1a; sudo apt update安装输入法框架&#xff1a; 安装 fcitx5 输入法框架&#xff1a; sudo apt install …...

整流器制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

整流器制造行业作为制造业的重要组成部分&#xff0c;也在积极探索数字化转型的新路径。整流器&#xff0c;作为电力电子领域的关键元件&#xff0c;广泛应用于通信、工业控制、新能源等多个领域&#xff0c;其制造过程的智能化升级不仅关乎产品性能的提升&#xff0c;更是推动…...

算法知识点——常用输入输出数据的方式

如果输入的每组数据的结果不相互干扰的话&#xff0c;就可以在本次操作的时候将该组数据的相关结果进行输出。 1、n组输入输出(n确定&#xff09; scanf("%d",&n); while(n--) {scanf("%d %d",&a,&b); printf("%d %d\n",a,b);}cin…...

如何构建大数据治理平台,助力企业数据决策

建设背景 &#xff08;1&#xff09;什么是数据资产 资产由企业及组织拥有和控制&#xff0c;能够提供增值服务、带来经济利益的重要资源。 资产不但需要管理&#xff0c; 更需要运营。 &#xff08;2&#xff09;数据资产运营中的问题 数据资产运营中存在的问题主要包括以下…...

Playwright与Selenium的对比:谁是更适合你的自动化测试工具?

在自动化测试领域&#xff0c;Selenium 一直是行业的标杆工具。它功能强大、支持多浏览器、广泛应用于各类项目中。然而&#xff0c;随着技术的发展&#xff0c;新的工具不断涌现&#xff0c;Playwright 作为其中的佼佼者&#xff0c;以其现代化的设计和强大的特性吸引了越来越…...

Netty 相关问题

传统网络编程存在的问题 传统网络编程存在以下问题&#xff1a; 线程创建开销&#xff1a;在Java中&#xff0c;创建线程需要调用操作系统API&#xff0c;这会消耗资源和时间。内存占用高&#xff1a;线程本身占用内存&#xff0c;创建过多线程会导致内存资源紧张。CPU使用率…...

JAVA中线程池的详解

1.概念 顾名思义&#xff0c;线程池就是管理一系列线程的资源池&#xff0c;其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息&#xff0c;例如已完成任务的数量。 这里借用《Java 并发编程的艺术》书中的部分内容来总结一下使用线程池的好处&#x…...

【PyTorch单点知识】深入了解 nn.ModuleList和 nn.ParameterList模块:灵活构建动态网络结构

文章目录 0. 前言1. 为什么需要 nn.ModuleList 和 nn.ParameterList&#xff1f;2. nn.ModuleList&#xff1a;管理模块的列表2.1 什么是 nn.ModuleList&#xff1f;2.2 创建 nn.ModuleList2.3 动态添加或删除层 3. nn.ParameterList&#xff1a;管理参数列表3.1 什么是 nn.Par…...

vscode创建Python虚拟环境无法激活问题处理

系统环境 win7环境,Python3.7,VScode1.70.3 问题报错: PS C:\Users\Administrator\PycharmProjects\websites> .\venv\Scripts\activate 无法加载文件 C:\Users\Administrator\PycharmProjects\websites\venv\Scripts\Activate.ps1,因为在此系统中禁止执行脚本。有关…...

【Go】Go语言中的基本数据类型与类型转换

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

【Python中导入Tkinter模块创建计算器界面】

使用Tkinter库创建计算器界面涉及布局多个控件&#xff08;如按钮、输入框和标签&#xff09;以形成一个用户友好的界面。以下是一个基本的步骤和示例代码&#xff0c;展示了如何使用Tkinter创建一个简单的计算器界面。 步骤 导入Tkinter库&#xff1a;首先&#xff0c;你需要…...

中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速

鸿蒙生态大势所趋&#xff0c;各种应用适配加速 近日&#xff0c;华为纯血鸿蒙系统&#xff08;HarmonyOS NEXT&#xff09;再度引发市场高度关注。据媒体消息&#xff0c;鸿蒙NEXT Beta版将在9月24日对Mate 60系列、X5系列、Pura70系列等16款旗舰机型进行推送&#xff0c;这已…...

如何实现视频数据的PES打包和传输?

实现视频的PES&#xff08;Packetized Elementary Stream&#xff09;打包和传输涉及多个步骤&#xff0c;主要包括视频数据的编码、PES打包、以及通过网络协议的传输。以下是大概的实现思路&#xff1a; 一、视频数据编码 原始视频数据获取&#xff1a; 获取需要传输的原始视…...

【软考】程序设计语言基础

【软考】程序设计语言基础 一.程序设计语言基础概念 计算机要通过程序或指令来控制才能完成各种任务。程序设计语言&#xff08;计算机语言&#xff09;&#xff1a;人与机器交换信息的语言。 1.程序设计语言 计算机语言大致分为机器语言、汇编语言和高级语言三种。机器语言…...

野指针与空指针的异同

1、什么是野指针 在了解什么是野指针之前我们要知道什么是指针即指针的定义是什么。 指针&#xff1a;是一种特殊的变量类型&#xff0c;它存储的是一个内存地址&#xff0c;该地址指向另一个变量的位置。可以通过指针来间接访问和修改该地址所指向的变量的值。 PS&#xff…...

虚拟存储器“大观”,讲解核心逻辑知识和408大题方法

虚拟存储器 写在前面&#xff1a;虚拟存储器&#xff08;Virtual Memory&#xff09;是计算机系统中用于管理内存的一种技术&#xff0c;它通过虚拟地址空间为进程提供比物理内存更大的地址空间&#xff0c;同时实现内存保护和进程隔离。 在408整个体系中计组和操作系统都有涉…...