This commit is contained in:
Fr4nz D13trich 2025-11-21 11:02:13 +01:00
parent 75277deb37
commit 86e4378ce1
7 changed files with 206 additions and 98 deletions

View file

@ -1,4 +1,3 @@
Please note that microg_installer_revived is in reduced maintenance / no support mode. See README for more information.
- Support microG v0.3.4
- fix Play Store mkdir path (thanks to @MugoSquero), may fix #171
v5.1.2
- Support microG v0.3.10
- Code Clean-up

136
README.md
View file

@ -1,66 +1,126 @@
# MicroG Installer Script
[![Telegram](https://img.shields.io/badge/Telegram-microGRevivedAgain-blue?logo=telegram)](https://t.me/microGRevivedAgain)
[![Website](https://img.shields.io/badge/Website-spacealtctrl.net-blue?logo=firefoxbrowser&logoColor=white)](https://spacealtctrl.net)
## Install instructions
# microG Installer Revived… again
See [Wiki](https://lab.c95.org/c2c/microg-installer/wiki)
A **Magisk / KernelSU module** that converts your installed microG GmsCore from a user app into a **system-level app** to improve **Play Integrity behavior** and testing on custom or rooted devices.
**Forked from nift4's microG Installer Revived** — updated to support **microG 0.3.10.250932**.
> **Note:** This module does not bundle or install microG. It promotes your already-installed microG to the system layer with proper privileges. Think of it as a **converter**, not a traditional installer.
---
## This project is in reduced maintenance / no support mode and I will only release updates for my personal usage from now on. There are too many issues with KernelSU, stock ROMs and everything too far from my personal usecase, and I'd rather use my free time with other projects, so I am not really able (or motivated) to support most cases anymore. If you can, use recovery-based installers, those will always be more reliable and universal.
## ⚠ Personal Project Notice
# microG Installer Revived
This is a personal side project maintained for testing and research. Current support focuses on **microG 0.3.10.250932**.
This is a Magisk module - originally based on Hieu Van's microG Installer - that installs microG GmsCore, GsfProxy and Companion (or Play Store if you want so) to `/system/priv-app`.
If you want to participate in testing or share results, join the Telegram testing group:
Currently, GmsCore 0.3.4 (including Companion, previously known as FakeStore) and earlier are supported. GsfProxy 0.1.0 and MapsV1 0.1.0 are bundled in the module.
[https://t.me/microGRevivedAgainResults](https://t.me/microGRevivedAgainResults)
**Note**: Install this module before installing any GMS-dependent apps, as well as do not disable it after installing such apps, unless you know what you're doing.
---
There are two copies of this online: The [Magisk alt module repo](https://github.com/Magisk-Modules-Alt-Repo/microG_Installer) and the [personal](https://github.com/nift4/microg_installer) one. The personal one contains the latest development version and is used for pull requests and issues and the Magisk alt repo one is the stable code only.
## Overview
This module allows your **user-installed microG apps** to operate at the system level by promoting them into `/system/priv-app/` using Magisk/KernelSU overlay mechanisms. By doing so, microG:
- Gains system-level privileges required for testing Play Integrity
- Is treated by Android as a system component without modifying `/system` permanently
- Allows apps to interact with microG in a closer-to-native environment
- Leaves your original user-installed apps untouched; the system prioritizes the overlayed copies
This approach provides a safe, reversible way to **evaluate Play Integrity responses** and improve compatibility in rooted or custom ROM environments.
---
## Features
- Detects installed microG GmsCore and Companion apps
- Converts them into **system-level apps** using overlay mechanisms
- Grants necessary **system permissions** and enables features like **signature spoofing**
- Reversible: removing the module restores the system to its original state
- Tested with latest microG releases while remaining compatible with prior 0.3.5+ versions (untested)
---
## Supported Versions
| Component | Version Tested |
|--------------------|--------------------|
| microG GmsCore | 0.3.10.250932 |
| microG Companion | 0.3.10.840226 |
| Older microG | 0.3.5+ (untested) |
---
## Requirements
**Do NOT install** if Google Play Services are present.
1. **Signature spoofing support** check using the Signature Spoofing Checker
- If unsupported, see [FakeGApps](https://github.com/whew-inc/FakeGApps/releases)
2. **Pre-installed microG apps** both GmsCore and Companion must be installed as **user apps** before flashing the module
---
## Installation
**Again, if you have Google services currently installed, DO NOT INSTALL THIS MODULE.**
- Choose an solution for [Signature spoofing](https://github.com/microg/android_packages_apps_GmsCore/wiki/Signature-Spoofing) (Note: If your ROM does not support signature spoofing, I recommened [whew-inc's FakeGApps fork](https://github.com/whew-inc/FakeGApps/releases))
- Install microG 0.3.2 and Companion (or real Play Store) as normal user app
- Install the module to convert them to system apps with all bells and whistles (like Maps V1, GsfProxy, etc)
## How do I get the real Play Store?
1. Verify signature spoofing is enabled
2. Install **microG GmsCore 0.3.10.250932** as a user app
3. Install **microG Companion / Play Store variant** as a user app
4. Flash this module via Magisk or KernelSU
5. Reboot
6. Grant necessary permissions in microG Settings
First, if you experience an bootloop, use [Magisk Safe Mode](https://topjohnwu.github.io/Magisk/faq.html#q-i-installed-a-module-and-it-bootlooped-my-device-help) to disable the module and use an older Play Store APK, then post a bug report. This module needs to be updated for new Play Store versions every while. If it boots, but Play Store is broken, it's probably a microG issue. Feel free to report issues in the bugtracker here though.
> The module automatically detects and converts your user-installed apps to system-level versions during boot.
Get an Play Store APK (I suggest unpatched Play Store from APKMirror) - please note that the file has to be a non-bundle APK, which means APKM files are not supported. Then, just install it before flashing the module! If you now install, update or reflash microG Installer Revived there will be an message "Installing real Play Store". This indicates it worked. Now grant all permissions. You can now install updates for the Play Store like for every app.
---
Note: previously, this module told you to put it into `/data/adb/Phonesky.apk`. This is no longer needed and the module will ignore that file.
## Updating microG
## Can I update to new versions without waiting for module updates?
For updates **within the 0.3.10.x series**, simply install the new APK — no need to reflash the module.
**Yes**, just download the new APK (in the normal variant, not -hw or -lh) from microG GitHub, download page or microG F-Droid repo (all those use the exact same APK files!) and install it as you always would **without reflashing the module**. If you use Companion, update it this way too. Please note that some F-Droid clients report signature compatibility issues, which however appears to be a problem with interactions between the microG repo, clients and signature spoofing. In this case, download the APKs using a web browser and install them normally.
Sources:
- [microG GitHub Releases](https://github.com/microg/GmsCore/releases)
- [microG F-Droid Repository](https://microg.org/download.html)
## Common issues
---
- black screen / bootloop: don't use Magisk Delta's SuList
- app misbehaves/crashes with missing microg overlay (eg. chromium based browsers): disable KSU Unmount modules from its app profile
- can grant SMS permission but can't grant background location: go to App Info > Permissions > Location > (press "Location access" in the warning dialog), then go back to self test and try to grant background location again - it should now work
- real Play Store error DF-DFERH-01: make sure you have Device Registration enabled in microG settings, and make sure Internet access is enabled for Play Store and microG (some custom ROMs have a toggle in App info)
## Notes for Play Store Users
## Build
- Install the Play Store APK (standard APK, not bundle) **before flashing**
- Module should detect and convert it automatically
- Contact the maintainer if detection fails
### Linux, BSD, macOS, Android
Requires wget.
---
wget -O META-INF/com/google/android/update-binary https://raw.githubusercontent.com/topjohnwu/Magisk/master/scripts/module_installer.sh && zip microG_Installer_Revived.zip -9r * -x update.json
## Testing & Feedback
This module is intended for **testing and improving Play Integrity results**. Testers are encouraged to report:
- System-level behavior of apps interacting with microG
- Boot and overlay behavior on different ROMs and kernels
- Any permission, integration, or compatibility anomalies
**Recommendation:** use secondary devices or emulators and back up important data before testing.
### Other
Download [this](https://raw.githubusercontent.com/topjohnwu/Magisk/master/scripts/module_installer.sh) and put it into `META-INF/com/google/android/update-binary`. And ZIP it.
### About microGOverlay.apk
This APK file is an simple overlay containing configuration for UnifiedNlp. The source can not be checked in into this git repository because of compatibility reasons with module repositories, so I posted the trivial source code on [an extra branch](https://github.com/nift4/microg_installer_revived/tree/overlay). You can use any signing keystore to sign the overlay, but it needs to be signed.
---
## Credits
- **microG project** for their awesome work
- **Hieu Van** for the [original microG Installer](https://github.com/nift4/microg_installer_revived/tree/23de13101d8dd5807f713d0cace4a565478c6cfd)
- **Fs00** for many bug fixes
- **chris42** and **FriendlyNeighborhoodShane** for privapp permission files
- **felinira**, **akaessens** and **soracqt** for contributing through pull requests
- **microG Project** microG GmsCore and Companion
- **nift4** original microG Installer Revived
- **Hieu Van** original microG Installer
- **Contributors** Fs00, chris42, FriendlyNeighborhoodShane, and others
---
## Links
- [Report Issues](https://github.com/spacealtctrl/microg_installer_revived_again/issues)
- [Original Project](https://github.com/nift4/microg_installer_revived)
- [microG Project](https://microg.org)
- **Telegram Testing Group:** [https://t.me/microGRevivedAgainResults](https://t.me/microGRevivedAgainResults)

View file

@ -2,8 +2,8 @@
"allow_experiments": true,
"allow_api_functions": true,
"author": {
"name": "nift4",
"email": "nift4@protonmail.com"
"name": "spacealtctrl",
"email": "spacealtctrl@protonmail.com"
},
"verify_signatures": true
}

View file

@ -1,3 +1,4 @@
if [ -n "$MMM_EXT_SUPPORT" ]; then
ui_print "#!useExt"
mmm_exec() {
@ -6,79 +7,117 @@ if [ -n "$MMM_EXT_SUPPORT" ]; then
else
mmm_exec() { true; }
fi
if ! $BOOTMODE; then
abort "- ERROR: Installation via recovery is NOT supported."
fi
mmm_exec setSupportLink "https://github.com/nift4/microg_installer_revived/issues"
MAX_VER="240913008"
MAX_VERN="0.3.4.240913"
mmm_exec setSupportLink "https://github.com/spacealtctrl/microg_installer_revived_again/issues"
MAX_VER="250932020"
MAX_VERN="0.3.10.250932"
if [ -f /data/adb/Phonesky.apk ]; then
ui_print "- INFO: Phonesky.apk is found in /data/adb, but this module no longer uses this file."
ui_print "- INFO: It won't break anything, but having that there won't make you use real Play Store anymore."
ui_print "- INFO: Legacy Phonesky.apk found in /data/adb"
ui_print " (This file is no longer used by the module)"
fi
mmm_exec showLoading
ui_print "Collecting information about com.google.android.gms"
# check microG
ui_print " "
ui_print "==================================="
ui_print " microG Installer Revived.... again"
ui_print " v5.1.3"
ui_print "==================================="
ui_print " "
ui_print "→ Checking com.google.android.gms..."
DUMP_GMS="$(pm dump com.google.android.gms)"
if [[ $? -gt 0 ]]; then
ui_print "- WARNING: pm dump may have failed?"
ui_print " ⚠ WARNING: pm dump may have failed"
fi
ui_print "Checking if com.google.android.gms is installed"
if (echo "$DUMP_GMS" | grep "Unable to find package: com.google.android.gms") >/dev/null; then
abort "- ERROR: You do not have official microG installed."
abort "✗ ERROR: microG GmsCore is not installed"
fi
ui_print "Collecting file path of com.google.android.gms"
GMS_PATH="$(realpath $(echo "$DUMP_GMS" | grep path: | head -n1 | cut -d: -f2))"
ui_print "Checking if file path of com.google.android.gms is on /data"
if [[ "$GMS_PATH" = "${GMS_PATH#/data/}" ]]; then
abort "- ERROR: expected microG install path to be on /data, but it's $GMS_PATH"
fi
ui_print "Checking if file path of com.google.android.gms exists"
if ! [[ -f "$GMS_PATH" ]]; then
abort "- ERROR: expected microG install path to exist: $GMS_PATH"
fi
ui_print "Checking if com.google.android.gms is microG"
if ! (echo "$DUMP_GMS" | grep "android.permission.FAKE_PACKAGE_SIGNATURE") >/dev/null; then
abort "- ERROR: You appear to have Google Play Services installed instead of microG."
abort "✗ ERROR: Google Play Services detected (microG required)"
fi
ui_print "Checking if com.google.android.gms is a supported version"
GMS_PATH="$(realpath $(echo "$DUMP_GMS" | grep path: | head -n1 | cut -d: -f2))"
ui_print " ✓ Found at: $GMS_PATH"
if [[ "$GMS_PATH" = "${GMS_PATH#/data/}" ]]; then
abort "✗ ERROR: microG must be installed on /data, found at $GMS_PATH"
fi
if ! [[ -f "$GMS_PATH" ]]; then
abort "✗ ERROR: microG APK not found at $GMS_PATH"
fi
GMS_VER="$(echo "$DUMP_GMS" | grep versionCode | head -n1 | cut -d" " -f5 | cut -d= -f2)"
GMS_VERN="$(echo "$DUMP_GMS" | grep versionName | head -n1 | cut -d" " -f5 | cut -d= -f2)"
ui_print " ✓ Version: $GMS_VERN (code: $GMS_VER)"
if [[ "$GMS_VER" -gt "$MAX_VER" ]]; then
abort "- ERROR: You have microG version $GMS_VERN ($GMS_VER) but the maximum supported version is $MAX_VERN ($MAX_VER)."
abort "✗ ERROR: microG $GMS_VERN exceeds max supported $MAX_VERN"
fi
# check Vending
ui_print "Collecting information about com.android.vending"
ui_print " "
ui_print "→ Checking com.android.vending..."
DUMP_VD="$(pm dump com.android.vending)"
if [[ $? -gt 0 ]]; then
ui_print "- WARNING: pm dump may have failed?"
ui_print " ⚠ WARNING: pm dump may have failed"
fi
ui_print "Checking if com.android.vending is installed"
if (echo "$DUMP_VD" | grep "Unable to find package: com.android.vending") >/dev/null; then
abort "- ERROR: You do not have microG Companion or Play Store installed."
abort "✗ ERROR: Play Store or microG Companion not installed"
fi
ui_print "Collecting file path of com.android.vending"
VD_PATH="$(realpath $(echo "$DUMP_VD" | grep path: | head -n1 | cut -d: -f2))"
ui_print "Checking if file path of com.android.vending is on /data"
ui_print " ✓ Found at: $VD_PATH"
if [[ "$VD_PATH" = "${VD_PATH#/data/}" ]]; then
abort "- ERROR: expected microG Companion / Play Store install path to be on /data, but it's $VD_PATH"
abort "✗ ERROR: Vending must be installed on /data, found at $VD_PATH"
fi
ui_print "Checking if file path of com.android.vending exists"
if ! [[ -f "$VD_PATH" ]]; then
abort "- ERROR: expected microG Companion / Play Store install path to exist: $VD_PATH"
abort "✗ ERROR: Vending APK not found at $VD_PATH"
fi
# Do install tasks
ui_print "- Installing microG GmsCore"
if [ ! -d "/my_bigball/priv-app/GmsCore" ]; then
mkdir -p "$MODPATH/system/product/priv-app/GmsCore"
cp "$GMS_PATH" "$MODPATH/system/product/priv-app/GmsCore/GmsCore.apk"
VD_VER="$(echo "$DUMP_VD" | grep versionCode | head -n1 | cut -d" " -f5 | cut -d= -f2)"
VD_VERN="$(echo "$DUMP_VD" | grep versionName | head -n1 | cut -d" " -f5 | cut -d= -f2)"
if (echo "$DUMP_VD" | grep "android.permission.FAKE_PACKAGE_SIGNATURE") >/dev/null; then
ui_print " ✓ Type: microG Companion"
VENDING_TYPE="microG Companion"
else
mkdir -p "$MODPATH/system/priv-app/microG"
cp "$GMS_PATH" "$MODPATH/system/priv-app/microG/microG.apk"
ui_print " ✓ Type: Play Store"
VENDING_TYPE="Play Store"
fi
ui_print " ✓ Version: $VD_VERN (code: $VD_VER)"
ui_print " "
ui_print "==================================="
ui_print " Installing to System Partition"
ui_print "==================================="
ui_print " "
if [ ! -d "/my_bigball/priv-app/GmsCore" ]; then
ui_print "→ Installing microG GmsCore..."
ui_print " Destination: /system/product/priv-app/GmsCore/"
mkdir -p "$MODPATH/system/product/priv-app/GmsCore" || abort "✗ ERROR: Failed to create directory"
cp "$GMS_PATH" "$MODPATH/system/product/priv-app/GmsCore/GmsCore.apk" || abort "✗ ERROR: Failed to copy GmsCore.apk"
ui_print " ✓ GmsCore.apk installed successfully"
else
ui_print "→ Installing microG GmsCore..."
ui_print " Destination: /system/priv-app/microG/"
mkdir -p "$MODPATH/system/priv-app/microG" || abort "✗ ERROR: Failed to create directory"
cp "$GMS_PATH" "$MODPATH/system/priv-app/microG/microG.apk" || abort "✗ ERROR: Failed to copy microG.apk"
ui_print " ✓ microG.apk installed successfully"
fi
if (echo "$DUMP_VD" | grep "android.permission.FAKE_PACKAGE_SIGNATURE") >/dev/null; then
ui_print "- Installing microG Companion"
pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE 2>/dev/null
@ -93,4 +132,14 @@ else
mkdir -p "$MODPATH/system/priv-app/Phonesky"
cp "$VD_PATH" "$MODPATH/system/priv-app/Phonesky/Phonesky.apk"
fi
ui_print " "
ui_print "==================================="
ui_print " Installation Complete!"
ui_print "==================================="
ui_print " "
ui_print "Your apps have been moved to /system"
ui_print "Reboot to apply changes"
ui_print " "
mmm_exec hideLoading

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -1,9 +1,9 @@
id=microg_installer
name=microG Installer Revived
version=Revived 4.2.0-0
versionCode=40200
author=nift4
description=Install microG GmsCore, Companion (or Play Store if you want so), GsfProxy and MapsV1 to /system/
updateJson=https://raw.github.com/nift4/microg_installer_revived/master/update.json
support=https://github.com/nift4/microg_installer_revived/issues
minApi=14
id=microg_installer_revived_again
name=microG Installer Revived.... again
version=5.1.3
versionCode=513
author=spacealtctrl
description=Moves your installed microG apps to '/system/priv-app' with privileged permissions
updateJson=https://raw.githubusercontent.com/spacealtctrl/microg_installer_revived_again/master/update.json
support=https://github.com/spacealtctrl/microg_installer_revived_again/issues
minApi=21

View file

@ -1,6 +1,6 @@
{
"version": "Revived 4.2.0-0",
"versionCode": 40200,
"zipUrl": "https://github.com/nift4/microg_installer_revived/releases/download/v4.2.0-0/microG_Installer_Revived.zip",
"changelog": "https://github.com/nift4/microg_installer_revived/raw/v4.2.0-0/CHANGELOG"
"version": "5.1.2",
"versionCode": 512,
"zipUrl": "https://github.com/spacealtctrl/microg_installer_revived_again/releases/download/v5.1.2/microg_installer_revived_again-v5.1.2.zip",
"changelog": "https://github.com/spacealtctrl/microg_installer_revived_again/raw/master/CHANGELOG"
}