Как пользоваться обфускацией кода в Android

Решил заняться защитой приложения, в gradle файле обнаружил, что у меня уже стоит proguard:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

Я нашел расположение этих файлов по пути:

  1. StudioProjects/MyApp/app/proguard-rules.pro
  2. Android/SDK/tools/proguard/proguard-android-optimize.txt

Внутри текстового файла указано, что с 2.2 gradle этот файл не используется:

# This file is no longer maintained and is not used by new (2.2+) versions of the
# Android plugin for Gradle. Instead, the Android plugin for Gradle generates the
# default rules at build time and stores them in the build directory.

Я ничего не нашел в директории своего проекта. А файл pro, который находится в проекте, не подходит для play console (требуется txt или map, map я тоже не нашел) В связи с этим 2 вопроса:

  1. Где находится файл txt для деобфускации, если в proguard-android-optimize.txt указано, что тот не используется, но его нет, в build так же пусто
  2. Стоит ли рассчитывать на защиту proguard, если в приложении есть ключи доступа к БД?

Ответы (1 шт):

Автор решения: woesss
  1. Разве в справке консоли не написано где его искать? - при стандартной структуре проекта где-то там:
    "ВашПроэкт/app/build/outputs/mapping/release/mapping.txt"
    Но его там может не быть пока вы не выполните сборку приложения c включенной обфускацией: minifyEnabled true
    Вы должны скопировать его сразу после сборки релиза для публикации, потому что при каждой сборке он может измениться и расшировка логов с mapping другой версии будет не правильной

Подробнее в гайде: https://developer.android.com/studio/build/shrink-code

  1. Нет, не стоит - он не шифрует строки, ресурсы и другие данные, только переименовывает классы, поля, методы и вырезает то, что не требуется для выполнения кода.
→ Ссылка