mirror of
https://github.com/chiteroman/PlayIntegrityFix.git
synced 2025-01-18 19:12:38 +02:00
Add json key to enable/disable package manager spoofing
This commit is contained in:
parent
2c149cbe1f
commit
68adc9560f
@ -10,6 +10,7 @@ import android.text.TextUtils;
|
|||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.lsposed.hiddenapibypass.HiddenApiBypass;
|
import org.lsposed.hiddenapibypass.HiddenApiBypass;
|
||||||
|
|
||||||
@ -20,6 +21,7 @@ import java.security.KeyStoreSpi;
|
|||||||
import java.security.Provider;
|
import java.security.Provider;
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -75,8 +77,6 @@ public final class EntryPoint {
|
|||||||
|
|
||||||
Security.removeProvider("AndroidKeyStore");
|
Security.removeProvider("AndroidKeyStore");
|
||||||
Security.insertProviderAt(customProvider, 1);
|
Security.insertProviderAt(customProvider, 1);
|
||||||
|
|
||||||
spoofPackageManager();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void spoofPackageManager() {
|
private static void spoofPackageManager() {
|
||||||
@ -139,37 +139,48 @@ public final class EntryPoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void init(String json) {
|
public static void init(String json) {
|
||||||
|
boolean spoofPackageManager = false;
|
||||||
|
|
||||||
if (TextUtils.isEmpty(json)) {
|
JSONObject jsonObject = null;
|
||||||
Log.e(TAG, "JSON is empty!");
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
JSONObject jsonObject = new JSONObject(json);
|
|
||||||
|
|
||||||
jsonObject.keys().forEachRemaining(s -> {
|
try {
|
||||||
try {
|
jsonObject = new JSONObject(json);
|
||||||
String value = jsonObject.getString(s);
|
} catch (JSONException e) {
|
||||||
|
Log.e(TAG, "Can't parse json", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (TextUtils.isEmpty(value)) return;
|
if (jsonObject == null || jsonObject.length() == 0) return;
|
||||||
|
|
||||||
Field field = getFieldByName(s);
|
Iterator<String> it = jsonObject.keys();
|
||||||
|
|
||||||
if (field == null) return;
|
while (it.hasNext()) {
|
||||||
|
String key = it.next();
|
||||||
|
|
||||||
map.put(field, value);
|
if ("SPOOF_PACKAGE_MANAGER".equals(key)) {
|
||||||
|
spoofPackageManager = true;
|
||||||
} catch (Throwable t) {
|
continue;
|
||||||
Log.e(TAG, "Error parsing JSON", t);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Throwable t) {
|
|
||||||
Log.e(TAG, "Error parsing JSON", t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String value = "";
|
||||||
|
try {
|
||||||
|
value = jsonObject.getString(key);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
Log.e(TAG, "Couldn't get value from key", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(value)) continue;
|
||||||
|
|
||||||
|
Field field = getFieldByName(key);
|
||||||
|
|
||||||
|
if (field == null) continue;
|
||||||
|
|
||||||
|
map.put(field, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(TAG, "Fields ready to spoof: " + map.size());
|
Log.i(TAG, "Fields ready to spoof: " + map.size());
|
||||||
|
|
||||||
spoofFields();
|
spoofFields();
|
||||||
|
if (spoofPackageManager) spoofPackageManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spoofFields() {
|
static void spoofFields() {
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
"PRODUCT": "husky_beta",
|
"PRODUCT": "husky_beta",
|
||||||
"SECURITY_PATCH": "2024-06-05",
|
"SECURITY_PATCH": "2024-06-05",
|
||||||
"DEVICE_INITIAL_SDK_INT": 21,
|
"DEVICE_INITIAL_SDK_INT": 21,
|
||||||
|
"SPOOF_PACKAGE_MANAGER": true,
|
||||||
"DEBUG": false
|
"DEBUG": false
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user