-
d021a24c
by Twaik Yont at 2026-04-16T22:17:25+02:00
wineandroid: Fix 64-bit crash in setCursor JNI call.
Pass NULL as a jobject for the pixel array argument when size is zero.
Passing integer 0 to CallVoidMethod() in a varargs call is undefined
and on 64-bit platforms may be interpreted as an invalid jobject,
triggering a JNI abort.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
bb25f8f0
by Twaik Yont at 2026-04-16T22:17:28+02:00
wineandroid: Lower targetSdkVersion to avoid Android 10 W^X restrictions.
Android 10 enforces W^X restrictions for apps targeting API level 29+,
including removal of execute permission for the app home directory and
restrictions on execve() and executable mappings.
See:
https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission
Lower targetSdkVersion to 28 so the current Wine Android startup model
continues to work on modern devices while the codebase is being adapted
to these restrictions.
Set Java compile options to 1.8 as required by the Android build after
lowering compileSdkVersion.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
e329c653
by Twaik Yont at 2026-04-16T22:17:31+02:00
wineandroid: Fix loader path and library lookup for modern Wine/Android.
Update WINELOADER to match the current Wine layout.
Also extend LD_LIBRARY_PATH to include libraries from the APK,
since modern Android versions may load native libraries directly
from the APK instead of extracting them to the filesystem.
Support for loading shared libraries directly from an APK via
dlopen("apk!/lib/...") is available since API level 23.
See:
https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#opening-shared-libraries-directly-from-an-apk
This restores correct startup on recent Wine versions and Android devices.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
7e294382
by Twaik Yont at 2026-04-16T22:17:38+02:00
wineandroid: Move environment setup to Java and drop obsolete env vars.
Move environment setup to WineActivity using setenv() and remove the
environment array parameter from wine_init().
The startup variables are now set directly in the JVM process instead of
being marshaled through JNI and reconstructed on the native side.
wine_init() now reads the process environment via getenv(), keeping the
LD_LIBRARY_PATH update and WINEDEBUGLOG handling while removing the
JNI-side environment reconstruction.
Drop setting WINELOADER, WINEDLLPATH and PATH, which are no longer
required with the current Wine startup design.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>