Fix Manager Patch Failures on Dir skips

This commit is contained in:
2026-05-20 22:35:16 +10:00
parent c4f56bcc5b
commit 38c75f9908
2 changed files with 9 additions and 7 deletions
+8 -7
View File
@@ -59,22 +59,23 @@ jobs:
echo "Extracting & merging splits from $tidal_src" echo "Extracting & merging splits from $tidal_src"
workdir=$(mktemp -d) workdir=$(mktemp -d)
unzip -q "$tidal_src" -d "$workdir" unzip -q "$tidal_src" -d "$workdir"
ls "$workdir"
cp "$workdir/base.apk" ./dist/tidal-stock.apk cp "$workdir/base.apk" ./dist/tidal-stock.apk
dist_abs=$(realpath ./dist/tidal-stock.apk)
# Merge native libs from arm64-v8a split into base.apk # Merge every split APK's contents into base.apk
for split in "$workdir"/split_config.arm64_v8a.apk \ for split in "$workdir"/split_*.apk "$workdir"/config.*.apk; do
"$workdir"/split_config.xxhdpi.apk \
"$workdir"/split_config.en.apk; do
[ -f "$split" ] || continue [ -f "$split" ] || continue
echo "Merging $(basename "$split")" echo "Merging $(basename "$split")"
libdir=$(mktemp -d) libdir=$(mktemp -d)
unzip -q "$split" -d "$libdir" unzip -q "$split" -d "$libdir"
# Drop META-INF (signatures) and the split's manifest rm -rf "$libdir/META-INF" "$libdir/AndroidManifest.xml" "$libdir/resources.arsc"
rm -rf "$libdir/META-INF" "$libdir/AndroidManifest.xml" (cd "$libdir" && zip -qrD "$dist_abs" .)
(cd "$libdir" && zip -qr "$OLDPWD/dist/tidal-stock.apk" .)
rm -rf "$libdir" rm -rf "$libdir"
done done
rm -rf "$workdir" rm -rf "$workdir"
echo "Merged tidal-stock.apk size:"
ls -la ./dist/tidal-stock.apk
else else
cp "$tidal_src" ./dist/tidal-stock.apk cp "$tidal_src" ./dist/tidal-stock.apk
fi fi
@@ -40,6 +40,7 @@ class PatchManifestStep(private val options: PatchOptions) : Step() {
ZipReader(apk).use { reader -> ZipReader(apk).use { reader ->
ZipWriter(repacked, /* append = */ false).use { writer -> ZipWriter(repacked, /* append = */ false).use { writer ->
for (name in reader.entryNames) { for (name in reader.entryNames) {
if (name.endsWith("/")) continue
val bytes = if (name == "AndroidManifest.xml") { val bytes = if (name == "AndroidManifest.xml") {
patchedManifest patchedManifest
} else { } else {