From cbd19d17a81e1c87c20cb6ee8d3231964b35e1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E5=AE=AB=E9=9B=AA=E7=8F=8A?= Date: Thu, 19 May 2022 17:08:12 +0800 Subject: [PATCH] Revert "Fix resource hook on MediaTek" (#1954) MTK has fixed this issue, for devices that have not been updated, can use `resetprop ro.vendor.pref_scale_enable_cfg 0` --- .../de/robv/android/xposed/XposedBridge.java | 21 ------------------- .../lspd/service/ConfigFileManager.java | 20 ------------------ 2 files changed, 41 deletions(-) diff --git a/core/src/main/java/de/robv/android/xposed/XposedBridge.java b/core/src/main/java/de/robv/android/xposed/XposedBridge.java index 16e9ecf2..f1e9ef40 100644 --- a/core/src/main/java/de/robv/android/xposed/XposedBridge.java +++ b/core/src/main/java/de/robv/android/xposed/XposedBridge.java @@ -21,10 +21,7 @@ package de.robv.android.xposed; import android.app.ActivityThread; -import android.content.ContextWrapper; -import android.content.pm.ApplicationInfo; import android.content.res.Resources; -import android.content.res.ResourcesImpl; import android.content.res.TypedArray; import android.util.Log; @@ -138,24 +135,6 @@ public final class XposedBridge { dummyClassLoader.loadClass("xposed.dummy.XResourcesSuperClass"); dummyClassLoader.loadClass("xposed.dummy.XTypedArraySuperClass"); XposedHelpers.setObjectField(myCL, "parent", dummyClassLoader); - - var contextField = XposedHelpers.findFieldIfExists(ResourcesImpl.class, "mAppContext"); - // Used by com.mediatek.res.AsyncDrawableCache.putCacheList - if (contextField != null) { - var mediatekCompat = new ContextWrapper(null) { - private final ApplicationInfo info = new ApplicationInfo(); - - @Override - public ApplicationInfo getApplicationInfo() { - info.processName = "system"; - return info; - } - }; - - // This field will be updated to correct value - // after ContextImpl.createAppContext - contextField.set(null, mediatekCompat); - } } catch (Throwable throwable) { XposedBridge.log(throwable); XposedInit.disableResources = true; diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java index 986d8131..e8642233 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java @@ -22,11 +22,8 @@ package org.lsposed.lspd.service; import static org.lsposed.lspd.service.ServiceManager.TAG; import static org.lsposed.lspd.service.ServiceManager.toGlobalNamespace; -import android.content.ContextWrapper; -import android.content.pm.ApplicationInfo; import android.content.res.AssetManager; import android.content.res.Resources; -import android.content.res.ResourcesImpl; import android.os.ParcelFileDescriptor; import android.os.Process; import android.os.SELinux; @@ -143,23 +140,6 @@ public class ConfigFileManager { } catch (Throwable e) { Log.e(TAG, Log.getStackTraceString(e)); } - try { - @SuppressWarnings("JavaReflectionMemberAccess") - var contextField = ResourcesImpl.class.getDeclaredField("mAppContext"); - contextField.setAccessible(true); - var mediatekCompat = new ContextWrapper(null) { - private final ApplicationInfo info = new ApplicationInfo(); - - @Override - public ApplicationInfo getApplicationInfo() { - info.processName = "system"; - return info; - } - }; - contextField.set(null, mediatekCompat); - } catch (Exception ignored) { - // Not a MediaTek device - } } static void reloadConfiguration() {