Resetting the library file path
Prevent some software from detecting EdXposed It works with latest SafetyNet! Now allows each installation to be a unique Xposed framework Completely erasing certain single, fixed features of the Xposed framework
This commit is contained in:
parent
1979856752
commit
e905664403
|
|
@ -19,6 +19,11 @@ public class BaseEdxpConfig implements EdxpConfig {
|
|||
return ConfigManager.getInstallerPackageName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getXposedPropPath() {
|
||||
return ConfigManager.getXposedPropPath();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDynamicModulesMode() {
|
||||
return ConfigManager.isDynamicModulesEnabled();
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public class ConfigManager {
|
|||
|
||||
public static native String getInstallerPackageName();
|
||||
|
||||
public static native String getXposedPropPath();
|
||||
|
||||
public static native String getInstallerConfigPath(String suffix);
|
||||
|
||||
public static native String getDataPathPrefix();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.elderdrivers.riru.edxp.hooker;
|
||||
|
||||
import com.elderdrivers.riru.edxp.config.ConfigManager;
|
||||
import com.elderdrivers.riru.edxp.util.Utils;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -37,7 +38,7 @@ public class XposedInstallerHooker {
|
|||
Utils.logD("reloadXposedProp already done, skip...");
|
||||
return;
|
||||
}
|
||||
File file = new File("/system/framework/edconfig.jar");
|
||||
File file = new File(ConfigManager.getXposedPropPath());
|
||||
FileInputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream(file);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,10 @@ namespace edxp {
|
|||
return installer_pkg_name_;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE std::string ConfigManager::GetXposedPropPath() const {
|
||||
return kXposedPropPath;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE std::string ConfigManager::GetDataPathPrefix() const {
|
||||
return data_path_prefix_;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace edxp {
|
|||
|
||||
static constexpr const char *kPrimaryInstallerPkgName = "org.meowcat.edxposed.manager";
|
||||
static constexpr const char *kLegacyInstallerPkgName = "de.robv.android.xposed.installer";
|
||||
static constexpr auto kXposedPropPath = "/system/framework/edconfig.jar";
|
||||
|
||||
class ConfigManager {
|
||||
public:
|
||||
|
|
@ -33,6 +34,8 @@ namespace edxp {
|
|||
|
||||
std::string GetInstallerPackageName() const;
|
||||
|
||||
std::string GetXposedPropPath() const;
|
||||
|
||||
std::string GetDataPathPrefix() const;
|
||||
|
||||
std::string GetConfigPath(const std::string &suffix) const;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ namespace edxp {
|
|||
return env->NewStringUTF(ConfigManager::GetInstance()->GetInstallerPackageName().c_str());
|
||||
}
|
||||
|
||||
static jstring ConfigManager_getXposedPropPath(JNI_START) {
|
||||
return env->NewStringUTF(ConfigManager::GetInstance()->GetXposedPropPath().c_str());
|
||||
}
|
||||
|
||||
static jstring ConfigManager_getDataPathPrefix(JNI_START) {
|
||||
return env->NewStringUTF(ConfigManager::GetInstance()->GetDataPathPrefix().c_str());
|
||||
}
|
||||
|
|
@ -56,6 +60,7 @@ namespace edxp {
|
|||
NATIVE_METHOD(ConfigManager, isDeoptBootImageEnabled, "()Z"),
|
||||
NATIVE_METHOD(ConfigManager, isNoModuleLogEnabled, "()Z"),
|
||||
NATIVE_METHOD(ConfigManager, getInstallerPackageName, "()Ljava/lang/String;"),
|
||||
NATIVE_METHOD(ConfigManager, getXposedPropPath, "()Ljava/lang/String;"),
|
||||
NATIVE_METHOD(ConfigManager, getDataPathPrefix, "()Ljava/lang/String;"),
|
||||
NATIVE_METHOD(ConfigManager, getInstallerConfigPath, "(Ljava/lang/String;)Ljava/lang/String;"),
|
||||
NATIVE_METHOD(ConfigManager, isAppNeedHook, "(Ljava/lang/String;)Z"),
|
||||
|
|
|
|||
|
|
@ -11,6 +11,11 @@ PROP_PRODUCT=$(getprop ro.build.product)
|
|||
PROP_BRAND=$(getprop ro.product.brand)
|
||||
PROP_MANUFACTURER=$(getprop ro.product.manufacturer)
|
||||
|
||||
JAR_EDXP=$(cat /proc/sys/kernel/random/uuid|md5sum|cut -c 1-8)".jar"
|
||||
JAR_EDDALVIKDX=$(cat /proc/sys/kernel/random/uuid|md5sum|cut -c 1-8)".jar"
|
||||
JAR_EDDEXMAKER=$(cat /proc/sys/kernel/random/uuid|md5sum|cut -c 1-8)".jar"
|
||||
JAR_EDCONFIG=$(cat /proc/sys/kernel/random/uuid|md5sum|cut -c 1-8)".jar"
|
||||
|
||||
MODEL="
|
||||
HD1900
|
||||
HD1910
|
||||
|
|
@ -200,6 +205,12 @@ check_architecture
|
|||
ui_print "- Extracting module files"
|
||||
unzip -o "${ZIPFILE}" EdXposed.apk module.prop post-fs-data.sh sepolicy.rule system.prop uninstall.sh 'system/*' -d "${MODPATH}" >&2
|
||||
|
||||
ui_print "- Copying framework libraries"
|
||||
mv "${MODPATH}/system/framework/eddalvikdx.jar" "${MODPATH}/system/framework/${JAR_EDDALVIKDX}"
|
||||
mv "${MODPATH}/system/framework/edxp.jar" "${MODPATH}/system/framework/${JAR_EDXP}"
|
||||
mv "${MODPATH}/system/framework/eddexmaker.jar" "${MODPATH}/system/framework/${JAR_EDDEXMAKER}"
|
||||
mv "${MODPATH}/system/framework/edconfig.jar" "${MODPATH}/system/framework/${JAR_EDCONFIG}"
|
||||
|
||||
if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]; then
|
||||
ui_print "- Replacing x86 and x86_64 libraries"
|
||||
unzip -o "${ZIPFILE}" 'system_x86/*' -d "${MODPATH}" >&2
|
||||
|
|
@ -221,7 +232,7 @@ fi
|
|||
|
||||
if [[ ${BOOTMODE} == true && ${NO_MANAGER} == true ]]; then
|
||||
ui_print "- Installing stub apk"
|
||||
cp -f "${MODPATH}"/EdXposed.apk /data/local/tmp/
|
||||
cp -f "${MODPATH}/EdXposed.apk" /data/local/tmp/
|
||||
pm install /data/local/tmp/EdXposed.apk 2>&2
|
||||
rm -rf /data/local/tmp/EdXposed.apk
|
||||
fi
|
||||
|
|
@ -231,14 +242,24 @@ if [[ "${OLD_MAGISK}" == true ]]; then
|
|||
rm "${MODPATH}"/sepolicy.rule
|
||||
fi
|
||||
|
||||
echo "- Mounted persist:" >&2
|
||||
mount | grep persist >&2
|
||||
#echo "- Mounted persist:" >&2
|
||||
#mount | grep persist >&2
|
||||
|
||||
#if [[ "${NO_PERSIST}" == true ]]; then
|
||||
# ui_print "- Persist not detected, remove SEPolicy rule"
|
||||
# rm ${MODPATH}/sepolicy.rule
|
||||
#fi
|
||||
|
||||
ui_print "- Resetting libraries path"
|
||||
|
||||
sed -i 's:/system/framework/edxp.jar\:/system/framework/eddalvikdx.jar\:/system/framework/eddexmaker.jar:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib/libriru_edxp.so"
|
||||
sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib/libriru_edxp.so"
|
||||
|
||||
if [[ "${IS64BIT}" == true ]]; then
|
||||
sed -i 's:/system/framework/edxp.jar\:/system/framework/eddalvikdx.jar\:/system/framework/eddexmaker.jar:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib64/libriru_edxp.so"
|
||||
sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib64/libriru_edxp.so"
|
||||
fi
|
||||
|
||||
ui_print "- Copying extra files"
|
||||
|
||||
TARGET="${RIRU_PATH}/modules/edxp"
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ public interface EdxpConfig {
|
|||
|
||||
String getInstallerPackageName();
|
||||
|
||||
String getXposedPropPath();
|
||||
|
||||
boolean isDynamicModulesMode();
|
||||
|
||||
boolean isNoModuleLogEnabled();
|
||||
|
|
|
|||
Loading…
Reference in New Issue