有关android安全性的问题--代码混淆
转自:http://www.cnblogs.com/dream-sky/archive/2012/11/15/2771648.html
在project.properties里加上 proguard.config=proguard.cfg
proguard.cfg 配置如下:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#忽略警告 也可以用-ignorewarnings
-dontwarn
#声明第三方jar包,不用管第三方jar包中的.so文件(如果有)
-libraryjars libs/tencent_openapi.jar
-libraryjars libs/httpmime-4.1.3.jar
-libraryjars libs/weibo.sdk.android.sso.jar
-libraryjars libs/android-support-v4.jar
-libraryjars libs/AHibernate-1.1.jar
-libraryjars libs/core.jar
-libraryjars libs/gson-1.6.jar
-libraryjars libs/android-support-v4.jar
-libraryjars libs/baidumapapi_v2_1_2.jar
-libraryjars libs/locSDK_3.1.jar
-libraryjars libs/pinyin4j-2.5.0.jar
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#不混淆第三方jar包中的类
-keep class com.baidu.mapapi.** {*;}
-keep class com.tencent.tauth.** {*;}
-keep class org.apache.http.entity.mime.** {*;}
-keep class android.support.v4.** {*;}
-keep class android.net.http.** {*;}
-keep class com.weibo.sdk.android.** {*;}
-keep class com.sina.sso.** {*;}
-keep interface net.sourceforge.pinyin4j.** { *; }
-keep interface vi.com.gdi.bgl.android.** { *; }
-keep interface cn.sharesdk.** { *; }
说明一下,第三方jar包中如果有.so文件,不用去理会,引入的第三方jar文件不要混淆,否则可能会报异常
项目涉及到的jar包:
我自己项目中的混淆
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify -dontwarn android.support.v4.**
-dontwarn com.baidu.mapapi.utils.*
-dontwarn com.baidu.platform.comapi.b.*
-dontwarn com.baidu.platform.comapi.map.
-dontwarn demo.**
-dontwarn org.scribe.services.** -libraryjars libs/AHibernate-1.1.jar
-libraryjars libs/core.jar
-libraryjars libs/gson-1.6.jar -libraryjars libs/android-support-v4.jar
-libraryjars libs/baidumapapi_v2_1_2.jar
-libraryjars libs/locSDK_3.1.jar
-libraryjars libs/pinyin4j-2.5.0.jar -keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-keep public class * extends net.sourceforge.pinyin4j.**
-keep public class * extends vi.com.gdi.bgl.android.**
-keep public class * extends android.support.v4.**
-keep public class * extends cn.sharesdk.**
-keep public class * extends com.baidu.**
-keep public class * extends demo.**
-keep class net.sourceforge.pinyin4j.** {*;}
-keep class vi.com.gdi.bgl.android.** {*; }
-keep class cn.sharesdk.** {*;}
-keep class com.baidu.** {*;}
-keep class demo.** {*;} -keep interface net.sourceforge.pinyin4j.** { *; }
-keep interface vi.com.gdi.bgl.android.** { *; }
-keep interface cn.sharesdk.** { *; }
-keep interface com.baidu.** { *; }
-keep interface demo.** { *; }
-keepattributes *Annotation* ##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
##---------------End: proguard configuration for Gson ---------- -verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * {
native <methods>;
} -keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
} -keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
} -keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
} -keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
} -keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
有关android安全性的问题--代码混淆的更多相关文章
- 浅谈Android保护技术__代码混淆
浅谈Android保护技术__代码混淆 代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.将代码中的各种元 ...
- Android Studio环境下代码混淆+签名打包
Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...
- Cordova Android项目如何做代码混淆
我想修改build.gradle配置 可是这个文件明确写了// GENERATED FILE! DO NOT EDIT!可是还是试了试: if (cdvReleaseSigningProperties ...
- Android Studio(十一):代码混淆及打包apk
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- 【转】Android 编程下的代码混淆
什么是代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.代码混淆可以用于程序源代码,也可以用于程序编译而成的中 ...
- Android 编程下的代码混淆
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通 ...
- Android 4.0 ProGuard 代码混淆 以及 proguard returned with error code 1.See console异常的解决方法
最近呢说要上线,就去找了下上线的方法...之前做过代码混淆,用的是progarud.cfg,但是呢自己反编译了之后还是无效,然后就丢着先不管了,因为实在不知道什么情况.今天来上线的时候结果总是报错,总 ...
- Android 编程下的代码混淆之(android-support-v4.jar)
项 目在代码混淆过程中如果引用了第三方 Jar 包,需要在混淆的脚本文件中加入第三方 Jar 包的声明.部分第三方 Jar 包虽然在混淆脚本中进行了声明,但是在混淆过程中经常会发现内部类或者引用文件找 ...
- Android studio签名与代码混淆
签名: 应用程序升级:应用程序模块化:代码或者数据共享 混淆:混淆器将代码中的所有变量.函数.类的名称变为简短的英文字母代号,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义.
随机推荐
- Java之JSP基础语法
1.JSP页面元素简介及page指令 2.JSP注释,3种不同注释 <!-- 我是HTML注释,在客户端可见 --> <%--我是JSP注释,在客户端不可见 --%> ...
- 【实验室笔记】C#的Socket客户端接收和发送数据
采用socket发送和接收数据的实验中,服务器采用的是网络助手作为模拟服务器端. 客户端程序流程: 应用的命名空间: using System.Net; using System.Net.Socket ...
- HDU 4442 Physical Examination(贪心)
HDU 4442 Physical Examination(贪心) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=4442 Descripti ...
- 2016 ACM Amman Collegiate Programming Contest D Rectangles
Rectangles time limit per test 5 seconds memory limit per test 256 megabytes input standard input ou ...
- HDU 5784 How Many Triangles
计算几何,极角排序,双指针,二分. 直接找锐角三角形的个数不好找,可以通过反面来求解. 首先,$n$个点最多能组成三角形个数有$C_n^3$个,但是这之中还包括了直角三角形,钝角三角形,平角三角形,我 ...
- URAL 1525 Path
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> us ...
- POJ 3740 Easy Finding
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...
- 为啥使用Iscroll.js之后,a不能触发点击事件?
原因:是iscroll.js阻止了a的行为. 解决方法:打开iscroll-probe.js,然后找到preventDefaultException方法. 然后修改为: // preventDefau ...
- Java 泛型 泛型代码和虚拟机
Java 泛型 泛型代码和虚拟机 @author ixenos 类型擦除.原始类型.给JVM的指令.桥方法.Java泛型转换的事实 l 类型擦除(type erasure) n Java泛型的处理 ...
- 10.hibernate缓存机制详细分析(转自xiaoluo501395377)
hibernate缓存机制详细分析 在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论 ...