Nlite后期处理技术小结.docx
《Nlite后期处理技术小结.docx》由会员分享,可在线阅读,更多相关《Nlite后期处理技术小结.docx(26页珍藏版)》请在冰点文库上搜索。
Nlite后期处理技术小结
Nlite后期处理技术小结(第三次更新...全文完)
用了一段时间的Nlite,同时也在网上收集了不少的经验,在自己做出最适合自己或帮人装机的XP后,也不想保留后期处理技术了,留给后来的Nlite使用者,免得走弯路,研究后期的大多都保留自己的技术吧,偶觉得没有意思,想想吧,如果以前雨浪不公布他的经典方法,现在不知道多少人还在走弯路。
以后没有必要再研究这个东西了,偶还要集中精力研究平面三维和程序。
下面的文章部分引自雨浪,Tingpu,lyz0508等一些网友的发表的技术,特此感谢。
如有技术上的错误,也许偶也没有研究到,请跟帖斧正。
Nlite精简后期处理总结:
Nlite使用当然不想多说了,网上教程很多,自己挑自己需要的Windows组件吧。
唯一想说的是:
在勾选去除组件时,多看看组件说明,如移除Outlook,将会失去什么功能?
一、Nlite完成后,将I386文件夹中Win9xmig、Win9xupg、Drw目录删除掉,可以节约大量的空间。
二、实现Windows,Dos,光盘安装三种安装方式
要使你的XP能在Windows下安装,也就是调用Winnt32.exe不出错,需要保留Compdata目录下的Drvmain.inf,和Ntcompat.inf两个文件,以及Winntupg目录下的Netmap.inf和Netupgrd.dll两个文件即可,这个方法大概是Deepin找到的,或许是某个老外的方法也不一定。
当然前题是精简时不能移除DOS安装。
这样你的WindowsXP也可以实现Windows,Dos,光盘安装三种安装方式。
另外更激进点的作法是把这三个INF里除了小节名,键值全删光的作法,又节省了一点空间。
三、进一步压缩i386目录下的部分文件,如下表:
ntprint.cat
ntprint.inf
regedit.exe
dbghelp.dll
exts.dll
imagehlp.dll
dbgeng.dll
intl.inf (这个文件居然也可以压缩,而且都不用修改Txtsetup,真是太好了!
)
提示:
用Cabarc.exe(XP光盘support\tools目录下的Support.cab中)以21最大压缩可以得到最好的效果,偶认为可以集成进自己的XP中,因为一般大家精简时都删除了Support目录的,这个是MS的免费DD,怎能不要?
有时间,偶会写个它的外壳程序,方便大家调用。
另题外话一下,一直没有发现这个工具,以前一直以为是Winrar压缩率最高,结果有时候发现CAB居然比Winrar还厉害,该不是MS的秘密超强压缩算法吧?
给一个命令行格式吧:
cabarc-mLZX:
21n%1%2
存为cab.bat
调用示例:
压缩上面表中第一个文件,当然,其它文件也可以如此压缩
cabntprint.ca_x:
\winxp\i386\ntprint.cat x:
为你光盘的位置
下面两个文件用Upx进行压缩
winnt32u.dll
winntbbu.dll
不要忘了把未压缩的文件删除掉,又节约了好多的空间呀!
^_^
四、处理输入法(以保留了全拼,智能ABC为例)前题是在Nlite移除框中删除了输入法相关文件。
打开Hivesys.inf,查找Addreg,直到定位到最后一个,用分号注释掉或是删掉如下行:
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0020804","LayoutFile",0x00000000,"kbdus.dll"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0020804","LayoutText",0x00000000,"%KLT_74%"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0020804","IMEFile",0x00000000,"winsp.ime"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0030804","LayoutFile",0x00000000,"kbdus.dll"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0030804","LayoutText",0x00000000,"%KLT_75%"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E0030804","IMEFile",0x00000000,"winzm.ime"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E00E0804","LayoutFile",0x00000000,"kbdus.dll"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E00E0804","LayoutText",0x00000000,"%KLT_91%"
;HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\E00E0804","IMEFile",0x00000000,"pintlgnt.ime"
规律为每三行代表一个输入法,第一个三行是双拼,第二个三行是郑码,第三个三行是微软拼音,也就是在原输入法设置中点添加时看到的,注释掉后这里就不会出现了,现在只剩下内码和全拼
打开Hivedef.inf,查找Preload,这里将会看到几个,从字面上可以这么理解,就是预加载相应的输入法,也就是左点输入法看到的可以切换的输入法,这里我们将全拼设为不加载,将其置入添加输入法选项。
用分号注释除下面两行外的Preload
HKCU,"KeyboardLayout\Preload","1",0x00000002,"00000804"(美国中文键盘)
HKCU,"KeyboardLayout\Preload","2",0x00000002,"E0040804"(智能ABC)
同时更改加载顺序为上面所示,HKCU,"KeyboardLayout\Preload","1"《————这个就是加载顺序
顺便注释掉Intl.inf里的Simsun.ttc,,,,,65535这行,我发现不注释这里,在家里安装正常,在单位的机器里会出现字体缺失现象。
五、处理声音
前提是Nlite移除开机声,但保留xperror.wav、xphdrem.wav、xphdinst.wav、xpstartu.wav、xpshutdn.wav五个常用声音
打开Hivedef.inf,定位到文件未尾,添加如下行:
WINDOWS_XP_STARTUP="WindowsXP启动.wav"
WINDOWS_XP_SHUTDOWN="WindowsXP关机.wav"
WINDOWS_XP_HARDWARE_INSERT="WindowsXP硬件插入.wav"
WINDOWS_XP_HARDWARE_REMOVE="WindowsXP硬件删除.wav"
WINDOWS_XP_ERROR="WindowsXP错误.wav"
定位到文件开头有HKCU,"AppEvents\Schemes\Apps",,0x00000012这里的,将下面的行覆盖到相对应的声音默认项,因为Nlite过后后面的值全为空,所以进XP没声音了。
HKCU,"AppEvents\Schemes\Apps\.Default\DeviceConnect\.Current","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_HARDWARE_INSERT%"
HKCU,"AppEvents\Schemes\Apps\.Default\DeviceConnect\.Default","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_HARDWARE_INSERT%"
HKCU,"AppEvents\Schemes\Apps\.Default\DeviceDisconnect\.Current","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_HARDWARE_REMOVE%"
HKCU,"AppEvents\Schemes\Apps\.Default\DeviceDisconnect\.Default","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_HARDWARE_REMOVE%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Current","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_ERROR%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Default","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_ERROR%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemExit\.Current","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_SHUTDOWN%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemExit\.Default","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_SHUTDOWN%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Current","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_STARTUP%"
HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Default","",0x00020000,"%SystemRoot%\media\%WINDOWS_XP_STARTUP%"
聪明的你一定会留意到上面的DeviceConnect,DeviceDisconnect,SystemExit等关键字样,没错,中文意思就是硬件连接,断开,系统退出,系统启动等意思。
六、处理搜索助手(引用雨浪的)
一般人是直接在Nlite中移除搜索助手这个组件,但是我不推荐这样做,因为移除掉搜索助手后,在安装完成的系统中搜索的高级选项是不能保存的,需要你每次手动打开高级选项,否则搜索不到你要找的文件。
这个问题以前很多朋友给我提过,经过多次测试之后,总算找到一个算是完美的解决方法。
保留搜索助手,只要删msgr3en.dll、nls302en.lex、courtney.acs、earl.acs、rover.acs这五个文件即可。
这五个文件占用近5M空间,而整个搜索助手不过占用近6M空间而已。
这个工作可以交给Nlite来做,也可以后期手动来删除,并修改DOSNET.INF和TXTSETUP.SIF。
这里推荐由Nlite来做,因为可以减少手工修改DOSNET.INF和TXTSETUP.SIF的工作。
只需要在Nlite的删除额外文件框中分行输入这几个文件名。
删除这五个文件后,在安装过程中(安装组件时)会提示缺少文件,我们还需要修"srchasst.in_"文件来避免这个问题。
解压srchasst.in_,得到srchasst.inf,分别删"msgr3en.dll,,,32"、"nls302en.lex,,,32"、"courtney.acs,,,32"、"earl.acs,,,32"、"rover.acs,,,32"这几行,或者用封号屏蔽它们。
保存后再压缩回去,替换原文件即可。
偶再加两句吧,一般我是不会移去代理助手这个的,也就是那个叫Meilin.acs的文件,因为在进行Agent编程练习时要用到这个文件。
上面所说的三个Acs文件去掉后,梅林先生会出现在你的搜索中,如果你去了它后,系统里点启动动画助手后,就回不到上个菜单了。
可以保留这个文件,再用OfficeXP中有个很小的Acs文件对它进行替换,只有900多KB的,高兴了你还可以用瑞星的,金山的助手来替换。
七、处理桌面Luna主题,更改Administartor用户名,加强安全(引用Tingpu的)
早在二月时,研究集成Rolaye主题时发现的,也就是这里Bida后来发的一篇关于Luna主题修改的帖子的方法。
雨浪在说明这个问题时好象是写漏了一点,在下面第八点所说的小节中,有Wallpaper.MUI=@themeui.dll,-2036这么一行字得注释掉,你才看得到兰天白云。
当时我集成Rolaye主题是可以正确显示,Luna主题却不能,于是对比了一下两个主题的文件,发现Rolaye没有这行,于是注释掉Luna里的后,实验正常显示。
为了不让别人找到我们系统里的Administartor账号,进行Hacker行为,有必要修改这个系统默认账号,同理,Guest也可以改名的,参见Tingpu的原文,解压Defltwk.in_,打开Defltwk.inf
找到[SystemAccess]小节,添加
NewAdministratorName="Jasmine",这里Jamsine就是你第一次登录XP的管理员账号。
NewGuestName="XXXX"添加后可以更改Guest账号
改完后压缩,替换原文件。
八、手动添加Rolay主题并指定加载Rolay主题
偶下载得到的Rolay文件也许不全吧,有四个文件,这里当个示例。
首先将四个文件中带长文件名的改成8.3Dos标准的文件并压缩了放I386目录里,否则Dos安装时会不认的。
Royale.msstyles改成royale.mst
shellstyle.dll改成royaless.dll
Royale.theme改成Royale.the
再将Royale.bmp用Acdsee改成JPG格式的Royale.jpg,谁叫Jpg的省空间呢?
嘿嘿
打开Royale.the,定位到[ControlPanel\Desktop]小节,把Wallpaper=%WinDir%Resources\Themes\Royale\royale.bmp改成对应的JPG
当然,这里你还可以改成自己喜爱的桌面。
打开TXTSETUP.sif,用十五的方法,跳到自己的标示后面,添加如下行
royale.jpg=1,,,,,,,306,0,0
royale.mst=1,,,,,,,306,0,0,Royale.msstyles
royaless.dll=1,,,,,,,307,0,0,shellstyle.dll
royale.the=1,,,,,,,129,0,0,Royale.theme
然后定位到开头的[WinntDirectories]小节,在最后添加如下两行
306=Resources\Themes\Royale
307=Resources\Themes\Royale\Shell\NormalColor
然后打开Winnt.sif添加如下小节和键值以加载Rolay主题,改成luna.theme想必你也知道什么意思了吧?
随意切换吧。
[Shell]
CustomDefaultThemeFile="%WinDir%\Resources\Themes\Royale.theme"
哪天你不想集成这个主题了,把上面的修改一去掉,删除相应的文件就成了,免去了用集成包集成容易,去掉难的问题。
当然,你愿意用集成包偶也没有任何意见,青菜罗卜各有所爱嘛。
九、手动添加自己的驱动
暂时没有找到指定光驱路径的方法。
不过偶想可以通过编程,读取HKLM\Software\Microsoft\WindowsNt键值Sourcepath得到原安装路径,
再通过Advanceinfinstall过程调用安装驱动也许是个完美的解决办法,XP的安装程序不用说,它当然是知道你从哪里安装XP的。
为什么不用Nlite集成?
主要考虑以后驱动的升级,为了驱动升级,我们还得安装installer3,.net2,Nlite,拷贝XP原盘,运行Nlite重新
集成新驱动。
。
。
这样的步子,时间慢长,还得保存当时的Lite配置。
晕~
当自己Diy的时候,总是希望集成自己主板的,显卡的,声卡的驱动,免得安装时到处翻驱动盘,偶可不希望用别人集成了自己用不上的驱动的光盘,偶还想留点空间集成自己喜欢的软件呢,如果你有这样的想法话,OK,跟我来,手动集成自己的驱动,不过需要你有一点读懂Inf的基本知识,这点都做不到的话,我想你还是用Nlite集成算了。
以偶的Intel945主板和AtiX550显卡为例,首先分析,打开Intel的主板驱动说明,看了一下,E文的,哦,原来如此,既带了95,98的驱动,又有2000,XP的驱动,不仅如此,还有其它Intel芯片的驱动,呵呵,既如此,我们安装的是XP呀,干嘛还要95,98的驱动?
AtiX500的经过
分析后也是如此,看来现在的驱动程序基本都是做成一体化了,不象以前的Nvidia的还要分2000的,XP的,现在不管你哪个操作系统,都可以安装的。
好,思路清楚了,驱动也要精简!
问题是如何取得这些驱动?
方法当然是有的,用驱动精灵,优化大师,可提取出来的驱动好象都是什么Oem02.inf之类的,某些软件还提取不到CAT文件,我可不想我的驱动安装后显示没有经过WHQL硬件测试的。
反复实验后,我发现在安装主板驱动时,系统中的临时文件夹中有解开的驱动文件,再分析已安装好的驱动,我找到了如下10个文件和我的主板驱动相关,压缩后共才31KB,原文件是788KB,呵呵~~
945.cat
945.inf
dmi_pci.cat Dmi_pci相关的
dmi_pci.inf
ich7core.catICH7南桥相关的
ich7core.inf
ich7ide.cat ICH7南桥IDE相关的
ich7ide.inf
ich7usb.cat ICH7南桥USB相关
ich7usb.inf
AtiX550的驱动解开到是好,安装程序会帮你解开驱动的,目录下那个CX_30152.inf就是对应的XP的驱动,另一个是2000的。
打开分析,呵呵,看了半天,前面部分基本没有什么,好容易分析到最后几个小段了,一眼看到[SourceDisksFiles]小节,呵呵,正是自己想要的呀,找到了!
[SourceDisksFiles]
ati2cqag.dll=1
ati2dvag.dll=1
ati2edxx.dll=1
ati2erec.dll=1
ati2evxx.dll=1
ati2evxx.exe=1
ati2mdxx.exe=1
ati2mtag.sys=1
ati3duag.dll=1
atiddc.dll=1
atidemgr.dll=1
atifglpf.xml=1
atiicdxx.dat=1
atiiiexx.dll=1
atikvmag.dll=1
atioglx1.dll=1
atioglxx.dll=1
atipdlxx.dll=1
atitvo32.dll=1
ativcaxx.cpa=1
ativcaxx.vp=1
ativckxx.vp=1
ativcoxx.dll=1
ativvaxx.dll=1
ativvpxx.vp=1
oemdspif.dll=1
一共是26个文件,将相应的文件拷到另一个目录下,再将CX_30152.inf,CX_30152.Cat一起拷过来,压缩,呵呵,得到了7.01MB的驱动文件,
而原驱动文件是11.7MB大,哈~真是爽呀。
。
在Lang目录下建立Intel和Ati两个目录,分别把各自的文件拷到这两个目录下。
同理,打开Txtsetup.sif,在[SourceDisksNames.x86]小节后添加两个源路径
20=%cdname%,%cdtagfilei%,,\i386\lang\ati
21=%cdname%,%cdtagfilei%,,\i386\lang\intel
在[WinntDirectories]小节后面添加
308=Temp\B_30397
跳到标志符后(这里多次使用标志符,你终于明白为什么要这么做了吧?
)添加
;hereismyadded(意思是从这里开始是偶自己添加的)
ati2cqag.dll=20,,,,,,,308,0,0
ati2dvag.dll=20,,,,,,,308,0,0
ati2edxx.dll=20,,,,,,,308,0,0
ati2erec.dll=20,,,,,,,308,0,0
ati2evxx.dll=20,,,,,,,308,0,0
ati2evxx.exe=20,,,,,,,308,0,0
ati2mdxx.exe=20,,,,,,,308,0,0
ati2mtag.sys=20,,,,,,,308,0,0
ati3duag.dll=20,,,,,,,308,0,0
atiddc.dll =20,,,,,,,308,0,0
atidemgr.dll=20,,,,,,,308,0,0
atifglpf.xml=20,,,,,,,308,0,0
atiicdxx.dat=20,,,,,,,308,0,0
atiiiexx.dll=20,,,,,,,308,0,0
atikvmag.dll=20,,,,,,,308,0,0
atioglx1.dll=20,,,,,,,308,0,0
atioglxx.dll=20,,,,,,,308,0,0
atipdlxx.dll=20,,,,,,,308,0,0
atitvo32.dll=20,,,,,,,308,0,0
ativcaxx.cpa=20,,,,,,,308,0,0
ativcaxx.vp=20,,,,,,,308,0,0
ativckxx.vp=20,,,,,,,308,0,0
ativcoxx.dll=20,,,,,,,308,0,0
ativvaxx.dll=20,,,,,,,308,0,0
ativvpxx.vp=20,,,,,,,308,0,0
oemdspif.dll=20,,,,,,,308,0,0
cx_30152.inf=20,,,,,,,45,0,0
cx_30152.cat=20,,,,,,,45,0,0
《-----空行分开,使我以后一看也知道上面是显卡的,下面是主板的驱动
dmi_pci.inf=21,,,,,,,45,0,0
945.inf =21,,,,,,,45,0,0
ich7core.inf