可能现在大家都刷机了吧,没有刷机的可能很少了。不过可能还有部分朋友由于一些原因没有刷机,这个方法就是为你准备的。
思路是把mpkg文件分成两个部分,一个是新的mpkg包,另一个是放到sd卡上的mtf包。mpkg、mtf文件都是tar.gz格式的,是使用tar gzip混合压缩的,一般压缩率在50%或者更低。如果mpkg文件大小在2M,那么解压缩后可能在4、5Mb左右,装几个这种文件手机的20M可用内存就不够了,所以mpkg文件要进行修改,修改后的mpkg软件、游戏,每个mpkg几乎只占用手机内存的4到5k的空间,安装多少个mpkg文件都无所谓了。mpkg的文件在windows上可以通过winrar解压,但是没有办法再压缩成tgz格式(我没有在网上找到这样的软件),所以需要linux的shell环境来压缩,打建linux的shell环境的方法很多,一个是安装linux系统,另外一个是安装vwware虚拟机,还有就是安装cygwin的模拟linux环境。手机上解压缩的mpkg包是放到/diska/.system/QTDownload/目录下,而mtf是根据包内的绝对路径解压缩的,所以修改的思路就是把原有mpkg包解压后分成两部分,一个是mpkg包,包含.destop、.lin和.png文件,主要是用来引导mtf包中的核心程序;另外一个是mtf包,包含其余的文件,有核心的程序文件,和一些资源文件。拿mp3player.mpkg文件来说,原包中是这个样子:.mp3player.mp3playerCOPYING.mp3playerequalizer.conf.mp3playericon.png.mp3playericon_sm.png.mp3playermp3player.mp3playermp3player.conf.mp3playermp3player.desktop.mp3playermp3player.pl.mp3playerREADME.mp3playerskins.mp3playerskinsDenon Antique.png.mp3playerskinsNucleo N-Log v2G.png.mp3playerskinsPioneer Wood.png.mp3playerskinsWinamp X.png.mp3playerzh-cn.qm mpkg包中要改的就是原包中.destop文件“Exec=”后指明的那个文件,它是用来调用主程序文件的。mp3player包中.destop文件内容如下:
[Desktop Entry]BigIcon=icon.pngComment=MP3 Player for E680iExec=mp3playerIcon=icon_sm.pngName=MP3PlayerVersion=0.1OsVersion=1.1Shared=2Type=Application
要修改的就是“Exec=”后指明的那个文件。一般情况下这个文件应该是.lin文件,是个脚本文件,但是此包中是个二进制文件,其实就是主程序文件,不能修改,所以我们要添加一个mp3player.lin文件,用它来启动主程序,从而把主程序放到sd卡上,内容如下:#!/bin/shcd /mmc/mmca1/.system/QTDownLoad/mp3player./mp3player 这是脚本文件中,第一行表示用/bin/sh文件来解释执行这个脚本,第二行表示进入/mmc/mmca1/.system/QTDownLoad/mp3player目录,第三行就是执行当前目录下的mp3player文件。而.destop文件中也要做相应的修改,“Exec=mp3player”改为“Exec=mp3player.lin”。可能其他mpkg文件内容不同,大概的方法都是类似的,可以自己尝试。接下来说一下如何打包。在shell的命令行下,建立mp3player目录:
mkdir mp3player
把.png、.destop、.lin放到mp3player目录下,在mp3player目录外执行tar zcvf mp3player.mpkg mp3player这是把mp3player目录打包为mp3player.mpkg文件。其余文件放到mmc/mmca1/.system/QTDownLoad/mp3player下,建立方法:
mkdir -p mmc/mmca1/.system/QTDownLoad/mp3player
在目录外执行 tar zcvf mp3player.mtf mmc/mmca1/.system/QTDownLoad/mp3player这是把mmc/mmca1/.system/QTDownLoad/mp3player打包为mp3player.mtf修改完毕。修改后的mpkg包:mp3playermp3playericon.pngmp3playericon_sm.pngmp3playermp3player.desktopmp3playermp3player.lin修改后的mtf包:mmcmmca1.systemQTDownLoadmp3playermmcmmca1.systemQTDownLoadmp3playerCOPYINGmmcmmca1.systemQTDownLoadmp3playerREADMEmmcmmca1.systemQTDownLoadmp3playerequalizer.confmmcmmca1.systemQTDownLoadmp3playermp3player.confmmcmmca1.systemQTDownLoadmp3playerskinsmmcmmca1.systemQTDownLoadmp3playerskinsDenon Antique.pngmmcmmca1.systemQTDownLoadmp3playerskinsNucleo N-Log v2G.pngmmcmmca1.systemQTDownLoadmp3playerskinsPioneer Wood.pngmmcmmca1.systemQTDownLoadmp3playerskinsWinamp X.pngmmcmmca1.systemQTDownLoadmp3playerskinsNatalie Bottome.pngmmcmmca1.systemQTDownLoadmp3playerskinsblack.pngmmcmmca1.systemQTDownLoadmp3playerskinscar.pngmmcmmca1.systemQTDownLoadmp3playerskinsclassical.pngmmcmmca1.systemQTDownLoadmp3playerskinsdark blue.pngmmcmmca1.systemQTDownLoadmp3playerskinsdragon.pngmmcmmca1.systemQTDownLoadmp3playerskinsflame.pngmmcmmca1.systemQTDownLoadmp3playerskinsgreen.pngmmcmmca1.systemQTDownLoadmp3playerskinssea.pngmmcmmca1.systemQTDownLoadmp3playerzh-cn.qmmmcmmca1.systemQTDownLoadmp3playermp3player.plmmcmmca1.systemQTDownLoadmp3playermp3player 可以看到mtf包中文件的路径已经变成了mmcmmca1.systemQTDownLoadmp3player,这个路径就是绝对路径,只有这样,mtf包才能正常解压缩。