一、前言
如果你看过以前的三篇文章,再来理解这篇应该是很轻松了。这篇文章的目的就是为了能彻底抛弃L/M给我们带来的这么多麻烦!什么安装,卸载,改名等等一并解决,而且只是更改了手机上一个文件而已。
在这里,需要感谢的人很多,起码要点名两个人,yan0和Cyph。一位搜集整理了ezx_flexbit.cfg设置方式,另外一位居然提供了flashkit如此奇妙的工具。
这里也不得不赞叹www.e680.net是个好去处,flashkit我就是从那里下载到的。
实现本文方法,需要telnet到手机,其他的Linux操作系统和flashkit工具。
二、原理
其实很简单,在E680上就可以直接安装管理MPKG程序,只是在E680i,E680g版本中居然被屏蔽了,不过幸好大家发现功能的开关就在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的内容,就明白了。