Max*_*kov 9 android decompiling apk react-native react-native-android
我从Google Play下载了APK文件,想知道应用程序的开发是否使用了React Native库.什么是快速稳定的方法呢?(如果我以后可以自动化的话会更好 - 但这种自动化本身超出了这个问题的范围.)
Oli*_*erM 14
我可以为您提供2种解决方案:
你可以使用dex2jar.当您打开生成的jar文件时,如果有文件夹,您可以检查它是否使用React Native /com/facebook/react/.
解决方案2
app.apk为app.zipdexdumpAndroid SDK$ ANDROID_HOME/build-tools // dexdump :dexdump classes.dex`com/facebook/react在dexdump的输出接受的解决方案肯定会给你正确的答案,但它会很慢。这是我最初所做的,但它的速度不足以满足我的需求,因为我在数百个 APK 上运行这个脚本。我开发了一个替代解决方案,并在原始解决方案通过 5% 的 APK 之前执行了它。
我不喜欢检查名称中包含 com_facebook 的布局(另一个预先存在的解决方案)的原因是,应用程序使用另一个包含以该字符串开头的布局文件的 Facebook SDK 是完全合理的。我不知道有任何误报,但似乎很可能会有一些。
相反,我会检查是否存在,libreactnativejni.so我必须想象只有在使用 React Native 时才会使用它。(我最初是在寻找 libyoga.so,但我有一些误报,我想是因为有一个同名的日志库。)
具体来说,我正在 Mac 上的 bash 脚本中使用这种情况(我认为它是可移植的,但尚未测试):
if [ "$(unzip -l $apkfile | grep libreactnativejni.so | wc -l)" -gt "0" ]
then
echo "Uses RN"
fi
Run Code Online (Sandbox Code Playgroud)
在Android Studio中打开APK并检查-files(可以是多个文件)。您正在寻找的是:classes.dex
com\facebook\react?io\flutter?com\xamarin\?在 Android Studio 中它可能看起来像这样
| 归档时间: |
|
| 查看次数: |
5667 次 |
| 最近记录: |