深度剖析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

深度剖析E680G应用二.MPKG相关推荐

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

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

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

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

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

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

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

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

  5. 深度剖析E680G应用四.彻底解决LM带来的麻烦

    深度剖析E680G应用四.彻底解决LM带来的麻烦 草木瓜 20060826 相关资源下载 http://play.younet.com/view.php?tid=18578 一.前言 如果你看过以前的 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Python数据挖掘:数据转换-数据规范化
  2. C语言打印1000以内的完数
  3. mysql killed 不掉,解决:kernel: Out of memory: Killed process 15967, UID 27, (mysqld).
  4. Spring 事务用法示例与实现原理
  5. 在datagrid里面生成指定的DataView ,进行过滤.把符合条件的数据显示出来
  6. Java中如何执行source命令,在Java中运行UNIX Source命令
  7. pandas操作sql数据库
  8. 【LeetCode笔记】88. 合并两个有序数组(Java、双指针)
  9. html新闻上下自动滚动代码,jQuery网站公告上下滚动自动轮播代码
  10. 移动深度学习:人工智能的深水区
  11. java json字符串转成 Map或List
  12. 天翼宽带怎么开虚拟服务器,天翼宽带怎么设置无线路由器?
  13. dblink连接远程mysql_MySQL中使用federated 实现dblink 远程表访问
  14. 离散系统的李雅普诺夫稳定判据
  15. android极光富媒体推送,极光推送如何在android客户端接收富媒体
  16. Airbnb是如何创造更好的邮件体验的
  17. 让工控机通过笔记本的Wifi实现上网
  18. MIT推出3D全息图生成新方法,可在智能手机上实时运行
  19. 关于同一局域网中,获取的IP非本地真实IP的问题。
  20. Mybatis遇到的报错集合

热门文章

  1. C++ Primer 第五版 电子书(英文)pdf下载
  2. excel 数组函数入门讲座
  3. Flutter异常Another exception was thrown: A RenderFlex overflowed by 5.0 pixels on the bottom解决方案
  4. mujoco安装教程
  5. Unity编辑器开发之中文名称转拼音
  6. 通信网络基本概念一览
  7. 服务器设置浏览器是否缓存
  8. (一)PC 机与单片机通信(RS232 协议)【800个电子设计大赛资料合集】
  9. Jmeter 中的BeanShell使用
  10. linux top交叉编译_Linux 交叉编译工具链