mirror of
https://github.com/LiveContainer/LiveContainer.git
synced 2026-04-25 09:05:53 +03:00
[GH-ISSUE #30] Without JIT #23
Labels
No labels
bug
compatibility
enhancement
multitasking
pull-request
safe area
status: broken
status: usable
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/LiveContainer#23
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ghost on GitHub (Feb 5, 2024).
Original GitHub issue: https://github.com/LiveContainer/LiveContainer/issues/30
Via https://github.com/61bcdefg/unicorn-tcti, we can run arm64 machine code without JIT
Could you try to use this to make LiveContainer able to run apps without JIT? (There are already commercial applications that use a similar way to run other apps within an app without jailbreaking and JIT)
@ghost commented on GitHub (Feb 6, 2024):
Something can reference https://github.com/zhkl0228/unidbg
@khanhduytran0 commented on GitHub (Feb 6, 2024):
Looks interesting, but I’m not sure how things like callback from UIKit/GCD block works
@ghost commented on GitHub (Feb 6, 2024):
The above project simulates all the required system framework(is has a self-implemented macho loader), so there is no need to worry about this, but this makes the UI unusable.
@ghost commented on GitHub (Feb 6, 2024):
Maybe for calls to special api functions like UIKit, we can check when unicorn is executed and convert it to calling functions in the real framework, but that would be a huge work
@khanhduytran0 commented on GitHub (Feb 6, 2024):
Yeah I see, but I need complete API passthrough for app to work with maximum compatibility. Also, LiveContainer doesn’t need actual Mach-O loader, since it patches dyld instead. Might be need to run 32bit apps, but I’m not sure how to deal with 4GB address space limit.
@ghost commented on GitHub (Feb 6, 2024):
I think a complete API passthrough is almost impossible to achieve...
@khanhduytran0 commented on GitHub (Feb 6, 2024):
I think it is possible using shims. For example, aah also uses unicorn to run arm64 iOS app inside x64 simulator
@ghost commented on GitHub (Feb 6, 2024):
Looks nice, that might actually be possible
@ghost commented on GitHub (Feb 7, 2024):
@khanhduytran0 Are there any plans? After some modifications to aah, I successfully ran aah with unicorn-tcti natively on Apple Silicon Mac. So I think this works for iOS as well, LiveContainer without JIT is truely possible, even though the performance will be bad
@ghost commented on GitHub (Feb 8, 2024):
But the current way to patch dyld was depends on JIT, perhaps ellekit's JITLessHook could be used instead.
@tealbathingsuit commented on GitHub (Apr 1, 2024):
JITLessHook will work here, since it seems you only hook 4 functions
@ghost commented on GitHub (Apr 19, 2024):
Looks like a better solution has been achieved, close as completed