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

来源:互联网 发布:发那科机器人编程视频 编辑:程序博客网 时间:2024/04/28 16:50

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
  ...
  
  
  
  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 凤尾蕨叶子蔫了怎么办 绿地珊瑚蕨干了怎么办 翠云草叶子蔫了怎么办 珊瑚蕨叶子烂了怎么办 黑骨茶叶子黑斑怎么办 外场主持没有人互动怎么办 企业年报填错了怎么办 手机忘了放哪了怎么办 燃气卡车没气了怎么办 老房子拆了重建怎么办 加了差的汽油怎么办 事业单位未满5年怎么办 小学孩子不会制订学习计划怎么办 忘记提交原创怎么办百度熊掌号 计算机一级报名表填错了怎么办 离婚了不给孩子生活费怎么办 点击爱奇艺系统提示停止运行怎么办 电视机图像颜色变了怎么办 10万签约被拒怎么办 钢琴弹奏中的折指怎么办! 吉他琴头旋钮将琴头扭坏了怎么办? 1岁幼儿不爱吃饭怎么办 3岁幼儿不爱吃饭怎么办 4岁幼儿不爱吃饭怎么办 买票买了点映 怎么办 一年级孩子注意力不集中怎么办 孩子上一年级注意力不集中怎么办 普宁二中初一新生住宿怎么办 小学入学普查错过了怎么办 初一的孩子不爱学习怎么办 初一孩子出现厌学情况怎么办 客人要求我们代办事项时怎么办 客人要求我们代办事项应该怎么办 想家了特别想哭怎么办 把友谊看得太重怎么办 高一新生数学差怎么办 如果好朋友觉得你成熟阴暗怎么办 被同学抓住把柄敲诈怎么办 初一学生字写的不好怎么办 初二学生字写不好怎么办 宝宝流鼻涕怎么办最简单方法