- 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 com.google.android.providers.gsf.permission.READ_GSERVICES 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
- This is the first release to provide
-lhtest builds. Those are currently not meant for use except if explicitly instructed.
Full Changelog: v0.2.29.233013...v0.3.0.233515
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
.app.goo.gl. 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.
- 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.
- 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)
- Updated for the current API version, thereby adding support for WebAuthn in current Firefox for Android.
- Push notifications:
- 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.
withVtmhas been renamed to
withMapboxwas renamed to
mapbox. To disable the nearby module one has to set
- microG additionally requests the
android.permission.RECEIVE_SMSpermission 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
- @VxlerieUwU made their first contribution in #1977
- @jonathanklee made their first contribution in #1978
- @t-m-w made their first contribution in #1998
Full Changelog: v0.2.28.231657...v0.2.29.233013
- 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:
Full Changelog: v0.2.27.223616...v0.2.28.231657
- Use MapLibre instead of Mapbox. Thanks @fynngodau
- Add minor missing features to Maps, Location, Fido and Recaptcha APIs
- Restructure modules to reproduce library structure of Google Play Services
- Various bug fixes. Thanks @hustler-not-chatty, @ale5000-git
- Updated Translations. Thanks @Fs00, @hustler-not-chatty
- 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.
-apimodules are merged in the corresponding library module.
-core-uipackages are merged into the corresponding
safe-parcellibrary is now bundled into
- Some classes have been moved to a different module.
Full Changelog: v0.2.26.223616...v0.2.27.223616
This maintenance release fixes
- issues in the new Fido implementation (#1806, #1821)
- crashes in the microG user interfaces (#1800, #1813, #1816)
- @elevenfive made their first contribution in #1803
- @StarGate01 made their first contribution in #1807
Full Changelog: v0.2.25.223616...v0.2.26.223616
- NEW: Fido API (#849)
- Push notifications
- Exposure Notifications
- Device attestation
- Add UI listing apps using SafetyNet. Thanks @iTrooz
- Client Library
- Improvements and bug fixes (as always). Thanks @christophehenry, @ale5000-git, @relan, @tol4711
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.
- @wbrtm made their first contribution in #1694
- @christophehenry made their first contribution in #1730
- @hustler-not-chatty made their first contribution in #1727
- @matttbe made their first contribution in #1662
- @relan made their first contribution in #1782
- @tol4711 made their first contribution in #1792
Full Changelog: v0.2.24.214816...v0.2.25.223616
This is a maintenance release to fix a few issues slipped into the last release.
- Fix invalid RSSI calculation (Thanks @transistortim)
- Apply profile to User-Agent used in WebViews
- Fix bug in UnifiedNlp causing configuration changes not being reflected until reboot.
- Exposure Notifications:
- 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
- Update UnifiedNlp to v2.0-alpha7
- Improved reliability of service
- Improvements and bug fixes (as always)
SafetyNet / DroidGuard
The updated SafetyNet implementation runs proprietary DroidGuard code privileged in the
com.google.android.gms 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.
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.
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.