From d67e7e3017a0a3d4ce4332542379a91246f8be50 Mon Sep 17 00:00:00 2001 From: videogame hacker Date: Wed, 4 Aug 2021 22:55:47 +0100 Subject: [PATCH] Initial commit - Custom theme and logo --- .editorconfig | 9 +++++++ .gitignore | 7 ++++++ android_discord_patches/__init__.py | 1 + android_discord_patches/custom_theme.py | 22 ++++++++++++++++ lesbibabs.png | Bin 0 -> 10483 bytes patch.py | 32 ++++++++++++++++++++++++ 6 files changed, 71 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 android_discord_patches/__init__.py create mode 100644 android_discord_patches/custom_theme.py create mode 100644 lesbibabs.png create mode 100644 patch.py diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..73390a1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..67ca72c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/discord.apk +/discord +__pycache__ + +*.keystore +*.keystore.pw +discord*.apk* diff --git a/android_discord_patches/__init__.py b/android_discord_patches/__init__.py new file mode 100644 index 0000000..81e5c5e --- /dev/null +++ b/android_discord_patches/__init__.py @@ -0,0 +1 @@ +from .custom_theme import patch_theme diff --git a/android_discord_patches/custom_theme.py b/android_discord_patches/custom_theme.py new file mode 100644 index 0000000..15878bc --- /dev/null +++ b/android_discord_patches/custom_theme.py @@ -0,0 +1,22 @@ +import shutil +import os + + +def apply_custom_theme(colors_file: str) -> str: + return colors_file \ + .replace("36393f", "292841") \ + .replace("292b2f", "413f66") \ + .replace("2f3136", "242338") \ + .replace("202225", "1c1b29") \ + .replace("18191c", "1c1b29") + + +def patch_theme(): + with open("discord/res/values/colors.xml") as f: + color_theme = f.read() + color_theme = apply_custom_theme(color_theme) + with open("discord/res/values/colors.xml", "w") as f: + f.write(color_theme) + + os.remove("discord/res/drawable-xxxhdpi/img_logo.png") + shutil.copy("lesbibabs.png", "discord/res/drawable-xxxhdpi/img_logo.png") diff --git a/lesbibabs.png b/lesbibabs.png new file mode 100644 index 0000000000000000000000000000000000000000..e63b5c027014e4a9c5845d39da23a5cfeb9de494 GIT binary patch literal 10483 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 X@srdP+?}65s-SQO?JTo?cE9pJFzemt literal 0 HcmV?d00001 diff --git a/patch.py b/patch.py new file mode 100644 index 0000000..a9ab5cf --- /dev/null +++ b/patch.py @@ -0,0 +1,32 @@ +from android_discord_patches import patch_theme +import shutil +import os + + +def disassemble(): + shutil.rmtree("discord", ignore_errors=True) + os.system("apktool d ./discord.apk -o discord") + + +def patch(): + patch_theme() + + input("[hit enter]") + + +def reassemble(): + os.system("apktool b discord -o discord-patched.apk") + + os.system( + "apksigner sign " + "--ks discord.keystore " + "--ks-pass file:discord.keystore.pw " + "--in discord-patched.apk " + "--out discord-patched-signed.apk " + ) + + +if __name__ == "__main__": + disassemble() + patch() + reassemble()