From 38c75f9908cebfdeb422e7d145ef5e8f9c99b018 Mon Sep 17 00:00:00 2001 From: meowarex Date: Wed, 20 May 2026 22:35:16 +1000 Subject: [PATCH] Fix Manager Patch Failures on Dir skips --- .github/workflows/release.yml | 15 ++++++++------- .../patcher/steps/patch/PatchManifestStep.kt | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9519186..14006ee 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,22 +59,23 @@ jobs: echo "Extracting & merging splits from $tidal_src" workdir=$(mktemp -d) unzip -q "$tidal_src" -d "$workdir" + ls "$workdir" 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 - for split in "$workdir"/split_config.arm64_v8a.apk \ - "$workdir"/split_config.xxhdpi.apk \ - "$workdir"/split_config.en.apk; do + # Merge every split APK's contents into base.apk + for split in "$workdir"/split_*.apk "$workdir"/config.*.apk; do [ -f "$split" ] || continue echo "Merging $(basename "$split")" libdir=$(mktemp -d) unzip -q "$split" -d "$libdir" - # Drop META-INF (signatures) and the split's manifest - rm -rf "$libdir/META-INF" "$libdir/AndroidManifest.xml" - (cd "$libdir" && zip -qr "$OLDPWD/dist/tidal-stock.apk" .) + rm -rf "$libdir/META-INF" "$libdir/AndroidManifest.xml" "$libdir/resources.arsc" + (cd "$libdir" && zip -qrD "$dist_abs" .) rm -rf "$libdir" done rm -rf "$workdir" + echo "Merged tidal-stock.apk size:" + ls -la ./dist/tidal-stock.apk else cp "$tidal_src" ./dist/tidal-stock.apk fi diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/PatchManifestStep.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/PatchManifestStep.kt index 3fcd862..c2dd4e6 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/PatchManifestStep.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/PatchManifestStep.kt @@ -40,6 +40,7 @@ class PatchManifestStep(private val options: PatchOptions) : Step() { ZipReader(apk).use { reader -> ZipWriter(repacked, /* append = */ false).use { writer -> for (name in reader.entryNames) { + if (name.endsWith("/")) continue val bytes = if (name == "AndroidManifest.xml") { patchedManifest } else {