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