Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libhoudini: libwebviewchromium.so not found / SIGSEGV from libgallium_dri.so #142

Open
stef-15 opened this issue Jan 9, 2024 · 4 comments

Comments

@stef-15
Copy link

stef-15 commented Jan 9, 2024

Hi, I'm a bit new to this, so any pointers would be great.

I've installed libhoudini and see the following issue come up, not sure if this is Unity-related. Browser works fine, so I'm a bit stumped. From waydroid logcat:

01-08 16:32:51.651  3818  3818 E AndroidRuntime: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libwebviewchromium.so" not found
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at org.chromium.components.crash.browser.CrashpadMain.a(chromium-SystemWebViewGoogle.aab-stable-609919307:13)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at org.chromium.components.crash.browser.CrashpadMain.main(chromium-SystemWebViewGoogle.aab-stable-609919307:1)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
01-08 16:32:51.651  3818  3818 E AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libwebviewchromium.so" not found
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at java.lang.System.loadLibrary(System.java:1664)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        at org.chromium.components.crash.browser.CrashpadMain.a(chromium-SystemWebViewGoogle.aab-stable-609919307:6)
01-08 16:32:51.651  3818  3818 E AndroidRuntime:        ... 3 more
01-08 16:32:51.652  3818  3818 E AndroidRuntime: Error reporting crash
01-08 16:32:51.652  3818  3818 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.BinderProxy.transactNative(Native Method)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.BinderProxy.transact(BinderProxy.java:550)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.IServiceManager$Stub$Proxy.checkService(IServiceManager.java:348)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.ServiceManagerProxy.getService(ServiceManagerNative.java:63)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.ServiceManager.rawGetService(ServiceManager.java:306)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.os.ServiceManager.getService(ServiceManager.java:134)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.app.ActivityManager$1.create(ActivityManager.java:4561)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.app.ActivityManager$1.create(ActivityManager.java:4558)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.util.Singleton.get(Singleton.java:43)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at android.app.ActivityManager.getService(ActivityManager.java:4549)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:158)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
01-08 16:32:51.652  3818  3818 E AndroidRuntime:        at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
01-08 16:32:51.652  3818  3818 I Process : Sending signal. PID: 3818 SIG: 9

The tombstone:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3f800094
    rax 3f80000000042400  rbx 00007f2ae7e7ba00  rcx 00007f2ae7e82200  rdx 00000000000000d0
    r8  0000000000000002  r9  00007f2be48ded80  r10 0000000000000002  r11 0000000000000002
    r12 00000000000000d0  r13 00000000000000d0  r14 0000000000006800  r15 000000000000000a
    rdi 3f80000000042400  rsi 00007f2a8d016830
    rbp 000000003f800000  rsp 00007f2b01584a40  rip 00007f2aef744547

backtrace:
      #00 pc 0000000000f02547  /vendor/lib64/dri/libgallium_dri.so (BuildId: 5c1fd3040e8e5b73dce2120c39ec3b54b46ef798)
      #01 pc 0000000000f00db0  /vendor/lib64/dri/libgallium_dri.so (BuildId: 5c1fd3040e8e5b73dce2120c39ec3b54b46ef798)
      #02 pc 0000000000eb3086  /vendor/lib64/dri/libgallium_dri.so (BuildId: 5c1fd3040e8e5b73dce2120c39ec3b54b46ef798)
      #03 pc 0000000000eb3970  /vendor/lib64/dri/libgallium_dri.so (BuildId: 5c1fd3040e8e5b73dce2120c39ec3b54b46ef798)
      #04 pc 0000000000d104f8  /vendor/lib64/dri/libgallium_dri.so (BuildId: 5c1fd3040e8e5b73dce2120c39ec3b54b46ef798)
      #05 pc 00000000000d8814  /system/lib64/arm64/nb/libtcb.so (BuildId: 9db22213bae2d133f353c29c9fcf0d5f36f8f376)
      #06 pc 00000000013e62a6  <anonymous:d335000>

Maybe this isn't an issue with libhoudini, but more of an issue with the game, but just wanted to see if anyone has noticed it.

Things I've tried:

  • I see libwebviewchromium_plat_support.so in /var/lib/waydroid/overlay/system/lib64/arm64. Copying the file to libwebviewchromium.so doesn't work. I can confirm libwebviewchromium.so is NOT in /system/lib/ even after this. I'm not sure how to get it in here since sudo waydroid shell is readonly.
  • I tried updating SystemWebViewGoogle by installing it into waydroid, but it still cannot find libwebviewchromium.so

I see a similar issue in waydroid/waydroid#1206 , however my host isn't anything special, Intel i7 CPU.

@stef-15 stef-15 changed the title libhoudini: libwebviewchromium.so not found / failure from libgallium_dri.so libhoudini: libwebviewchromium.so not found / SIGSEGV from libgallium_dri.so Jan 9, 2024
@casualsnek
Copy link
Owner

Looks like you are missing chromium webview for android ! Have you installed Gapps package as well ? And let play store update it's components ?

The name of app causing this issue would be helpful in testing !

@togetherwithasteria
Copy link

Looks like you are missing chromium webview for android ! Have you installed Gapps package as well ? And let play store update it's components ?

The name of app causing this issue would be helpful in testing !

Hello!!
The OP said "not sure if this is Unity-related", which means it should have been an app made with Unity. Genshin Impact also has this issue (waydroid/waydroid#1206) and also heavily relies on WebView to render information and update logs.

@togetherwithasteria
Copy link

togetherwithasteria commented Mar 7, 2024

Edit: the issue doesn't happen with Honkai Star Rail, Genshin's sister game, and also presumably shares a large amount of code (it is built in Unity and has a really similar UI). So the app is probably Genshin. It's also probably not something to do with Unity itself.

@togetherwithasteria
Copy link

togetherwithasteria commented Mar 11, 2024

Adding a note for anyone who would find this useful, I don't think copying the file to libwebviewchromium.so will work. I found libwebviewchromium.so inside /system/product/app/webview/webview.apk. I'm not certain how dlopen fails to find it...

~/webview.apk$ ls 
AndroidManifest.xml  assets  classes.dex  lib  META-INF  res  resources.arsc
~/webview.apk$ ls lib
x86  x86_64
~/webview.apk$ ls lib/*/**
lib/x86_64/libcrashpad_handler_trampoline.so  lib/x86_64/libwebviewchromium.so  lib/x86/libcrashpad_handler_trampoline.so  lib/x86/libwebviewchromium.so
~/webview.apk$ 

Funfact: libwebviewchromium_plat_support.so and libwebviewchromium_loader.so does not link to any native chromium code at all, according to the Android source code. libwebviewchromium_plat_support.so provides the system interfaces allowing WebView to render and libwebviewchromium_loader.so provides the system interfaces required to load WebView.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants