From 2628837156ac24c8a92e27f5373ffd5f38b30a12 Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 1 Jul 2026 13:08:40 +0000 Subject: [PATCH] fix(recipes): move 1.0.2 CAVE_REGION past leftover __oslogstring block `make ipa TARGET_VERSION=1.0.2` failed for the last two caves in the 1.0.2 KiouEditor sites port (PR #7): HomeUtilityPresenter.ctor and UIButtonBase.OnPointerClick landed on top of a residual __oslogstring block that lives at 0x826FFF8..0x8270020 (`%{public}s`, `[%{public}@] `, `%{public}@\0` fragments), which the verify-before-write guard in tools.patch_macho rightly rejected as not-zero-fill. Move CAVE_REGION start from 0x826F5E8 -> 0x8270040 so every cave lands in the verified-zero tail after __oslogstring. Region size stays at 0x8274000 upper bound; new usable window is 0x3FC0 (16 KB) which comfortably fits 34 caves x 84 bytes = 2,856 bytes with headroom for future growth. KiouEngineBridge PR #40 already validated 0x8270040 as the tail-of-__oslogstring border for 1.0.2, so reusing that boundary inherits their by-hand zero-fill check on the same asset. Verified: python -m tools.check_recipes -> OK (61 sites) ruff check recipes/ tools/ -> All checks passed verify_sites vs 1.0.2 IPA -> 33/34 rows OK (only the pre-existing Project.Network.HeaderProvider dump-index miss) make deploy TARGET_VERSION=1.0.2 (KiouForge side) is expected to succeed on the next attempt once this lands and KiouForge bumps the submodule pointer. Co-Authored-By: Claude Opus 4.7 --- recipes/v1_0_2.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes/v1_0_2.py b/recipes/v1_0_2.py index 3563bc4..d9a9d53 100644 --- a/recipes/v1_0_2.py +++ b/recipes/v1_0_2.py @@ -8,7 +8,14 @@ BUILD = 12 # Cave payload region (zero-fill tail of UnityFramework __TEXT). -CAVE_REGION = (0x826F5E8, 0x8274000) +# +# Previously started at 0x826F5E8, but 34 caves x 84 bytes (2,856 B) grew +# past a residual __oslogstring block that lives at 0x826FFF8..0x8270020 +# (`%{public}s`, `[%{public}@] `, `%{public}@\0` fragments). The +# verify-before-write guard in tools.patch_macho rightly flagged this as +# not-zero-fill. Move the region start past the block; KiouEngineBridge +# PR #40 already validated 0x8270040 as the tail-of-__oslogstring border. +CAVE_REGION = (0x8270040, 0x8274000) # Observer dispatcher slot — chinlan caves load this single 8-byte pointer. HOOK_SLOT_RVA = 0x8F90C80