download: fetch the ipa, inject metadata + sinfs#6
Closed
Evil0ctal wants to merge 1 commit into
Closed
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.
why
versions you have but the App Store will not give you any more
so M4's TrollStore install handoff has something to install
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
next
m4 = TrollStoreBridge: tap "install" on a done row, hand the .ipa to
TrollStore via apple-magnifier://install?url=file:///...
housekeeping
base branch is feat/m2.5-version-metadata (not main) so this PR ladders
on top of m2.5. when m2.5 merges, github will retarget the base to main
automatically.