When writing a C implementation for a native Java method in Android, the rule is to name the C function according to the convention "Java_com_...". But I encountered an APK in which there are no such names in the so
files and yet the program runs perfectly well. Are there other ways to map a Java native declaration to some function in the so
files? Is there a technique to find the implementing function? I tried JDB, but it couldn't get into native codes. GDB requires the function name in the first place, which is missing in my case.
I forgot to mention that the Java code is obfuscated.
.so
files don't have that? I have also been working on an app and the only time/place where the rule you cite applies would be in the JNI layer, right? So other libraries that are contained in the same application package may still have their own naming conventions. I'm not sure if there is such a thing as purely native apps in Android, but we have libraries that we otherwise also deploy on Linux and these are basically unchanged, but that one library that provides the bridge between the (Java) runtime and the lib abides by the rules.so
files as JNI-layer files and didn't consider other formats. My app is not a purely native app; that's why I mentioned a mapping from Java to C. My approach is quite primitive and I think that's one reason why I'm missing something.JNI_OnLoad
entry?