CBS backporting for Windows XP and Windows Server 2003

Discussion in 'Windows XP / Older OS' started by ohault, Mar 22, 2023.

  1. ohault

    ohault MDL Member

    Dec 27, 2022
    227
    77
    10
    #1 ohault, Mar 22, 2023
    Last edited: Mar 23, 2023
    What could be the benefit to backport Component-Based Servicing (CBS) to Windows XP and Windows Server 2003?
     
  2. trashe33

    trashe33 MDL Member

    May 8, 2016
    127
    64
    10
    Well you would replace Windows NT's Optional Component system with a more modern one that is perhaps more akin to the one found in Vista/modern Windows.
    Things like Windows Embedded Standard 2009's Target Designer would not be needed for extreme customisation of a target Windows image anymore (things that you do with dism nowadays, also I do not nLite for reasons I might go into sometime later).
    Furthermore, while you are already migrating Windows NT's Optional Component system to a more modern one, you could make things like Internet Explorer, Windows Media Player, Windows Media Center, Tablet PC, Messenger uninstallable by the new component management system.
    Also such a system should be implemented in a way that does not interfere with Windows File Protection and these component management programmes should use as little external dependencies outside the Windows APIs as possible, so the choices for programming languages for building that would maybe be c, c++, legacy versions of rust or go, so good luck with that.
     
  3. un user

    un user MDL Member

    Jun 16, 2013
    163
    124
    10
    For me, Target Designer from WES2009 is the most flexible solution, for XP customization. I also use integration of other components by hand.
    I have build such image under 500mb and run successfully without problems and no WFP problem at all.
     
  4. ohault

    ohault MDL Member

    Dec 27, 2022
    227
    77
    10
    Indeed, there are two parts :
    - In one hand, there is the Offline management related to DISM/Panther/... with already existing great initiatives beyond .INF and the old i386 setup (.wim for XP, phanter setup, ...)
    - In the other hand, there is the Online stuff related to Windows NT's Optional Component system (sysocmgr, ocsetup, ...)

    The link between both parts could have been implemented by a DISM provider (for CBS).
    The parallel evolution of Windows Embedded tools over Windows versions is somehow also a demonstration of this convergence between Offline and Online.

    LH pre-reset builds could be worth to look at.

    I guess adopting a top-down approach (starting with high level "feature" like Notepad or Calc) would avoid a lot of difficulties.

    For Offline, I wonder if a DISM provider (existing to be written) for managing .INF, extracting metadata and generating feature and package descriptions for .WIM images could not be considered. Another source could be to generate this from the Windows XP embedded database.

    For Online CBS experiments, perhaps the easiest path would be to start using ReactOS.
     
  5. example12345678912345678

    Dec 29, 2019
    600
    364
    30
    #5 example12345678912345678, Aug 26, 2024
    Last edited: Aug 26, 2024
    I'm working on it. It's based on Longhorn 5048. Things I have done:
    1. Implement CBS-based executables on 2600/3790.
    2. Replace oobe folder in system32 with 5048's.
    3. Add required hal DLLs and kernel executables.
    4. Replace existent components with 2600's ones recursively to \build\filerepository folder.
    5. Make WinPE working, 5048 PE + ramdisk. Normally boot.wim and install.wim are in the same file before 5098, however I've sucessfully separated them.
    6. Capture both boot.wim and install.wim with Ximage v5112.
    Boot.wim has to be two indexes with flags 9 and 2 respectively. Both indexes can have the same image.
    Bugs:
    First boot cannot run \Windows\system32\oobe\setup.exe, saying user must be "Administrator" while UAC did not exist in XP/2003 nor 5048.
    Following reboots end up with Smss.exe BSODs.
    VirtualBox_Windows XP CBB_25_08_2024_22_25_18.png
    Edit: I fixed the error by deleting NTUSER.DAT files in Documents and Settings folder.
    VirtualBox_Windows XP_26_08_2024_16_16_35.png