Liberate the heart of Kai.
0x00 前言
Nokia 8110 4G可以是现在最有个性的学生用机了——支持完整4G(VoLTE&网络),惹人注目的黄色配色,独特的滑盖机械结构和基于Firefox OS的KaiOS都使其从多亲AI电话和华强北老人机中脱颖而出。在我前面使用的近一个月中,我也充分感受到了结合adb带来的十足个性。
不过随着进一步探索,KaiOS的流氓本质渐渐体现。浏览器静默打开移动数据,内建的KaiAds广告API(它能在任意应用中任何时候打断应用全屏显示广告),以及国产厂商标配的、无时不刻的数据收集,渐渐显示出Jio的流氓作风。
好在基于KaiOS的设备结构并不复杂。同为ARM与Linux平台,它们甚至支持adb,且在系统中有不少漏洞。这使得“越狱”与定制系统成为可能。@Luxferre在折腾中发现了Nokia 8110 4G v13及v15+固件的漏洞,并成功使设备搞到了临时的adb root权限。这催生了GerdaOS,一个KaiOS的魔改分支。他们声称去除了所有追踪和广告API,并成功实现了多任务处理与第三方软件包安装。这对于我来说算是一个福音。
说干就干,下面我想来聊聊刷机的整个过程与一点经验。
0x01 准备
- 一个可用的adb环境:在此下载命令行工具;
- 一个可用的WebIDE环境(仅限v15+用户):较为推荐的最新版本是Firefox 52.9 ESR,在此下载。下文也将以ff52.9作为示范;
- Wallace(仅限v15+用户):在此下载;
- Gerda Recovery:点此下载;
- 刷机包本体:点此下载。
在此之前,我推荐适当地熟悉一下adb常用用法。
0x02 越狱
KaiOS的越狱如前文提到,分两种。
对于v13固件用户:
访问http://r.gerda.tech,并点击Root me with Pris method即可。
这种方式有一个弊端:截止本文写就日期,8110的KaiOS固件已被更新至v16。对于我和其他出厂预装v12固件的用户而言,这并非一个可行的方法。所以,对于这类用户,需先进入应用商店检查更新并安装,然后:
对于v15&v16用户:
安装Firefox 52.9 ESR。您也可以解压后直接运行拷贝。打开后,在浏览器中键入⇧𝖥𝟪。
将下载的Wallace解压,并解压其中的application.zip。接着,切换到刚打开的WebIDE,选择打开打包式应用,并定位至刚才解压的application文件夹。
接着,在手机用拨号盘键入*#*#33284#*#*
(*#*#debug#*#*)
连接至电脑的adb,并在电脑的终端运行它。
接下来键入:
adb devices
adb forward tcp:6000 localfilesystem:/data/local/debugger-socket
接着,点击WebIDE侧栏的远程运行环境并确定。
之后,点击顶栏的三角按钮。
这样,Wallace将会在你的手机上安装并运行。你也可以通过这个方法安装任何通过BananaHackers Store分发的KaiOS与Firefox OS应用到你的GerdaOS上。
开始运行之后,按下确认键,等待片刻即可。
0x03 刷机
现在你应该获得了一次临时的root权限,重启失效。下面,先进入shell吧!
adb shell
然后,备份一下你已有的固件:
#dd if=/dev/block/bootdevice/by-name/recovery of=/sdcard/recovery-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/system of=/sdcard/system-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/splash of=/sdcard/splash-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/fsg of=/sdcard/fsg-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/rpm of=/sdcard/rpm-backup.img bs=2048
#dd if=/dev/block/bootdevice/by-name/modem of=/sdcard/modem-backup.img bs=2048
#exit
adb pull /sdcard/*.img /path/to/your/backup/dir
接着便可以刷入Gerda Recovery了:
adb push /path/to/your/recovery-8110.img /sdcard
adb shell
#dd if=/sdcard/recovery-8110.img of=/dev/block/bootdevice/by-name/recovery bs=2048
待操作完成后,便可以重启至Recovery了。关机后,按住电源和方向上键开机,震动后松开。
用方向上下键选中Apply update from ADB
,用电源键确认。并在终端键入:
adb sideload /path/to/your/gerda-install.zip
静待其操作,并在完成后再选中Wipe data/factory set
。
最后,便可选择Reboot system now
啦!
享受你的GerdaOS吧!
0x04 系统截图&更多功能
GerdaOS最主要的一个特点在于其电源键的重定义。滑开滑盖但不滑到底时,按下电源键即可截图;滑盖滑到底,短按电源键直接退回主页,长按访问多任务。同时,通过内置的文件管理器搜索已传输至手机上的应用压缩包(BananaHackers Store上直接分发的zip)并打开,可直接安装应用,包括Google和一众国际软件。
0x05 写在最后
GerdaOS仍处于公测阶段,很多功能也十分简陋。不过,接下来的半年里,我也希望他们能为我们带来更多能让这台小香蕉更现代化的功能。
🙂