Jump to content

xml creator for 7Customizer


Recommended Posts

Also, when searching for string -k atiriol6 it builds an xml file but doesn't for some reason find the .sys file associated with the inf. If you check thefiledb.com, you'll see that the atinavrr.sys has a path of atiriol6.inf. Is xml creator missing something? If so, then it's possible we may think a component is completely removed, such as the ATI video capture drivers but they really aren't fully removed. However, if you search for -k atiilhag it will find the associated .sys, atikmdag.sys.

If it can't find the .sys file, then it's not in your sources. If you look at the manifest file for atiriol6 the line for the .sys file looks like this:


<file name="atinavrr.sys" sourceName="atinavrr.sys" importPath="$(build.nttree)\">

There is no destination path xml creator can use. So xml creator has to search for the file. And if it can't find it, it's not there (unless there is a bug in xml creator, of course; but I doubt it, because I can't find that file either). The only location where the file is located is in the winsxs\amd64_atiriol6.inf... folder. And that one gets deleted.

The one thing I LOVE about this method of component removal is that after the component is removed, the WinSxS folder is removed too, which will greatly reduce the footprint of the OS. It's sad when the WinSxS folder for XP x64 edition is only about 128 mbs in size and Win 7 is gbs larger.

Removing stuff from winsxs can also create problems. For one thing, windows update won't work correctly anymore, at least when you remove too much stuff. The problem is that the windows component store (which is basically the winsxs folder and some registry entries) is left in a slightly corrupted state. There are still references to certain components (and their manifest files) that are not there anymore. That produces errors which windows update tries to fix by installing the components again. Since they are not there anymore, it fails.

There is also a problem of integrating updates into an offline wim image and then removing stuff. I'm not quite sure, but I think the updates are not integrated fully but only added to the winsxs folder for installation during windows setup. So even if you remove components for which you have updates they get installed anyway which might in turn produce errors because the installed update can't find its dependencies. So, it's all a bit complicated.

The solution would be to use the internal cbs and trustedInstaller from windows 7 itself, because they have a complete picture and maintain the component store. The problem is, there is no public api to use them. I've searched for hours for some useful documentation on how the component store gets maintained with these two programs. I didn't find anything. And reverse engineering this is beyond me.

Either way, for this to really take off we're going to need help, and blue needs to come around more often.

I hear you there!

Link to comment
Share on other sites


If it can't find the .sys file, then it's not in your sources. If you look at the manifest file for atiriol6 the line for the .sys file looks like this:


<file name="atinavrr.sys" sourceName="atinavrr.sys" importPath="$(build.nttree)\">

There is no destination path xml creator can use. So xml creator has to search for the file. And if it can't find it, it's not there (unless there is a bug in xml creator, of course; but I doubt it, because I can't find that file either). The only location where the file is located is in the winsxs\amd64_atiriol6.inf... folder. And that one gets deleted.

You're right. I didn't think about the folder containing the .sys and the folder being deleted.

Removing stuff from winsxs can also create problems. For one thing, windows update won't work correctly anymore, at least when you remove too much stuff. The problem is that the windows component store (which is basically the winsxs folder and some registry entries) is left in a slightly corrupted state. There are still references to certain components (and their manifest files) that are not there anymore. That produces errors which windows update tries to fix by installing the components again. Since they are not there anymore, it fails.

There is also a problem of integrating updates into an offline wim image and then removing stuff. I'm not quite sure, but I think the updates are not integrated fully but only added to the winsxs folder for installation during windows setup. So even if you remove components for which you have updates they get installed anyway which might in turn produce errors because the installed update can't find its dependencies. So, it's all a bit complicated.

The solution would be to use the internal cbs and trustedInstaller from windows 7 itself, because they have a complete picture and maintain the component store. The problem is, there is no public api to use them. I've searched for hours for some useful documentation on how the component store gets maintained with these two programs. I didn't find anything. And reverse engineering this is beyond me.

Over in the vLite forum they have this issue covered. There is an update that "fixes" updatability while "removing" the WinSxS folder. Most stuff will update fine. I think when people were using vLite to remove WinSxS or RT7Lite they were removing stuff that shouldn't have been removed. Of course, that's why I feel this method of removal that takes things component by component will keep Windows safe, because we aren't simply deleting the "garbage" from WinSxS. It simply happens as the components are removed. As long as the component we remove doesn't break Windows, that is, and of course, if that happens, then it's all moot anyway.

I didn't realize it before, but we actually don't even have to check thefiledb for component names. Inside every .inf file is usually a name for any drivers and such, and for other components there is usually something mentioned in the random files if we forcefully open them up in notepad. I should have known better having edited .inf files plenty of times during the XP days when you could run unsigned drivers easily.

Link to comment
Share on other sites

Over in the vLite forum they have this issue covered. There is an update that "fixes" updatability while "removing" the WinSxS folder. Most stuff will update fine. I think when people were using vLite to remove WinSxS or RT7Lite they were removing stuff that shouldn't have been removed.

Do you have a link to that thread? I'd like to read up on it.

Link to comment
Share on other sites

dead0's' batch files that automatically remove stuff.

The whole vLite forum is pretty much about removing stuff from Win7 using a combination of vLite and batch files. I think it's an extremely poor way of doing it. Having component packages so we can make our own OS spins would be a much more elegant solution.

The update you want is this http://www.microsoft.com/download/en/details.aspx?id=20858 It will allow WinSxS removal using shoddy methods like RT7Lite and vLite and will fix Win7 updates that these tools break by removing WinSxS. Maybe checking what exactly the tool does will help us wrap our heads around it.

Honestly, the best way to shrink WinSxS is to remove the garbage we don't want, which will take care of all the stuff that doesn't need to be in WinSxS and keep the stuff that does. Future testing will allow us to know what we really can and can't remove. And of course, we can also selectively keep the WinSxS files if it turns out that for whatever reason, them missing breaking the system.

I'm also uploading the first super alpha untested Drivers/A-D zip file if you're interested. I still have a lot of work to do on these but if you want to have a quick look at them, have a shot. I have yet to make a solid decision on their organization, but I'm starting to get a uniform idea on how I want to do it.

Drivers.7z

Edited by Moonchilde
Link to comment
Share on other sites

  • 2 weeks later...

I've just released a new version. It's now hosted on sourceforge.net.

The biggest change is in the xml format. The xmls look a little different. The change was necessary so that all architectures of Windows are properly supported. Unfortunately, this renders xmls created with the new version incompatible with 7Customizer 0.5.0c for the moment. That might change in the future.

I'm also working on a command line removal tool that is compatible with the new xml format. But I need to do some more testing before I can release it.

Link to comment
Share on other sites

  • 2 weeks later...

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