Evolver: Replace system restart with targeted package killing for PIF updates

Change-Id: I7a0d78398d6d84e758cbfad5a499cf077f17f221
Signed-off-by: Ghosuto <clash.raja10@gmail.com>
This commit is contained in:
Ghosuto
2025-09-06 04:45:06 +00:00
committed by Joey
parent a1d910c260
commit 62ebc47c0f

View File

@@ -6,6 +6,7 @@
package org.evolution.settings.fragments.miscellaneous;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.Context;
@@ -242,6 +243,30 @@ public class Spoofing extends SettingsPreferenceFragment implements
.show();
}
/**
* Kill packages that need to be restarted to pick up new PIF properties
*/
private void killGMSPackages() {
try {
ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
String[] packages = {
"com.google.android.apps.photos",
"com.google.android.gms",
"com.google.android.googlequicksearchbox",
"com.android.vending",
"com.snapchat.android"
};
for (String pkg : packages) {
am.getClass()
.getMethod("forceStopPackage", String.class)
.invoke(am, pkg);
Log.i(TAG, pkg + " process killed");
}
} catch (Exception e) {
Log.e(TAG, "Failed to kill packages", e);
}
}
private void updatePropertiesFromUrl(String urlString) {
new Thread(() -> {
try {
@@ -261,6 +286,7 @@ public class Spoofing extends SettingsPreferenceFragment implements
mHandler.post(() -> {
String toastMessage = getString(R.string.toast_spoofing_success, spoofedModel);
Toast.makeText(getContext(), toastMessage, Toast.LENGTH_LONG).show();
killGMSPackages();
});
} finally {
@@ -272,9 +298,6 @@ public class Spoofing extends SettingsPreferenceFragment implements
Toast.makeText(getContext(), R.string.toast_spoofing_failure, Toast.LENGTH_LONG).show();
});
}
mHandler.postDelayed(() -> {
SystemRestartUtils.showSystemRestartDialog(getContext());
}, 1250);
}).start();
}
@@ -291,13 +314,13 @@ public class Spoofing extends SettingsPreferenceFragment implements
Log.d(TAG, "Setting PIF property: persist.sys.pihooks_" + key + " = " + value);
SystemProperties.set("persist.sys.pihooks_" + key, value);
}
killGMSPackages();
Toast.makeText(getContext(), "PIF JSON loaded and packages refreshed", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Log.e(TAG, "Error reading PIF JSON or setting properties", e);
Toast.makeText(getContext(), "Error loading PIF JSON", Toast.LENGTH_SHORT).show();
}
mHandler.postDelayed(() -> {
SystemRestartUtils.showSystemRestartDialog(getContext());
}, 1250);
}
@Override
@@ -305,11 +328,14 @@ public class Spoofing extends SettingsPreferenceFragment implements
final Context context = getContext();
final ContentResolver resolver = context.getContentResolver();
if (preference == mGmsSpoof
|| preference == mGoogleSpoof
|| preference == mGphotosSpoof
|| preference == mGamePropsSpoof
|| preference == mQsbSpoof
|| preference == mSnapSpoof) {
killGMSPackages();
return true;
}
if (preference == mGoogleSpoof
|| preference == mGamePropsSpoof) {
SystemRestartUtils.showSystemRestartDialog(getContext());
return true;
}