一、寫在前面的話 E680G,已不能簡單理解為手機,而是一臺實實在在運行Linux操作系統(tǒng)的個人掌 上電腦! 本文試圖通過探討E680G操作系統(tǒng)的架構,打造個人PDA,擴展其強勁的功能。 由于本人也剛接觸E680G不久,再加上Linux知識空白,文章深度也許還遠遠不能達 到分析Linux內核源碼的層次,所以我加上了應用二字,足以說明是面向廣大普通用戶的。 對大多數(shù)人來講擴展應用軟件才是主要的內容。 此外本文所涉及內容皆不需要進行刷機,這對新手來說更容易接受罷。 二、進入正題 進入正題前還想說幾句廢話:首先,那就是砸鍋賣鐵也得要買塊擴展卡來,最好是 1G的,否則就那點手機內存空間也沒有玩的必要了!其次,說明書必須認真閱讀,基本 操作都不知道,又如何談得上玩轉? 三、探究Loader A.安裝程序 只要你上了E680論壇,你可以看幾乎無所不在的L/M!說實話,Loader只不過是別人 寫的一個簡單腳本,幾行代碼而已??蓪側胧諩680g的人來說是很神秘的,純粹去研究 Loader也沒有意義,然在我們一步一步探個究竟的過程中,你會發(fā)現(xiàn)自已的DIY能力卻提 高了很多。 Loader的安裝程序有兩種,一種安裝在手機,另一種安裝在卡上。一般是個mtf文件 如:Loader_E680i_phone.mtf(手機) Loader_E680i_SD.mtf(SD卡)。 擴展名為mtf的文件可以直接被E680g執(zhí)行。(再廢話點,復制到手機或者卡上點下該 mtf文件就可以執(zhí)行了。) mtf文件的本質是linux下tar包的壓縮文件!不明白不要緊,可以將上面文件下改名 為Loader_E680i_SD.tar.gz ,用winrar解壓縮,就可以看到一些文件。(有興趣可以 看下Linux下tar,gunzip等相關shell命令的用法,那樣就會更清楚了。) 不管你是從哪里下載的Load安裝程序,這個目錄結構肯定都是一樣的! 如果mtf在E680G下運行,就是直接解壓縮到手機Linux操作系統(tǒng)環(huán)境下的對應路徑。 用卡版的Loader_E680i_SD.tar.gz為例,它其實就是解壓成如下文件: /mmc/mmca1/.system/java/PlugCardDB /diska/.system/QTDownLoad/loader/loader.desktop /diska/.system/QTDownLoad/loader/loader.lin /diska/.system/QTDownLoad/loader/loader.gif /diska/.system/QTDownLoad/loader/loader_sm.gif 手機版Loader_E680i_phone.tar.gz路徑肯定是有所不同的,以下是手機版解壓的對 應文件: /ezxlocal/download/appwrite/am/InstalledDB /diska/.system/QTDownLoad/loader/loader.desktop /diska/.system/QTDownLoad/loader/loader.lin /diska/.system/QTDownLoad/loader/loader.gif /diska/.system/QTDownLoad/loader/loader_sm.gif 可以看出卡版和手機版的唯一區(qū)別是有個DB不同! 在E680G上也存在這兩個文件,PlugCardDB和InstalledDB,存放外部程序(系統(tǒng)自 帶游戲,自戶安裝的軟件)的配置信息。PlugCardDB存放安裝在卡里的程序信息,而 InstalledDB存放安裝在手機里的程序信息。 在E680G開機或者更改菜單順序時會讀取這兩個DB文件來刷新菜單顯示。這兩個文 件都是文本格式,可以用UltraEdit打開。 B.配置文件 我們先打開Loader安裝程序的這兩個文件,會發(fā)現(xiàn)InstalledDB除了一項關于Loader 的配置內容還有其他一些內容,而PlugCardDB只有一項關于Loader的配置內容。這是因 為做安裝包的人已經把手機自帶的游戲配置信息也寫到InstallDB里了。 以下是卡安裝版的Loader配置信息(PlugCardDB),手機版的Loader配置信息也差不 多的。 [AppLinkInfo] AppLinkCount = 100000001 [AppLinkRecord100000001] AllPosition = BigIcon = loader.gif Directory = ../../../../diska/.system/QTDownLoad/loader Exec = loader.lin Group = 5 Icon = loader_sm.gif InstalledDate = JavaId = -1 Mime = MpkgFile = Name = Loader OsVersion = Position = 17 Rotation = Shared = 0 Size = 10K Type = 2 uid = 100000001 [MimeInfo] MimeCount = 100000000 你可以去你手機卡上看到這個PlugCardDB文件,親自對比一下。不過如果你還 是新手還不會telnet的話,那樣也沒關系。大容量模式連接電腦,可以在卡那個盤 符,路徑為.system/java/下找到PlugCardDB文件。 下面我們列表詳細說明下這個配置文件的主要內容。 AppLinkCount = 100000001 安裝的程序最大序號 AppLinkRecord100000001,uid = 100000001 應用程序的安裝序號,不重復即可。 Directory 應用程序所在路徑。 BigIcon = loader.gif,Icon = loader_sm.gif 應用程序顯示在菜單上的大圖標和小圖標。 Exec 所執(zhí)行的應用程序或腳本 JavaId 如果是Java程序 則為正值,否則為-1 Group =5 前4個是手機系統(tǒng)的Group,5,6是自定一,自定二 Position,AllPosition 顯示在菜單上的順序 Name 應用程序名稱 Type 內容很重要,下面詳細說明。 系統(tǒng)指定Java程序Type=5,其他應用程序Type=2。(你也可以設為0,3,4,6至于效 果可以自行嘗試。)這里需要著重說明的是,Type=2時Directory的路徑需要回退到頂 級目錄,前面須要加../../../../,因為兩個DB文件都是在四級目錄以下,否則系統(tǒng) 不能識別。這里還有個著名的問題,就是當Type=2時,系統(tǒng)不管配置信息如何,菜單 全部顯示“應用名稱”!讓人比較郁悶。這問題雖然可以通過刷機解決,然而卻是沒有 太大意義,因為就裝MPKG的本身而言,其實也沒什么必要。(后面會詳細說明) C.Loader小結 讀到這里,我們可以得出清晰的結論:所謂Loader的安裝過程,只是把loader這 個文件夾復制到手機的某個目錄,同時覆蓋掉InstallDB(手機版)或者PlugCardDB(卡版) 文件,即把這個目錄程序的配置信息加到DB文件中。 所以在安裝后,自己安裝的JAVA軟件肯定不在了,在InstallDB或者PlugCardDB已經 沒有了那些軟件的配置信息了。 Loader根本沒有必要裝在手機上!可以完全拋棄mtf安裝的方法,直接復制Loader文 件夾至卡的任一路徑。(記住要是標準路徑,不是你大容量的路徑。配好telnet,或者裝個 Qonsole一下就清楚了。)在PlugCardDB文件中手工加入配置信息即可。 D.Loader是什么 那么我們?yōu)槭裁匆bLoader,他有什么用。UltraEdit打開loader.lin文件看下。 熟悉Linux的一看就知道,太簡單了!只是普通的一個Shell腳本,而起作用的就是 exec這句話。比如用test.sh用Loader關聯(lián)打開,系統(tǒng)Shell啟動Loader,執(zhí)行到exec時, 就相當于exec test.sh。(如果不明白可以查看下Linux下相關Shell的腳本介紹。) 按理來說,在Linux在執(zhí)行這種腳本是天經地義的事,只不過在E680g圖形化界面下 是不能直接運行的。 那怎么辦?下面通過自定義Loader例子說明。 你隨便寫個腳本test.sh如下: #!/bin/bash cd /usr/SYSqtapp/mystuff ./mystuff 這個是啟動系統(tǒng)收藏夾的命令。再寫個test.load腳本: #!/bin/bash exec "$2" & 在卡上建個文件夾如/mmc/mcal1/test,把test.sh,test.load兩個腳本復制過去, 先在手機上點擊test.sh,肯定會顯示找不到可執(zhí)行的程序,這時在PlugCardDB配置 信息加上如下內容: [AppLinkRecord100000001] AllPosition = BigIcon = Directory = ../../../../mmc/mmca1/test Exec = test.load Group = Icon = InstalledDate = JavaId = -1 Mime = MpkgFile = Name = OsVersion = Position = Rotation = Shared = 0 Size = Type = 2 uid = 100000001 (注:依情況更改AppLinkCount和AppLinkRecord,上面配置略去了很多次要內容, 只保留必要的。) 保存后,更改下菜單的順序,會發(fā)現(xiàn)有個感嘆號的應用程序,不用管他,那是因為 我們沒有指定菜單的圖標!這時選擇test.sh,然后用那個感嘆號的應用程序打開,就會 發(fā)現(xiàn)成功打開了收藏夾!我們自已的Loader也成功了! 看到這里,Loader的本質想必應該十分清楚了吧。 五、結束 理解的本文的Loader,再講MPKG,就簡單多了。下一篇主要分析MPKG的相關軟件。
killall 眼高手低 用心浮躁 淺嘗輒止
|