Install the proper Service Pack and WUA for Windows XP Embedded (#147)

Fixes #73
This commit is contained in:
Douglas R. Reno 2023-05-13 16:55:02 -07:00 committed by Adam Demasi
parent 3621e993f9
commit ea02908d46
No known key found for this signature in database
GPG key ID: C645138D382EA6A5
5 changed files with 45 additions and 8 deletions

View file

@ -84,6 +84,7 @@ FunctionEnd
!insertmacro NeedsSPHandler "W2KSP4" "Win2000" 2 !insertmacro NeedsSPHandler "W2KSP4" "Win2000" 2
!insertmacro NeedsSPHandler "XPSP2" "WinXP2002" 0 !insertmacro NeedsSPHandler "XPSP2" "WinXP2002" 0
!insertmacro NeedsSPHandler "XPSP3" "WinXP2002" 2 !insertmacro NeedsSPHandler "XPSP3" "WinXP2002" 2
!insertmacro NeedsSPHandler "XPESP3" "WinXP2002" 2
!insertmacro NeedsSPHandler "2003SP2" "WinXP2003" 1 !insertmacro NeedsSPHandler "2003SP2" "WinXP2003" 1
!insertmacro NeedsFileVersionHandler "KB835732" "kernel32.dll" "5.00.2195.6897" !insertmacro NeedsFileVersionHandler "KB835732" "kernel32.dll" "5.00.2195.6897"
@ -94,6 +95,7 @@ FunctionEnd
!insertmacro PatchHandler "XPSP2" "Windows XP Service Pack 2" "/passive /norestart" !insertmacro PatchHandler "XPSP2" "Windows XP Service Pack 2" "/passive /norestart"
!insertmacro PatchHandler "XPSP3" "Windows XP Service Pack 3" "/passive /norestart" !insertmacro PatchHandler "XPSP3" "Windows XP Service Pack 3" "/passive /norestart"
!insertmacro PatchHandler "2003SP2" "Windows XP x64 Edition/Server 2003 Service Pack 2" "/passive /norestart" !insertmacro PatchHandler "2003SP2" "Windows XP x64 Edition/Server 2003 Service Pack 2" "/passive /norestart"
!insertmacro PatchHandler "XPESP3" "Windows XP Embedded Service Pack 3" "/passive /norestart"
Function DownloadIE6 Function DownloadIE6
Call NeedsIE6 Call NeedsIE6

View file

@ -1,10 +1,11 @@
Function DetermineWUAVersion Function DetermineWUAVersion
; Hardcoded special case for XP Home SP3, because the WUA 7.6.7600.256 setup SFX is seriously ; Hardcoded special case for XP Home/Embedded SP3, because the WUA 7.6.7600.256 setup SFX is
; broken on it, potentially causing an unbootable Windows install due to it entering an infinite ; seriously broken on it, potentially causing an unbootable Windows install due to it entering an
; loop of creating folders in the root of C:. ; infinite loop of creating folders in the root of C:.
${If} ${IsWinXP2002} ${If} ${IsWinXP2002}
${AndIf} ${AtLeastServicePack} 3 ${AndIf} ${AtLeastServicePack} 3
${AndIf} ${IsHomeEdition} ${AndIf} ${IsHomeEdition}
${OrIf} ${IsEmbedded}
StrCpy $1 "5.1.3-home" StrCpy $1 "5.1.3-home"
${Else} ${Else}
GetWinVer $1 Major GetWinVer $1 Major

View file

@ -176,6 +176,10 @@ RUS-x86=http://download.windowsupdate.com/msdownload/update/software/svpk/2008/0
SVE-x86=http://download.windowsupdate.com/msdownload/update/software/svpk/2008/04/windowsxp-kb936929-sp3-x86-sve_13c5ecca22e12224934a1faa1190ee34db3995ae.exe SVE-x86=http://download.windowsupdate.com/msdownload/update/software/svpk/2008/04/windowsxp-kb936929-sp3-x86-sve_13c5ecca22e12224934a1faa1190ee34db3995ae.exe
TRK-x86=http://download.windowsupdate.com/msdownload/update/software/svpk/2008/04/windowsxp-kb936929-sp3-x86-trk_5aaf60501636af08c97ef1c18f1315f4ed6fbcdf.exe TRK-x86=http://download.windowsupdate.com/msdownload/update/software/svpk/2008/04/windowsxp-kb936929-sp3-x86-trk_5aaf60501636af08c97ef1c18f1315f4ed6fbcdf.exe
[XPESP3]
; Only seems to be available in English.
x86=http://web.archive.org/web/20140813085714/http://download.microsoft.com/download/3/a/e/3aea3d4e-159d-4078-a5b4-5b1e4f5a4db4/WindowsXP-KB958255-ENU.exe
; Windows XP 2003 ; Windows XP 2003
[2003SP2] [2003SP2]
CHH-x86=http://download.windowsupdate.com/msdownload/update/v3-19990518/cabpool/windowsserver2003-kb914961-sp2-x86-chh_2de4fb187533e226cd615bcda30b9a8a2836e197.exe CHH-x86=http://download.windowsupdate.com/msdownload/update/v3-19990518/cabpool/windowsserver2003-kb914961-sp2-x86-chh_2de4fb187533e226cd615bcda30b9a8a2836e197.exe

View file

@ -126,6 +126,7 @@
!define IsServerOS `!= _WinVer_TestProduct ${VER_NT_WORKSTATION}` !define IsServerOS `!= _WinVer_TestProduct ${VER_NT_WORKSTATION}`
!define IsHomeEdition `"" _WinVer_TestSuite ${VER_SUITE_PERSONAL}` !define IsHomeEdition `"" _WinVer_TestSuite ${VER_SUITE_PERSONAL}`
!define IsEmbedded `"" _WinVer_TestSuite ${VER_SUITE_EMBEDDEDNT}`
!define IsSafeMode `!= _WinVer_TestSystemMetric ${SM_CLEANBOOT}` !define IsSafeMode `!= _WinVer_TestSystemMetric ${SM_CLEANBOOT}`

View file

@ -149,6 +149,11 @@ ${MementoSection} "Windows XP Service Pack 3" XPSP3
Call RebootIfRequired Call RebootIfRequired
${MementoSectionEnd} ${MementoSectionEnd}
${MementoSection} "Windows XP Embedded Service Pack 3" XPESP3
Call InstallXPESP3
Call RebootIfRequired
${MementoSectionEnd}
; XP 2003 prerequisities ; XP 2003 prerequisities
${MementoSection} "Windows XP/Server 2003 Service Pack 2" 2003SP2 ${MementoSection} "Windows XP/Server 2003 Service Pack 2" 2003SP2
Call Install2003SP2 Call Install2003SP2
@ -454,6 +459,7 @@ SectionEnd
!insertmacro MUI_DESCRIPTION_TEXT ${W2KSP4} "Updates Windows 2000 to Service Pack 4, as required to install the Windows Update Agent.$\r$\n${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}" !insertmacro MUI_DESCRIPTION_TEXT ${W2KSP4} "Updates Windows 2000 to Service Pack 4, as required to install the Windows Update Agent.$\r$\n${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}"
!insertmacro MUI_DESCRIPTION_TEXT ${IE6SP1} "Updates Internet Explorer to 6.0 SP1, as required for Legacy Update.$\r$\n${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}" !insertmacro MUI_DESCRIPTION_TEXT ${IE6SP1} "Updates Internet Explorer to 6.0 SP1, as required for Legacy Update.$\r$\n${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}"
!insertmacro MUI_DESCRIPTION_TEXT ${XPSP3} "Updates Windows XP to Service Pack 3. Required if you would like to activate Windows online. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}" !insertmacro MUI_DESCRIPTION_TEXT ${XPSP3} "Updates Windows XP to Service Pack 3. Required if you would like to activate Windows online. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}"
!insertmacro MUI_DESCRIPTION_TEXT ${XPESP3} "Updates Windows XP Embedded to Service Pack 3. Required if you would like to activate Windows online. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}"
!insertmacro MUI_DESCRIPTION_TEXT ${WES09} "Configures Windows to appear as Windows Embedded POSReady 2009 to Windows Update, enabling access to Windows XP security updates released between 2014 and 2019. Please note that Microsoft officially advises against doing this." !insertmacro MUI_DESCRIPTION_TEXT ${WES09} "Configures Windows to appear as Windows Embedded POSReady 2009 to Windows Update, enabling access to Windows XP security updates released between 2014 and 2019. Please note that Microsoft officially advises against doing this."
!insertmacro MUI_DESCRIPTION_TEXT ${2003SP2} "Updates Windows XP x64 Edition or Windows Server 2003 to Service Pack 2. Required if you would like to activate Windows online. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}" !insertmacro MUI_DESCRIPTION_TEXT ${2003SP2} "Updates Windows XP x64 Edition or Windows Server 2003 to Service Pack 2. Required if you would like to activate Windows online. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_SUPEULA}"
!insertmacro MUI_DESCRIPTION_TEXT ${VISTASP2} "Updates Windows Vista or Windows Server 2008 to Service Pack 2, as required to install the Windows Update Agent. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_MSLT}" !insertmacro MUI_DESCRIPTION_TEXT ${VISTASP2} "Updates Windows Vista or Windows Server 2008 to Service Pack 2, as required to install the Windows Update Agent. ${DESCRIPTION_REBOOTS} ${DESCRIPTION_MSLT}"
@ -552,12 +558,29 @@ Function .onInit
${EndIf} ${EndIf}
${If} ${IsWinXP2002} ${If} ${IsWinXP2002}
; Determine whether XP prereqs need to be installed ${If} ${IsEmbedded}
Call NeedsXPSP3 ; Determine whether XP Embedded prereqs need to be installed
Pop $0 ; Windows XP Embedded (version 2001), including FLP and WEPOS, has a different service pack
${If} $0 == 0
!insertmacro RemoveSection ${XPSP3} !insertmacro RemoveSection ${XPSP3}
StrCpy $HasAllPrereqs 0
Call NeedsXPESP3
Pop $0
${If} $0 == 0
!insertmacro RemoveSection ${XPESP3}
StrCpy $HasAllPrereqs 0
${EndIf}
${EndIf}
${IfNot} ${IsEmbedded}
; Determine whether XP prereqs need to be installed
!insertmacro RemoveSection ${XPESP3}
Call NeedsXPSP3
Pop $0
${If} $0 == 0
!insertmacro RemoveSection ${XPSP3}
StrCpy $HasAllPrereqs 0
${EndIf}
${EndIf} ${EndIf}
ReadRegDword $0 HKLM "${REGPATH_POSREADY}" "Installed" ReadRegDword $0 HKLM "${REGPATH_POSREADY}" "Installed"
@ -566,6 +589,7 @@ Function .onInit
${EndIf} ${EndIf}
${Else} ${Else}
!insertmacro RemoveSection ${XPSP3} !insertmacro RemoveSection ${XPSP3}
!insertmacro RemoveSection ${XPESP3}
!insertmacro RemoveSection ${WES09} !insertmacro RemoveSection ${WES09}
${EndIf} ${EndIf}
@ -711,6 +735,11 @@ Function PreDownload
Call DownloadXPSP3 Call DownloadXPSP3
${EndIf} ${EndIf}
${If} ${IsWinXP2002}
${AndIf} ${SectionIsSelected} ${XPESP3}
Call DownloadXPESP3
${EndIf}
; XP 2003 ; XP 2003
${If} ${IsWinXP2003} ${If} ${IsWinXP2003}
${AndIf} ${SectionIsSelected} ${2003SP2} ${AndIf} ${SectionIsSelected} ${2003SP2}