Verify files during installation
This commit is contained in:
parent
8482237918
commit
a0f711249d
|
|
@ -1,8 +1,18 @@
|
||||||
import org.apache.tools.ant.filters.FixCrLfFilter
|
import org.apache.tools.ant.filters.FixCrLfFilter
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
|
|
||||||
|
import java.security.MessageDigest
|
||||||
|
|
||||||
apply plugin: 'com.android.library'
|
apply plugin: 'com.android.library'
|
||||||
|
|
||||||
|
static def calcSha256(file) {
|
||||||
|
def md = MessageDigest.getInstance("SHA-256")
|
||||||
|
file.eachByte 4096, { bytes, size ->
|
||||||
|
md.update(bytes, 0, size);
|
||||||
|
}
|
||||||
|
return md.digest().encodeHex()
|
||||||
|
}
|
||||||
|
|
||||||
// Values set here will be overriden by AppVeyor, feel free to modify during development.
|
// Values set here will be overriden by AppVeyor, feel free to modify during development.
|
||||||
def buildVersionName = 'v0.5.0.8'
|
def buildVersionName = 'v0.5.0.8'
|
||||||
def buildVersionCode = 233
|
def buildVersionCode = 233
|
||||||
|
|
@ -178,6 +188,13 @@ afterEvaluate {
|
||||||
from "$libPathRelease/x86_64"
|
from "$libPathRelease/x86_64"
|
||||||
into "$zipPathMagiskRelease/system_x86/lib64"
|
into "$zipPathMagiskRelease/system_x86/lib64"
|
||||||
}
|
}
|
||||||
|
// generate sha1sum
|
||||||
|
fileTree(zipPathMagiskRelease).matching {
|
||||||
|
exclude "README.md", "META-INF"
|
||||||
|
}.visit { f ->
|
||||||
|
if (f.directory) return
|
||||||
|
file(f.file.path + ".sha256sum").text = calcSha256(f.file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,9 +45,9 @@ JAR_EDDALVIKDX="$(getRandomNameExist 8 "" ".dex" "
|
||||||
JAR_EDDEXMAKER="$(getRandomNameExist 8 "" ".dex" "
|
JAR_EDDEXMAKER="$(getRandomNameExist 8 "" ".dex" "
|
||||||
/system/framework
|
/system/framework
|
||||||
").dex"
|
").dex"
|
||||||
#JAR_EDCONFIG="$(getRandomNameExist 8 "" ".jar" "
|
JAR_EDCONFIG="$(getRandomNameExist 8 "" ".jar" "
|
||||||
#/system/framework
|
/system/framework
|
||||||
#").jar"
|
").jar"
|
||||||
LIB_RIRU_EDXP="libriru_${RIRU_EDXP}.so"
|
LIB_RIRU_EDXP="libriru_${RIRU_EDXP}.so"
|
||||||
LIB_SANDHOOK_EDXP="lib$(getRandomNameExist 13 "lib" ".so" "
|
LIB_SANDHOOK_EDXP="lib$(getRandomNameExist 13 "lib" ".so" "
|
||||||
/system/lib
|
/system/lib
|
||||||
|
|
@ -207,12 +207,23 @@ check_android_version() {
|
||||||
# fi
|
# fi
|
||||||
#}
|
#}
|
||||||
|
|
||||||
# extract riru.sh
|
|
||||||
unzip -o "$ZIPFILE" riru.sh -d "$MODPATH" >&2
|
|
||||||
. $MODPATH/riru.sh
|
|
||||||
|
|
||||||
ui_print "- EdXposed Version ${VERSION}"
|
ui_print "- EdXposed Version ${VERSION}"
|
||||||
|
|
||||||
|
# extract verify.sh
|
||||||
|
ui_print "- Extracting verify.sh"
|
||||||
|
unzip -o "$ZIPFILE" 'verify.sh' -d "$TMPDIR" >&2
|
||||||
|
if [ ! -f "$TMPDIR/verify.sh" ]; then
|
||||||
|
ui_print "*********************************************************"
|
||||||
|
ui_print "! Unable to extract verify.sh!"
|
||||||
|
ui_print "! This zip may be corrupted, please try downloading again"
|
||||||
|
abort "*********************************************************"
|
||||||
|
fi
|
||||||
|
. $TMPDIR/verify.sh
|
||||||
|
|
||||||
|
# extract riru.sh
|
||||||
|
extract "$ZIPFILE" riru.sh "$MODPATH"
|
||||||
|
. $MODPATH/riru.sh
|
||||||
|
|
||||||
#check_persist
|
#check_persist
|
||||||
check_android_version
|
check_android_version
|
||||||
check_magisk_version
|
check_magisk_version
|
||||||
|
|
@ -220,21 +231,42 @@ check_riru_version
|
||||||
edxp_check_architecture
|
edxp_check_architecture
|
||||||
|
|
||||||
ui_print "- Extracting module files"
|
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
|
extract "${ZIPFILE}" 'EdXposed.apk' "${MODPATH}"
|
||||||
|
extract "${ZIPFILE}" 'module.prop' "${MODPATH}"
|
||||||
|
extract "${ZIPFILE}" 'system.prop' "${MODPATH}"
|
||||||
|
extract "${ZIPFILE}" 'sepolicy.rule' "${MODPATH}"
|
||||||
|
extract "${ZIPFILE}" 'post-fs-data.sh' "${MODPATH}"
|
||||||
|
extract "${ZIPFILE}" 'uninstall.sh' "${MODPATH}"
|
||||||
|
|
||||||
if [[ "${ARCH}" == "x86" || "${ARCH}" == "x64" ]]; then
|
extract "${ZIPFILE}" 'system/framework/edconfig.jar' "${MODPATH}"
|
||||||
ui_print "- Replacing x86 and x86_64 libraries"
|
extract "${ZIPFILE}" 'system/framework/eddalvikdx.dex' "${MODPATH}"
|
||||||
unzip -o "${ZIPFILE}" 'system_x86/*' -d "${MODPATH}" >&2
|
extract "${ZIPFILE}" 'system/framework/eddexmaker.dex' "${MODPATH}"
|
||||||
rm -rf "${MODPATH}/system/lib"
|
extract "${ZIPFILE}" 'system/framework/edxp.dex' "${MODPATH}"
|
||||||
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
|
if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
|
||||||
ui_print "- Removing 64-bit libraries"
|
ui_print "- Extracting x86 libraries"
|
||||||
rm -rf "${MODPATH}/system/lib64"
|
extract "$ZIPFILE" 'system_x86/lib/libriru_edxp.so' "$MODPATH"
|
||||||
|
mv "$MODPATH/system_x86/" "$MODPATH/system/"
|
||||||
|
|
||||||
|
if [ "$IS64BIT" = true ]; then
|
||||||
|
ui_print "- Extracting x64 libraries"
|
||||||
|
extract "$ZIPFILE" 'system_x86/lib64/libriru_edxp.so' "$MODPATH"
|
||||||
|
mv "$MODPATH/system_x86/lib64" "$MODPATH/system/lib64"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ui_print "- Extracting arm libraries"
|
||||||
|
extract "$ZIPFILE" 'system/lib/libriru_edxp.so' "$MODPATH"
|
||||||
|
if [[ "${VARIANTS}" == "SandHook" ]]; then
|
||||||
|
extract "$ZIPFILE" 'system/lib/libsandhook-native.so' "$MODPATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$IS64BIT" = true ]; then
|
||||||
|
ui_print "- Extracting arm64 libraries"
|
||||||
|
extract "$ZIPFILE" 'system/lib64/libriru_edxp.so' "$MODPATH"
|
||||||
|
if [[ "${VARIANTS}" == "SandHook" ]]; then
|
||||||
|
extract "$ZIPFILE" 'system/lib/libsandhook-native.so' "$MODPATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$(pm path org.meowcat.edxposed.manager)" == "" && "$(pm path de.robv.android.xposed.installer)" == "" ]]; then
|
if [[ "$(pm path org.meowcat.edxposed.manager)" == "" && "$(pm path de.robv.android.xposed.installer)" == "" ]]; then
|
||||||
|
|
@ -266,13 +298,11 @@ ui_print "- Copying framework libraries"
|
||||||
mv "${MODPATH}/system/framework/eddalvikdx.dex" "${MODPATH}/system/framework/${JAR_EDDALVIKDX}"
|
mv "${MODPATH}/system/framework/eddalvikdx.dex" "${MODPATH}/system/framework/${JAR_EDDALVIKDX}"
|
||||||
mv "${MODPATH}/system/framework/edxp.dex" "${MODPATH}/system/framework/${JAR_EDXP}"
|
mv "${MODPATH}/system/framework/edxp.dex" "${MODPATH}/system/framework/${JAR_EDXP}"
|
||||||
mv "${MODPATH}/system/framework/eddexmaker.dex" "${MODPATH}/system/framework/${JAR_EDDEXMAKER}"
|
mv "${MODPATH}/system/framework/eddexmaker.dex" "${MODPATH}/system/framework/${JAR_EDDEXMAKER}"
|
||||||
#mv "${MODPATH}/system/framework/edconfig.jar" "${MODPATH}/system/framework/${JAR_EDCONFIG}"
|
mv "${MODPATH}/system/framework/edconfig.jar" "${MODPATH}/system/framework/${JAR_EDCONFIG}"
|
||||||
mv "${MODPATH}/system/lib/libriru_edxp.so" "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
mv "${MODPATH}/system/lib/libriru_edxp.so" "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
||||||
mv "${MODPATH}/system/lib/libsandhook-native.so" "${MODPATH}/system/lib/libsandhook-native.so"
|
|
||||||
|
|
||||||
if [[ "${IS64BIT}" == true ]]; then
|
if [[ "${IS64BIT}" == true ]]; then
|
||||||
mv "${MODPATH}/system/lib64/libriru_edxp.so" "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
mv "${MODPATH}/system/lib64/libriru_edxp.so" "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
||||||
mv "${MODPATH}/system/lib64/libsandhook-native.so" "${MODPATH}/system/lib64/libsandhook-native.so"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${VARIANTS}" == "SandHook" ]]; then
|
if [[ "${VARIANTS}" == "SandHook" ]]; then
|
||||||
|
|
@ -285,13 +315,13 @@ fi
|
||||||
ui_print "- Resetting libraries path"
|
ui_print "- Resetting libraries path"
|
||||||
|
|
||||||
sed -i 's:/system/framework/edxp.dex\:/system/framework/eddalvikdx.dex\:/system/framework/eddexmaker.dex:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
sed -i 's:/system/framework/edxp.dex\:/system/framework/eddalvikdx.dex\:/system/framework/eddexmaker.dex:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
||||||
#sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
||||||
sed -i 's:libriru_edxp.so:'"${LIB_RIRU_EDXP}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
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}"
|
sed -i 's:libsandhook.edxp.so:'"${LIB_SANDHOOK_EDXP}"':g' "${MODPATH}/system/lib/${LIB_RIRU_EDXP}"
|
||||||
|
|
||||||
if [[ "${IS64BIT}" == true ]]; then
|
if [[ "${IS64BIT}" == true ]]; then
|
||||||
sed -i 's:/system/framework/edxp.dex\:/system/framework/eddalvikdx.dex\:/system/framework/eddexmaker.dex:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
sed -i 's:/system/framework/edxp.dex\:/system/framework/eddalvikdx.dex\:/system/framework/eddexmaker.dex:/system/framework/'"${JAR_EDXP}"'\:/system/framework/'"${JAR_EDDALVIKDX}"'\:/system/framework/'"${JAR_EDDEXMAKER}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
||||||
# sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
sed -i 's:/system/framework/edconfig.jar:/system/framework/'"${JAR_EDCONFIG}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
||||||
sed -i 's:libriru_edxp.so:'"${LIB_RIRU_EDXP}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
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}"
|
sed -i 's:libsandhook.edxp.so:'"${LIB_SANDHOOK_EDXP}"':g' "${MODPATH}/system/lib64/${LIB_RIRU_EDXP}"
|
||||||
fi
|
fi
|
||||||
|
|
@ -309,11 +339,10 @@ fi
|
||||||
|
|
||||||
# extract Riru files
|
# extract Riru files
|
||||||
ui_print "- Extracting Riru files"
|
ui_print "- Extracting Riru files"
|
||||||
ui_print $RIRU_TARGET
|
|
||||||
[ -d "$RIRU_TARGET" ] || mkdir -p "$RIRU_TARGET" || abort "! Can't create $RIRU_TARGET"
|
[ -d "$RIRU_TARGET" ] || mkdir -p "$RIRU_TARGET" || abort "! Can't create $RIRU_TARGET"
|
||||||
|
|
||||||
rm -f "$RIRU_TARGET/module.prop.new"
|
rm -f "$RIRU_TARGET/module.prop.new"
|
||||||
unzip -o "$ZIPFILE" 'riru/module.prop.new' -d "$RIRU_TARGET" >&2
|
extract "$ZIPFILE" 'riru/module.prop.new' "$RIRU_TARGET"
|
||||||
mv "$RIRU_TARGET/riru/module.prop.new" "$RIRU_TARGET/module.prop"
|
mv "$RIRU_TARGET/riru/module.prop.new" "$RIRU_TARGET/module.prop"
|
||||||
rm -rf "$RIRU_TARGET/riru/"
|
rm -rf "$RIRU_TARGET/riru/"
|
||||||
set_perm "$RIRU_TARGET/module.prop" 0 0 0600 $RIRU_SECONTEXT
|
set_perm "$RIRU_TARGET/module.prop" 0 0 0600 $RIRU_SECONTEXT
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
TMPDIR_FOR_VERIFY="$TMPDIR/.vunzip"
|
||||||
|
mkdir "$TMPDIR_FOR_VERIFY"
|
||||||
|
|
||||||
|
abort_verify() {
|
||||||
|
ui_print "*********************************************************"
|
||||||
|
ui_print "! $1"
|
||||||
|
ui_print "! This zip may be corrupted, please try downloading again"
|
||||||
|
abort "*********************************************************"
|
||||||
|
}
|
||||||
|
|
||||||
|
# extract <zip> <file> <target dir> <junk paths>
|
||||||
|
extract() {
|
||||||
|
zip=$1
|
||||||
|
file=$2
|
||||||
|
dir=$3
|
||||||
|
junk_paths=$4
|
||||||
|
[ -z "$junk_paths" ] && junk_paths=false
|
||||||
|
opts="-o"
|
||||||
|
[ $junk_paths = true ] && opts="-oj"
|
||||||
|
|
||||||
|
file_path=""
|
||||||
|
hash_path=""
|
||||||
|
if [ $junk_paths = true ]; then
|
||||||
|
file_path="$dir/$(basename "$file")"
|
||||||
|
hash_path="$TMPDIR_FOR_VERIFY/$(basename "$file").sha256sum"
|
||||||
|
else
|
||||||
|
file_path="$dir/$file"
|
||||||
|
hash_path="$TMPDIR_FOR_VERIFY/$file.sha256sum"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unzip $opts "$zip" "$file" -d "$dir" >&2
|
||||||
|
[ -f "$file_path" ] || abort_verify "$file not exists"
|
||||||
|
|
||||||
|
unzip $opts "$zip" "$file.sha256sum" -d "$TMPDIR_FOR_VERIFY" >&2
|
||||||
|
[ -f "$hash_path" ] || abort_verify "$file.sha256sum not exists"
|
||||||
|
|
||||||
|
(echo "$(cat "$hash_path") $file_path" | sha256sum -c -s -) || abort_verify "Failed to verify $file"
|
||||||
|
ui_print "- Verified $file" >&1
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue