ViVe is a C# library you can use to make your own programs that interact with the A/B feature experiment mechanism found in Windows 10 and newer. ViVeTool is both an example of how to use ViVe, as well as a straightforward tool for power users which want to use the new APIs instantly.

ViVeTool

The FeatureManager class should cover most feature management needs with the added benefit of some struct heavy lifting being done for you. Boot persistence and LKG management is offered exclusively by this class as it had to be reimplemented.

In case you'd like to talk to NTDLL exports directly, you can use NativeMethods.

ViVeTool GUI

What is ViVeTool GUI?

ViVeTool GUI let's you easily enable, disable and search for new hidden Features in Windows Insider Builds, with the use of a button and an useful UI.

What are the differences between ViVeTool and ViVeTool GUI?

ViVeTool is a command-only tool to enable experimental but hidden features on your Windows computer, while using ViVeTool GUI is easier to use, as it also allows you to search for features and enable them with a few clicks.

What are the main features of ViVeTool GUI?

  • Load in a Feature List of other Builds
  • Search for Features
  • Sort Features by Feature Name, Feature ID or Feature State
  • Group Features by: Always Enabled, Always Disabled, Enabled by Default, Disabled by Default and Modifiable
  • Copy Feature Names and IDs by right-clicking them
  • Switch between Dark and Light Mode (Setting get's saved and applied on Start)
  • Automatically load the latest Feature List when starting ViVeTool GUI
  • Scan a Windows Build for Hidden Features to create your own Feature List
  • Use ViVeTool GUI in multiple translated Languages
  • Fix the LastKnownGood Store, as well as the A/B Testing Priorities for ViVeTool Features

What's New

ViVeTool 0.3.3:

  • Easier to read exceptions
  • Built against .NET Framework 4.8.1 with ARM64 support
  • /query and /fullreset can now be filtered by priority
  • Support for new priorities (fixes #78)
  • Support for installs with uninitialized LKG mechanism (fixes #77)
  • Feature dictionary update (data as of 3/22/2023)
  • Updated Newtonsoft.Json dependency to 13.0.3

ViVeTool GUI 1.6.2:

Changes:

  • Searching is now disabled while the Feature List is loading to fix numerous search-related bugs.
  • Updated AutoUpdater.NET to Version 1.7.1 (explains the new Edge WebView2 DLLs, full Edge WebView2 is not included, just the launcher DLLs to use it if it is already installed on the Users System)

Fixes:

  • Fixed numerous Search-related bugs while a Feature List was loading.
  • Added an exception handler when trying to use the Clipboard with insufficient permissions. (Usually AV related)
  • Added an exception handler to the Feature Scanner when trying to start symchk.exe with insufficient permissions. (Usually AV related)
  • Fixed a Null Reference Pointer Exception when preparing a network exception message
  • Feature Lists with a . in their name, for example, 22000.1 will now be displayed in the Build Combo Box. Fixes #15

Additional Info:

  • The next version 1.7 will include language localizations for English and German, as I am currently trying to figure out the best way to accomplish this, while also being easy for others to add new localizations with Pull Requests

Compatibility

  • Since ViVeTool GUI uses the ViVe API, Windows 10 Build 18963 (Version 2004) and newer is the only OS Requirement.
  • Apart from that, the only Requirement is .Net Framework 4.8