|
|
|
@ -140,12 +140,11 @@ detect_bootmode () {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
grep_prop() {
|
|
|
|
|
REGEX="${1}"
|
|
|
|
|
shift
|
|
|
|
|
FILES="${@}"
|
|
|
|
|
[ -z "${@}" ] && FILES='/system/build.prop'
|
|
|
|
|
sed -n "s/^${REGEX}=//p" ${FILES} | \
|
|
|
|
|
head -n 1
|
|
|
|
|
[ -f /vendor/build.prop ] && \
|
|
|
|
|
FILES="/system/build.prop /vendor/build.prop" || \
|
|
|
|
|
FILES="/system/build.prop"
|
|
|
|
|
|
|
|
|
|
sed -n "s/^${1}=//p" ${FILES} | head -n 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
grep_cmdline() {
|
|
|
|
@ -257,16 +256,16 @@ detect_sdk () {
|
|
|
|
|
[ "${SDK_VERSION}" -lt 16 ] && \
|
|
|
|
|
error "Android versions before Jelly Bean are not supported"
|
|
|
|
|
|
|
|
|
|
if [ "${SDK_VERSION}" -gt 25 ]; then
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_26.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_26.dex"
|
|
|
|
|
elif [ "${SDK_VERSION}" -gt 23 ]; then
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_25.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_25.dex"
|
|
|
|
|
else
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_23.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_23.dex"
|
|
|
|
|
fi
|
|
|
|
|
if [ "${SDK_VERSION}" -gt 25 ]; then
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_26.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_26.dex"
|
|
|
|
|
elif [ "${SDK_VERSION}" -gt 23 ]; then
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_25.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_25.dex"
|
|
|
|
|
else
|
|
|
|
|
BAKSMALI="${BASEDIR}/baksmali_23.dex"
|
|
|
|
|
SMALI="${BASEDIR}/smali_23.dex"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
PATCH_CORE="${BASEDIR}/core_services.jar.dex"
|
|
|
|
|
PATCH_UNLP="${BASEDIR}/unifiednlp_services.jar.dex"
|
|
|
|
@ -282,6 +281,25 @@ detect_sdk () {
|
|
|
|
|
[ "${SDK_VERSION}" -gt 21 ] && DEX_OPTS="--multi-dex-threaded"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
##########################################################################################
|
|
|
|
|
# by @ale5000
|
|
|
|
|
##########################################################################################
|
|
|
|
|
|
|
|
|
|
search_fake_package_signature () {
|
|
|
|
|
PERMISSION=android.permission.FAKE_PACKAGE_SIGNATURE
|
|
|
|
|
PERMISSION_OD=$(echo -n "${PERMISSION}" | od -A n -t x1 | tr -d '\n' | sed -e 's/^ //g;s/ /00/g')
|
|
|
|
|
HAS_FAKESIGN=false
|
|
|
|
|
|
|
|
|
|
FW_RES_DIR="${TMPDIR}/framework-res"
|
|
|
|
|
mkdir -p "${FW_RES_DIR}"
|
|
|
|
|
unzip -o /system/framework/framework-res.apk -d "${FW_RES_DIR}"
|
|
|
|
|
|
|
|
|
|
grep -qF "${PERMISSION}" "${FW_RES_DIR}/AndroidManifest.xml" && HAS_FAKESIGN=true
|
|
|
|
|
od -A n -t x1 "${FW_RES_DIR}/AndroidManifest.xml" | tr -d ' \n' | grep -qF "${PERMISSION_OD}" && HAS_FAKESIGN=true
|
|
|
|
|
|
|
|
|
|
${HAS_FAKESIGN} && return 0 || return 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
##########################################################################################
|
|
|
|
|
# Magisk Functions
|
|
|
|
|
##########################################################################################
|
|
|
|
|