Add support for deprecated custom Magisk 20.1

This commit is contained in:
Jim Wu 2020-01-29 22:06:00 +08:00
parent c4d0a3ee41
commit a408df090d
3 changed files with 35 additions and 28 deletions

View File

@ -31,11 +31,19 @@ HUAWEI
require_new_magisk() {
ui_print "******************************"
ui_print "! Special device detected"
ui_print "! Magisk v20.2+ is required"
ui_print "! Magisk v20.2+ or custom Magisk v20.1(Deprecated) is required"
ui_print "! You can update from 'Magisk Manager' or https://github.com/topjohnwu/Magisk/releases"
abort "******************************"
}
update_new_magisk() {
ui_print "******************************"
ui_print "- Deprecated custom Magisk v20.1 detected"
ui_print "- We will still keep the rule file for you"
ui_print "- You can update to the latest Magisk directly from official update channel"
ui_print "******************************"
}
require_riru() {
ui_print "******************************"
ui_print "! Requirement module 'Riru - Core' is not installed"
@ -76,7 +84,7 @@ check_old_magisk_device() {
ui_print "- And support may be cancelled in subsequent versions"
ui_print "- In any case, you should update to the latest version in time"
ui_print "******************************"
if [[ "${DETECTED_DEVICE}" = true ]]; then
if [[ "${DETECTED_DEVICE}" == true ]]; then
require_new_magisk
fi
}
@ -107,11 +115,12 @@ check_magisk_version() {
DETECTED_DEVICE=true
fi
done
if [[ "${DETECTED_DEVICE}" = true ]]; then
if [[ "${DETECTED_DEVICE}" == true ]]; then
ui_print "- Special device detected"
fi
ui_print "- Magisk version is ${MAGISK_VER_CODE}"
[[ ${MAGISK_VER_CODE} -ge 20102 ]] || check_old_magisk_device ${MAGISK_VER_CODE}
[[ ${MAGISK_VER_CODE} -ge 20101 ]] || check_old_magisk_device ${MAGISK_VER_CODE}
[[ ${MAGISK_VER_CODE} -eq 20101 ]] || update_new_magisk
}
check_riru_version() {
@ -163,12 +172,12 @@ if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]; then
rm -rf "${MODPATH}/system_x86"
fi
if [[ "${IS64BIT}" = false ]]; then
if [[ "${IS64BIT}" == false ]]; then
ui_print "- Removing 64-bit libraries"
rm -rf "${MODPATH}/system/lib64"
fi
if [[ "${OLD_MAGISK}" = true ]]; then
if [[ "${OLD_MAGISK}" == true ]]; then
ui_print "- Removing sepolicy rule for old Magisk"
rm ${MODPATH}/sepolicy.rule
fi

View File

@ -35,18 +35,15 @@ PATH_PREFIX_LEGACY="/data/user/0/"
sepolicy() {
# 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"
# for built-in apps // TODO: maybe narrow down the target classes
# read module apk file in zygote
supolicy --live "allow zygote apk_data_file * *"
supolicy --live "allow system_server system_server process { execmem }"\
"allow system_server system_server memprotect { mmap_zero }"\
"allow coredomain coredomain process { execmem }"\
"allow coredomain app_data_file * *"\
"attradd { system_app platform_app } mlstrustedsubject"\
"allow zygote apk_data_file * *"
}
if [[ ${ANDROID_SDK} -ge 24 ]]; then
@ -88,12 +85,12 @@ start_log_cather () {
LOG_FILE="${LOG_PATH}/${LOG_FILE_NAME}.log"
PID_FILE="${LOG_PATH}/${LOG_FILE_NAME}.pid"
mkdir -p ${LOG_PATH}
if [[ ${CLEAN_OLD} = true ]]; then
if [[ ${CLEAN_OLD} == true ]]; then
rm "${LOG_FILE}.old"
mv "${LOG_FILE}" "${LOG_FILE}.old"
fi
rm "${LOG_PATH}/${LOG_FILE_NAME}.pid"
if [[ ${START_NEW} = false ]]; then
if [[ ${START_NEW} == false ]]; then
return
fi
touch ${LOG_FILE}
@ -140,13 +137,12 @@ start_bridge_log_catcher () {
start_log_cather error "XSharedPreferences:V EdXposed-Bridge:V" true true
}
chcon -R u:object_r:system_file:s0 "${MODDIR}"
# Backup app_process to avoid bootloop caused by original Xposed replacement
#rm -rf "${MODDIR}/system/bin"
#mkdir "${MODDIR}/system/bin"
#cp -f "/system/bin/app_process32" "${MODDIR}/system/bin/app_process32"
#[[ -f "/system/bin/app_process64" ]] && cp -f "/system/bin/app_process64" "${MODDIR}/system/bin/app_process64"
# Backup app_process to avoid bootloop caused by original Xposed replacement in Android Oreo
# TODO: Magisk mount replace
rm -rf "${MODDIR}/system/bin"
mkdir "${MODDIR}/system/bin"
cp -f "/system/bin/app_process32" "${MODDIR}/system/bin/app_process32"
[[ -f "/system/bin/app_process64" ]] && cp -f "/system/bin/app_process64" "${MODDIR}/system/bin/app_process64"
start_verbose_log_catcher
start_bridge_log_catcher
@ -155,4 +151,6 @@ start_bridge_log_catcher
cp "${MODDIR}/module.prop" "${TARGET}/module.prop"
[[ -f "${MODDIR}/sepolicy.rule" ]] || sepolicy
[[ -f "${MODDIR}/sepolicy.rule" ]] || sepolicy
chcon -R u:object_r:system_file:s0 "${MODDIR}"

View File

@ -6,13 +6,13 @@ REMOVE=false
[[ "$(echo ${MODDIR} | grep sandhook)" != "" ]] && VARIANT="SandHook"
if [[ "${VARIANT}"=="SandHook" ]]; then
if [[ "${VARIANT}" == "SandHook" ]]; then
[[ -f "${MODDIR}/../riru_edxposed/module.prop" ]] || REMOVE=true
else
[[ -f "${MODDIR}/../riru_edxposed_sandhook/module.prop" ]] || REMOVE=true
fi
if [[ "${REMOVE}" = true ]]; then
if [[ "${REMOVE}" == true ]]; then
rm -rf /data/misc/riru/modules/edxp
fi