2

I'm building a jar file that use jni to load an x86-64 elf extracted from Android apk file. But when I run my app, it throw this exception:

Caused by: java.lang.UnsatisfiedLinkError: /lib/x86_64-linux-gnu/libc.so: version `LIBC' not found (required by /tmp/jna-1195364489/jna8496397495292865633.tmp)

So look like the libc.so version on my machine is not compatible with such elf file. I understand that Android app use bionic instead of glibc. How can I install these bionic *.so file into my Ubuntu linux so it can be used with such jar app?

0

1 Answer 1

2

Android uses a Bionic libc implementation as opposed to the more common glibc in most Linux distros.

This means that most android files are not compatible and won’t run on Linux even if the processor architecture is the same.

In theory it should be possible to compile Bionic for standard Linux and I think there was a project for that but I can’t find it right now... besides the program likely relies on Android specific environment details and probably won’t run well on Linux.

I would suggest you to either use an Android emulator or RE the file statically.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.