You've already forked PlayIntegrityFork
mirror of
https://github.com/osm0sis/PlayIntegrityFork.git
synced 2025-09-06 06:37:06 +00:00
v12.2
This commit is contained in:
@@ -3,30 +3,14 @@ package es.chiteroman.playintegrityfix;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import org.lsposed.hiddenapibypass.HiddenApiBypass;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.KeyStoreSpi;
|
||||
import java.security.Provider;
|
||||
import java.security.Security;
|
||||
import java.util.List;
|
||||
|
||||
public class EntryPoint {
|
||||
private static List<Field> fields;
|
||||
|
||||
static {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
try {
|
||||
fields = HiddenApiBypass.getStaticFields(Class.forName("android.os.Build"));
|
||||
LOG("Fields added in list: " + fields.size());
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void init() {
|
||||
spoofDevice();
|
||||
spoofProvider();
|
||||
@@ -73,31 +57,18 @@ public class EntryPoint {
|
||||
setProp("BRAND", BRAND);
|
||||
setProp("MODEL", MODEL);
|
||||
|
||||
setProp("PRODUCT_FOR_ATTESTATION", PRODUCT);
|
||||
setProp("DEVICE_FOR_ATTESTATION", DEVICE);
|
||||
setProp("MANUFACTURER_FOR_ATTESTATION", MANUFACTURER);
|
||||
setProp("BRAND_FOR_ATTESTATION", BRAND);
|
||||
setProp("MODEL_FOR_ATTESTATION", MODEL);
|
||||
|
||||
setProp("FINGERPRINT", FINGERPRINT);
|
||||
}
|
||||
|
||||
private static void setProp(String name, String value) {
|
||||
try {
|
||||
Field field = null;
|
||||
if (fields != null && !fields.isEmpty()) {
|
||||
for (Field f : fields) {
|
||||
if (f.getName().equals(name)) {
|
||||
field = f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (field == null) field = Build.class.getDeclaredField(name);
|
||||
String oldValue;
|
||||
Field field = Build.class.getDeclaredField(name);
|
||||
field.setAccessible(true);
|
||||
oldValue = (String) field.get(null);
|
||||
field.set(null, value);
|
||||
field.setAccessible(false);
|
||||
LOG(String.format("Modified field '%s' with value '%s'", name, value));
|
||||
LOG(String.format("[%s] -> [%s] is now: [%s]", name, oldValue, value));
|
||||
} catch (NoSuchFieldException e) {
|
||||
LOG(String.format("Couldn't find '%s' field name.", name));
|
||||
} catch (IllegalAccessException e) {
|
||||
|
||||
Reference in New Issue
Block a user