Linux手机DIY.飞利浦968的重大突破
草木瓜 更新于 2006-10-24 中午
一、序
昨天无意翻到一个贴子,说得是Shell的解释执行,忽然想到目前尝试的Shell
脚本,全是想当然的用/bin/bash解释运行,如果飞利浦968不存在这个可执行文件
是绝对不可能运行的。
我在论坛上翻到“新号码”从夏新E600升级包提取的文件内容,找个遍发现有ash,
也有sh,却惟独没有bash。我隐隐感觉到有可能原因就出在这里。
二、尝试
将原包在Linux用tq用户解包(tar xvf qnes.prg),将qnes替换为Shell脚本,
脚本内容如下(先不指定用哪个Shell解释):
exec audioplayer &
exec cp /mnt/user/cec/apps/6Self-Defined/*.desktop /mnt/doc/user_local/qnes/. &
exec ls > /mnt/doc/user_local/qnes/ls.txt &
exec ls > /mnt/doc/user_local/ebook/ls.txt &
用我的打包脚本,执行打包操作,让铁蛋安装,发现没有任何反应。我又把
Shell脚本加了一行语句 “#!/bin/sh”,即换成让/bin/sh来解释执行,即如下内容:
#!/bin/sh
exec audioplayer &
exec cp /mnt/user/cec/apps/6Self-Defined/*.desktop /mnt/doc/user_local/qnes/. &
exec ls > /mnt/doc/user_local/qnes/ls.txt &
exec ls > /mnt/doc/user_local/ebook/ls.txt &
再打包让铁蛋安装执行,意外出现了,发现qnes目录有了txt文件,也有了一堆
desktop文件,说明Shell在968上是完全执行成功了!
至于exec audioplayer & 这句只是根据“新号码”提取的E600中desktop文件猜想的,
无关紧要。
结论:
目前飞利浦968安装包的详细制作方法我们已经知道,运行Shell脚本了也成功了,
968已经打开了一个极其重要的缺口,惟独的是Install.conf还没有参透,不过相信在
对飞利浦操作系统进一步研究过程中,我们会知道的越来越多。
最后明确一点,968扩展开发第三方软件,只是个时间问题!
三、扩展飞利浦手机应用总体思路
通过运行Shell脚本,我们就可以知道整个操作系统的结构,包括Linux内核应用和上
层图形化系统。从而一步一步获取系统软件和外部软件管理运行的方式和环境,以及涉及
的相关库文件(lib),资源文件(png,res)。最终完成交叉编译开发移植第三方软件。
目前可以简单展望一下Shell脚本所带来的根本性变化。
A.实现对现有手机系统功能的扩展和改进
原有手机系统程序大多数都是通过配置文件进行管理,这类配置文件是对用户完全封
闭的。有了这个缺口,可以完全了解这些相关配置信息,灵活扩展手机程序的功能。
B.完全了解所有用户操作对968手机系统的影响,以及个人数据在968上的存储方式。
飞利浦手机的主清除和主复位百分之九十九是两个不同的Shell脚本,不用多说了,
看看脚本内容就知道他做了些什么。
C.通过Shell编程本身扩展手机功能应用
目前E680上的大量软件是采用了Shell脚本来实现,如telnet,虚拟内存扩展,蓝牙
telnet,进程监视,内存监视,数据备份,MPKG安装卸载等等。这个得需要看具体的需求
了。
D.移植QTE,OPIE等一些其他的第三方软件
这方面内容就太多了,不过需要一些技术问题需要解决,下文会详细介绍。
四、未来方向的几个重要疑问。
疑问一.Shell脚本既然可以运行,能不能通过USB实现telnet?这个问题很复杂,我也不清
楚。倘若能通过努力完成telnet,那DIY就太过方便了,不用老是重装Qnes安装包,来运行不同
的Shell了。完全就可以在Windows下操作飞利浦968!
疑问二.原qnes.prg包中的qnes可执行程序,也是兼容ARM指令集,不过是基于Linux2.0.0
内核的,目前手里可用的交叉编译工具是ARM,Linux 2.4.3的内核版本,这个版本编译的可执
行程序在E680(Linux 2.4.0)是完全可以运行的,但不知道在飞利浦968(Linux 2.0.0)上能否
运行。如果不能运行,还需要构建一个基于Linux 2.0.0的交叉编译环境。
疑问三.飞利浦968从理论上讲是这种结构---Linux内核+Qte+图形化框架,这个和E680系列
本质是一样的,不过飞利浦的Linux内核代码未公布,而E680系列内核代码是开放的。Qte和上
层图形化框架两者倒是一样,都没有公布源代码。不过E680却拿到了A760(可能是)的上层图形
化的开发包。所以一些兴趣爱好者就使用上层图形库很容易开发出第三方软件了(如ezxplayer,
抓图软件...等)。这些的E680系列软件从理论上是不能通过简单的交叉编译移植过来的,因为
两者的上层开发包是不一样的。不过在移植Qte和OPIE等这类软件,两者却是完全一样的。须要
解决的问题就是疑问二中所提到的。
五、写在最后
最后我只想说一点,现在能让飞利浦968运行自定义的Shell脚本了。了解Shell脚本的DX应
该知道这是一个什么概念!