Android Studio中的混淆

Ili*_*hko 38 obfuscation android android-studio

是否有与Android Studio一起使用的混淆工具?声明 IntelliGuard插件 Studio 支持,但由于缺少AntSupport插件,它实际上不起作用.我无法在存储库中找到一个.有任何想法吗?

PS Android Studio构建过程基于Gradle,所以我不希望看到Ant支持.也许我错了.

Led*_*ine 56

  • 基本混淆

要在Android工作室中混淆代码,只需转到Android Studio项目中的build.gradle文件:

在此输入图像描述

将minifyEnabled属性从false更改为true

在此输入图像描述

这是一个基本的讽刺.

生成apk后,您可以看到使用任何软件对apk进行解压缩的混淆结果,例如此页面可以帮助您:

http://www.decompileandroid.com/

在混淆结果中,您将看到名称为a,b,c ....的类.

在此输入图像描述

混淆变量和方法也会有像aa,c,ac这样的名字......

在此输入图像描述

  • 正常混淆:

要以更复杂的形式对代码进行模糊处理,您可以转到根目录应用程序并创建.pro文件,例如在下图中我创建了文件:proguard-rules-new.pro,您应该在同一目录中看到一个名为proguard-rules.pro的文件

在此输入图像描述

现在将您创建的文件添加到build.gradle文件中

在此输入图像描述

并使用您自己的自定义proguard规则编辑您创建的.pro文件

在此输入图像描述

  • 有没有可以自动编写proguard规则的插件 (3认同)
  • 我有相同的配置,除了我的文件是`proguard.cfg`试图反编译apk和类是相同的没有障碍..我需要重命名.cfg到.pro? (2认同)

ami*_*dya 13

首先minifyEnabled在build.gradle文件中启用,例如

minifyEnabled true
Run Code Online (Sandbox Code Playgroud)

在此之后,在progurad-rules.txt文件中添加以下行

-keep class yourpackage.** { *; }
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
Run Code Online (Sandbox Code Playgroud)

要检查其工作正常,请访问:

http://www.javadecompilers.com/apktool网站,以便您可以在反编译后进行验证.

它会工作,你的课程将完全隐藏.

  • 就我个人而言,我永远不会将我的 apk 上传到这样的网站!我如何信任该网站?!? (6认同)

Pav*_*ngh 10

Android于2018年9月发布了一款新工具R8收缩和混淆工具.

R8-R8是一个java代码缩减器和缩小工具,可将java字节代码转换为优化的dex代码

  1. 打开 gradle.properties
  2. android.enableR8 = true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit

android.enableR8 = true
Run Code Online (Sandbox Code Playgroud)

最低要求:

  • Android工作室3.2 2018年9月发布或更高版本
  • Java 8

R8工具