Repository navigation
Conversation
…a8b0b542991e The profile merged in YuKongA#244 leaves kernel_phys_load / kernel_phys_offset at null. On this kernel the MediaTek fallback resolves to 0x80000000 for the load while phys_offset keeps the Qualcomm P0_PHYS_OFFSET of 0x80000000, so delta comes out 0 by coincidence, and the extractor refuses to confirm it: warning: _text=0xffffffc008000000 does not match the mtk DRAM-base mapping; kernel_phys_load left unset so the runtime derives it Pin both fields to the measured DRAM-base mapping (0x40000000 each, delta 0) so the direct-map alias of an image offset is PAGE_OFFSET + offset. This kernel places _text at MTK_VADDR_BASE + 0x08000000 in the virtual layout, which is what makes the VA-based check warn, but its physical load offset is 0. Evidence on an Infinix X6879 (MT6788, same uname -r): - console-ramoops, identical in 33/33 OOPS: "PHYS_OFFSET: 0x40000000" - runtime: selinux_enforcing (+0x225B820) resolves to 0xffffff800225b820 and init_cred (+0x2031AA8) to 0xffffff8002031aa8, and the credential install yields uid=0; with delta = 0x08000000 both writes miss by 128 MB Route, offset, task_struct and the include lines are untouched.
|
Device-side evidence for the values this PR pins. ReSukiSU reports the manager up with the KernelSU LKM late-loaded on the exact kernel this profile targets: Read from the screenshot:
How this connects to the two lines in this PR: the credential stage of the run resolved Root here came from the exploit, not from a patched boot image: the bootloader stays locked and I have deliberately not added a |
|
Superseded by #315, which carries the same value fix plus the runtime evidence from a real run on Infinix X6879 (MT6788): the resolver reports Closing this one so there is a single PR for the change. Thanks for taking a look. |

The profile merged in #244 leaves
kernel_phys_load/kernel_phys_offsetatnull. On this kernel the MediaTek fallback derivation resolves to0x80000000for the load whilephys_offsetkeeps the QualcommP0_PHYS_OFFSET = 0x80000000, so the difference is0— correct, but only by coincidence, and the extractor refuses to confirm it:Setting both fields explicitly pins the mapping to the measured values instead of relying on that coincidence.
Change
Only the difference reaches the translation (
direct = (kernel_phys_load + image_offset - kernel_phys_offset) | P0_PAGE_OFFSET), sodelta = 0and the direct-map alias of an image offset is simplyPAGE_OFFSET + offset. This is the MediaTek DRAM-base mapping (text_offset = 0) thattools/extract_rs/src/boot.rsdescribes: this kernel places_textatMTK_VADDR_BASE + 0x08000000in the virtual layout, which is what makes the VA-based check above warn, but its physical load offset is0, not0x08000000.Evidence
Device: Infinix X6879, MT6788, kernel
6.1.157-android14-11-ga8b0b542991e-ab15601211(identicaluname -rto the profile).From
/sys/fs/pstore/console-ramoops-0, identical in 33/33 OOPS:Runtime log from a run on this kernel with both fields at
0x40000000:selinux_enforcing(+0x225B820) resolving to0xffffff800225b820andinit_cred(+0x2031AA8) resolving to0xffffff8002031aa8are bothPAGE_OFFSET + offset, i.e.delta = 0. Withdelta = 0x08000000(the_text VA - MTK_VADDR_BASEassumption) those same writes resolve to0xffffff800a25b820and0xffffff800a031aa8and miss the targets by 128 MB.All nine
offset.*values in this profile were re-checked against the 102601-symbol kallsyms table recovered from the device's ownboot.imgby the in-tree extractor and match.Scope and non-claims
offset,task_structand theincludelines are untouched.empty_zero_pagestaysnull(only themulticast_waiterroute needs it).tcp_zerocopyprimary route is exercised on this SoC. Our on-device verification went through theselect_stackfallback (waiter_shift = 1), which the extractor also rateshighfor this image. I left the route block as merged rather than changing it here.SUPPORTED_DEVICES.mdrow is added in this PR; I can send that separately with the full log if you want it.