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

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]
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有