I have lost the source code of my flutter application due to drive corruption, but I have my debug.apk
in my android phone.
How can I decompile the Flutter apk
to get source code?
I have tried decompiling it using decompilers but it is not giving my source code
as the Flutter source code is in Dart language.
If your debug.apk is in debug mode then you can use apktool
in order to extract the components of the apk
(I'm using the word extracting since apk
is a zip file).
Flutter, in debug mode, keeps the source code (with comments!) in the file kernel_blob.bin. Thus, using the following command should help you extract the code into a file:
strings /path/to/extracted/apk/assets/flutter_assets/kernel_blob.bin > extracted_code.dart
Please, pay attention - You'll need to clean 'extracted_code.dart', from irrelevant/garbage strings.
Try to search strings like "dart", "import", "void" and other keywords in 'extracted_code.dart', it will help you find the code itself.
Here's an example from my Ubuntu:
If the apk
is compiled in "release" mode, extracting the code will be much harder, since the code is compiled into isolate_snapshot_instr file, which is not a raw arm assembly, and is only deserialized using the Flutter engine in run-time. You can read more about it here
runApp\(.*\(\)\);
in vscode or using sed
. Because the file would be very big eg: 25MB and 470850
lines. –
Butyrate © 2022 - 2024 — McMap. All rights reserved.