Question: This may sound suspicious, but I need to **deobfuscate my own app**. Some time ago I published my app that I obfuscated with Proguard. Unfortunately I did not save that version of the app and changed the code a lot.

Now I need the code of that older version. **I still have mapping.txt** file generated by Proguard.

I have converted the classes.dex file to jar (using dex2jar tool), now I need to deobfuscate it according to mapping.txt. Are there any tools that can help me? Maybe Proguard itself?

UPD. I need a tool that can automatically rename all the classes, functions etc, so I dont have to do it manually. Thank you

Answer: 
If you have the mappings then you can get every class, field, and method name back.You can use [java-asm](http://asm.ow2.org/) (A bytecode modification library) to remap the class and member names. Most of the work will be updating member descriptors. 

I made one for myself and it took about a day to get it working reliably.

Edit: It's not perfect, but it's pretty darn close. [Link](https://github.com/FireMasterK/SkidSuite2-Latest). 
[![Screenshot of the GUI](https://i.imgur.com/sLvyOHX.png)](https://i.imgur.com/sLvyOHX.png) Give it a proguarded jar file, the mappings and it'll rename all it can find. There's a few issues but for just looking at the source it should do the job. Just dump the jar it makes (FileName + "-Re.jar") into a decompiler such as Luyten/JD-GUI. Also the file inputs are only changed via the buttons. The textboxes are just for visual-feedback/confirmation.

Edit 2: Fixed NPE occurring when class entry in mappings doesn't exist in the given jar.

Edit 3: Fixed a lot of issues resulting in methods not being renamed.

Edit 4: Uploaded compiled jar to github *(releases, in the zip file it's in the mapping util)*, added support for multiple mapping types.
I suggest to use proguard tool as suggested in [above answer](https://stackoverflow.com/questions/36245737/how-to-deobfuscate-jar-file-using-mapping-txt-generated-by-proguard?answertab=oldest#tab-top) along with [Enigma](http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/2162136-enigma-a-tool-for-deobfuscation-of-java-bytecode). The solution for your problem can't be very straightforward and you need to use a combination of available tools to resolve it.