microg-installer/customize.sh
2025-11-21 11:02:13 +01:00

145 lines
4.8 KiB
Bash

if [ -n "$MMM_EXT_SUPPORT" ]; then
ui_print "#!useExt"
mmm_exec() {
ui_print "$(echo "#!$@")"
}
else
mmm_exec() { true; }
fi
if ! $BOOTMODE; then
abort "- ERROR: Installation via recovery is NOT supported."
fi
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: Legacy Phonesky.apk found in /data/adb"
ui_print " (This file is no longer used by the module)"
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..."
DUMP_GMS="$(pm dump com.google.android.gms)"
if [[ $? -gt 0 ]]; then
ui_print " ⚠ WARNING: pm dump may have failed"
fi
if (echo "$DUMP_GMS" | grep "Unable to find package: com.google.android.gms") >/dev/null; then
abort "✗ ERROR: microG GmsCore is not installed"
fi
if ! (echo "$DUMP_GMS" | grep "android.permission.FAKE_PACKAGE_SIGNATURE") >/dev/null; then
abort "✗ ERROR: Google Play Services detected (microG required)"
fi
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: microG $GMS_VERN exceeds max supported $MAX_VERN"
fi
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"
fi
if (echo "$DUMP_VD" | grep "Unable to find package: com.android.vending") >/dev/null; then
abort "✗ ERROR: Play Store or microG Companion not installed"
fi
VD_PATH="$(realpath $(echo "$DUMP_VD" | grep path: | head -n1 | cut -d: -f2))"
ui_print " ✓ Found at: $VD_PATH"
if [[ "$VD_PATH" = "${VD_PATH#/data/}" ]]; then
abort "✗ ERROR: Vending must be installed on /data, found at $VD_PATH"
fi
if ! [[ -f "$VD_PATH" ]]; then
abort "✗ ERROR: Vending APK not found at $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 " "
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
ui_print "Installing microG Companion"
else
ui_print "- Installing Play Store"
fi
if ! [ -d "/my_bigball/priv-app/GmsCore" ]; then
mkdir -p "$MODPATH/system/product/priv-app/Phonesky"
cp "$VD_PATH" "$MODPATH/system/product/priv-app/Phonesky/Phonesky.apk"
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