I downloaded APK file from Google Play, and want to know if the develop of the application have used React Native library. What's a quick and stable way to do that? (Would be even better if it's something I can potentially automate later - but such automation itself is out of scope of this question.)
相关问题
- How can I create this custom Bottom Navigation on
- Bottom Navigation View gets Shrink Down
- How to make that the snackbar action button be sho
- Listening to outgoing sms not working android
- How to create Circular view on android wear?
相关文章
- android开发 怎么把图片放入drawable的文件夹下
- android上如何获取/storage/emulated/下的文件列表
- androidStudio有个箭头不认识
- SQLite不能创建表
- Windows - Android SDK manager not listing any plat
- Animate Recycler View grid when number of columns
- Why is the app closing suddenly without showing an
- Android OverlayItem.setMarker(): Change the marker
I can offer you 2 solutions:
You can use dex2jar. When you open the generated jar file, you can check if it uses React Native if there is a folder
/com/facebook/react/
.Solution 2
app.apk
intoapp.zip
dexdump
from AndroidSDK
$ANDROID_HOME/build-tools//dexdump:
dexdump classes.dex`com/facebook/react
in the output of dexdumpThe accepted solution certainly will get you the right answer, but it will be quite slow. It is what I did originally, and it was not fast enough for my needs since I was running this script across hundreds of APKs. I developed an alternate solution and executed it before the original made it through 5% of the APKs.
The reason I don't like checking for layouts having com_facebook in the name (the other pre-existing solution) is that it is entirely plausible for an app to be using another Facebook SDK that contains a layout file starting with that string. I don't know of any false positives, but it seemed reasonably likely that there would be some.
Instead I check for the presence of
libreactnativejni.so
which I have to imagine only gets used if React Native is being used. (I originally was looking for libyoga.so, but I had a few false positives, I think because there's a logging library by the same name.)Specifically, this condition on a Mac in a bash script is what I'm using (I think it's portable, but have not tested):
Download the apk from the store to your PC, I used APK Downloader FireFox extension (if you don't have the app apk already).
Open apk with Zip software (I am on Linux so I used Ark). Now you can see parts of the project.
Go to
res->layout
and search forcom_facebook...
, In my case it wascom_facebook_activity_layout.xml
. If you have one layout withcom_facebook
in it then this apk was created with React.