Windows XP Starter

What is it?

With Windows XP, Microsoft finally realized, 6 years after Windows 95, that simply requiring product keys isn't enough to prevent piracy. That's why all versions of XP require activation… Except Professional VLK, which still requires just a key, so it didn't even matter. This mistake wasn't repeated in Vista, but activating Vista or 7 is still simple, by pretending you have an OEM copy with a Windows license attached to the motherboard.
However, in 2004, Microsoft thought "what if we release a version for poor countries that's dirt cheap?" Well, only problem being "dirt cheap" is roughly $40 (I couldn't find specific prices, some sources said $36, some $38). Sure, it's cheaper than Home Edition, which cost $199, but not as cheap as burning a CD with Professional VLK.
So, what are the limitations of Starter?

However, this version was extremely rushed. On CD, you have a full Home Edition CD with licensing components swapped and with Starter-exclusive files added. You can actually install Home Edition from this!… Kinda.

Installing Home Edition

I think I don't have to say this breaks EULA (as if Microsoft cared if you pirated a 22-year-old operating system, lol).
Everything regarding Starter is in startoc.inf component referred to in sysoc.inf (responsible for Add/Remove Windows Components dialog), both in %SystemRoot%\inf. If you remove the line from the latter at the beginning of the GUI part of the installation, Home Edition will be installed. However, after OOBE, Winlogon will notice something's wrong and throw an "Unsupported State (1)" error at you and, after about 30 seconds, BSOD.
There are two ways to solve this.

Minlogon

Windows XP Embedded has two Winlogons to choose from: Winlogon, which is the standard, and Minlogon. Minlogon doesn't support user accounts (you always use SYSTEM), which is not that much of an issue considering:

  1. XP Starter already doesn't have multiple accounts support,
  2. In Windows XP and earlier, Administrator account type is basically as powerful as SYSTEM account already

If you download a Minlogon from somewhere (there's this one update for Embedded - Q833642, but I couldn't find a good mirror) and replace Winlogon.exe in system32, you achieve Home Edition without user accounts support. This might or not be enough already.

Replacing files with the ones from Home Edition CD

If you have a Home Edition CD… just install Home Edition? There's not much point besides wondering why Microsoft did this. At the end of the installation, you can make it so that Windows Product Activation thinks you have a Home Edition. You will have to activate it afterwards, so there's really not much point if you don't have a Home Edition license. Anyway, assuming a generic Home Edition OEM CD is on D:, launch this batch file:

@echo off
Rem This is just a very stripped down version of OEMBIOS changer. Credits to the authors of this tool (and stop with changing the number of columns and colours, it's annoying XD).
Rem is cute BTW.
md backup
attrib -s %SystemRoot%\system32\dpcdll.dll
attrib -s %SystemRoot%\system32\oembios.*
attrib -s %SystemRoot%\system32\pidgen.dll
attrib -s %SystemRoot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
move %SystemRoot%\system32\catroot\{127D0A1D-4EF2-11D1-8608-00C04FC295EE}\TimeStamp backup\TimeStamp_1
move %SystemRoot%\system32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\TimeStamp backup\TimeStamp_F
del %SystemRoot%\system32\dllcache\oembios.* %SystemRoot%\system32\dllcache\dpcdll.dll %SystemRoot%\system32\dllcache\pidgen.dll
move %SystemRoot%\system32\dpcdll.* backup
move %SystemRoot%\system32\oembios.* backup
move %SystemRoot%\system32\pidgen.* backup
move %SystemRoot%\system32\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT backup
expand D:\i386\dpcdll.dl_ %SystemRoot%\system32\dpcdll.dll
expand D:\i386\oembios.bi_ %SystemRoot%\system32\oembios.bin
expand D:\i386\oembios.ca_ %SystemRoot%\system32\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
expand D:\i386\oembios.da_ %SystemRoot%\system32\oembios.dat
expand D:\i386\oembios.si_ %SystemRoot%\system32\oembios.sig
copy D:\i386\pidgen.dll %SystemRoot%\system32
FOR /F "tokens=3 delims=         " %%A IN ('REG QUERY "HKLM\SYSTEM\Setup\Pid" /v Pid') DO SET Pid=%%A
SET apa=%Pid:~0,5%
ECHO Windows Registry Editor Version 5.00 > OEMBIOS.reg
ECHO. >> OEMBIOS.reg
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\Setup\Pid] >> OEMBIOS.reg
ECHO "Pid"="%apa%OEM" >> OEMBIOS.reg
ECHO. >> OEMBIOS.reg
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion] >> OEMBIOS.reg
ECHO "ProductId"="%apa%-OEM-0064056-02010" >> OEMBIOS.reg
ECHO. >> OEMBIOS.reg
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] >> OEMBIOS.reg
ECHO "ProductId"="%apa%-OEM-0064056-02010" >> OEMBIOS.reg 
ECHO "DigitalProductId"=hex:a4,00,00,00,03,00,00,00,37,36,34,37,37,2d,4f,45,4d,2d,\ >> OEMBIOS.reg
ECHO   30,30,36,34,30,35,36,2d,30,32,30,31,30,00,2b,00,00,00,41,32,32,2d,30,30,30,\ >> OEMBIOS.reg
ECHO   30,31,00,00,00,00,00,00,00,f4,91,5a,cc,31,81,32,61,83,e5,3f,81,9b,3d,02,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,8e,86,d2,4a,60,3d,08,00,02,00,00,00,00,00,00,00,00,00,00,00,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,00,00,00,00,00,00,00,33,35,38,32,30,00,00,00,00,00,00,00,e6,0d,\ >> OEMBIOS.reg
ECHO   00,00,41,e8,13,70,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,dc,de,06,95 >> OEMBIOS.reg
ECHO. >> OEMBIOS.reg
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration] >> OEMBIOS.reg
ECHO "ProductId"="%apa%-OEM-0011903-00865" >> OEMBIOS.reg
ECHO "DigitalProductId"=hex:a4,00,00,00,03,00,00,00,37,36,34,37,37,2d,4f,45,4d,2d,\ >> OEMBIOS.reg
ECHO   30,30,36,34,30,35,36,2d,30,32,30,31,30,00,2b,00,00,00,41,32,32,2d,30,30,30,\ >> OEMBIOS.reg
ECHO   30,31,00,00,00,00,00,00,00,f4,91,5a,cc,31,81,32,61,83,e5,3f,81,9b,3d,02,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,8e,86,d2,4a,60,3d,08,00,02,00,00,00,00,00,00,00,00,00,00,00,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,00,00,00,00,00,00,00,33,35,38,32,30,00,00,00,00,00,00,00,e6,0d,\ >> OEMBIOS.reg
ECHO   00,00,41,e8,13,70,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ >> OEMBIOS.reg
ECHO   00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,dc,de,06,95 >> OEMBIOS.reg
REGEDIT /S OEMBIOS.reg

This can be shortened by making some for loops and some commands scream "Access denied", but MS-DOS batches aren't my strongest skill, so let's just ignore it :P
Once you apply this, either at the end of the setup or in the time between logging in and BSOD, you'll be able to activate Windows with a key associated with your CD. If you update root certificates (for example with Legacy Update), you can even use the online activation and the activation servers will think everything's fine.
After the activation, Home Edition can be fully updated, POSReady updates included.

Valid HTML 4.01 TransitionalValid CSS!