TheTechGuide Forum

General Category => Software => Topic started by: LuxuryWagon on October 31, 2002, 01:59:56 AM

Title: uxtheme.dll slipstream
Post by: LuxuryWagon on October 31, 2002, 01:59:56 AM
Hello, i have currently started customizing my own xp cd. I have succesfully created a bootable xp cd slipstreamed with service pack 1 and generated an answer file for the lazyman that i am. Anyways, i figure.. heck, why don\'t i try to put in the patched uxtheme.dll(for custom themes) and custom bootscreen (ntoskrnl.exe) into the i386 folder before i make a bootable image...i noticed that the files are tagged, and compressed uxtheme.dl_ and ntoskrnl.ex_. i have expanded them seeing if i could get my custom files to compress to what the original file sizes are... problem is i don\'t know what to use. I have used makecab.exe which auto renames the extension, but the compression is not the same. I also tried using compress.exe chich can rename and compress as well.. but that doesn\'t get the correct results. are the files on the xp professional cd special compressed and crc32 verified? because i have tried many methods and the install stops when copying the files, due to the setup not recognizing the files andclaims that the winxp cd image is not valid. is there anyway to use the same method and replace the original files? or am i going about this all wrong? Well, thanks for your time. i know some talented person can help in this matter. thanks again.
Title: uxtheme.dll slipstream
Post by: Paul365 on October 31, 2002, 11:58:26 PM
Hi, I have been playing around with this to, although only with the kernel file and not the uxtheme.

I have tried a number of different ways to inject my own personal kernel file, all with no luck, The closest I came was by deleting the ntoskrnl.dl_ from the install cd while adding my own ntoskrnl.dll. This worked through the install but upon the final install reboot the WFP replaced it with a copy of the original pre sp1 kernel and the system refused to boot, when I manually replaced the dodgy wfp version with either mine or the original sp1 kernel all was fine. Don\'t ask where it got the pre sp1 kernel from cos I don\'t know, it was on a clean formatted install.

I have finally got it to work by adding my personal kernel as a renamed file and adding the /kernel=\"blahblah\" switch to the boot.ini line. This was also not to easy but ill try and explain below what I did.

First I used the OemPreinstall=Yes switch in the winnt.sif file
[Unattended]
    OemPreinstall=Yes

I then added a $oem$/$$/system32 folder into I386 folder.
In the /$$/system32 folder I placed my personal kernel file called \"ntsokrnl.dll\" this caused the install to copy the file to the system32 folder of my installation.

Then I created a $oem$/$1 and placed a batch file into it. This gets copied to the root of my installation HD.

The reason for the batch file is to perform the command Echo  /kernel=ntsokrnl.exe>>c:boot.ini
but before it can do that it needs to remove the final CR/LF pair from the end of the boot.ini file. I used a little bit of code I picked up in a newsgroup to achieve the desired results and then it does the echo line and finally cleans up after itself.

The final step is to enter the name of the batch file into the winnt.sif file inder the GuiRunOnce section.
[GuiRunOnce]
    Command0=ntoskrpl.bat
    Command1=\"del ntoskrpl.bat\"

The batch file looks like this -

@echo off
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>dellast.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>dellast.com
echo AAwQ~~y}zPHmL?@oGq`Cp?sEHpQrB`Lr0>>dellast.com
dellast.com >>c:boot.ini
dellast.com >>c:boot.ini
Echo  /kernel=ntsokrnl.exe>>c:boot.ini
del dellast.com
del ntoskrpl.bat

I can\'t understand the code or modify it and it only removes the last character from the boot.ini file so it has to be run twice.

I only started playing around with this stuff about 2 weeks ago when I was trying to install sp2 to office xp, that led to slipstreaming sp2 into office and then I went onto xp and things went from there.... So if I have made things more complicated than I need to you know why /smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />

Anyway I hope this helps you in some way.