在本地android开发中,我可以检查我的minifyEnabled是否已生效。
我使用了此脚本(在Linux中),该脚本允许我提取apk并查看java文件,以查看我的代码是否可读或已被混淆:
#! /bin/bash
d2j=/work/installs/dex2jar-2.0
jdgui=/work/installs/jd-gui-1.4.0.jar
apk_loc=/work/projects/my_app/build/app/outputs/app-release.apk
mkdir -p /work/tmp/dex
rm -rf /work/tmp/dex/*
cd /work/tmp
cp $apk_loc ./app-release.zip
unzip app-release.zip -d dex
cd dex
chmod +x $d2j/*.sh
$d2j/d2j-dex2jar.sh classes.dex
java -jar $jdgui classes-dex2jar.jar
如果我在颤抖的apk上使用此脚本,则看不到任何包含与原始代码相关的文件。
答案 0 :(得分:1)
Flutter的dart代码被编译为本地代码并嵌入到flutter.so运行时中,因此反编译flutter并不像java / kotlin的字节码那么容易 但是,可以反编译.so文件。您可以使用android ndk中的工具链来执行您想要的拆卸类型
./android-ndk-r15b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-objdump -T "flutter.so | less
但这只是给你一个objdump。