diff --git a/README.md b/README.md index 2829c27..ce0cc69 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,14 @@ -# Kanade — Kernel-Agnostic Native ARM64 Dylib Embedder +

Kanade

+ +

+ Kanade icon +

+ +

+ Kernel-Agnostic Native + ARM64 Dylib Embedder — host-side + Mach-O patching for IPA-Patch tweaks. +

license @@ -72,6 +82,35 @@ assets/*/dump.cs.index.json .cache/ ``` +## The input IPA must be decrypted + +`build_patched_ipa.sh --input` (and `verify_sites --ipa`) both expect a +**decrypted** IPA — the recipe pipeline cannot operate on anything else. + +Every App Store app ships **FairPlay-encrypted**: the main executable and its +frameworks are stored as ciphertext on disk, and the kernel only decrypts +them in memory at launch, on the device the purchase is tied to. Kanade +patches the target Mach-O **on disk, before signing** — it locates each hook +site by its machine-code prologue and overwrites it with `B `. Against +an encrypted binary those bytes are meaningless ciphertext, so the recipe can +neither find nor patch them. The input **must be decrypted first**. + +A *decrypted* IPA is one whose Mach-O slices have had the FairPlay layer +stripped — the `cryptid` flag cleared and the encrypted pages dumped in their +plaintext form. You make one **once per app version**, on a device that can +already run the target app: + +- **[TrollDecrypt](https://github.com/donato-fiore/TrollDecrypt)** (TrollStore) + — dumps a decrypted `.ipa` straight to the Files app. Easiest. +- **[palera1n](https://palera.in/) + Filza** — jailbreak, then pull the + decrypted bundle off disk. +- Any on-device FairPlay dumper works; the only requirement is that the + resulting `.ipa` is decrypted. + +Drop the result at `assets//AppName-.ipa` (gitignored). +Kanade ships only the tooling — never the target app — so you always supply +your own legally-obtained, decrypted copy. + ## Usage Add both submodules to your consumer project: diff --git a/icon.webp b/icon.webp new file mode 100644 index 0000000..52060a6 Binary files /dev/null and b/icon.webp differ