深度剖析E680G应用二.MPKG

来源:互联网 发布:java 日期格式校验 编辑:程序博客网 时间:2024/04/30 00:57

深度剖析E680G应用二.MPKG

草木瓜 20060818

相关资源下载 http://play.younet.com/view.php?tid=18578

一、补充说明

  上文已完全分析了Loader的实质,试想自已写个Loader脚本,不管是卸载还是
扩展都是很轻松的事。这里还需要补充说明一下,上文提到Shell脚本在E680g图形
化界面下是不能直接运行的。这里有两种办法,一种通过关联Loader脚本运行,另
一种可以直接配置到系统菜单里解释运行,这时便于Loader没有任何关系。
  Loader的作用只是方便于在图形化界面下关联运行Shell脚本。
  修改PlugCarDB或者InstalledDB需要重新更改菜单顺序,系统是把配置数据载
入内存再进行处理的。

二、通过USB实现Telnet

  要继续深入下去,不谈Telnet是完全不可能的事,Telnet可以看到手机操作系统
的完全目录!可以执行Linux很多有用的Shell脚本,DIY也才算真正开始。

  如何实现,网上这类文章也是比较泛滥!下面只简单说明一下。可以去友人网,
www.e680.net等这类网站去查看详细说明。
  
  1.写个脚本文件,名称随意,比如usb.lin,复制到手机上卡上任意地方。
    #!/bin/bash
    echo MotNet > /proc/motusbd
  2.准备Moto E680 的 USBNET 驱动
  3.Modem方式USB连接电脑,安装好驱动
  4.选择usb.lin打开方式,用Loader应用程序打开
  5.telnet 169.254.142.2 输入root,回车,这时直接在电脑路径里输入
  //169.254.142.2/system,即可访问所有文件。

三、MPKG是什么

  坛子上说:运行扩展名为MPKG程序,需要安装MPKG。
  至于大家所下载mpkg安装程序,只是shell高手自个写的安装脚本罢了。安装程
序过程是怎么样的?说白了就是复制文件嘛,管你是Windows还是Linux!
  而那些扩展名为mpkg文件是和mtf文件是一样的,还是Linux下tar文件包的gunzip
压缩包,格式就是.tar.gz。MPKG安装也是差不多的意思,一样的解压缩,所不同的是,
还需要修改InstalledDB或者PlugCardDB这两个文件,为的是让我们能在菜单上直接看
到嘛。

  以友人网GMS提供的mp3播放器的mpkg文件为例!
  下载地址:http://play.younet.com/view.php?tid=15040
  
  找到19425526.mpkg文件,改名19425526.tar.gz,解压缩出mp3player文件夹,把
这个文件夹复制到手机上,找到mp3player文件夹里的mp3player,这个是linux下的应用
执行程序。(关于Linux下文件类型的,还是需要找些资料熟悉一下,连应用程序是哪个
都不知道的话,也就无语了。)长按这个文件,打开方式选择Loader应用程序。你会发现
播放器运行没有任何问题!

  思考下,原来什么mpkg安装,搞得只是让我在菜单上看到罢了,我复制过去就可以
直接运行,又何必再费事。不过也有问题,没有快捷方式啊,总不能每次找文件夹吧。
  建立快捷方式可以写个这样的Shell脚本,可以命名为mp3.lin。打开方式用Loader
脚本关联,这个文件不管在哪个位置,只要一点击就会执行。内容如下:

  #!/bin/bash
  #系统的环境变量
  export QTDIR=/usr/lib/ezx
  export LD_LIBRARY_PATH=$QTDIR/lib
  export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
  
  cd /mmc/mmca1/mp3player #这个路径当然是你自已手机上的
  ./mp3player       #在当前路径下运行mp3player
  
  这里重点说下这系统的环境变量。
  如果不在PlugCardDB中配置文件,直接用Loader关联程序打开的话是不需要配置这
些的。
  反而如果在PlugCardDB中配置好,想在菜单直接运行的话,是必须设置环境变量的。
这时不会关联Loader去运行。
  当然不管什么时候设置的话都不会出错。这些变量在脚本运行结束就被释放了。
  
  
四、我对MPKG安装软件的管理方法,给大家一些参考。

  /mmc/mmca1/Soft  存放各类复制过来的mpkg软件
  
  如:
  /mmc/mmca1/Soft/liwei         脚本Loader(其实就是上篇文章那句exec Shell)
  /mmc/mmca1/Soft/shortcuts     自定义的收藏夹,后面会讲到
  
  /mmc/mmca1/Soft/fm            软件 收音机
  /mmc/mmca1/Soft/mp3player     软件 mp3播放器
  /mmc/mmca1/Soft/doom1         游戏 doom1
  /mmc/mmca1/Soft/quake         游戏 quake
  ...
  
  /mmc/mmca1/Soft/public 存放用于脚本提示的录音文件,如进程已经关闭,打开之
  类信息。
  
  如:
  /mmc/mmca1/Soft/exsit.wav
  ...
  
  /mmc/mmca1/Exe   存放复制过来的mpkg软件运行脚本,之所以用英文名主要是
  考虑可以在telent下测试脚本,中文全是????,即便解决了,输入中文也是麻
烦。作用就相当于快捷方式。
  
  如:
  /mmc/mmca1/Exe/fm.lin
  /mmc/mmca1/Exe/fm_close.lin  close的lin主要是为了便于隐藏后随时关闭
  /mmc/mmca1/Exe/mp3.lin
  /mmc/mmca1/Exe/mp3_close.lin
  /mmc/mmca1/Exe/doom1.lin
  /mmc/mmca1/Exe/quk.lin
  ...

  
  Loader的配置信息肯定是要加到PlugCardDB里面,也建立了lin与Loader的文件
关联。另外shortcuts也需要加到里面。下面主要说明下shortcuts的内容。
  shortcuts目录里面包括了自定义的脚本shortcuts.sh,图标自已可以自行添
加,大图标32*32,小图标24*24,别忘了在PlugCardDB把图标名也加上。

  shortcuts.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
  
  #设置/mmc/mmca1/Exe的访问权限,不让mystuff在Exe下瞎建文件夹
  chmod 444 /mmc/mmca1/Exe
   cd /usr/SYSqtapp/mystuff
   ./mystuff
  chmod 777 /mmc/mmca1/Exe
  
  
  MYSTUFF_DATA_PATH这类变量可以查看/home/native/.profile这个文件。如何得到
收藏夹是哪个进程,可以打开它,在telnet中ps ax或者ps -ef查看。
  这样在PlugCardDB里配置好内容,在菜单点击一下就可以直接进入Exe目录中了,
想启动哪个软件就随意了。这时候已经完全抛开MPKG的束缚了!

五、结束

  希望大家能真正透彻了解Loader与MKPG,完全自已DIY,这两篇文章着重方法一些,
在看方法时最重要是提炼思想。
  遗憾的是,能力有限到目前为止还不能不通过刷机解决显示“应用程序”的问题。这
个目前估计可以通过Java程序调用来实现。
  最后再给出一些文件的内容。.lin里面的wav文件是自已的录音文件,主要用于提
示,熟悉的人一看就明白了,不熟悉的话研究下Linux Shell吧,上手不难的。

  mp3.lin

  #!/bin/bash
  Moto_AlertProcess='/usr/SYSqtapp/phone/alertprocess'
  Moto_AlertExistFile='/mmc/mmca1/Soft/public/exist.wav'
  Moto_AlertInfoFile='/mmc/mmca1/Soft/public/info.mid'
  $Moto_AlertProcess -playvol 5 -playfile $Moto_AlertInfoFile
  if ps -ef | grep "mp3player" | grep -v grep
  then
  $Moto_AlertProcess -playvol 5 -playfile $Moto_AlertExistFile
  else
  cd /mmc/mmca1/Soft/mp3player
  ./mp3player
  fi
  
  mp3_close.lin
  
  #!/bin/bash
  Moto_AlertProcess='/usr/SYSqtapp/phone/alertprocess'
  Moto_AlertKillFile='/mmc/mmca1/Soft/public/kill.wav'
  Moto_AlertNoFile='/mmc/mmca1/Soft/public/no.wav'
  Moto_AlertInfoFile='/mmc/mmca1/Soft/public/info.mid'
  $Moto_AlertProcess -playvol 5 -playfile $Moto_AlertInfoFile
  if ps -ef | grep "mp3player" | grep -v grep
  then
  start-stop-daemon --start --exec /bin/kill ` pidof mp3player `
  $Moto_AlertProcess -playvol 5 -playfile $Moto_AlertKillFile
  else
  $Moto_AlertProcess -playvol 5 -playfile $Moto_AlertNoFile
  fi

  PlugCardDB中关于loader和shortcuts的配置信息
  
  [AppLinkRecord100000001]
  AllPosition =
  BigIcon = liwei.gif
  Directory = ../../../../mmc/mmca1/Soft/liwei
  Exec = liwei
  Group = 5
  Icon = liwei_sm.gif
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name = liwei
  OsVersion =
  Position = 17
  Rotation =
  Shared = 0
  Size =
  Type = 2
  uid = 100000001


  [AppLinkRecord100000002]
  AllPosition =
  BigIcon = big.png
  Directory = ../../../../mmc/mmca1/Soft/shortcuts
  Exec = shortcuts.sh
  Group = 5
  Icon = sm.png
  InstalledDate =
  JavaId = -1
  Mime =
  MpkgFile =
  Name =
  OsVersion =
  Position =
  Rotation =
  Shared = 0
  Size =
  Type = 2
  uid = 100000002

原创粉丝点击