XDAetherium is an Android launcher for running Minecraft: Java Edition on phones and tablets. It is based on Amethyst/PojavLauncher/Boardwalk and includes custom changes for a smaller APK, Ely.by accounts, working Ely.by skins, custom branding, and Android Java runtime fixes.
This project is not affiliated with Mojang, Microsoft, or Ely.by. Use your own account and follow the rules of the corresponding services.
-
Run Minecraft: Java Edition on Android.
-
Microsoft account support from the upstream launcher.
-
Offline/local account support.
-
Ely.by Account support:
- login by username/e-mail and password;
- 2FA code support;
- token refresh;
- registration through
account.ely.by; - Ely.by skins in-game through
authlib-injector; - Ely.by skin head in the main menu.
-
Forge/Fabric/OptiFine and vanilla Minecraft support.
-
Aesthetic Preferences & Studio Navigation:
- Fully redesigned preference categories with custom titles and summaries that make accessing advanced styling and cursor customization natural and intuitive.
-
Redesigned Mod Loader Installer:
- Modern card-based interface replacing basic legacy checkboxes.
- Version filtering tailored to the selected loader type.
- Native support for Fabric, Quilt, NeoForge, Forge, and OptiFine downloads.
- Removed the obsolete BTA (Better Than Adventure) loader.
- Added the core framework for BTW (Better Than Wolves): UI is ready, downloading and compatibility logic is currently in development.
-
Custom Cursors & Built-in Pixel Editor:
- Fully Animated Cursor (
.ani) Engine: Native decoding of Windows animated cursor files using a custom binary RIFF ACON parser. - Real-Time Animation Pipeline: Optimized view callback hooks that allow smooth, 60fps cursor animation in settings card previews, the touchpad test environment, and the in-game virtual mouse.
- Custom Cursor Upload: Upload and apply any custom
.png,.cur, or.anifile directly. - Built-in Pixel Editor:
- Backdrop: Classic Photoshop-style checkerboard pattern canvas for transparent backgrounds.
- Magic Bucket (BFS Flood-Erase): Automatic contiguous background color eraser using Breadth-First Search with custom sensitivity threshold controls to erase colors (like converting white background pixels to alpha transparency instead of leaving black artifacts).
- Manual Brush Eraser: Precision manual pixel-erasing tool with a fully adjustable radius slider.
- History Stack: Multi-level Undo queue (up to 10 steps) allowing you to revert changes seamlessly.
- Ergonomics: Smart screen auto-rotation lock that prevents frustrating viewport changes while editing.
- Fully Animated Cursor (
-
Automatic Java runtime selection and installation before launch.
-
Fixes for legacy Java 8 / Java 17+ / Java 21 runtime handling.
-
High-speed parallel-racing fallback with caching and newest-first sorting for OptiFine versions (working instantly without any additional actions required from the user).
-
Smaller APK: only
arm64-v8aandarmeabi-v7a, without x86/x86_64. -
Custom XDAetherium name, icons, and default profile icon.
-
Forced Russian language option.
-
Advanced Custom Controls & Backgrounds:
- Color Palettes & Text Color: Temporarily removed custom background image uploads (to be reworked). Replaced with intuitive controls for setting solid background colors and customizing interface text colors.
- Custom Button Images/Textures: Easily upload and map custom images or custom icons directly onto individual virtual buttons for a fully personalized gaming HUD.
- Ergonomic Button Resizing: Refined and simplified scaling controls to adjust button dimensions, making them significantly more comfortable and accessible for mobile screen touch layouts.
- Additional Button Actions: Built-in actions including Cancel and Exit for robust runtime controls.
-
Global Fixes and Profile System:
- Complete Profile Isolation (Modrinth Style): Every profile is now strictly stored in its own isolated directory (
profiles/Profile_Name). Worlds, mods, and settings will never mix again! - Smart Auto-Naming: When downloading multiple modloaders (e.g., OptiFine), the launcher automatically uses exact version names or appends unique indices to folders to prevent conflicts.
- Legacy Version Crash Fixes: The launcher now automatically resets broken string-based mouse bindings (
key.mouse.middle) that crashed Minecraft 1.12.2 and older, which expected numerical codes (e.g.,-100). - Corrupted Download Protection: If an archive is partially downloaded due to network issues, the launcher detects the corrupted file, automatically deletes it, and prompts the user to retry the download instead of crashing the game.
- Bugfix Integration: Ported stability and bug fixes similar to Amethyst version 1.1.5.
- Import/Export Profiles: Easily share or back up your Minecraft profiles. Export a profile as a portable archive (includes version, modloader, and settings) and import it on any device running XDAetherium.
- Complete Profile Isolation (Modrinth Style): Every profile is now strictly stored in its own isolated directory (
-
Force Minecraft Language:
- Override the in-game Minecraft language independently of your system locale.
- Full list of ~140 supported Minecraft languages with search and filtering.
- The launcher automatically writes the selected language to Minecraft's
options.txtbefore each launch.
-
Download cancellation by long-pressing the download row/progress bar.
-
Removed extra upstream wiki/Discord author links.
The current local debug build was tested on an Android 12 device:
- debug package:
org.angelauramc.amethyst.debug - versionName:
2.0.1 - debug APK size: about
82 MB - ABI:
arm64-v8a,armeabi-v7a - no x86/x86_64 libraries in the APK
- JDK compatible with this project's Android Gradle Plugin.
- Android SDK.
- Android NDK
27.3.13750724or a compatible installed NDK. - Internet connection for Gradle dependencies and Minecraft game files.
gradlew.bat :app_pojavlauncher:assembleDebug --console=plain./gradlew :app_pojavlauncher:assembleDebug --console=plainThe debug APK will be created at:
app_pojavlauncher/build/outputs/apk/debug/app_pojavlauncher-debug.apk
Release build:
./gradlew :app_pojavlauncher:assembleRelease --console=plainOn Windows, use gradlew.bat instead of ./gradlew.
adb install -r app_pojavlauncher/build/outputs/apk/debug/app_pojavlauncher-debug.apkFor a specific device:
adb -s <device_id> install -r app_pojavlauncher/build/outputs/apk/debug/app_pojavlauncher-debug.apkXDAetherium adds a dedicated Ely.by Account login method.
How it works:
- The launcher authenticates through Ely.by's Yggdrasil-compatible API.
- The account is saved as a normal launcher Minecraft profile.
- For Ely.by accounts, the launcher adds
authlib-injectoras a Java agent when starting the game. - Minecraft receives session/profile/textures through Ely.by, so Ely.by skins work in-game.
- For the main menu, the launcher separately downloads the Ely.by skin PNG, crops the face and overlay layer, and caches it as the profile head.
If the menu skin does not update immediately, restart the launcher or reselect the Ely.by account.
The build is configured for ARM devices:
abiFilters "arm64-v8a", "armeabi-v7a"This reduces APK size and removes unused x86/x86_64 libraries. If x86/x86_64 support is needed, the ABI filters and LWJGL assets must be restored separately.
Before publishing a public repository:
- Do not publish signing credentials or keystore passwords. Keep them in environment variables,
local.properties, or another local file ignored by Git. - Do not commit
local.properties, build logs, temporary APKs, keystores, or personal files. - Keep the original
LICENSEand attribution. - State that this project is a fork/modification of Amethyst/PojavLauncher/Boardwalk.
- If you publish an APK release, publish the matching source code for that release.
Release signing values can be provided through environment variables or local.properties:
xdaetherium.release.storeFile=release.jks
xdaetherium.release.storePassword=...
xdaetherium.release.keyAlias=...
xdaetherium.release.keyPassword=...Equivalent environment variables:
XDAETHERIUM_RELEASE_STORE_FILE
XDAETHERIUM_RELEASE_STORE_PASSWORD
XDAETHERIUM_RELEASE_KEY_ALIAS
XDAETHERIUM_RELEASE_KEY_PASSWORD
The main project is distributed under GNU LGPLv3 — see LICENSE.
This project also uses components under other free software licenses. In particular, the included authlib-injector component is distributed under GNU AGPLv3 and is used as a separate Java agent component.
This project is based on work from:
- Amethyst Android
- PojavLauncher
- Boardwalk
- authlib-injector
- Ely.by API and skin system
- LWJGL, OpenJDK, SDL, GL4ES, MobileGlues, Mesa, and other dependencies used by the upstream project
Thanks to all upstream authors and library maintainers.










