Как запутать андроид apk

привет, я хочу запутать свой apk, но когда я использую minifyEnabled true, мое приложение вылетает в режиме выпуска, поэтому я обновил as до 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? Как запутать андроид apk

"есть новая система под названием R8, я ее активировал" Вы отключили сжатие и запутывание. R8 является заменой ProGuard, поэтому вам все равно нужно иметь minifyEnabled true. android.enableR8 можно использовать, чтобы сказать, что вы все еще хотите использовать ProGuard для минификации вместо R8, установив для него значение false (по умолчанию true). Свойство useProguard устарело. Если minifyEnabled true вызывает сбой вашего приложения, правильным решением будет исправить эти сбои. Начните с анализа трассировки стека.
Michael 14.07.2019 14:30

@Michael tnx Вы мне прекрасно объяснили, только еще один вопрос, эту строку нужно удалить или нет? proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

hadi khodabandeh 14.07.2019 16:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
2
7 670
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Откройте 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

Это переименует все классы в нечитаемый формат.

В Android Gradle Plugin 3.4, чтобы включить R8, просто установите для minifyEnabled значение true. Похоже, вы установили значение false, что отключает и ProGuard, и R8. R8 — это средство сжатия по умолчанию в версии 3.4, поэтому вам не нужны никакие настройки, кроме minifyEnabled, чтобы включить его.

Учитывая тот факт, что proguard предлагает тривиальные методы обфускации (это оптимизатор), мы разработали обфускатор APK, проверьте его:

https://github.com/ClaudiuGeorgiu/Obfuscapk

Другие вопросы по теме