如何混淆Android APK

时间:2019-07-14 07:45:02

标签: java android proguard obfuscation

嗨,我想混淆我的apk,但是当我在发布模式下使用 minifyEnabled true 时,我的应用程序崩溃了,所以我将我的版本更新为3.4.2,然后我意识到有一个名为R8的新系统已激活它,但我的代码仍然可读

我所做的事情

buildTypes {
        release {
            useProguard false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
    }

和gradle.properties中的

android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
android.enableR8 = true

发布apk后,jadx程序可见该代码 我现在很困惑,有人可以告诉我如何混淆apk吗? enter image description here

3 个答案:

答案 0 :(得分:2)

打开proguard-rules.pro进行编辑并添加以下内容:

# Uncomment this to preserve the line number information for
# debugging stack traces.
-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
-renamesourcefileattribute SourceFile

这会将所有类重命名为不可读的格式。

答案 1 :(得分:1)

在Android Gradle插件3.4上,要启用R8,只需将minifyEnabled设置为true。好像您将其设置为false一样,这将同时禁用ProGuard和R8。 R8是3.4中的默认收缩器,因此您无需启用minifyEnabled即可进行其他设置。

答案 2 :(得分:1)

鉴于proguard提供了微不足道的混淆技术(它是一种优化程序),我们开发了APK混淆器,请检查一下:

https://github.com/ClaudiuGeorgiu/Obfuscapk