Duy Tran Khanh 32ff6237dd Possibility fixes #39: Unsafe.getInt() crashes
# Problematic frame:
# V  [libjvm.dylib+0x982a60]  Unsafe_GetInt(JNIEnv_*, _jobject*,
_jobject*, long)+0x104
J 373  jdk.internal.misc.Unsafe.getInt(Ljava/lang/Object;J)I
java.base@16 (0 bytes) @ 0x0000000d40e0f254
[0x0000000d40e0f1c0+0x0000000000000094]
j  sun.misc.Unsafe.getInt(Ljava/lang/Object;J)I+5 jdk.unsupported@16
j  org.lwjgl.glfw.GLFWVidMode.nblueBits(J)I+10
j  org.lwjgl.glfw.GLFWVidMode$Buffer.blueBits()I+4
j  dey.<init>(Lorg/lwjgl/glfw/GLFWVidMode$Buffer;)V+38
j  der.a()V+47
j  der.<init>(J)V+17
j  eau$$Lambda$2435+0x0000000300729bf8.createMonitor(J)Lder;+5
j  dev.<init>(Ldes;)V+72
j  eau.<init>(Ldjz;)V+19
j  djz.<init>(Ldsz;)V+666
j  net.minecraft.client.main.Main.main([Ljava/lang/String;)V+1250
v  ~StubRoutines::call_stub
j
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflec
t/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
java.base@16
j
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object;+113 java.base@16
j
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Obj
ect;[Ljava/lang/Object;)Ljava/lang/Object;+6 java.base@16
j
java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)L
java/lang/Object;+59 java.base@16
j
net.kdt.pojavlaunch.Tools.lambda$launchMinecraft$0(Ljava/util/List;Lnet
/kdt/pojavlaunch/JMinecraftVersionList$Version;[Ljava/lang/String;)V+71
j  net.kdt.pojavlaunch.Tools$$Lambda$69+0x00000003001db880.run()V+12
j  java.lang.Thread.run()V+11 java.base@16
v  ~StubRoutines::call_stub

siginfo: si_signo: 11 (SIGSEGV), si_code: 2 (SEGV_ACCERR), si_addr:
0x000000011fcf8000
2021-02-15 11:16:31 +07:00
2021-01-28 13:14:28 +07:00
2021-02-14 14:05:10 +07:00
2020-12-29 06:21:37 +07:00
2021-01-30 05:26:39 +07:00
2020-12-31 20:47:34 -05:00
2020-12-31 20:47:34 -05:00
2020-12-29 12:57:09 +07:00
2021-02-13 08:14:16 +07:00

iOS build

PojavLauncher_iOS

Minecraft: Java Edition launcher for iOS, based on PojavLauncher Android.

Navigation

Introduction

  • This is an attempt to get Minecraft Java run on a jailbroken iOS.
  • Minimum requirements: device running iOS 12 or newer.

Building

Requirements:

  • Mac OS X (tested: 10.15)
  • XCode (tested: 11.7.0)
  • JDK 8 installed
  • gradle to build Java part.
  • cmake, wget, ldid, dpkg and fakeroot to package. Run in this directory
# Only run if you haven't installed JDK 8
brew install adoptopenjdk8

# Install required packages
brew install cmake wget ldid dpkg fakeroot gradle

# Give exec perm
chmod 755 *.sh

# Build natives part
./build_natives.sh

# Build java part
./build_javaapp.sh

# Sign with entitlements and package
./build_package.sh

How can it work?

  • Use OpenJDK 16 from Procursus to get real Java environment.
  • Use MetalANGLE for OpenGL ES -> Metal translator.
  • Use GL4ES for OpenGL -> OpenGL ES translator.
  • Use our LWJGL3 iOS port.
  • Use same launch method as PojavLauncher Android.

Current status

  • Java Runtime Environment: OpenJDK 16.
  • LWJGL3 iOS port: works
  • OpenGL: GL4ES
  • Did Minecraft recognize OpenGL?
  • OpenAL: use @kcat's openal-soft
  • Input pipe implementation
  • Account authentication (partial).
  • Does it work? Partial.
  • Currently, only Minecraft 1.14+ fully works.
  • Forge won't work, but Fabric and OptiFine will.

Known issues

  • Mojang authentication might not work, but copying logged in account json from Android will work.
  • Camera position will be jumped to random location on first time touch.
  • 1.12.2 and below only render a tiny panorama at bottom left corner.
  • Other versions will crash for various reasons: Narrator crash, etc...
  • It may crash sometimes, but try launch again until you get it works.

Installing OpenJDK 16

For Chimera/Odyssey bootstrap

For other jailbreak bootstrap

  • Download openjdk-16-jre.deb.
  • Install and open Filza File manager.
  • Go to where the .deb file downloaded.
  • Open it and press Install.
  • If everything fine, it will ends up with Setting up ....

Directory locations

  • Account json directory: /var/mobile/Documents/.pojavlauncher/accounts.
  • Minecraft home directory: /var/mobile/Documents/minecraft.
  • Select a version: edit /var/mobile/Documents/minecraft/config_ver.txt, put to Minecraft version want to start.

License

Contributing

Contributions are welcome! We welcome any type of contribution, not only code. Any code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it.

Credits & Third party components and their licenses

S
Description
A Minecraft: Java Edition Launcher for Android and iOS based on Boardwalk. Succeeded by https://github.com/AngelAuraMC/Amethyst-iOS
Readme GPL-3.0
247 MiB
0 Stars 1 Watchers 0 Forks
Languages
Objective-C 67.5%
Java 20.9%
C++ 5.6%
C 3.4%
Makefile 1.9%
Other 0.7%