jooooody
(jooooody)
1
前提
承接:有大佬整理了红米k50刷机资料吗
大佬们讲了很多,但是无奈个人领悟能力差,还是不太懂,现在整出来,记一下吧。
(声明:联发科搞机容易变砖,按照这个教程来我是没有问题,不保证所有人都没有问题)
解锁
- 买入出厂是miui的k50
- 开发者模式绑定账户
- 7天后,手机进入fastboot模式,电脑使用小米解锁工具解锁
- 重启手机
线刷卡刷包
ROM:PixelOS 来自 数学不上120不改名qwq - 酷安
底包
不知道这个要不要底包,我解锁了后,用MiFlash线刷了一个底包,稳一手
rubens_images_OS1.0.10.0.ULNCNXM_20240806.0000.00_14.0_cn_b333e775f4.tgz
解包
- 解压卡刷包,结果是:
- 使用payload-dumper-go解压payload.bin,放到images文件夹,payload.bin结构是
参考线刷脚本
参考已有的k50线刷包lineage-21.0-20240716-UNOFFICIAL-rubens
发现和PixelOS的差不多,那么其实可以照抄了。
- 第一部分是bin,打开看里面其实就是一些刷机工具,主要是adb和fastboot
- 第二部分则是一些img文件
- 查看线刷脚本,其实也就是三部分
第一部分是刷preloader、vbmeta,这个看了下PixelOS也有,照抄就是,除了preloader不太一样,根据之前的认知,这玩意有免授权救砖作用,找一个放进去就好,现有的不用刷。
第二部分是刷boot,看了下是hyperos的,说目的是为了进fastbootd,感觉和rom也没关系,这个也从lineage那边复制过来照抄就是
第三部分是刷各种分区了,根据其他佬的说明,解包payload.bin后,刷入所有分区就行,对比了下两个img有点差异,那么这里把PixelOS的多出来的也加进去就好了。
自己的线刷脚本
- 所以可以用powershell命令,把所有的img文件名列出来
- 然后再把这些文件名和lineage的线刷脚本发给gpt,叫他帮忙看下缺哪些分区,或者是哪些不存在,然后照着葫芦画瓢加到里面就好
- 不过这些分区的刷入顺序可能会有依赖,所以叫gpt把新加的代码放到原有的下面。
那么最终的脚本就是这样了,前面的部分不用变,后面的把一些分区加进去就好了。
(这样的脚本不一定对,不过我是能开机的
)
最终点击bat脚本刷入就行
效果
目前没有发现什么的问题,有几个挺难受的点是:
- 从王者荣耀切到其它应用或者切回王者荣耀,王者都会很卡,具体为什么也不知道。。。目前这个毛坯房也就整了一半,到时候再看看吧。。。
- 没有dc调光,伪dc调光不知道为啥不好用,只能用极暗模式搞一搞
- 屏幕色彩看起来没有miui舒服,得慢慢适应
后记
真的是不能半夜搞机,搞了两天凌晨4 5点才睡,因为这些都无脑,各种试,废寝忘食了属于是,主要是开机后的各种软件,好久不弄了,都生疏了。
刷机的时代,或许真的已经过去了。如今,新款手机已经无法解锁,许多ROM和搞机软件也停更了。现在能玩弄的,可能只有旧手机或者新一加了,至少这样可以省去不少繁琐的配置——例如桌面、推送通知、电话、短信等。
想想从安卓2.2时代一路走来,曾经的那些自由与探索,如今也只能成为回忆。虽然心中不免有些怀念,但终究,再也回不去了。
12 个赞
还是td一把梭更简单
你这直抄也是个好办法,不过就是后面加的那些真的全有必要吗,大概看了一眼音频dos,dtbo什么的感觉没意义吧……
jooooody
(jooooody)
5
请问一下td是啥呢。
因为我不知道哪些有用,哪些没用,看到有啥就刷啥
可能我没说清楚对你造成了误导
翻了下文档嗯,Fastbootd 是用户空间守护程序和模式的名称
工具箱的话应该有集成一键重启到fastbootd的了呀
大佬,之前我抄你的线刷笔记刷lineageOS,结果手机正常使用时反复重启。
查了资料后才知道,要用 lpmake 把
odm.img
odm_dlkm.img
product.img
system.img
system_ext.img
vendor.img
vendor_dlkm.img
打包进super.img之后,再刷入,打包super.img命令
./lpmake --metadata-size 65536 \
--virtual-ab \
--super-name super \
--output super.img \
--sparse \
--metadata-slots 2 \
--device super:9126805504 \
--group main_a:6707306496 \
--group main_b:6707306496 \
--partition odm_a:readonly:753664:main_a --image odm_a=./super/odm.img \
--partition odm_dlkm_a:readonly:348160:main_a --image odm_dlkm_a=./super/odm_dlkm.img \
--partition product_a:readonly:2364030976:main_a --image product_a=./super/product.img \
--partition system_a:readonly:2780299264:main_a --image system_a=./super/system.img \
--partition system_ext_a:readonly:524242944:main_a --image system_ext_a=./super/system_ext.img \
--partition vendor_a:readonly:1008525312:main_a --image vendor_a=./super/vendor.img \
--partition vendor_dlkm_a:readonly:29106176:main_a --image vendor_dlkm_a=./super/vendor_dlkm.img \
--partition odm_b:readonly:0:main_b \
--partition odm_dlkm_b:readonly:0:main_b \
--partition product_b:readonly:0:main_b \
--partition system_b:readonly:0:main_b \
--partition system_ext_b:readonly:0:main_b \
--partition vendor_b:readonly:0:main_b \
--partition vendor_dlkm_b:readonly:0:main_b
注意把各个分区的字节数替换为你要打包的.img文件的实际字节数,group_a/b的字节数=各分区字节数求和
刷入命令
fastboot set_active a
fastboot flash preloader1 images\preloader_raw.img
fastboot flash preloader2 images\preloader_raw.img
fastboot flash mvpu_algo_ab images\mvpu_algo.img
fastboot flash spmfw_ab images\spmfw.img
fastboot flash dpm_ab images\dpm.img
fastboot flash mcupm_ab images\mcupm.img
fastboot flash gz_ab images\gz.img
fastboot flash md1img_ab images\md1img.img
fastboot flash lk_ab images\lk.img
fastboot flash --disable-verity --disable-verification vbmeta_system_ab images\vbmeta_system.img
fastboot flash tee_ab images\tee.img
fastboot flash logo_ab images\logo.img
fastboot flash apusys_ab images\apusys.img
fastboot flash scp_ab images\scp.img
fastboot flash ccu_ab images\ccu.img
fastboot flash --disable-verity --disable-verification vbmeta_ab images\vbmeta.img
fastboot flash --disable-verity --disable-verification vbmeta_vendor_ab images\vbmeta_vendor.img
fastboot flash pi_img_ab images\pi_img.img
fastboot flash dtbo_ab images\dtbo.img
fastboot flash gpueb_ab images\gpueb.img
fastboot flash sspm_ab images\sspm.img
fastboot flash mcf_ota_ab images\mcf_ota.img
fastboot flash audio_dsp_ab images\audio_dsp.img
fastboot flash vcp_ab images\vcp.img
fastboot flash boot_ab images\boot.img
fastboot flash vendor_boot_ab images\vendor_boot.img
fastboot flash super images\super.img
fastboot reboot
jooooody
(jooooody)
10
要这么麻烦吗,我看之前的线刷包都没有super.img
我看官方,eu版线刷包都是这么写的脚本,所以也试着打包了super.img,刷完后就没有遇到bug了。
还有,大佬你原来的脚本也有问题,只有
odm.img
odm_dlkm.img
product.img
system.img
system_ext.img
vendor.img
vendor_dlkm.img
需要在fastbootd下刷入,其它的应该直接在fastboot下刷入对应物理分区,否则就算能开机,系统也会不稳定。
我之前就是把多余的img刷在了动态分区,结果总是自动重启。
还有推荐你刷与PixelOS同一作者编译最新版的LineageOS 21,非常流畅。
NFC,指纹,红外遥控等功能都能够正常使用。
jooooody
(jooooody)
14
大佬,我试一下不用super也行,还没有遇到啥问题。
不过我遵从了你的意见,把fastboot和fastbootd区分开了,叫claude写的代码:
@echo off
setlocal EnableDelayedExpansion
:: 检查设备
echo 正在检查设备...
bin\fastboot.exe getvar product 2>&1 | findstr /i "rubens" || (
echo 错误:未检测到 Rubens 设备!
goto END
)
bin\fastboot erase userdata || @echo "erase userdata error" && goto END
bin\fastboot erase metadata || @echo "Erase metadata error" && goto END
bin\fastboot erase expdb || @echo "Erase expdb error" && goto END
ECHO.数据清除完毕...
:: 1. 设置活动分区
bin\fastboot.exe set_active a || @echo "Set active slot error" && goto END
:: 2. 刷入 preloader(特殊处理)
echo 正在刷入 preloader...
for %%i in (1 2) do (
bin\fastboot.exe flash preloader%%i images\preloader_rubens.img || @echo "Flash preloader%%i error" && goto END
)
:: 3. 刷入物理 A/B 分区
echo 正在刷入物理 A/B 分区...
set "physical_ab_partitions=boot vendor_boot dtbo lk md1img"
for %%i in (%physical_ab_partitions%) do (
for %%j in (a b) do (
bin\fastboot.exe flash %%i_%%j images\%%i.img || @echo "Flash %%i_%%j error" && goto END
)
)
:: 4. 刷入 vbmeta 相关分区(物理 A/B 分区)
echo 正在刷入 vbmeta 分区...
for %%j in (a b) do (
bin\fastboot.exe flash vbmeta_%%j images\vbmeta.img --disable-verity --disable-verification || @echo "Flash vbmeta_%%j error" && goto END
bin\fastboot.exe flash vbmeta_system_%%j images\vbmeta_system.img --disable-verity --disable-verification || @echo "Flash vbmeta_system_%%j error" && goto END
bin\fastboot.exe flash vbmeta_vendor_%%j images\vbmeta_vendor.img --disable-verity --disable-verification || @echo "Flash vbmeta_vendor_%%j error" && goto END
)
:: 5. 刷入固件/系统组件
echo 正在刷入固件和系统组件...
set "firmware_components=apusys audio_dsp ccu dpm gpueb gz logo mcf_ota mcupm mvpu_algo pi_img scp spmfw sspm tee vcp"
:: 需要修改为 A/B 分区形式
for %%i in (%firmware_components%) do (
for %%j in (a b) do (
bin\fastboot.exe flash %%i_%%j images\%%i.img || @echo "Flash %%i_%%j error" && goto END
)
)
:: 6. 刷入临时 boot 和 vendor_boot(为进入 fastbootd 做准备)
echo 刷入临时 boot 和 vendor_boot...
for %%j in (a b) do (
bin\fastboot.exe flash boot_%%j images\HyperOS\boot.img || @echo "Flash temp boot_%%j error" && goto END
bin\fastboot.exe flash vendor_boot_%%j images\HyperOS\vendor_boot.img || @echo "Flash temp vendor_boot_%%j error" && goto END
)
:: 7. 重启到 fastbootd 准备处理动态分区
echo 重启到 fastbootd 模式...
bin\fastboot.exe reboot fastboot || @echo "Reboot to fastbootd error" && goto END
timeout /t 8 >nul
:: 8. 处理动态分区(super 分区中的逻辑分区)
echo 处理动态分区...
set "dynamic_partitions=system system_ext vendor vendor_dlkm product odm odm_dlkm"
:: 删除现有动态分区
for %%i in (%dynamic_partitions%) do (
bin\fastboot.exe delete-logical-partition %%i_a || @echo "Delete %%i_a partition error" && goto END
)
:: 创建并刷入新的动态分区
for %%i in (%dynamic_partitions%) do (
bin\fastboot.exe create-logical-partition %%i_a 0 || @echo "Create %%i_a partition error" && goto END
bin\fastboot.exe flash %%i_a images\%%i.img || @echo "Flash %%i_a error" && goto END
)
:: 9. 最后刷入正式的 boot 和 vendor_boot
echo 刷入最终的 boot 和 vendor_boot...
for %%j in (a b) do (
bin\fastboot.exe flash boot_%%j images\boot.img || @echo "Flash final boot_%%j error" && goto END
bin\fastboot.exe flash vendor_boot_%%j images\vendor_boot.img || @echo "Flash final vendor_boot_%%j error" && goto END
)
:: 10. 重启设备
bin\fastboot.exe reboot || @echo "Final reboot error" && goto END
echo 刷机完成!
goto SUCCESS
:END
echo 刷机失败!请检查错误信息!
pause
exit /b 1
:SUCCESS
echo 刷机成功完成!设备正在重启...
pause
exit /b 0
我还刷了 MindTheGapps,进入los twrp后,factory reset再使用adb sideload MindTheGapps-14.0.0-arm64-20240925_175633.zip
不过这los真好用,比pixelos那个好用,很丝滑