安卓玩机搞机-----第三方HyperOS 移植教程 其他机型可借鉴参考

前言

任何的适配第三方rom都需要了解一下系统的基本架构和安卓分区的基本常识。兴趣的友友可以参考以往相关博文

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

作者: Ranshen_Cervine   网址:KittenHyper

本教程以线刷包为基础;Redmi Note 12 Turbo 欧版Hyper作为底包,Redmi K70 Pro 国行Hyper作为移植包

Redmi Note 12 Turbo 欧版HyperOS版本Redmi K70 Pro 国行HyperOS版本
OS1.0.4.0.UMREUXMOS1.0.12.0.UNMCNXM
移植思路:
  1. 移植system、system_ext、product、mi_ext分区
  2. 修改官方刷机bat,去除回滚、vbmeta、vbmeta_ext校验
  3. 安装来自Android、Microsoft、Nvidia、Qualcomm的驱动
  4. 配置ADB、Fastboot环境
注意事项:
  1. super.img位于*/images中
  2. 将你的工程目录添加到杀毒软件的排查列表中,一些涉及底层的安卓文件可能会使杀毒软件误报
  3. 你需要有访问谷歌的能力,以便于配置ADB、Fastboot环境

1. 修复教程


1. 修复移植8Gen3机型的包卡第一屏
  1. 解包 底包super.img
  2. 解包 移植包super.img
  3. 解包 底包system_ext.img
  4. 解包 移植包system_ext.img
  5. 将 底包/system_ext/apex 复制到 移植包/system_ext/apex
2. 修复屏幕圆角、状态栏、刷新率选项、息屏显示等
  1. 解包 底包product.img

  2. 解包 线刷包product.img

  3. 底包/product/etc/device_features 找到

底包/product/etc/device_features
marble.xml
marblein.xml

复制到 移植包/product/etc/device_features

  1. 底包/product/overlay 找到
底包/product/overlay
DevicesAndroidOverlay.apk
DevicesOverlay.apk
MiuiBiometricResOverlay.apk
MiuiBtRRODeviceConfigOverlay.apk
MiuiFrameworkResOverlay.apk

替换掉 移植包/product/overlay 里相同的文件

  1. 底包/product/priv-app/MIUIAod 替换掉 移植包/product/priv-app/MIUIAod
3. 修复自动亮度、死机
  1. 底包/product/etc/displayconfig 替换掉 移植包/product/etc/displayconfig
4. 修复人脸识别
  1. 删除 移植包/product/app/Biometric 文件夹
  2. 复制 底包/product/app/Biometric 文件夹粘贴到 移植包/product/app
5. 修复相机
  1. 复制 底包/product/priv-app/MIUICamera 文件夹
  2. 替换到 移植包/product/priv-app
6. 修复NFC/小米智能卡
  1. 删除 移植包/product/pangu/system/app/NQNfcNci 文件夹,复制 底包/product/pangu/system/app/NQNfcNci 文件夹到 移植包/product/pangu/system/app

  2. 复制 移植包/product/pangu/system 下所有文件到 移植包/product

  3. 解包 底包vendor.img

  4. 打开 底包/vendor/build.prop

    将以下内容

1
ro.vendor.se.type=HCE,UICC

PROP

改为

1
ro.vendor.se.type=HCE,UICC,eSE

ELM

7. 修复桌面卡死闪退
  1. 底包/vendor 找到
底包/vendor
marble_build.prop
marblein_build.prop

marble_build.prop 修改如下

1
2
3
4
5
6
7
8
9
10
11
12
# begin sku build properties
# autogenerated by build/make/tools/buildinfo_sku.sh
ro.vendor.build.fingerprint=POCO/marble_eea/marble:12/SKQ1.230401.001/V816.0.4.0.UMREUXM:user/release-keys
ro.product.vendor.brand=Redmi
ro.product.vendor.device=marble
ro.product.vendor.manufacturer=Xiaomi
ro.product.vendor.model=23049RAD8C
ro.product.vendor.cert=23049RAD8C
ro.product.vendor.name=marble
ro.product.vendor.marketname=Redmi Note 12 Turbo
# end sku build properties
ro.product.board=marble

PROP

marblein_build.prop 修改如下

1
2
3
4
5
6
7
8
9
10
11
12
# begin sku build properties
# autogenerated by build/make/tools/buildinfo_sku.sh
ro.vendor.build.fingerprint=POCO/marblein/marblein:12/SKQ1.230401.001/V816.0.4.0.UMREUXM:user/release-keys
ro.product.vendor.brand=Redmi
ro.product.vendor.device=marble
ro.product.vendor.manufacturer=Xiaomi
ro.product.vendor.model=23049RAD8C
ro.product.vendor.cert=23049RAD8C
ro.product.vendor.name=marble
ro.product.vendor.marketname=Redmi Note 12 Turbo
# end sku build properties
ro.product.board=marble

PROP

  1. 解包 底包odm.img

  2. 底包/odm/etc 找到

底包/odm/etc
marble_build.prop
marblein_build.prop

marble_build.prop修改如下

1
2
3
4
5
6
7
8
9
10
11
# begin sku build properties
# autogenerated by build/make/tools/buildinfo_sku.sh
ro.odm.build.fingerprint=POCO/marble_eea/marble:12/SKQ1.230401.001/V816.0.4.0.UMREUXM:user/release-keys
ro.product.odm.brand=Redmi
ro.product.odm.device=marble
ro.product.odm.manufacturer=Xiaomi
ro.product.odm.model=23049RAD8C
ro.product.odm.cert=23049RAD8C
ro.product.odm.name=marble
ro.product.odm.marketname=Redmi Note 12 Turbo
# end sku build properties

PROP

marblein_build.prop修改如下

1
2
3
4
5
6
7
8
9
10
11
# begin sku build properties
# autogenerated by build/make/tools/buildinfo_sku.sh
ro.odm.build.fingerprint=POCO/marblein/marblein:12/SKQ1.230401.001/V816.0.4.0.UMREUXM:user/release-keys
ro.product.odm.brand=Redmi
ro.product.odm.device=marble
ro.product.odm.manufacturer=Xiaomi
ro.product.odm.model=23049RAD8C
ro.product.odm.cert=23049RAD8C
ro.product.odm.name=marble
ro.product.odm.marketname=Redmi Note 12 Turbo
# end sku build properties

PROP

8. 修复开机后的安全性报错
  1. 解包 移植包system.img

  2. 移植包/system/system/framework 找到

移植包/system/system/framework
framework.jar

打开 framework.jar 反编译 classes3.dex ,找到方法

1
isBuildConsistent()

SMALI

将整个方法修改为

1
2
3
4
5
.method public static isBuildConsistent()Z
   .registers 1
   const/4 v0, 0x1
   return v0
.end method

SMALI

9. 精简大小
  1. 解包 底包cust.img
  2. 除文件夹外其余内容全部删除

2. 打包教程


1. 打包super.img
  1. 将前面解包的内容重新打包

  2. 将打包后的 移植包system.img、system_ext.img、product.img、mi_ext.img 覆盖 底包system.img、system_ext.img、product.img、mi_ext.img

  3. 重新将修改后的底包打包,以 Redmi Note 12 Turbo 欧版HyperOS版本 OS1.0.4.0.UMREUXM 为例,super.img有如下内容

OS1.0.4.0.UMREUXM super.img
mi_ext.img
odm.img
product.img
super.img
system.img
system_ext.img
vendor.img
vendor_dlkm.img
  1. 打包时注意选择分区类型,Redmi Note 12 Turbo 的super.img分区类型为 A/B。错误的打包分区可能导致无法进入第二屏
  2. 将打包好的super.img放回 */images
2. 修改官方刷机bat
  1. 删除flash_all_lock.bat和flash_all_lock.sh

  2. 编辑flash_all.bat,删除如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fastboot %* getvar product 2>&1 | findstr /r /c:"^product: *marble" || echo Missmatching image and device
fastboot %* getvar product 2>&1 | findstr /r /c:"^product: *marble" || exit /B 1

::check anti_version
if exist "%~dp0images\anti_version.txt" (for /f "usebackq" %%a in ("%~dp0images\anti_version.txt") do (set CURRENT_ANTI_VER=%%a))
if [%CURRENT_ANTI_VER%] EQU [] set CURRENT_ANTI_VER=0
for /f "tokens=2 delims=: " %%i in ('fastboot %* getvar anti 2^>^&1 ^| findstr /r /c:"anti:"') do (set version=%%i)
if [%version%] EQU [] set version=0
set anticheck="antirollback check pass"
if %version% GTR %CURRENT_ANTI_VER% set anticheck="Current device antirollback version is greater than this pakcage"
echo %anticheck% | findstr /r /c:"pass" || @echo "Antirollback check error" && exit /B 1

fastboot %* getvar crc 2>&1 | findstr /r /c:"^crc: 1" && if %errorlevel% equ 0 (
fastboot %* flash crclist %~dp0images\crclist.txt || @echo "Flash crclist error" && exit /B 1
fastboot %* flash sparsecrclist %~dp0images\sparsecrclist.txt || @echo "Flash sparsecrclist error" && exit /B 1
)

BAT

  1. 找到如下代码
1
fastboot %* flash misc %~dp0images\misc.img || @echo "Flash misc error" && exit /B 1

BAT

  • 上述代码后添加
1
2
fastboot %* --disable-verity --disable-verification flash vbmeta %~dp0images/vbmeta.img || @echo "Flash vbmeta error" && exit 1
fastboot %* --disable-verity --disable-verification flash vbmeta_system %~dp0images/vbmeta_system.img || @echo "Flash vbmeta_system error" && exit 1

BAT

  1. 编辑flash_all_except_storage.bat,步骤与编辑flash_all.bat相同
3. 安装驱动
  1. 下载MiFlash
  2. 安装来自Android、Microsoft、Nvidia、Qualcomm的驱动
  3. 移植包不推荐使用MiFlash刷机
4. 配置环境
  1. 下载ADB和Fastboot

  2. 将下载的内容解压后放置到flash_all.bat、flash_all_except_storage.bat相同目录

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值