* Feat: external runtime manager
Currently missing: mmap hook
* we're past this ui todo
* feat: Bypass Library Validation (untested)
This bypass works because of JIT enabled, so the process can patch
anything loaded in the memory. Unsigned dylib works with JIT too.
* Fix `could not get real path` on iOS 14.x
iOS 15+ is untested, it may need patching in dyld instead of libSystem
* Make redirectFunction syscall-friendly
Replaced builtin_mprotect and vm_protect with a simple syscall to
_kernelrpc_mach_vm_protect_trap
* Add dyld hook back for iOS 15+, auto symlink xawt lib
* Cleanup Tools.java:showError+comments
Use System.exit(1) to drop to Game Exited screen instead of presenting
alert dialog on exception handled.
* Patch both to bypass codesigning at best
* Proper way of ignoring SIGBUS during patch
Turns out other background thread might also be calling inside dirty
page, so let's SIG_IGN them all until page permission is back to RX.
* Feat(install jar): auto detect java version
Rename Default version to Preferred version to match the behavior or
Install .jar detection: only override if selected version > required
version.
Add UnzipKit just to check jar file
Refactor(showDialog): remove viewController parameter, now use its own
ViewController to present.
* Feat: update LWJGL to 3.3.1
(tinygl4angle) add alias for GL_KHR_debug functions
Include nanovg for OneConfig mod
Move all LWJGLX classes to lwjgl3 repo
Set org.lwjgl.util.NoChecks=true to improve performance
* Fix: Forge 1.20 crashes (wrong artifact path)
Now use json-provided artifact path instead of generating one
Make lwjgl fat jar again
* Fix: handle null library artifact
* Fix: fatal glfw callback cleanup
* Build: fix copying LWJGL libraries
* Perf: set default settings
* Fix: incorrect SolClient useStackQueue check
* Feat: builtin runtime installer
Refactor parts of LauncherNavigationController.m
Workaround(LogView): disable animation on update to mitigate overload
* Fix: random game directory failures
This is caused by having current working directory unchanged after
re-making symlink.
* Fixes: TL-style artifact, update arc_dns_injector
Change pojavInit names
* Fix: 1.13+ isUseStackQueueCall check
* Build: update liblwjgl.dylib in attempt to fix ffi_closure_alloc
* Fix and improvements to the logger
- Dynamically get stdout/stderr fileno instead of fixed value
- Improve file migration logging
- Improve dyld bypass logging
* Fix(pickers): file permission issue
---------
Co-authored-by: Duy Tran Khanh <[email protected]>
It's just a wrapper around the makefile. I use it to develop in Xcode (because not having an IDE is cringe and I would rather use the IDE I just spent 20 hours downloading instead of not.)
Requires codesigning and packaging to be done.
Bug with macOS: installing ipa of the same bundle id will create multiple instances of the app in Applications
Could be alleviated with sudo but I want to keep sudo out of the Makefile
If there is no java_runtimes/ folder in the bundle, PojavLauncher will look for runtimes in Documents/jvm. Not currently working with my tests as this isn't the code I used before.
Also changes the slimmed ipas to not include any runtimes at all.
- Rework check recipe to use .VARIABLES with a bunch of filters
- remove sudo dependency (except for deploy recipe, will require sudo make clean if you have perm issues)
- move java unpacking script to its own place
Something with macOS Ventura 13.3 and Xcode 14.3 breaks init_hookFunctions(): the app compiles fine but won't launch, throwing off errors that were supposedly fixed already. This variable allows me to disable the function outright so I can continue UI development without having to downgrade to Ventura 13.2.1 (because Time Machine is going to be an ASS to deal with.) Don't set this variable as it will cause the game itself to not behave correctly.
There is a bug in this where the text can become "sticky" and stay the same when rotating if the sidebar is opened but no rows are selected (meaning that the app just finished launching and LauncherNewsViewController is still presented by LauncherNavigationController.) More needs to be done to fix this little bug, however it does not hinder the usability of the account button or anything else in the launcher so I'm pushing it now to fix later.
* Merge 'main' into 'slim-building' (#493)
* Remove java-16-openjdk from environmentFailsafes()
Versions that use 16 can use 17 as well. Instead of wasting storage and installing both, use just 17 instead.
* Jailbreak JIT fixes
- palera1n detection
- enable JIT if jailbreak bit is set
* github.dev moment
Fix syntax error
* README changes
* Requirements + tvOS things
* Produce a "slimmed" build
Slimmed builds only include the Java 8 runtime, meaning only 1.16.5 and lower can be played. Made for those tight on storage or only using older versions.
* Move zip around
* No need for the * glob
* Escape globs
* --exclude instead of -x
I literally have no idea what's going on, this probably won't fix it
* Payload
* bruh