thebookisclosed / ViVe

C# library and console app for using new feature control APIs available in Windows 10 version 2004 and newer
GNU General Public License v3.0
4.97k stars 298 forks source link

Overrides get ignored on boot if machine never ran DiagTrack or lacks BootStat.dat #77

Closed SaiyajinK closed 1 year ago

SaiyajinK commented 1 year ago

hello,

I would like to disable native windows tabs under 22h2 build 22621.1105 so I was advised to use ViveTool but it doesn't work.

I used the command prompt as admin and I typed this

vivetool /disable /id:37634385 vivetool /disable /id:36354489

vmware_4Ea6iVinGk

no error message, so I restarted the system but the tabs are still present.

A solution please?

thebookisclosed commented 1 year ago

Hi, if the system doesn't react to IDs that used to work in the past it's usually because Microsoft got rid of their toggle-ability. While ViVe lets you tinker with feature states as you please, it still ultimately depends on what Microsoft builds into the OS. Cumulative updates often remove older UI options over time.

SaiyajinK commented 1 year ago

so there is no way to disable tabs ?

thebookisclosed commented 1 year ago

I just tried to reproduce this and couldn't, disabling 37634385 should still work as of the CU in question, even up to the latest beta build (2262x.1325)

It is possible that you've made changes to the system while it had a rollback pending, make sure that /lkgstatus does not return RollbackPending before making changes that you want to persist.

SaiyajinK commented 1 year ago

J'ai juste essayé de reproduire cela et je n'ai pas pu, la désactivation de 37634385 devrait toujours fonctionner à partir de la CU en question, même jusqu'à la dernière version bêta (2262x.1325)

Il est possible que vous ayez apporté des modifications au système alors qu'il avait une restauration en attente, assurez-vous que /lkgstatusne revient pas RollbackPendingavant d'apporter des modifications que vous souhaitez conserver.

I am currently on 22621.1265 (22H2).

I also thought that it could have come from a modification, but I also tested under a virtual machine after a clean installation and the result is the same.

thebookisclosed commented 1 year ago

I am able to disable tabs just fine, I don't know what else to tell you

gsrd90 commented 1 year ago

@thebookisclosed I join the people above. I'm on a stable version of 22h2 (same build than saiya), the system is perfectly clean, it is a w11 "msdn" iso directly from MS. and it doesn't work. What commands do you enter please? do you place vivetool in a specific place maybe? a tutorial (if you have) would be appreciated

thebookisclosed commented 1 year ago

@thebookisclosed I join the people above. I'm on a stable version of 22h2 (same build than saiya), the system is perfectly clean, it is a w11 "msdn" iso directly from MS. and it doesn't work. What commands do you enter please? do you place vivetool in a specific place maybe? a tutorial (if you have) would be appreciated

All I do is run vivetool /disable /id:37634385 and reboot, the tabs are then gone In case you are able to consistently reproduce this, would you mind setting up a VM where this fails to work so I could remote into it and check what's going wrong?

gsrd90 commented 1 year ago

@thebookisclosed I join the people above. I'm on a stable version of 22h2 (same build than saiya), the system is perfectly clean, it is a w11 "msdn" iso directly from MS. and it doesn't work. What commands do you enter please? do you place vivetool in a specific place maybe? a tutorial (if you have) would be appreciated

All I do is run vivetool /disable /id:37634385 and reboot, the tabs are then gone In case you are able to consistently reproduce this, would you mind setting up a VM where this fails to work so I could remote into it and check what's going wrong?

sorry I do not give access to my machines.

on the other hand I would like to understand one thing, how do you manage to deactivate an id not present in the build? it's pretty amazing...

vmware_wRGHu6q94H

and even when I do it manually, I have big doubts that it works (even if it tells us yes that you just have to restart the pc)

NUuemfGE4N

vmware_f867hG6IZA

what I do besides behind this action and on restart the tabs are still there.

are we talking about the same build ??!! 22621.1265 ??!!

thebookisclosed commented 1 year ago

sorry I do not give access to my machines.

This is why I've explicitly asked you to set up a Virtual Machine.

But most importantly, you're using the unofficial GUI which is using an out of date ViVe library version and also doesn't implement the persistence improvements introduced in ViVe 0.3.x. The catalogs specifying which feature can be toggled in which build used by that tool are static and revision specific. The one you've loaded is for the RTM with no updates installed. (22621.1)

@SaiyajinK's screenshots however show the newest official 0.3.2 CLI, yet they still experience a similar issue. I continue to be unable to reproduce this, and my VM debugging offer still stands.

Here's a demo of me trying to reproduce the issue and failing, tabs get disabled as desired:

SaiyajinK commented 1 year ago

@thebookisclosed

Sorry for the delay in replying, I have been quite busy on my side.

I've pored over the problem a bit each day and come to a rather odd but rather plausible conclusion.

First of all you should know that I tamper with a lot of iso files (I must have fifty of them in a single directory or I experiment with some more or less bizarre thing via NTLite or other). not remembering on which iso the problem came from so I decided to delete the entirety and to start again on a healthy and much clearer basis. that said...

I downloaded a clean unmodified iso 22H2 (22621.1265) from UUPDUMP. I therefore tested with this fresh iso on a vmware virtual machine I applied the following manipulation: vivetool /disable /id:37634385 then I restarted and then I could see that indeed the tabs were no longer there ! very good news !

I then wanted to perform a second test after the creation of a personalized iso by ntlite: I did the same manipulations and this time the tabs are no longer disabled!

My question is as follows: via NTLite I simply configured basic things such as removing preinstalled apps, cleaning up language files that are not useful for my use, disabling tracking, configuring the explorer (start button on the left, etc.) all of the relatively basic stuff after all... Why don't vivetool modifications take effect on an iso modified by NTLite?!

Thank you for enlightening me because I find it difficult to understand, the base is however the same, isn't it?

thebookisclosed commented 1 year ago

Very interesting observation @SaiyajinK, thanks for the update Would you mind taking a screenshot of vivetool /query /id:37634385 after you run /disable /id:37634385 and then after rebooting? Please also export HKLM\System\CurrentControlSet\Control\FeatureManagement and send it over. (do all of this on the affected NTLite install of course) My guess is that NTLite might set up some strange registry permissions which mess with persistence features.

Additionally, could you please export the settings used in NTLite to create such an ISO? It's been a while since I've used the program but if I remember correctly there should be a way to export settings.

Thank you.

SaiyajinK commented 1 year ago

@thebookisclosed of course no worries.

I had so many autosaved session settings that I also deleted everything to start from a clean base.

I confirm that all the manipulations are made on the iso modified by NTLite (and that it does not disable anything)

The requested files are here: screens_fm_ntliteconfig.zip

I await your return I am curious to know what you could possibly find.

thebookisclosed commented 1 year ago

Identified the root cause, your config disables the DiagTrack service which is the only means of creating \Windows\BootStat.dat on a clean install, this file controls the feature fallback mechanism among other things. If the fallback mechanism doesn't get fully initialized, Windows will only load overrides from trusted / non-custom priorities on next boot. Future versions of ViVeTool will create this file for you in case it's missing to ensure correct system functionality.

SaiyajinK commented 1 year ago

@thebookisclosed the "problem" therefore comes from NTLite

when can we experience this new version of ViVeTool ?  😇 

because windows 11 tabs gives me fever..

thebookisclosed commented 1 year ago

Fixed in v0.3.3 (97195a452776534c2c5973afd5b70e4ac9d3e3a9)