Prepare for more backends

This commit is contained in:
solohsu 2019-03-17 22:05:33 +08:00
parent 1571c9a0ad
commit 573f52360a
46 changed files with 138 additions and 221 deletions

View File

@ -122,17 +122,11 @@ afterEvaluate {
def nameCapped = variant.name.capitalize()
def nameLowered = variant.name.toLowerCase()
def makeAndCopyTask = task("makeAndCopy${nameCapped}", type: Copy, dependsOn: "assemble${nameCapped}") {
from "build/intermediates/transforms/dexMerger/${nameLowered}/0/classes.dex"
into '../Core/template_override/system/framework'
rename("classes.dex", "edxposed.dex")
def makeAndCopyTask = task("makeAndCopy${nameCapped}", type: Jar, dependsOn: "assemble${nameCapped}") {
from "build/intermediates/transforms/dexMerger/${nameLowered}/0/"
destinationDir file("../Core/template_override/system/framework/")
baseName "edxp"
}
// def makeAndCopyTask = task("makeAndCopy${nameCapped}", type: Jar, dependsOn: "assemble${nameCapped}") {
// from "build/intermediates/transforms/dexMerger/${nameLowered}/0/"
// destinationDir file("../Core/template_override/system/framework/")
// baseName "edxposed"
// }
}
}

View File

@ -1,2 +1,2 @@
<manifest package="com.elderdrivers.riru.xposed"
<manifest package="com.elderdrivers.riru.edxp"
xmlns:android="http://schemas.android.com/apk/res/android"/>

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.config;
package com.elderdrivers.riru.edxp.config;
import java.util.Collections;
import java.util.HashMap;
@ -6,8 +6,8 @@ import java.util.Set;
import de.robv.android.xposed.SELinuxHelper;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.INSTALLER_DATA_BASE_DIR;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_DATA_BASE_DIR;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
public class ConfigManager {

View File

@ -1,16 +1,16 @@
package com.elderdrivers.riru.xposed.config;
package com.elderdrivers.riru.edxp.config;
import android.annotation.SuppressLint;
import android.os.Build;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.util.Utils;
import java.util.concurrent.atomic.AtomicBoolean;
import de.robv.android.xposed.SELinuxHelper;
import de.robv.android.xposed.services.BaseService;
import static com.elderdrivers.riru.xposed.Main.getInstallerPkgName;
import static com.elderdrivers.riru.edxp.yahfa.Main.getInstallerPkgName;
public class InstallerChooser {

View File

@ -1,9 +1,9 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import android.os.Build;
import android.util.ArrayMap;
import com.elderdrivers.riru.xposed.BuildConfig;
import com.elderdrivers.riru.edxp.BuildConfig;
import java.lang.reflect.Field;
import java.util.ArrayList;
@ -14,7 +14,7 @@ import dalvik.system.PathClassLoader;
public class ClassLoaderUtils {
public static final String DEXPATH = "/system/framework/edxposed.dex:/system/framework/eddalvikdx.dex:/system/framework/eddexmaker.dex";
public static final String DEXPATH = "/system/framework/edxp.jar:/system/framework/eddalvikdx.jar:/system/framework/eddexmaker.jar";
public static void replaceParentClassLoader(ClassLoader appClassLoader) {
if (appClassLoader == null) {

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import android.annotation.TargetApi;
import android.os.Build;
@ -8,7 +8,6 @@ import java.lang.reflect.Field;
import dalvik.system.BaseDexClassLoader;
import dalvik.system.DexClassLoader;
import dalvik.system.PathClassLoader;
/**
* For 6.0 only.

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import android.annotation.SuppressLint;
import android.os.Build;
@ -12,7 +12,7 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import static com.elderdrivers.riru.xposed.util.ProcessUtils.PER_USER_RANGE;
import static com.elderdrivers.riru.edxp.util.ProcessUtils.PER_USER_RANGE;
public class FileUtils {

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import java.util.HashMap;

View File

@ -1,13 +1,13 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.edxp.yahfa.Main;
import java.util.Arrays;
import de.robv.android.xposed.XposedHelpers;
import static com.elderdrivers.riru.xposed.util.InlinedMethodCallers.KEY_BOOT_IMAGE;
import static com.elderdrivers.riru.xposed.util.InlinedMethodCallers.KEY_SYSTEM_SERVER;
import static com.elderdrivers.riru.edxp.util.InlinedMethodCallers.KEY_BOOT_IMAGE;
import static com.elderdrivers.riru.edxp.util.InlinedMethodCallers.KEY_SYSTEM_SERVER;
public class PrebuiltMethodsDeopter {

View File

@ -1,9 +1,9 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import android.os.Process;
import android.text.TextUtils;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.edxp.yahfa.Main;
import java.io.BufferedReader;
import java.io.File;
@ -27,7 +27,7 @@ public class ProcessUtils {
/**
* a common solution from https://stackoverflow.com/a/21389402
* <p>
* use {@link com.elderdrivers.riru.xposed.Main#appProcessName} to get current process name
* use {@link Main#appProcessName} to get current process name
*/
public static String getProcessName(int pid) {
BufferedReader cmdlineReader = null;

View File

@ -1,8 +1,8 @@
package com.elderdrivers.riru.xposed.util;
package com.elderdrivers.riru.edxp.util;
import android.util.Log;
import com.elderdrivers.riru.xposed.BuildConfig;
import com.elderdrivers.riru.edxp.BuildConfig;
public class Utils {

View File

@ -1,16 +1,16 @@
package com.elderdrivers.riru.xposed;
package com.elderdrivers.riru.edxp.yahfa;
import android.annotation.SuppressLint;
import android.os.Build;
import android.os.Process;
import com.elderdrivers.riru.common.KeepAll;
import com.elderdrivers.riru.xposed.core.HookMethodResolver;
import com.elderdrivers.riru.xposed.proxy.yahfa.BlackWhiteListProxy;
import com.elderdrivers.riru.xposed.proxy.yahfa.NormalProxy;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.BuildConfig;
import com.elderdrivers.riru.edxp.yahfa.core.HookMethodResolver;
import com.elderdrivers.riru.edxp.yahfa.proxy.BlackWhiteListProxy;
import com.elderdrivers.riru.edxp.yahfa.proxy.NormalProxy;
import com.elderdrivers.riru.edxp.util.Utils;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.Arrays;

View File

@ -1,8 +1,8 @@
package com.elderdrivers.riru.xposed.core;
package com.elderdrivers.riru.edxp.yahfa.core;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.edxp.util.Utils;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
@ -14,8 +14,8 @@ import java.util.Set;
import de.robv.android.xposed.XposedHelpers;
import static com.elderdrivers.riru.xposed.Main.backupAndHookNative;
import static com.elderdrivers.riru.xposed.Main.findMethodNative;
import static com.elderdrivers.riru.edxp.yahfa.Main.backupAndHookNative;
import static com.elderdrivers.riru.edxp.yahfa.Main.findMethodNative;
public class HookMain {

View File

@ -1,10 +1,9 @@
package com.elderdrivers.riru.xposed.core;
package com.elderdrivers.riru.edxp.yahfa.core;
import android.os.Build;
import android.util.Log;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.util.Utils;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

View File

@ -1,8 +1,8 @@
package com.elderdrivers.riru.xposed.dexmaker;
package com.elderdrivers.riru.edxp.yahfa.dexmaker;
import android.util.Log;
import com.elderdrivers.riru.xposed.BuildConfig;
import com.elderdrivers.riru.edxp.BuildConfig;
public class DexLog {

View File

@ -1,11 +1,11 @@
package com.elderdrivers.riru.xposed.dexmaker;
package com.elderdrivers.riru.edxp.yahfa.dexmaker;
import android.app.AndroidAppHelper;
import android.os.Build;
import android.text.TextUtils;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.config.ConfigManager;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.config.ConfigManager;
import java.security.MessageDigest;
import java.util.HashMap;

View File

@ -1,6 +1,6 @@
package com.elderdrivers.riru.xposed.dexmaker;
package com.elderdrivers.riru.edxp.yahfa.dexmaker;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.edxp.yahfa.Main;
import java.io.File;
import java.lang.reflect.Constructor;
@ -13,10 +13,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
import de.robv.android.xposed.XposedBridge;
import static com.elderdrivers.riru.xposed.dexmaker.DexMakerUtils.shouldUseInMemoryHook;
import static com.elderdrivers.riru.xposed.util.FileUtils.getDataPathPrefix;
import static com.elderdrivers.riru.xposed.util.FileUtils.getPackageName;
import static com.elderdrivers.riru.xposed.util.ProcessUtils.getCurrentProcessName;
import static com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils.shouldUseInMemoryHook;
import static com.elderdrivers.riru.edxp.util.FileUtils.getDataPathPrefix;
import static com.elderdrivers.riru.edxp.util.FileUtils.getPackageName;
import static com.elderdrivers.riru.edxp.util.ProcessUtils.getCurrentProcessName;
public final class DynamicBridge {

View File

@ -1,11 +1,11 @@
package com.elderdrivers.riru.xposed.dexmaker;
package com.elderdrivers.riru.edxp.yahfa.dexmaker;
import android.annotation.TargetApi;
import android.os.Build;
import android.text.TextUtils;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.core.HookMain;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.yahfa.core.HookMain;
import java.io.File;
import java.lang.reflect.Constructor;
@ -29,10 +29,10 @@ import external.com.android.dx.Local;
import external.com.android.dx.MethodId;
import external.com.android.dx.TypeId;
import static com.elderdrivers.riru.xposed.dexmaker.DexMakerUtils.autoBoxIfNecessary;
import static com.elderdrivers.riru.xposed.dexmaker.DexMakerUtils.autoUnboxIfNecessary;
import static com.elderdrivers.riru.xposed.dexmaker.DexMakerUtils.createResultLocals;
import static com.elderdrivers.riru.xposed.dexmaker.DexMakerUtils.getObjTypeIdIfPrimitive;
import static com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils.autoBoxIfNecessary;
import static com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils.autoUnboxIfNecessary;
import static com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils.createResultLocals;
import static com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils.getObjTypeIdIfPrimitive;
public class HookerDexMaker {

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.dexmaker;
package com.elderdrivers.riru.edxp.yahfa.dexmaker;
import java.lang.reflect.Constructor;
import java.lang.reflect.Member;

View File

@ -1,15 +1,15 @@
package com.elderdrivers.riru.xposed.entry;
package com.elderdrivers.riru.edxp.yahfa.entry;
import android.text.TextUtils;
import com.elderdrivers.riru.xposed.core.HookMain;
import com.elderdrivers.riru.xposed.dexmaker.DynamicBridge;
import com.elderdrivers.riru.xposed.entry.bootstrap.AppBootstrapHookInfo;
import com.elderdrivers.riru.xposed.entry.bootstrap.SysBootstrapHookInfo;
import com.elderdrivers.riru.xposed.entry.bootstrap.SysInnerHookInfo;
import com.elderdrivers.riru.xposed.entry.bootstrap.WorkAroundHookInfo;
import com.elderdrivers.riru.xposed.entry.hooker.SystemMainHooker;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.yahfa.core.HookMain;
import com.elderdrivers.riru.edxp.yahfa.dexmaker.DynamicBridge;
import com.elderdrivers.riru.edxp.yahfa.entry.bootstrap.AppBootstrapHookInfo;
import com.elderdrivers.riru.edxp.yahfa.entry.bootstrap.SysBootstrapHookInfo;
import com.elderdrivers.riru.edxp.yahfa.entry.bootstrap.SysInnerHookInfo;
import com.elderdrivers.riru.edxp.yahfa.entry.bootstrap.WorkAroundHookInfo;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.SystemMainHooker;
import com.elderdrivers.riru.edxp.util.Utils;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedInit;

View File

@ -1,9 +1,9 @@
package com.elderdrivers.riru.xposed.entry.bootstrap;
package com.elderdrivers.riru.edxp.yahfa.entry.bootstrap;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.hooker.HandleBindAppHooker;
import com.elderdrivers.riru.xposed.entry.hooker.LoadedApkConstructorHooker;
import com.elderdrivers.riru.xposed.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.HandleBindAppHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.LoadedApkConstructorHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.OnePlusWorkAroundHooker;
public class AppBootstrapHookInfo implements KeepMembers {
public static String[] hookItemNames = {

View File

@ -1,10 +1,10 @@
package com.elderdrivers.riru.xposed.entry.bootstrap;
package com.elderdrivers.riru.edxp.yahfa.entry.bootstrap;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.hooker.HandleBindAppHooker;
import com.elderdrivers.riru.xposed.entry.hooker.LoadedApkConstructorHooker;
import com.elderdrivers.riru.xposed.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.xposed.entry.hooker.SystemMainHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.HandleBindAppHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.LoadedApkConstructorHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.SystemMainHooker;
public class SysBootstrapHookInfo implements KeepMembers {
public static String[] hookItemNames = {

View File

@ -1,7 +1,7 @@
package com.elderdrivers.riru.xposed.entry.bootstrap;
package com.elderdrivers.riru.edxp.yahfa.entry.bootstrap;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.hooker.StartBootstrapServicesHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.StartBootstrapServicesHooker;
public class SysInnerHookInfo implements KeepMembers {
public static String[] hookItemNames = {

View File

@ -1,7 +1,7 @@
package com.elderdrivers.riru.xposed.entry.bootstrap;
package com.elderdrivers.riru.edxp.yahfa.entry.bootstrap;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.hooker.OnePlusWorkAroundHooker;
import com.elderdrivers.riru.edxp.yahfa.entry.hooker.OnePlusWorkAroundHooker;
public class WorkAroundHookInfo implements KeepMembers {
public static String[] hookItemNames = {

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import android.app.ActivityThread;
import android.app.LoadedApk;
@ -7,15 +7,15 @@ import android.content.pm.ApplicationInfo;
import android.content.res.CompatibilityInfo;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.util.Utils;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.xposed.entry.hooker.XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
import static com.elderdrivers.riru.xposed.util.ClassLoaderUtils.replaceParentClassLoader;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.yahfa.entry.hooker.XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.util.ClassLoaderUtils.replaceParentClassLoader;
import static de.robv.android.xposed.XposedHelpers.getObjectField;
import static de.robv.android.xposed.XposedHelpers.setObjectField;
import static de.robv.android.xposed.XposedInit.loadedPackagesInProcess;

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import android.app.ActivityThread;
import android.app.AndroidAppHelper;
@ -12,7 +12,7 @@ import com.elderdrivers.riru.common.KeepMembers;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static com.elderdrivers.riru.xposed.util.ClassLoaderUtils.replaceParentClassLoader;
import static com.elderdrivers.riru.edxp.util.ClassLoaderUtils.replaceParentClassLoader;
import static de.robv.android.xposed.XposedHelpers.getBooleanField;
import static de.robv.android.xposed.XposedHelpers.getObjectField;
import static de.robv.android.xposed.XposedInit.loadedPackagesInProcess;

View File

@ -1,7 +1,8 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.edxp.yahfa.entry.Router;
import com.elderdrivers.riru.edxp.yahfa.Main;
import de.robv.android.xposed.XposedBridge;
@ -14,7 +15,7 @@ import static de.robv.android.xposed.XposedInit.logD;
* system prop "persist.sys.oem.region" set to "CN".(detail of related source code:
* https://gist.github.com/solohsu/ecc07141759958fc096ba0781fac0a5f)
* If we invoke intZygoteCallbacks in
* {@link com.elderdrivers.riru.xposed.Main#forkAndSpecializePre}, where in zygote process,
* {@link Main#forkAndSpecializePre}, where in zygote process,
* we would get a chance to invoke findclass, leaving fd of /dev/binder open in zygote process,
* which is not allowed because /dev/binder is not in predefined whitelist here:
* http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/jni/fd_utils.cpp#35

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import android.os.Build;
@ -9,8 +9,8 @@ import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static com.elderdrivers.riru.xposed.util.ClassLoaderUtils.replaceParentClassLoader;
import static com.elderdrivers.riru.xposed.util.Utils.logD;
import static com.elderdrivers.riru.edxp.util.ClassLoaderUtils.replaceParentClassLoader;
import static com.elderdrivers.riru.edxp.util.Utils.logD;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import static de.robv.android.xposed.XposedInit.loadedPackagesInProcess;
import static de.robv.android.xposed.XposedInit.logE;

View File

@ -1,10 +1,10 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import android.app.ActivityThread;
import com.elderdrivers.riru.common.KeepMembers;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.xposed.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.yahfa.entry.Router;
import com.elderdrivers.riru.edxp.util.PrebuiltMethodsDeopter;
import de.robv.android.xposed.XposedBridge;

View File

@ -1,4 +1,4 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import android.annotation.TargetApi;
import android.app.Activity;
@ -6,7 +6,7 @@ import android.content.Context;
import android.content.ContextWrapper;
import android.os.Build;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.util.Utils;
import java.io.File;
import java.util.Arrays;
@ -18,8 +18,8 @@ import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XSharedPreferences;
import de.robv.android.xposed.XposedBridge;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.xposed.util.FileUtils.IS_USING_PROTECTED_STORAGE;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.util.FileUtils.IS_USING_PROTECTED_STORAGE;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
public class XposedBlackListHooker {

View File

@ -1,6 +1,6 @@
package com.elderdrivers.riru.xposed.entry.hooker;
package com.elderdrivers.riru.edxp.yahfa.entry.hooker;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.util.Utils;
import java.io.File;
import java.io.FileInputStream;
@ -10,7 +10,7 @@ import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.LEGACY_INSTALLER_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.LEGACY_INSTALLER_PACKAGE_NAME;
import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import static de.robv.android.xposed.XposedHelpers.findClass;
@ -38,7 +38,7 @@ public class XposedInstallerHooker {
Utils.logD("reloadXposedProp already done, skip...");
return;
}
File file = new File("/system/framework/edconfig.dex");
File file = new File("/system/framework/edconfig.jar");
FileInputStream is = null;
try {
is = new FileInputStream(file);

View File

@ -1,18 +1,18 @@
package com.elderdrivers.riru.xposed.proxy.yahfa;
package com.elderdrivers.riru.edxp.yahfa.proxy;
import android.text.TextUtils;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.config.ConfigManager;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.xposed.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.xposed.util.ProcessUtils;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.config.ConfigManager;
import com.elderdrivers.riru.edxp.yahfa.entry.Router;
import com.elderdrivers.riru.edxp.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.util.ProcessUtils;
import com.elderdrivers.riru.edxp.util.Utils;
import de.robv.android.xposed.XposedBridge;
import static com.elderdrivers.riru.xposed.Main.isAppNeedHook;
import static com.elderdrivers.riru.xposed.util.FileUtils.getDataPathPrefix;
import static com.elderdrivers.riru.edxp.yahfa.Main.isAppNeedHook;
import static com.elderdrivers.riru.edxp.util.FileUtils.getDataPathPrefix;
/**
* 1. Non dynamic mode

View File

@ -1,11 +1,11 @@
package com.elderdrivers.riru.xposed.proxy.yahfa;
package com.elderdrivers.riru.edxp.yahfa.proxy;
import com.elderdrivers.riru.xposed.Main;
import com.elderdrivers.riru.xposed.config.ConfigManager;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.xposed.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.yahfa.Main;
import com.elderdrivers.riru.edxp.config.ConfigManager;
import com.elderdrivers.riru.edxp.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.yahfa.entry.Router;
import static com.elderdrivers.riru.xposed.util.FileUtils.getDataPathPrefix;
import static com.elderdrivers.riru.edxp.util.FileUtils.getDataPathPrefix;
public class NormalProxy {

View File

@ -1,74 +0,0 @@
package de.robv.android.xposed;
public class GeneClass_Template {
public static java.lang.reflect.Member method;
public static de.robv.android.xposed.XposedBridge.AdditionalHookInfo tAdditionalInfoObj;
public static boolean backup(java.lang.Object obj, int i) {
return false;
}
public static boolean hook(java.lang.Object obj, int i) throws Throwable {
java.lang.Throwable th;
if (!de.robv.android.xposed.XposedBridge.disableHooks) {
java.lang.Object[] snapshot = tAdditionalInfoObj.callbacks.getSnapshot();
int length = snapshot.length;
if (length != 0) {
de.robv.android.xposed.XC_MethodHook.MethodHookParam methodHookParam = new de.robv.android.xposed.XC_MethodHook.MethodHookParam();
methodHookParam.method = method;
java.lang.Object[] objArr = new java.lang.Object[1];
methodHookParam.args = objArr;
methodHookParam.thisObject = obj;
objArr[0] = java.lang.Integer.valueOf(i);
int i2 = 0;
do {
try {
((de.robv.android.xposed.XC_MethodHook) snapshot[i2]).callBeforeHookedMethod(methodHookParam);
if (methodHookParam.returnEarly) {
i2++;
break;
}
} catch (java.lang.Throwable th2) {
de.robv.android.xposed.XposedBridge.log(th2);
methodHookParam.setResult(null);
methodHookParam.returnEarly = false;
}
i2++;
} while (i2 < length);
if (!methodHookParam.returnEarly) {
try {
methodHookParam.setResult(java.lang.Boolean.valueOf(backup(obj, i)));
} catch (java.lang.Throwable th3) {
methodHookParam.setThrowable(th3);
}
}
i2--;
do {
java.lang.Object result = methodHookParam.getResult();
Throwable th2 = methodHookParam.getThrowable();
try {
((de.robv.android.xposed.XC_MethodHook) snapshot[i2]).callAfterHookedMethod(methodHookParam);
} catch (java.lang.Throwable th4) {
de.robv.android.xposed.XposedBridge.log(th4);
if (th2 == null) {
methodHookParam.setResult(result);
} else {
methodHookParam.setThrowable(th2);
}
}
i2--;
} while (i2 >= 0);
if (!methodHookParam.hasThrowable()) {
return ((java.lang.Boolean) methodHookParam.getResult()).booleanValue();
}
throw methodHookParam.getThrowable();
}
}
return backup(obj, i);
}
public static void setup(java.lang.reflect.Member member, de.robv.android.xposed.XposedBridge.AdditionalHookInfo additionalHookInfo) {
method = member;
tAdditionalInfoObj = additionalHookInfo;
}
}

View File

@ -3,9 +3,9 @@ package de.robv.android.xposed;
import android.annotation.SuppressLint;
import android.util.Log;
import com.elderdrivers.riru.xposed.core.HookMain;
import com.elderdrivers.riru.xposed.dexmaker.DynamicBridge;
import com.elderdrivers.riru.xposed.dexmaker.MethodInfo;
import com.elderdrivers.riru.edxp.yahfa.core.HookMain;
import com.elderdrivers.riru.edxp.yahfa.dexmaker.DynamicBridge;
import com.elderdrivers.riru.edxp.yahfa.dexmaker.MethodInfo;
import java.io.File;
import java.io.IOException;

View File

@ -6,10 +6,9 @@ import android.text.TextUtils;
import android.util.Log;
import com.android.internal.os.ZygoteInit;
import com.elderdrivers.riru.xposed.BuildConfig;
import com.elderdrivers.riru.xposed.config.ConfigManager;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.xposed.util.Utils;
import com.elderdrivers.riru.edxp.config.ConfigManager;
import com.elderdrivers.riru.edxp.yahfa.entry.Router;
import com.elderdrivers.riru.edxp.util.Utils;
import java.io.BufferedReader;
import java.io.File;
@ -25,8 +24,8 @@ import dalvik.system.DexFile;
import dalvik.system.PathClassLoader;
import de.robv.android.xposed.services.BaseService;
import static com.elderdrivers.riru.xposed.config.InstallerChooser.INSTALLER_DATA_BASE_DIR;
import static com.elderdrivers.riru.xposed.entry.hooker.XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
import static com.elderdrivers.riru.edxp.config.InstallerChooser.INSTALLER_DATA_BASE_DIR;
import static com.elderdrivers.riru.edxp.yahfa.entry.hooker.XposedBlackListHooker.BLACK_LIST_PACKAGE_NAME;
import static de.robv.android.xposed.XposedHelpers.closeSilently;
import static de.robv.android.xposed.XposedHelpers.findClass;
import static de.robv.android.xposed.XposedHelpers.findFieldIfExists;

View File

@ -2,8 +2,7 @@ package de.robv.android.xposed.callbacks;
import android.os.Bundle;
import com.elderdrivers.riru.xposed.entry.Router;
import com.elderdrivers.riru.xposed.util.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.util.PrebuiltMethodsDeopter;
import java.io.Serializable;

2
Core/.gitignore vendored
View File

@ -3,5 +3,5 @@
/libs
/obj
/release
/template_override/system/framework/edxposed.dex
/template_override/system/framework/edxp.jar
*.iml

View File

@ -8,8 +8,8 @@
//#define DEBUG
#define INJECT_DEX_PATH \
"/system/framework/edxposed.dex:/system/framework/eddalvikdx.dex:/system/framework/eddexmaker.dex"
"/system/framework/edxp.jar:/system/framework/eddalvikdx.jar:/system/framework/eddexmaker.jar"
#define ENTRY_CLASS_NAME "com.elderdrivers.riru.xposed.Main"
#define ENTRY_CLASS_NAME "com.elderdrivers.riru.edxp.yahfa.Main"
#endif //CONFIG_H

View File

@ -1 +1 @@
<manifest package="com.elderdrivers.riru.xposed" />
<manifest package="com.elderdrivers.riru.edxp" />

Binary file not shown.

Binary file not shown.

View File

@ -32,7 +32,7 @@ and zip binaries can be downloaded from [here](http://gnuwin32.sourceforge.net/p
## Build
1. run `:Bridge:makeAndCopyRelease` in Gradle window to build `edxposed.dex`
1. run `:Bridge:makeAndCopyRelease` in Gradle window to build `edxp.jar`
2. run `:Core:zipRelease` to build Magisk Riru module flashable zip file
3. find the flashable under `Core/release/`
4. flash the zip in recovery mode or in Magisk Manager