Aliucord: Difference between revisions

From Discord Client Modding Wiki
Jump to navigation Jump to search
(clarified aka)
Tags: Mobile edit Mobile web edit
(Use bold text for names in the introduction)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Infobox
__NOTOC__
{{Infobox mod
| name = Aliucord
| name = Aliucord
| above = Aliucord
| logo = Aliucord logo.png
| image =  
| logoCaption = The original Aliucord logo, author unknown.
[[File:Aliucord logo.png|thumb]]
| yearsActive = February 2021 - present
| caption1 = Aliucord logo
| platforms = [[V126.21]]
| developers = [[Juby210]], [[User:Vendicated]]
| licenses = OSL-3.0
| repo = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]
| languages = [[wikipedia:Kotlin_(programming_language)|Kotlin]] + [[wikipedia:Java_(programming_language)|Java]]
}}
'''Aliucord''', commonly referred to as '''Aliu''' or '''AC''', is a mobile Discord client mod for Android. It targets the [[v126.21]] version of the Android app, a version from mid-2022 now called the ''Legacy Android App''<ref>{{cite web|title=Discord incident status referencing the legacy app|url=https://discordstatus.com/incidents/pp6njm8bcwzq}}</ref>. Its primary patching method is runtime ART hooking using [[LSPlant]].
 
==Backstory==
TODO
 
==Architecture==
While Aliucord is an extremely complex project (actively used source code is spread across ''at least'' 13 repositories), the main components can be simplified down to just four. ''Installer'' (alternatively [[#Manager|''Manager'']]), ''Injector'', ''Core'', and the external plugins. The ''Installer'' is a separate app that handles downloading the Discord APK from a mirror, adding in a precompiled ''Injector'', which replaces an entry point into the app. Once this replaced class is run, the ''Injector'' initializes LSPlant and downloads a precompiled ''Core'' to execute, which applies some fixes and then loads externally installed plugins.


| label1 = Status
More detailed info can be found in this blog post: {{cite web|title=Aliucord: Modding the legacy Discord app|url=https://rushii.materii.dev/aliucord}}
| data1  = Active


| label2 = Latest release
==Manager==
| data2  = '''Core''': [https://github.com/Aliucord/Aliucord/commit/ce8083e74731e8fde2aec1bcf27ab047e7014d15 ce8083e]
''Aliucord Manager'' was created in the summer of 2021<ref>{{cite web|title=Aliucord Manager initial commit|url=https://github.com/Aliucord/Manager/commit/7881279196652bf79ae83d971689d6ea6731d833}}</ref>, aiming to replace the Aliucord Installer with better design. It is written entirely in [[wikipedia:Kotlin_(programming_language)|Kotlin]] and [https://developer.android.com/jetpack/compose Jetpack Compose]. As of March 2024, it is still under development, nearly three years later. While initially, the main idea of this rewrite was to stop using [[wikipedia:Flutter_(software)|Flutter]], new ideas and features started to be implemented, aided by collaboration with [[Vendetta]]'s [https://github.com/vendetta-mod/VendettaManager Manager]. A more user-friendly UI, an install flow that handles edge cases, and multi-install support are some of the main differences.
'''Installer''': [https://github.com/Aliucord/Aliucord/releases/tag/1.1.3 1.1.3]
<!-- TODO: add images of various manager screens -->


| label3 = License
==Notes==
| data3  = Open Software License 3.0
<references/>


| label4 = Repository
[[Category:Client Mods]]
| data4  = [https://github.com/Aliucord/Aliucord Aliucord/Aliucord]
}}
'''Aliucord''', also known as '''Aliu''' or abbreviated as '''AC''', is a mobile client mod for the [https://en.wikipedia.org/wiki/Kotlin_(programming_language) Kotlin]
[[Category:Client Mods]] Discord client.

Latest revision as of 22:33, 13 March 2024

Aliucord
The original Aliucord logo, author unknown.
ActiveFebruary 2021 - present
Platform(s)V126.21
Lead developer(s)Juby210, User:Vendicated
RepositoryAliucord/Aliucord
License(s)OSL-3.0
Language(s)Kotlin + Java

Aliucord, commonly referred to as Aliu or AC, is a mobile Discord client mod for Android. It targets the v126.21 version of the Android app, a version from mid-2022 now called the Legacy Android App[1]. Its primary patching method is runtime ART hooking using LSPlant.

Backstory

TODO

Architecture

While Aliucord is an extremely complex project (actively used source code is spread across at least 13 repositories), the main components can be simplified down to just four. Installer (alternatively Manager), Injector, Core, and the external plugins. The Installer is a separate app that handles downloading the Discord APK from a mirror, adding in a precompiled Injector, which replaces an entry point into the app. Once this replaced class is run, the Injector initializes LSPlant and downloads a precompiled Core to execute, which applies some fixes and then loads externally installed plugins.

More detailed info can be found in this blog post: "Aliucord: Modding the legacy Discord app".

Manager

Aliucord Manager was created in the summer of 2021[2], aiming to replace the Aliucord Installer with better design. It is written entirely in Kotlin and Jetpack Compose. As of March 2024, it is still under development, nearly three years later. While initially, the main idea of this rewrite was to stop using Flutter, new ideas and features started to be implemented, aided by collaboration with Vendetta's Manager. A more user-friendly UI, an install flow that handles edge cases, and multi-install support are some of the main differences.

Notes