前几天给盒子清数据,连上网就被自动装了 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里面看,是一串字母和数字。

或者备份到电脑

  1. 盒子执行(需要root)
    busybox nc -l -p 5000 -e busybox dd if=/dev/block/mmcblk0nodata bs=4M count=643
  2. 电脑执行
    nc -v 盒子IP 5000 > mmcblk0nodata

PS. 上面两种方法都没有备份盒子 data 分区,如果要全部备份需要重启到第三方 Recovery 或像 LibreELEC 之类的在 U盘 中运行的系统并执行
dd if=/dev/block/mmcblk0 of=/storage/SD卡UUID/mmcblk0 ,这样备份的时间会非常长,而且要求 U盘 剩余空间大于 16G 。

备份这段时间我们可以去下载刷机包。

Android

Android
  刷机会清除全部数据,记得备份原系统和数据。
  另外再备份下这两个文件,刷完再恢复。

1
2
3
4
## 蓝牙遥控器键值
/system/usr/keylayout/HIMEDIA.kl
## 红外遥控器键值
/system/etc/remote.conf

如果备份的 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@0xc9410000eth_pins 的内容替换新系统 dtb 中对应的内容。

原版的为:

1
2
3
4
5
6
7
8
9
10
11
12
13
ethernet@0xc9410000 {
compatible = "amlogic, gxbb-rmii-dwmac";
reg = <0x0 0xc9410000 0x0 0x10000 0x0 0xc8834540 0x0 0x8 0x0 0xc8834558 0x0 0xc>;
interrupts = <0x0 0x8 0x1>;
phy-mode = "rmii";
mc_val = <0x1800>;
resets = <0x6 0x23>;
reset-names = "ethpower";
interrupt-names = "macirq";
clocks = <0x6 0xa>;
clock-names = "ethclk81";
internal_phy = <0x1>;
};

  可以用 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
  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

Armbian
  镜像可以用这个,安装说明可以看这个。也可以用这个装其他发行版,不过驱动可能不全,可以从前面的镜像里面提取。
  用 ddrufus 把镜像写到优盘,修改 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 复制到启动优盘覆盖原文件,我这有一个改好的

刷回官方(恢复备份)

  1. 把备份的文件放到 SD 卡 或 U 盘,重启到 TWRP 或像 LibreELEC 之类的在 U盘 中运行的系统。

    重启到 TWRP : reboot recovery

    重启到 U盘系统 : reboot update

  2. 如果 SD 卡 或 U 盘 没有自动挂载的话,需要手动挂载。

    mount /dev/block/mmcblk1 /usb-otg/

    上面是 SD 卡 的路径,U 盘 的话可能是/dev/block/sda1,具体可以在/dev/block/下面看。

  3. 恢复备份。

    dd if=/usb-otg/mmcblk0nodata of=/dev/block/mmcblk0

  4. 恢复完成后重启到 Recovery。
    reboot recovery

  如果之前的系统是原厂 Recovery 的话会自动格式化 data 分区并重启。
  如果是 TWRP 的话要手动格式化一下。

官方固件一些问题的解决方法

  • 没有通知栏:装 Snowball Smart Notifications 显示通知。
  • 没有最近任务界面:插个飞鼠或者键盘 Alt + Tab 。
  • 官方固件偷偷给用户安装软件:
    • 后台偷偷安装软件的是系统自带的启动器,可以换用第三方启动器然后直接删掉或禁用自带的启动器。
    • 后来通过抓包找到推送列表地址,也可以在 hosts 里面加上一句127.0.0.1 apkhome.hinavi.cp81.ott.cibntv.net屏蔽。
      抓包

还有一些有的没的