27

I got a stacktrace from the crashreporting system and it is obfuscated, like

... Failed resolution of: Lru/test/c/b/a; ...

I have a mapping file.

How to deobfuscate this stacktrace using mapping.txt?

Adinia
  • 3,722
  • 5
  • 40
  • 58
Maksim Turaev
  • 4,115
  • 1
  • 29
  • 42

3 Answers3

38

Get deobfuscated crash stacktrace from your app page

Upload your mapping.txt to your app PlayStore page with the following steps:

  1. Sign in to your Play Console.
  2. Select an app.
  3. On the left menu, click Android vitals > Deobfuscation files.
  4. Next to a version of your app, click Upload.
  5. Upload the ProGuard mapping file for the version of your app.

After doing so, to view your deobfuscated crash stack traces:

  1. Sign in to your Play Console.
  2. Select an app.
  3. On the left menu, click Android vitals > ANRs & Crashes.
  4. Select a crash.
  5. On the "Stack Traces" tab, you'll see your deobfuscated stack traces.

You can check this link for more details.

Deobfuscate a piece of stacktrace

To convert the code by yourself use the retrace script (retrace.bat on Windows; retrace.sh on Mac/Linux). It is located in the ~/Android/sdk/tools/proguard/bin/ directory. The script takes the mapping.txt file and your stack trace, producing a new, readable stack trace. The syntax for using the retrace tool is:

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
Ricardo
  • 9,136
  • 3
  • 29
  • 35
  • 7
    The retrace script seems to be remove from the SDK or it is not in the path anymore. Your command is not working for me. It can be found in: ~/Library/Android/sdk/tools/proguard/bin/retrace.sh – Janusz Nov 27 '19 at 16:58
  • I've updated my answer @Janusz. Actually the `` was already there but since i did not annotate it with '`' it was not showing, I only noticed it now. A bit late from my side but thanks for the heads up – Ricardo May 15 '20 at 10:42
  • @Ricard how can I find my proguard file path in windows – Edgar Sep 06 '21 at 12:59
  • Error running 'retrace.bat -verbose mapping.txt obfuscated_trace.txt': Cannot run program "retrace.bat" (in directory "C:\Users\Edgar\AndroidStudioProjects\Swapit_Android\app"): CreateProcess error=2, The system cannot find the file specified – Edgar Sep 06 '21 at 13:05
  • @Ricard I found where proguard installed I runned following command I am using windows and I am running following command retrace.bat [-verbose] mapping.txt but I am getting following error Error: [-verbose] (The system cannot find the file specified) – Edgar Sep 06 '21 at 14:07
  • you need to replace `[]` with your obfuscated file, e.g: my_obfuscated_file.txt. The command should look like: retrace.bat -verbose mapping.txt obfuscated_stack_trace.txt – Ricardo Sep 07 '21 at 07:17
  • 1
    I used retrace.sh [-verbose] mapping.txt [] worked and really helpful since app center doesn't retrace issues before uploaded mapping file. thanks mate – MusabAlothman Oct 07 '21 at 12:07
  • Notice that the stack trace must start with "at": https://stackoverflow.com/a/17884485/6396770 – Masoud Maleki Feb 15 '23 at 06:29
12

We can use pro-guard tool to retrace :

1st get the mapping file from the below location

<project-path>app/build/outputs/mapping/flavor/release/mapping.txt

Find the pro-guard tool i.e. "proguardgui" from the below location

<your-computer-name>/AppData/Local/Android/SDK/tools/proguard/lib

then you will get proguardgui.jar

On mac : /Users/<your computer name>/Library/Android/sdk/tools/proguard/lib

By using terminal

java -jar /Users/<your computer name>/Library/Android/sdk/tools/proguard/lib/proguardgui.jar

proguardgui tool

Now click on the retrace option on the left menu side to get the below window, browse your mapping.txt file from the above location and add your stack trace error logs in the obfuscated stack trace window and then click on the ReTrace button to get the deObfuscated error report.

There is one more way of doing automatically using Google play store console.

Check this website of Google Play Store Console for detailed steps.

Arunendra
  • 2,034
  • 26
  • 22
1

Another option (works for me).
Location: C:\Program Files\Android\Android Studio\jre\bin (java.exe is here)

  1. Add the files from Sdk\tools\proguard\lib:

    proguard.jar

    retrace.jar

  2. Add your mapping.txt and stacktrace file

  3. Create a bat file with the lines:

    java -jar retrace.jar -verbose mapping.txt stacktrace

    pause

  4. Run it.

Nxtpr
  • 21
  • 3