Как пользоваться обфускацией кода в Android
Решил заняться защитой приложения, в gradle файле обнаружил, что у меня уже стоит proguard:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Я нашел расположение этих файлов по пути:
- StudioProjects/MyApp/app/proguard-rules.pro
- 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 вопроса:
- Где находится файл txt для деобфускации, если в proguard-android-optimize.txt указано, что тот не используется, но его нет, в build так же пусто
- Стоит ли рассчитывать на защиту proguard, если в приложении есть ключи доступа к БД?
Ответы (1 шт):
Автор решения: woesss
→ Ссылка
- Разве в справке консоли не написано где его искать? - при стандартной структуре проекта где-то там:
"ВашПроэкт/app/build/outputs/mapping/release/mapping.txt"
Но его там может не быть пока вы не выполните сборку приложения c включенной обфускацией:minifyEnabled true
Вы должны скопировать его сразу после сборки релиза для публикации, потому что при каждой сборке он может измениться и расшировка логов с mapping другой версии будет не правильной
Подробнее в гайде: https://developer.android.com/studio/build/shrink-code
- Нет, не стоит - он не шифрует строки, ресурсы и другие данные, только переименовывает классы, поля, методы и вырезает то, что не требуется для выполнения кода.