Linux手机DIY.夏新E600和飞利浦968的重大突破

一、序
夏新E600和飞利浦968终于在同一天取得了重大突破!皆可以执行自定义的Shell脚本!在这样还是要感谢那些无数次重启试机的朋友们 。
昨天无意翻到一个贴子 , 说得是Shell的解释执行 , 忽然想到目前尝试的Shell脚本 , 全是想当然的用/bin/bash解释运行 , 如果飞利浦968不存在这个可执行文件是绝对不可能运行的 。
我在论坛上翻到“新号码”从夏新E600升级包提取的文件内容 , 找个遍发现有ash , 也有sh , 却惟独没有bash 。我隐隐感觉到有可能原因就出在这里 。
二、重要提示
为了方便更好的理解本文 , 提供下面链结 。
全系列的文章地址 , 手机应用开发专栏:http://blog.csdn.net/liwei_cmg
相关的重要资源的下载地址:http://play.younet.com/view.php?tid=24045
三、尝试过程

将原包在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可以执行成功 , 我就自然想到了在E600再试下这个程序 , E600不能运行模拟器qnes也有可能是缺少库文件 , 让“电子奴隶主”安装试了一下 , 果然也成功了!而且把复制来的所以desktop文件和生成的ls文件打包发给了我一份 。
结论:
飞利浦968和夏新E600的安装包详细制作方法我们已经知道 , 运行Shell脚本了也全部取得了成功了 , 已经打开了一个极其重要的缺口 , 惟独的是Install.conf还没有参透 , 不过相信在对飞利浦和夏新操作系统进一步研究过程中 , 我们会知道的越来越多 。
最后明确一点 , E600和968扩展开发第三方软件 , 只是个时间问题!

四、扩展手机应用总体思路
通过运行Shell脚本 , 我们就可以知道整个操作系统的结构 , 包括Linux内核应用和上层图形化系统 。从而一步一步获取系统软件和外部软件管理运行的方式和环境 , 以及涉及的相关库文件(lib) , 资源文件(png,res) 。最终完成交叉编译开发移植第三方软件 。

目前可以简单展望一下Shell脚本所带来的根本性变化 。
A.实现对现有手机系统功能的扩展和改进

原有手机系统程序大多数都是通过配置文件进行管理 , 这类配置文件是对用户完全封闭的 。有了这个缺口 , 可以完全了解这些相关配置信息 , 灵活扩展手机程序的功能 。
B.完全了解所有用户操作对968手机系统的影响 , 以及个人数据在968上的存储方式 。
飞利浦和夏新手机的主清除和主复位百分之九十九是两个不同的Shell脚本 , 不用多说了 , 看看脚本内容就知道他做了些什么 。
【Linux手机DIY.夏新E600和飞利浦968的重大突破】C.通过Shell编程本身扩展手机功能应用
目前E680上的大量软件是采用了Shell脚本来实现 , 如telnet , 虚拟内存扩展 , 蓝牙telnet , 进程监视 , 内存监视 , 数据备份 , MPKG安装卸载等等 。这个得需要看具体的需求了 。

推荐阅读