Partly missing deobfuscation for Android crash logs (Exception message)

Sarah Will's Avatar

Sarah Will

21 Apr, 2017 10:16 AM

Hello,

We currently have a problem with one of our projects regarding the complete deobfuscation of crash logs in Hockey for an Android app.

Background: The release version of the app is obfuscated via Proguard, and the correct mapping.txt File has been uploaded to the respective version page in Hockey. It is complete and also contains the mappings that are not correctly deobfuscated.

More precisely: Most of the crash logs are correctly deobfuscated, but there are some that display method names in their obfuscated form. A simple example of such a crash log (real packages/method names changed):

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Double com.app.randompackage.Data.g()' on a null object reference
    at com.app.randompackage.SomeActivity.updateItemInfo(SomeActivity.java)
    at com.app.randompackage.SomeActivity.initViews(SomeActivity.java)
                                                               loadItemInfo(SomeActivity.java)
                                                               access$100(SomeActivity.java)
    at com.app.randompackage.SomeActivity$OnCustomButtonClickListener.onButtonClicked(SomeActivity.java)
    at com.app.view.CustomButton$1.onClick(CustomButton.java)
    at android.view.View.performClick(View.java:5184)
    at android.view.View$PerformClick.run(View.java:20893)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5938)
    at java.lang.reflect.Method.invoke(Method.java)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

All the other methods, like "updateItemInfo" and "initViews" are correctly deobfuscated, except for the method "Data.getData()", which
is still displayed in obfuscated form as "g()". It is, however, correctly contained in the mapping.txt File:

com.app.anotherrandompackage.Data -> com.app.anotherrandompackage.Data:
    (...)
    java.lang.Double getData() -> g

Any idea as to why this is happening? As the method name is part of the exception message, are those simply not checked for obfuscated code parts and contained in the stack trace "as is"?

  1. Support Staff 1 Posted by Thomas Dohmke on 21 Apr, 2017 02:54 PM

    Thomas Dohmke's Avatar

    Hi Sarah,

    HockeyApp currently does not support the de-obfuscation of the exception message.

    Best,

    Thomas

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac