Support old Magisk
This commit is contained in:
parent
bf1467a068
commit
b32801c89a
|
|
@ -1,50 +1,162 @@
|
|||
SKIPUNZIP=1
|
||||
|
||||
RIRU_PATH="/data/misc/riru"
|
||||
OLD_MAGISK=false
|
||||
DETECTED_DEVICE=false
|
||||
PROP_MODEL=`getprop ro.product.model`
|
||||
PROP_DEVICE=`getprop ro.product.device`
|
||||
PROP_PRODUCT=`getprop ro.build.product`
|
||||
PROP_BRAND=`getprop ro.product.brand`
|
||||
PROP_MANUFACTURER=`getprop ro.product.manufacturer`
|
||||
|
||||
MODEL="
|
||||
HD1900
|
||||
HD1910
|
||||
"
|
||||
DEVICE="
|
||||
OnePlus7T
|
||||
OnePlus7TPro
|
||||
"
|
||||
PRODUCT="
|
||||
OnePlus7T
|
||||
OnePlus7TPro
|
||||
"
|
||||
BRAND="
|
||||
HUAWEI
|
||||
HONOR
|
||||
"
|
||||
MANUFACTURER="
|
||||
HUAWEI
|
||||
"
|
||||
|
||||
require_new_magisk() {
|
||||
ui_print "*******************************"
|
||||
ui_print " Please install Magisk v20.2+! "
|
||||
ui_print "*******************************"
|
||||
abort
|
||||
ui_print "*******************************"
|
||||
ui_print " Please install Magisk v20.2+! "
|
||||
ui_print "*******************************"
|
||||
abort
|
||||
}
|
||||
|
||||
require_new_riru() {
|
||||
ui_print "**********************************"
|
||||
ui_print " Please Install Riru - Core v19+! "
|
||||
ui_print "**********************************"
|
||||
abort
|
||||
}
|
||||
|
||||
require_yahfa() {
|
||||
ui_print "****************************************"
|
||||
ui_print " Only YAHFA supports x86 or x64 devices "
|
||||
ui_print "****************************************"
|
||||
abort
|
||||
}
|
||||
|
||||
check_old_magisk_device() {
|
||||
OLD_MAGISK=true
|
||||
ui_print "- Old Magisk detected"
|
||||
if [[ "${DETECTED_DEVICE}" = true ]]; then
|
||||
require_new_magisk
|
||||
fi
|
||||
}
|
||||
|
||||
check_magisk_version() {
|
||||
for TARGET in ${MODEL}
|
||||
do
|
||||
if [[ "${PROP_MODEL}" == ${TARGET} ]]
|
||||
then
|
||||
DETECTED_DEVICE=true
|
||||
fi
|
||||
done
|
||||
for TARGET in ${DEVICE}
|
||||
do
|
||||
if [[ "${PROP_DEVICE}" == ${TARGET} ]]
|
||||
then
|
||||
DETECTED_DEVICE=true
|
||||
fi
|
||||
done
|
||||
for TARGET in ${PRODUCT}
|
||||
do
|
||||
if [[ "${PROP_PRODUCT}" == ${TARGET} ]]
|
||||
then
|
||||
DETECTED_DEVICE=true
|
||||
fi
|
||||
done
|
||||
for TARGET in ${BRAND}
|
||||
do
|
||||
if [[ "${PROP_BRAND}" == ${TARGET} ]]
|
||||
then
|
||||
DETECTED_DEVICE=true
|
||||
fi
|
||||
done
|
||||
for TARGET in ${MANUFACTURER}
|
||||
do
|
||||
if [[ "${PROP_MANUFACTURER}" == ${TARGET} ]]
|
||||
then
|
||||
DETECTED_DEVICE=true
|
||||
fi
|
||||
done
|
||||
if [[ "${DETECTED_DEVICE}" = true ]]; then
|
||||
ui_print "- Special device detected"
|
||||
fi
|
||||
ui_print "- Magisk version is ${MAGISK_VER_CODE}"
|
||||
[[ ${MAGISK_VER_CODE} -ge 20110 ]] || check_old_magisk_device
|
||||
}
|
||||
|
||||
check_riru_version() {
|
||||
[[ ! -f "${RIRU_PATH}/api_version" ]] && abort "! Please Install Riru - Core v19 or above"
|
||||
VERSION=$(cat "${RIRU_PATH}/api_version")
|
||||
ui_print "- Riru API version is ${VERSION}"
|
||||
[[ "${VERSION}" -ge 4 ]] || abort "! Please Install Riru - Core v19 or above"
|
||||
[[ ! -f "${RIRU_PATH}/api_version" ]] && require_new_riru
|
||||
VERSION=$(cat "${RIRU_PATH}/api_version")
|
||||
ui_print "- Riru API version is ${VERSION}"
|
||||
[[ "${VERSION}" -ge 4 ]] || require_new_riru
|
||||
}
|
||||
|
||||
check_architecture() {
|
||||
if [[ "${ARCH}" != "arm" && "${ARCH}" != "arm64" && "${ARCH}" != "x86" && "${ARCH}" != "x64" ]]; then
|
||||
abort "! Unsupported platform: ${ARCH}"
|
||||
else
|
||||
ui_print "- Device platform: ${ARCH}"
|
||||
fi
|
||||
if [[ "${MODID}" == "riru_edxposed_sandhook" ]]; then
|
||||
VARIANTS="SandHook"
|
||||
else
|
||||
VARIANTS="YAHFA"
|
||||
fi
|
||||
ui_print "- EdXposed Variant: ${VARIANTS}"
|
||||
if [[ "${ARCH}" != "arm" && "${ARCH}" != "arm64" && "${ARCH}" != "x86" && "${ARCH}" != "x64" ]]; then
|
||||
abort "! Unsupported platform is ${ARCH}"
|
||||
else
|
||||
ui_print "- Device platform is ${ARCH}"
|
||||
if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]; then
|
||||
if [[ "${VARIANTS}" == "SandHook" ]]; then
|
||||
require_yahfa
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
[[ ${MAGISK_VER_CODE} -ge 20110 ]] || require_new_magisk
|
||||
|
||||
check_architecture
|
||||
check_magisk_version
|
||||
check_riru_version
|
||||
check_architecture
|
||||
|
||||
ui_print "- Extracting module files"
|
||||
unzip -o "${ZIPFILE}" module.prop post-fs-data.sh sepolicy.rule system.prop util_functions.sh -d "${MODPATH}" >&2
|
||||
unzip -o "${ZIPFILE}" module.prop post-fs-data.sh system.prop uninstall.sh 'system/*' -d "${MODPATH}" >&2
|
||||
|
||||
if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]; then
|
||||
ui_print "- Extracting x86/64 libraries"
|
||||
unzip -o "${ZIPFILE}" 'system_x86/*' -d "${MODPATH}" >&2
|
||||
mv "${MODPATH}/system_x86/lib" "${MODPATH}/system/lib"
|
||||
mv "${MODPATH}/system_x86/lib64" "${MODPATH}/system/lib64"
|
||||
else
|
||||
ui_print "- Extracting arm/arm64 libraries"
|
||||
unzip -o "${ZIPFILE}" 'system/*' -d "${MODPATH}" >&2
|
||||
if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]
|
||||
then
|
||||
ui_print "- Replacing x86/64 libraries"
|
||||
unzip -o "${ZIPFILE}" 'system_x86/*' -d "${MODPATH}" >&2
|
||||
rm -rf "${MODPATH}/system/lib"
|
||||
rm -rf "${MODPATH}/system/lib64"
|
||||
mv "${MODPATH}/system_x86/lib" "${MODPATH}/system/lib"
|
||||
mv "${MODPATH}/system_x86/lib64" "${MODPATH}/system/lib64"
|
||||
rm -rf "${MODPATH}/system_x86"
|
||||
fi
|
||||
|
||||
if [[ "${IS64BIT}" = false ]]; then
|
||||
ui_print "- Removing 64-bit libraries"
|
||||
rm -rf "${MODPATH}/system/lib64"
|
||||
if [[ "${IS64BIT}" = false ]]
|
||||
then
|
||||
ui_print "- Removing 64-bit libraries"
|
||||
rm -rf "${MODPATH}/system/lib64"
|
||||
fi
|
||||
|
||||
if [[ "${OLD_MAGISK}" = true ]]
|
||||
then
|
||||
ui_print "- Extracting custom sepolicy rule for old Magisk"
|
||||
unzip -o "${ZIPFILE}" sepolicy.sh -d "${MODPATH}" >&2
|
||||
else
|
||||
ui_print "- Extracting custom sepolicy rule"
|
||||
unzip -o "${ZIPFILE}" sepolicy.rule -d "${MODPATH}" >&2
|
||||
fi
|
||||
|
||||
ui_print "- Copying extra files"
|
||||
|
|
@ -55,6 +167,8 @@ TARGET="${RIRU_PATH}/modules/edxp"
|
|||
|
||||
cp "${MODPATH}/module.prop" "${TARGET}/module.prop" || abort "! Can't create ${TARGET}/module.prop"
|
||||
|
||||
ui_print "- Files copied"
|
||||
|
||||
set_perm_recursive "${MODPATH}" 0 0 0755 0644
|
||||
|
||||
VERSION=`grep_prop version $TMPDIR/module.prop`
|
||||
|
||||
ui_print "- Welcome to EdXposed ${VERSION}!"
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
#!/system/bin/sh
|
||||
MODDIR=${0%/*}
|
||||
|
||||
if [[ -z "${MODDIR}/sepolicy.sh" ]]
|
||||
then
|
||||
. ${MODDIR}/sepolicy.sh
|
||||
fi
|
||||
|
||||
grep_prop() {
|
||||
local REGEX="s/^$1=//p"
|
||||
shift
|
||||
|
|
@ -13,7 +18,8 @@ EDXP_VERSION=`grep_prop version ${MODDIR}/module.prop`
|
|||
ANDROID_SDK=`getprop ro.build.version.sdk`
|
||||
BUILD_DESC=`getprop ro.build.description`
|
||||
PRODUCT=`getprop ro.build.product`
|
||||
MANUFACTURE=`getprop ro.product.manufacturer`
|
||||
MODEL=`getprop ro.product.model`
|
||||
MANUFACTURER=`getprop ro.product.manufacturer`
|
||||
BRAND=`getprop ro.product.brand`
|
||||
FINGERPRINT=`getprop ro.build.fingerprint`
|
||||
ARCH=`getprop ro.product.cpu.abi`
|
||||
|
|
@ -88,18 +94,21 @@ start_log_cather () {
|
|||
echo "QQ support group: 855219808">>${LOG_FILE}
|
||||
echo "Telegram support group: @Code_Of_MeowCat">>${LOG_FILE}
|
||||
echo "--------- beginning of information">>${LOG_FILE}
|
||||
echo "Manufacturer: ${MANUFACTURER}">>${LOG_FILE}
|
||||
echo "Brand: ${BRAND}">>${LOG_FILE}
|
||||
echo "Device: ${DEVICE}">>${LOG_FILE}
|
||||
echo "Product: ${PRODUCT}">>${LOG_FILE}
|
||||
echo "Model: ${MODEL}">>${LOG_FILE}
|
||||
echo "Fingerprint: ${FINGERPRINT}">>${LOG_FILE}
|
||||
echo "ROM description: ${BUILD_DESC}">>${LOG_FILE}
|
||||
echo "Architecture: ${ARCH}">>${LOG_FILE}
|
||||
echo "Android build: ${BUILD}">>${LOG_FILE}
|
||||
echo "Android version: ${ANDROID}">>${LOG_FILE}
|
||||
echo "Android sdk: ${ANDROID_SDK}">>${LOG_FILE}
|
||||
echo "Android build: ${BUILD}">>${LOG_FILE}
|
||||
echo "Fingerprint: ${FINGERPRINT}">>${LOG_FILE}
|
||||
echo "ROM build description: ${BUILD_DESC}">>${LOG_FILE}
|
||||
echo "EdXposed Version: ${EDXP_VERSION} (api: 90.0)">>${LOG_FILE}
|
||||
echo "Architecture: ${ARCH}">>${LOG_FILE}
|
||||
echo "Device: ${DEVICE}">>${LOG_FILE}
|
||||
echo "Manufacture: ${MANUFACTURE}">>${LOG_FILE}
|
||||
echo "Brand: ${BRAND}">>${LOG_FILE}
|
||||
echo "Product: ${PRODUCT}">>${LOG_FILE}
|
||||
echo "Riru: ${RIRU_VERSION} (${RIRU_VERCODE}) (api: ${RIRU_APICODE})">>${LOG_FILE}
|
||||
echo "EdXposed version: ${EDXP_VERSION}">>${LOG_FILE}
|
||||
echo "EdXposed api: 90.0">>${LOG_FILE}
|
||||
echo "Riru version: ${RIRU_VERSION} (${RIRU_VERCODE})">>${LOG_FILE}
|
||||
echo "Riru api: ${RIRU_APICODE}">>${LOG_FILE}
|
||||
echo "Magisk: ${MAGISK_VERSION} (${MAGISK_VERCODE})">>${LOG_FILE}
|
||||
logcat -f ${LOG_FILE} *:S ${LOG_TAG_FILTERS} &
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
#!/system/bin/sh
|
||||
|
||||
# necessary for using mmap in system_server process
|
||||
supolicy --live "allow system_server system_server process {execmem}"
|
||||
supolicy --live "allow system_server system_server memprotect {mmap_zero}"
|
||||
|
||||
# for built-in apps // TODO maybe narrow down the target classes
|
||||
supolicy --live "allow coredomain coredomain process {execmem}"
|
||||
|
||||
# read configs set in our app
|
||||
supolicy --live "allow coredomain app_data_file * *"
|
||||
supolicy --live "attradd {system_app platform_app} mlstrustedsubject"
|
||||
|
||||
# read module apk file in zygote
|
||||
supolicy --live "allow zygote apk_data_file * *"
|
||||
Loading…
Reference in New Issue