Jump to content

Any ideas on how nLite works?


jbj

Recommended Posts

I wish there was a guide that explained what files nLite manipulates for every different thing it removes, but I can't find any. Any such guide would greatly accelerate development. Can anyone help me with this?

Whilst there is no guide for someone to use for other development like nlite, i can give some ideas on what i know about winxp installs.

This file TXTSETUP.SIF contains a list of files that are loaded during the first phase of install if there are any files to be added or deleted then this is what file that should be modified if you make changes to TXTSETUP.SIF they also have to be changed in DOSNET.INF . So if you want to modify these files you can therefore add or delete files listed in them. Take note that when you add files you have to use the CAB compression program that not only compresses the file but to rename it such as filename.ex_

This file WINNT.SIF is the setup file for the gui part of installation which are a list of answers to the prompts that the install program would ask.

To create the ISO a program called mkisofs.exe is used and xpboot.bin or something like this that runs the winxp setupldr file is used for the boot aspect.

There is some more information in the deploy files that are sometimes on the winxp cd.

So in summary you need to:

1. Text edit of files.

2. Compress files using cab format

3. Create a bootable CD/DVD

Point 1 and 3 are doable on linux not sure of point 2 as i have no idea if the compression function of cab.

cheers

Edited by pacav69
Link to comment
Share on other sites


I wish there was a guide that explained what files nLite manipulates for every different thing it removes, but I can't find any. Any such guide would greatly accelerate development. Can anyone help me with this?

I think I can tell you the obvious without incurring Nuhi's wrath.

He very meticulously found what files belong to which components.

Some files install as "base" (i.e. they are put onto disk by LAYOUT and then TXTSETUP copies them to where they belong) and some components are called by individual .INF files.

Expand SYSOC.INF and look at the "Optional" components that are listed. They install automatically but have checkboxes when called by Add/Remove Components. Commenting them out (or deleting them) will prevent them from installing at all.

Now expand and have a look at SYSSETUP.INF. Find [infs.Always]

Here you will see a LOT of components that you just do not need. To see what one does, find the INF file listed, expand it, and examine it. Some components are a problem: look at IE.INF. There is NO list of files in it! That's because Microsoft has put the files into TXTSETUP and LAYOUT so that IE files are put onto your system no matter what. Nuhi's software edits all of the files I have mentioned, and more. I haven't really given anything away I don't think, because when you run the software, you can see just by filedate what has changed.

As for the batch files, it was Joe Deboeck IIRC. My fileset for Windows 2000 dates from November 2001. I modified SETUPAPI.DLL to be able to make changes to these INF files. Before that mod, I had to change INF files and then run a service pack slipstream to avoid digital signature errors. Nuhi does not alter SETUPAPI, but uses a different DLL. One must avoid signature checking to have altered INF files work. LAYOUT is a special case, and to modify it, you must globally replace ,_x, with ,, (in other words, delete every occurrence of underscore X between two commas in the entire file). nLite does not change LAYOUT, only TXTSETUP. Most likely Nuhi did this for speed. As a by-the-way, you can actually copy the entire file list from TXTSETUP and paste it into LAYOUT. It will work fine, you do NOT need those file byte counts, and your setup will go much faster since LAYOUT and TXTSETUP copy files twice.

Edited by fdv
Link to comment
Share on other sites

  • 5 months later...

Hello peoples,

I got PM about my progress with this, so I'm posting an update..

I stopped working on this. Mostly because of the difficulty of discovering how to have functionality similar to nLite and lack of time. If someone wants to continue development, I have attached the source code. I really didn't too much with it, there is basically 0% nLite-like logic, it's GUI is fairly complete though. It's written in C# and runs on Mono.

Jonathan

vmwindows.zip

Link to comment
Share on other sites

  • 2 weeks later...
As for the batch files, it was Joe Deboeck IIRC. My fileset for Windows 2000 dates from November 2001. I modified SETUPAPI.DLL to be able to make changes to these INF files. Before that mod, I had to change INF files and then run a service pack slipstream to avoid digital signature errors. Nuhi does not alter SETUPAPI, but uses a different DLL. One must avoid signature checking to have altered INF files work. LAYOUT is a special case, and to modify it, you must globally replace ,_x, with ,, (in other words, delete every occurrence of underscore X between two commas in the entire file). nLite does not change LAYOUT, only TXTSETUP. Most likely Nuhi did this for speed. As a by-the-way, you can actually copy the entire file list from TXTSETUP and paste it into LAYOUT. It will work fine, you do NOT need those file byte counts, and your setup will go much faster since LAYOUT and TXTSETUP copy files twice.
For anyone that cares, Joe Deboeck's site used to be a subdomain on MSFN Hosting. Here are a few archived pages from back in the day (2003-2006): http://web.archive.org/web/*/http://jdeboe...sfnhosting.com/

The archived pages still have the original batch files available for download, but I'll post them here for convenience sake.

REMOVE.zip

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...