Move libsandhook.edxp.so to /data/misc to avoid magisk hide

incompatibility
This commit is contained in:
LoveSy 2020-12-21 04:07:53 +08:00 committed by 双草酸酯
parent d92b051894
commit a1f9bdc7c7
4 changed files with 19 additions and 26 deletions

View File

@ -36,13 +36,11 @@ inline constexpr bool is64 = Is64();
static const auto kLibArtName = "libart.so"s;
static const auto kLibFwName = "libandroidfw.so"s;
static const auto kLibSandHookName = "libsandhook.edxp.so"s;
static const auto kLibBasePath =
LP_SELECT("/system/lib/"s,
"/system/lib64/"s);
static const auto kLibArtLegacyPath = kLibBasePath + kLibArtName;
static const auto kLibSandHookPath = kLibBasePath + kLibSandHookName;
static const auto kLibFwPath = kLibBasePath + kLibFwName;
inline constexpr const char *const BoolToString(bool b) {

View File

@ -60,16 +60,21 @@ namespace edxp {
inline const auto &GetInstallerPackageName() const { return installer_pkg_name_; }
inline const auto &GetLibSandHookName() const { return kLibSandHookName; }
inline const auto &GetDataPathPrefix() const { return data_path_prefix_; }
inline static const auto &GetMiscPath() {return misc_path_;}
inline static const auto &GetMiscPath() { return misc_path_; }
inline static auto GetFrameworkPath(const std::string &suffix = {}) {
return misc_path_ / "framework" / suffix;
}
inline static auto GetLibSandHookName() {
if constexpr(edxp::is64)
return GetFrameworkPath("lib64/libsandhook.edxp.so");
else
return GetFrameworkPath("lib/libsandhook.edxp.so");
}
inline auto GetXposedPropPath() const { return GetFrameworkPath(kXposedPropName); }
inline auto GetConfigPath(const std::string &suffix = {}) const {
@ -98,7 +103,7 @@ namespace edxp {
static const auto &GetInjectDexPaths() { return inject_dex_paths_; };
bool IsInstaller(const std::string& pkg_name) const {
bool IsInstaller(const std::string &pkg_name) const {
return pkg_name == installer_pkg_name_ || pkg_name == kPrimaryInstallerPkgName;
}

View File

@ -141,7 +141,7 @@ namespace edxp {
if (variant_ == SANDHOOK) {
//for SandHook variant
ScopedDlHandle sandhook_handle(kLibSandHookPath.c_str());
ScopedDlHandle sandhook_handle(ConfigManager::GetLibSandHookName().c_str());
if (!sandhook_handle.IsValid()) {
return;
}

View File

@ -213,6 +213,15 @@ ui_print "- ${LANG_CUST_INST_COPY_LIB}"
rm -rf "/data/misc/$MISC_PATH/framework"
mv "${MODPATH}/system/framework" "/data/misc/$MISC_PATH/framework"
if [[ "${VARIANTS}" == "SandHook" ]]; then
mkdir -p "/data/misc/$MISC_PATH/framework/lib"
mv "${MODPATH}/system/lib/libsandhook.edxp.so" "/data/misc/$MISC_PATH/framework/lib/libsandhook.edxp.so"
if [ "$IS64BIT" = true ]; then
mkdir -p "/data/misc/$MISC_PATH/framework/lib64"
mv "${MODPATH}/system/lib64/libsandhook.edxp.so" "/data/misc/$MISC_PATH/framework/lib64/libsandhook.edxp.so"
fi
fi
set_perm_recursive /data/misc/$MISC_PATH/framework root root 0755 0644 "u:object_r:magisk_file:s0" || abortC "! ${LANG_CUST_ERR_PERM}"
mv "${MODPATH}/system/lib/libriru_edxp.so" "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
@ -220,25 +229,6 @@ if [[ "${IS64BIT}" == true ]]; then
mv "${MODPATH}/system/lib64/libriru_edxp.so" "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
fi
if [[ "${VARIANTS}" == "SandHook" ]]; then
mv "${MODPATH}/system/lib/libsandhook.edxp.so" "${MODPATH}/system/lib/${LIB_SANDHOOK_EDXP}"
if [[ "${IS64BIT}" == true ]]; then
mv "${MODPATH}/system/lib64/libsandhook.edxp.so" "${MODPATH}/system/lib64/${LIB_SANDHOOK_EDXP}"
fi
fi
ui_print "- ${LANG_CUST_INST_RAND_LIB_1}"
ui_print " - ${LANG_CUST_INST_RAND_LIB_2}"
ui_print " - ${LANG_CUST_INST_RAND_LIB_3}"
sed -i 's:libriru_edxp.so:'"${LIB_RIRU_EDXP}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
sed -i 's:libsandhook.edxp.so:'"${LIB_SANDHOOK_EDXP}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
ui_print " - ${LANG_CUST_INST_RAND_LIB_4}"
if [[ "${IS64BIT}" == true ]]; then
sed -i 's:libriru_edxp.so:'"${LIB_RIRU_EDXP}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
sed -i 's:libsandhook.edxp.so:'"${LIB_SANDHOOK_EDXP}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
fi
ui_print "- ${LANG_CUST_INST_REM_OLDCONF}"
if [[ -f "${RIRU_MODULES}/edxp.prop" ]]; then