# MojoLauncher plays Minecraft Java Edition on Android

> MojoLauncher is a Java launcher for Minecraft: Java Edition built for Android on top of PojavLauncher, and its distinguishing feature is the version range, from the rd-132211 builds through 26.x snapshots. It ships through the Play Store and as a nightly build, and the roadmap shows a project still working on its graphics layer and modpack tooling.

**MojoLauncher/MojoLauncher** — A Minecraft: Java Edition launcher, based on PojavLauncher

- Repository: https://github.com/MojoLauncher/MojoLauncher
- Stars: 1,045 · Forks: 480
- Language: Java
- License: LGPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/mojolauncher-mojolauncher

## A PojavLauncher fork with a different emphasis

MojoLauncher, also known as MJLauncher, is a launcher for Minecraft: Java Edition that lets you play on an Android device. The README is clear that it is based on PojavLauncher, and the third party credits section links PojavLauncher as LGPLv3, so the relationship is a fork of an existing project rather than a from scratch launcher.

The interesting part is what the fork emphasises. The stated feature is the version range. The launcher can launch almost all available Minecraft versions, ranging from rd-132211 to 26.x snapshots, including the Combat Test versions, and modding via Forge and Fabric is supported, along with mods such as OptiFine. The documentation also mentions that it can use the jar only installers to install modloaders such as Forge and Fabric.

Supporting a version range that ends at the current snapshots is a harder problem than it sounds. Each era of the game has a different engine, a different OpenGL expectation and a different asset format, and on Android that has to be done without a real GPU stack, which is where the fork's engineering effort has gone.

The audience is specific. It is the Android user who wants an old version, or a modpack, or the game on a device that is not a gaming phone, and who is willing to deal with a launcher that is doing something unusual. The primary language is Java, the default branch is v3_openjdk, and the licence is GNU LGPLv3.

There is also a commercial and community layer around it. The repository has a Discord, a Russian readme, a Crowdin project for translations, and the project states that contributions of any kind are welcome, not only code, and that you can help shape the wiki.

## Four ways to get it, including the Play Store

The distribution options are listed as four methods, and they cover the range from casual user to developer.

The prebuilt app is in the releases section of the repository. The second is Google Play, and the badge in the readme links the listing under the package id git.artdeell.mjlaunch. The third is early builds from GitHub Actions, which is the continuous integration output rather than a curated release. And the fourth is to build it from source.

That is a well considered set of options, and the Play Store route matters more than it might seem for a project of this kind. A launcher that has to install a mod loader, a JVM and a set of native libraries into a directory on the device is a launcher with permissions and file system access, and the friction of an APK from a random download site is real. A store listing also implies a privacy policy, and the repository carries both GPLAY_PRIVACY_POLICY.md and a Russian PRIVACY_POLICY_ru.md, plus a dataremoval.md, which suggests the data handling is taken seriously rather than assumed.

The release tags are named rather than numbered, which is unusual and worth noticing. The list shows a release named Iris, dated 2026-06-25, and one named nightly, the MojoLauncher Nightly Builds, dated 2026-05-07. So the project names its channels after what they are, with a curated channel and a rolling nightly channel, rather than shipping semantic versions of the launcher itself.

## Building from source needs three native components symlinked

The build instructions are short, and the Windows note is the part that catches people.

The launcher build is a single Gradle invocation, and it will automatically download all required components:

```
./gradlew :app_mojo:assembleDebug
```

If you are building on Windows, the instructions say to replace ./gradlew with .\gradlew.bat, and to make sure that mojoexec, sdl and glfw are symlinked into app_pojavlauncher/src/main/jni/.

That symlink requirement is a consequence of how the project is laid out. The repository has glfw, sdl and mojoexec as top level directories alongside app_mojo, and the .gitmodules file is there, so the native components are git submodules. The jni directory is where the native code has to end up for the Android build to find it, and a Windows checkout will not have the symbolic links already in place, which is why the instruction is specific to that platform.

What those three components are is spelled out in the credits. GLFW and SDL are the windowing and input layers, both under the zlib licence, with the project's own forks of each. LWJGL2-GLFW and LWJGL3 are the Java binding layers for OpenGL, under 3-clause BSD and BSD-3. And mojoexec is the process execution library, under MIT, which is what actually launches the game JVM and the process it spawns. Mesa 3D provides the software OpenGL implementation, under MIT, and Holy GL4ES is an OpenGL ES to desktop GL translation layer, also MIT.

So the native stack is a software graphics path, and that is the single fact that explains most of the known issues.

## The roadmap is mostly about the graphics layer and modpack tooling

The roadmap is a checklist, and reading it tells you where the project is spending its effort.

Four items are already done. The instance system has been introduced in favour of profiles, which is a simplification of the classic launcher model where each modded version is a separate instance folder. Out of the box 1.21.5 support is in, and import of mrpack and CurseForge zip archives is in, which is the first step of modpack support.

The unfinished list is where the judgement goes. Two items are prefixed LTW, which is the in project shorthand for the graphics work, and both are about framebuffers: resolve issues with Create, the mod that is notoriously demanding of the renderer, and switch to a colour-renderable format for framebuffers. Then there is a modpack and mod management tool, which is the big one, since importing an archive is not the same as being able to manage it. Then MMC compatible instance import, so that people can bring their existing MultiMC or Prism Launcher setup. Then Vintage Story support, which is a different game. And then implement a common native library standard, which is an infrastructure item about how the native components are packaged.

So the honest reading is that the modpack story is half built. The import exists, the management tool does not, and the renderer is still being taught to cope with a mod that stresses it. The roadmap also shows a project thinking beyond Minecraft, with Vintage Story on the list and a common native library standard, which is the kind of thing that only makes sense if the launcher is expected to run other games too.

## The known issues are input speed and texture atlases

The known issues section is short, and both entries are graphics or input related, which fits a software rendering path.

The first is that some physical mice may have very slow mouse speed. That is the raw input problem: a mouse with a high polling rate reports many more movement events than the game expects, and on a translation layer that has to synthesise input events from a Linux style device, the scaling can come out wrong. Nothing in the documentation says it is fixed, and it is listed as a known issue rather than a caveat, so a user on a desktop mouse attached to a tablet should expect it.

The second is more visual. On Holy GL4ES, large texture atlases may be distorted, resulting in stretched or blocky textures in modpacks. This is a specific and predictable failure, because a texture atlas is a single large image that the game samples from, and a translation layer that has to handle large textures is exactly where the blockiness appears. It is also why it shows up in modpacks, since a modpack is what pushes the game to use large atlases.

The project closes the section with a shrug, that there is probably more, which is why there is a bug tracker. And the roadmap carries two related graphics items, the Create issues and the colour-renderable framebuffer format, which are the two things a team would work on if they wanted to reduce this list.

There is a third piece of context in the roadmap that helps interpret the whole thing. Enabling compute shader and image extensions is marked as done, which is a significant piece of work for a translation layer, because those are the modern shader features that a game like 1.21.5 needs.

## A mixed licence stack, and a privacy policy in the repository

The licence section of the readme is longer than most, and for a launcher of this kind it is the right way round, because the project embeds other people's work.

MojoLauncher itself is licensed under GNU LGPLv3, with the licence file linked on the v3_openjdk branch. PojavLauncher, the upstream it forks, is LGPLv3 as well. The Android Support Libraries are Apache 2.0. Holy GL4ES and mojoexec and bhook and Mesa 3D are MIT. OpenJDK is GPLv2 with the classpath exception. GLFW and SDL are zlib. LWJGL2-GLFW and LWJGL3 are BSD variants. pro-grade, the Java sandboxing security manager, is Apache 2.0, and oboe, the audio library, is Apache 2.0.

Two entries deserve a note. Authlib-Injector, used for authorisation via ely.by, is AGPL-3.0, which is the most restrictive licence in the stack and the one most likely to matter to a distributor, because AGPL obligations are triggered by network use. And openal-soft, the audio output library, is LGPL with a modified PFFFT, so it carries its own terms.

The credits also mention Mineskin, for providing Minecraft avatars.

So a team that distributes the launcher as an APK, or modifies and repackages it, has to reconcile LGPLv3 for the launcher and PojavLauncher, AGPL-3.0 for Authlib-Injector and GPLv2 with classpath exception for OpenJDK. That is a manageable but real set of obligations, and it is why the credits file is written with a licence next to every single component.

The repository also carries GPLAY_PRIVACY_POLICY.md, PRIVACY_POLICY_ru.md and dataremoval.md, alongside the NoBlocklist file, which together suggest attention to the data the launcher handles and to how a user can have it removed.

## Conclusion

MojoLauncher is worth adopting if you want Minecraft Java Edition on an Android device and you have either an old version you need or a modpack, because the version range from rd-132211 to current snapshots and the jar only installer support are things the stock Android client will not do. It is the wrong choice if you only want the current release on a current phone, since a desktop install is less trouble, and it is the wrong choice if you are unwilling to accept an experimental graphics path on some hardware. Before you install it, read the known issues about mouse speed and texture atlases on Holy GL4ES, check whether your device matches the Play Store build or the release APK you want, and note that the newest tagged releases are the Iris build from 2026-06-25 and a nightly from 2026-05-07 while the repository was pushed to on 2026-10-19.

## FAQ

### What is MojoLauncher and what does it add over PojavLauncher?

It is a launcher for Minecraft: Java Edition on Android, forked from PojavLauncher. The distinguishing feature it advertises is the version range, from rd-132211 through 26.x snapshots including Combat Test versions, with modding through Forge and Fabric and the use of jar only installers to install modloaders.

### How do I get MojoLauncher?

There are four ways: the prebuilt app in the releases section, the Google Play listing under the package id git.artdeell.mjlaunch, early builds from GitHub Actions, or building it from source. The release channels are named rather than numbered, with an Iris release and a rolling nightly build.

### How do I build MojoLauncher from source?

Run ./gradlew :app_mojo:assembleDebug, which automatically downloads the required components. On Windows you replace ./gradlew with .\gradlew.bat and make sure that mojoexec, sdl and glfw are symlinked into app_pojavlauncher/src/main/jni/, because those native components are git submodules.

### What are the known issues with MojoLauncher?

The documentation lists that some physical mice may have very slow mouse speed, and that on Holy GL4ES large texture atlases may be distorted, giving stretched or blocky textures in modpacks. It also notes there is probably more, which is why there is a bug tracker.

### What licence is MojoLauncher released under?

MojoLauncher is licensed under GNU LGPLv3. The third party stack is mixed and the readme lists a licence for every component, including OpenJDK under GPLv2 with the classpath exception, Authlib-Injector under AGPL-3.0, Mesa and Holy GL4ES and mojoexec under MIT, and GLFW and SDL under zlib.

## Sources

- [Issues](https://github.com/MojoLauncher/MojoLauncher/issues)
- [License: LGPL-3.0](https://github.com/MojoLauncher/MojoLauncher/blob/v3_openjdk/LICENSE)
- [MojoLauncher/MojoLauncher on GitHub](https://github.com/MojoLauncher/MojoLauncher)
- [README](https://github.com/MojoLauncher/MojoLauncher/blob/v3_openjdk/README.md)
- [Releases](https://github.com/MojoLauncher/MojoLauncher/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mojolauncher-mojolauncher
