MB860 的折腾(四)

怎么样才能把 Debian 部署到 MB860 上呢?三太爷参考的是这个帖子:http://bbs.gfan.com/android-5693169-1-1.html

这个帖子和其他的帖子一样,在先决条件里提到了一样“要可以 CWM Recovery”。要知道,经过前边的折腾,咱偏偏就是没搞定自定义 Recovery。不过这困顿之际,另一个问题浮现出来,到底要干些什么事情呢,以至于非要用自定义 Recovery 来完成,难道已经在手的 root 身份还不够吗?从安装步骤上看,似乎硬件上只需要一台 root 过的手机即可,而软件的准备也只是一个 Debian 镜像文件和一个名为 easy-signed 的 ZIP 压缩包。很显然,压缩包里的货色是重点,到底有些什么呢?下载下来解开看看。

压缩包的顶级路径下,有五个目录和一个脚本文件 webtopmod.sh。既然原帖中说是要让 Recovery “安装”这个压缩包,很显然,这些包里的文件会被进行某种处理,融入到系统中去。那个名为 webtopmod.sh 的脚本文件当然很可疑,但这个名字显然不是一个通用性的名字,也就是说,如果不是在别的什么地方指定了要执行这个文件,那 Recovery 绝不应该会自行将之认作应该运行的程序(要是名字是 update.sh 到说不定有此可能)。那五个目录分别是 etc、home、opt、usr、META-INF。查看这个压缩包的奥秘时,高人其实也在,他一眼就看出这个 META-INF 的目录怕事有蹊跷,待 META-INF、com、google、android 这么一层层双击进去,眼前顿时了然,有一个名为 update-binary 的文件,一个名为 updater-script 的文件。毋庸置疑,前者是个脚本解释器,而后者则是要执行的脚本,这个脚本文件就是我们要寻找的东西。

打开脚本文件仔细查看,发现其使用某种特定语法的脚本书写而成,但相当易懂。其中调用的操作颇为有限,几乎都是在 root 下可以轻易做到的事情,有文件复制、文件移动、文件删除、目录创建、文件/目录的权限/属主设置、程序执行、分区加载/卸载、从压缩包中提取文件到指定目标路径等,另外还有一些和界面交互有关的则一概未予考虑。两相比照,三太爷这 Linux 菜鸟战战兢兢地把它翻译成了 shell 脚本,与此同时,下载帖子里提到的 Debian 镜像文件也已完成(原贴里的百度云盘链接已经失效,但其引用的英文原帖中的下载链接依然健在:http://droid.makrit.net/WebTopMOD/WebTopMOD-20110707.7z)。找来一张 16GB 的 TF 卡,把映像文件小心翼翼地解压到卡上的 WebTopMOD 目录下,原来的 updater-script 是要从压缩包里提取文件的,现在 shell 脚本解压缩就不那么方便,所以将必要的文件也都从 easy-signed.zip 中事先解压了出来,在卡上的 WebTopMOD 目录下新建了一个 install 目录,把这些文件(其实就是上文提到的 etc、home、opt、usr 四个目录和那个 webtopmod.sh 脚本文件了)仍然保持原来的目录结构不变复制过来。webtopmod.sh 脚本在 Recovery 安装的方式下会被 updater-script 所调用,而今我老人家正好借尸还魂,把根据 updater-script 改写的脚本与 webtopmod.sh 中的脚本一并整理为新的 webtopmod.sh。其完整内容见下:

至此,TF 卡准备完工,将之插入 MB860,重启 MB860,然后将之 USB 连接到电脑。运行 adb shell,su 为 root 身份,将路径 cd /sdcard-ext/install,按道理讲,直接运行 ./webtopmod.sh 即可。不过说来不怕大家见笑,三太爷这脚本写完之后,着实生怕直接运行会有差池,事实上是将其中所有代码逐行复制到 adb shell 里运行的(echo 行除外),所幸百分之百成功。这里,如果有哪位读者君是跟着实际操作的,请补上三太爷当时漏了的一个步骤:重启手机。

把 MB860 插入笔记本底座(或者多媒体底座、或者已经破解之后可以正常进入 WebTop 模式的 HDMI 设备),则任务栏的右侧,leafpad、lxterminal 以及 Linux 这三个图标应该已经好端端地显示出来了。点击 Linux 的那个企鹅图标,则以下步骤与原帖完全一致,照做即可。

不过目前三太爷的 MB860 状态是,xfce4 安装完成,但 sudo xfce4-session 会导致手机重启。cat /etc/debian 显示 Debian 版本为 7.8 是不是太新了点?有待和高人抽空一起探讨。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注