一、序

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

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

  1. 飞利浦linux手机,Linux手机DIY.夏新E600和飞利浦968安装包专题

    Linux手机DIY.夏新E600和飞利浦968安装包专题 草木瓜  2006-10-25 一.序 夏新E600和飞利浦968两者都只识别Linux下tar格式的包文件,Alzip是在 Windows ...

  2. Linux手机DIY.夏新E600和飞利浦968移植软件的开始

    一.序 不过几天的时间,我们已经能获取夏新E600和飞利浦968的大量内部信息, 我曾经考虑过先实现telnet,不过现在我觉得还是应该加快移植第三方软件的 步伐了,因为所有的条件都已成熟! 二.重要 ...

  3. Linux手机DIY.夏新E600和飞利浦968初探

    一.序 无意中被小叶拉来,协助破解夏新E600的第三方软件安装.虽经过众位兄弟的齐心 努力,然至今却未能取得突破性进展.失败了无数次,也否定了无数次设想和可能.一 个人的能力有限,所以我想对这几天的努 ...

  4. 手机构建Linux环境,Linux手机DIY.构建统一安装包

    Linux手机DIY.构建统一安装包 草木瓜  于 2006-11-25 一.序 因为夏新E600与飞利浦968差异比较大,所以有必要对安装进行一次标准性 的统一.subtle早在几天前就针对目前安装 ...

  5. Linux手机DIY.移植软件专题.Qt/Qte的编译环境

    Linux手机DIY.移植软件专题.Qt/Qte的编译环境 草木瓜  于 2006-11-15 一.序 一个偶然的想法,把在夏新E600出现Segmentation Fault的QT程序放在 Moto ...

  6. 飞利浦linux手机,飞利浦968手机 采用Linux系统

    飞利浦968手机 飞利浦的第一款采用Linux系统,高端定位的智能手机飞利浦 968,从去年上市之初,就凭借其强大的功能.不俗的外表,再加之难能可贵.适中的价格,在市场中受到了不少的关注. 飞利浦 9 ...

  7. 飞利浦linux手机,LINUX超长待机 百万像素飞利浦968评测

    前言 进入2005年后,飞利浦一方面在努力维护着自己"超长时间待机神话"的形象,另一方面也逐渐开始向多元化发展.而在这其中,飞利浦968无疑是最引人注目的一款.它不仅是" ...

  8. 2005年linux手机系统,三系统五大平台 05年22款智能手机横评

    不知道有多少朋友还记得我们中关村在线手机频道于今年初推出的<巅峰对决 2004年14款智能手机横向评测>这个大型专题.时间过得很快,转眼间,又一个365天飞逝而过,也到了我们为2005年智 ...

  9. 摩托罗拉为什么要限制自家linux手机,摩托罗拉为何在安卓手机大放异彩的时候,突然开始衰败了呢?...

    摩托罗拉从一开始就走在了安卓的道路上,并且魅力四射,可以说一时间也是风光无比.对比诺基亚坚定的走向WP之路,这一点摩托罗拉没有走错. 安卓当时的热门机中,摩托罗拉的里程碑系列可以算作是经典之作.销量也 ...

最新文章

  1. linux 编译器错误,linux – GHCi – Haskell编译器错误 – /home/user/.ghci归其他人所有,IGNORING...
  2. 工作随笔之nginx 应用场景
  3. linux内核和w,Linux内核中Makefile、Kconfig和.config的关系
  4. ADO.NET中SqlCommand对数据库操作
  5. 最小生成树的Prime算法的思想
  6. Codeforces Round #395 C
  7. h3c交换机怎么设置虚拟服务器,H3C交换机配置 | 如何实现两个网段主机与外部通信...
  8. Nginx服务器学习(一)CentOS7系统安装Nginx
  9. java使用derby增删改查_JDBC 笔记3 通过PreparedStatement 对数据库进行增删改查 (转载)...
  10. 在Windows Server 2012R2离线安装.net framework3.5
  11. 数据分析法、数据分析方法论总结
  12. cobar mysql_mysql分布式中间件cobar
  13. 人均GDP将破1万美元对中国意味着什么?
  14. 【unity shader】unity游戏特效-仿《崩坏3》希儿魇夜星渊大招特效(运用CommandBuffer和屏幕后处理)
  15. 两道类似的概率期望题目
  16. Centos配置NFS
  17. JAVA第一次实验 ——凯撒密码
  18. Funexpected宣布推出全新的遵循渐进式课程,它有直观界面、丰富多彩的游戏世界、个性化数字导师等
  19. ACM2019春季训练- How Many Tables HDU - 1213(初识并查集+转倚天屠龙记故事)
  20. 推荐一个很不错的桌面便笺工具magic notes

热门文章

  1. Centos 下解压和压缩rar文件
  2. 一战封神——提升奇珍提高战力
  3. 戴尔游匣7559-拆机磁盘换固态详解
  4. KMeans算法的Mapreduce实现
  5. html制作跳动的心注释比较全
  6. (Hankson的逆问题)
  7. SpringBoot系列之(一):入门
  8. 2022年R2移动式压力容器充装考试模拟100题及在线模拟考试
  9. 关于handler子线程通知主线程的几种写法
  10. java面试换背景颜色_正在修生养息,突然收到阿里(蚂蚁)面试电话,四面阿里面经总结...