给海美迪 H7 四代刷第三方固件
前几天给盒子清数据,连上网就被自动装了 CIBN聚精彩 、CIBN聚体育。
emmmmm…
加上之前这系统用着各种不爽,像是没有通知栏啊、没有多任务界面啊、太丑啊、版本太低啊、kodi 花瓶之类的,所以干脆刷成别的好了。找找发现 S912 有好多包,还有 LibreELEC、Lakka 之类的。
后来我发现这玩意儿还能装 Linux ,真是神奇,不过 Linux 的话还是等盒子退休再说吧。
备份
刷什么之前都应该先做好备份,因为官方根本就没提供固件,只有卡刷包。
为了保险起见,推荐备份之前刷入这个下面的 TWRP 。(因为官方的 rec 进去就是格式化 data 并重启,如果恢复失败有可能会出现问题。
备份到 SD 卡或 U 盘
- 盒子执行(需要root)
busybox dd if=/dev/block/mmcblk0 of=/storage/SD卡UUID/mmcblk0nodata bs=4M count=643
SD卡UUID
可以在/storage
里面看,是一串字母和数字。
或者备份到电脑
- 盒子执行(需要root)
busybox nc -l -p 5000 -e busybox dd if=/dev/block/mmcblk0nodata bs=4M count=643
- 电脑执行
nc -v 盒子IP 5000 > mmcblk0nodata
PS. 上面两种方法都没有备份盒子 data 分区,如果要全部备份需要重启到第三方 Recovery 或像 LibreELEC 之类的在 U盘 中运行的系统并执行dd if=/dev/block/mmcblk0 of=/storage/SD卡UUID/mmcblk0
,这样备份的时间会非常长,而且要求 U盘 剩余空间大于 16G 。
备份这段时间我们可以去下载刷机包。
Android
刷机会清除全部数据,记得备份原系统和数据。
另外再备份下这两个文件,刷完再恢复。
1 | ## 蓝牙遥控器键值 |
如果备份的 remote.conf
不能用,也可以试试这个。
- 用 BootcardMaker 制作启动卡。然后插进盒子,执行
reboot update
,盒子会重启升级。 - 或是用双公头 USB 线连接电脑和盒子(插靠后面的 USB 口)用 USB Burning Tool 刷。先在 USB Burning Tool 上面点开始,然后插盒子的电源,再快速插上 USB 线。
一些固件的下载地址
- Android 6.1 上面的截图就是这个固件。有线网卡可以用。自带 Samba ,启动器带通知显示。不知道为什么 superceleron 的原帖消失了,我把固件上传到了网盘。先刷 SCV10A-GT1.img ,再进 rec 刷 OTA-SCV11-GT1.zip 和 SCV11-A912-AP6255-Support.zip 。
- Android TV 7.1.2 目前在用,只有 Play 服务、商店和 YouTube 。不过精简的有点多,DocumentsUI 都没,我放到网盘里了,可以自己添加。有线网卡要修改 dtb 才能用。
- Android TV 9 有线网卡可以用,他的 kernel 也是 32 位的,所以装 entware 的话也要装 32 位的。 root 的话要提取出 Recovery 并在盒子上用 Magisk 修补后再刷入,然后
reboot recovery
。 - 还可以自己 Google 搜索或是去 freaktab 、xda 这类的地方找。
- 不要刷斐讯 T1 及其他需要 License 的高安盒子固件,会导致盒子上锁刷不了任何其他固件。
一些问题和解决办法
- 蓝牙遥控器只能关机不能开机:按钮改成休眠后可休眠唤醒。不过盒子24小时挂着 BT 下动画片,用不着关机功能问题也不大。
- 红蓝按钮:修改
HIMEDIA.kl
,把红蓝键改成别的功能(按键参考)。我这有一个改好的,红色是静音,蓝色是截图。 - 鼠标模式:安装 Mouse Toggle for Android TV ,在无障碍中启用,按音量减再快速按音量加开启,HOME 关闭。
- 语音:换个支持 Android TV 语音的遥控器。或者在手机上装个 Android TV Remote Control 。
- 刷了第三方固件后盒子后面的 reset 键会失效,这个没有办法。
有线网卡
需要从原版系统的 dtb 中复制 ethernet@0xc9410000
和 eth_pins
的内容替换新系统 dtb 中对应的内容。
原版的为:
1 | ethernet@0xc9410000 { |
可以用 AMLogicTools_V7.1.0_Donate 解包系统固件,Unpack level 2 ,之后可以在 AMLogicTools_V7.1.0_Donate\tmp\level2\dtb
找到 dtb 文件并修改,修改后选 Repack to amlupgrade package 然后刷入就好了。
我这里有一个用上面的 Android TV 7.1.2
改好的,红外和蓝牙遥控应该也可以直接用。
LibreELEC
LibreELEC 其实就是个 Linux + kodi ,扩展比 kodi 多点。跟 Android 版的 kodi 比起来就是多了些程序,放 H265 不会花屏了。可以在这里下载,安装说明可以看这个。
CoreELEC 新版已经不支持 S912 了,可以用旧版。用 rufus 写入优盘,把 device_trees/gxm_q201_2g.dtb
复制为 dtb.img
到优盘根目录,然后插进盒子,执行 reboot update
。
EmuELEC 模拟器系统,新版不支持 S912 了,可以用旧版。也可以试试国内一些论坛魔改的镜像。
LibreELEC 系的大多都不支持 S912 了,如果非要用的话推荐旧版的 CoreELEC 。可以装 64 位的 entware 和 32 位的 docker ,能用的软件会多一点。甚至可以把 Android 的 system 和 data 挂载上去跑 Termux 。
另外这些用蓝牙遥控器也是只能关机不能开机,按钮改成休眠后可休眠唤醒。
Linux
镜像可以用这个,安装说明可以看这个。也可以用这个装其他发行版,不过驱动可能不全,可以从前面的镜像里面提取。
用 dd
或 rufus
把镜像写到优盘,修改 uEnv.txt
第三行为 FDT=/dtb/amlogic/meson-gxm-q201.dtb
。将 u-boot-s905x-s912.bin
复制为 u-boot.ext
。然后在盒子上执行 reboot update
。
如果重启后进入了 recovery
,可能是因为之前启动过 类LibreELEC 系统,修改了 uboot 的启动参数,需要修改优盘中的启动脚本。
在 aml_autoscript.cmd
最上添加 setenv bootfromsd
,然后用 uboot-tools
生成启动文件。mkimage -A arm -O linux -T script -C none -d aml_autoscript.cmd aml_autoscript
再将生成好的 aml_autoscript
复制到启动优盘覆盖原文件,我这有一个改好的。
刷回官方(恢复备份)
把备份的文件放到 SD 卡 或 U 盘,重启到 TWRP 或像 LibreELEC 之类的在 U盘 中运行的系统。
重启到 TWRP :
reboot recovery
重启到 U盘系统 :
reboot update
如果 SD 卡 或 U 盘 没有自动挂载的话,需要手动挂载。
mount /dev/block/mmcblk1 /usb-otg/
上面是 SD 卡 的路径,U 盘 的话可能是
/dev/block/sda1
,具体可以在/dev/block/
下面看。恢复备份。
dd if=/usb-otg/mmcblk0nodata of=/dev/block/mmcblk0
恢复完成后重启到 Recovery。
reboot recovery
如果之前的系统是原厂 Recovery 的话会自动格式化 data 分区并重启。
如果是 TWRP 的话要手动格式化一下。
官方固件一些问题的解决方法
- 没有通知栏:装 Snowball Smart Notifications 显示通知。
- 没有最近任务界面:插个飞鼠或者键盘 Alt + Tab 。
- 官方固件偷偷给用户安装软件:
- 后台偷偷安装软件的是系统自带的启动器,可以换用第三方启动器然后直接删掉或禁用自带的启动器。
- 后来通过抓包找到推送列表地址,也可以在 hosts 里面加上一句
127.0.0.1 apkhome.hinavi.cp81.ott.cibntv.net
屏蔽。
还有一些有的没的。