Privacy Tools Guide

How to Use Android Without Google Play Services: Alternative Stores Guide

Many Android users seek alternatives to Google Play Services for privacy, security, or philosophical reasons. This guide covers practical methods for running a functional Android device without Google’s ecosystem, focusing on alternative app stores and sideloading techniques suitable for developers and power users.

Understanding Google Play Services Dependency

Before removing Google Play Services, identify which apps depend on them. Common dependencies include:

Apps using these features will not function properly without workarounds. Use tools like adb shell pm list packages -3 to enumerate third-party apps, then test each after removing Google Play Services.

Removing Google Play Services

For devices running stock Android, you can disable Google Play Services through ADB:

# Disable Google Play Services
adb shell pm disable-user --user 0 com.google.android.gms

# Alternatively, freeze the package to prevent execution
adb shell pm hide com.google.android.gms

For deeper removal, custom ROMs like GrapheneOS, CalyxOS, or DivestOS ship without any Google components. These ROMs provide a degoogled experience while maintaining full Android functionality.

F-Droid: The Open Source App Store

F-Droid serves as the primary alternative store for open source applications. It hosts thousands of privacy-respecting apps without proprietary components or tracking.

Installation

Download the F-Droid APK from the official repository:

# Download F-Droid
wget https://f-droid.org/F-Droid.apk

# Install via ADB
adb install F-Droid.apk

Adding Repositories

F-Droid supports multiple repositories beyond the main one. Add specialized repos for additional apps:

  1. Open F-Droid → Settings → Repositories
  2. Tap “Add Repository”
  3. Enter the repository URL

Common additional repositories:

Automating Updates

For developers managing multiple devices, F-Droid offers command-line tools:

# Install fdroidserver
apt install fdroidserver

# Update all packages
fdroid update --create-channels

# Build from source
fdroid build -l

Aurora Store: Google Play Without Google

Aurora Store provides access to Google Play apps without requiring a Google account or Google Play Services. It downloads APKs directly from Google’s servers while respecting user privacy.

Installation

Download Aurora Store from F-Droid or the official GitHub:

# Install Aurora Store
adb install aurora-store-{version}.apk

Anonymous Usage

Aurora Store supports anonymous downloads without authentication:

  1. Launch Aurora Store
  2. Navigate to Settings → Accounts
  3. Select “Anonymous” login
  4. Browse and download apps without account linkage

For developers who need to test Google Play functionality without Google dependencies, Aurora Store serves as an effective solution.

Sideloading: Direct APK Installation

Sideloading allows direct APK installation without any app store. This method provides maximum control over app sources.

Enabling Sideloading

On Android 8.0+, configure sideloading permissions:

# Enable installation from unknown sources (per-app)
adb shell pm grant com.example.app android.permission.REQUEST_INSTALL_PACKAGES

Or via Settings: Settings → Security → Install unknown apps

Using wget/curl for Batch Installation

Automate app installation across multiple devices:

# Download multiple APKs
for app in app1 app2 app3; do
    wget "https://example.com/apks/${app}.apk"
done

# Install all APKs in directory
for apk in *.apk; do
    adb install "$apk"
done

Verifying APK Signatures

Before installation, verify APK integrity:

# Check APK signature
apksigner verify --print-certs app.apk

# Verify against known good signature
apksigner verify --key-reference /path/to/cert.pem app.apk

Managing Push Notifications Without GCM

Push notifications require alternatives to Google Cloud Messaging. Several solutions exist:

UnifiedPush

UnifiedPush is an open standard for push notifications independent of Google:

# Install UnifiedPush distributor
adb install unifiedpush-distributor-fdroid.apk

# Apps supporting UnifiedPush include:
# - Conversations (XMPP client)
# - Fedilab (Mastodon client)
# - Statusnet (GNU Social client)

UnifiedPush Architecture

UnifiedPush works through a distributor that handles the notification pipeline:

  1. App registers with UnifiedPush distributor
  2. Distributor receives push from your own server
  3. App wakes and fetches data locally

Self-Hosted Push Solutions

For developers, self-hosted push infrastructure provides full control:

# Simple push server example using Flask
from flask import Flask, request
import asyncio

app = Flask(__name__)

@app.route('/send', methods=['POST'])
def send_push():
    token = request.json.get('token')
    message = request.json.get('message')
    # Send to user's endpoint via your push infrastructure
    return {"status": "sent"}

App Compatibility Considerations

Test your critical apps before fully removing Google Play Services. Common compatibility issues:

App Category Google Dependency Alternative
Banking apps SafetyNet, GMS Often require GMS; test thoroughly
Maps Google Maps API OsmAnd+, MapComplete
Messaging FCM Matrix, XMPP, Signal
Authenticator Play Services Aegis, Authenticator Pro

SafetyNet Alternatives

Apps checking for SafetyNet can use alternatives:

# Check SafetyNet status
adb shell am start -n com.google.android.gms/.auth.accounts.safetynet.SafetyNetFragment

# For developer testing, use custom ROMs with microG
# microG provides SafetyNet-compatible implementations

Build a privacy-respecting app ecosystem:

Built by theluckystrike — More at zovo.one