一、前言
如果你看過以前的三篇文章,再來理解這篇應(yīng)該是很輕松了。這篇文章的目的就是為了能徹底拋棄L/M給我們帶來的這么多麻煩!什么安裝,卸載,改名等等一并解決,而且只是更改了手機上一個文件而已。
在這里,需要感謝的人很多,起碼要點名兩個人,yan0和Cyph。一位搜集整理了ezx_flexbit.cfg設(shè)置方式,另外一位居然提供了flashkit如此奇妙的工具。
這里也不得不贊嘆www.e680.net是個好去處,flashkit我就是從那里下載到的。
實現(xiàn)本文方法,需要telnet到手機,其他的Linux操作系統(tǒng)和flashkit工具。
二、原理
其實很簡單,在E680上就可以直接安裝管理MPKG程序,只是在E680i,E680g版本中居然被屏蔽了,不過幸好大家發(fā)現(xiàn)功能的開關(guān)就在ezx_flexbit.cfg這個文件中。 不過ezx_flexbit.cfg這個文件有兩個,如下:
/usr/setup/ezx_flexbit.cfg
/ezxlocal/download/appwrite/setup/ezx_flexbit.cfg
先詳細(xì)說一下ezx_flexbit.cfg這個文件的原理。
我們先打開/ezxlocal/download/appwrite/setup/ezx_flexbit.cfg這個文件,(這是我E680g,未進(jìn)行任何刷機修改的內(nèi)容)內(nèi)容如下:
[SYS_FLEX_TABLE]
0 = 1208211392
1 = 374437888
2 = 2178351491
3 = 1678589
4 = 4289465088
5 = 195198976
這里的每行對應(yīng)了32位二進(jìn)制的數(shù)值,只是顯示成10進(jìn)制了,我們轉(zhuǎn)換一下,不足32位的在左端加0,并且4位一組加上序號,內(nèi)容如下:
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
可以自已轉(zhuǎn)換一下,看看結(jié)果是不是一致,加深下理解。這里每個0或1都表示一個功能的關(guān)閉與開啟。這里只選出意義比較重大的功能開關(guān)。
◆3行C組第1位
開啟USB網(wǎng)的菜單,手機設(shè)置-USB模式里會出現(xiàn)USB網(wǎng),這種模式連接電腦即可
直接Telnet。
這里顯然沒有開啟!
◆3行F組第1位
手機上網(wǎng)有“可能要收取額外的通話費用,繼續(xù)嗎”的提示,此為手機Opera上網(wǎng)的提示,不是JAVA上網(wǎng)出現(xiàn)的提示。 這里已經(jīng)開啟!
◆4行D組第4位
照相機設(shè)置里,快門聲音里出現(xiàn)靜音的選項。
這里沒有開啟!
◆4行E組第1位
拍照后,手機會出現(xiàn)是否保存的提示。
這里沒有開啟!
◆5行A組第3位
開啟手機支持MPKG軟件的安裝功能。 極度重要,這個小小的1,0給我們E680g用戶造成了極大的麻煩!這里沒有開啟!
很遺憾,我們能隨意修改的/ezxlocal下的那個文件是沒有用的,系統(tǒng)只去找/usr/setup/ezx_flexbit.cfg這個文件。然想改這個/usr/setup/ezx_flexbit.cfg似乎比登天還難!我telent進(jìn)手機,使出渾身懈數(shù)也搞不定,后來發(fā)現(xiàn)mount可以起作用。然重啟肯定就恢復(fù)以前模樣了!
我們先做個小小的試驗!先修改/ezxlocal的ezx_flexbit.cfg內(nèi)容,就只加上MPKG和USB網(wǎng)的兩項功能,(3行C組第1位,5行A組第3位)更改后,把對應(yīng)二進(jìn)制數(shù)值轉(zhuǎn)換為十進(jìn)制。顯示的文件內(nèi)容如下:
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文件內(nèi)容如下:
[SYS_FLEX_TABLE]
0 = 1208211392
1 = 374437888
2 = 2178351491
3 = 10067197
4 = 4289465088
5 = 732069888
覆蓋手機上/ezxlocal/download/appwrite/setup/ezx_flexbit.cfg文件,你去設(shè)置里看USB模式,會發(fā)現(xiàn)毫無變化!這時在telnet下輸入以下命令:
mount --bind /ezxlocal/download/appwrite/setup/ezx_flexbit.cfg /usr/setup/ezx_flexbit.cfg
再去看USB模式,就會發(fā)現(xiàn)多了一項--USB網(wǎng),隨便復(fù)制個mpkg安裝文件,沒有問題!可以象java一樣安裝卸載,應(yīng)用名稱也可以去見鬼了!我們已經(jīng)看到了這個文件的效果,不過重啟之后,一切又恢復(fù)原樣!
我曾經(jīng)想過,能不能把這個命令在手機下運行,這樣大不了我每次開機點一下,然卻發(fā)現(xiàn)運行手機系統(tǒng)的是ezx用戶,是絕對不支持mount命令的。這里附帶一句,如果那位能簡單實現(xiàn)修改這個文件的方法,一定要告知!
三、方法
方法就是絕對要修改這個文件,這里使用了flashkit工具,向只讀的flash寫入新文件。下載地址兼中文說明,大家可以去看一下。
http://club.ccmove.com/nclub/topicdisplay.aspx?pageno=1&boardid=1189&topicid=257967
我的做法(也有一部分復(fù)述上面貼子的內(nèi)容):
1.telnet進(jìn)手機,執(zhí)行命令:
tar zcvf /mmc/mmca1/setup.tar.gz /usr/setup
說明:
這里是把整個/usr/setup下文件打包到卡上,為了是在別的Linux下用 mkfs.cramfs制作cramfs文件,然后用flashkit重寫。也可以不壓縮直接 tar cvf都是一樣的。不明白可以查看linux,tar的用法。
2.復(fù)制setup.tar.gz到Linux系統(tǒng)下,執(zhí)行解壓縮命令:
mkdir moto
cd moto
tar zxvf setup.tar.gz
這時會出現(xiàn)很多警告,不要緊,執(zhí)行完畢后會自動建立文件夾。
說明:
我使用的是虛擬機安裝的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下都可以進(jìn)行操作。
(本機名LW,IP為192.168.98.166,MotoShare是我的共享文件夾,用戶名密碼就
不用說了。)
3.修改usr/setup里的ezx_flexbit.cfg文件,可以根據(jù)個人喜好修改。
4.在建立的moto文件夾下,使用mkfs.cramfs進(jìn)行打包,執(zhí)行命令:
mkfs.cramfs usr/setup liwei.cramfs
說明:
有前輩云:使用mkfs.cramfs進(jìn)行打包,不是mkcramfs,否則不能telnet。 有興趣的可以去驗證下!這里的mkfs.cramfs只能打包文件夾。所以只好覆蓋 setup下所有文件了。
注意:以下內(nèi)容在flashkit自帶的ReadMe有詳細(xì)的英文說明,英文好的切莫錯過!
5.把flashkit.zip解壓的文件夾flashkit復(fù)制到/mmc/mmca1下,注意里面內(nèi)容 最好不要改,把liwei.cramfs也復(fù)制到/mmc/mmca1下。
6.因為這里采用的是USB方法Telnet的,把USB線拔掉。
7.用loader關(guān)聯(lián)運行/mmc/mmca1/flashkit/rwflash.lin,注意目錄,你可以查看下rwflash.lin的內(nèi)容,就明白了。