-
65c79309
by Twaik Yont at 2026-05-26T22:38:26+02:00
wineandroid: Create desktop view via ioctl and pass event pipe.
Move desktop view creation and event pipe setup to a dedicated ioctl.
The dispatch thread now creates the pipe and returns the read end to
the caller, while keeping the write end locally. This makes ownership
of the event path explicit and prepares it to be transferred cleanly
through the transport.
Also pass the Wine debug channel state together with the request so the
dispatch side can preserve the caller's logging configuration.
This prepares the event path for the upcoming process split.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
dd72d954
by Twaik Yont at 2026-05-26T22:38:26+02:00
wineandroid: Make JNI initialization work with direct JVM loading.
Adjust the JNI initialization order so wineandroid.so can be loaded
directly by the JVM.
Load the required native libraries explicitly from Java with
System.load() in dependency order, avoiding reliance on LD_LIBRARY_PATH
tricks for transitive dependency resolution.
This prepares the Android startup path for the upcoming process split
while keeping the transition bisect-safe.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
0cb43090
by Twaik Yont at 2026-05-26T22:38:26+02:00
wineandroid: Terminate activity when desktop client disconnects.
Track the client connection that creates the desktop view and treat it
as the lifetime owner of the Android activity.
When this client (typically explorer.exe) disconnects, terminate the
process to avoid leaving the activity running without an associated
desktop process, which would otherwise result in a stuck or unresponsive
UI.
This matches the intended 1:1 relationship between the activity and the
Wine desktop process and ensures that all associated resources are
cleaned up when the desktop client exits.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
862dea14
by Twaik Yont at 2026-05-26T22:38:26+02:00
wineandroid: Split Android driver and Wine into separate processes.
Move the Android JNI startup entry point from ntdll to wineandroid.drv
and use it to initialize the Android-facing driver side in the JVM
process.
WineActivity now starts the Wine process separately, while the JVM
process keeps only the Android driver side. This follows the same
client/server-style separation as winex11 and winewayland, where Wine
runs as a client of an external display server.
With Wine now running in its own process, it is no longer subject to
the seccomp restrictions imposed on the JVM process and does not
interfere with the JVM runtime context (signals, thread state, register
usage, etc.). The old Android-specific JNI bootstrap code is removed
from ntdll.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>