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

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

http://www.kler.cn/a/303070.html

相关文章:

  • HTTP 客户端怎么向 Spring Cloud Sleuth 传输跟踪 ID
  • 准确率调整研究中心
  • QQ 小程序已发布,但无法被搜索的解决方案
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中
  • SciPy:Python 科学计算工具包的全面教程
  • 【python】python中非对称加密算法RSA实现原理与应用实战
  • Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令、创建普通用户等的介绍
  • android kotlin 基础复习 继承 inherit
  • 用AI的智慧,传递感恩之心——GPT-4o助力教师节祝福
  • ClickHouse 的底层架构和原理
  • 【最新华为OD机试E卷-支持在线评测】通过软盘拷贝文件(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 密码测评三级相关项理解
  • 7 递归——206. 反转链表 ★
  • 【Canvas与密铺】正六边形、正方形和正三角形的密铺
  • mysql Field ‘ssl_cipher‘ doesn‘t have a default value的解决
  • Ansible自动化部署kubernetes集群
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶
  • Microsoft SC-100: Microsoft 网络安全架构师
  • DDR3(三)
  • Python中处理非贪婪匹配
  • [linux]GCC G++官方源码国内下载地址汇总
  • 声音克隆工具CosyVoice
  • LeetCode 25. K 个一组翻转链表
  • UE5学习笔记21-武器的射击功能
  • MongoDB创建用户教程