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

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

草木瓜  更新于 2006-10-24 下午


一、序

  夏新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也有可能是缺少库文件,让“电子奴隶主”安装试了一下,果然也成功了,并且媒体播放器也启
动成功了,显然exec audioplayer &这个在飞利浦968执行失败的语句,在夏新E600就没问题了!
“电子奴隶主”还把复制来的所有desktop文件和生成的ls文件打包发给了我一份。

四、总结
  
  关于飞利浦968和夏新E600的目前安装包,我都是在Linux tq用户下用tar命令按顺序打包
的,详细方法可参考初探一文。其他在Windows下的打包方法没有做尝试。
  两款手机的Shell脚本也能成功运行,惟独的是Install.conf这个文件还没有参透,不过
以后在对飞利浦和夏新操作系统进一步研究过程中,我们会知道的越来越多。
    Shell的成功运行意味着DIY和第三方软件完全可行。至于能做什么就要看你想做什么了。
    目前通过执行几个简单Shell也获取了一些重要信息,可以查看http://play.younet.com/view.php?tid=24045
   
五、扩展手机应用总体思路

  通过运行Shell脚本,我们就可以知道整个操作系统的结构,包括Linux内核应用和上
层图形化系统。从而一步一步获取系统软件和外部软件管理运行的方式和环境,以及涉及
的相关库文件(lib),资源文件(png,res)。最终完成交叉编译开发移植第三方软件。
  
  目前可以简单展望一下Shell脚本所带来的根本性变化。

  A.实现对现有手机系统功能的扩展和改进
  
  原有手机系统程序大多数都是通过配置文件进行管理,这类配置文件是对用户完全封
闭的。有了这个缺口,可以完全了解这些相关配置信息,灵活扩展手机程序的功能。

  B.完全了解所有用户操作对968手机系统的影响,以及个人数据在968上的存储方式。
  飞利浦和夏新手机的主清除和主复位百分之九十九是两个不同的Shell脚本,不用多说
了,看看脚本内容就知道他做了些什么。

  C.通过Shell编程本身扩展手机功能应用
  目前E680上的大量软件是采用了Shell脚本来实现,如telnet,虚拟内存扩展,蓝牙
telnet,进程监视,内存监视,数据备份,MPKG安装卸载等等。这个得需要看具体的需求
了。
  
  D.移植开发QTE,OPIE等一些其他的第三方软件
  这方面内容就太多了,不过需要一些技术问题需要解决,下面会详细介绍。
  
  
  E.开发基于系统图形化框架的软件
  这个是比较难的,因为没有开放图形化SDK,下面也会详细说明。

  
六、未来方向的几个重要疑问。

  疑问一.Shell脚本既然可以运行,能不能通过USB实现telnet?这个问题很复杂,我也不清
楚。倘若能通过努力完成telnet,那DIY就太过方便了,不用老是重装Qnes安装包,来运行不同
的Shell了。完全就可以在Windows下操作飞利浦968和夏新E600!

  疑问二.原qnes.prg包中的qnes可执行程序,也是兼容ARM指令集,不过是基于Linux2.0.0
内核的,具体两款手机支持什么样的内核版本,目前还不知道。我手里可用的交叉编译工具是
ARM,Linux 2.4.3的内核版本,这个版本编译的可执行程序在E680(Linux 2.4.0)是完全可以运
行的,但不知道在飞利浦968和夏新E600上能否运行。
    要知道E600和968本身可执行程序的内核版本,很简单。只需要写个Shell脚本,复制过来
几个可执行文件,用Linux命令file看一下便知。
  如果现有的Linux 2.4.3编译的程序不能运行,还需要构建一个基于Linux 2.0.0的低版本
交叉编译环境。
  
  疑问三.夏新E600和飞利浦968从理论上讲是这种结构---Linux内核+Qte+图形化框架,这个
和E680系列本质是一样的,不过飞利浦的Linux内核代码未公布,而E680系列内核代码是开放的。
Qte和上层图形化框架两者倒是一样,都没有公布源代码。不过E680却拿到了A760(可能是)的上
层图形化的开发包。所以一些兴趣爱好者就使用上层图形库很容易开发出第三方软件了
(如ezxplayer,抓图软件...等)。这些个E680系列软件从理论上是不能通过简单的交叉编译移植
过来的,因为两者的上层开发包是不一样的。不过在移植Qte和OPIE等这类软件,两者却是完全
一样的,说不定夏新E600和飞利浦968比E680会更容易。须要解决的问题就是疑问二中所提到的。
    可见开发基于上层图形化框架的软件是不容易的,移植Qt,OPIE的软件倒是可行,而Linux底
层设计由于没有公开内核代码是不太可能的。


七、附录

  通过执行上面的脚本,获取夏新E600中的部分内容,仅作示例。
  
  exec cp /mnt/user/cec/apps/6Self-Defined/*.desktop /mnt/doc/user_local/qnes/. &
  作用:复制 自定义目录下所有的desktop文件到qnes目录下
  
  020javamanager.desktop
  
  [Desktop Entry]
  Type=MimeType
  MimeType=application/x-javaAMS
  Comment=AMS
  Exec=AMS
  Shell=j9 -Xmjit -Duser.home=/mnt/doc -DExec=AMS -jcl:midp20 javax.microedition.lcdui.AppManager /mnt/cellon/ibm/midlet/AMS/AMS.jad
  Icon=common/menu/C8000_menu_user_define_JAVA.png
  Name=Java manager
  Name[en]=Java manager
  Name[zh_CN]=Java管理器
  Name[zh_TW]=Java管理器
  
  
  040ColorBall.desktop
  
  [Desktop Entry]
  Comment=ColorBall
  Exec=ColorBall_Amoi
  Shell=j9 -Xmjit -Xss6k -jcl:midp20 -Duser.home=/mnt/doc -DExec=ColorBall_Amoi -cp /mnt/cellon/ibm/midlet/ColorBall/ColorBall_Amoi.jar javax.microedition.lcdui.AppManager /mnt/cellon/ibm/midlet/ColorBall/ColorBall_Amoi.jad
  Icon=common/menu/C8000_menu_user_define_colorball.png
  Type=Application
  Name=ColorBall
  Name[en]=ColorBall
  Name[zh_CN]=滚滚球
  Name[zh_TW]=滾滾球
  
  ...
  
  exec ls > /mnt/doc/user_local/qnes/ls.txt &
  作用:显示系统可执行文件目录下所有内容
  
  SMALLP.BNK
  alarm
  alerttest
  amoi
  audioplayer
  audiorecorder
  broadcast
  calculator
  calendar
  ...
  
  
  
  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值