Flutter отладки Apk декомпилировать, чтобы получить исходный код - PullRequest
0 голосов
/ 07 декабря 2018

Я потерял исходный код моего приложения из-за повреждения диска, но у меня есть файл debug.apk в моем телефоне Android.Может кто-нибудь, пожалуйста, скажите мне, как декомпилировать Apk Flutter для получения исходного кода.Я попытался декомпилировать его с помощью декомпиляторов, но он не дает мой исходный код, поскольку исходный код флаттера написан на языке дротиков.

1 Ответ

0 голосов
/ 28 мая 2019

Если ваш debug.apk находится в режиме отладки, вы можете использовать apktool для извлечения компонентов apk (я использую слово extract, поскольку apk - это zip-файл).

Flutter в режиме отладки сохраняет исходный код (с комментариями!) В файле kernel_blob.bin.Таким образом, использование следующей команды должно помочь вам извлечь код в файл:

strings /path/to/extracted/apk/assets/flutter_assets/kernel_blob.bin > extracted_code.dart

Пожалуйста, обратите внимание - Вам нужно будет очистить 'extract_code.dart', изнерелевантные / мусорные строки.

Попробуйте найти такие строки, как «dart», «import», «void» и другие ключевые слова в «extract_code.dart», это поможет вам найти сам код.

Вот пример из моего Ubuntu:

Example

Если APK скомпилирован в режиме «релиз», извлечение кода будетнамного сложнее, поскольку код компилируется в файл isolate_snapshot_instr, который не является сборкой необработанного плеча и десериализуется только с использованием движка Flutter во время выполнения.Подробнее об этом можно прочитать здесь

...