Hi,
I installed the latest LOS from microG on my Samsung Galaxy S5+.
I thought that with microG and Yalp Store I could run my paid apps from my previous phone and buy new apps. But neither works. I am logged in with my own Google account from which I bought the apps. I can install them but not run. They cannot find a license.
In the Yalp issues I found that this is not a feature of Yalp Store.
Before I used an S3 with LOS and OpenGApps pico. What must I do to be able to buy and run paid apps from Google play store with the microG installation?
No, the license check is done in Play Store. It would be a violations of TOS with Yalp Store would replicate that feature, as it could be abused.
To re-use your already paid apps you need to use the Play Store. But it won't allow you to do new purchases. Though, I've created a patched Play Store, which solves this issue, so you can make new purchases, aswell.
The patch for the Play Store, if you want to build the modified Play Store yourself:
The modified Play Store needs to be granted signature spoofing permission, just like microG GmsCore requires it.
Huh? I've bought my apps on the google play store through a web browser, then I download the app I bought through Yalp store by being logged in with my own account. This doesn't work with in app purchases.
Huh? I've bought my apps on the google play store through a web browser, then I download the app I bought through Yalp store by being logged in with my own account. This doesn't work with in app purchases.
You still need the Play Store app for certain applications (e.g. Titanium Backup Pro or Greenify Donate) which need it to verify their license, or they will not work otherwise.
@marlid91 For in-app purchases the Play Store is always required, more precisely: my patched version, as the original Play Store doesn't allow to make purchases with microG at all.
@Nanolx your download link is down unfortunately :(
I moved to a F-Droid repository. Forgot to mention it here.
@Nanolx Hi, just wanted to know if there is a way to uninstall the Play Store once it has been installed as a system app
Well, the same way you'd uninstall any other system app, either directly from TWRP or using a root app like Titanium Backup.
@Nanolx I used the barcode to add the F-Droid repo to get the patched Google Play Store. F-Droid shows version 0.0.2 installed, but fails to update to the latest version with "Failed to install due to an unknown error". I am running /e/ pie (based on LOS 16), with microG v0.2.10.19420-77 installed by default.
Is there anything else I was supposed to do?
The modified Play Store needs to be granted signature spoofing permission, just like microG GmsCore requires it.
Is that a general comment or does it need to be done manually somehow? How can I verify the status?
Version 0.0.2 is Fake Store. You can't have Fake Store and Play Store installed in parallel.
Also Play Store (initially) needs to be /system/priv-app, so the installation is not as easy as you might think.
Alternatively you can use NanoDroid (preferably the microG sub-package) to install the Play Store and get rid of Fake Store in one go, if you do it using Magisk it'll be OTA-proof aswell. You can configure NanoDroid to only install the Play Store and nothing else, as you already have microG included in the ROM.
Thanks for the details. Is Fake Store needed by Aurora Store? Can Aurora Store and the patched Play Store coexist?
I'm using an unofficial /e/ build made for my model phone which includes Aurora, F-Droid, microG, and signature spoofing restricted to system apps: https://forum.xda-developers.com/g4/development/rom-e-os-t4142021
Also, the phone is not rooted and does not currently have Magisk. I'm new and still learning about all this so please bear with me. :)
Before going down this rabbit hole, I wonder: is it likely that it would solve my problem? I'm having trouble with the OBDLink (free) app installed through Aurora failing to load enhanced add-ons, which are in-app purchases for some of their OBD adapters, but free for others, such as the MX+ which I have.
I would guess that the app probably "phones home" with the identity of the adapter to know whether it should charge for the add-on.

Other than for getting add-ons, the app itself seems to function fine and has no internet connection problems downloading and installing firmware updates for the OBD adapter.
Fake Store mocks the existense of Play Store, so it's required when Play Store is missing, so that apps don't complain or refuse working at all. Aurora Store does not need Fake Store.
Both Aurora Store and Play Store can be installed at the same time - of course.
(in-)app-purchases and high level license validation can only be processed through patched Play Store, so if that's your problem, only Play Store will fix it. Fake Store and Aurora Store only partially solve that issue, though there has been some work done in Fake Store which is not yet released.
Thank you, @Nanolx I can confirm OBDLink succeeds in getting add-ons after installing the patched Play Store AND signing into a google account in the Play Store.
Without signing in, the app had a different error, no longer about the internet connection, but simply said the add-ons were not loaded.
What I did:
/data/media/0/.nanodroid-setup with all options disabled except for setting nanodroid_play=10 to install the patched Play StoreNote that I also set nanodroid_microg=0 since my ROM already has it, but NanoDroid installed (a newer) microG anyway, true to the documentation 0 = don't install microG at all (Note: does not effect NanoDroid-microG package). To really add just the patched Play Store, is it necessary to use the full NanoDroid package?
Now that it is verified to fix the add-on problem, what is the least disruptive way to apply the solution without unnecessary changes to the ROM, or causing issues with OTA updates, or having (eg. banking) apps complain about a compromised system? Is this possible?
Btw, Magisk Core Only Mode caused the system to get stuck in booting. I ended up reflashing the ROM. I was exploring ways of not having banking apps complain, including Magisk Hide, disabling Superuser Access, Renaming Magisk Manager, all in an effort to pass SafetyNet, which is currently still failing. I would rather not play these cat and mouse games, so a practical solution without Magisk/rooting would be nice.
Thanks again for this patched Play Store fix! And the good documentation is really appreciated!
Now that it is verified to fix the add-on problem, what is the least disruptive way to apply the solution without unnecessary changes to the ROM, or causing issues with OTA updates, or having (eg. banking) apps complain about a compromised system? Is this possible?
No, SafetyNet attestation with microG is currently not possible, even if you're not rooted. See https://github.com/microg/RemoteDroidGuard/issues/24
Ok, even without considering SafetyNet, what is the least disruptive way to get (in-)app purchase support?
With the Magisk + NanoDroid microG approach, my banking app complains (but still works). I don't know if it's due to Magisk, or the changes to microG made by NanoDroid.
To prevent NanoDroid reinstalling and reconfiguring microG, I also tried the NanoDroid full package and the direct /system installation method, with .nanodroid-setup again set to install only the patched Play Store and all other options disabled. After booting into the ROM, the Play Store app is nowhere to be found. Plus the installation log shows that values for nanodroid_init and nanodroid_utils were repopulated even though I cleared them in the config file.
NanoDroid_22.9.20200910_twrp_20200927_21.50.28.log
NanoDroid_22.9.20200910_log_20200927_21.50.28.log
Also, after uninstalling NanoDroid, there is a bootloop apparently due to permissions. Reflashing the ROM is not enough, but wiping the data partition in TWRP works, though it is quite annoying to reset the phone's configuration. There must be a better way.
boot_lc_crash.txt
It is entirely possible I've done something wrong Yet another reason to find the least disruptive solution.
Ok, even without considering SafetyNet, what is the least disruptive way to get (in-)app purchase support?
NanoDroid is the least disruptive solution, respectively any other microG installer that ships my patched Play Store. You need a special Play Store build to buy apps with microG, so there's no way around that.
With the Magisk + NanoDroid microG approach, my banking app complains (but still works).
You may add your Banking app to Magisk Hide. If it checks SafetyNet attestation you'll still get those issues, because SafetyNet attestation is broken with microG.
By the way: you don't need Magisk for NanoDroid, if you don't need root, NanoDroid can be directly installed into /system if Magisk is not installed. But that won't make a difference, until microG's DroidGuard isn't fixed.
Plus the installation log shows that values for nanodroid_init and nanodroid_utils were repopulated even though I cleared them in the config file.
Of course, the NanoDroid doc explicitely states that missing entries will be set to default values. To quote the docs:
If an required entry is missing from your configuration file, the default setting will be added to your configuration file.
-snip-
to install no utils, leave empty (
nanodroid_utils=""), the""are mandatory in any case.
Also, after uninstalling NanoDroid, there is a bootloop apparently due to permissions. Reflashing the ROM is not enough, but wiping the data partition in TWRP works, though it is quite annoying to reset the phone's configuration. There must be a better way.
You uninstalled NanoDroid, thus the privapp-permissions for microG got removed. But still there's been a microG build included in the ROM, but I'm puzzled. Re-Flashing the ROM should have restored the privapp-permissions file for microG in-place.
Did you use the Uninstaller to remove NanoDroid or did you simply remove the module from Magisk Manager?
NanoDroid can be directly installed into /system
I tried this, and the twrp log above shows Play Store / Phonesky being installed, but no Play Store app could be found when booting into the ROM.
Of course, the NanoDroid doc explicitely states that missing entries will be set to default values.
The values/arguments were cleared, not the entries. i.e. [entry]="". The log above shows my entire .nanodroid-setup content, plus the appended entries with full default settings for .nanodroid_utils and .nanodroid-init.
Did you use the Uninstaller to remove NanoDroid or did you simply remove the module from Magisk Manager?
I always used the NanoDroid Uninstaller, both when Magisk was used, and when NanoDroid was installed to /system without Magisk.
I tried this, and the twrp log above shows Play Store / Phonesky being installed, but no Play Store app could be found when booting into the ROM.
In this case somehow Fake Store still exists and conflicts with Play Store. It is best to carry over to gitlab.com/Nanolx/NanoDroid because that's no longer a microG issue.
The values/arguments were cleared, not the entries. i.e. [entry]="". The log above shows my entire .nanodroid-setup content, plus the appended entries with full default settings for .nanodroid_utils and .nanodroid-init.
Thanks for pointing this out, is fixed now with this commit: https://gitlab.com/Nanolx/NanoDroid/-/commit/638bf4d4bb263995c727bcf308e956c131a22c3e
Hello,
I am currently running CalyxOS with MicroG on a Pixel 4a and purchased a "License Key" for an app I want to use the pro version of. I bought it through Google Play on the web, and tried to install it via Aurora. The app now says that it wasn't installed via the Play Store. When I try to install your patched version from FDroid, it somehow conflicts with an installed version of Phonesky/Fake Store: "Error -7: A previously installed package of the same name has a different signature than the new package (and the old package's data was not removed).". Am I correct in the assumption that this error is not fixable without TWRP / Root and must be addressed by the CalyxOS team (by shipping your patched version by default)?
You can't install Play Store and Fake Store at the same time, as both identify as com.google.android.vending. Also Play Store needs additional priv-app-permmission whitelisting, so it must be installed as system app (initially).
a) remove Fake Store
b) install Play Store
c) systemize Play Store
d) reboot
e) grant all permissions to Play Store
f) in case of errors, see also: https://gitlab.com/Nanolx/NanoDroid/-/blob/master/doc/Issues.md#play-store
Most helpful comment
No, the license check is done in Play Store. It would be a violations of TOS with Yalp Store would replicate that feature, as it could be abused.
To re-use your already paid apps you need to use the Play Store. But it won't allow you to do new purchases. Though, I've created a patched Play Store, which solves this issue, so you can make new purchases, aswell.
The patch for the Play Store, if you want to build the modified Play Store yourself:
The modified Play Store needs to be granted signature spoofing permission, just like microG GmsCore requires it.