New behavior is as follows.
If below 1.17, use the GL4ES based renderer.
If below 1.17 and modded, use the Mesa renderer (Zink in this case).
If above 1.17 and/or modded, use MobileGlues.
Simplifies to one constructor. We don't need to copy the approach of
forge because neoforge integrates the minecraft version into their
version scheme, thus we have no use for the minecraft version provided
to us.
For some reason it keeps trying to use the system apache commons instead
of the one in the app, and because that one is really old, this method
is missing so it crashes.
Crash report
- Time: 26-Dec-2025 6:46:49 PM
- Device: lineage_Hol-U19 Hol-U19
- Android version: 7.1.2
- Crash stack trace:
- Launcher version:
amethyst-legacy-20251226-c798f65-feat/import-modpack
java.lang.NoSuchMethodError: No static method
encodeHexString([B)Ljava/lang/String; in class
Lorg/apache/commons/codec/binary/Hex; or its super classes (declaration
of 'org.apache.commons.codec.binary.Hex' appears in
/system/framework/org.apache.http.legacy.boot.jar)
We want to be able to grey out files that are not .zip or .mrpack so
people can have an easier chance of seeing their modpacks. To do this,
we match the `application/x-modrinth-modpack+zip` and `application/zip`
mimetypes as prescribed in the Modrinth documentation
https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack.
Stock android does not have `application/x-modrinth-modpack+zip`. OEM
vendors seem to include this in their ROMs, possibly from just using
https://gitlab.freedesktop.org/xdg/shared-mime-info as part of where
they source their additional mimetypes from.
There's a tendency for Android 12 and below to not have the
`application/x-modrinth-modpack+zip` mimetype, likely due to the
addition of it being relatively recent, so we have to account for that
by also adding `application/octet-stream`.
We cannot only have `application/octet-stream` or else it fails to match
.mrpack in systems that have `application/x-modrinth-modpack+zip`.
Sadly there seems to be no reliable way to check whether or the the ROM
has the `application/x-modrinth-modpack+zip` mimetype so we just match
it along with `application/octet-stream` to cover our bases.
AE1 mistakenly passes in `1` as an ASM api version when it uses
`SignatureVisitor`. This is valid in ASM4 because it never checks if the
Opcode is valid, this is fixed in ASM5, which we override ASM4 with due
to compatibility issues with the Java 8 JRE we use
ASM is only loaded if we are modded, so we should only apply it if we
are modded or else ASM is missing.
We can leave it running even if the version being ran uses lwjgl3.3.3,
it wont cause issues, it's just an overload.