We have moved to a new Sailfish OS Forum. Please start new discussions there.
4

Why are some APKs incompatible?

asked 2020-07-01 12:15:58 +0300

roland684 gravatar image

updated 2020-07-01 12:18:14 +0300

Note: I'm not looking for reasons why some apps could theoretically be incompatible, I'm looking for some logging on why a particular app refuses to install.

Sometimes, when installing an APK using the File Browser and choosing "install", I get the generic message "Android app installation failed, Package incompatible with this version of android". But what is the real reason? Which version does it require? I get this message on apps which are said to require Android 4+ while my Xperia XA2 should support Android 8.1, making it a very unsatisfying error message.

Is there a way to get detailed info on why it is deemed incompatible?

App stores also hide incompatible apps (or versions thereof). They must be basing this on something. But on what?

Is there a way to force an app to install anyway?

For those who want a specific example: https://apkpure.com/hay-day-android/com.supercell.hayday/versions currently shows V1_47_95, V1_46_150, V1_46_149 and further down. But the highest version the APK Pure app on my phone shows me, is V1_46_149. The 2 newer versions are 'incompatible'.

edit retag flag offensive close delete

Comments

2

I have Hay Day V1.47.95 working, installed from Amazon Appstore so it does not require Google services. Nevertheless, some apps (such as the Italian Vodafone app) refuse to install because "incompatible", this both on X and on XA2 (it worked on Jolla C).

Giacomo Di Giacomo ( 2020-07-01 12:18:12 +0300 )edit

1 Answer

Sort by » oldest newest most voted
2

answered 2020-07-03 07:29:20 +0300

4carlos gravatar image

It is not only the minimal Android version, but also some built-in frameworks and API calls that are not available in Aliendalvik. The main frameworks are Google play services and many tracker services that rely on the presence of GPS. This also applies to payment services and in-app stores. If you have the apk, then take a look at the manifest file that is built into the apk. All the required components are listed there. The installer decides how necessary the components are, or the app can be installed without them. Then errors only occur during use. The installer checks the manifest file before installation and tests the Android version and required components on the device. If the device does not match all requirements, it is incompatible. New versions of an app can suddenly contain components that are not available with Aliendalvik. Most of these are new trackers or payment components that are only supported by subsystems of Google Android.

If apps come from a "clean" source, such as F-Droid, there is less risk of incompatibility because FOSS addresses clean and tracker-free apps. No "extra functions for user experience" are implemented. Do not use apps from the Play Store or Aurora, for example.

edit flag offensive delete publish link more

Comments

I understand the installer (and stores) test these requirements. But in the end it just simply says "incompatible". I'm looking for a way to have it tell me which requirement(s) weren't met. I feel there must be some verbose logging (possible) to get some more info than just "incompatible".

Second step would be to force it to install anyway. Maybe the app still works as long as I don't go near the store section.

Thanks for the f-droid tip.

roland684 ( 2020-07-03 12:35:03 +0300 )edit
1

For a deeper analysis you can download the "ClassyShark3exodus" tool from F-Droid. This allows an app to be checked for trackers and also the Android manifest. This includes the minimum and maximum version of the Android version to be used, all dependent additional libraries and the default settings of an app. Maybe this will help you with the compatibility question.

F-Droid also has apps for viewing the log file from the Android subsystem. Search for "logcat". Some of them do not need root permissions. The installer also logs in the log file

4carlos ( 2020-07-04 07:12:31 +0300 )edit

@4carlos
Thanks for the links.
I guess regarding the android logs it would be 'easier' to collect directly from console? As I might question the apps from f-droid will work on our aliendalvik subsystem?
https://jolla.zendesk.com/hc/en-us/articles/204110913-Collecting-logs-from-Android-Support-with-Logcat-Debugging-Android-apps-?mobile_site=true

peterleinchen ( 2020-07-04 13:41:51 +0300 )edit
1

Yes, command line could be easier maybe. A logcat app is a suggestion.

4carlos ( 2020-07-04 19:07:34 +0300 )edit
Login/Signup to Answer

Question tools

Follow
4 followers

Stats

Asked: 2020-07-01 12:15:58 +0300

Seen: 774 times

Last updated: Jul 03 '20