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

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

來源:互聯網網民  2008-12-28 02:16:17  評論

一、序

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

...

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
一、序 夏新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 ...
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有