Commit Graph
159 Commits
Author SHA1 Message Date
khanhduytran0 8f08afbd27 Build: include Java 21 runtime for latest snapshot 2024-04-04 19:18:17 +07:00
khanhduytran0 a7a74620b1 Fix: don't apply entitlements to libraries
Regression in
https://github.com/PojavLauncherTeam/PojavLauncher_iOS/commit/a722b4a
2024-03-20 17:32:48 +07:00
khanhduytran0 a722b4a8c9 Build: split sandboxed & TrollStore JIT version
Sandboxed version installed using TrollStore will use URL Scheme to
enable JIT. tipa build keeps self-JIT but is unsafe to use.
2024-01-29 20:48:01 +07:00
khanhduytran0 d72d84dd57 Fix TrollStore installation error 2024-01-12 12:52:57 +07:00
Duy Tran KhanhandDuy Tran Khanh 8d6d66dd94 Feats: external runtime, update LWJGL to 3.3.1 (#579)
* 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]>
2023-06-28 21:49:15 +07:00
Eva Luna d54bcb59d4 [Makefile] Add XROS and XRSIMULATOR as vtool-able platforms
Uhhh... don't ask why.
2023-06-21 20:33:20 -04:00
Duy Tran Khanh ea767f7962 Makefile: add Mac Catalyst (PLATFORM=6)
Build for Mac Catalyst is mainly for debugging purpose on Apple Silicon
Macs.
2023-05-15 07:26:53 +07:00
Eilionoir Tunnicliff dc22673b06 Remove iOS 12/13 supporting code + Alderis
PojavLauncher 3.0 will require heavy modifications in order to work on those two iOS versions now.
2023-05-08 11:15:52 -04:00
Eilionoir Tunnicliff a10b052f8f Bump version
PojavLauncher 3.0 development begins now, with iOS 14.0+
2023-05-06 17:07:16 -04:00
Eilionoir Tunnicliff 777622c087 more Xcode project stuff 2023-05-02 14:06:21 -04:00
Eilionoir Tunnicliff de37d2c281 Skip code signing if PROVISIONING points to invalid path
Also, add note in Xcode project about environment variables
2023-05-02 13:44:30 -04:00
Eilionoir Tunnicliff 5c4834a437 Attempt to fix issue with different branches in GA 2023-04-26 10:56:00 -04:00
Duy Tran Khanh ed133b2fe0 Update Makefile
whoops wrong path
2023-04-26 18:33:57 +07:00
Duy Tran Khanh 5e64d15d24 Move *.lproj to Natives/resources 2023-04-26 18:29:58 +07:00
Eilionoir Tunnicliff a90d088f57 Reintroduce Xcode project
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.)
2023-04-25 14:22:19 -04:00
Eilionoir Tunnicliff 6c10c4171c Enable the deploy recipe to be used to sideload onto ARM64 Macs
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
2023-04-21 14:20:53 -04:00
Eilionoir Tunnicliff 5487aa8dcc bruh 2023-04-20 19:13:38 -04:00
Eilionoir Tunnicliff 24e67bfbfe Fix VERBOSE=1 compile error 2023-04-20 15:34:59 -04:00
Duy Tran Khanh c4654d8bf6 Update Makefile: fix jre tar.xz name check 2023-03-31 20:58:32 +07:00
Eilionoir Tunnicliff 982a6847f2 br x2 2023-03-31 09:27:37 -04:00
Eilionoir Tunnicliff aa0e413332 br 2023-03-31 09:22:59 -04:00
Duy Tran Khanh b63098b3b8 Update Makefile: use nightly.link for latest jre 2023-03-31 19:26:41 +07:00
Eilionoir Tunnicliff bb24086db7 Codesign function changes
While not required, codesign --remove-signature before and printing after makes it easier to see all of the binaries that were signed.
2023-03-27 13:14:04 -04:00
Eilionoir Tunnicliff 43123158a4 (WIP) Enable usage of JREs in Documents/
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.
2023-03-27 09:41:19 -04:00
Duy Tran Khanh eadb0f1feb Fix Makefile errors when building on iOS 2023-03-25 20:45:41 +07:00
Eilionoir Tunnicliff 7f6be871fb Bruh 2023-03-23 10:41:55 -04:00
Eilionoir Tunnicliff 77b6ad15f3 Remove files that we do not need from the JREs
Should save us a bit of space
2023-03-23 10:04:59 -04:00
Eilionoir Tunnicliff 19b6a4e44b Fix error 2023-03-23 10:01:53 -04:00
Eilionoir Tunnicliff ea7ac23058 Formatting changes to make this readable 2023-03-23 09:58:07 -04:00
Eilionoir Tunnicliff 8466fdfd88 Fix issue where lack of .tar.xz breaks builds 2023-03-23 09:56:38 -04:00
Eilionoir Tunnicliff af092437fa Fix Makefile stuff
first commit as an adult i do be 18 now
2023-03-23 00:45:00 -04:00
Eilionoir Tunnicliff 656f4d82d2 Makefile stuffs
- 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
2023-03-23 00:04:24 -04:00
Duy Tran Khanh 83b43238c9 Fix(JNA): snprintf() output has been truncated
Update JNA to 5.13.0:
https://github.com/java-native-access/jna/blob/767662a/lib/native/darwi
n-aarch64.jar
$ vtool -arch arm64 -set-build-version 2 12.0 16.0 -replace -output
libjnidispatch.dylib libjnidispatch.dylib
$ install_name_tool -change
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
/System/Library/Frameworks/Foundation.framework/Foundation
libjnidispatch.dylib
2023-03-19 16:04:15 +07:00
Eilionoir Tunnicliff 0d6994c354 Add new "Penciled Development" app icon
Also switches to the new Universal app icon type. Backwards compatible to iOS 12, but requires Xcode 14+ to work.
2023-03-15 23:36:33 -04:00
Eilionoir Tunnicliff c2f4919010 Fix upload issue and see if I can access the cache this way 2023-03-15 14:19:45 -04:00
Eilionoir Tunnicliff 6e5f3b7139 Fix the issues! 2023-03-15 14:02:34 -04:00
Eilionoir Tunnicliff 67cebff301 mkdir -p instead 2023-03-15 13:18:38 -04:00
Eilionoir Tunnicliff 382a1af67c Build for iOS, tvOS, and simulators with Makefile + matrix 2023-03-15 13:15:24 -04:00
Eilionoir Tunnicliff 140b3e1d8c Revert "Workaround local development environment weirdness + fix config.h.in"
This reverts commit 66377f9256.
2023-03-13 14:01:48 -04:00
Eilionoir Tunnicliff 66377f9256 Workaround local development environment weirdness + fix config.h.in
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.
2023-03-13 12:28:04 -04:00
Eilionoir Tunnicliff e2040fb3be Readd account button to Settings and only show text in landscape mode
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.
2023-03-09 13:13:32 -05:00
Eilionoir Tunnicliff fe2b85ec32 Ask for microphone permission when launching the app, if not already enabled 2023-01-29 13:18:33 -05:00
Eilionoir Tunnicliff d1cc9ac977 Add "slim" builds (#494)
* 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
2023-01-27 09:18:50 -05:00
Duy Tran Khanh cdd4d3908b Fix(MCDL): multiple debug prints of call stack
Fix(local,Makefile) : @ldid: command not found, why?
2023-01-26 12:52:03 +07:00
Duy Tran Khanh fcc7d8b2d4 Fix(iOS 12): fatal issues: dlopen, entitlement
* dlopening the main executable fails
* dlopening dylib fails due to codesign
* Installing PojavLauncher with AppSync causing
extended-virtual-addressing entitlement to be checked improperly

Current issue: it seems that Java 8 is broken on iOS 12
2023-01-20 21:42:51 +07:00
khanhduytran0 b0203d6fc7 Text input for jar launcher, update lib, fixes
News
- Added text input support for jar launcher.
- Updated MoltenVK to https://github.com/KhronosGroup/MoltenVK/commit/d880f4c

Internal changes
- Added more handling cases to avoid missing call to pojav_initOpenGL()
- Moved custom control’s global functions and properties to ControlLayout.
- Moved dylib framework outside its folder, as it’s not necessary to be bundled in framework.
- Reusing custom controls to produce flexible buttons in jar launcher, which might be extended in the future.

Fixes
- Multistage text input (Japanese, Chinese, etc) should now work again.
- Pointer lock should now function properly again.

- Updated README.md to reflect current stuff
2023-01-19 09:54:55 +07:00
Eilionoir Tunnicliff 7d2948b89b Re-add LaunchScreen.storyboardc
Apparently iOS will assume you're using a 3.5" iPhone is there isn't one. Unsure why, too tired to look into a solution, so just reverting the removal.
2022-12-18 03:34:27 -05:00
Eilionoir Tunnicliff e3096ad909 Formatting fixes 2022-12-18 02:49:27 -05:00
Eilionoir Tunnicliff 052e69966c Whoops lmaooo 2022-12-18 02:46:42 -05:00
befafed4fa v2.2 - Drop .deb and other jailbreak changes (#448)
* Merge 'main' into '2.2-nojb' (#447)

* Changes

- Refine WKWebView on notched devices (worked fine on my 7 as well...)
- Add iDevice model, iOS version, and install to General footer

* New debug option: auto correction

Sometimes autocorrection can be annoying, so there's now a toggle,
enabled by default to preserve behavior.

* Changes to custom controls

Allow saving to default.json
Put custom controls editor to in-game menu
Localization

* Rename renderer: tinygl4angle to ANGLE

This avoids confusion between Android and iOS version when mentioning
this renderer

* GLFW.java: add glfwExtensionSupported

* New Crowdin updates (#438)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Finnish)

* New translations Localizable.strings (English)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (English (upside down))

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Turkish)

* New translations Localizable.strings (Swedish)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Chinese Traditional)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Portuguese, Brazilian)

* New translations Localizable.strings (Persian)

* New translations Localizable.strings (Bengali)

* New translations Localizable.strings (Thai)

* New translations Localizable.strings (Kazakh)

* New translations Localizable.strings (Hindi)

* New translations Localizable.strings (Slovak)

* New translations Localizable.strings (Malay)

* New translations Localizable.strings (English, United Kingdom)

* New translations Localizable.strings (Pirate English)

* New translations Localizable.strings (Filipino)

* New translations Localizable.strings (Tatar)

* New translations Localizable.strings (Latin)

* New translations Localizable.strings (Bashkir)

* New translations Localizable.strings (English (upside down))

* New translations Localizable.strings (LOLCAT)

* New translations Localizable.strings (Serbian (Cyrillic))

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (German)

* New translations Localizable.strings (English)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Romanian)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Spanish)

* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (Catalan)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Greek)

* New translations Localizable.strings (Portuguese)

* New translations Localizable.strings (Finnish)

* New translations Localizable.strings (Hebrew)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Japanese)

* New translations Localizable.strings (Korean)

* New translations Localizable.strings (Lithuanian)

* New translations Localizable.strings (Dutch)

* New translations Localizable.strings (Norwegian)

* New translations Localizable.strings (Polish)

* New translations Localizable.strings (Russian (pre-revolutionary))

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Turkish)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Spanish)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Polish)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (English)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Chinese Traditional)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Filipino)

* New translations Localizable.strings (English (upside down))

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Turkish)

* New translations Localizable.strings (English)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Portuguese, Brazilian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Portuguese, Brazilian)

* New translations Localizable.strings (Portuguese, Brazilian)

Co-authored-by: Eilionoir Tunnicliff <[email protected]>

Co-authored-by: Duy Tran Khanh <[email protected]>
Co-authored-by: Duy Tran Khanh <[email protected]>

* Makefile changes

Should incorporate everything under "Rewrite makefile to be one-for-all" for #448 

I have no idea if this works, I know the workflow will fail at least because of the make deb, make ipa blah blah

* Change workflow to work with the rewrite

- Shouldn't need JAVA_HOME set anymore, as the Makefile sets it 
- make package
- Remove .deb

* Remove extraneous else

* Add /bin to JAVA_HOME for macOS

* Remove extras from package dependencies

* for real coal

Makefile added a space in the version smh

* Change to dsym

and we're done

* Update release workflow

* Fix dsym recipe

and now we're done

* NOSTDIN fixes + theoretically fix dsym

* Remove extraneous @

* DEBIAN Removal: 1/5

* DEBIAN Removal: 2/5

* DEBIAN Removal: 3/5

* DEBIAN Removal: 4/5

* DEBIAN Removal: 5/5

I hate GitHub web as much as you

* Remove LaunchScreen.storyboard

Co-authored-by: Duy Tran Khanh <[email protected]>
Co-authored-by: Duy Tran Khanh <[email protected]>
2022-12-18 01:33:41 -05:00