download: fetch the ipa, inject metadata + sinfs#7
Merged
Conversation
end-to-end download path. tap a version in the timeline -> button enqueues a DownloadTask -> service walks it through download/patch/done. tab two shows the live queue with progress bars. * Download.run hits volumeStoreDownloadProduct, returns DownloadArtifact (signed ipa URL + sinfs + metadata blob with apple-id/userName patched in) * DownloadEngine: URLSessionDownloadTask + delegate streams to disk and emits AsyncStream<Event> (progress / finished / failed). ios 14 baseline so URLSession.bytes is avoided. * IPAPatcher: ZIPFoundation Archive(.update). reads SC_Info/Manifest.plist if present (multi-binary case) else reads Info.plist for the legacy single-binary path; replaces iTunesMetadata.plist on every run. * DownloadService: @mainactor queue. one task at a time so storefront rate-limits stay happy. cancel + remove + restart on cancel. * FileLayout pins downloads to /var/mobile/Media/EvilStore/Downloads/. * DownloadsView: empty state, in-flight rows with progress, done rows with localPath; cancel/remove buttons per row. * AppDetailView: timeline rows now have a real Download button that enqueues into DownloadService. ZIPFoundation 0.9.19 added as the first SPM dep. build_tipa.sh now walks Frameworks/ + PlugIns/ and ldid-fakesigns every Mach-O so the embedded swift framework passes amfi at launch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what
end-to-end download path. tap a version in the timeline -> Download
button enqueues a task -> service walks it through download/patch/done.
tab two (Downloads) shows the live queue with progress bars.
changes
signed ipa URL + sinfs + iTunesMetadata blob with apple-id patched in)
(ios 14 baseline; URLSession.bytes is iOS 15+)
multi-binary apps, info-plist path for legacy single-binary
new dep
ZIPFoundation 0.9.19. build_tipa.sh now ldid-fakesigns every Mach-O in
Frameworks/ + PlugIns/ so the embedded swift framework passes amfi.
test
-> patching spinner -> "ready to install" with the local path
housekeeping
replaces #6 which got auto-closed when its base branch
(feat/m2.5-version-metadata) was deleted on merge of #5.