base on A Minecraft: Java Edition Launcher for Android # Zalith Launcher 2 ![Downloads](https://img.shields.io/github/downloads/ZalithLauncher/ZalithLauncher2/total) ![Discord](https://img.shields.io/discord/1409012263423185039?logo=discord&label=Discord&color=7289DA&link=https%3A%2F%2Fdiscord.gg%2FyDDkTHp4cJ) [![Sponsor](https://img.shields.io/badge/sponsor-30363D?logo=GitHub-Sponsors)](https://afdian.com/a/MovTery) <!-- [![QQ](https://img.shields.io/badge/QQ-blue)](https://qm.qq.com/q/2MVxS0B29y) --> [简体中文](README_ZH_CN.md) | [繁體中文](README_ZH_TW.md) **Zalith Launcher 2** is a newly designed launcher for **Android devices** tailored for [Minecraft: Java Edition](https://www.minecraft.net/). The project uses [PojavLauncher](https://github.com/PojavLauncherTeam/PojavLauncher/tree/v3_openjdk/app_pojavlauncher/src/main/jni) as its core launching engine and features a modern UI built with **Jetpack Compose** and **Material Design 3**. We are currently building our official website [zalithlauncher.cn](https://zalithlauncher.cn) Additionally, we are aware that a third-party website has been set up using the name “Zalith Launcher,” appearing to be official. Please note: **this site was not created by us**. It exploits the name to display ads for profit. We **do not participate in, endorse, or trust** such content. Please stay vigilant and **protect your personal privacy**! > [!WARNING] > This project is **completely separate** from [ZalithLauncher](https://github.com/ZalithLauncher/ZalithLauncher). > The project is in an early development stage. Many features are still under construction—stay tuned for updates! ## 🌐 Language and Translation Support We are using the Weblate platform to translate Zalith Launcher 2. You're welcome to join our [Weblate project](https://hosted.weblate.org/projects/zalithlauncher2) and contribute to the translations! Thank you to every language contributor for helping make Zalith Launcher 2 more multilingual and global! ## 👨‍💻 Developer This project is currently being developed solely by [@MovTery](https://github.com/MovTery). Feedback, suggestions, and issue reports are very welcome. As it's a personal project, development may take time—thank you for your patience! ## 📦 Build Instructions (For Developers) > The following section is for developers who wish to contribute or build the project locally. ### Requirements * Android Studio **Bumblebee** or newer * Android SDK: * **Minimum API level**: 26 * **Target API level**: 35 * JDK 11 ### Build Steps ```bash git clone [email protected]:ZalithLauncher/ZalithLauncher2.git # Open the project in Android Studio and build ``` ## 📜 License This project is licensed under the **[GPL-3.0 license](LICENSE)**. ### Additional Terms (Pursuant to Section 7 of the GPLv3 License) 1. When distributing a modified version of this program, you must reasonably modify the program's name or version number to distinguish it from the original version. (According to [GPLv3, 7(c)](https://github.com/ZalithLauncher/ZalithLauncher2/blob/969827b/LICENSE#L372-L374)) - Modified versions **must not include the original program name "ZalithLauncher" or its abbreviation "ZL" in their name, nor use any name that is similar enough to cause confusion with the official name**. - All modified versions **must clearly indicate that they are “Unofficial Modified Versions” on the program’s startup screen or main interface**. - The application name of the program can be modified in [gradle.properties](./ZalithLauncher/gradle.properties). 2. You must not remove the copyright notices displayed by the program. (According to [GPLv3, 7(b)](https://github.com/ZalithLauncher/ZalithLauncher2/blob/969827b/LICENSE#L368-L370)) ## Open Source Libraries and Licenses This software uses the following open source libraries: | Library | Copyright | License | Official Link | |---------------------------------------|-----------------------------------------------------------------------------|----------------------|-----------------------------------------------------------------------------------| | androidx-constraintlayout-compose | Copyright © The Android Open Source Project | Apache 2.0 | [Link](https://developer.android.com/develop/ui/compose/layouts/constraintlayout) | | androidx-material-icons-core | Copyright © The Android Open Source Project | Apache 2.0 | [Link](https://developer.android.com/jetpack/androidx/releases/compose-material) | | androidx-material-icons-extended | Copyright © The Android Open Source Project | Apache 2.0 | [Link](https://developer.android.com/jetpack/androidx/releases/compose-material) | | Apache Commons Codec | - | Apache 2.0 | [Link](https://commons.apache.org/proper/commons-codec) | | Apache Commons Compress | - | Apache 2.0 | [Link](https://commons.apache.org/proper/commons-compress) | | Apache Commons IO | - | Apache 2.0 | [Link](https://commons.apache.org/proper/commons-io) | | ByteHook | Copyright © 2020-2024 ByteDance, Inc. | MIT License | [Link](https://github.com/bytedance/bhook) | | Coil Compose | Copyright © 2025 Coil Contributors | Apache 2.0 | [Link](https://github.com/coil-kt/coil) | | Coil Gifs | Copyright © 2025 Coil Contributors | Apache 2.0 | [Link](https://github.com/coil-kt/coil) | | Fishnet | Copyright © 2025 Kyant | Apache 2.0 | [Link](https://github.com/Kyant0/Fishnet) | | Gson | Copyright © 2008 Google Inc. | Apache 2.0 | [Link](https://github.com/google/gson) | | kotlinx.coroutines | Copyright © 2000-2020 JetBrains s.r.o. | Apache 2.0 | [Link](https://github.com/Kotlin/kotlinx.coroutines) | | ktor-client-cio | Copyright © 2000-2023 JetBrains s.r.o. | Apache 2.0 | [Link](https://ktor.io) | | ktor-client-content-negotiation | Copyright © 2000-2023 JetBrains s.r.o. | Apache 2.0 | [Link](https://ktor.io) | | ktor-client-core | Copyright © 2000-2023 JetBrains s.r.o. | Apache 2.0 | [Link](https://ktor.io) | | ktor-http | Copyright © 2000-2023 JetBrains s.r.o. | Apache 2.0 | [Link](https://ktor.io) | | ktor-serialization-kotlinx-json | Copyright © 2000-2023 JetBrains s.r.o. | Apache 2.0 | [Link](https://ktor.io) | | LWJGL - Lightweight Java Game Library | Copyright © 2012-present Lightweight Java Game Library All rights reserved. | BSD 3-Clause License | [Link](https://github.com/LWJGL/lwjgl3) | | material-color-utilities | Copyright 2021 Google LLC | Apache 2.0 | [Link](https://github.com/material-foundation/material-color-utilities) | | Maven Artifact | Copyright © The Apache Software Foundation | Apache 2.0 | [Link](https://github.com/apache/maven/tree/maven-3.9.9/maven-artifact) | | Media3 | Copyright © The Android Open Source Project | Apache 2.0 | [Link](https://developer.android.com/jetpack/androidx/releases/media3) | | MMKV | Copyright © 2018 THL A29 Limited, a Tencent company. | BSD 3-Clause License | [Link](https://github.com/Tencent/MMKV) | | Navigation 3 | Copyright © The Android Open Source Project | Apache 2.0 | [Link](https://developer.android.com/jetpack/androidx/releases/navigation3) | | NBT | Copyright © 2016 - 2020 Querz | MIT License | [Link](https://github.com/Querz/NBT) | | OkHttp | Copyright © 2019 Square, Inc. | Apache 2.0 | [Link](https://github.com/square/okhttp) | | Process Phoenix | Copyright © 2015 Jake Wharton | Apache 2.0 | [Link](https://github.com/JakeWharton/ProcessPhoenix) | | proxy-client-android | - | LGPL-3.0 License | [Link](https://github.com/TouchController/TouchController) | | Reorderable | Copyright © 2023 Calvin Liang | Apache 2.0 | [Link](https://github.com/Calvin-LL/Reorderable) | | StringFog | Copyright © 2016-2023, Megatron King | Apache 2.0 | [Link](https://github.com/MegatronKing/StringFog) | | XZ for Java | Copyright © The XZ for Java authors and contributors | 0BSD License | [Link](https://tukaani.org/xz/java.html) | ", Assign "at most 3 tags" to the expected json: {"id":"15490","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"