added support for microg

This commit is contained in:
gdlbo
2023-04-20 15:36:09 +03:00
parent 7bdc8b21e4
commit 4c6eed7dad
41 changed files with 903 additions and 133 deletions
@@ -2,19 +2,27 @@ package ru.vtosters.lite.utils;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import com.google.firebase.iid.FirebaseInstanceIdReceiver;
import com.google.firebase.iid.FirebaseInstanceIdReceiver2;
import com.vtosters.lite.R;
public class GmsUtils {
public static boolean gmsless = isGmsInstalled();
public static boolean isGmsInstalled() {
try {
AndroidUtils.getGlobalContext().getPackageManager().getPackageInfo("com.google.android.gms", 0);
return true;
} catch (Exception unused) {
return false;
try {
AndroidUtils.getGlobalContext().getPackageManager().getPackageInfo("com.mgoogle.android.gms", 0);
return true;
} catch (Exception ignored) {
return false;
}
}
} // Google Market Services check
@@ -27,4 +35,37 @@ public class GmsUtils {
}
}
} // Music channels fix
public static void applyGMSReceiver() {
int flagSpoofed = gmsless ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
int flagOrig = !gmsless ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
ComponentName spoofed = new ComponentName(AndroidUtils.getGlobalContext(), FirebaseInstanceIdReceiver2.class);
ComponentName orig = new ComponentName(AndroidUtils.getGlobalContext(), FirebaseInstanceIdReceiver.class);
if (isComponentEnabled(orig) && gmsless || isComponentEnabled(spoofed) && !gmsless) {
setComponentEnabled(spoofed, flagSpoofed);
setComponentEnabled(orig, flagOrig);
}
}
private static boolean isComponentEnabled(ComponentName componentName) {
return AndroidUtils.getGlobalContext().getPackageManager().getComponentEnabledSetting(componentName) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
}
private static void setComponentEnabled(ComponentName componentName, int newState) {
AndroidUtils.getGlobalContext().getPackageManager().setComponentEnabledSetting(componentName, newState, PackageManager.DONT_KILL_APP);
}
public static String replaceGMSPackage(String str) {
return gmsless ? str.replace("com.google", "com.mgoogle") : str;
}
public static String getFirebaseInstanceIdReceiver() {
return "com.google.firebase.iid.FirebaseInstanceIdReceiver" + (gmsless ? "2" : "");
}
public static Class getFirebaseInstanceIdReceiverClass() {
return gmsless ? FirebaseInstanceIdReceiver2.class : FirebaseInstanceIdReceiver.class;
}
}
@@ -29,6 +29,7 @@ public class Preferences {
StrictMode.setThreadPolicy(policy);
GmsUtils.fixGapps();
GmsUtils.applyGMSReceiver();
setProxy();
setupFilters();
VTVerifications.load(application);