Loading core/java/com/android/internal/safetynet/SafetyNetHooks.java +14 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public final class SafetyNetHooks { private static void setBuildField(String key, String value) { try { Log.i(TAG, "Setting key: " + key + " to " + value); Field field = Build.class.getDeclaredField(key); field.setAccessible(true); field.set(null, value); Loading @@ -44,6 +45,18 @@ public final class SafetyNetHooks { } } private static void setBuildVersionField(String key, Integer value) { try { Log.i(TAG, "Setting key: " + key + " to " + value); Field field = Build.VERSION.class.getDeclaredField(key); field.setAccessible(true); field.set(null, value); field.setAccessible(false); } catch (NoSuchFieldException | IllegalAccessException e) { Log.e(TAG, "Failed to fake Build." + key, e); } } public static void init(Application app) { if (GMS_PACKAGE_NAME.equals(app.getPackageName())) { sIsGms = true; Loading @@ -51,6 +64,7 @@ public final class SafetyNetHooks { setBuildField("DEVICE", SPOOFED_DEVICE_PRODUCT); setBuildField("PRODUCT", SPOOFED_DEVICE_PRODUCT); setBuildField("FINGERPRINT", SPOOFED_FINGERPRINT); setBuildVersionField("DEVICE_INITIAL_SDK_INT", Build.VERSION_CODES.S); } } Loading Loading
core/java/com/android/internal/safetynet/SafetyNetHooks.java +14 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public final class SafetyNetHooks { private static void setBuildField(String key, String value) { try { Log.i(TAG, "Setting key: " + key + " to " + value); Field field = Build.class.getDeclaredField(key); field.setAccessible(true); field.set(null, value); Loading @@ -44,6 +45,18 @@ public final class SafetyNetHooks { } } private static void setBuildVersionField(String key, Integer value) { try { Log.i(TAG, "Setting key: " + key + " to " + value); Field field = Build.VERSION.class.getDeclaredField(key); field.setAccessible(true); field.set(null, value); field.setAccessible(false); } catch (NoSuchFieldException | IllegalAccessException e) { Log.e(TAG, "Failed to fake Build." + key, e); } } public static void init(Application app) { if (GMS_PACKAGE_NAME.equals(app.getPackageName())) { sIsGms = true; Loading @@ -51,6 +64,7 @@ public final class SafetyNetHooks { setBuildField("DEVICE", SPOOFED_DEVICE_PRODUCT); setBuildField("PRODUCT", SPOOFED_DEVICE_PRODUCT); setBuildField("FINGERPRINT", SPOOFED_FINGERPRINT); setBuildVersionField("DEVICE_INITIAL_SDK_INT", Build.VERSION_CODES.S); } } Loading