The idea is to replace binaries from SP2 with the same from SP3 but don't touch registry hives.
NOTE:
I can't use the regular SP3_extracted\i386\update\update.exe from Service Pack to update OS because the target to update is before FBA Windows XP Embedded w/ SP2 run-time image. FBA (First Boot Agent) completes the run-time image build process = setup in a regular Windows XP Professional install (GUI part of install after textmode copy step)
i use this script to get a list of all files to replace.
CODE
SET TARGETROOT=%1
FOR /F "USEBACKQ DELIMS==" %%h IN (`DIR /B /AD /S %TARGETROOT%`) DO (
SET SRCPATH=%%h
call :loop
SET SRCPATH=
)
goto :eof
:loop
echo/[%SRCPATH%]>>%temp%\filelist.txt
FOR /F "USEBACKQ DELIMS==" %%I IN (`DIR /B /A-D /OGN %SRCPATH%\*`) DO (
echo/%%~nxI>> %temp%\filelist.txt
)
goto :eof
FOR /F "USEBACKQ DELIMS==" %%h IN (`DIR /B /AD /S %TARGETROOT%`) DO (
SET SRCPATH=%%h
call :loop
SET SRCPATH=
)
goto :eof
:loop
echo/[%SRCPATH%]>>%temp%\filelist.txt
FOR /F "USEBACKQ DELIMS==" %%I IN (`DIR /B /A-D /OGN %SRCPATH%\*`) DO (
echo/%%~nxI>> %temp%\filelist.txt
)
goto :eof
for each file in the list, i have to check if updated binary exists in SP3_extracted\i386 folder and copy SP3_extracted\i386\%%~nxI to %SRCPATH%
filelist.txt
CODE
[D:\Windows]
explorer.exe
explorer.scf
hh.exe
msdfmap.ini
NOTEPAD.EXE
regedit.exe
twain.dll
twain_32.dll
twunk_16.exe
twunk_32.exe
WinSetup.log
[D:\Windows\AppPatch]
AcGenral.dll
AcLayers.dll
AcLua.dll
AcSpecfc.dll
AcVerfyr.dll
AcXtrnal.dll
apphelp.sdb
drvmain.sdb
msimain.sdb
sysmain.sdb
[D:\Windows\Cursors]
...
explorer.exe
explorer.scf
hh.exe
msdfmap.ini
NOTEPAD.EXE
regedit.exe
twain.dll
twain_32.dll
twunk_16.exe
twunk_32.exe
WinSetup.log
[D:\Windows\AppPatch]
AcGenral.dll
AcLayers.dll
AcLua.dll
AcSpecfc.dll
AcVerfyr.dll
AcXtrnal.dll
apphelp.sdb
drvmain.sdb
msimain.sdb
sysmain.sdb
[D:\Windows\Cursors]
...
i have a few files exceptions i have to take care before replacing them:
if ACPIAPIC_UP ntoskrnl.exe=ntoskrnl.exe
if ACPIAPIC_UP hal.exe=halaacpi.dll
and a dir exception
skip D:\Windows\system32\config
