drop support for really old Blacklist App
remove the support of really old `com.flarejune.xposedblacklist`. use the module blacklist function within EdXposed Manager instead.
This commit is contained in:
parent
9695a983b8
commit
5446571664
|
|
@ -8,7 +8,6 @@ import android.content.res.CompatibilityInfo;
|
|||
import android.content.res.XResources;
|
||||
|
||||
import com.elderdrivers.riru.edxp.config.ConfigManager;
|
||||
import com.elderdrivers.riru.edxp.hooker.XposedBlackListHooker;
|
||||
import com.elderdrivers.riru.edxp.util.Hookers;
|
||||
import com.elderdrivers.riru.edxp.util.Utils;
|
||||
|
||||
|
|
@ -22,9 +21,6 @@ public class HandleBindApp extends XC_MethodHook {
|
|||
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
if (XposedBlackListHooker.shouldDisableHooks("")) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Hookers.logD("ActivityThread#handleBindApplication() starts");
|
||||
ActivityThread activityThread = (ActivityThread) param.thisObject;
|
||||
|
|
@ -36,10 +32,6 @@ public class HandleBindApp extends XC_MethodHook {
|
|||
Utils.logD("processName=" + ConfigManager.appProcessName +
|
||||
", packageName=" + reportedPackageName + ", appDataDir=" + ConfigManager.appDataDir);
|
||||
|
||||
if (XposedBlackListHooker.shouldDisableHooks(reportedPackageName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ComponentName instrumentationName = (ComponentName) XposedHelpers.getObjectField(bindData, "instrumentationName");
|
||||
if (instrumentationName != null) {
|
||||
Hookers.logD("Instrumentation detected, disabling framework for");
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import android.app.LoadedApk;
|
|||
import android.content.res.XResources;
|
||||
import android.util.Log;
|
||||
|
||||
import com.elderdrivers.riru.edxp.hooker.XposedBlackListHooker;
|
||||
import com.elderdrivers.riru.edxp.util.Hookers;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
|
|
@ -18,10 +17,6 @@ public class LoadedApkCstr extends XC_MethodHook {
|
|||
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
|
||||
if (XposedBlackListHooker.shouldDisableHooks("")) {
|
||||
return;
|
||||
}
|
||||
|
||||
Hookers.logD("LoadedApk#<init> starts");
|
||||
|
||||
try {
|
||||
|
|
@ -32,10 +27,6 @@ public class LoadedApkCstr extends XC_MethodHook {
|
|||
|
||||
XResources.setPackageNameForResDir(packageName, loadedApk.getResDir());
|
||||
|
||||
if (XposedBlackListHooker.shouldDisableHooks(packageName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (packageName.equals("android")) {
|
||||
Hookers.logD("LoadedApk#<init> is android, skip: " + mAppDir);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.elderdrivers.riru.edxp._hooker.impl;
|
|||
import android.app.LoadedApk;
|
||||
|
||||
import com.elderdrivers.riru.edxp.hooker.SliceProviderFix;
|
||||
import com.elderdrivers.riru.edxp.hooker.XposedBlackListHooker;
|
||||
import com.elderdrivers.riru.edxp.hooker.XposedInstallerHooker;
|
||||
import com.elderdrivers.riru.edxp.util.Hookers;
|
||||
|
||||
|
|
@ -14,8 +13,6 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
|||
|
||||
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
|
||||
import static com.elderdrivers.riru.edxp.hooker.SliceProviderFix.SYSTEMUI_PACKAGE_NAME;
|
||||
import static com.elderdrivers.riru.edxp.hooker.XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
|
||||
|
||||
|
||||
public class LoadedApkGetCL extends XC_MethodHook {
|
||||
|
||||
|
|
@ -38,10 +35,6 @@ public class LoadedApkGetCL extends XC_MethodHook {
|
|||
|
||||
try {
|
||||
|
||||
if (XposedBlackListHooker.shouldDisableHooks("")) {
|
||||
return;
|
||||
}
|
||||
|
||||
Hookers.logD("LoadedApk#getClassLoader starts");
|
||||
|
||||
LoadedApk loadedApk = (LoadedApk) param.thisObject;
|
||||
|
|
@ -70,9 +63,6 @@ public class LoadedApkGetCL extends XC_MethodHook {
|
|||
if (this.packageName.equals(INSTALLER_PACKAGE_NAME)) {
|
||||
XposedInstallerHooker.hookXposedInstaller(lpparam.classLoader);
|
||||
}
|
||||
if (this.packageName.equals(BLACK_LIST_PACKAGE_NAME)) {
|
||||
XposedBlackListHooker.hook(lpparam.classLoader);
|
||||
}
|
||||
if (this.packageName.equals(SYSTEMUI_PACKAGE_NAME)) {
|
||||
SliceProviderFix.hook();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.elderdrivers.riru.edxp.config;
|
||||
|
||||
import com.elderdrivers.riru.edxp.hooker.XposedBlackListHooker;
|
||||
|
||||
public class BaseEdxpConfig implements EdxpConfig {
|
||||
|
||||
@Override
|
||||
|
|
@ -9,11 +7,6 @@ public class BaseEdxpConfig implements EdxpConfig {
|
|||
return InstallerChooser.INSTALLER_DATA_BASE_DIR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBlackListModulePackageName() {
|
||||
return XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDynamicModulesMode() {
|
||||
return ConfigManager.isDynamicModulesEnabled();
|
||||
|
|
@ -23,6 +16,7 @@ public class BaseEdxpConfig implements EdxpConfig {
|
|||
public boolean isResourcesHookEnabled() {
|
||||
return ConfigManager.isResourcesHookEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNoModuleLogEnabled() {
|
||||
return ConfigManager.isNoModuleLogEnabled();
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
package com.elderdrivers.riru.edxp.hooker;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.ContextWrapper;
|
||||
import android.os.Build;
|
||||
|
||||
import com.elderdrivers.riru.edxp.util.Utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
|
||||
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
|
||||
import static com.elderdrivers.riru.edxp.util.FileUtils.IS_USING_PROTECTED_STORAGE;
|
||||
|
||||
public class XposedBlackListHooker {
|
||||
|
||||
public static final String BLACK_LIST_PACKAGE_NAME = "com.flarejune.xposedblacklist";
|
||||
private static final String BLACK_LIST_PREF_NAME = "list";
|
||||
private static final String PREF_KEY_BLACK_LIST = "blackList";
|
||||
public static final String PREF_FILE_PATH = (IS_USING_PROTECTED_STORAGE ? "/data/user_de/0/" : "/data/data")
|
||||
+ BLACK_LIST_PACKAGE_NAME + "/shared_prefs/" + BLACK_LIST_PREF_NAME + ".xml";
|
||||
private static final XSharedPreferences PREFERENCES = new XSharedPreferences(new File(PREF_FILE_PATH));
|
||||
// always white list. empty string is to make sure blackList does not contain empty packageName
|
||||
private static final List<String> WHITE_LIST = Arrays.asList(INSTALLER_PACKAGE_NAME, BLACK_LIST_PACKAGE_NAME, "");
|
||||
|
||||
static {
|
||||
try {
|
||||
PREFERENCES.makeWorldReadable();
|
||||
} catch (Throwable throwable) {
|
||||
Utils.logE("error making pref worldReadable", throwable);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean shouldDisableHooks(String packageName) {
|
||||
return XposedBridge.disableHooks || getBlackList().contains(packageName);
|
||||
}
|
||||
|
||||
public static Set<String> getBlackList() {
|
||||
try {
|
||||
PREFERENCES.reload();
|
||||
Set<String> result = PREFERENCES.getStringSet(PREF_KEY_BLACK_LIST, new HashSet<String>());
|
||||
if (result != null) result.removeAll(WHITE_LIST);
|
||||
return result;
|
||||
} catch (Throwable throwable) {
|
||||
Utils.logE("error when reading black list", throwable);
|
||||
return new HashSet<>();
|
||||
}
|
||||
}
|
||||
|
||||
public static void hook(ClassLoader classLoader) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
XposedHelpers.findAndHookMethod(ContextWrapper.class, "getSharedPreferences", String.class, int.class, new XC_MethodHook() {
|
||||
@TargetApi(Build.VERSION_CODES.N)
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
try {
|
||||
String prefName = (String) param.args[0];
|
||||
if (!prefName.equals(BLACK_LIST_PREF_NAME)) {
|
||||
return;
|
||||
}
|
||||
Activity activity = (Activity) param.thisObject;
|
||||
Context context = activity.createDeviceProtectedStorageContext();
|
||||
context.moveSharedPreferencesFrom(activity, prefName);
|
||||
param.setResult(context.getSharedPreferences(prefName, (int) param.args[1]));
|
||||
} catch (Throwable throwable) {
|
||||
Utils.logE("error hooking Xposed BlackList", throwable);
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (Throwable throwable) {
|
||||
Utils.logE("error hooking Xposed BlackList", throwable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,8 +4,6 @@ public interface EdxpConfig {
|
|||
|
||||
String getInstallerBaseDir();
|
||||
|
||||
String getBlackListModulePackageName();
|
||||
|
||||
boolean isDynamicModulesMode();
|
||||
|
||||
boolean isNoModuleLogEnabled();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import android.content.res.XResources;
|
|||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.os.Process;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
|
||||
|
|
@ -399,14 +398,6 @@ public final class XposedInit {
|
|||
private static boolean loadModule(String apk, ClassLoader topClassLoader, boolean callInitZygote) {
|
||||
Log.i(TAG, "Loading modules from " + apk);
|
||||
|
||||
// todo remove this legacy logic
|
||||
String blackListModulePackageName = EdXpConfigGlobal.getConfig().getBlackListModulePackageName();
|
||||
if (!TextUtils.isEmpty(apk) && !TextUtils.isEmpty(blackListModulePackageName)
|
||||
&& apk.contains(blackListModulePackageName)) {
|
||||
Log.i(TAG, "We are going to take over black list's job...");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!new File(apk).exists()) {
|
||||
Log.e(TAG, " File does not exist");
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue