Skip to content

Releases: microg/GmsCore


28 Oct 10:46
Choose a tag to compare


  • Move microG Companion (previously "FakeStore") into GmsCore repository. Starting now, version names of both packages will be synced and both will be released together.
  • Allow sign-in without linking device. Useful for devices that are not qualified to run Google Play Services (e.g. because of Huawei ban)
  • Declare permission (#2035). Thanks @ale5000-git.
  • Fix issues with new map style (#2055). Thanks @fynngodau
  • Fix issues with custom device profile (#2062, #2064). Thanks @jonathanklee
  • Improve handling of settings activity. Thanks @ale5000-git
  • Small fixes for Games (#2068). Thanks @js6pak
  • Add support for FusedLocationManager.getCurrentLocation() method
  • Small improvements for Games and Google Account management.
  • New/Updated translations for German, Norwegian, Polish, Romanian, Serbian, Simplified Chinese, Spanish, Ukrainian. Thanks @Kefir2105, @Atalanttore, @comradekingu, @gnu-ewm, @ygorigor, @nexiRS, @hustler-not-chatty.
  • If you haven't upgraded to v0.2.28.231657 or v0.2.29.233013 before, check their respective release notes.


  • The name of the APK file after build is now automatically set to <package-name>-<version-code>.apk (e.g. or
  • This is the first release to provide -hw and -lh test builds. Those are currently not meant for use except if explicitly instructed.

New Contributors

Full Changelog: v0.2.29.233013...v0.3.0.233515


17 Sep 14:09
Choose a tag to compare

New features


microG now supports signing into apps and games that use Google as one or their only sign-in options. This features is still experimental and doesn't work for all apps.

SMS retriever API

microG now supports the SMS retriever API. Apps can use the SMS retriever API to automatically fill confirmation codes received by SMS contains an app specific token or the user confirms that the app shall be allowed to read the SMS content. This API does not requires the app to have access to your SMS (but microG needs such access).

Google Account configuration

microG now allows to configure various settings, privacy options and manage account links of your Google account. You can open the settings from system settings or directly from various Google Apps.

AppInvite's and dynamic links

microG now fully supports opening short dynamic links created for sharing in various apps or statically by the app developer. These links typically end in or microG will open the corresponding app if installed or fallback to either the corresponding web site (if available) or the app page in the installed app store.


  • Maps:
    • Various improvements and bug fixes (#1977, #1978, #2017, #2032). Thanks @fynngodau, @VxlerieUwU
    • Significantly improved performance and reduces memory and CPU usage
    • Move to Stadia as a map data source. This changes a little bit which things (like POI) are displayed on lower zoom levels, but shouldn't have any major impact on app usage.
  • Location:
    • Add ability to learn wi-fi and mobile network locations from GPS
    • Support more "moving wi-fis" (locate based on in-train/flight/bus wi-fi network)
  • Fido:
    • Updated for the current API version, thereby adding support for WebAuthn in current Firefox for Android.
  • SafeParcel:
    • Move SafeParcel into play-services-basement
    • Add support for shorts (#2019). Thanks @chirayudesai
    • Add annotation processor to generate CREATOR at compile-time (rather than using reflection)
  • Push notifications:
    • Reduce maximum heartbeat interval to reduce risk of unintentional disconnect (#1985). Thanks @t-m-w
  • Improve support for old Android versions (#2025, #2028). Thanks @ale5000-git
  • Compress native libraries to reduce file size (#2000). Thanks @ale5000-git
  • Fix configuration issues (#1981, #1998). Thanks @vincentvidal, @t-m-w


  • The build artifacts name has been changed. withVtm has been renamed to vtm, withMapbox was renamed to mapbox. To disable the nearby module one has to set modules.nearby=false via
  • microG additionally requests the android.permission.RECEIVE_SMS permission to access SMS for implementing the SMS retriever API.
  • Exposure Notifications settings no longer show up if it's disabled and wasn't enabled or accessed for more than 14 days

New Contributors

Full Changelog: v0.2.28.231657...v0.2.29.233013


29 May 20:57
Choose a tag to compare


  • Entirely new, rewritten location stack
  • Major update to maps implementation. Thanks @fynngodau
  • Support for reCAPTCHA Enterprise API
  • Various compatibility improvements


  • The new location stack does not support UnifiedNlp modules anymore. This was a step necessary to take to get locations properly working on latest Android versions. This means that some features previously available through UnifiedNlp modules do no longer exist. The goal is to merge the most important of those features into GmsCore. For now, the new locations stack is relying exclusively on Mozilla Location Service for network based location.
  • microG GmsCore now requests a few additional privileged permissions. As always, privileged permissions are optional for microG and you can continue using microG as an unprivileged app with only minor downsides. The new privileged permissions are:
    • android.permission.LOCATION_HARDWARE
    • android.permission.MODIFY_PHONE_STATE
    • android.permission.NETWORK_SCAN
    • android.permission.UPDATE_DEVICE_STATS
    • android.permission.WATCH_APPOPS

Full Changelog: v0.2.27.223616...v0.2.28.231657


15 Jan 08:38
Choose a tag to compare



  • Previous versions accidentally enabled device registration by default on some systems. This has been reverted. Please verify the device registration setting is as intended after upgrade.
  • Developers that use the microG client library or parts of microG as a bundled service need to review the new module structure.
    • Most -api modules are merged in the corresponding library module.
    • -core-ui packages are merged into the corresponding -core module.
    • The safe-parcel library is now bundled into play-services-basement.
    • Some classes have been moved to a different module.

Full Changelog: v0.2.26.223616...v0.2.27.223616


01 Dec 20:34
Choose a tag to compare


This maintenance release fixes

New Contributors

Full Changelog: v0.2.25.223616...v0.2.26.223616


21 Oct 13:42
Choose a tag to compare


  • NEW: Fido API (#849)
  • Push notifications
    • Fix lifting idle restrictions on Android 12. Thanks @grote
    • Fallback to port 443 in restricted networks. Thanks @matttbe
  • Exposure Notifications
    • Add required exports and flags for Android 12 to nearby-core. Thanks @fynngodau
    • Show weekday for reported exposures (#1743)
    • Move location permissions out of nearby-core to allow using the neverForLocation assertion in apps using it (#1796)
  • Device attestation
    • Add UI listing apps using SafetyNet. Thanks @iTrooz
  • Client Library
    • Add play-services-fido, play-services-oss-licenses and play-services-safetynet client library
  • Translations:
  • Improvements and bug fixes (as always). Thanks @christophehenry, @ale5000-git, @relan, @tol4711

New features


The newly added Fido API allows using U2F and Fido devices via USB or NFC with supported Browsers (Chromium and Firefox) and to sign into your Google Account in microG. Additionally, on supported hardware and when a PIN/password is configured, the secure key storage can be used as a virtual Fido device. Note that some devices are still not fully supported.

Due to lack of open-source client library, open-source variants of browsers (Bromite, Fennec, etc) currently do not support this API. This release also provides an open-source play-services-fido library, which open-source browsers can use instead of the proprietary Google version to add support for microG's Fido API.

New Contributors

Full Changelog: v0.2.24.214816...v0.2.25.223616


01 Feb 20:17
Choose a tag to compare

This is a maintenance release to fix a few issues slipped into the last release.


Exposure Notifications:

Device profiles:

  • Apply profile to User-Agent used in WebViews


  • Fix bug in UnifiedNlp causing configuration changes not being reflected until reboot.


25 Jan 22:49
Choose a tag to compare


  • Exposure Notifications:
    • Add support for validating signatures on key files (only for DE and CH for now). Thanks @cgrigis
    • Add support for more detailed API and use Advertisement version 1.1. Thanks @Elsensee
    • Improve permission checks, especially for Android 12. Thanks @Bubu, @fynngodau
  • Cloud Messaging:
    • Improve reconnecting logic. Thanks @grote
  • SafetyNet / DroidGuard:
    • Implement DroidGuard without additional helper.
    • Allow using external DroidGuard via network
    • Easy check for SafetyNet functionality in settings
  • Device profiles:
    • Allow to spoof device identity
    • Import device details from profile file
  • Location:
    • Update UnifiedNlp to v2.0-alpha7
    • Improved reliability of service
  • Improvements and bug fixes (as always)

New features

SafetyNet / DroidGuard

The updated SafetyNet implementation runs proprietary DroidGuard code privileged in the package name. This is required on at least some devices to pass SafetyNet. However this features is disabled by default. If you don't want to run proprietary code by Google on your device do not enabled SafetyNet.

As of now, microG SafetyNet implementation, once enabled, should work on all devices and ROMs that would pass SafetyNet attestation with original Google Play Services. This means that ROMs that are rooted (= come with a su binary that allow privilege escalation), with unlocked bootloader, or for some other reason do not pass the CTS or trigger the SafetyNet system will fail SafetyNet attestation. Hiding or spoofing such details from DroidGuard/SafetyNet is out of scope for this project, but techniques to allow passing SafetyNet on custom ROMs should equally work with microG.

Device profiles

This features is mostly useful for Huawei devices or other devices that are banned from accessing Google services. Choosing a profile of a non-banned device should allow using the device with Google services.

For now, two device profiles are included with microG (Nexus 5X with Android 8.1.0 and Moto G with LineageOS 14.1).

If you are a developer, you can easily create a device profiles based on data gathered from a device. See this file for a sample device profile. Once created, you can import device profiles in microG settings (under "Device registration") to test the profile.

If you are a custom ROM developer, you can add a custom device profile for your ROM by placing an appropriate device profile in /system/etc/microg_device_profile.xml. This can be useful to spoof the details of the original vendor ROM.


23 Aug 21:28
Choose a tag to compare

Maintenance release with a few bug fixes.

See: commits since v0.2.21.212158


01 Jul 20:16
Choose a tag to compare

This release fixes two major bugs introduced with v0.2.20.212158.

Notice regarding updates from v0.2.20.212158

If you already updated to v0.2.20.212158 and you can't install the update to v0.2.21.212158 the usual way, you may need to connect your device to a compute with adb installed and invoke the following commands in a shell:

adb push path/to/play-services-core-212158042.apk /data/local/tmp/play-services-core-212158042.apk
adb shell pm install-create -r --staged # This returns a session id in brackets
adb shell pm install-write *session-id* base /data/local/tmp/play-services-core-212158042.apk
adb shell pm install-commit *session-id*
adb shell rm /data/local/tmp/play-services-core-212158042.apk
adb reboot

If this doesn't work, you might need to directly update the .apk on your /system-partition or wait for the ROM developer to update to v0.2.21.212158.