lucapiccolboni / crylogger

CRYLOGGER: Detecting Crypto Misuses for Android and Java Apps Dynamically
MIT License
149 stars 13 forks source link

How to solve the INSTALL_FAILED_NO_MATCHING_ABIS failure? #10

Closed darwintree closed 3 years ago

darwintree commented 3 years ago

I fetched some apks from some Android application stores, but met some problem when installing

---------------adb: failed to install /home/zhang/documents/code/crylogger/scripts/data/apks/com.ss.android.article.news_8.3.3.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

It seems that the problem was caused because it uses the arm binaries.

However, support_for_arm_binaries_on_android_9_and_11_system_images says that

If you were previously unable to use the Android Emulator because your app depended on ARM binaries, you can now use the Android 9 x86 system image or any Android 11 system image to run your app – it is no longer necessary to download a specific system image to run ARM binaries. These Android 9 and Android 11 system images support ARM by default and provide dramatically improved performance when compared to those with full ARM emulation.

I verified the document by downloading the android 9 and android 11 image from Android Studio, and then ran the Android Studio emulator and installed apk com.ss.android.article.news_8.3.3.apk successfully by running adb install -g com.ss.android.article.news_8.3.3.apk.

It seems that the android 9/11 x86 image could provided ARM compatibility but my compiled crylogger failed to do that.

Have you met the INSTALL_FAILED_NO_MATCHING_ABIS failure? And how do you solve it? Thanks in advance.

darwintree commented 3 years ago

You can download the apk from here (about 100m)

lucapiccolboni commented 3 years ago

Hi,

I've seen similar issues in the past. There are some applications that cannot be installed on the emulator due to missing libraries or other related problems. I haven't investigated in depth the issues related to native libraries.

I'm not sure why the application works with the Android 9 image from Android Studio. Even if it is still Android 9, the exact version might be slightly different with a better support for native libraries.

Thanks

darwintree commented 3 years ago

Hi,

I've seen similar issues in the past. There are some applications that cannot be installed on the emulator due to missing libraries or other related problems. I haven't investigated in depth the issues related to native libraries.

I'm not sure why the application works with the Android 9 image from Android Studio. Even if it is still Android 9, the exact version might be slightly different with a better support for native libraries.

Thanks

Thank you for your reply. In the Oakland paper you mentioned that you "ran CRYLOGGER on 1780 Android apps". Did you directly download apks from the embedded Play Store in emulator? Or did you specify arm / x86 and download from other apk sources?

lucapiccolboni commented 3 years ago

I used an apk crawler (which was a Python script developed by someone else) that downloaded the apks of the apps from the Google Play Store. Unfortunately, I think it is no longer available... Then, I discarded the apps that were not working on the emulator (installation fails or execution fails).

Thanks!