wangyu5187576 发表于 2009-1-30 11:29

CG52的改包教程(姑且算之),抛砖引玉

首先我要说,只要你想改,站在别人的肩膀上,其实很简单。不过不要把把别人的程序脚本拿过来,把标记换成自己的,就愣说是自己开发的呀!

我是linux的门外汉,下面用到的几个命令也是现学现卖的。里面用到的程序也是从别人包里借鉴过来的,很少改动的地方。+ J4 _:
我一般就是在windows下,用那个cygwin的工具作这些。


常用的命令
unsquash –d   文件夹a –f   CG*.smg            ---解包到文件夹a[
mksquashfs 文件夹a CG*.smg –le               ----将文件夹a打包到CG*.smg F

tar –xzf*.tar.gz                      解压
tar –czf*.tar.gz   /../a/*         将a目录下的所有文件及文件夹压缩到*.tar.gz



├─alertstyle. A5
├─apr
├─efem
├─funlight4
├─sys
└─usr
├─icon
├─mediaeditor
├─mtp
├─mystuff
├─picture
├─poweroffr
├─poweron
├─preloadapps
├─javaapps
└─qtapps
└─gotone
├─quickpage4
├─skinw
│├─default2
│└─default4
├─slidetone:
├─sound
├─ringtones
├─slider_tones
└─ui_sounds
├─string&
├─theme
├─videos
├─wvimps* Y
└─oss
上面就是CG52.smg这个文件解包后的文件目录。红色的那几项就是我们比较经常要改的地方。
# T9
比如说你要修改外观,那么应该要改图标、皮肤,主题,对吧。也就是icon、skin和theme,这既个文件夹下面的东西。
ezx_theme.cfg这个文件,在theme文件夹下面。这个文件其实就是一个默认配置表,大概应该是手机复位后初始化调用的配置主题配置表
里面的内容我不一一细说,大概懂点英语的人就能猜到其中的功能。看一下最后几句:

CurrentSkin = /usr/data_resource/skin/default2                  ;默认的皮肤
CurrentTheme = /usr/data_resource/theme/theme2.phm      ;主题

因为CG52刷机后是存放在手机的/usr/data_resource/目录下的,所以skin就在/usr/data_resource/skin/这里了。依此类推。
你可以修改icon、skin和theme里面的文件,达到修改外观的目的。不建议该得太复杂,你可以留一个你喜欢的,其他的都删掉,留出空间给别的用,因为cg52.smg的体积有限制。
0 h0 s9 q\" S. ^; t3 L+ l
你要你的手机支持mpkg安装,或者添加其他的功能、程序什么的。大概应该改preloadapps
( @这个文件夹下面的东西。而oss这个文件夹,是国内的朋友添加东西时常用的文件夹。
比如你解开一个yan0作的包,oss下面就比原版包多了几个网页。

Preloadapps,顾名思义,预安装的程式。里面固然有手机自带的java程序,还有手机初始化类似于windows注册表的东西。(我猜得)SysMenuTree这个文件就是定义了用户浏览界面的目录树结构。应该就是windows的桌面系统了。你可以在里面将原来的12宫格结构改成随便你喜欢的结构。G
改他,一个比较笨的方法,你可以数一下,Items=后面有几项,用“;”号来隔开的。比如有12项大概就是主目录的12宫格,(改的包一般都是9宫格),而且这个主目录下面的项在都是后面的标题。然后每个标题下面有子目录。

CSysMime,这个文件解决程序关联的问题。比如最早的时候txt文件是打不开的,后来yan0的包里把它关联到网页浏览器上了,就可以用网页浏览器打开了。跟windows下程序关联是一个道理。

SysRegistry这个就是注册表吗?看名字像。反正你的程序要运行,不管是前台可见的还是后台不可见的都要在这个里面注册一下才行。

好,我们在手机里面加点东西吧。
例一,
在主菜单下面加个“linux应用”
先在SysRegistr注册,即添加下面的东西
下面的


Attribute = 8
( V; q####索引第8个图标,不要跟其他的冲突
AniIcon = task_list_ani.g
U####图标
BigIcon = task_list_std.g
FixedAllPosition = 0
FixedPosition = 0
Name = Linux应用

这里的标志,你可以按这个格式自己编一个,然后不要根现有的冲突,后面会用到的。% p9 r. |: n6 n1 H3 T; e7 j
然后,再sysmenutree文件下的Item=后面把上面的标志ecc9ddaa-6643-429b-9844-8dc429826253加进去,Attribute=8你就放到第8个的位置。
这样打包刷机,就可以了。
我的是这样的:
*
Items =ce59717d-fb23-4b7c-8800-25ce613f4042;0a92f2c5-584d-440a-954c-1a155079d71a;220072c6-9008-468e-9968-11f3c50fa95e;9faafa35-0688-4529-8310-04f215cb2d0c;b18dbbd2-503a-4442-9308-5575ee38c210;95ffa462-7e2f-49a9-9e6d-f8f63b2f3c40;e8c83dac-db4e-4fb5-98a6-61de1998b277;ecc9ddaa-6643-429b-9844-8dc429826253;c34463b7-800f-483b-8e01-5ea39730d7d5

例二,
: L9 R5 V, e& c在linux应用下面加一个目录“系统”并在系统下面加“开启usblan”的程序。
第一步加目录,接上面工作,
在SysRegistr注册,即添加下面的东西:

Attribute = 7
AniIcon = task_list_ani.g
BigIcon = task_list_std.g
FixedAllPosition = 0
FixedPosition = 0
Name = 系统
Type = 1
在sysmenutree中加目录分枝。

Items = ecc9ddaa-6643-429b-9844-8dc429826254
Ok,目录添加完成,
第二步,加程序。这个比较复杂,因为不但要注册,还有添加程序实体、设置环境。我仅解释一下现有包的做法。说得不对,请在指正。
& A% ~$ g\'
首先你要有这个sh(或者csh)文件。
[然后保证刷机后能够放到指定的位置上去。
接着你就可以在注册表中调用这个程序了。
我以以前风版主作的包为基础,简单解释一下这个过程:
程序(sh(或者csh)文件)的来源:可以到v8论坛下一个v8的刷机包,其CG52下面的oss文件夹下面有个.LinXtend.tar.gz的文件,现在常用的系统功能软件基本都压缩到里面了。细心点肯定能找到的。国内的包基本都在oss下,国外的包,像linuxsp*rc*系列的,解压后一般在linuxmodSP1这个文件夹里面,同样是.LinXtend.tar.gz这个文件。比如你要安装支持mpkg安装的程序,你就可以找到,testmpkg这个sh文件,你只要注册一下这个程序,然后关联到以.mpkg为后缀的文件即可支持mpkg安装了,我试过,绝对行的。
程序的安装:现在的包,一般都是这样做:将程序打包放在oss(或者国外的linuxsp1)文件夹下,就是那个.LinXtend.tar.gz(我把它叫做资源文件)。然后做一个autorun.csh的文件,在里面调用我们要运行的用户程序,让这些用户程序来完成程序安装的任务。你要做的就是把你的程序放到指定位置。你可以用tar –xzf .LinXtend.tar.gz 命令解压缩,然后将你的程序放在download\\mystuff\\.system\\LinXtend\\usr\\bin下面,然后用tar –czf .LinXtend.tar.gz
*命令压缩,将生成的新的.LinXtend.tar.gz放到oss文件夹下即可。
(一般就是在autorun中调用install这个文件。这几个文件你都可以找到,而且基本上不用改。你只要在资源文件添加你的程序,然后再注册一下就可以了。还有就是有些人做的包这个资源文件是没有后缀的,考验你的火眼)
2 Y0 B+ |) x+ {; H

人机交互和程序注册:程序放在那里了,自己并不能运行,你得手动添加一些人机交互的接口,并注册一下就可以了。就跟上面加目录一样,无非是你现在加的是个程序。
在SysRegistry中加:
[ecc9ddaa-6643-429b-9844-8dc429829357]
AniIcon = task_list_ani.g
ID= {ecc9ddaa-6643-429b-9844-8dc429829357}
Args = /ezxlocal/LinXtend/usr/bin/USBLAN;/ezxlocal/LinXtend/usr/bin/USBLAN\"
Attribute = 1
BigIcon = task_list_std.g
. k/ q. L# Rc2 ?Daemon = 1
Directory = /ezxlocal/LinXtend/
Exec = ../../bin/sh
FixedAllPosition = 0
FixedPosition = 0
GroupID = root
Icon =
LockEnabled = 1
MassStorageStatus = 0
Name = 开启USBLAN
Type = 2
UserID = root
大概其解释一下,我也不是很明白.
Args = /ezxlocal/LinXtend/usr/bin/USBLAN;/ezxlocal/LinXtend/usr/bin/USBLAN
这个就是你的程序,路径和文件名都要准确,至于为何要写两边我也不知道。
Name = 开启USBLAN这个是你手机里显示的东西。然后再加上那个ID和图标也可以改。别的就不要乱改了。值得注意的是国外的做法一般是这样:
[ecc9ddaa-6643-429b-9844-8dc429829357]
AniIcon = task_list_ani.gL
AppID = {ecc9ddaa-6643-429b-9844-8dc429829357}
Args =
Attribute = 1
BigIcon = task_list_std.g
Daemon = 1
Directory = /ezxlocal/LinXtend/usr/bin/
Exec = USBLAN.
FixedAllPosition = 0
FixedPosition = 0
GroupID = root
Icon =
FLockEnabled = 1
MassStorageStatus = 0
Name = 开启USBLAN
Type = 2
UserID = root
你自己体会。
接下来,在sysmenutree中加程序分枝

-----这个是第一步中添加的那个目录
Items = ecc9ddaa-6643-429b-9844-8dc429829357               --这是程序的ID
例三,
支持mpkg安装。
现在我们的z6的mpkg安装是通过一个脚本来实现的。在.LinXtend.tar.gz里面能找到,testmpkg这个文件。这是后台程序,不要人机交互。只要根mpkg文件关联就可以了
程序安装:找一个支持mpkg安装的包,解压,然后提取其中的testmpkg,放到指定位置(通常是download\\mystuff\\.system\\LinXtend\\usr\\bin下面)
程序注册:
在SysRegistry中加:

AniIcon =+
AppID = {fdcc1e4f-0c31-4f50-92fe-f404e7d11903}
Args =
Attribute = 1
BigIcon =
Daemon = 0
Directory = /ezxlocal/LinXtend/usr/bin/
Exec = testmpkg
FixedAllPosition = 0
FixedPosition = 0
GroupID = root
Icon =
LockEnabled = 0)
MassStorageStatus = 1
Name = testmpkg
Type = 2
UserID = root
程序关联:
在sysmime里面加:

AppID = {fdcc1e4f-0c31-4f50-92fe-f404e7d11903}
AppList = {fdcc1e4f-0c31-4f50-92fe-f404e7d11903}+
还要在mime.types里面加上(这个文件在ezxlocal\\download\\appwrite\\am也放在.LinXtend.tar.gz里面):
test/x-mpkg mpkg
(这里我有一个疑问,为什么不是直接在sysmime里面用test/mpkg,而是要导了一把手?)
好了,打包刷机,应该可以装mpkg了。
/ \\9 _0 [% a* k: e; w
我不知道刷机对机器有没有损害,上面的东西都是摸索出来的,过程就不说了,刷机就跟眨眼一样频繁。现在我的z6除了导航键都掉下来了,没什么别的问题。只要你胆大心细,放心的刷。有几个人的手机是因为寿终正寝才换得。有时间的朋友,可以好好的研究一下。


姜绍锋 发表于 2009-1-30 12:00

好乱~~~

亚米加 发表于 2009-1-30 16:54

下回再发帖子请注明出处!此贴出自IT168 MOTOZ6的专区!

wangyu5187576 发表于 2009-1-30 17:49

3# 亚米加 知道了

DesertEagle 发表于 2009-1-30 18:29

楼主请你下次转载的时候把该清理的东西清理干净了 ~
我给你清理了好半天~!
最后还是支持一个吧~

叙述-情 发表于 2009-1-31 14:35

支持!
为了我得权限!

yuyansulei 发表于 2009-2-2 09:58

顶,学习了

咫尺or天涯 发表于 2009-2-2 17:15

好深奥啊,再看一遍去

125821636 发表于 2009-2-21 21:12

恩??????

小吉 发表于 2009-2-22 00:50

很好的技术贴,回帖慢慢看~~~~~~~~
页: [1] 2
查看完整版本: CG52的改包教程(姑且算之),抛砖引玉