chore: release v0.2.0 - #20
Merged
Merged
Conversation
Pin height=180 alongside width (icon is square) so the header reserves space before the image loads, matching the Chinlan README. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(build_patched_ipa): name output after the input IPA The default output name was derived from the consumer dylib basename (e.g. KiouEngineBridge-patched.ipa), which loses the target app identity and version. Derive it from the input IPA instead so Kiou-1.0.1.ipa yields Kiou-1.0.1-patched.ipa — easier to tell apart when sideloading multiple versions. --output still overrides the default; only the auto-name changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(build_patched_ipa): strip .ipa case-insensitively Per review: the literal .ipa suffix was only matched lowercase, so an input named Foo.IPA produced Foo.IPA-patched.ipa. Use the bash glob pattern [Ii][Pp][Aa] so any casing is stripped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
build_patched_ipa.sh assumed the hook target lived at `Payload/<name>.app/Frameworks/<FRAMEWORK>.framework/<FRAMEWORK>`, which works for Unity-style consumers (KiouEditor, KiouKifExporter) whose hook sites are in UnityFramework but breaks for pure Swift / Objective-C apps whose hook sites live directly in the CFBundle executable. When --framework points at a Mach-O that doesn't exist under Frameworks/ but does exist at the .app root, treat it as the main executable instead. Existing Unity consumers see no behaviour change (their framework path exists, so the fallback branch is never taken). PiyoShot (targeting PiyoShogi.app/PiyoShogi) is the first consumer of the new path. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* feat(tools): add TrollStore deploy script Shipping a patched IPA to a device was a manual scp + ssh dance, and two device-specific gotchas kept biting: trollstorehelper cannot read /tmp (error 166), and its location differs between TrollStore and TrollStore Lite installs. deploy.sh stages into /var/mobile/Documents with a chown to mobile, auto-discovers the helper while filtering out stale PersistenceHelper leftovers, kills the running process so the new binary actually dyld_loads, and tolerates the ssh exit 255 that a mid-install SpringBoard restart produces. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(tools): add recipe porting and field-offset diff tooling port_recipe re-resolves a recipe's SITES table against a new target's dump index, rewriting the RVA and prologue columns while preserving row order. That order is load-bearing: cave payloads are allocated in declaration order while the dispatcher indexes by hook id, so the two only agree when position equals id. verify_offsets diffs il2cpp field offsets between two dump.cs files. Prologue checks catch a moved method, but nothing catches a moved field — a class that gains a member above the one a hook reads silently shifts every offset below it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: tkgstrator <tkgstrator@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Minor bump: this release adds the TrollStore deploy script, port_recipe and verify_offsets, plus the main-executable fallback when a framework is absent. All new capability, no breaking change. Co-authored-by: tkgstrator <tkgstrator@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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
Promotes
developtomasteras v0.2.0.Contents
Added
tools/deploy.sh— TrollStore IPA deploy: scp to the device,trollstorehelper install, relaunch. Keeps TrollStore Liteauto-discovery and ssh-255 tolerance out of consumer Makefiles.
tools/port_recipe.py— re-resolves a recipe'sSITEStable againsta new target's dump index, rewriting the RVA and prologue columns while
preserving row order. That order is load-bearing: cave payloads are
allocated in declaration order while the dispatcher indexes by hook id,
so the two only agree when position equals id.
tools/verify_offsets.py— diffs il2cpp field offsets between twodump.csfiles. Prologue checks catch a moved method, but nothingcatches a moved field, and a class that gains a member above the one a
hook reads silently shifts every offset below it.
Fixed
build_patched_ipanames its output after the input IPA.Test plan
uv run pytest— 89 passeduv run ruff check tools tests— cleanport_recipe/verify_offsetsexercised end-to-end producing theKIOU 1.1.0 recipe now merged in KIOU-Hook
🤖 Generated with Claude Code