Pixel 2xl刷入第三方rom经验
google第三方rom的经验
pixel 2xl 输入KaleiscopeOS 并获取通过 magisk 获取 root 权限
前言
前期准备工作;adb、fastboot工具的使用
准备工作
- 工厂映像
- 第三方Rec twrp (根据具体机型选择)
- 第三方Rom下载 (下载Full安装包)
- Magisk面具安装 (仅下载Magisk.apk)
- 提取boot.img工具
adb
adb devices
显示当前连接设备(如果有多个设备,之后的命令后跟-s 设备端口
)
adb reboot bootloader
重启到bootloader
adb reboot recovery
重启到recovery
adb install PackageName.apk
安装安装包(安装包不需要放到手机中)
adb push filenameA path
将filenameA放到手机path目录(一般是/sdcard/Download)
adb pull filenameB
将filenameB提取到当前(命令行/bash打开路径)位置
adb sideload FileNameA
通过sideload工具刷入FileNameA
adb shell "settings put global ntp_server ntp.ntsc.ac.cn"
将Android时间同步服务地址改为国内
fastboot
fastboot devices
显示当前连接设备
fastboot boot twrp.img
进入到第三方Rec twrp中(twrp.img替换成所下载的twrp具体文件名)
fastboot flash boot filename.img
永久刷入filename.img 作为boot分区(面具刷入root权限使用)
第一步 刷底包
刷底包的首先要确定第三方rom所需要的框架,刷与之相同的包,然后再刷该rom包
pixel的底包可用过OTA刷,也可以通过 Factory image 刷。
-
OTA
适合系统完整的刷
-
Factory
适合系统损坏,或清理手机中杂乱数据的刷
下载google官方factory image
解压压缩包,包含
flash-all.bat
与flash-all.sh
,分别对应不同系统-
windows
点击flash-all.bat即可运行脚本
-
linux
在shell中输入,直接运行程序
flash-all.sh
运行脚本后自动恢复到最开始的状态
-
ADD:原生系统中的相机提取
我所刷的系统(万花筒)中所带的相机我感觉功能没有原生相机的功能丰富,于是我想着先在系统中提取出相机安装包
// 列出所有安装包
adb shell pm list package
//找到所需要的包名,然后获取路径
adb shell pm path packageName
//输出路径后拷贝或者pull到电脑上
adb pull apkPath ~/Download
note:获取所有安装包后可以全选所列出的包名,然后将其复制到记事本中,用查找功能找到需要的包
第二步 刷第三方ROM
去官网下载Full安装包,(如果不确定自己安装的底包是否正确可以在官网framework栏下载官方需要的版本文件)
-
具体步骤
// 确保连接(没有连接及时更新驱动) adb devices // 将第三方rom放在download文件夹中 adb push ./Kaleidoscope-sunflowerleaf-taimen-20220919-OFFICIAL.zip /sdcard/Download // 重启到bootloader adb reboot bootloader // 确保连接(没有连接及时更新驱动) fastboot devices // 临时刷入第三方rec fastboot boot ./twrp-3.7.0_9-0-taimen.img
在rec中选择安装(install) -> 到Download文件目录 -> 选择rom包 -> 安装
上述步骤做完之后,rom就刷好了(刷入官方需要的底包也是同样的步骤)
第三步 获取ROOT权限
magisk是一个强大的root权限管理器,安装面具之后我们可以通过面具管理应用的root权限,同时可以通过卡刷的方式来安装有趣的模块
安装magisk
给手机安装magisk管理器
//adb安装
adb install ./Magisk.apk
面具与 rom 包中 boot.img 的获取
面具管理工具中可以修补boot.img,然后我们将这个修补好的boot.img刷成系统boot分局就可以获取root权限了。
这就需要我们得到1. 我们系统原来的boot.img。一般在第三方rom包中。可能在安装包中就有boot.img,还有一种是压缩在payload.bin中的,下面将介绍如何在payload.bin中提取出boot.img(rom包中有boot.img的可以直接跳过)
magisk官方工具payload_dum
-
关于github上python项目的运行
-
下载zip包
-
解决依赖问题
-
先看README文件,作者一般会有相关介绍
-
在看requirement.txt,运行以下代码,可解决依赖问题
pip install -r requirement.txt
-
-
-
该工具的使用
python3 payload_dumper.py payload.bin
boot.img会输出到该程序所在的out文件夹中
将获得的 boot.img 文件置于magisk 中进行修补,magisk 输出一个 path.img(一般都输出在/sdcard/Download目录下)
// 获取修补的boot.img
adb pull /sdcrad/Download/path_boot.img
-
刷入boot.img
// 检查设备连接状态 adb devices // 重启到bootloader adb reboot bootloader // 检查设备连接状态 fastboot devices // 刷入boot.img fastboot flash boot ./path_boot.img
等待重启即获取权限
感谢
[EN]KaleidoscopeOS Chatroom 中的@Anya1014 @NekohashiSakura的答疑解惑