深度剖析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
的运行脚本。这样做的目的,就是考虑菜单资源有限。当然你如果有能力完
全可以自已在菜单做个更漂亮的控制面板,比起来这里的方法要简单多了。

深度剖析E680G应用四.彻底解决LM带来的麻烦相关推荐

  1. 深度剖析E680G开发四.移植OPIE操作系统(中)-交叉编译Qte

    一.前言         虽然是E680系列的开发环境,其实就是嵌入式方面的知识.在上文详细了解了 E680g系统结构,图形化发展历程,到这篇文章就要实实在在去做了.     最早移植成功的是一位外国 ...

  2. 深度剖析E680G开发三.移植OPIE操作系统(上)

    深度剖析E680G开发三.移植OPIE操作系统(上) 草木瓜 20060918 一.前言         凡事我图写的文章,往往比较内容纵深,范围却很窄,注重实际操作.原因 很简单,水平有限,还达不到 ...

  3. 深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE

    深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE 草木瓜 20060930 一.前言               这是最后的内容,然而却有很大的遗憾,如果运行OPIE,但E68 ...

  4. 深度剖析E680G应用三.目录结构

    深度剖析E680G应用三.目录结构 草木瓜 相关资源下载 http://play.younet.com/view.php?tid=18578 一.前言 本文主要介绍E680g系统应用相关的重要文件和目 ...

  5. 深度剖析E680G应用一.所谓的Loader

    深度剖析E680G应用一.所谓的Loader 草木瓜 20060818 相关资源下载 http://play.younet.com/view.php?tid=18578 一.写在前面的话 E680G, ...

  6. 深度剖析E680G应用五.Telnet与主题

    一.前言 这两方面的内容比较少,而且网上资料也很多,毕竟E680上市都两三年了, 再怎么写恐怕少不了拾人牙慧.所以这才做一些总结,本来这应该在介绍Loader 之后就详细介绍.相关下载文件,可以访问友 ...

  7. 深度剖析E680G开发一.所谓的交叉编译环境

    深度剖析E680G开发一.所谓的交叉编译环境 草木瓜 相关资源下载 http://play.younet.com/view.php?tid=18578 20060906 一.前言 前面文章涵盖的内容对 ...

  8. 深度剖析E680G开发二.交叉编译BusyBox与图形化程序

    深度剖析E680G开发二.交叉编译BusyBox,图形化程序 草木瓜 20060917 一.前言         很多人看到这个剖析系列,觉得难了,其中不乏热衷于刷机的人.刚刚接触 E680g的普通人 ...

  9. 深度剖析E680G开发二.交叉编译BusyBox,图形化程序

    一.前言         很多人看到这个剖析系列,觉得难了,其中不乏热衷于刷机的人.刚刚接触 E680g的普通人理解起来固然有些困难,然对于一个经常刷来刷去的"高手",就 说不过去 ...

最新文章

  1. 基于FT5x06嵌入式Linux电容触摸屏驱动
  2. m进制数转换为十进制数
  3. 数字转换英语c语言程序,c语言 把英文数字 例如 one hundred and eleven 转换位数字 111;怎样编写程序,要求1~1000内的英文数字...
  4. (原)数据结构——线索二叉树
  5. 上海女白领吃火锅碰瓷,支付宝口碑居然真的要赔?
  6. Python程序可打印今天的年,月和日
  7. html中js设置密码长度,JS判断邮箱格式,密码输入是否一致,不能为空,长度控制等...
  8. html-css样式表
  9. SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
  10. 数据科学 IPython 笔记本 8.14 自定义 Matplotlib:配置和样式表
  11. mysql可重复读实验_Mysql可重复读测试
  12. 文件存储demo,直接存储内容到本地中。
  13. Spring MVC拦截器实现用户登录权限验证案例
  14. simplejson.scanner.JSONDecodeError: Extra data: line 1 column 22089 - line 1 column 22090
  15. 此声明没有存储类或类型说明符
  16. AppBuilder(二)UseStageMarker
  17. 和我一起学Effective Java之创建和销毁对象
  18. xy转经纬 经纬转xy 各种坐标系
  19. 计算机职业资格证学什么,计算机职业资格证书有哪些
  20. luogu P1724 东风谷早苗

热门文章

  1. isca_2021_papers_list
  2. android弹出确认对话点击取消,Android点击返回按钮弹出确认消息对话框
  3. MATLAB矩阵的值,迹,秩,范数,上三角矩阵,下三角矩阵,主对角线元素
  4. 2015年《大数据》高被引论文Top10文章No.7——大数据机器学习系统研究进展(下)...
  5. 基于C++(MFC)的二维Delaunay三角剖分与Voronoi图的算法及代码
  6. Vue插件的创建使用
  7. 利用R语言爬取安居客中经纪人数据,并将结果导入msql数据库
  8. 电脑是还原好还是重装系统好
  9. java猜数字游戏总结,java课程设计——猜数字游戏
  10. 小程序生成图片保存到系统相册_无需APP,这个微信小程序一键生成证件照