Installing microG on Sailfish OS

Version Jan 31st 2025

This wiki is intended as a place to find out up-to-date information on how to install microG on Sailfish OS with Android AppSupport. Initially I’ve just copied over the information @DrYak’s excellent summary on TJC, but because this is an editable wiki, we all can keep it up-to-date.

Use these instructions at your own risk, and update the information if you find something has changed.

What is microG good for?

microG is an Open Source Software replacement for the proprietary Google Play Services, which some Android apps require to install or run properly, e.g. some online banking apps. For details read the excellent Wikipedia article about microG or microG’s own description. Having microG installed and configured should allow e.g. many banking apps work with AppSupport.

Donations

As a side note, if you would like to support the development of microG, you can do so via LibrePay or GitHub Sponsors.

Pre-requisites

Before starting, this is what you need:

Note that developer mode is not needed for the typical install case.

If you have modified AppSupport, you may have to remove and re-install it. Note that this removes all Android application data from the device! For more details on the topic, see Removing Android AppSupport.

Enable Signature Spoofing

The first step is enabling signature spoofing in AppSupport. Go to Settings - Android™ AppSupport and enable the checkbox Disable Android AppSupport system package verification. Then restart AppSupport by clicking the Stop and Start on the page.

Install F-Droid

Now that AppSupport has been prepared, install F-Droid from Jolla Store. Also make sure to update F-Droid by checking for updates in F-Droid itself. This makes sure that F-Droid has the necessary permissions to install applications as well, so allow the permission in the Android settings view when presented.

Add microG repository to F-Droid

In order to have the microG packages available, we first have to add microG software repository to F-Droid. There are two ways to do this:

  • Reading the QR code from another device
  • Entering the repository manually

To read the QR code, first go to microG download page on your computer. On your phone, open F-Droid and go to Settings - Repositories and click the green plus sign. Then tap the SCAN QR CODE button, point the phone camera to the QR code on the screen and add the repository.

Or, if you can’t read the QR code from the screen of another device for some reason, you can enter the repository URL manually. Open F-Droid and go to Settings - Repositories and click the green plus sign. Then tap Enter repository URL manually and write the microG repository F-Droid repository - microG Project the field and add the repository.

Installing microG packages

Now we’re finally ready to install microG packages! In F-Droid, go to Settings - Repositories and tap microG F-Droid repo to open it.

(If you want to verify the repository fingerprint, now is a good time to do it. You can find it in the bottom of the page. It should be identical to the one displayed in the microG download page.)

Tap SHOW APPS to see the three microG applications available:

  • microG Services
  • microG Companion
  • microG Services Framework Proxy

Install the applications in the order above.

Granting permissions for microG

The last step is granting microG all the permissions it needs to function properly. Open the microG Settings application from the application launcher and tap Self-Check.

Fist, make sure that the first six checkboxes are all checked. Some of them are already checked, so you should only have to tap the System spoofs signature and Play Store (Phonesky) has correct signature" checkboxes and allow the permission in the their respective dialogs.

Finally, we need to give microG a selection of more typical permissions. Click the permission boxes one by one and allow the permissions. For some checkboxes you may be presented additional dialogs or Android settings page. This is expected, so allow or add the permission in those dialogs and pages as well.

There’s one exception - notifications permission needs to be added manually. See Adjusting the settings of Android AppSupport of Sailfish OS for instructions.

The checkboxes should now all be checked like this:

Restart AppSupport

To make sure the permissions are in effect, restart AppSupport in Settings - Android™ AppSupport by clicking Stop and then Start. Then open microG Settings and tap Self-Check to make sure the checkboxes are still checked.

Additional applications

Now that microG is installed and configured, it’s feasible to install additional applications. Here are some examples.

  • Aurora Store is a Google Play Store client available in Jolla Store and in F-Droid.
  • Chromium-based web browser is required for some third-party applications to work properly, sadly won’t satisfy all applications. For example, MobilePay requires one for successful login. For this purpose you can install Vivaldi from Aurora Store (or directly from Vivaldi download page). There are other suitable browsers as well, Vivaldi is used as a tested and an available example here.
  • For developers, Stanley (from F-Droid) lets you inspect installed applications, granted permissions and much more.

Advanced topics

Note: The following topics either need further testing, are outdated or possibly not even applicable any more. These are collapsed for brevity.

Configuring location services

microG allows customising the location settings and services it uses. Open “microG Settings” application and hit “Location”.

Here you can enable different location services. Selecting “Request from online service” from “Wi-Fi location” section, you can change the backend settings by hitting the triple-dot icon in the top right corner.

Note : Keep in mind that, as of 3.1.0 Seitseminen, Android app can see and query the WLAN (WiFi connection), but currently as demonstrated by several questions filed by other community members, the 3G/4G connection isn’t always seen by Android Apps.

Thus you need to only rely on WiFi Network-based connection e.g.: rely on Apple’s back-end. If you do not do that you’ll get the following problems:

  • “UnifiedNLP has no last known location. This will cause some apps to fail.” (if no other back-end present)
  • “UnifiedNLP do not have Location to test Geocoder - Please verify your location backend” (if no other back-end present)
  • “No UnifiedNlp location was provided by the system within 10 seconds”. (always fails)

That because the back-ends that rely on 3G/4G cell hang.

Google Cloud Messaging

I’ve written another HOWTO about auto-starting apps. You might check how to enable/disable apps getting automatic alerts from the Cloud, and optionally getting auto-started to process it (e.g.: WhatsApp automatically getting messages instead of you needing to fetch them).

Apps that rely on Google Cloud Messaging and were already on the phone before you setup microG need to be installed again.

Google Play Store

Note: Using microG and Aurora Store is recommended instead!

This how-to is done for using an Open Source Software client app for browsing, fetching and installing APKs from the Google Play Store (such as aforementioned Aurora Store app) and the empty FakeStore package to trick any application that checks the presence of " com.android.vending ".

For people wanting to use the genuine Google Play Store client app (only needed in order to buy Android apps directly from within the Google Play Store client app), this is possible thanks to NanoDroid and carmeloferso’s guide:

  • add nanodroid repository to F-Droid
  • install Google Play Store from nanodroid
  • grant it signature spoofing using the " enable system package replacement " permission
  • in the Android Settings , in section " Users & accounts - Current user: Owner "
  • add Google account (if not already set-up in microG).
  • " Sign-in & security "
  • Turn on " Trust Google for app permissions - When disabled, the user is asked before an app authorization {…} "
  • Turn on " Allow apps to find accounts - When enabled, all applications on this devices will be able to see your Google Accounts "
  • Start Google Play Store and let it sync.
41 Likes

Thank you so much for this tutorial! Appreciated.

Thanks, great howto! Typo: Bormite → Bromite.

The part where I have to configure my location services differs from the howto. I don’t have Configuration → UnifiedNlp Settings, I have Location modules → (each location service) → Configure.

Also, another question: is Mozilla Location Service still a working option? I trust Mozilla with data on my location more than I trust Google or Apple.

2 Likes

It is necessary to do all of it from the beginning after system update?

Thanks for the suggestions @fph. I’ve edited the text to try to take them into account, but this also provides me a good opportunity to reiterate that it’s a wiki page, so please do feel free to make direct edits yourself (or anyone else for that matter!).

Although it’s my avatar on the post, I’d also add that it draws in content from many different people, only some of whom get credited in the text (thank you for the improvements… hopefully you know who you are!).

3 Likes

No, it is not. MicroG should continue to work normally after system update.

It is possible to install MozillaNlpBackend. Whether it does anything useful is another question. At least where I live it doesn’t find my location, but neither does Apple backend.

2 Likes

Are you able to activate it in the Settings? When I try, it immediately deactivates itself, whereas at least Apple UnifiedNlp Backend stays activated.

Yes I am able to activate it. It first did that with me as well, but after I did something it stopped doing that. I wish I knew what that “something” was.

I can activate it in the settings, and it stays activated. I don’t know how to check if it actually returns meaningful results, but I am happy to make more experiments in case.

Many thanks for this wiki.
Very helpful!

Everything went ok as described, except I couldn’t install Bromite.
F-Droid downloads it then I click ‘install’. Then it says it couldn’t install it for an unknown reason.
I still have 640MB free on /home and 472 MB on /.

Did one of you already see/solve this?

4.5.0.19, X10II

Nanodroid Play Store: tried it last night. Uninstalled uG FakeStore, then installed NPS. Granted it spoofing permissions.

But apps refused to work with it, claiming missing Play Services.

NPS would also crash itself when navigating inside the app.

Probably need to tailing Android logs.

Anybody here have NPS working?

1 Like

New release 2d ago Release v0.2.28.231657 · microg/GmsCore · GitHub

Major changes to Location function. Sitting on my balcony, X10II got an instant accurate fix in Bolt app, but outdoors its been good before, too. Let’s see how it does indoors.

Update seems to have installed fine, haven’t seen anything break yet.

8 Likes

So now maybe apps will show my actual location other then 100km distant place :slight_smile:

Xperia 10 III, indoors: instant accurate fix. Besides that, there’s a nice feature in the UI: It tells you which apps have requested location, and which location it gave them. And you can restrict certain apps to coarse location.

Unfortunately there is no longer UnifiedNLP support, but then again it seems to be working better than any NLP providers so I’d say it’s an improvement.

Wohoo… I finally got ICA Banken working. :grinning:

2 Likes

About this part, before installing Micro-G from the F-Droid store check the stable version in their website

Because F-Droid propose the last version available even if it is a preview release and even if the Unstable updates is not allowed (unchecked) into F-Droid options.

@flypig: can the Micro-G repo keeper flag as unstable the preview release in order to stop F-Droid of proposing a unrequested ubdate above stable version?

I cannot replicate your performance with my Xperia 10 II (not III), unless the fix has been done in outdoor before. In such a case, it is going to lose the fix and then the accuracy, also.

Can you help me telling me what exactly do you remember you did?

I have reported my problem here below:

About this

I have installed UnifiedNLP support but not all the sanity checks cannot be fulfilled. However, GSM triangulation gaves me a position within a 9000m (9km) range.

Therefore, fixing satellites to improve it, would be wonderful.

I have a feeling there is a slight misunderstanding here. I wasn’t talking about GPS fix but ”location fix” - perhaps there is a better term for it. What I did was simply that I 1) installed the new microG version (0.2.28.231657) 2) turned on ”request from mozilla” and ”request from hotspot” in the microG location settings and 3) started any android app which uses location.

Even though there aren’t enough visible satellites to get a GPS fix inside my house, microG can get my position within 10 meters.

Note that this only helps with android apps, as sailfish apps naturally don’t have access to location provided by microG.

2 Likes

Something goes wrong with my installation¹ because here in Italy, without any GPS satellite fix I got with my Xperia 10 II a range of 9000m!²

Unfortunately, without new microG version (0.2.28.231657) the Xperia 10 II has problem in receiving from GPS satellites a reasonable precise point. This seems absurd but it is not when you think that installing SFOS on Android 12 instead Android 11, the GPS does not work at all³. Why?

IMHO, the explanation is quite as straighforward as candid, the Android system is the source of hardware configurations and thus if microG layer does not operate correctly for any reasons, those configurations would not be loaded corretly.

Please feel to correct me, this is the idea I developed reading the forum, the documentation and configuring my Xperia 10 II.


LINKS

¹ Quick start guide, immediately after the licensing.

² GPS work arounds for Xperia 10 II for low resolution issue without GPS fixing.

³ Xperia 10 ii and Android 12 - #19 by farz2farz about GPS failure in fix satellites