草木瓜

本BLOG内容较杂且水平有限,切勿见怪

用户操作
[即时聊天] [发私信] [加为好友]
lw ID:liwei_cmg
195017次访问,排名373好友2人,关注者8
liwei_cmg的文章
原创 89 篇
翻译 0 篇
转载 13 篇
评论 498 篇
草木瓜的公告
全部文章列表链接
最近评论
cmg:电信银行电力的原有系统基本上都会用到ProC,不过新开发的系统逐渐倾向于OCCI了。
bluehouse1985:Nokia QT——无与伦比的C++开发工具!
Qt 概述
也许您还没有听说过Nokia QT,不过大名鼎鼎的KDE、Google Earth、Skype、Photoshop Elements等等正是使用的Qt工具包。
Nokia QT为软件的快捷开发和简便操作提供领先技术。它的技术促进了软件创新,并推动了功能性的改进。Nokia QT致力于融合有效的软件开发和……
bluehouse1985:Nokia QT——无与伦比的C++开发工具!
Qt 概述
也许您还没有听说过Nokia QT,不过大名鼎鼎的KDE、Google Earth、Skype、Photoshop Elements等等正是使用的Qt工具包。
Nokia QT为软件的快捷开发和简便操作提供领先技术。它的技术促进了软件创新,并推动了功能性的改进。Nokia QT致力于融合有效的软件开发和……
BEN:非常好,对那个“pro*c/c++,这种东西本人n年前早就完过了”说:Pro C很多银行项目还在用哦
bluehouse1985:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
文章分类
收藏
    相册
    我的好友
    aresgj(RSS)
    小叶
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 深度剖析E680G应用一.所谓的Loader收藏

    新一篇: 深度剖析E680G应用二.MPKG | 旧一篇: 该跟MOTO T720说再见了

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

    草木瓜 20060818

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


    一、写在前面的话

      E680G,已不能简单理解为手机,而是一台实实在在运行Linux操作系统的个人掌
    上电脑!
      本文试图通过探讨E680G操作系统的架构,打造个人PDA,扩展其强劲的功能。
      由于本人也刚接触E680G不久,再加上Linux知识空白,文章深度也许还远远不能达
    到分析Linux内核源码的层次,所以我加上了应用二字,足以说明是面向广大普通用户的。
    对大多数人来讲扩展应用软件才是主要的内容。
      此外本文所涉及内容皆不需要进行刷机,这对新手来说更容易接受罢。

    二、进入正题
      
      进入正题前还想说几句废话:首先,那就是砸锅卖铁也得要买块扩展卡来,最好是
    1G的,否则就那点手机内存空间也没有玩的必要了!其次,说明书必须认真阅读,基本
    操作都不知道,又如何谈得上玩转?

    三、探究Loader

      A.安装程序

      只要你上了E680论坛,你可以看几乎无所不在的L/M!说实话,Loader只不过是别人
    写的一个简单脚本,几行代码而已。可对刚入手E680g的人来说是很神秘的,纯粹去研究
    Loader也没有意义,然在我们一步一步探个究竟的过程中,你会发现自已的DIY能力却提
    高了很多。
      
      Loader的安装程序有两种,一种安装在手机,另一种安装在卡上。一般是个mtf文件
      如:Loader_E680i_phone.mtf(手机)  Loader_E680i_SD.mtf(SD卡)。
      
      扩展名为mtf的文件可以直接被E680g执行。(再废话点,复制到手机或者卡上点下该
    mtf文件就可以执行了。)
      mtf文件的本质是linux下tar包的压缩文件!不明白不要紧,可以将上面文件下改名
    为Loader_E680i_SD.tar.gz ,用winrar解压缩,就可以看到一些文件。(有兴趣可以
    看下Linux下tar,gunzip等相关shell命令的用法,那样就会更清楚了。)

      不管你是从哪里下载的Load安装程序,这个目录结构肯定都是一样的!

      如果mtf在E680G下运行,就是直接解压缩到手机Linux操作系统环境下的对应路径。
      用卡版的Loader_E680i_SD.tar.gz为例,它其实就是解压成如下文件:
      
      /mmc/mmca1/.system/java/PlugCardDB
      /diska/.system/QTDownLoad/loader/loader.desktop
      /diska/.system/QTDownLoad/loader/loader.lin
      /diska/.system/QTDownLoad/loader/loader.gif
      /diska/.system/QTDownLoad/loader/loader_sm.gif

      手机版Loader_E680i_phone.tar.gz路径肯定是有所不同的,以下是手机版解压的对
    应文件:
      
      /ezxlocal/download/appwrite/am/InstalledDB
      /diska/.system/QTDownLoad/loader/loader.desktop
      /diska/.system/QTDownLoad/loader/loader.lin
      /diska/.system/QTDownLoad/loader/loader.gif
      /diska/.system/QTDownLoad/loader/loader_sm.gif
      
      
      可以看出卡版和手机版的唯一区别是有个DB不同!
      
      在E680G上也存在这两个文件,PlugCardDB和InstalledDB,存放外部程序(系统自
    带游戏,自户安装的软件)的配置信息。PlugCardDB存放安装在卡里的程序信息,而
    InstalledDB存放安装在手机里的程序信息。
      在E680G开机或者更改菜单顺序时会读取这两个DB文件来刷新菜单显示。这两个文
    件都是文本格式,可以用UltraEdit打开。

      B.配置文件

      我们先打开Loader安装程序的这两个文件,会发现InstalledDB除了一项关于Loader
    的配置内容还有其他一些内容,而PlugCardDB只有一项关于Loader的配置内容。这是因
    为做安装包的人已经把手机自带的游戏配置信息也写到InstallDB里了。
      
      以下是卡安装版的Loader配置信息(PlugCardDB),手机版的Loader配置信息也差不
    多的。
      
      [AppLinkInfo]
      AppLinkCount = 100000001


      [AppLinkRecord100000001]
      AllPosition =
      BigIcon = loader.gif
      Directory = ../../../../diska/.system/QTDownLoad/loader
      Exec = loader.lin
      Group = 5
      Icon = loader_sm.gif
      InstalledDate =
      JavaId = -1
      Mime =
      MpkgFile =
      Name = Loader
      OsVersion =
      Position = 17
      Rotation =
      Shared = 0
      Size = 10K
      Type = 2
      uid = 100000001
      
      
      [MimeInfo]
      MimeCount = 100000000
      
      你可以去你手机卡上看到这个PlugCardDB文件,亲自对比一下。不过如果你还
    是新手还不会telnet的话,那样也没关系。大容量模式连接电脑,可以在卡那个盘
    符,路径为.system/java/下找到PlugCardDB文件。

      下面我们列表详细说明下这个配置文件的主要内容。
      
      AppLinkCount = 100000001  安装的程序最大序号
      AppLinkRecord100000001,uid = 100000001 
                                应用程序的安装序号,不重复即可。
      Directory                 应用程序所在路径。
      BigIcon = loader.gif,Icon = loader_sm.gif
                                应用程序显示在菜单上的大图标和小图标。
      Exec                      所执行的应用程序或脚本
      JavaId                    如果是Java程序 则为正值,否则为-1
      Group =5                  前4个是手机系统的Group,5,6是自定一,自定二
      Position,AllPosition      显示在菜单上的顺序
      Name                      应用程序名称
      Type                      内容很重要,下面详细说明。
      
      系统指定Java程序Type=5,其他应用程序Type=2。(你也可以设为0,3,4,6至于效
    果可以自行尝试。)这里需要着重说明的是,Type=2时Directory的路径需要回退到顶
    级目录,前面须要加../../../../,因为两个DB文件都是在四级目录以下,否则系统
    不能识别。这里还有个著名的问题,就是当Type=2时,系统不管配置信息如何,菜单
    全部显示“应用名称”!让人比较郁闷。这问题虽然可以通过刷机解决,然而却是没有
    太大意义,因为就装MPKG的本身而言,其实也没什么必要。(后面会详细说明)
      
      C.Loader小结

      读到这里,我们可以得出清晰的结论:所谓Loader的安装过程,只是把loader这
    个文件夹复制到手机的某个目录,同时覆盖掉InstallDB(手机版)或者PlugCardDB(卡版)
    文件,即把这个目录程序的配置信息加到DB文件中。
      所以在安装后,自己安装的JAVA软件肯定不在了,在InstallDB或者PlugCardDB已经
    没有了那些软件的配置信息了。
      
      Loader根本没有必要装在手机上!可以完全抛弃mtf安装的方法,直接复制Loader文
    件夹至卡的任一路径。(记住要是标准路径,不是你大容量的路径。配好telnet,或者装个
    Qonsole一下就清楚了。)在PlugCardDB文件中手工加入配置信息即可。

      D.Loader是什么

      那么我们为什么要装Loader,他有什么用。UltraEdit打开loader.lin文件看下。
      熟悉Linux的一看就知道,太简单了!只是普通的一个Shell脚本,而起作用的就是
    exec这句话。比如用test.sh用Loader关联打开,系统Shell启动Loader,执行到exec时,
    就相当于exec test.sh。(如果不明白可以查看下Linux下相关Shell的脚本介绍。)

      按理来说,在Linux在执行这种脚本是天经地义的事,只不过在E680g图形化界面下
    是不能直接运行的。
      那怎么办?下面通过自定义Loader例子说明。

      你随便写个脚本test.sh如下:
      
      #!/bin/bash
      cd /usr/SYSqtapp/mystuff
      ./mystuff
      
      这个是启动系统收藏夹的命令。再写个test.load脚本:
        
      #!/bin/bash
      exec "$2" &
      
      在卡上建个文件夹如/mmc/mcal1/test,把test.sh,test.load两个脚本复制过去,
    先在手机上点击test.sh,肯定会显示找不到可执行的程序,这时在PlugCardDB配置
    信息加上如下内容:

      [AppLinkRecord100000001]
      AllPosition =
      BigIcon =
      Directory = ../../../../mmc/mmca1/test
      Exec = test.load
      Group =
      Icon =
      InstalledDate =
      JavaId = -1
      Mime =
      MpkgFile =
      Name =
      OsVersion =
      Position =
      Rotation =
      Shared = 0
      Size =
      Type = 2
      uid = 100000001
      
      (注:依情况更改AppLinkCount和AppLinkRecord,上面配置略去了很多次要内容,
    只保留必要的。)
      保存后,更改下菜单的顺序,会发现有个感叹号的应用程序,不用管他,那是因为
    我们没有指定菜单的图标!这时选择test.sh,然后用那个感叹号的应用程序打开,就会
    发现成功打开了收藏夹!我们自已的Loader也成功了!

      看到这里,Loader的本质想必应该十分清楚了吧。

      五、结束
      
      理解的本文的Loader,再讲MPKG,就简单多了。下一篇主要分析MPKG的相关软件。
       

    发表于 @ 2006年08月24日 22:09:00|评论(loading...)|编辑

    新一篇: 深度剖析E680G应用二.MPKG | 旧一篇: 该跟MOTO T720说再见了

    评论

    #zilin 发表于2006-09-22 22:34:00  IP: 211.96.15.*
    高人啊,
    拜服。
    #cmg 发表于2006-09-25 14:07:00  IP: 218.90.145.*
    我看到你转的贴子了,呵呵,起初都是空白,都需要一个过程啊
    #wsimbachen 发表于2006-12-12 01:00:23  IP: 218.29.153.*
    谢谢 写了这么好的文章 我基本上关于e680g的文章都看了 我转门弄了个a1200来学习linux 最后还是谢谢你 说过的一句 感谢伟大的开源精神!!
    #liwei_cmg 发表于2006-12-15 09:49:39  IP: 61.164.16.*
    是啊,如果写linux平台的还去封闭自已的代码,就很垃圾了。
    #阿奇 发表于2007-08-28 16:32:28  IP: 222.90.231.*
    "我转门弄了个a1200来学习linux"
    真是搞笑,钱烧的
    #草木瓜 发表于2007-08-30 14:56:04  IP: 61.130.8.*
    学习的源动力不是钱能买到的,一个A1200如果能激起学习的兴趣,这点小钱又算什么呢
    #faq 发表于2008-03-03 09:53:08  IP: 61.130.8.*
    问:
    我的E680I的屏的左上角坏了,没法点主菜单!能不能帮我写一个调用主菜单的小脚本,我用蓝牙传到文档里一点就能弹出主菜单。还有,修改USB模?
    >轿猆SB网的脚本能做也做一个好吗?

    答:
    最近几天一直在外地培训,刚看到邮件,不过邮件有部分乱码,看得不太明白.
    调用E680的主菜单,目前短时间内无法做到,原因是E680主菜单是一完整程序,点击左上角,只是触发了主程序的一个事件,而且我没有源码,是不能通过外部调用来实现。
    解决方法,对需要的软件进行单独启动,如下(具体脚本请自已编写):

    # pwd
    /usr/SYSqtapp

    # ls
    addressbook calculator drm mediashare mtc setup voicenote
    alarmclock calendar dynamicidle messaging mystuff sound vr
    am camera email midi notepad syncmldm windowsserver
    ap_tcmd certificates fmradio mmcsd opera systemsetup worldclock
    bluetooth dict inetsetup modem phone tasks wvimps
    browser drawpad mediaplayer motosync provision tools

    调用(系统设置)示例:

    # export QTDIR=/usr/lib/ezx
    # export LD_LIBRARY_PATH=$QTDIR/lib
    # export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
    # /usr/SYSqtapp/systemsetup/systemsetup

    后台会显示

    FS_lock_init: sem id 32769, NOT mine
    FS_init shm @ addr 0xbeaf6000, size 163840, NOT mine
    {4} TAPI_CLIENT_Func.c:156, ClientOpenTapiLocalSocket() Success to connect with TAPI Server

    手机已经启动的系统设置,其中也有你需要的usb模式设置
    #wuqiubin 发表于2008-03-21 19:51:40  IP: 218.13.200.*
    exec "$2" &
    这句是什么意思了啊
    #dytyjk 发表于2008-07-23 16:41:10  IP: 119.5.69.*
    老大有研究过twm-tg310吗?linux系统的,也不知是什么版本,只能玩java,参考moto系列的在卡上装loader,可卡上没有PlugCardDB文件,telnet也不行.最要命的是这手机没有资源管理器,往卡上装的文件除了媒体格式的可在相应程序下打开,其他文件在手机上一律看不到!就只能当传统手机用了吗?相当的郁闷!
    #cmg 发表于2008-07-28 10:49:16  IP: 222.190.126.*
    没有外部接口,的确很难办,要想有番diy,买机器之前应该就有所考虑,有所选择。
    这个东西我是没有听过,呵呵
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 草木瓜