在原生 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
如果我在 flutter apk 上使用这个脚本,我看不到任何包含与我的原始代码相关的任何文件。
最佳答案
Flutter的dart代码编译成native后嵌入到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。
关于android - 如何查看flutter app的混淆结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51342391/