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

一、序

夏新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也有可能是缺少庫文件,讓「電子奴隸主」安裝試了一下,果然也成功了!而且把複制來的所以desktop文件和生成的ls文件打包發給了我一份。

結論:

飛利浦968和夏新E600的安裝包詳細制作方法我們已經知道,運行Shell腳本了也全部取得了成功了,已經打開了一個極其重要的缺口,惟獨的是Install.conf還沒有參透,不過相信在對飛利浦和夏新操作系統進一步研究過程中,我們會知道的越來越多。

最後明確一點,E600和968擴展開發第三方軟件,只是個時間問題!

四、擴展手機應用總體思路

通過運行Shell腳本,我們就可以知道整個操作系統的結構,包括Linux內核應用和上層圖形化系統。從而一步一步獲取系統軟件和外部軟件管理運行的方式和環境,以及涉及的相關庫文件(lib),資源文件(png,res)。最終完成交叉編譯開發移植第三方軟件。

目前可以簡單展望一下Shell腳本所帶來的根本性變化。

A.實現對現有手機系統功能的擴展和改進

原有手機系統程序大多數都是通過配置文件進行管理,這類配置文件是對用戶完全封閉的。有了這個缺口,可以完全了解這些相關配置信息,靈活擴展手機程序的功能。

B.完全了解所有用戶操作對968手機系統的影響,以及個人數據在968上的存儲方式。

飛利浦和夏新手機的主清除和主複位百分之九十九是兩個不同的Shell腳本,不用多說了,看看腳本內容就知道他做了些什麽。

C.通過Shell編程本身擴展手機功能應用

目前E680上的大量軟件是采用了Shell腳本來實現,如telnet,虛擬內存擴展,藍牙telnet,進程監視,內存監視,數據備份,MPKG安裝卸載等等。這個得需要看具體的需求了。

D.移植QTE,OPIE等一些其他的第三方軟件

這方面內容就太多了,不過需要一些技術問題需要解決,下文會詳細介紹。

五、未來方向的幾個重要疑問。

疑問一.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.0.0的交叉編譯環境。

疑問三.夏新E600和飛利浦968從理論上講是這種結構---Linux內核+Qte+圖形化框架,這個和E680系列本質是一樣的,不過飛利浦的Linux內核代碼未公布,而E680系列內核代碼是開放的。Qte和上層圖形化框架兩者倒是一樣,都沒有公布源代碼。不過E680卻拿到了A760(可能是)的上層圖形化的開發包。所以一些興趣愛好者就使用上層圖形庫很容易開發出第三方軟件了(如ezxplayer,抓圖軟件...等)。這些的E680系列軟件從理論上是不能通過簡單的交叉編譯移植過來的,因爲兩者的上層開發包是不一樣的。不過在移植Qte和OPIE等這類軟件,兩者卻是完全一樣的。須要解決的問題就是疑問二中所提到的。

六、寫在最後

最後我只想說一點,現在飛利浦968和夏新E600都可以運行自定義的Shell腳本了。了解Shell腳本的DX應該知道這是一個什麽概念!

七、附

通過執行上面的腳本,獲取夏新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移植軟件的開始
Linux手機DIY.夏新E600和飛利浦968移植軟件的開始草木瓜 2006-10-29一、序 不過幾天的時間,我們已經能獲取夏新E600和飛利浦968的大量內部信息,我曾經考慮過先實現telnet,不過現在我覺得還是應該加快移植第三...查看完整版>>Linux手機DIY.夏新E600和飛利浦968移植軟件的開始
 
Linux手機DIY.夏新E600和飛利浦968初探
Linux手機DIY.夏新E600和飛利浦968初探草木瓜 更新于 2006-10-21一、序 無意中被小葉拉來,協助破解夏新E600的第三方軟件安裝。雖經過衆位兄弟的齊心努力,然至今卻未能取得突破性進展。失敗了無數次,也否定了無數...查看完整版>>Linux手機DIY.夏新E600和飛利浦968初探
 
Linux手機DIY.夏新E600和飛利浦968安裝包專題
一、序 夏新E600和飛利浦968兩者都只識別Linux下tar格式的包文件,Alzip是在Windows下生成tar包的工具,此外還有7-zip工具也是類似的。 現在安裝軟件的唯一入口是在qnes這個原始包上,這顯然對我們擴展第三方軟件帶...查看完整版>>Linux手機DIY.夏新E600和飛利浦968安裝包專題
 
Linux手機DIY.夏新E600和飛利浦968初探
一、序 無意中被小葉拉來,協助破解夏新E600的第三方軟件安裝。雖經過衆位兄弟的齊心努力,然至今卻未能取得突破性進展。失敗了無數次,也否定了無數次設想和可能。一個人的能力有限,所以我想對這幾天的努力作一...查看完整版>>Linux手機DIY.夏新E600和飛利浦968初探
 
Linux手機DIY.夏新E600移植飛利浦968的qnes模擬器
Linux手機DIY.夏新E600移植飛利浦968的qnes模擬器草木瓜 2006-10-26一、序 飛利浦968的Qnes模擬器,不能在夏新E600上運行,這是衆所周知的。自從有了Shell這個入口,自然也清楚不能運行的具體原因!本文就是詳細說...查看完整版>>Linux手機DIY.夏新E600移植飛利浦968的qnes模擬器