哼蘅的浪 发表于 2010-3-11 20:29:11

开机启动制作方法

一、去除软件开机自启动
一些S60软件设置项中自带了开机自启动的开关,可以根据需要自行决定是否开机自启动,例如终极录音,航海桌面等等,这部分软件不属于本文讨论的范畴。而更多的软件并没有提供给用户开机自启动的设置,软件在安装后是默认开机自启动的,例如第三方任务管理器,输入法软件等等,其实,我们在了解开机自启动的机制后,可以自行修改以去除其自启动。
这一切的秘密隐藏在机身内存的C:\private\101f875a文件夹中,用文件管理器X-Plore打开该路径,可以看到import和startup这两个子文件夹,注:C:\private路径需要破 解手机并关闭系统权限检验后才能进入。

展开import,能发现很多以[ * ].rsc命名的文件,这儿的*代表软件主程序的UID,以.rsc为例,2001A642即是Jbak Taskman这个软件主程序的UID

在X-Plore中按3,用16进制查看.rsc这个文件
注意红框标出的“!:\sys\bin\JtmAutoStart.exe”字样,JtmAutoStart.exe就是Jbak Taskman在手机开机后自启动时调用的文件,该文件存放的路径在!:\sys\bin中(!指的是C盘或E盘),将它删除能去除Jbak Taskman的开机自启动。

现在进入C:\sys\bin路径(如果该软件装在E盘上就进入E:\sys\bin路径,下同),找到JtmAutoStart.exe文件将其删除(或者移动到别的路径下备份,以后想恢复自启动时可以移动回来还原),重启手机后,瞧,Jbak Taskman在开机时随系统启动会出现的那个白屏是不是消失不见了?

可能有的机友会担心删除JtmAutoStart.exe这个文件后导致Jbak Taskman无法正常使用,其实这担心是多余的,被删掉的JtmAutoStart.exe这个文件的使命只是用来在开机时自启动Jbak Taskman,而该任务管理器运行时所调用的主程序文件是JbakTaskMan.exe,如欲运行它只要在“功能表-> 应用程序"里手动打开该软件即可。
不过上述方法有局限性,其一是对于装在C盘的软件来说,要去除开机自启动只能在已破 解手机的状态下才能操作,否则打不开C:\sys,C:\private这些受系统保护的文件夹,有些机友不想破 解手机便只能望洋兴叹。其二是有些软件在[ * ].rsc文件中调用的即是软件自身的主程序文件,那显然不能删除该exe文件。针对这两个缺陷,又该怎么办呢?
一个可行的方法是把软件解包后,删除C:\private\101f875a\import\[ * ].rsc文件再重新打包安装,即可达到不破 解手机也能去除软件开机自启动的目的。
下面以SymSMB网络驱动器软件为例,用过这软件的机友都知道,它安装后默认开机自启动导致开机时十分缓慢,有时甚至开机后数分钟内系统都无法动弹像卡死一样,相信很多机友都对该软件的开机自启欲除之而后快。
1.用SisContents这个电脑端的解包打包软件打开它的安装包。

2.选中"工具"-> "修改文件",并按确定。

3.点击工具栏中的“查看内容”按钮,找到"c:\private\101f875a\import\.rsc",点击"删除"。

4.选中"操作"-> "另存为",重新打包为sis文件,安装后就是无开机自启动的版本。
顺便解释为什么第3步删除的是C:\private\101f875a\import\.rsc而没必要删除!:\sys\bin\HxCysStarter.exe这个开机自启动的程序文件。事实上,如果在安装软件时没有C:\private\101f875a\import\.rsc这个文件,那么安装后HxCysStarter.exe是不会起作用的,也就是说SymSMB不会再开机自启动了。另外再提醒一下,尽管删除HxCysStarter.exe不会影响SymSMB这个软件的正常使用,但是有些其它软件删除*.exe会对软件的正常运行造成损坏,而删除[ * ].rsc既可达到去除开机自启动的效果又不会影响软件的原有功能。总之,制作软件的无开机自启动版本时,直接删除C:\private\101f875a\import\[ * ].rsc文件就够了。

二、添加软件开机自启动
其实,添加软件开机自启动是上述去除开机自启动的逆过程。另外呢,目前已有软件提供了支持其它软件开机自启动的功能。下面以截图软件Screenshot为例,由浅入深列举三种为此软件增添开机自启动的方法。

方法1.利用PowerBoot软件实现开机自启动
owerBoot能方便地给第三方软件添加开机自启动项。它的使用很简单,打开PowerBoot,在"安装程序"中选择所要添加自启动的软件即可。下次开机时PowerBoot会自动加载该软件。



方法2.利用JbakTaskMan软件实现开机自启动
Jbak TaskMan是一款功能十分强大的任务管理器。首先,我们打开想要添加开机自启动的软件,长按功能键调出JbakT askMan,将选择框移到所选软件上,例如图中的Screenshot,并点击"选项"中的"程序规则",选中"开机启动"即可,下次开机时Jbak TaskMan会自动加载该软件。


方法3.给软件添加自启动文件C:\private\101f875a\import\[ * ].rsc
方法1和方法2是通过第三方软件来实现开机自启动的,使用比较方便,但是这种自启动是在先启动第三方软件的基础上来调用其它软件的,对系统来说资源消耗较大并且优先级不高。其实,有一个方法可以实现不需第三方软件也能让软件开机自启动,那就是手动给软件添加C:\private\101f875a\import\[ * ].rsc文件,这种接近系统级的调用优先级较高,并且能把自启动文件整合到软件安装包里,从而方便了软件的安装使用。不过这种方法不够直观,对于新手来说较难掌握,因此下面的教程仅供具备一定S60使用基础的人阅读。
仍以截图软件Screenshot为例,演示如何给它添加系统级的开机自启动。
1.打开Screenshot,在任务管理器中查看其任务信息,记下它的UID:20000555,我们后面要用到。

2.为了方便教程的说明,我们通过仿效并改造Jbak Taskman的自启动文件来给Screenshot增加一个自启动文件。
首先,使用电脑端的16进制编辑软件,如Hex Workshop或WinHex等打开Jbak Taskman的自启动文件.Rsc,如下图所示,红框标明了该文件16进制需要修改的地方。

红框里的数值修改后如下图所示,这个就是用于实现Screenshot开机自启动的文件,把它另存为.rsc就行了,20000555是第1步那里记下的Screenshot的程序UID。

3.用SisContents重新打包Screenshot,添加.rsc文件到安装包里,记得修改其安装路径为C:\private\101f875a\import\。

4.修改完毕后,将安装包另存为screenshot_s60_3rd_autoboot_unsigned. sis(文件名可自定义),以上就是制作Screenshot开机自启动版本的全过程

axlrshaw 发表于 2010-3-11 21:01:46

这个帖子好!!

哼蘅的浪 发表于 2010-3-11 21:42:22

刚收到信息,说我的贴子加分了,谢谢你们哈!万分的份量呢~

yuanyiqin 发表于 2010-4-11 22:37:10

请教下,Z盘的程序如何启动

sxdyyy 发表于 2010-5-12 10:30:33

没看懂

yanmiffy 发表于 2010-5-15 22:49:18

永遠支持你們R~~

xiao寒- 发表于 2010-5-16 19:17:08

似懂非懂的。。。。。
页: [1]
查看完整版本: 开机启动制作方法