Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Proguard guarantee to provide the same mapping if no source has changed?

In the case, if I will

  • build a project
  • clean up all binaries
  • build it again (no source/resources and etc has changed).

Does Proguard guarantee to provide the same mapping.txt file?

like image 271
Victor Ronin Avatar asked Nov 28 '12 20:11

Victor Ronin


People also ask

Is ProGuard deterministic?

ProGuard is deterministic: for the same input, it will generate the same output.

How do I get ProGuard mapping?

It should be located at build/outputs/proguard/release/mapping. txt in your application module's directory. In the latest version of ProGuard and Android Studio, the file is located at build/outputs/mapping/release/mapping.

What is retrace mapping file?

R8 retrace is a tool for obtaining the original stack trace from an obfuscated stack trace. The stack trace is reconstructed by matching class and method names in a mapping file to their original definitions.

Does ProGuard obfuscate package name?

Obfuscating package names myapplication. MyMain is the main application class that is kept by the configuration. All other class names can be obfuscated. Note that not all levels of obfuscation of package names may be acceptable for all code.


1 Answers

ProGuard is deterministic: for the same input, it will generate the same output.

There is one subtlety though: if the operating system lists input files in a directory (notably class files that are not inside an archive) in a different order, then they may be processed in a different order, and the output can be different.

like image 143
Eric Lafortune Avatar answered Oct 09 '22 12:10

Eric Lafortune