not needed
This commit is contained in:
parent
cde527ad48
commit
dc519e065f
@ -1,113 +0,0 @@
|
||||
From db27d27f48658841c6a74e55f543f417ddb16e76 Mon Sep 17 00:00:00 2001
|
||||
From: Danny Lin <danny@kdrag0n.dev>
|
||||
Date: Mon, 11 Oct 2021 19:59:51 -0700
|
||||
Subject: [PATCH 15/22] Spoof product name for Google Play Services
|
||||
|
||||
NB: This code is under the gmscompat package, but it does not depend on
|
||||
any code from gmscompat.
|
||||
|
||||
Change-Id: Ic018c0d7abe4573143c3b92301a2625b91e6673a
|
||||
---
|
||||
core/java/android/app/Instrumentation.java | 4 ++
|
||||
.../internal/gmscompat/AttestationHooks.java | 60 +++++++++++++++++++
|
||||
2 files changed, 64 insertions(+)
|
||||
create mode 100644 core/java/com/android/internal/gmscompat/AttestationHooks.java
|
||||
|
||||
diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
|
||||
index 556058b567f9..44449588bbab 100644
|
||||
--- a/core/java/android/app/Instrumentation.java
|
||||
+++ b/core/java/android/app/Instrumentation.java
|
||||
@@ -57,6 +57,8 @@ import android.view.WindowManagerGlobal;
|
||||
|
||||
import com.android.internal.content.ReferrerIntent;
|
||||
|
||||
+import com.android.internal.gmscompat.AttestationHooks;
|
||||
+
|
||||
import java.io.File;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -1242,6 +1244,7 @@ public class Instrumentation {
|
||||
Application app = getFactory(context.getPackageName())
|
||||
.instantiateApplication(cl, className);
|
||||
app.attach(context);
|
||||
+ AttestationHooks.initApplicationBeforeOnCreate(app);
|
||||
return app;
|
||||
}
|
||||
|
||||
@@ -1259,6 +1262,7 @@ public class Instrumentation {
|
||||
ClassNotFoundException {
|
||||
Application app = (Application)clazz.newInstance();
|
||||
app.attach(context);
|
||||
+ AttestationHooks.initApplicationBeforeOnCreate(app);
|
||||
return app;
|
||||
}
|
||||
|
||||
diff --git a/core/java/com/android/internal/gmscompat/AttestationHooks.java b/core/java/com/android/internal/gmscompat/AttestationHooks.java
|
||||
new file mode 100644
|
||||
index 000000000000..55db97dc28a1
|
||||
--- /dev/null
|
||||
+++ b/core/java/com/android/internal/gmscompat/AttestationHooks.java
|
||||
@@ -0,0 +1,60 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2021 The Android Open Source Project
|
||||
+ *
|
||||
+ * Licensed under the Apache License, Version 2.0 (the "License");
|
||||
+ * you may not use this file except in compliance with the License.
|
||||
+ * You may obtain a copy of the License at
|
||||
+ *
|
||||
+ * http://www.apache.org/licenses/LICENSE-2.0
|
||||
+ *
|
||||
+ * Unless required by applicable law or agreed to in writing, software
|
||||
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
||||
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
+ * See the License for the specific language governing permissions and
|
||||
+ * limitations under the License.
|
||||
+ */
|
||||
+
|
||||
+package com.android.internal.gmscompat;
|
||||
+
|
||||
+import android.app.Application;
|
||||
+import android.os.Build;
|
||||
+import android.os.SystemProperties;
|
||||
+import android.util.Log;
|
||||
+
|
||||
+import java.lang.reflect.Field;
|
||||
+
|
||||
+/** @hide */
|
||||
+public final class AttestationHooks {
|
||||
+ private static final String TAG = "GmsCompat/Attestation";
|
||||
+
|
||||
+ private static final String PACKAGE_GMS = "com.google.android.gms";
|
||||
+
|
||||
+ private AttestationHooks() { }
|
||||
+
|
||||
+ private static void setBuildField(String key, String value) {
|
||||
+ try {
|
||||
+ // Unlock
|
||||
+ Field field = Build.class.getDeclaredField(key);
|
||||
+ field.setAccessible(true);
|
||||
+
|
||||
+ // Edit
|
||||
+ field.set(null, value);
|
||||
+
|
||||
+ // Lock
|
||||
+ field.setAccessible(false);
|
||||
+ } catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
+ Log.e(TAG, "Failed to spoof Build." + key, e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void spoofBuildGms() {
|
||||
+ // Alter model name to avoid hardware attestation enforcement
|
||||
+ setBuildField("MODEL", "Pixel 5a");
|
||||
+ }
|
||||
+
|
||||
+ public static void initApplicationBeforeOnCreate(Application app) {
|
||||
+ if (PACKAGE_GMS.equals(app.getPackageName())) {
|
||||
+ spoofBuildGms();
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.34.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user