如何修改mpkg格式的文件

可能现在大家都刷机了吧,没有刷机的可能很少了 。不过可能还有部分朋友由于一些原因没有刷机,这个方法就是为你准备的 。
思路是把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文件内容如下:
【如何修改mpkg格式的文件】[Desktop Entry]
BigIcon=icon.png
Comment=MP3 Player for E680i
Exec=mp3player
Icon=icon_sm.png
Name=MP3Player
Version=0.1
OsVersion=1.1
Shared=2
Type=Application
要修改的就是“Exec=”后指明的那个文件 。一般情况下这个文件应该是.lin文件,是个脚本文件,但是此包中是个二进制文件,其实就是主程序文件,不能修改,所以我们要添加一个mp3player.lin文件,用它来启动主程序,从而把主程序放到sd卡上,内容如下:
#!/bin/sh
cd /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包:
mp3player
mp3playericon.png
mp3playericon_sm.png
mp3playermp3player.desktop
mp3playermp3player.lin

修改后的mtf包:
mmcmmca1.systemQTDownLoadmp3player
mmcmmca1.systemQTDownLoadmp3playerCOPYING
mmcmmca1.systemQTDownLoadmp3playerREADME

推荐阅读