Redmi小爱音响8刷机和安装第三方APP

payload_dumper,mtkclient,root权限,adb

Views:  times Updated on April 7, 2024 Posted by elmagnifico on April 6, 2024

Foreword

Redmi小爱音响8原价400多买的,上了大当,APP有限,而且视频软件还是TV版本的,不知道是咋想的,这就做个Pad模式不好吗。还好有很多人魔改,把他变成一个电视系统的,甚至还有拿他打游戏的,这么大的身躯里承担了他本不应该承受的痛啊。

准备

主要安装两个驱动

https://github.com/daynix/UsbDk/releases/download/v1.00-22/UsbDk_1.0.22_x64.msi

https://gsmclassic.com/download/driver/mtk/MediaTek_SP_Driver_v5.2307.zip

本文的所有软件我也一起同步到了我的仓库里,防止丢失

https://github.com/elmagnificogi/MyTools/tree/master/Redmixiaoaisound8

Dump固件

固件获取可以通过这个工具,选好型号以后会返回固件信息,包含下载地址

image-20240406144501628

比如这里最新的开发板固件就是1.0.31,而没刷之前的稳定版是1.0.102,升级到了HyperOS

https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08c/payload_2.17.31_5e8bb.bin

  • 老的MicoOTA4.5的升级方式已经全部失效了,软件甚至都找不到了

理论上说直接用最新版的去修改,也能开启root和adb,暂时还没掌握方法

https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08c/payload_2.19.102_09480.bin

目前只有测试固件可以开启adb、安装第三方软件,而测试固件通过这里看到的都是增量更新,要整合比较麻烦,这里直接推荐一个完整测试包

https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08c/payload_2.10.61_5373b.bin

固件包的解析工具

https://github.com/vm03/payload_dumper.git

由于上面的项目最高支持到pyton3.8,所以先弄个3.8的版本,然后升级一下pip,最好开一下代理,再安装依赖

进入payload_dumper,先安装一下依赖

pip3 install -r requirements.txt

将刚才得到的最新固件payload_2.19.102_09480.bin拖入文件夹中,进行解压

python payload_dumper.py payload_2.19.102_09480.bin

image-20240406151536435

ouput目录中就是我们得到的解开后的固件

image-20240406151553807

这里解出来是img,修改为bin即可

刷固件

mtk的刷机工具

https://github.com/bkerler/mtkclient

这个项目的python最低需要3.9,如果是3.80会无法打开(pyside不支持,但是3.81就可以),所以还得弄个3.9进来,然后再重新安装他的依赖

进入mtkclient,一个系统路径下只有一个python,所以第二个就要带全路径操作了,安装所有依赖

D:/Python/Python39/python.exe -m pip install -r requirements.txt

修改mtk_gui.bat的启动命令,替换原python,原本默认也是系统里刚安装的3.8,无法启动

@echo off
title MTKClient Log
D:/Python/Python39/python.exe "%~dp0mtk_gui"

然后运行mtk_gui.bat,就能看到界面了

image-20240406153044302

前面的驱动安装完成以后,插入音响的USB,是老安卓的micro-USB接口

image-20240406140909813

拔掉电源,再接入USB,然后按住音量+,再插入电源,系统应该就自动识别到了,松手即可

  • 不是按住电源和音量+,会导致反复重启的

可以看右上角已经识别到了

image-20240406153702267

对应的Log窗口也能看到连接的信息

  • 注意,有时候关闭软件,这个窗口没关闭会导致下次连不上,一定要记得关闭Log窗口再重连

image-20240406161426612

进入调试界面

image-20240406161554327

image-20240406163201741

这里设备已经检测到了,但是此时还是无法操作的,需要断电一次,然后再按住音量+,进入Boorom模式

按住音量+,上电以后系统依次会有3种USB连接,最好在显示第一种模式的时候就松开音量+

image-20240406175557506

image-20240406175624854

image-20240406163402929

在上面的情况下,再次重启,按住音量+,又会切换到这个DA USB,DA不知道是什么模式的USB,我们不需要这种模式

闪退

image-20240406194542496

出现以上跳转以后MTKCLient就闪退了,重试了好多次都是一样的效果,暂时卡住了

正常情况下这里跳转以后就会进入Bootrom模式,然后就可以读取分区信息,重新写入了,想改啥都能行,但是他闪退了…

通过录屏,截下来了具体输出的信息逐个分析,这句的问题最大

reconnecting to stage2 with highter speed

还好MTKClient是开源的,这句log也是他自己输出的,找到了3个出处,改了其中2个就正常连接了

image-20240406200430793

image-20240406200418301

修改以下两个代码中的代码,将这里stage2的提速给取消了

mtkclient\mtkclient\Library\DA\xflash\dalegacy_lib.py

mtkclient\mtkclient\Library\DA\xflash\xflash_lib.py

前面就看到有人出现了类似的问题,直接注释掉了,但是issue已经关闭了,我以为是问题解决了,实际上却没有

大概看了一下,应该是如果是慢速的usb,会在这里进行一次提速,而不巧的是红米这个固件好像不能提速,只能用低速模式传输

  • 注意低速模式非常慢,大概每秒只有0.53MB的速度

image-20240406201057823

最好备份一下,防止刷错了,直接变砖头了,就是备份速度感人

这里使用payload_2.10.61_5373b.bin解开后的文件,将他们刷到其中

image-20240406212210281

选择好固件以后,进行写入,由于是低速所以写如只有1MB左右的速度,要刷完这5G,得要5个多小时,非常离谱

固件全部写完以后,再从闪存工具里写入对应的preoloader.bin,然后就可以断开连接,重启开机了

USB 提速

可以确定的是MTKClient新版本对之前的老设备兼容性有问题,换到MTKClient的老版本以后,不再需要连接两次设备,而且也不是低速USB了

image-20240406221900873

由于这个beta版本非常难找,所以也一起放到我的仓库里了(实际上是从搞基猫的安装包里找到的,小孩子还成天不学好,劲搞些有的没的恶心人)

基本网上全都是遇到类似问题的,都是缺少这个特定版本的MTKClient

实际上这个版本来源于这里

MTK联发科专业工具下载合集(长期更新):https://xinkid.lanzouv.com/b075nltgh 密:canxin

https://www.bilibili.com/opus/636328623649849351?spm_id_from=333.999.0.0

开启adb、安装第三方软件

刷完进入系统以后,按住关机和音量+,即可打开安卓系统设置

系统-高级-关于手机-版本号(连点七下),即可开启开发者模式

返回上一级菜单,可以看到开发者选项,打开,找到默认USB设置,选择文件传输

image-20240407002414993

然后就可以通过电脑进入到系统内部存储空间中了,在这里把想要安装的APP,放进去即可

再次回到设置里,打开存储,选择文件,就看到刚才的APP了,安装即可

设置-关于与帮助-开发测试,这里选择第三方软件即可(如果啥都没安装,这里是黑屏)

试了一下blibili HD版本装不上,正常版本装上去卡的要死,建议别装

adb,在此时已经可以使用了

image-20240407004613713

安装bilibili

adb install bl2.apk

image-20240407005142575

稳定版修改boot信息

稳定版也可以通过修改boot分区root并强行开启adb,然后安装第三方安装器安装软件,具体操作:解包boot分区,修改prop文件,persist.service.adb.enable=1 persist.service.debuggable=1 persist.sys.usb.config=mtp,adb .

暂时没找到怎么解包boot,这些参数怎么修改还不知道

Summary

http://flying1008.top/

之前应该是小爱音响留了一个推送固件的接口,被人发现了,就可以随便推送,这个网站就直接提供了这个功能,不过可惜后续都被封了

试了一圈,发现非常难用,还是退回了正式版,正式版相对流畅太多了

Quote

https://post.smzdm.com/p/a25dzm9d/

https://www.bilibili.com/video/BV1d94y1s7oq

https://www.bilibili.com/read/cv25905108/

https://www.bilibili.com/video/BV1g44y1e7Md

https://blog.csdn.net/weixin_40883833/article/details/132266091

https://blog.csdn.net/weixin_40883833/article/details/131258378

https://blog.csdn.net/weixin_40883833/article/details/131258378