Compare commits
No commits in common. "main" and "4.2.0" have entirely different histories.
6 changed files with 91 additions and 207 deletions
|
|
@ -1,3 +1,4 @@
|
|||
v5.1.2
|
||||
- Support microG v0.3.10
|
||||
- Code Clean-up
|
||||
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
|
||||
|
|
|
|||
138
README.md
138
README.md
|
|
@ -1,126 +1,58 @@
|
|||
[](https://t.me/microGRevivedAgain)
|
||||
[](https://spacealtctrl.net)
|
||||
## 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.
|
||||
|
||||
# microG Installer Revived… again
|
||||
# microG Installer Revived
|
||||
|
||||
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.
|
||||
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`.
|
||||
|
||||
**Forked from nift4's microG Installer Revived** — updated to support **microG 0.3.10.250932**.
|
||||
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.
|
||||
|
||||
> **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.
|
||||
**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.
|
||||
|
||||
---
|
||||
|
||||
## ⚠ Personal Project Notice
|
||||
|
||||
This is a personal side project maintained for testing and research. Current support focuses on **microG 0.3.10.250932**.
|
||||
|
||||
If you want to participate in testing or share results, join the Telegram testing group:
|
||||
|
||||
[https://t.me/microGRevivedAgainResults](https://t.me/microGRevivedAgainResults)
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
|
||||
---
|
||||
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.
|
||||
|
||||
## 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)
|
||||
|
||||
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
|
||||
## How do I get the real Play Store?
|
||||
|
||||
> The module automatically detects and converts your user-installed apps to system-level versions during boot.
|
||||
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.
|
||||
|
||||
---
|
||||
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.
|
||||
|
||||
## Updating microG
|
||||
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.
|
||||
|
||||
For updates **within the 0.3.10.x series**, simply install the new APK — no need to reflash the module.
|
||||
## Can I update to new versions without waiting for module updates?
|
||||
|
||||
Sources:
|
||||
- [microG GitHub Releases](https://github.com/microg/GmsCore/releases)
|
||||
- [microG F-Droid Repository](https://microg.org/download.html)
|
||||
**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.
|
||||
|
||||
---
|
||||
## Common issues
|
||||
|
||||
## Notes for Play Store Users
|
||||
- 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)
|
||||
|
||||
- Install the Play Store APK (standard APK, not bundle) **before flashing**
|
||||
- Module should detect and convert it automatically
|
||||
- Contact the maintainer if detection fails
|
||||
## Build
|
||||
|
||||
---
|
||||
### Linux, BSD, macOS, Android
|
||||
Requires wget.
|
||||
|
||||
## 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.
|
||||
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
|
||||
|
||||
|
||||
---
|
||||
### 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** – 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)
|
||||
- **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
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
"allow_experiments": true,
|
||||
"allow_api_functions": true,
|
||||
"author": {
|
||||
"name": "spacealtctrl",
|
||||
"email": "spacealtctrl@protonmail.com"
|
||||
"name": "nift4",
|
||||
"email": "nift4@protonmail.com"
|
||||
},
|
||||
"verify_signatures": true
|
||||
}
|
||||
|
|
|
|||
123
customize.sh
123
customize.sh
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
if [ -n "$MMM_EXT_SUPPORT" ]; then
|
||||
ui_print "#!useExt"
|
||||
mmm_exec() {
|
||||
|
|
@ -7,117 +6,79 @@ 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"
|
||||
|
||||
mmm_exec setSupportLink "https://github.com/spacealtctrl/microg_installer_revived_again/issues"
|
||||
|
||||
MAX_VER="250932020"
|
||||
MAX_VERN="0.3.10.250932"
|
||||
MAX_VER="240913008"
|
||||
MAX_VERN="0.3.4.240913"
|
||||
|
||||
if [ -f /data/adb/Phonesky.apk ]; then
|
||||
ui_print "- INFO: Legacy Phonesky.apk found in /data/adb"
|
||||
ui_print " (This file is no longer used by the module)"
|
||||
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."
|
||||
fi
|
||||
|
||||
mmm_exec showLoading
|
||||
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..."
|
||||
ui_print "Collecting information about com.google.android.gms"
|
||||
# check microG
|
||||
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: microG GmsCore is not installed"
|
||||
abort "- ERROR: You do not have official microG installed."
|
||||
fi
|
||||
|
||||
if ! (echo "$DUMP_GMS" | grep "android.permission.FAKE_PACKAGE_SIGNATURE") >/dev/null; then
|
||||
abort "✗ ERROR: Google Play Services detected (microG required)"
|
||||
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 " ✓ Found at: $GMS_PATH"
|
||||
|
||||
ui_print "Checking if file path of com.google.android.gms is on /data"
|
||||
if [[ "$GMS_PATH" = "${GMS_PATH#/data/}" ]]; then
|
||||
abort "✗ ERROR: microG must be installed on /data, found at $GMS_PATH"
|
||||
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: microG APK not found at $GMS_PATH"
|
||||
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."
|
||||
fi
|
||||
ui_print "Checking if com.google.android.gms is a supported version"
|
||||
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: microG $GMS_VERN exceeds max supported $MAX_VERN"
|
||||
abort "- ERROR: You have microG version $GMS_VERN ($GMS_VER) but the maximum supported version is $MAX_VERN ($MAX_VER)."
|
||||
fi
|
||||
|
||||
ui_print " "
|
||||
ui_print "→ Checking com.android.vending..."
|
||||
# check Vending
|
||||
ui_print "Collecting information about 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: Play Store or microG Companion not installed"
|
||||
abort "- ERROR: You do not have microG Companion or Play Store 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 " ✓ Found at: $VD_PATH"
|
||||
|
||||
ui_print "Checking if file path of com.android.vending is on /data"
|
||||
if [[ "$VD_PATH" = "${VD_PATH#/data/}" ]]; then
|
||||
abort "✗ ERROR: Vending must be installed on /data, found at $VD_PATH"
|
||||
abort "- ERROR: expected microG Companion / Play Store install path to be on /data, but it's $VD_PATH"
|
||||
fi
|
||||
|
||||
ui_print "Checking if file path of com.android.vending exists"
|
||||
if ! [[ -f "$VD_PATH" ]]; then
|
||||
abort "✗ ERROR: Vending APK not found at $VD_PATH"
|
||||
abort "- ERROR: expected microG Companion / Play Store install path to exist: $VD_PATH"
|
||||
fi
|
||||
|
||||
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
|
||||
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 " "
|
||||
|
||||
# Do install tasks
|
||||
ui_print "- Installing microG GmsCore"
|
||||
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"
|
||||
mkdir -p "$MODPATH/system/product/priv-app/GmsCore"
|
||||
cp "$GMS_PATH" "$MODPATH/system/product/priv-app/GmsCore/GmsCore.apk"
|
||||
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"
|
||||
mkdir -p "$MODPATH/system/priv-app/microG"
|
||||
cp "$GMS_PATH" "$MODPATH/system/priv-app/microG/microG.apk"
|
||||
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
|
||||
|
|
@ -132,14 +93,4 @@ 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
|
||||
|
|
|
|||
18
module.prop
18
module.prop
|
|
@ -1,9 +1,9 @@
|
|||
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
|
||||
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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"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"
|
||||
"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"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue