I'm performing some low-level computations on iOS and would need to resolve the physical address of a virtual address. Does the iOS platform provide any (unofficial) functions for this task? Is this even possible without jailbreak/root?
CodePudding user response:
Nope.
In order to translate a virtual address to physical, the kernel would call one of these functions:
mmu_kvtop()
for kernel addresses (hardware lookup).mmu_uvtop()
for userland addresses in the current process context (hardware lookup).pmap_vtophys()
for arbitrary addresses in a givenpmap
struct (software lookup).
None of these are exported to userland.
With an arbitrary kernel read primitive, you can implement the third kind of lookup yourself, but without that you're out of luck.