Skip to content

[Feature] Hide virtualization environment from Windows VM #723

@MorningMC

Description

@MorningMC

Feature Description

Add a toggle in Settings in WinBoat app (or software initialization if this cannot be done on a existing WinBoat instance) to hide virtualization environment from Windows VM.

When the toggle is on:

  • Replace (or rename as long as VM detection methods won't aware) all the QEMU/Red Hat VirtIO drivers to a generic name or the host machine's device name while preserving the same function before turning on this toggle.
  • Hide the virtualization bits in the QEMU parameters.
  • Other stuff that VM detectors might check.

There should also be a pop-up confirmination dialog that warns the user "some apps may not working, use with care" or "you might experience a performance loss" or sth similar.

Use-Case

Many WinBoat users use WinBoat to play some Windows-only games while working on other stuff on linux host. However, games with anti-cheat will detect VM environment and stop players entering the game. This also applies to, from my research, LockDown Browser or other apps that don't support linux.

For my instance, I dont have a Windows install on my laptop, and I dont want to restart my computer and switching systems just for playing games.

Proposed Implementation

Actually idk if replacing virtual drivers is achievable, but at least hiding Virtualization bits can be done by adding the following to services.windows.environment in ~/.winboat/docker-compose.yaml (-smbios flags seems to have no use on existing installations).

CPU_FLAGS: hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=GenuineIntel,-hypervisor,kvm=off,+invtsc

(EDIT: after testing, this works fine as long as -hypervisor exists. Idk what are the functions of the rest parameters.)

Execute docker compose up in ~/.winboat directory to apply the change. This action will start the container. (Idk why starting the container in WinBoat app is does not apply the change.)

I would like to help implementing this feature, but i am quite busy and i have only a little knowledge on system virtualization. If anyone needs more information, please comment in this issue!

Notice

  • I have checked the issue tracker and verified that this Feature Request has not been proposed before.
  • I would like to help out implementing this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions