Releases: microg/GmsCore
v0.3.0.233515
Changelog
- 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.
Notes
- The name of the APK file after build is now automatically set to
<package-name>-<version-code>.apk
(e.g.com.google.android.gms-233515000.apk
orcom.android.vending-83752400.apk
). - 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
v0.2.29.233013
New features
Sign-In
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 .page.link
or .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.
Changelog
- 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
short
s (#2019). Thanks @chirayudesai - Add annotation processor to generate
CREATOR
at compile-time (rather than using reflection)
- Move SafeParcel into
- 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
Notes
- The build artifacts name has been changed.
withVtm
has been renamed tovtm
,withMapbox
was renamed tomapbox
. To disable the nearby module one has to setmodules.nearby=false
vialocal.properties
. - 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
- @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
v0.2.28.231657
Changelog
- Entirely new, rewritten location stack
- Major update to maps implementation. Thanks @fynngodau
- Support for reCAPTCHA Enterprise API
- Various compatibility improvements
Notes
- 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
v0.2.27.223616
Changelog
- 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
Notes
- 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 intoplay-services-basement
. - Some classes have been moved to a different module.
- Most
Full Changelog: v0.2.26.223616...v0.2.27.223616
v0.2.26.223616
Changelog
This maintenance release fixes
- issues in the new Fido implementation (#1806, #1821)
- crashes in the microG user interfaces (#1800, #1813, #1816)
New Contributors
- @elevenfive made their first contribution in #1803
- @StarGate01 made their first contribution in #1807
Full Changelog: v0.2.25.223616...v0.2.26.223616
v0.2.25.223616
Changelog
- NEW: Fido API (#849)
- Push notifications
- 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 theneverForLocation
assertion in apps using it (#1796)
- Add required exports and flags for Android 12 to
- Device attestation
- Add UI listing apps using SafetyNet. Thanks @iTrooz
- Client Library
- Add
play-services-fido
,play-services-oss-licenses
andplay-services-safetynet
client library
- Add
- Translations:
- Add simplified chinese. Thanks @hustler-not-chatty
- Update russian and belarusian. Thanks @Vavun
- Improvements and bug fixes (as always). Thanks @christophehenry, @ale5000-git, @relan, @tol4711
New features
Fido
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
- @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
v0.2.24.214816
This is a maintenance release to fix a few issues slipped into the last release.
Changelog
Exposure Notifications:
- Fix invalid RSSI calculation (Thanks @transistortim)
Device profiles:
- Apply profile to User-Agent used in WebViews
Location:
- Fix bug in UnifiedNlp causing configuration changes not being reflected until reboot.
v0.2.23.214816
Changelog
- 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 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.
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.
v0.2.22.212658
Maintenance release with a few bug fixes.
v0.2.21.212158
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.