| 導購 | 订阅 | 在线投稿
分享
 
 
 

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

2008-12-28 02:16:16  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  一、序

   无意中被小叶拉来,协助破解夏新E600的第三方软件安装。虽经过众位兄弟的齐心

  努力,然至今却未能取得突破性进展。失败了无数次,也否定了无数次设想和可能。一

  个人的能力有限,所以我想对这几天的努力作一次系统的总结,给众位兄弟参考。也希

  望大家能不断提出自已的想法和见解。

   在此特意感谢长鸿小叶,搞搞震,铁蛋,新号码,九,电子等很多弟兄不知疲倦的

  反复试机。

  二、重要提示

   为了方便更好的理解本文,提供下面链结。

   全系列的文章地址,手机应用开发专栏:http://blog.csdn.net/liwei_cmg

   相关的重要资源的下载地址:http://play.younet.com/view.php?tid=24045

  三、手机背景简介

   夏新E600和飞利浦968,这两款手机系统相当类似,且皆是采用Linux操作系统,与E680系列一样是基于Qt图形库。

   其中飞利浦968存在一款能完美安装并且运行的Qnes模拟器。而夏新E600目前为止只发现一个能安装的第三方软件(即上面所说的Qnes),不过不能运行。关于以上两款手机的破解资料几乎是找不着的。一切需要从0开始。

   目前想法是先找出Linux手机系统运行Shell脚本的方法。

   我觉得这点十分重要,一旦脚本能运行成功,什么目录结构,进程信息,库文件等等甚至Linux重要的一切就轻而易举的呈现在我们面前。

  四、夏新E600目前状态

   夏新E600如同是在云里雾里。光靠一个qnes.prg这个能安装不能运行的这个线索就想破解第三方软件的问题,实在不是一般的夸张。

   我们现在只知道E600也是Linux系统,却连Rom结构,目录结构都毫不知晓,更别说具体的文件内容。所以想通过升级软件来实现破解是非常难的,不过这个方向的研究却会带来很多有用的信息。

   qnes.prg在E600上安装是十分省事的,随便用普通工具(alzip或7zip)解开包,替换可执行程序或者精简包内容(去掉nes文件),再打包,是都可以正常安装的,文件解压得一个也不少,不必关心打包的顺序(默认是按拼音顺序排列)。

   安装的唯一问题就是要注意Install.conf,对我们来说,文件里面那一堆数子简直就是一堆天书,稍作修改就安装失败。而且现在还没有人能提供这方面的有用信息。

   目前Install.conf除原文件外,只有下面的文件内容才能被正常安装。这也是去除nes文件的conf。

   41041#32310#C8000_APP_INSTALL:16313139318601136

   qnes

   26

   <BEGIN_TAG>

   <SHELL_SEPARATOR>

   <Install-Begin>

   11107#/mnt/doc/cec_local/data/qnes/NULL_FILE

   12894#/mnt/doc/cec_local/data/qnes/qnes.png

   9588##/mnt/user/cec/apps/6Self-Defined/qnes.desktop

   40882#/mnt/user/cec/i18n/zh_CN/qnes_zh_CN.qm

   46853#/mnt/user/cec/i18n/zh_TW/qnes_zh_TW.qm

   16052#/mnt/doc/cec_local/bin/qnes

   <Install-End>

   <SHELL_SEPARATOR>

   <END_TAG>

   8192

  

   在安装文件中的qnes.deskop也是起作用的,原理于E680十分类似,可以随意修改图标和名称,不过就是在安装之后,系统不能运行Exec中的qnes,这让人十分郁闷。

   [Desktop Entry]

   Comment=QNes

   Exec=qnes

   Icon=common/menu/C8000_menu_user_define_Games.png $修改图片路径(绝对路径)是有效的

   Type=Application

   Name=QNes

   Name[en]=QNes

   Name[zh_CN]=模拟器 #修改名称是有效的

   Name[zh_TW]=模擬器

  

   我曾尝试将qnes.desktop文件Exec=qnes一项的qnes改为绝对路径:Exec=/mnt/doc/cec_local/bin/qnes

   不过安装后运行会出现找不到模拟器的提示,且无法卸载。这时只有重新安装正常包再覆盖下,就恢复正常了。这说明desktop文件的用法和E680系列是一致的,在安装过程中需要读取文件的相应信息。

  

   至于系统不能运行Exec中的qnes,我怀疑是E600本身的系统限制了执行外部程序。另外也有可能E600执行qnes时,找不着/mnt/doc/cec_local/bin这个环境变量(默认是只有/bin这个$PATH环境变量的)。不管是哪一种原因,现在解决起来都十分复杂,没有头绪。

   以下是新号码分析出来的,E600存在的目录:

   手机

  /mnt/doc/user_local/

  /mnt/doc/user_local/audio/

  /mnt/doc/user_local/photo/

  /mnt/doc/user_local/video/

  /mnt/doc/user_local/java/

  /mnt/doc/user_local/ebook/

  /mnt/doc/user_local/misc/

  /mnt/doc/user_local/icon/

  /mnt/doc/cec_local/data/

  /mnt/doc/cec_local/data/todo

  /mnt/doc/cec_local/i18n/

  /mnt/doc/cec_local/lib/

  /mnt/doc/cec_local/plugins/

  /mnt/user/cec/apps/6Self-Defined/

   卡

   /mnt/sd

  

   我现在只希望能在968上找到突破点。用968系统再分析E600不能运行qnes的真正原因。目前E600的研究确实是限入了困境,也希望大家能找到突破点。

   示例四:将原包qnes.prg复制到Linux下做如下操作:

   su root

   tar xvf qnes.prg #解包

   chown tq *

   chgrp tq *

  

   用tq用户执行mktar脚本,脚本内容如下,可见是严格按照Install.conf文件顺序的。

  

   tar cvf liwei.tar Install.conf

   tar -r 3Kingdoms2.nes -f liwei.tar

   tar -r AdventureIsland4.nes -f liwei.tar

   tar -r 3Kingdoms1.nes -f liwei.tar

   tar -r AdventureIsland2.nes -f liwei.tar

   tar -r AdventureIsland3.nes -f liwei.tar

   tar -r BattleToads.nes -f liwei.tar

   tar -r 1943.nes -f liwei.tar

   tar -r 1944.nes -f liwei.tar

   tar -r BomberKing.nes -f liwei.tar

   tar -r HDL.nes -f liwei.tar

   tar -r AdventureIsland.nes -f liwei.tar

   tar -r 1942.nes -f liwei.tar

   tar -r Arkanoid.nes -f liwei.tar

   tar -r mario.nes -f liwei.tar

   tar -r BattleCity.nes -f liwei.tar

   tar -r tank.nes -f liwei.tar

   tar -r BomberMan1.nes -f liwei.tar

   tar -r qnes.png -f liwei.tar

   tar -r qnes.desktop -f liwei.tar

   tar -r qnes_zh_CN.qm -f liwei.tar

   tar -r qnes_zh_TW.qm -f liwei.tar

   tar -r qnes -f liwei.tar

  

   将做好的liwei.tar改名qnes.prg给铁蛋安装,发现安装运行皆没有问题!可见Linux下只要按顺序用tar打包文件,968安装运行是没有问题的。

   --------------------------------------------------------

  

   示例五:既然安装包没问题了,我就尝试把1942.nes删除,把原有的qnes(212K可执行程序)改名为1942.nes,自个写个脚本命名为qnes。脚本内容如下:

   #!/bin/bash/mnt/doc/user_local/qnes/1942.nes

  

   显然是为了执行原有的qnes,但是安装后不能运行,程序管理器中提示模拟器为0KB。我又写了个简单C程序,用arm-linux-gcc交叉编译了一下(因为qnes这个包在我E680装过发现是兼容ARM指令的),是8KB,这个程序其实就是做上述脚本的内容,安装后也无法运行,程序管理器中显示是模拟器为7KB。

   C程序简单代码:

  

   #include <stdlib.h>

   #include <stdio.h>

   int main()

   {

   system("/mnt/doc/user_local/qnes/1942.nes");

   return 0;

   }

   推测:可能是Install.conf文件里描述的信息与后修改的文件不一致,导致手机程序不能识别后修改的文件(不管是shell脚本还是Linux可执行程序)。

   目前为止,Install.conf那#前面一堆数字中,还跟天书没啥区别。

  

  --------------------------------------------------------

  

   示例六:为了进一步探究Install.conf问题,我将原包再次解压缩,把1942.nes删除(据铁蛋称,这个nes文件不能使用),把3Kingdoms1.nes复制一份,命名为1942.nes别的什么都不做改动,Linux按顺序打包,让铁蛋安装。发现后修改的1942.nes是可以使用,而且和3Kingdoms1是一样的。

  

   说明:Install.conf那堆数字并不关心具体的文件内容,可能只于安装路径,名称和权限有关。但是疑问也来了,那把qnes这个可执行程序替换为Shell脚本,为什么还不能运行,这个需要以后做进一步的分析了。

  --------------------------------------------------------

   总结:飞利浦安装的问题已经得到彻底解决,不过问题又再次集中到,如何执行Shell脚本这个核心问题上。将Qnes包中qnes可执行程序替换成Shell,为什么不能执行?是Shell脚本的问题,还是飞利浦也同样封掉了这个Shell接口,还是不得而知。

   我们不仅需要更多Shell脚本的尝试,而且还要对Install.conf这个文件做进一步分析。

  [最后更新于2006-10-21]
 
 
 
一、序 无意中被小叶拉来,协助破解夏新E600的第三方软件安装。虽经过众位兄弟的齐心 努力,然至今却未能取得突破性进展。失败了无数次,也否定了无数次设想和可能。一 个人的能力有限,所以我想对这几天的努力作一次系统的总结,给众位兄弟参考。也希 望大家能不断提出自已的想法和见解。 在此特意感谢长鸿小叶,搞搞震,铁蛋,新号码,九,电子等很多弟兄不知疲倦的 反复试机。 二、重要提示 为了方便更好的理解本文,提供下面链结。 全系列的文章地址,手机应用开发专栏:http://blog.csdn.net/liwei_cmg 相关的重要资源的下载地址:http://play.younet.com/view.php?tid=24045 三、手机背景简介 夏新E600和飞利浦968,这两款手机系统相当类似,且皆是采用Linux操作系统,与E680系列一样是基于Qt图形库。 其中飞利浦968存在一款能完美安装并且运行的Qnes模拟器。而夏新E600目前为止只发现一个能安装的第三方软件(即上面所说的Qnes),不过不能运行。关于以上两款手机的破解资料几乎是找不着的。一切需要从0开始。 目前想法是先找出Linux手机系统运行Shell脚本的方法。 我觉得这点十分重要,一旦脚本能运行成功,什么目录结构,进程信息,库文件等等甚至Linux重要的一切就轻而易举的呈现在我们面前。 四、夏新E600目前状态 夏新E600如同是在云里雾里。光靠一个qnes.prg这个能安装不能运行的这个线索就想破解第三方软件的问题,实在不是一般的夸张。 我们现在只知道E600也是Linux系统,却连Rom结构,目录结构都毫不知晓,更别说具体的文件内容。所以想通过升级软件来实现破解是非常难的,不过这个方向的研究却会带来很多有用的信息。 qnes.prg在E600上安装是十分省事的,随便用普通工具(alzip或7zip)解开包,替换可执行程序或者精简包内容(去掉nes文件),再打包,是都可以正常安装的,文件解压得一个也不少,不必关心打包的顺序(默认是按拼音顺序排列)。 安装的唯一问题就是要注意Install.conf,对我们来说,文件里面那一堆数子简直就是一堆天书,稍作修改就安装失败。而且现在还没有人能提供这方面的有用信息。 目前Install.conf除原文件外,只有下面的文件内容才能被正常安装。这也是去除nes文件的conf。 41041#32310#C8000_APP_INSTALL:16313139318601136 qnes 26 <BEGIN_TAG> <SHELL_SEPARATOR> <Install-Begin> 11107#/mnt/doc/cec_local/data/qnes/NULL_FILE 12894#/mnt/doc/cec_local/data/qnes/qnes.png 9588##/mnt/user/cec/apps/6Self-Defined/qnes.desktop 40882#/mnt/user/cec/i18n/zh_CN/qnes_zh_CN.qm 46853#/mnt/user/cec/i18n/zh_TW/qnes_zh_TW.qm 16052#/mnt/doc/cec_local/bin/qnes <Install-End> <SHELL_SEPARATOR> <END_TAG> 8192 在安装文件中的qnes.deskop也是起作用的,原理于E680十分类似,可以随意修改图标和名称,不过就是在安装之后,系统不能运行Exec中的qnes,这让人十分郁闷。 [Desktop Entry] Comment=QNes Exec=qnes Icon=common/menu/C8000_menu_user_define_Games.png $修改图片路径(绝对路径)是有效的 Type=Application Name=QNes Name[en]=QNes Name[zh_CN]=模拟器 #修改名称是有效的 Name[zh_TW]=模擬器 我曾尝试将qnes.desktop文件Exec=qnes一项的qnes改为绝对路径:Exec=/mnt/doc/cec_local/bin/qnes 不过安装后运行会出现找不到模拟器的提示,且无法卸载。这时只有重新安装正常包再覆盖下,就恢复正常了。这说明desktop文件的用法和E680系列是一致的,在安装过程中需要读取文件的相应信息。 至于系统不能运行Exec中的qnes,我怀疑是E600本身的系统限制了执行外部程序。另外也有可能E600执行qnes时,找不着/mnt/doc/cec_local/bin这个环境变量(默认是只有/bin这个$PATH环境变量的)。不管是哪一种原因,现在解决起来都十分复杂,没有头绪。 以下是新号码分析出来的,E600存在的目录: 手机   /mnt/doc/user_local/   /mnt/doc/user_local/audio/   /mnt/doc/user_local/photo/   /mnt/doc/user_local/video/   /mnt/doc/user_local/java/   /mnt/doc/user_local/ebook/   /mnt/doc/user_local/misc/   /mnt/doc/user_local/icon/   /mnt/doc/cec_local/data/   /mnt/doc/cec_local/data/todo   /mnt/doc/cec_local/i18n/   /mnt/doc/cec_local/lib/   /mnt/doc/cec_local/plugins/   /mnt/user/cec/apps/6Self-Defined/ 卡 /mnt/sd 我现在只希望能在968上找到突破点。用968系统再分析E600不能运行qnes的真正原因。目前E600的研究确实是限入了困境,也希望大家能找到突破点。 示例四:将原包qnes.prg复制到Linux下做如下操作: su root tar xvf qnes.prg #解包 chown tq * chgrp tq * 用tq用户执行mktar脚本,脚本内容如下,可见是严格按照Install.conf文件顺序的。 tar cvf liwei.tar Install.conf tar -r 3Kingdoms2.nes -f liwei.tar tar -r AdventureIsland4.nes -f liwei.tar tar -r 3Kingdoms1.nes -f liwei.tar tar -r AdventureIsland2.nes -f liwei.tar tar -r AdventureIsland3.nes -f liwei.tar tar -r BattleToads.nes -f liwei.tar tar -r 1943.nes -f liwei.tar tar -r 1944.nes -f liwei.tar tar -r BomberKing.nes -f liwei.tar tar -r HDL.nes -f liwei.tar tar -r AdventureIsland.nes -f liwei.tar tar -r 1942.nes -f liwei.tar tar -r Arkanoid.nes -f liwei.tar tar -r mario.nes -f liwei.tar tar -r BattleCity.nes -f liwei.tar tar -r tank.nes -f liwei.tar tar -r BomberMan1.nes -f liwei.tar tar -r qnes.png -f liwei.tar tar -r qnes.desktop -f liwei.tar tar -r qnes_zh_CN.qm -f liwei.tar tar -r qnes_zh_TW.qm -f liwei.tar tar -r qnes -f liwei.tar 将做好的liwei.tar改名qnes.prg给铁蛋安装,发现安装运行皆没有问题!可见Linux下只要按顺序用tar打包文件,968安装运行是没有问题的。 -------------------------------------------------------- 示例五:既然安装包没问题了,我就尝试把1942.nes删除,把原有的qnes(212K可执行程序)改名为1942.nes,自个写个脚本命名为qnes。脚本内容如下: #!/bin/bash/mnt/doc/user_local/qnes/1942.nes 显然是为了执行原有的qnes,但是安装后不能运行,程序管理器中提示模拟器为0KB。我又写了个简单C程序,用arm-linux-gcc交叉编译了一下(因为qnes这个包在我E680装过发现是兼容ARM指令的),是8KB,这个程序其实就是做上述脚本的内容,安装后也无法运行,程序管理器中显示是模拟器为7KB。 C程序简单代码: #include <stdlib.h> #include <stdio.h> int main() { system("/mnt/doc/user_local/qnes/1942.nes"); return 0; } 推测:可能是Install.conf文件里描述的信息与后修改的文件不一致,导致手机程序不能识别后修改的文件(不管是shell脚本还是Linux可执行程序)。 目前为止,Install.conf那#前面一堆数字中,还跟天书没啥区别。 -------------------------------------------------------- 示例六:为了进一步探究Install.conf问题,我将原包再次解压缩,把1942.nes删除(据铁蛋称,这个nes文件不能使用),把3Kingdoms1.nes复制一份,命名为1942.nes别的什么都不做改动,Linux按顺序打包,让铁蛋安装。发现后修改的1942.nes是可以使用,而且和3Kingdoms1是一样的。 说明:Install.conf那堆数字并不关心具体的文件内容,可能只于安装路径,名称和权限有关。但是疑问也来了,那把qnes这个可执行程序替换为Shell脚本,为什么还不能运行,这个需要以后做进一步的分析了。 -------------------------------------------------------- 总结:飞利浦安装的问题已经得到彻底解决,不过问题又再次集中到,如何执行Shell脚本这个核心问题上。将Qnes包中qnes可执行程序替换成Shell,为什么不能执行?是Shell脚本的问题,还是飞利浦也同样封掉了这个Shell接口,还是不得而知。 我们不仅需要更多Shell脚本的尝试,而且还要对Install.conf这个文件做进一步分析。 [最后更新于2006-10-21]
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有