What Is microG?
The complete guide to open-source Google Play Services. Learn how microG lets apps run on de-Googled Android devices without proprietary GMS.
Quick Answers
What is microG?
A free and open-source reimplementation of Google Play Services. It lets apps that depend on Google APIs run on Android without the proprietary GMS stack.
Does it work on GrapheneOS?
No. GrapheneOS uses sandboxed Google Play Services instead, which the team considers more secure.
Is microG safe?
Apache 2.0 licensed and auditable. Safer than full GMS on privacy ROMs, but requires signature spoofing – a deliberate trade-off.
What Is microG?
microG is a free and open-source (FLOSS) reimplementation of Google’s Play Services. Created by Marvin Wißfeld (mar-v-in) and maintained by the microG Project Team, it allows applications that call proprietary Google APIs to run on AOSP-based systems without installing the full, closed-source Google Mobile Services bundle.
Unlike the proprietary Google Play Services, microG is Apache 2.0 licensed. You can inspect its source code, audit what data it sends to Google, and modify it for your needs.
microG is not an app you open for entertainment. It is a system-level compatibility layer for users who run custom ROMs like LineageOS, /e/OS, CalyxOS, or DivestOS – or for anyone who wants to de-Google their phone while keeping essential apps functional.
The Core Philosophy
Google Play Services is a black box. It handles push notifications, location, sign-in, ads, analytics, and device attestation – all while sending substantial telemetry to Google. microG reimplements only the APIs that apps actually need, omits the tracking components, and gives you control over what data leaves your device.
How microG Works
At the heart of microG is GmsCore (Google Mobile Services Core). It intercepts API calls that apps normally send to com.google.android.gms and answers them using open-source code instead.
Signature Spoofing: The Key Mechanism
For microG to work, your Android system must support signature spoofing. Because apps are hardcoded to expect Google’s cryptographic signature on Play Services, microG must “pretend” to be the official package. Your ROM must explicitly allow this spoofing for the microG package only.
Security Trade-Off
Signature spoofing weakens Android’s package verification security model. It is a deliberate trade-off between privacy/freedom and strict security. Only install microG on ROMs that restrict spoofing to the official microG package.
ROMs with Built-in Support
| ROM | microG Status | Best For |
|---|---|---|
| /e/OS | Pre-installed | Maximum ease of use; Murena phones |
| CalyxOS | Bundled | Pixel owners who want zero Google code |
| DivestOS | Optional | Non-Pixel privacy seekers |
| LineageOS for microG | Bundled | Wide device support (200+ models) |
| LineageOS (official) | Spoofing enabled (2024+) | Manual microG install |
| OmniROM / ArrowOS / crDroid | Spoofing available | Customization-focused users |
microG Modules
microG is not a single app. It consists of several components:
- microG Services (GmsCore) – The main compatibility layer. Handles account sign-in, push notifications, location, maps, and device registration.
- microG Companion – A Play Store replacement that satisfies apps checking for Play Store presence. Formerly called FakeStore.
- microG Services Framework Proxy (GsfProxy) – Bridges legacy Cloud-to-Device Messaging (C2DM) for older apps.
- UnifiedNlp – Network location provider. Handles Wi-Fi and cell-tower-based geolocation without Google’s location service.
Modern versions of GmsCore have integrated DroidGuard Helper and UnifiedNlp backends, so you no longer need to install them separately.
microG vs. Google Play Services
| Feature | microG | Google Play Services |
|---|---|---|
| License | Apache 2.0 (open source) | Proprietary |
| Code visibility | Fully auditable | Black box |
| Ads & Analytics APIs | Not implemented | Fully implemented |
| Push notifications | Yes (FCM replacement) | Yes |
| Network location | Yes (UnifiedNlp) | Yes |
| Maps API | Limited support | Full support |
| Play Integrity / SafetyNet | No | Yes |
| Banking app compatibility | 15-40% | 95%+ |
| Battery usage | Low (minimal background) | Higher |
| Data sent to Google | Minimal, spoofed IDs | Extensive telemetry |
Privacy Advantage
microG feeds fake device identifiers to Google servers, making cross-device tracking harder. It also does not implement the Ads API or Analytics API, cutting off two major data collection pipelines.
Compatibility Disadvantage
Because microG does not implement Play Integrity API, banking apps, payment apps, and some streaming services will refuse to run.
Where Is microG Used?
microG is designed for custom ROMs and de-Googled devices. Here’s how major ROMs handle it:
/e/OS and Murena
/e/OS ships microG pre-installed and pre-configured. The organization Murena has helped fund microG development since 2020. On /e/OS, microG includes beaconDB as the default location backend, so network-based location works without querying Google’s servers.
Huawei Devices
Huawei phones that ship without Google Mobile Services (post-2019 models) rely on microG or HMS Core for app compatibility. If you are setting up microG on a Huawei device, see our dedicated microG for Huawei guide for device-specific steps and workarounds.
CalyxOS
CalyxOS is Pixel-only and bundles microG as its Google services strategy. Unlike GrapheneOS, CalyxOS does not offer sandboxed Google Play. It is ideal for users who want a functional smartphone without any proprietary Google code running at the system level.
DivestOS
DivestOS supports ~70+ device models and offers microG as an optional install. It is the best privacy ROM for non-Pixel devices that still want microG compatibility.
LineageOS for microG
This is a separate distribution from official LineageOS. It pre-bundles microG and enables signature spoofing on over 200 devices, including older models that GrapheneOS and CalyxOS do not support.
microG and GrapheneOS: Why They Don’t Mix
This is the most misunderstood topic in the microG ecosystem.
GrapheneOS does not support microG. It never will.
Instead, GrapheneOS uses sandboxed Google Play Services. On GrapheneOS, Google Play Services run as regular user apps with no special privileges. They are contained in the standard app sandbox and can be uninstalled completely.
The GrapheneOS team argues that sandboxed Google Play is:
- More secure than microG because it does not require signature spoofing.
- More compatible because it runs the actual Google code, passing Play Integrity checks that microG cannot.
- More private in practice because the sandboxing prevents Google Play from accessing data outside its profile.
Bottom line: If you have a Pixel and want maximum privacy with working banking apps, choose GrapheneOS + sandboxed Play. If you have a non-Pixel or want zero Google code, choose CalyxOS, /e/OS, or DivestOS + microG.
Key Features Deep Dive
Push Notifications (Cloud Messaging)
microG implements a replacement for Firebase Cloud Messaging (FCM). Apps that rely on push notifications (like Signal, WhatsApp, and banking apps) can receive pushes through microG instead of Google’s servers. However, some apps hardcode FCM connections directly in their proprietary libraries, bypassing microG entirely.
Location Services (UnifiedNlp)
Instead of Google’s network location service, microG uses UnifiedNlp. It aggregates location data from Wi-Fi access points and cell towers using backend plugins. On /e/OS, beaconDB is the default backend, offering privacy-preserving network location without Google queries.
Maps API
microG provides limited Maps API compatibility. Apps that embed Google Maps will work in basic scenarios, but advanced features may fail. For navigation, most microG users prefer Organic Maps or OsmAnd from F-Droid.
Play Store Licensing
microG Companion can answer basic Play Store license checks, allowing some paid apps to run. However, it cannot download or update apps. Most microG users pair it with Aurora Store (an anonymous Play Store client) or F-Droid for open-source apps.
Privacy & Security Analysis
What Data Does microG Send to Google?
microG minimizes data transmission, but it cannot eliminate it entirely if you use Google-dependent features:
- Device registration: Sends a spoofed device ID and GSF ID (not your real hardware identifiers).
- Push messaging: Connects to Google’s FCM endpoints to receive pushes for apps that require it.
- Account sign-in: If you add a Google account, authentication tokens are exchanged with Google’s servers.
What microG blocks:
- Ads API (not implemented)
- Analytics API (not implemented)
- Firebase telemetry (not implemented)
- Continuous location tracking (handled by UnifiedNlp instead)
How to Install microG
Prerequisites
- A custom ROM with signature spoofing support
- F-Droid installed (or willingness to sideload APKs)
- At least 100 MB free storage
- Battery above 30%
Pre-Flight Checklist
Before installing, verify your ROM supports signature spoofing, you’ve disabled Google Play Services (if migrating), installed F-Droid, enabled “Install unknown apps,” and backed up your device. Do not install on GrapheneOS – use sandboxed Play instead.
Method 1: F-Droid Repository (Recommended)
Add the microG F-Droid repository
Open F-Droid -> Settings -> Repositories -> tap the + button. Enter the official microG repository URL (found on the microG Project website).
Verify fingerprint: 9B D0 67 27 E6 27 96 C0 13 0E B6 DA B3 9B 73 15 74 51 58 2C BD 13 8E 86 C4 68 AC C3 95 D1 41 65
Install microG packages in order
1. microG Services (GmsCore)
2. microG Companion (FakeStore)
3. microG Services Framework Proxy (GsfProxy) – legacy only
Grant permissions & run Self-Check
Open microG Settings -> Self-Check. Tap each permission item and allow it. Enable “System spoofs signature” and “Play Store has correct signature.”
Configure & finish
Set up UnifiedNlp backends (e.g., beaconDB), disable battery optimization for microG Services Core, and reboot your device. Skipping the reboot causes authentication and sync failures.
Method 2: Manual APK Install
If you cannot use F-Droid, download APKs from the official microG GitHub releases:
Limitations & Real-World Compatibility
Banking Apps
Banking app compatibility is the biggest limitation. Because microG cannot pass Play Integrity API checks:
- CalyxOS: ~25-40% of banking apps work
- DivestOS / LineageOS-MicroG: ~15-30% work
- GrapheneOS (sandboxed Play): ~40-60% work (but still fails STRONG_INTEGRITY)
If banking apps are critical to you, test them before committing to a microG-based ROM.
SafetyNet & Play Integrity
Google retired SafetyNet in January 2024. The replacement, Play Integrity API, uses hardware-backed key attestation. This means:
- MEETS_DEVICE_INTEGRITY: microG cannot pass this.
- MEETS_STRONG_INTEGRITY: Impossible on any bootloader-unlocked device.
Apps requiring these verdicts (Google Wallet tap-to-pay, some streaming apps, employer MDM apps) will not work with microG.
Troubleshooting Common Issues
Your ROM does not support signature spoofing, or it requires manual activation. Check your ROM settings – OmniROM, AospExtended, ArrowOS, and crDroid all have different paths to enable this.
Confirm battery optimization is disabled for microG Services Core. Ensure background services are enabled in microG Settings. Reboot after any permission change. Some apps like Signal can work without FCM by polling.
This is expected. The app is checking for Play Integrity. There is no reliable workaround on microG. Use the bank’s mobile website or install the app on a secondary profile with sandboxed Play (if your ROM supports it).
Install additional UnifiedNlp backends from F-Droid. Options include beaconDB (privacy-focused, default on /e/OS), Mozilla Location Service, and local Wi-Fi database (offline).
For more device-specific fixes and step-by-step diagnostics, check our full Vanced troubleshooting guide.
Frequently Asked Questions
No. microG is the upstream open-source project by the microG Project Team. ReVanced GmsCore is a downstream fork with a different package name (app.revanced.android.gms) for use with modified apps like YouTube ReVanced.
Technically yes, but it is not practical. You need signature spoofing support, which requires a custom ROM or root. On stock firmware, Google Play Services is a protected system app that cannot be replaced without root access.
No. On supported ROMs, microG installs as a user app with signature spoofing enabled at the ROM level. You do not need Magisk or root.
No. They conflict because they use the same package name (com.google.android.gms). You must uninstall Google Play Services before installing microG.
Yes. The microG Project regularly updates GmsCore for new Android versions. As of mid-2026, Android 16 is supported.
Conclusion
microG is the most mature open-source replacement for Google Play Services. It is not a perfect 1:1 replacement – banking apps, Play Integrity-dependent services, and some push-heavy apps will break. But for users on custom ROMs who value privacy, transparency, and control over their data, it is the best available option.
Stay current with modded app releases, patch notes, and compatibility updates on our latest updates page.
If you are new to de-Googled phones, start with /e/OS or CalyxOS, where microG is pre-configured. If you are a power user with a non-Pixel device, DivestOS or LineageOS for microG gives you the widest hardware support. And if you own a Pixel and need working banking apps, skip microG entirely and use GrapheneOS with sandboxed Google Play.
