add: machikado per architecture

This commit makes the building system create one machikado per arch, from 2 to 4, so that integrity can be checked properly in 64-bit only and 32-bit only devices.
This commit is contained in:
ThePedroo
2025-04-29 22:44:43 -03:00
parent 96123aa53c
commit 68f1b1fb35
2 changed files with 24 additions and 33 deletions

View File

@@ -112,49 +112,35 @@ androidComponents.onVariants { variant ->
}
}
fun getSign(name: String, abi32: String, abi64: String) {
fun getSign(name: String, abi: String, is64Bit: Boolean) {
val set = TreeSet<Pair<File, File?>> { o1, o2 ->
o1.first.path.replace("\\", "/")
.compareTo(o2.first.path.replace("\\", "/"))
}
val archSuffix = if (is64Bit) "64" else "32"
val pathSuffix = if (is64Bit) "lib64" else "lib"
set.add(Pair(root.file("module.prop").asFile, null))
set.add(Pair(root.file("sepolicy.rule").asFile, null))
set.add(Pair(root.file("post-fs-data.sh").asFile, null))
set.add(Pair(root.file("service.sh").asFile, null))
set.add(
Pair(
root.file("lib/libzygisk.so").asFile,
root.file("lib/$abi32/libzygisk.so").asFile
root.file("$pathSuffix/libzygisk.so").asFile,
root.file("lib/$abi/libzygisk.so").asFile
)
)
set.add(
Pair(
root.file("lib64/libzygisk.so").asFile,
root.file("lib/$abi64/libzygisk.so").asFile
root.file("bin/zygisk-ptrace$archSuffix").asFile,
root.file("lib/$abi/libzygisk_ptrace.so").asFile
)
)
set.add(
Pair(
root.file("bin/zygisk-ptrace32").asFile,
root.file("lib/$abi32/libzygisk_ptrace.so").asFile
)
)
set.add(
Pair(
root.file("bin/zygisk-ptrace64").asFile,
root.file("lib/$abi64/libzygisk_ptrace.so").asFile
)
)
set.add(
Pair(
root.file("bin/zygiskd32").asFile,
root.file("bin/$abi32/zygiskd").asFile
)
)
set.add(
Pair(
root.file("bin/zygiskd64").asFile,
root.file("bin/$abi64/zygiskd").asFile
root.file("bin/zygiskd$archSuffix").asFile,
root.file("bin/$abi/zygiskd").asFile
)
)
sig.initSign(privKey)
@@ -164,8 +150,11 @@ androidComponents.onVariants { variant ->
signFile.appendBytes(publicKey)
}
getSign("machikado.arm", "armeabi-v7a", "arm64-v8a")
getSign("machikado.x86", "x86", "x86_64")
getSign("machikado.arm64", "arm64-v8a", true)
getSign("machikado.arm", "armeabi-v7a", false)
getSign("machikado.x86_64", "x86_64", true)
getSign("machikado.x86", "x86", false)
} else {
println("no private_key found, this build will not be signed")
root.file("machikado.arm").asFile.createNewFile()

View File

@@ -139,6 +139,8 @@ if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
extract "$ZIPFILE" 'lib/x86/libzygisk.so' "$MODPATH/lib" true
extract "$ZIPFILE" 'lib/x86/libzygisk_ptrace.so' "$MODPATH/bin" true
mv "$MODPATH/bin/libzygisk_ptrace.so" "$MODPATH/bin/zygisk-ptrace32"
extract "$ZIPFILE" 'machikado.x86' "$MODPATH" true
fi
if [ "$SUPPORTS_64BIT" = true ]; then
@@ -148,10 +150,9 @@ if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
extract "$ZIPFILE" 'lib/x86_64/libzygisk.so' "$MODPATH/lib64" true
extract "$ZIPFILE" 'lib/x86_64/libzygisk_ptrace.so' "$MODPATH/bin" true
mv "$MODPATH/bin/libzygisk_ptrace.so" "$MODPATH/bin/zygisk-ptrace64"
fi
extract "$ZIPFILE" 'machikado.x86' "$MODPATH" true
mv "$MODPATH/machikado.x86" "$MODPATH/machikado"
extract "$ZIPFILE" 'machikado.x86_64' "$MODPATH" true
fi
else
if [ "$SUPPORTS_32BIT" = true ]; then
ui_print "- Extracting arm libraries"
@@ -160,6 +161,8 @@ else
extract "$ZIPFILE" 'lib/armeabi-v7a/libzygisk.so' "$MODPATH/lib" true
extract "$ZIPFILE" 'lib/armeabi-v7a/libzygisk_ptrace.so' "$MODPATH/bin" true
mv "$MODPATH/bin/libzygisk_ptrace.so" "$MODPATH/bin/zygisk-ptrace32"
extract "$ZIPFILE" 'machikado.arm' "$MODPATH" true
fi
if [ "$SUPPORTS_64BIT" = true ]; then
@@ -169,10 +172,9 @@ else
extract "$ZIPFILE" 'lib/arm64-v8a/libzygisk.so' "$MODPATH/lib64" true
extract "$ZIPFILE" 'lib/arm64-v8a/libzygisk_ptrace.so' "$MODPATH/bin" true
mv "$MODPATH/bin/libzygisk_ptrace.so" "$MODPATH/bin/zygisk-ptrace64"
fi
extract "$ZIPFILE" 'machikado.arm' "$MODPATH" true
mv "$MODPATH/machikado.arm" "$MODPATH/machikado"
extract "$ZIPFILE" 'machikado.arm64' "$MODPATH" true
fi
fi
ui_print "- Setting permissions"