TBM13 / Samsung-Camera-Experiments

Experiments to enable camera features on Exynos devices and make GCam work
26 stars 1 forks source link

Lib crash on S20 Ultra: 'dlopen failed: library "libexynoscamera3.so" not found' #7

Closed berkantdu123 closed 1 month ago

berkantdu123 commented 5 months ago

Please add support for S20 Ultra Android version: Android 14/OneUI 6 Rom: ExtremeROM CPU: Exynos990

Library /vendor/lib/: https://gofile.io/d/OdoH2T Library /vendor/lib64/: https://gofile.io/d/T8eaVE

Direct link to both in .zip: library.zip

Md5: /vendor/lib/libexynoscamera3.so: ac5d49828334cdc068ba78ea94365033 /vendor/lib64/libexynoscamera3.so: ca361d2b42e4ff06e6ab034b0de58270

TBM13 commented 5 months ago

The script should work with that lib now. Let me know if there is any other issue or if you test GCam so I can add the device to the README

berkantdu123 commented 4 months ago

The script should work with that lib now. Let me know if there is any other issue or if you test GCam so I can add the device to the README

Enabling raw bricks the camera2api on the s20u

TBM13 commented 4 months ago

You mean that all cameras disappeared, right? That means the lib crashed, will take a look to it

Just to make sure, did you install the modified lib in the same exact device you grabbed the libs from? Sometimes different devices (even if they have the same model) use a different version of the camera lib depending on the installed firmware version

berkantdu123 commented 4 months ago

You mean that all cameras disappeared, right? That means the lib crashed, will take a look to it

Just to make sure, did you install the modified lib in the same exact device you grabbed the libs from? Sometimes different devices (even if they have the same model) use a different version of the camera lib depending on the installed firmware version

I did yes, I'm using the exact same device I extracted the libs from, I can confirm that in camera2api probe theres no output, so the lib crashed. My guess is that it tries to give raw capabilities at the depth output camera (tof) so it crashes

Edit: Raw confirmed working on s20+ without tof (disabled) and other models without that sensor, confirming my theory. ToF camera's ID is 4

berkantdu123 commented 4 months ago

Any updates? I'm always here if you need any helps, logs or anything I can help you with, I'm really excited and full of hopes for this project The s20+ exynos with patched libs has been confirmed fully working (front and rear cameras) with agc gcam in a telegram group, hopefully we will see the same for the s20u! If you want a direct contact through either discord or telegram, you can contact me @hectarox @TBM13

TBM13 commented 4 months ago

I took a quick look at your libs after patching them and I didn't find anything weird. I doubt enabling RAW on the depth cameras is causing the issue, but still it's a possibility.

I'll try to manually edit the libs you sent here to only enable RAW on non-depth cameras and send them later

berkantdu123 commented 4 months ago

I took a quick look at your libs after patching them and I didn't find anything weird. I doubt enabling RAW on the depth cameras is causing the issue, but still it's a possibility.

I'll try to manually edit the libs you sent here to only enable RAW on non-depth cameras and send them later

Alright, I would love to test that!

TBM13 commented 4 months ago

I haven't done it yet, but first I want to discard something else from being the issue so could you give these two libs a try? 1.zip

berkantdu123 commented 4 months ago

I haven't done it yet, but first I want to discard something else from being the issue so could you give these two libs a try? 1.zip

Library crashes; no output on camera nor camera2api Screenshot_20240213_183635_Camera2 Probe.jpg

TBM13 commented 4 months ago

Could you send me a logcat from device startup to boot using the patched libs and another one using the original libs?

berkantdu123 commented 4 months ago

Could you send me a logcat from device startup to boot using the patched libs and another one using the original libs?

How can I do that? I have never done a logcat from startup to boot before

TBM13 commented 4 months ago

Could you send me a logcat from device startup to boot using the patched libs and another one using the original libs?

How can I do that? I have never done a logcat from startup to boot before

Execute adb logcat on your PC, turn on your phone, connect it and stop taking the log once the lock screen appears

berkantdu123 commented 4 months ago

logcat_patched.txt This is with the modified lib, I will edit this message to add the original libs afterwards The logcat starts with the crash report of the library, should be what you need

(My analysis, but I'm maybe wrong as I don't know that much) I see that theres an error on vendor.samsung.hardware.camera.provider@4.0-service_64 Googling that, we can see errors only on devices like the s21, a32, z3s(s20ultra), a53 Which all have depth cameras, I honestly think its really about that

berkantdu123 commented 4 months ago

And here is stock libs logcat logcat_stock_lib.txt

TBM13 commented 4 months ago

Yes, looking at the log has convinced me more that it may be caused by enabling RAW on the depth cameras.

2.zip Give it a try and let me know. If I didn't make any mistake RAW shouldn't be enabled on the depth cameras now.

I did something quite messy, but just thought about something better to achieve the same (which could even be added to the Python script as an option). If those libs still don't work send me another logcat and I'll try to modify the libs again with this other method.

berkantdu123 commented 4 months ago

Yes, looking at the log has convinced me more that it may be caused by enabling RAW on the depth cameras.

2.zip Give it a try and let me know. If I didn't make any mistake RAW shouldn't be enabled on the depth cameras now.

I did something quite messy, but just thought about something better to achieve the same (which could even be added to the Python script as an option). If those libs still don't work send me another logcat and I'll try to modify the libs again with this other method.

It crashes again logcat_custom_lib.txt I can see this line that seems interesting 02-14 11:02:28.736 7348 7348 F DEBUG : Abort message: 'UniHal3Entry.cpp: GetVendorHalModule: 25: Failed to hw_get_module of CAMERA_HARDWARE_MODULE_ID by -22'

TBM13 commented 4 months ago

Could not load /vendor/lib64/hw/camera.exynos990.so from default namespace: dlopen failed: library "libexynoscamera3.so" not found: needed by /vendor/lib64/hw/camera.exynos990.so in namespace (default).

Can you check you didn't accidentally delete the lib instead of replacing it?

berkantdu123 commented 4 months ago

Could not load /vendor/lib64/hw/camera.exynos990.so from default namespace: dlopen failed: library "libexynoscamera3.so" not found: needed by /vendor/lib64/hw/camera.exynos990.so in namespace (default).

Can you check you didn't accidentally delete the lib instead of replacing it?

I haven't touched my system since, and after verifying, the libs are where they're supposed to be They also have correct permissions (644, rw-r--r--)

Screenshot_20240216_192351_Solid Explorer.jpg

Screenshot_20240216_192335_Solid Explorer.jpg

You can also verify the md5 hashes: 32bit: 73d20aeaecbf668ffe349941a4589df5 64bit: 8631df2e190f8b8062e2212b58f1015f

berkantdu123 commented 4 months ago

Could not load /vendor/lib64/hw/camera.exynos990.so from default namespace: dlopen failed: library "libexynoscamera3.so" not found: needed by /vendor/lib64/hw/camera.exynos990.so in namespace (default).

Can you check you didn't accidentally delete the lib instead of replacing it?

I also installed logfox and every 5s I get this crash when using my phone crash-_vendor_bin_hw_vendor-samsung-hardware-camera-provider@4-0-service_64-17_02-01-06-58_226.zip

berkantdu123 commented 4 months ago

Could not load /vendor/lib64/hw/camera.exynos990.so from default namespace: dlopen failed: library "libexynoscamera3.so" not found: needed by /vendor/lib64/hw/camera.exynos990.so in namespace (default).

Can you check you didn't accidentally delete the lib instead of replacing it?

I RESOLVED THE ISSUE!!! I copied the (64bit) library to /vendor/lib64/hw/libexynoscamera3.so and it worked!! Idk why I had to put it there, but now it works Tysm!

Screenshot_20240217_012207_Camera2 Probe.jpg

Screenshot_20240217_012216_Camera2 Probe.jpg

I'll try patching with the script to see if it works, if it does, I'll mark as completed

TBM13 commented 4 months ago

I RESOLVED THE ISSUE!!! I copied the (64bit) library to /vendor/lib64/hw/libexynoscamera3.so and it worked!! Idk why I had to put it there, but now it works Tysm!

That's really strange, but I'm happy to hear it works.

I'll try patching with the script to see if it works, if it does, I'll mark as completed

Please do, and let me know

berkantdu123 commented 5 days ago

I RESOLVED THE ISSUE!!! I copied the (64bit) library to /vendor/lib64/hw/libexynoscamera3.so and it worked!! Idk why I had to put it there, but now it works Tysm!

That's really strange, but I'm happy to hear it works.

I'll try patching with the script to see if it works, if it does, I'll mark as completed

Please do, and let me know

Hey, sorry to get back to you after all of these months, I had my exams. I just tried patching again and seems like it crashes after patching with the script, seems like there was 2 crashes in the original issue, one being because it patched the depth output camera, and the second one because it wasn't in /vendor/lib64/hw Could be great if you could implement a fix so that it doesn't patch the depth output camera, I really appreciate your work, thank you very very much and still sorry for the huge delay

Emulond commented 5 days ago

Here there, @TBM13. Another S20U (SM-G988B, z3s) user here. I experience just the same issue.