AdvDebug dbcbc5084a Add Android host support (arm64, GDI, Vulkan)
Brovan now runs on Android as a third host alongside Windows and Linux.

New Brovan android embedding layer. The emulator becomes a NativeAOT shared
library driven by a host app rather than a process with a Main:

- BrovanAndroidApi - exported C ABI (init, surface, start, input injection,
  window enumeration, debugger commands).
- AndroidWinManager - IDisplayConnection over ANativeWindow, plus
  IGdiRenderSupport.
- AndroidGdiSurface - software rasteriser (lines, rects, ellipses, polygons)
  into a per-guest-window backbuffer posted via ANativeWindow_lock/
  unlockAndPost, white background.
- AndroidVulkanWsi and a generator branch - VK_KHR_android_surface instead of
  Win32/Xcb.
- AndroidInput, AndroidLog, AndroidHost, AndroidGuestWindows, JNI shim, Java
  bindings.
- Launcher app: Material 3 library, in-app program import via SAF, settings,
  on-screen joystick/D-pad/touchpad controls, opt-in developer console wired to
  the debugger.
- build-apk.sh - Unicorn cross-build, linux-bionic-arm64 publish, bundled
  OpenSSL, APK assembly.

Changes to shared emulator code:

- Case-insensitive shipped-DLL resolution in GetWindowsLibPath. Import tables
  say KERNEL32.dll, System32 ships kernel32.dll; broken on any case-sensitive
  host, and it surfaced as a guest loading zero modules.
- GlobalPropertiesToRemove on the generator ProjectReference. Target-shaped
  properties leaked into the analyzer, csc silently refused to load it (CS8034
  is only a warning), and every source generator emitted nothing.
- GdiPrimitive.Hwnd. The four EnqueueGdi* helpers already had the guest HWND and
  dropped it, making per-window compositing impossible.
- Program.SplitCommandLine widened to internal for embedders.
Windows and Linux behaviour is unchanged; the new paths are gated on the RID or
!IsWindows.
2026-08-02 19:10:51 +03:00
2026-05-15 05:13:31 +03:00
2026-07-24 13:56:01 +03:00
2026-05-15 05:12:24 +03:00
2026-07-28 20:01:47 +03:00

Brovan banner



.NET Language License

A user-mode x86_64 binary emulator for inspecting programs, tracing syscalls, and safely running untrusted software.

What is Brovan?

Brovan is an interactive x86_64 emulator that gives you full control over how programs execute. It can be used to reverse engineer binaries, trace API and system calls, capture network traffic, or run software in an isolated environment without executing it directly on your host CPU.

It is designed to support as much software as possible while remaining a safe, efficient, and high-performance option for running software across Windows and Linux. Brovan is still in early development, so it is not yet fully mature or reliable.

Supported backends:

  • Unicorn Engine for cross-platform emulation
  • WHP (Windows Hypervisor Platform) for hardware acceleration on Windows
  • KVM (Kernel-based Virtual Machine) for hardware acceleration on Linux

Core Features

MULTI-FORMAT LOADING

Load and execute binaries directly inside the emulator without host installation.

PE   ELF   Memory Dumps   Raw Shellcode

BROVVULK GRAPHICS LAYER

Custom Vulkan translation subsystem handling DXVK calls and game rendering.

DXVK   DirectX   Vulkan Surface

SYSCALL & API TRACING

Inspect execution live to see what functions, DLLs, and kernel calls the program accesses.

Kernel Syscalls   Symbol Resolving   Loaded DLLs

NETWORK DUMPING

Intercept guest socket traffic and export network activity for payload analysis.

Socket Intercept   PCAP Capture   Traffic Analysis

Previews & Demos

Gaming & Graphics (Brovvulk)

Brovan can render guest graphical applications through its Brovvulk translation subsystem. Here is a sample game i had (Deltarune), but it can work on many other games:

Deltarune running in Brovan

Deltarune Bring-up

  • Vulkan surface rendering via Brovvulk
  • DPI-aware host window integration
  • WHP acceleration for a smoother gaming experience

Binary Execution & Tracing

Cross-platform Linux execution
Linux ELF on Windows
Running fastfetch cross-platform
Syscall tracing log
Syscall Tracing
Live logs of API calls and dynamic symbols
Raw binary execution
Raw Binaries
Executing shellcode and memory dumps

Network Inspection

Network dumping
Network Capture
Intercepting guest socket reads and writes
Traffic viewer
Traffic Analyzer
Viewing dumped PCAPs and payloads

Documentation & Wiki

Check out the GitHub Wiki for:

Warning

The Releases page may not always have the latest changes.
For the most up-to-date version, build from source instead or use the latest build from GitHub Actions

Credits

Thanks to Iced library for x86_64 disassembly and assembly.

Thanks to Unicorn Engine for the core emulator.

Thanks to my friend GittingHubbers for help with the MLFQ Scheduler.

License

GPL-2.0

S
Description
Automated archival mirror of github.com/AdvDebug/Brovan
Readme GPL-2.0
15 MiB
Languages
C# 93.7%
C 4.3%
Java 1.6%
Shell 0.3%
Batchfile 0.1%