Can I have 32-bit ARM emulation without SSE4? Houdini requires it.

298 views
Skip to first unread message

Boris Gjenero

unread,
Nov 26, 2022, 1:31:04 AM11/26/22
to Android-x86
In 32-bit Android x86 9.0 r2 with Native Bridge enabled, I tried to run a simple app with an ARM library. The app worked at first, but crashed immediately when I tried to use the part that uses the ARM library. In logcat output, it is clear that Houdini expects AES, POPCNT, SSE4_2, SSE4_1 and PCLMULQDQ, and those are not supported by my Core 2 Duo CPU. Then the "Fatal signal 4 (SIGILL), code 2 (ILL_ILLOPN)" almost certainly happens because of an attempt to execute an instruction that is not supported by my CPU.

Is there some other emulator I could use in Android x86 9.0? Do any other versions of 32-bit Android x86 come with a 32-bit ARM emulator which doesn't require SSE4?

Also, I wish I knew this before. It probably explains most of the apps that crashed in Android x86. I thought Android x86 was incompatible with many apps, but this was probably the problem. If I knew this, I could have looked for older versions of apps with x86 libraries.

crw

unread,
Nov 28, 2022, 8:39:12 AM11/28/22
to Android-x86

Android x86 nougat 7.1 32 bit builds with houdini 6.1.2x or 7.x should work 

Boris Gjenero

unread,
Nov 29, 2022, 1:18:45 AM11/29/22
to andro...@googlegroups.com
Thank you. I saw ARM emulation work in cm-x86-14.1-r5-k419 in a qemu VM with Binaural_player-20170729.apk. It automatically installed Houdini 6.1.2d_x.48748. That is contained in houdini7_x.sfs, but the file is identical to houdini6_x.sfs: http://dl.android-x86.org/houdini/6_x/houdini.sfs

Andrdoid x86 9.0 r2 tries to use houdini9_y.sfs, which is 9.0.1b_y.50293. Apparently the y versions are for 32-bit ARM emulation on x86_64. For 32 bit x86, without SSE4, I would need the x version. The latest x version I have now is 6.1.2d_x.48748, and that won't work on Android x86 9.0 r2 because "libnb   : Unable to open /system/lib/libhoudini.so: dlopen failed: cannot locate symbol "android_get_application_target_sdk_version" referenced by "/system/lib/libhoudini.so"...". I will try to find a later x version.

--
You received this message because you are subscribed to a topic in the Google Groups "Android-x86" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-x86/VfhGHWrv3tM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to android-x86...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/6f8d5e79-3e19-4b5a-ad32-09f961a7d5bfn%40googlegroups.com.

crw

unread,
Nov 29, 2022, 10:41:34 AM11/29/22
to Android-x86
x versions do not exist for Android 9, good luck on finding them.

Boris Gjenero

unread,
Nov 30, 2022, 9:41:56 AM11/30/22
to andro...@googlegroups.com
Do any x versions of Houdini later than 6.1.2d_x.48748 exist?

rexr...@gmail.com

unread,
Oct 3, 2023, 6:02:32 AM10/3/23
to Android-x86
Google's libndk_translation works fine on 32-bit kernel without SSE4. For 32-bit arm emulation, it has Android 9 and 11 version in some AVD images.
For houdini, version 7.1.1b_x exits in some Android Emulator like MEmu Player. But in /system/bin/ it use 6.1.2d_x houdini executable file instead.

Boris Gjenero

unread,
Oct 8, 2023, 12:18:09 AM10/8/23
to Android-x86
I tried to use libndk_translation from https://dl.google.com/android/repository/sys-img/google_apis/x86-30_r09.zip but I'm getting an illegal instruction crash. Do you know which particular version of libndk_translation worked without SSE4?

rexr...@gmail.com

unread,
Oct 11, 2023, 4:25:16 AM10/11/23
to Android-x86
This link is Android 11 and I haven't tested yet. I have only tested libndk_translation on Android 9 with 32-bit kernel in vm. If you have Android 11 32-bit build send me one and I'll test it.

rexr...@gmail.com

unread,
Feb 8, 2024, 5:35:26 AMFeb 8
to Android-x86
For android 9 32-bit you should try https://dl.google.com/android/repository/sys-img/google_apis/x86-28_r12.zip , check here the example and install it. I have tested with qemu simulated coreduo cpu in tcg mode, 32-bit ndk_translation can work without SSSE3. If you want to test android 11 ndk_translation, be aware that from android 11 on the 32-bit aosp is build with sse4.2 in default (see android sourcecode in /build/make/core/combo/arch/x86/x86.mk).
Reply all
Reply to author
Forward
0 new messages