Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

it is. They could only fix it for the homescreen links which also didn't get the JIT before iOS5

Having a JIT requires you to execute writable memory which is a privilege given on a per-process level. So for an embedded webview to be able to do it, your app would need it, but third party apps are never allowed this.

It's possible that they changed UIWebView to spawn a background process for the actual rendering, but I guess we would have heard about that (we haven't we only heard about homescreen links now being JITed)



Would you need executable and writable at the same time? The JIT generates code into a writable+non-executable memory, and then makes it readonly+executable.


That's the point. You don't get segments that you can mark as executable if you are a third-party app. The only code that's executable is the code segment of the compiled binary (that's signed by apple and won't be executed if it has changed since it has been signed).

Trying to mark memory as executable will cause your app to be terminated. Jumping into non-executable memory will also cause your app to be terminated.

Aside of protecting you (as a user or as a developer) from a big class of security issues, this also ensures that nobody ever gets to run code that's not loaded from the App Store (and thus would generate revenue without giving a share to Apple).




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: