深度剖析E680G應用四.徹底解決LM帶來的麻煩

來源:互聯網
上載者:User

深度剖析E680G應用四.徹底解決LM帶來的麻煩

草木瓜 20060826

相關資源下載 http://play.younet.com/view.php?tid=18578

一、前言

  如果你看過以前的三篇文章,再來理解這篇應該是很輕鬆了。這篇文章的目
的就是為了能徹底拋棄L/M給我們帶來的這麼多麻煩!什麼安裝,卸載,改名等等
一併解決,而且只是更改了手機上一個檔案而已。
  在這裡,需要感謝的人很多,起碼要點名兩個人,yan0和Cyph。一位搜集整
理了ezx_flexbit.cfg設定方式,另外一位居然提供了flashkit如此奇妙的工具。
這裡也不得不讚歎www.e680.net是個好去處,flashkit我就是從那裡下載到的。
  實現本文方法,需要telnet到手機,其他的Linux作業系統和flashkit工具。

二、原理

  其實很簡單,在MOTO以前一些機子上就可以直接安裝管理MPKG程式,只是在E680系列版
本中居然被屏蔽了,不過幸好大家發現功能的開關就在ezx_flexbit.cfg這個檔案中。
  不過ezx_flexbit.cfg這個檔案有兩個,如下:
  /usr/setup/ezx_flexbit.cfg
  /ezxlocal/download/appwrite/setup/ezx_flexbit.cfg
  
  先詳細說一下ezx_flexbit.cfg這個檔案的原理。
  
  我們先開啟/ezxlocal/download/appwrite/setup/ezx_flexbit.cfg這個檔案,
(這是我E680G,未進行任何刷機修改的內容)內容如下:

  [SYS_FLEX_TABLE]
  0 = 1208211392
  1 = 374437888
  2 = 2178351491
  3 = 1678589
  4 = 4289465088
  5 = 195198976
  
  這裡的每行對應了32位二進位的數值,只是顯示成10進位了,我們轉換一下,
不足32位的在左端加0,並且4位一組加上序號,內容如下:

  A    B    C    D    E    F    G    H
  
0   0100 1000 0000 0011 1101 0111 1100 0000   0 = 1208211392
1   0001 0110 0101 0001 0111 1000 0000 0000   1 = 374437888
2   1000 0001 1101 0111 0000 0001 1000 0011   2 = 2178351491
3   0000 0000 0001 1001 1001 1100 1111 1101   3 = 1678589
4   1111 1111 1010 1100 0000 1011 0000 0000   4 = 4289465088
5   0000 1011 1010 0010 1000 0000 0000 0000   5 = 195198976
  
  可以自已轉換一下,看看結果是不是一致,加深下理解。這裡每個0或1都表示
一個功能的關閉與開啟。這裡只選出意義比較重大的功能開關。

  ◆3行C組第1位
  
  開啟USB網的菜單,手機設定-USB模式裡會出現USB網,這種模式串連電腦即可
直接Telnet。
  這裡顯然沒有開啟!
 
  ◆3行F組第1位

  手機上網有“可能要收取額外的通話費用,繼續嗎”的提示,此為手機Opera上網
的提示,不是JAVA上網出現的提示。
  這裡已經開啟!
  
  ◆4行D組第4位
  
  照相機設定裡,快門聲音裡出現靜音的選項。
  這裡沒有開啟!
  
  ◆4行E組第1位
  拍照後,手機會出現是否儲存的提示。
  這裡沒有開啟!
 
  ◆5行A組第3位
  開啟手機支援MPKG軟體的安裝功能。
  極度重要,這個小小的1,0給我們E680g使用者造成了極大的麻煩!這裡沒有開啟!
    
  很遺憾,我們能隨意修改的/ezxlocal下的那個檔案是沒有用的,系統只去找
/usr/setup/ezx_flexbit.cfg這個檔案。然想改這個/usr/setup/ezx_flexbit.cfg
似乎比登天還難!我telent進手機,使出渾身懈數也搞不定,後來發現mount可以起
作用。然重啟肯定就恢複以前模樣了!

  我們先做個小小的實驗!先修改/ezxlocal的ezx_flexbit.cfg內容,就只加上
MPKG和USB網的兩項功能,(3行C組第1位,5行A組第3位)更改後,把對應位元值
轉換為十進位。顯示的檔案內容如下:

  A    B    C    D    E    F    G    H
  
0   0100 1000 0000 0011 1101 0111 1100 0000   0 = 1208211392
1   0001 0110 0101 0001 0111 1000 0000 0000   1 = 374437888
2   1000 0001 1101 0111 0000 0001 1000 0011   2 = 2178351491
3   0000 0000 1001 1001 1001 1100 1111 1101   3 = 10067197   *修改
4   1111 1111 1010 1100 0000 1011 0000 0000   4 = 4289465088
5   0010 1011 1010 0010 1000 0000 0000 0000   5 = 732069888  *修改

  我們修改後的ezx_flexbit.cfg檔案內容如下:
  
  [SYS_FLEX_TABLE]
  0 = 1208211392
  1 = 374437888
  2 = 2178351491
  3 = 10067197
  4 = 4289465088
  5 = 732069888
  
  覆蓋手機上/ezxlocal/download/appwrite/setup/ezx_flexbit.cfg檔案,
你去設定裡看USB模式,會發現毫無變化!這時在telnet下輸入以下命令:
mount --bind /ezxlocal/download/appwrite/setup/ezx_flexbit.cfg /usr/setup/ezx_flexbit.cfg
  再去看USB模式,就會發現多了一項--USB網,隨便複製個mpkg安裝檔案,
沒有問題!可以象java一樣安裝卸載,應用程式名稱也可以去見鬼了!我們已經
看到了這個檔案的效果,不過重啟之後,一切又恢複原樣!

  我曾經想過,能不能把這個命令在手機下運行,這樣大不了我每次開機點一
下,然卻發現運行手機系統的是ezx使用者,是絕對不支援mount命令的。這裡附帶
一句,如果那位能簡單實現修改這個檔案的方法,一定要告知!

三、方法

  方法就是絕對要修改這個檔案,這裡使用了flashkit工具,向唯讀flash寫
入新檔案。兼中文說明,大家可以去看一下。
  http://club.ccmove.com/nclub/topicdisplay.aspx?pageno=1&boardid=1189&topicid=257967
  
  我的做法(也有一部分複述上面貼子的內容):
  
  1.telnet進手機,執行命令:
  tar zcvf /mmc/mmca1/setup.tar.gz /usr/setup
    
  說明:
    這裡是把整個/usr/setup下檔案打包到卡上,為了是在別的Linux下用
  mkfs.cramfs製作cramfs檔案,然後用flashkit重寫。也可以不壓縮直接
  tar cvf都是一樣的。不明白可以查看linux,tar的用法。
  

  2.複製setup.tar.gz到Linux系統下,執行解壓縮命令:
  mkdir moto
  cd moto
  tar zxvf setup.tar.gz 
  這時會出現很多警告,不要緊,執行完畢後會自動建立檔案夾。
  
  說明:
    我使用的是虛擬機器安裝的RedHat Linux,通過mount -t smbfs -o
  username=administrator,password=yiming,ip=192.168.98.166 -l
  //LW/MotoShare /home/root/windows 訪問Windows的完全共用資料夾MotoShare,
  在Linux,Windows下都可以進行操作。
  (本機名LW,IP為192.168.98.166,MotoShare是我的共用資料夾,使用者名稱密碼就
  不用說了。)

  3.修改usr/setup裡的ezx_flexbit.cfg檔案,可以根據個人喜好修改。
  
  4.在建立的moto檔案夾下,使用mkfs.cramfs進行打包,執行命令:
  mkfs.cramfs usr/setup liwei.cramfs
  
  說明:
    有前輩云:使用mkfs.cramfs進行打包,不是mkcramfs,否則不能telnet。
  有興趣的可以去驗證下!這裡的mkfs.cramfs只能打包檔案夾。所以只好覆蓋
  setup下所有檔案了。 
  
  注意:以下內容在flashkit內建的ReadMe有詳細的英文說明,英文好的切莫錯過!
  
  5.把flashkit.zip解壓的檔案夾flashkit複製到/mmc/mmca1下,注意裡面內容
  最好不要改,把liwei.cramfs也複製到/mmc/mmca1下。
  
  6.因為這裡採用的是USB方法Telnet的,把USB線拔掉。

  7.用loader關聯運行/mmc/mmca1/flashkit/rwflash.lin,注意目錄,你可以查
  看下rwflash.lin的內容,就明白了。

  8.將電話閑置30秒以上,長點也沒事,我這裡讓他閑置了1分鐘。
  (Leave the phone alone and wait. When the screen blanks out wait 30secs
   longer, there's a good chance the phone entered low power mode.)

  9.重新插USB然後telnet進手機,執行命令
  cat /proc/rwflash_status
    如果顯示為"unlocked"代表成功,顯示locked需要重新回到6,拔掉閑置~直到顯示
    unlocked,如果長時間依然是locked,關機開機,從步驟6再開始!

  10.確認顯示unlocked,執行cd /mmc/mmca1/flashkit 進入目錄執行 ./start.sh
  這時候telnet會斷掉而且電話幾乎所有功能會被Kill,任你怎麼搞手機,也是無濟
  於事!但是有幾個進程還在,比如mmcsdapp,這樣你依然可以看到你卡上的所有內
  容!

  11.在Windows命令列下telnet 169.254.142.2 10000,用10000這個連接埠telnet。
  輸入root,這時就進行了flashkit虛擬shell中,可以正常操作。

  12. cat /proc/mtd 會包含類似以下內容,忘了複製我的螢幕了,這裡用intoxicated
  的,都差不多。不過我的e680g是六行記錄。
   mtd4: 000e0000 00020000 "R/W Kernel
    mtd5: 018e0000 00020000 "R/W RootFS    (CG33)
    mtd6: 00020000 00020000 "R/W Setup"    (CG36)
    mtd7: 00020000 00020000 "R/W Logo"     (CG37)
    R/W代表可以寫入,我們需要做得就是覆蓋 mtd6: 00020000 00020000 "R/W Setup"
    (當然,通過這個方法也可以覆蓋mtd5,mtd7對應內容。)
   
  13.輸入命令
    flashcp -v /mmc/mmca1/liwei.cramfs /dev/mtd6

  14.執行完畢,拆掉電池,斷電重新開機,L/M問題便徹底解決了!
  
  對於不能mkfs.cramfs的朋友,這裡提供了我用過的打包檔案,可以去友人網下載。

四、小結

  如果你細心看過,現在肯定比較爽了~
  我隨手安裝了個mp3播放器,安裝MPKG軟體的路徑是/mmc/mmca1/.system/
QTDownLoad。這是裝在卡上的路徑,顯然沒有必要把MPKG軟體裝在手機上。同樣系
統也會修改/mmc/mmca1/.system/java/PlugCardDB,配置資訊如下
  
  [AppLinkRecord100000033]
  AllPosition = 39
  BigIcon = icon.png
  Directory = mp3player
  Exec = mp3player
  Group = 4
  Icon = icon_sm.png
  InstalledDate = 2006/9/1
  JavaId = -1
  Mime =
  MpkgFile = /mmc/mmca1/19425526.mpkg
  Name = EQ??-???
  OsVersion = 1.1
  Position = 5
  Rotation =
  Shared = 2
  Size = 1455K
  Type = 4
  uid = 100000033
  
  注意到這裡的Type=4,我們Type=2時,絕對是顯示“應用程式名稱”的,Type=5是
Java軟體,如果手機不支援MPKG,Type=4的應用程式雖然能顯示名稱,但卻無法
執行的。
  
  這時,你就可以下載一個mpkgKit.exe改名程式。(其實就是修改設定檔的
Name對應值,不過你用普通工具查看時,中文是亂碼)去隨意更改安裝軟體的名稱
了,表徵圖就更不用說了。這樣需要提一下mpkgKit.exe這個工具,最好不要讓它
去直接改手機的內容,速度比較慢,而且改了之後,本次telnet速度也慢了。解
決方法就是複製到電腦上,用mpkgKit.exe改完再複製回去。

  還有關於XXX.desktop這個檔案,只是在MPKG安裝時由系統讀取罷了,安裝就
沒有任何作用了,更改表徵圖名稱只需修改PlugCardDB這個設定檔。

五、徹底解決LM後,我對於MPKG的管理方法,供大家參考。

  PlugCardDB檔案的有關配置資訊。
  
  [AppLinkRecord100000001]
  AllPosition =
  BigIcon = liwei.png
  Directory = ../../../../mmc/mmca1/soft/liwei
  Exec = liwei
  Group = 4
  Icon = liwei.png
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name = è????????è??      #指令碼載入
  OsVersion =
  Position = 17
  Rotation =
  Shared = 0
  Size =
  Type = 4
  uid = 100000001
  
  
  [AppLinkRecord100000002]
  AllPosition =
  BigIcon = app.png
  Directory = ../../../../mmc/mmca1/soft/shortcuts
  Exec = app.sh
  Group = 4
  Icon = app.png
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name = ?o???¨??????     #應用綜合
  OsVersion =
  Position =
  Rotation =
  Shared = 0
  Size =
  Type = 4
  uid = 100000002
  
  
  [AppLinkRecord100000003]
  AllPosition =
  BigIcon = game.png
  Directory = ../../../../mmc/mmca1/soft/shortcuts
  Exec = game.sh
  Group = 4
  Icon = game.png
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name = ????????????    #遊戲綜合
  OsVersion =
  Position =
  Rotation =
  Shared = 0
  Size =
  Type = 4
  uid = 100000003
  
  
  [AppLinkRecord100000004]
  AllPosition =
  BigIcon = player.png
  Directory = ../../../../mmc/mmca1/soft/shortcuts
  Exec = player.sh
  Group = 4
  Icon = player.png
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name = ?a??????????   #媒體綜合
  OsVersion =
  Position =
  Rotation =
  Shared = 0
  Size =
  Type = 4
  uid = 100000004
  
  
  /mmc/mmca1/soft/liwei/liwei的內容
  
  #!/bin/bash
  exec $2 &
  
  /mmc/mmca1/soft/shortcuts/app.sh的內容
  
  #!/bin/bash
  export QTDIR=/usr/lib/ezx
  export LD_LIBRARY_PATH=$QTDIR/lib
  export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
  export MYSTUFF_DATA_PATH=/mmc/mmca1/exe/app
  
  chmod 444 $MYSTUFF_DATA_PATH
  cd /usr/SYSqtapp/mystuff
  ./mystuff
  chmod 777 $MYSTUFF_DATA_PATH
  
  其他幾個sh都差不多,只是路徑不同罷。而這些路徑就是存放一些MPKG
的運行指令碼。這樣做的目的,就是考慮菜單資源有限。當然你如果有能力完
全可以自已在菜單做個更漂亮的控制台,比起來這裡的方法要簡單多了。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.