ИИ посрамлен
Самый важный артефакт при сборке обфусцированного Android-приложения – mapping-файл (mapping.txt).
R8 сильно сокращает имена классов, методов, полей и пакетов, из-за чего стектрейсы крашей в проде превращаются в нечитаемый мусор. Mapping-файл как словарь восстанавливает оригинальные имена для конкретной сборки.
Firebase Crashlytics автоматически загружает mapping при сборке через свой Gradle-плагин. Однако если используется другая крэшлитика или система распространения сборок, файл может потеряться – например, из-за expire date. Именно это я и схлопотал, получив бесполезный стектрейс.
Во всех источниках предупреждают, что mapping-файл уникален для каждой сборки. При новом билде обфускация может переименовать элементы иначе. Поэтому mapping от версии 1.0.0 не подойдёт для краша из 2.0.0. И наоборот.
Уважаемый клод, пересказывая документацию, уверенно подтвердил, что расшифровать ничего не получится. Стыковка с Эндьюранс невозможна.
Но я все же навязал расчетливой машине свою человеческую волю и попробовал дешифровать старый стектрейс новым маппинг-файлом. Это сработало безупречно.
Выполняется в терминале через retrace.
Post #410
325
- ❤ 6