Revision 1.2.09.08.2006
I know how he made SP5. I used the same method but now I figured it out.
- You take out the contents of SP4, or SP5 by extracting it. You can use 7Zip to extract it by right clicking then extract. It really works to extract exes with 7-Zip but only certain exes can extract with 7zip.
- you edit the \update\update.inf to add more contents
- You add, or replace the updated files into the extracted Service Pack layout.
- Then once your done you don't need a special SP installer. All you have to have is a installer that will extract the files into a certian location, then run the update.exe file.
How to integrate the custom SP:
If you wanted to integrate it but don't have the /integrate option just install the files into a custom folder then just use the update\update.exe -s:folder_of_Custom_Service_Pack.
How to integrate hotfixes, updates, and maybe even updates of WMP:
Now to integrate hotfixes, and regular non-security updates what you need to do is replace the files like I told you, and add any files that are included in the update, then you take certain contents out of the hotfixes update.inf, then add it to your custom SPs update.inf.
Some examples on what to do to directly integrate all updates in your custom SP:
no svcpack installs necessary
say for example we wanted to integrate a Directx hotfix if we already integrated directx directly.
Windows2000-KB904706-DX9-x86-ENU.exe(You must extract the exe file using 7-Zip)//update/update.inf
update.inf
[Version] Signature="$Windows NT$" InstallPlatform=0 CatalogFile=%SP_SHORT_TITLE%.cat LanguageType=%LangTypeValue% MaxNtMinorVersionToUpdate=0 MaxNtMajorVersionToUpdate=5 NtBuildToUpdate=2195 NtMinorVersionToUpdate=0 NtMajorVersionToUpdate=5 MaxNtBuildToUpdate=2195 ThisServicePackVersion=0 MinNtServicePackVersion=1024 MaxNtServicePackVersion=1024 [ArchiveCatalogFilesOnly] %SP_SHORT_TITLE%.cat [PreRequisite] condition=SingleOp,Test.FileVer.Section [Test.FileVer.Section] GreatOrEqualOp = CheckFilever, System32.Files, quartz.dll , >= , 6.5.1.900 Display_String=%DispStrPreReq% [ProductCatalogsToInstall] %SP_SHORT_TITLE%.cat, update\%SP_SHORT_TITLE%.cat [ProductInstall.ReplaceFilesIfExist] CopyFiles=Copy.system32 CopyFiles=Copy.dllcache [ProductInstall.GlobalRegistryChanges.Install] AddReg=Product.Add.Reg DelReg=Product.Del.Reg [ProductInstall.GlobalRegistryChanges.ReInstall] AddReg=Product.Add.Reg DelReg=Product.Del.Reg [Save.Reg.For.Uninstall] HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE% HKLM,%UpdateRegKey%\%US_Product_Name%\SP%SERVICE_PACK_NUMBER%\%SP_SHORT_TITLE% HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE% [Product.Add.Reg] HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Setup", "LogLevel", 0x10001, 0 HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Installed",0x10001,1 HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%SP_SHORT_TITLE%,"Comments",0,%SP_TITLE% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "PackageName",, %SP_TITLE% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "PackageVersion",, %Package_Version% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "Publisher",, %Publisher% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "PublishingGroup",, %Publishing_Group_Name% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "ReleaseType",, %KB_Release_Type% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "ARPLink",, %ARP_Link%%SP_SHORT_TITLE% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "InstallerName",, %Installer_Name% HKLM,%UpdateRegKey%\%US_Product_Name%\%SP_SHORT_TITLE%, "InstallerVersion",, %Installer_Version4% HKLM,Software\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%, "DisplayIcon", 0x00020000, ""%windir%\system32\msiexec.exe"" HKLM,Software\Microsoft\Windows\CurrentVersion\Uninstall\%SP_SHORT_TITLE%, "ParentKeyName", 0x00000000, "OperatingSystem" [Product.Del.Reg] [DestinationDirs] Copy.system32=11 Copy.dllcache=65619 [Copy.system32] quartz.dll [Copy.dllcache] quartz.dll [SourceDisksNames] 1=%PRODUCT_NAME% [SourceDisksFiles] quartz.dll=1 [ProcessesToRunAfterReboot.RebootNotRequired] [ProcessesToRunAfterUninstallReboot.RebootNotRequired] [UninstallSections] GlobalRegistryChanges, GlobalRegistryChanges.UnInstall Add.Reg, Add.Reg.Uninstall Del.Reg, Del.Reg.Uninstall ServicesToStopAndStart, ServicesToStopAndStart.Uninstall [Strings] LangTypeValue = 0x09 Language = "ENU" SP_DATE = "8/31/2005" SP_SHORT_TITLE = "KB904706" SP_KB_NUMBER = "904706" SERVICE_PACK_NUMBER = 0 UpdateRegKey = "SOFTWARE\Microsoft\Updates" ;---------------Product Strings DispStrKB = "KB$(cmi.prereqKB) is required for this software update. Download it from [url="http://support.microsoft.com?kbid=$(cmi.prereqK%42%29"]http://support.microsoft.com?kbid=$(cmi.prereqKB)[/url] and then install this software update." ;Windows Media specific strings ;Windows Media Player specific strings ;Windows Media Player 6.4 specific strings ;Windows Media Player 7.1 specific strings ;Windows Media Player 8 specific strings ;Windows Media Player 9 specific strings ;Windows Media Player 10 specific strings ;Windows Media Services specific strings specific strings ;Windows Media Services 4.1 specific strings specific strings ;Windows Media Services 9 specific strings specific strings ;Windows Media Encoder specific strings specific strings ;DirectX specific strings specific strings ;DirectX 9 specific strings specific strings DispStrPreReq = "This software update can only be applied to DirectX 9. If you see this message, you do not have DirectX 9 installed and cannot install this software update." DispStrUp = "This software update cannot be applied because the version of DirectX 9 installed on this system already includes this software update." ;DirectX 9.0b specific strings specific strings ;Windows Media Format SDK specific strings specific strings ;Windows Media Player SDK specific strings specific strings ;Windows Media Server SDK specific strings specific strings ;Windows Media Encoder SDK specific strings specific strings ;Windows Media SDK specific strings specific strings ;Windows Media Rights Manager SDK specific strings specific strings ;Generic string that we can try to use for newer products in the future US_PRODUCT_NAME = "Windows 2000" ; DO NOT LOCALIZE SP_TITLE = "Security Update for Windows 2000 (KB904706)" ;-------------------End Product specific strings ;----Information for ARP, this is where the icon info will go when that is sorted out HelpLink = [url="http://support.microsoft.com?kbid=904706"]http://support.microsoft.com?kbid=904706[/url] URLInfoAbout = [url="http://support.microsoft.com"]http://support.microsoft.com[/url] ARP_Link = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" ;----Publishing and package info Package_Version = "1.0" Package_Version1 = "1.1" Package_Version2 = "1.2" Package_Version3 = "1.3" Package_Version4 = "1.4" Package_Version5 = "1.5" Publisher = "Microsoft Corporation" Publishing_Group_Name = "Windows Media Core Services" ;----Package Revision Values PkgRevision = "1" PkgRevision2 = "2" PkgRevision3 = "3" PkgRevision4 = "4" PkgRevision5 = "5" ;----All possible release Types according to SE standards KB_Release_Type = "Security Update" KB_Release_Type_C = "Critical Update" KB_Release_Type_R = "Recommended Update" KB_Release_Type_U = "Update" KB_Release_Type_H = "Hotfix" KB_Release_Type_SP = "Service Pack" KB_Release_Type_UR = "Update Rollup" ;----All possible file descriptions File_Description_H = "Hotfix Package" File_Description_U = "Update Package" File_Description_S = "Security Patch Package" ;----Supported Products OS_NT4 = "Windows NT 4" OS_W2K = "Windows 2000" OS_W2K_SP2 = "Windows 2000 Service Pack 2" OS_W2K_SP3 = "Windows 2000 Service Pack 3" OS_W2K_SP4 = "Windows 2000 Service Pack 4" OS_W2K_SP5 = "Windows 2000 Service Pack 5" OS_WXP = "Windows XP" OS_WXP_SP1 = "Windows XP Service Pack 1" OS_WXP_SP2 = "Windows XP Service Pack 2" OS_WXP_SP3 = "Windows XP Service Pack 3" OS_WXP_SP4 = "Windows XP Service Pack 4" OS_WXP_SP5 = "Windows XP Service Pack 5" OS_W2K3 = "Windows Server 2003" OS_W2K3_SP1 = "Windows Server 2003 Service Pack 1" OS_W2K3_SP2 = "Windows Server 2003 Service Pack 2" OS_W2K3_SP3 = "Windows Server 2003 Service Pack 3" OS_W2K3_SP4 = "Windows Server 2003 Service Pack 4" OS_W2K3_SP5 = "Windows Server 2003 Service Pack 5" Family_WinNT = "Windows NT Family" Family_Win2K = "Windows 2000 Family" Family_WinXP = "Windows XP Family" Family_Win2K3 = "Windows Server 2003 Family" ;----Processor Architecture ProcArch_x86 = "x86" ProcArch_x64 = "x64" ProcArch_ia64 = "ia64" ProcArch_mips = "mips" ;----Installer Information -- these are the two possible installer versions we support Installer_Name = "Update.exe" Installer_Version = "5.4.2.0" Installer_Version2 = "5.4.15.0" Installer_Version3 = "6.1.3.0" Installer_Version4 = "6.1.22.4" ;----??????? WSEDIR = "1033" TSCLIENTDIR = "Terminal Services Client" [Configuration] UpdateRegKey = %UpdateRegKey%\%US_Product_Name% EventLogDllName = spmsg.dll WaitTimeForServiceStop = -1 EventLogKeyName = WindowsMedia InstallationType = Hotfix InstallLogFileName = %SP_SHORT_TITLE%.log UnInstallLogFileName = %SP_SHORT_TITLE%Uninst.log UnInstallDirName = $NtUninstall%SP_SHORT_TITLE%$ AppFileinUseDetect = 3 ServiceFileinUseDetect = 1
then you cut, or copy the contents in [Copy.system32] such as quartz.dll then paste it in your custom SP's update.inf under [Copy.system32] with the other ???.dll, or .exe.
then you cut, or copy the contents in [Copy.dllcache] such as quartz.dll then paste it in your custom SP's update.inf under [Copy.dllcache] with the other ???.dll, or .exe.
then you cut, or copy the contents in [SourceDisksFiles] such as quartz.dll=1 then paste it in your custom SP's update.inf under [SourceDisksFiles] with the other ???.dll, or .exe=? (exm. 1).
then if [Test.FileVer.Section] has this content:
GreatOrEqualOp = CheckFilever, System32.Files, quartz.dll , >= , 6.5.1.900
Display_String=%DispStrPreReq%
then I recommend you put it in the [Test.FileVer.Section] so your file can be updated in the registry. That way Windows Update won't ask you to install the update you already integrated. A good test is WindizUpdate because you don't have to have WGA just to test it.
Also always integrate the /update/?????????.CAT, or .cat then place them in [Extract SP]/svcpack/place .cat's here. Then open your svcpack.inf and put your extra .cat file with the other .cat file entrees.
After your done do the update.exe -s:Drive:\path\to\your\Copied\Operating\System\Files\ (also that's where your i386 is also too just so you know).
You can even pack it in a installer, or in a Inno Setup file then have it ready for download on MSFN. You know post the download mirrors.
One more thing is you need to take out the contents out of update.ver and replace the existing entrees in the SP5s update.ver.
////////////////////////////////
Now please make this a sticky. This is very useful information. I found out this method. Now I know what Gurgelmeyer knows. You could even use Inno Setup.
This post has been edited by SammyDawn: 08 September 2006 - 06:59 AM



Help
Back to top










