nefarius / HidHide

Gaming Input Peripherals Device Firewall for Windows.
https://docs.nefarius.at/projects/HidHide/
MIT License
939 stars 80 forks source link

Replace setup engine and updater #110

Open nefarius opened 1 year ago

nefarius commented 1 year ago

My patience has run out with all these weird unexplainable Advanced Installer issues and I'm done wasting my time with the product. Putting this here as a reminder for the year 2027.

Wix# sounds promising, could reuse all the .NET efforts already put into making a stable driver installer.

nefarius commented 1 year ago

I guess it smelled my dissatisfaction and started to comply, here's what went wrong:

Will consider this solved, for now, until it starts to annoy me again, then it gets the boot for real 👢

nefarius commented 1 year ago

Unearthed to track new problems (it never ends):

nefarius commented 1 year ago

This piece of shit just doesn't wanna learn so as soon as I have the time, it gets replaced entirely. Period.

nefarius commented 9 months ago

The new updater is taking shape, will be release-ready pretty soon.

nefarius commented 9 months ago

Related #137

nefarius commented 5 months ago

Note: the new setup workflow should be able to detect if a driver update is even necessary and if so, hot-swap to the new version so only one reboot is required. Currently since each product version is treated as an independent installation, the user is first faced with one reboot dialog on upgrade due to removal of the existing version:

image

Then after reboot nr. 1 is greeted with another dialog to reboot again; this time it comes from finishing the actual installation of the latest version:

image

It works but is very clunky and not user-friendly, to put it mildly.

nefarius commented 2 months ago
nefarius commented 1 month ago

I have managed to come up with a new control flow that skips removing and re-installing the driver entirely if the current local version is equal to or newer to what the current setup ships. This now makes shipping upgrades that only touch user-mode components blazing fast and completely eliminates the need to reboot. Small steps.

nefarius commented 1 month ago

I also got ETW tracing and logging of all components to work again; the shipped installation directory and the paths used in the ETW manifest files drifted apart some time in the past, which caused issues with tools like wevtutil and alike.