Android implementation code obfuscation and android code obfuscation

Source: Internet
Author: User

Android implementation code obfuscation and android code obfuscation

For signed apk, you can still view the Code Implementation of the class file after decompilation. for decompilation, you can view your blog and click the open link.

This conventional decompilation fails when code obfuscation is used.

1, added in build. grandle, where rules are written in the proguard-rules.pro, you can also customize a file, replace it, such as eclipse commonly used proguard-project.txt

buildTypes {    release {        signingConfig signingConfigs.release        minifyEnabled true        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }}
2, add the following code in the proguard-rules.pro, basically covering all

-Optimizationpasses 5 # specify the compression level of the code-dontusemixedcaseclassnames # whether to use case-insensitive mixture-dontpreverify # Whether to perform pre-check-verbose # Whether to record logs during obfuscation-dontwarn com. umeng. ** # Keep com. umeng. ** all classes in this package are not confused with all methods. (Delete this sentence if you do not have umeng integration.)-optimizations! Code/simplification/arithmetic ,! Field /*,! Class/merging/* # algorithm used for obfuscation-keep public class * extends android. app. activity # keep classes that are not Obfuscated-keep public class * extends android. app. application # keep classes that are not Obfuscated-keep public class * extends android. app. service # Do not confuse classes-keep public class * extends android. content. broadcastReceiver # keep classes that are not Obfuscated-keep public class * extends android. content. contentProvider # Do not confuse classes-keep public class * extends android. app. backup. backupAgentHelper # keep classes that are not Obfuscated-keep public class * extends android. preference. preference # keep classes that are not Obfuscated-keep public class com. android. vending. licensing. ILicensingService # Keep classes not Obfuscated-keepclasseswithmembernames class * {# Keep native METHOD not obfuscated native <methods> ;} -keepclasseswithmembers class * {# Keep the custom control class not obfuscated with public <init> (android. content. context, android. util. attributeSet);}-keepclasseswithmembers class *{
# Keep the custom control class public <init> (android. content. Context, android. util. AttributeSet, int );
}-Keepclassmembers class * extends android. app. activity {# Keep the custom control class from being confused with public void * (android. view. view);}-keepclassmembers enum * {# Keep The enum class from being confused public static ** [] values (); public static ** valueOf (java. lang. string);}-keep class * implements android. OS. parcelable {# Keep Parcelable not to be confused public static final android. OS. parcelable $ Creator *;}
3. When obfuscation code is implemented through Android Studio, the jar files in the lib directory have been added to the packaging script by default. Therefore, you do not need to manually add the jar files again. Otherwise, "java. io. IOException: The same input jar is specified twice "error.

4. decompile the signed apk and view the code. The following figure shows the obfuscation and obfuscation process.


Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.