Strange F-Droid microG Services Core update behaviour

There’s no problem at all, just a naming issue.

First of all, FP Open does not include microG. You should have installed it somehow (or you have GApps installed, read below)


Android versioning

Every Android app (i.e. a single APK) have two versions:

  • One, a readable one, a text string, for users to easily understand
  • Two, an integer one, the real version number. This is the version the Android Package Installer uses to reject downgrades, and the version stores like F-Droid use to broadcast updates.

What is happening here is that the version installed (1.6.7, from the F-Droid repo) is actually internally lower than the version-to-update-to (0.2.4, from the microG repo). I don’t know the reason why the readable version of the F-Droid microG is 1.x.x; microG is still in development.


Android security concerning app updates

You cannot install the microG’s repo one over the F-Droid’s repo one because they have conflicting signatures (that is; different people have compiled it). That’s an Android authoring integrity protection to avoid malware and data-theft (you should know more about this, I can read “IT Security consultant” in your profile). F-Droid is known to compile from source their shared apps: this ensures the source code matches the release APK if you choose to trust F-Droid’s build servers.

The solution is to uninstall the F-Droid’s repo version and install the up-to-date microG’s repo version (or compile it yourself from source)


Conflict: microG vs Google Mobile Services (GApps)

microG conflicts with GApps. To fake GApps, microG apps needs two things:

  • Same package signature as GApps: com.google.android.gms (et al.)
  • Same signing key as GApps: that’s why you need to install Xposed Framework or Needle for signature spoofing.

These are needed because those apps requiring Google Services check those things before actually using them. And with microG we are trying to fake them through the same API but different implementation.

3 Likes