justibus Posted January 16, 2012 Author Posted January 16, 2012 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!
Moonchilde Posted January 17, 2012 Posted January 17, 2012 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.
justibus Posted January 17, 2012 Author Posted January 17, 2012 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.
Moonchilde Posted January 18, 2012 Posted January 18, 2012 (edited) 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 January 18, 2012 by Moonchilde
justibus Posted January 30, 2012 Author Posted January 30, 2012 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.
justibus Posted January 31, 2012 Author Posted January 31, 2012 I had to upload a new version. The binary distribution was missing a dll. There are also a few bug fixes.https://sourceforge.net/projects/w7cr/files/latest/download
justibus Posted February 4, 2012 Author Posted February 4, 2012 Hi all,there is a new version with a few minor adjustments. I also wrote a companion tool that removes components based on these xmls. It's compatible with the old and the new xml format.Cheers!
justibus Posted February 19, 2012 Author Posted February 19, 2012 I uploaded a new version that adds a <Packages> element to the xml. For an explanation and a summary of all the other changes to the xml after v0.9.20, have a look here.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now