这2天不能登录OPDA,实在是闲着没事做,于是就想动动文件夹的图标,早先B!te兄曾经发过一个调出默认NOKIA15个文件夹图标的帖,于是根据那个帖子研究了一下appshelldata.xml这个文件,发现文件夹图标都是基于此文件修改的。下面就来详细分析一下此文件!
1.准备工作:首先你的手机需要被XX,这样才能提取appshelldata.xml文件,从C:\private\101f4cd2\content里面提取此文件到卡里,然后在电脑上用记事本打开。
2.文件结构:appshelldata.xml文件实际上包括3个部分
第1部分 文件头
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xcfwml SYSTEM "appshelldata.dtd">
<appshell:data xmlns:appshell="http:://www.s60.com/xml/applicationshell/1" version="3.1">
第2部分 文件夹图标及程序文字描述
<appshell:folder ......>
............
</appshell:folder>
第3部分 文件末
<appshell:mmc mmc_2="3314929160" mmc_1="457383733"/>
</appshell:data>
修改的重点在第2部分
3.开始修改:我们首先可以找到一个完整的文件夹图标的内容 例如我的手机是N82 有个“应用程序”文件夹那么它的内容就是
<appshell:folder positioned="1" applicationgroup_name="installed" default="1" short_name="&qtn_apps_installed_grid;" long_name="&qtn_apps_installed_list;" title_name="&qtn_apps_installed_title;" icon_file="Z:\resource\apps\Menu.mif" m3g_icon_file="appf.m3g" icon_id="16404" mask_id="16405" icon_skin_major_id="101F86E3" icon_skin_minor_id="13FD">
其中关键变量是:
icon_file="X:\XXXX"
icon_skin_major_id="XXXX"
icon_skin_minor_id="XXXX"
icon_id="XXXX"
mask_id="XXXX"
具体参数如图所示
这几个变量就是控制文件夹图标的了。比如我新建了一个“娱乐”的文件夹,默认的是一个什么图标都没有的文件夹,那么appshelldata.xml中的就会是
<appshell:folder positioned="1" title_name="娱乐" long_name="娱乐" short_name="娱乐">
如果我要把这个文件夹图标变成上图中Games那个图标,很简单只需要改成
<appshell:folder positioned="1" title_name="娱乐" long_name="娱乐" short_name="娱乐" icon_file="C:\resource\apps\Menu.mif" icon_id="16388" mask_id="16389" icon_skin_major_id="101F86E3" icon_skin_minor_id="1977">
然后将修改好的appshelldata.xml文件复制回C:\private\101f4cd2\content,将我上传的Menu.mif文件复制到C:\resource\apps目录下,重启手机即大功告成!
4.注意事项:
(1)每个机器自带的menu.mif大小不一致,而且里面包含的图标和代码也不一致(比如我的N82,应用程序的图标ID和掩码ID就和上图不一样,而且似乎根本就不包含GPS,网络和个人资料图标,我换过N个ID也没把这个几个图标弄出来),所以请务必使用我上传的这个包含15个全图标的Menu.mif文件,这个文件和图上的全都是一样的
(2)如果你喜欢用更换过图标的第三方主题的话,icon_id="XXXX" mask_id="XXXX" 这2个变量可以无视,如果第三方主题图标很全的话,是不会根据这2个变量来调用系统图标的,而是调用主题自带的图标;如果是用默认主题或者没更换过图标的第三方主题的话,这2个变量是很重要的,弄错的话就和你想显示的图标不一样哦!
(3)注意备份好原始的appshelldata.xml文件,以免修改错误后出现各种问题!
5.另外本方法还可以更改程序名称:
程序的完整描述例子:<appshell:application positioned="1" uid="XXXXXXX"/>
其中关键变量是:
title_name="XXXX"
long_name="XXXX"
short_name="XXXX"
uid="XXXX"
其中uid="XXXX"即是该程序的UID,那么在程序描述中添加上述变量便可以自定义程序的名称了。
比如,把ActiveFile修改为超级工具,即可如此:
<appshell:application title_name="超级工具" long_name="超级工具" short_name="超级工具" positioned="1" uid="a0000230"/>
理论上还可以根据变量icon_file="X:\XXXX"来定制程序图标,这个我没测试,有兴趣的兄弟可以测试一下!
由于我的手机没装截图软件,图我就不截了,这里借用2张图片来对比一下默认主题下修改前后的不同效果!
修改前:自建的文件夹光秃秃的什么都没有
修改后:自建的那些文件夹都能调出图标了
另外还有几张第三方主题的图片








另外感谢此2帖的作者,感谢先行者!
B!te NOKIA默认15个文件夹调出来的方法!
Heidong 【完美主义】【系统文件夹大挪移与图标细调之终极教程(fp1、fp2)】【春秋出品】
部分资料来自互联网!
[
本帖最后由 leyan22 于 2008-9-28 07:14 编辑 ]