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.
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.
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:
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.
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.