ProGuard рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ, рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ, рдФрд░ obfuscating рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯрд╛ * .apk рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд░реЗрдВрдЧрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред
Developer.android.com рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ ProGuard рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ r9 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдореЗрд░реЗ SDK рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рдереАред
ProGuard рдХреЗрд╡рд▓ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдмрд┐рд▓реНрдб рдХреЛ "рд░рд┐рд▓реАрдЬрд╝" рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЬреЛ рд▓реЛрдЧ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рдЧреНрд░рд╣рдг рдореЗрдВ): рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░
рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ -> Android -> рдирд┐рд░реНрдпрд╛рдд Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рдЬрдбрд╝ рдореЗрдВ,
proguard.cfg рдирд╛рдо рдХреЗ рддрд╣рддред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рдЕрдЧрд▓рд╛, рдЕрд╕реЗрдВрдмрд▓реА рд╕реЗ рдкрд╣рд▓реЗ рдЦреБрдж
рдХреЛ рдУрдлрд╝реНрдлрд╝реБрд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рдкрддреНрд░
proguard.config = / path / proguard.cfg рдХреА рдПрдХ рдкрдВрдХреНрддрд┐
рдХреЛ /root_of_your_project/default.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ , рдЬрд╣рд╛рдБ рдкрде
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реА рдХреА "рд░рд┐рд▓реАрдЬрд╝" рдХреЗ рдмрд╛рдж, ProGuard рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрдВрджрд╛ рдорд┐рд▓реЗрдЧрд╛:
- / root_of_your_project / proguard - рдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
- рдЪреАрдВрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп / root_of_your_project / bin / proguard -
рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ:
- dip.txt - рдЖрдкрдХреЗ * .apk рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
- mapping.txt - рд╕реНрд░реЛрдд рдФрд░ obfuscated рд╡рд░реНрдЧреЛрдВ, рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдореИрдкрд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
- seed.txt - рдЕрдирдлреЛрдХрд╕реНрдб рдХреНрд▓рд╛рд╕реЗрд╕ рдХреА рдПрдХ рд╕реВрдЪреА
- рдЙрдкрдпреЛрдЧред txt - рдХреЛрдб .apk рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛
Developer.android.com рдкрд░ рднреА рд╡реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВ рдХрд┐ ProGuard рдХреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп,
ClassNotFoundException рдХреЗ рд░реВрдк рдореЗрдВ
рдЬрдЯрд┐рд▓рддрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
-keep public class <MyClass>
рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВред рджрд░рдЕрд╕рд▓, рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ
рдХреБрдЫ рдирдореВрдиреЗ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, / path_to_your_SDK / tools / proguard / bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ
cry.bat (Linux / Mac OS X рдХреЗ рд▓рд┐рдП
cry.sh ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд
рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ obfuscated рдХреЛ рдкрдардиреАрдп рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
retrace.bat -verbose mapping.txt obfuscated_trace.txt
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рдирдХ рдореИрдиреБрдЕрд▓ рдкрд╛рда рдЗрдирдкреБрдЯ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк <stacktrace_file> рдХрд╛ рдкрде рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ ProGuard рдХреЗ рд╕рд╛рде "рд░рд┐рд▓реАрдЬрд╝" рдореЛрдб рдореЗрдВ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде), рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛрдб 1 рдЙрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ SDK рдХреЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрдкрдиреЗ рдореЛрдЯрд╛рдкреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!