How to use ViveTool to force-enable new features in Windows 11

 

After what seemed like an eternity, File Explorer tabs are finally available for everyone with the first feature drop for Windows 11 version 22H2, aka the 2022 Update. To be precise, Microsoft added the tabbed interface feature into the Windows codebase a while back, but the actual availability has been trickled down to users depending on a couple of factors, such as the update channel and the server-side A/B testing. In fact, just like the tabbed File Explorer, most of the experimental functionalities are now being pushed to Windows through a core OS component called the Windows Feature Store that controls the gradual rollout.

Since the Windows Feature Store is heavily protected by the Windows kernel, you can’t use typical binary patching techniques to forcibly enable such features. This is where ViVeTool comes into play. Even if you aren’t a developer and you’re reading this article, there’s a good chance you’ve probably used ViVeTool once or twice to get some features ahead of the public rollout. But that isn’t all the Windows Feature Store can be fiddled with. Here’s how to activate ViveTool.

What is the Windows Feature Store?

In Microsoft’s nomenclature, a “feature” in a modern Windows OS is a UI and/or UX change — from having the revamped Open with menu to the Task Manager entry in the taskbar context menu. As mentioned earlier, the A/B feature experiment mechanism found in Windows 10 and newer is controlled by the Windows Feature Store. This store (internally referred to as “Velocity”) is part of the mostly undocumented Windows Notification Facility (WNF), a kernel component used to dispatch notifications across the system, including other kernel components, system services, and user-space applications.

Most of the experimental functionalities are now being pushed to Windows through a core OS component called the Windows Feature Store that controls the gradual rollout.

Building the modular infrastructure of various features is essentially a way to design a controlled rollout model. For instance, the Windows Insider Program is used to deliver work-in-progress functionalities to earlier updates, which are later patched incrementally and subsequently enabled for every user once it reaches the stability milestone. In case a particular feature contains a catastrophic bug or has a security flaw, it can be seamless disabled by the kernel.

Can we bypass server-side A/B testing?

Keep in mind that both Insider and stable channel builds are usually shipped with a plethora of “features” corresponding to new upcoming functionalities in a dormant state. Keeping aside the controlled rollout aspect, a remotely orchestrated A/B testing (also known as split testing) can ensure continuous improvement and fast feedback loops across multiple configurations. The Windows Feature Store safeguards the randomized experimentation process by protecting the feature switch states.

Fortunately, it is possible to manipulate the data stored inside the Windows Feature Store. A number of talented developers have managed to reverse-engineer Windows’ internal feature control APIs. To gain access to the Windows Feature Store, you can use apps like Mach2 by Rafael Rivera or ViVeTool by Lucas (aka thebookisclosed) and bypass the server-side A/B testing altogether.

In some cases, you might be able to modify the registry — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFeatureManagementOverrides section to be precise — to alter the Feature Store variables. However, we recommend to stick with the ID-specific feature state modification to avoid unforeseen circumstances.

Feature IDs

Each feature in the Windows Feature Store has a unique ID, such as 26008830 corresponds to the tablet-optimized taskbar. There are three states of every feature ID:

  • Default (0): This is the normal behavior for a particular feature.
  • Disabled (1): This will completely disable the feature.
  • Enabled (2): This will forcefully enable the feature.

The developer of Mach2 maintains a list of feature IDs for each Insider build. The repo also contains the changes between builds, which can be useful for identifying new hidden features. You can also use a graphical fork of ViVeTool named ViVeTool GUI to search through available feature IDs for any Windows build.

Tinkering with the feature IDs can lead to instability or crashes. Because of interdependencies, some might break the core OS modules and make Windows entirely unusable. You could also come across some feature IDs, which make permanent changes that you can’t revert. Proceed at your own risk.

Due to how the Windows Update mechanism and the Windows Feature Store are correlated, changing certain features might be enough to put your device in an unsupported state. It’s highly recommended to make an image backup before you’re choosing to experiment with the Windows Feature Store. Alternatively, just evaluate in a virtual machine.

Below you can find a list of some popular Windows features and corresponding feature IDs.

Feature description Feature ID Minimum Windows version
Tabs in File Explorer 37634385 21536
Tablet-optimized Taskbar 26008830 25197
Revamped Widgets UI 40772499 25227, 22623.746
New system tray 38764045 25211
Widgets settings menu 38652916 25217
Search bar in Task Manager 39420424 25231
Search bar on Desktop 37969115 25120
Animated navigation panel icons in Settings 34878152 25197
Modern “Open with” menu 36302090 25151, 22622.290

How to use ViveTool to force-enable Windows features

ViVeTool is an open-source CLI tool for feature manipulation. Under the hood, it is powered by a C# library called ViVe. If you would like to try out any new feature on your Windows 11 instance, you should follow the steps outlined below:

  1. Download the latest version of ViVeTool from its GitHub repository.
  2. Extract the archive to somewhere convenient.
  3. Press the Windows key + X on your keyboard and select Terminal (Admin) to launch an elevated shell window. You may also use PowerShellif you prefer, or stick with plain old Command Prompt with elevated privileges.
  4. Change the directory to the extracted ViVeTool directory. For example, if you have extracted ViveTool to D:ViveTool, type cd D:ViveTool.
  5. Locate the feature ID corresponding to the feature you want to enable from the table above. Then, execute the command: vivetool /enable /id:xxx
  6. If everything goes right, you should see “Successfully set feature configuration” in the console.
  7. Close the console window and restart your computer to make the changes take effect.

If you change your mind and want to revert the change(s), repeat the steps above and replace /enable with /disable in the commands on step 5.

Additional features of ViVeTool

ViVeTool is literally the “Swiss army knife” when it comes to the Windows feature control APIs. Apart from toggling the state of Windows features, it can query the existing feature configurations of the underlying WIndows build, import/export/reset the custom configurations, and even help to identify the last known good rollback system status.

To know more, open a Terminal window and run the ViveTool executable without any argument. The app will list all the commands and their usage. This includes enabling or disabling a feature, and listing the existing feature configurations.

Are you happy with the new UI/UX enhancements in Windows 11, or do you plan to downgrade to the previous version? Let us know what you think in the comments.

Original Article