Nlite后期处理技术小结 - Windows精简与定制技术 - 电脑技术交流 - 天空竞技场 - lucky8k.com
发新话题
打印

[转帖] Nlite后期处理技术小结

十、手动添加桌面壁纸,用户头像,屏保,更新Flash插件
如果你不喜欢XP里自带的那些壁纸,用户头像、屏保,人家集成的壁纸,头像,屏保可能不是你最喜欢的,自己动手来DIY吧,我的东西为什么要和别人的一样??所谓个性化的东西就是这个吧,OK,让我们来把他们替换掉,添加新的壁纸和屏保。

壁纸一般采用Jpg的格式,如果不是,最好用图像软件来转换一下,省点空间,壁纸在Winxp中放在WINDOWS\Web\Wallpaper目录下的,照例,查看Txtsetup.sif中[WinntDirectories]中的定义,第一行的1981 = Web\Wallpaper这个就是我们想要的,只要按照添加文件的方法添加如xpdsk001.jpg = 1,,,,,,,1981,0,0的格式就成了,放I386中时不要忘了在Dosnet.inf中添加d1,xpdsk001.jpg一行,同时为了方便文件名也使用8.3格式的,照例用二的方法进行压缩,如果是放在Lang目录中,就不用修改Dosnet.inf了。屏保是放在System32中的,集成方法一样,不重复了。

用户头像是放在Documents and Settings\All Users\Application Data\Microsoft\User Account Pictures\Default Pictures中的,
一般可以采用替换法,头像是48*48的24位BMP格式的真彩图像,一共是23张,大家可以找找QQ的图像,也可以找点好看的图像,缩放成这种格式的。为了方便,偶做好了23张头像,放在一个目录中,同时编了个批处理如下:
copy face01.bm_ c:\winxp_vol\i386\airplane.bm_
copy face02.bm_ c:\winxp_vol\i386\astro.bm_
copy face03.bm_ c:\winxp_vol\i386\soccer.bm_
copy face04.bm_ c:\winxp_vol\i386\butterfl.bm_
copy face05.bm_ c:\winxp_vol\i386\cat.bm_
copy face06.bm_ c:\winxp_vol\i386\fish.bm_
copy face07.bm_ c:\winxp_vol\i386\pnkflowr.bm_
copy face08.bm_ c:\winxp_vol\i386\guitar.bm_
copy face09.bm_ c:\winxp_vol\i386\snwflake.bm_
copy face10.bm_ c:\winxp_vol\i386\beach.bm_
copy face11.bm_ c:\winxp_vol\i386\car.bm_
copy face12.bm_ c:\winxp_vol\i386\chess.bm_
copy face13.bm_ c:\winxp_vol\i386\dirtbike.bm_
copy face14.bm_ c:\winxp_vol\i386\dog.bm_
copy face15.bm_ c:\winxp_vol\i386\drip.bm_
copy face16.bm_ c:\winxp_vol\i386\duck.bm_
copy face17.bm_ c:\winxp_vol\i386\frog.bm_
copy face18.bm_ c:\winxp_vol\i386\horses.bm_
copy face19.bm_ c:\winxp_vol\i386\kick.bm_
copy face20.bm_ c:\winxp_vol\i386\liftoff.bm_
copy face21.bm_ c:\winxp_vol\i386\palmtree.bm_
copy face22.bm_ c:\winxp_vol\i386\redflowr.bm_
copy face23.bm_ c:\winxp_vol\i386\skater.bm_

这种方法不用费多少精力,而且也不用修改Txtsetup.sif,大概好象听说有些作品光盘就是采用的这种方法。

TOP

第二种方法就是修改SHL_IMG.inf,不过同时也要修改Txtsetup.sif,有点复杂,不过可以控制拷贝多少个头像。
[SHGINA.CopyFiles]
"%XP_FACE01%",face01.bmp
"%XP_FACE02%",face02.bmp
"%XP_FACE03%",face03.bmp
"%XP_FACE04%",face04.bmp
"%XP_FACE05%",face05.bmp
"%XP_FACE06%",face06.bmp
"%XP_FACE07%",face07.bmp
"%XP_FACE08%",face08.bmp
"%XP_FACE09%",face09.bmp
"%XP_FACE10%",face10.bmp
"%XP_FACE11%",face11.bmp
"%XP_FACE12%",face12.bmp
"%XP_FACE13%",face13.bmp
"%XP_FACE14%",face14.bmp
"%XP_FACE15%",face15.bmp


[Strings]
XP_FACE01 = "face001.bmp"
XP_FACE02 = "face002.bmp"
XP_FACE03 = "face003.bmp"
XP_FACE04 = "face004.bmp"
XP_FACE05 = "face005.bmp"
XP_FACE06 = "face006.bmp"
XP_FACE07 = "face007.bmp"
XP_FACE08 = "face008.bmp"
XP_FACE09 = "face009.bmp"
XP_FACE10 = "face010.bmp"
XP_FACE11 = "face011.bmp"
XP_FACE12 = "face012.bmp"
XP_FACE13 = "face013.bmp"
XP_FACE14 = "face014.bmp"
XP_FACE15 = "face015.bmp"

而且千万不要输错了,否则可能引起安装出错。

更新Flash插件方法类似,采用替换法,系统自带的是6.X的,现在都9.X版本了,高兴了还可以修改一下swFlash.inf这个文件,不修改也没有什么,反正这个插件随着Flash软件的更新,年年都在更新的。

TOP

十一、自动以比较专业的型式安装Winrar,极点五笔,Windows media play 10的方法

注意到V5版开始后Deepin的光盘在安装XP后第一次进系统时左上角有个安装进程处理框的提示么?呵呵,怎么实现的呢?有心人可以自己分析一下 Deepin的光盘,这里就不多说了。以前在更新IE的时候也看见过种对话框的,有意思。后来无意中又看到lyz0508网友发表的一篇关于无人值守更深入的文章,来龙去脉也就更清楚了,他也是在MS网站上看到关于RunOnceEx键值的说明文章才知道的。

让我们来看看下面一段批处理的代码Install.cmd

@echo off
IF EXIST D:\WIN51IP set CDROM=D:
IF EXIST E:\WIN51IP set CDROM=E:
IF EXIST F:\WIN51IP set CDROM=F:
IF EXIST G:\WIN51IP set CDROM=G:
IF EXIST H:\WIN51IP set CDROM=H:
IF EXIST I:\WIN51IP set CDROM=I:
IF EXIST J:\WIN51IP set CDROM=J:
IF EXIST K:\WIN51IP set CDROM=K:
IF EXIST L:\WIN51IP set CDROM=L:
IF EXIST M:\WIN51IP set CDROM=M:
IF EXIST N:\WIN51IP set CDROM=N:
IF EXIST O:\WIN51IP set CDROM=O:
IF EXIST P:\WIN51IP set CDROM=P:
IF EXIST Q:\WIN51IP set CDROM=Q:
IF EXIST R:\WIN51IP set CDROM=R:
IF EXIST S:\WIN51IP set CDROM=S:
IF EXIST T:\WIN51IP set CDROM=T:
IF EXIST U:\WIN51IP set CDROM=U:
IF EXIST V:\WIN51IP set CDROM=V:
IF EXIST W:\WIN51IP set CDROM=W:
IF EXIST X:\WIN51IP set CDROM=X:
IF EXIST Y:\WIN51IP set CDROM=Y:
IF EXIST Z:\WIN51IP set CDROM=Z:

TOP

SET KEY=HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "安装常用软件和系统更新" /f
REG ADD %KEY% /V Flags /T REG_DWORD /D 20 /f

REG ADD %KEY%\010 /VE /D "安装 极点五笔 V5.1" /f
REG ADD %KEY%\010 /V 1 /D "%CDROM%\Soft\freewb51.EXE /S" /f

REG ADD %KEY%\020 /VE /D "安装 微软媒体播放器 V10.0" /f
REG ADD %KEY%\020 /V 1 /D "%CDROM%\Soft\wmp10.EXE /Q:A /R:N" /f

REG ADD %KEY%\030 /VE /D "安装 WinRAR V3.61" /f
REG ADD %KEY%\030 /V 1 /D "%CDROM%\Soft\winrar361.EXE /S" /f

保存为Install.cmd,放张XP的光盘在虚拟光驱中,然后在Winxp中运行一下这个文件,放心,不是什么病毒,懂点批处理的相信都看得懂什么意思。
运行后,打开注册表,定位到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx,看看有什么新加的么?
OK,看清楚后,让我们重新启动系统,再进系统时,这时会有点慢,请耐心等一下,肯定会进系统的,因为你的光盘里还没有添加这三个文件呢,所以系统会查找一下,进去后你看到了什么?呵呵,本节标题的意思你理解了吧?自由发挥吧。

另说一下,这段Install.cmd的方法,只能用于光盘上安装时不通过拷贝而直接安装运行光盘上的软件,如果XP是拷到硬盘某目录下进行Dos安装时,是无法找到你的XP光盘软件的,因为这种通过探测XP光盘下有没有Win51ip这个文件来确定光盘所在地的方法是无法探测到硬盘某目录下的Winxp 的,同时如果在T12分钟加载这个批处理的时候,屏幕会有一个黑屏闪过,不过不失为一种光盘安装解决的好办法吧,如果你不喜欢第九所说的驱动集成复杂方式,用这种方法还可以偷懒集成安装驱动程序。

如果是采用直接修改Hivesft.inf的方法添加键值的方法进行文件定位,又得采用 Oem目录方式,虽然可以解决文件定位的问题,却又增加了拷贝时间和Oem目录,这个当然不是偶喜欢的,偶的光盘没有Oem。对于这个问题,偶想了许久,也许编程才是唯一完美的方法,通过编程,读取XP源盘安装路径,然后用上面的方法添加启动键值,这样无轮你是从哪里安装的Winxp,都可以找到光盘上的软件。

TOP

十二、手动添加小工具,并在开始菜单中添加属于自己的专用菜单栏

绿色小软件一直是偶的最爱,小巧,实用,同样的功能干嘛非得要大型软件上不可?添加方法当然如前面所示的,为了能方便的在命令行里调用,偶认为还是放 System32目录下吧,当然收集这些绿软可不是简单的事,还得费点心思的,下载了还要杀毒,测试,非绿色软件还要自己绿化,非汉化软件也还是得汉化一下,今天我们以Diskinfo磁盘空间占用率显示软件为例,这个在深山红叶的PE中也有集成的,绿色的单文件,首先杀毒测试后,将 Diskinfo.exe进行压缩,同理,如果你不是放在Lang目录下的话,还得在Dosnet.inf中添加d1,Diskinfo.exe这行,我在Lang目录下建立了一个Tools文件夹,拷贝刚才压缩好的文件进去,打开Txtsetup.sif文件,在 [SourceDisksNames.x86]小节后面添加
23 = %cdname%,%cdtagfilei%,,\i386\lang\tools
然后跳到自己的标示符后面,添加下面一行
diskinfo.exe=23,,,,,,,2,0,0 意思就是让安装程序知道从Lang\Tools目录下(23)拷到System32(2)目录下,好,一切准备就绪。

不过你可不想老在Run中输入命令行才能启动这个程序吧?OK,让我们把它添加到开始程序菜单中去吧。
接下来,我们解压缩Syssetup.in_,打开这个Syssetup.inf文件,定位到[StartMenuItems]小节,在未尾处添加如下行

system_utility =%system_utility%,0

再上面添加后紧跟着建立一个[system_utility]小节,添加

%DiskInfo_ID% =diskinfo.exe,diskinfo.exe,,1,%DiskInfo_ID_infotip%

再定位到文件未尾,添加如下行
;add tools -》定位符
system_utility = "系统实用工具"

DiskInfo_ID = "磁盘信息分析器"
DiskInfo_ID_infotip = "显示您计算机磁盘文件夹中文件占用情况-DiskInfo"

顺便定位到[StartMenuCommon]小节,把下面两行注释掉,开始菜单里就不会出现windows catalog和设定程序访问和默认值两项了
;%windowscatalog% = ,"http://go.microsoft.com/fwlink/?LinkId=374",moricons.dll,107,"@%SystemRoot%\system32\shell32.dll,-22587","%SystemRoot%\system32\shell32.dll",22075
;%configureprograms% = appwiz.cpl,"control.exe appwiz.cpl,,3",moricons.dll,-114,"@%SystemRoot%\system32\xpsp1res.dll,-10078","%SystemRoot%\system32\xpsp1res

TOP

压缩回去替换原文件后,安装看看,是不是出现了象附件一样的菜单项,鼠标放上面还显示Tip信息呢,就跟系统内部集成程序一样,好玩不?
其它如集成音频视频解码器集成也可以用这个方法,不过有些插件需要注册一下,相信你搞得定这个的。

下面是偶添加的近二十个小软列表,总体积不到5.1MB,仅做参考,也许太多了,不过都是偶常用的一些小工具。

TweakUI_ID = "微软系统设置工具"
TweakUI_ID_infotip = "微软自家的TweakUI 2.10"
icesword_ID = "冰刃反黑工具"
icesword_ID_infotip = "斩断木马黑客程序的利剑-IceSword 1.10"
regshot_ID = "注册表快照工具"
regshot_ID_infotip = "方便的找出两个不同时刻注册表的变化值-RegShot 1.7"
FileMon_ID = "文件读写监视器"
FileMon_ID_infotip = "监视系统中各应用程序的读写情况-FileMon 7.02"
DiskInfo_ID = "磁盘信息分析器"
DiskInfo_ID_infotip = "显示您计算机磁盘文件夹中文件占用情况-DiskInfo"
Vs_ID = "系统服务查看器"
Vs_ID_infotip = "显示或修改您计算机的服务程序-ViewService 1.2"
Usboot_ID = "闪存启动盘制作器"
Usboot_ID_infotip = "启动盘制作器Usboot 1.68版"
KenPlay_ID = "Ken超小迷你播放器"
KenPlay_ID_infotip = "VC++做的仅30KB的播放器,可播放多种音频、视频格式(本系统可播放Real电影)-KenPlayer"
hijackth_ID = "IE浏览器反劫持工具"
hijackth_ID_infotip = "系统出了问题,就扫描一个结果放坛子里吧-HijackThis 1.99"
upiea_ID = "IE插件超级管理器"
upiea_ID_infotip = "可以方便的免疫、卸载恶意网站强加的插件-Upiea 2005"
ones_ID = "刻录软件Ones 2.0版"
ones_ID_infotip = "超小的刻录软件,是时候放弃Nero了-Ones 2.0.325"
winimage_ID = "软盘镜象制作工具"
winimage_ID_infotip = "已支持虚拟机VHD格式-Winimage 8.0"
aspack_ID = "可执行文件压缩器"
aspack_ID_infotip = "程序员必备的DD,可压缩EXE、DLL文件-Aspack 2.12 "
ultraiso_ID = "光碟镜象制作工具"
ultraiso_ID_infotip = "软碟通,ISO光碟伴侣-UltraISO 7.66"
ultras_ID = "屏幕捕获工具"
ultras_ID_infotip = "仅几百KB小巧的屏幕捕获工具,支持Jpg,Bmp,Png,Gif格式-UltraSnap Pro 1.4"
screen_ID = "屏幕录像机"
screen_ID_infotip = "小巧好用的屏幕录像工具,生成AVI格式,支持系统视频编码,生成的文件更小-Screen Record Studio"
hashcalc_ID = "超强文件指纹校验机"
hashcalc_ID_infotip = "可以计算MD5、CRC32等文件校验值的工具-HashCalc"
reshacke_ID = "可执行文件资源修改器"
reshacke_ID_infotip = "老牌好用的文件资源修改器-Resource Hacker"
peid_ID = "Win32程序外壳扫描器"
peid_ID_infotip = "可以探测EXE、DLL加的壳的类型-PEid 0.93"
imetool_ID = "输入法设置工具"
imetool_ID_infotip = "由Silence编写的输入法设置工具,可以安装IME,自由设置热键-ImeTool 2.6"
handy_ID = "删除文件恢复器"
handy_ID_infotip = "可以恢复已被删除的文件-HandyRecovery 1.0"

TOP

十三、移除Biosoem.*相关文件后,在Everst测试软件里不显示需要激活的方法。
这个是一个网友透露的,没有征得他的同意之前,这里还是空着吧。


十四、移除Nlite强加给我们的(也许有点不厚道,权当是让你了解Nlite给你文件中添加了什么吧)

如果你讨厌在安装XP后第一次进桌面时出现的那个黑色的Cmd框和添加在系统中的隐藏项,跟我来,手动移除这些DD。
打开Hivesft.inf,查找HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "nlreg",0x00020000,"rundll32 advpack.dll,LaunchINFSection %SystemRoot%\inf\nlite.inf,T"
然后注释掉。

打开txtsetup.sif,找到nlhive.inf = 16和nlite.inf = 16两行,注释掉
找到AddReg = nlhive.inf,nLite,注释掉
找到nlhive.inf = 1,,,,,,_x,,3,3和nlite.inf = 1,,,,,,,20,0,0,注释掉

打开Dosnet.net,找到d1,nlhive.inf和d1,nlite.inf两行,注释掉
解压sysoc.in_,打开sysoc.inf,找到nLite=ocgen.dll,OcEntry,nLite.inf,HIDE,7和nLiteRF=ocgen.dll,OcEntry,nLite.inf,HIDE,7
注释掉。

同时可以将Nlite.inf和Nlhive.inf里想要的内容移到自己的注册表优化文件,然后就可以顺手将这两个文件Del了。哗,世界清静了。如果你还有洁僻,还可以把每个Nlite修改过的文件未尾的Nlite标志语删了,应该说删这些还可以节省一些空间吧,这下整个系统里没有Nlite影子了,完整的原XP,(当然除了Nlite破解的几个Dll)呵呵,够BT的吧?

TOP

十五、手动添加字体,并注册这些新添加的字体

当我们需要集成字体时,(美工有时需要)有网友也试着修改TXTSETUP.sif文件,在系统里添加了字体,但安装完成后,打开写字板什么的,里面没有显示出安装的新字体,查看字体文件,也在Font目录下呀,其实打开控制面板中的字体后,系统会自动扫描字体,你的新字体在这个时候将被注册,再打开写字板时,哎呀,出来了,呵呵。能不能自动注册呀?问得好,好象也看见有人在问这个问题。答案就是注册表里,以集成华文仿宋体为例:这里提供一个小技巧,修改 TXTSETUP.sif时,不用把自己的文件夹在原有的文件中。最好是在未尾添加一个自己的标示符,如我自己添加时加了这么一句->;here is my added,以后要修改这里,只要在查找中输入;here,就可以直接跳到这里来了。
将字体stfangso.ttf压缩一下,放在 i386\lang这里,为什么放这里?一个是好查找,二个是不用修改Dosnet.inf了,因为Lang目录在安装是会被系统自动拷到临时目录中的,不信,你再在Lang目录下建个空目录,在第一次安装需要重启时,不启动系统,跑临时文件夹中去看看,是不是同样有个相同的空目录?

接着:打开TXTSETUP.sif,用上面的方法跳到自己的标示符这里,添加stfangso.ttf=7,,,,,,,22,0,0这行字,7是指lang目录,22是指系统Fonts
目录,再打开Hivesft.inf,定位到HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts",,0x00000012这里,在后面随便那行后面
添加HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Fonts","%hwzs%",,"stzhongs.ttf"一行,再翻到未位的[strings]小节里,
添加一行hwfs="华文仿宋",聪明的你一下看出门道了吧?嘿嘿,这样处理后,安装上Xp,打开写字板,看看字体是不是在那里呢?看到这里,你是不是想集成微软的雅黑字体呢?(好象有点大)什么是雅黑字体?晕,自己在网上搜一下相关的信息吧,再自己集成试试。

另外,还流传着一种用高手改造过的Simsun.ttc替换XP的宋体字体的方法,还可以节省一些空间,据说是来自雨浪的系统维护工具盘,压缩后只有 1.2MB大,比原来的小很多,具体会不会出现Tingpu说的显示某些如8号,12号的字会模糊的现象,没试过,有兴趣的可以试试。

TOP

十六、手动添加王码五笔86版

本来不想写这个的,因为太简单了,看到有人在问这个问题,就当是给五笔爱好者一个回复吧。
在华军网上有这个下载,也就是Office 2000光盘里自带的那个老五笔,大多学86版五笔时间长点的都还在用这个吧,因为那时还没有出极点五笔,不过偶并不喜欢用这个,极点才是偶的最爱,集成它只是应一个同事的要求。解开后共四个文件,Winwb86.mb和Winwb86.ime这两个就是86版的,文件不大,照例用上面的方法进行压缩,参照四的方法打开Hivesys.sif,在那个位置上添加

HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0100804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0100804","Layout Text",0x00000000,"%KLT_92%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0100804","IME File",0x00000000,"winwb86.ime"

[Strings]小节中添加
KLT_92="王码五笔输入法86版"

hivedef.sif文件中preload处添加一个HKCU,"Keyboard Layout\Preload","4",0x00000002,"E0100804"
别忘了修改Txtsetup.sif和Dosnet.inf添加文件。
OK,安装看看,是不是出来了?

后记:其它象一些添加注册表、服务优化的东西我想也不用多说了,在网上可以搜到一大堆的优化键值,保存好后导入你的XP就成了。关于修改安装画面什么的 ZMN120上面讨论得有点多,不重复了。高级点的就象Deepin一样自己用Delphi什么的写个程序,用上面的方法集成到自己的XP盘中就成了。 Nlite的东西是不完美的,你不知道系统中是否还缺失什么文件,偶的感受是,只要你不过份的精简掉XP的组件,通过上面的后期处理,一般都不会出现什么安装字体缺失,插USB出现安装驱动对话框,不能安装SQL什么之类的问题,都能正常安装与使用。具体系统中还有什么BUG呢?这个我不知道,所以大多数制作人都是采用发放作品,让大家免费安装测试,通过问题的反馈或调整精简方案,或添加文件,或修改注册表等方法加以解决。当然,这也无可厚非,人多力量大嘛,所以高手依然是高手,菜鸟还是菜鸟,研究技术的还是在研究技术,大自然之造化也。

TOP

偶不是什么高手,只是对技术感兴趣罢了,Deepin也许做得比偶所述的还要更多,每次分析他的碟子都发现新的东西,他对技术执着的追求精神真的值得大家好好学习。光盘制作技术中偶认为PE和Nlite有很多的相通之处,通过制作,可以加深我们对系统内部的了解。再次总结一下Nlite研究需要具备的知识吧:

1.Dos基础知识,很多古老的命令现在都还在发挥着它不可替代的作用。
2.注册表知识,系统的内核。
3.INF文件结构。
4.常用工具如REGSNAP注册表监视,Resource Hacker资源修改的使用。
5.虚拟机调试工具的使用。
6.启动光盘制作知识。
7.Nlite的使用
8.后期处理
9.E文,有时间多去老外的坛子里逛逛,也许会有新的发现。(www.MSFN.org是个好去处)

要想做得更好,平面设计和编程是必不可少的。看了这么多,也许你心里在打退堂鼓了,呵呵,别怕,知识是靠积累才能得到的,没有努力,哪来的成功?

看完本章后,你的感觉是什么?还在羡慕别人做的XP精简版么?自己动手打造属于自己的Winxp吧,上MS网上转转看看,偶也是在自己研究中找到了解决的办法,细心加耐心,没准你又发现比我更好的办法呢?

注:此方法是用在精简方案已定的情况下才做的,否则每次都修改,累死你。

TOP

发新话题