diff --git a/.gitignore b/.gitignore index 4dbd9d3..8845bb8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,11 @@ resources/distok/versionlogs/* !resources/distok/versionlogs/.gitkeep resources/fdroid/repo/icons/*.xml resources/fonts/*.ttf +resources/fonts/*.otf +resources/icons/others/* +!resources/icons/others/.gitkeep +resources/ringtones/* +!resources/ringtones/.gitkeep +resources/keystores/* +!resources/keystores/.gitkeep *.apk diff --git a/README.md b/README.md index fc55aca..bd82bc6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ Modular Client Mod for Discord's Android app. -**THIS IS A WORK IN PROGRESS BRANCH! THE PATCHES ARE INCOMPLETE!** +**THIS IS A WORK IN PROGRESS BRANCH! SOME PATCHES ARE MISSING (tokenlogin, hideunusableemojis, plus showtag has a bug)!** + +Current state is good enoughâ„¢ for an RC release, and there's currently RC releases in the repo. Update away! For status updates and support on the project, join #cutthecord on https://libera.chat. WebIRC link: https://web.libera.chat/#cutthecord @@ -10,7 +12,7 @@ For status updates and support on the project, join #cutthecord on https://liber New patch development will be done for the latest supported version. -![A CutTheCord screenshot](https://elixi.re/t/mh3eirsy9.png) +![A CutTheCord screenshot](https://elixi.re/t/m16z287iw.png) Check out [README.md in patches folder to see what patches are available and what each of them do](patches/README.md)! diff --git a/resources/icons/others/.gitkeep b/resources/icons/others/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resources/keystores/.gitkeep b/resources/keystores/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resources/patches/branding/customdynamicicon.sh b/resources/patches/branding/customdynamicicon.sh index 750bb67..0bc68a7 100644 --- a/resources/patches/branding/customdynamicicon.sh +++ b/resources/patches/branding/customdynamicicon.sh @@ -1,7 +1,3 @@ -\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-hdpi/ic_launcher_background.png -\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-xhdpi/ic_launcher_background.png -\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-xxhdpi/ic_launcher_background.png - \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-hdpi/ic_launcher_foreground.png \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-xhdpi/ic_launcher_foreground.png \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/resources/patches/customtheme/asset_loading_zhu_white.png b/resources/patches/customtheme/asset_loading_zhu_white.png index 1c1e5a1..a0d16f2 100644 Binary files a/resources/patches/customtheme/asset_loading_zhu_white.png and b/resources/patches/customtheme/asset_loading_zhu_white.png differ diff --git a/resources/patches/customtheme/fixsplash.sh b/resources/patches/customtheme/fixsplash.sh index b1a9574..a7ab3f9 100644 --- a/resources/patches/customtheme/fixsplash.sh +++ b/resources/patches/customtheme/fixsplash.sh @@ -1,2 +1,2 @@ #!/bin/bash -\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png +\cp "$1" res/drawable-xxxhdpi/img_logo.png diff --git a/resources/patches/nocamerabutton/87202.patch b/resources/patches/nocamerabutton/87202.patch index 49d6d8e..fb56644 100644 --- a/resources/patches/nocamerabutton/87202.patch +++ b/resources/patches/nocamerabutton/87202.patch @@ -1,8 +1,23 @@ -Binary files com.discord-base/build/apk/classes3.dex and com.discord/build/apk/classes3.dex differ -Binary files com.discord-base/dist/com.discord-78204.apk and com.discord/dist/com.discord-78204.apk differ -diff -crB com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali com.discord/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali -*** com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-05-31 14:05:59.000000000 +0300 ---- com.discord/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-05-31 16:02:21.000000000 +0300 +diff --color -crB com.discord-87202-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali com.discord-87202/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali +*** com.discord-87202-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:08:14.202391194 +0300 +--- com.discord-87202/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:14:01.302308963 +0300 +*************** +*** 183,189 **** + + if-nez v4, :cond_5 + +! const/4 v9, 0x0 + + goto :goto_0 + +--- 183,189 ---- + + if-nez v4, :cond_5 + +! const/16 v9, 0x8 + + goto :goto_0 + *************** *** 206,212 **** @@ -20,3 +35,20 @@ diff -crB com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexIn goto :goto_1 +*************** +*** 234,240 **** + goto :goto_2 + + :cond_7 +! const/16 v4, 0x8 + + :goto_2 + invoke-virtual {v5, v4}, Landroid/widget/ImageButton;->setVisibility(I)V +--- 234,240 ---- + goto :goto_2 + + :cond_7 +! const/16 v4, 0x0 + + :goto_2 + invoke-virtual {v5, v4}, Landroid/widget/ImageButton;->setVisibility(I)V diff --git a/resources/patches/slashcommands/87202-pre.sh b/resources/patches/slashcommands/87202-pre.sh index f6500a0..0f4edf6 100644 --- a/resources/patches/slashcommands/87202-pre.sh +++ b/resources/patches/slashcommands/87202-pre.sh @@ -1,10 +1,26 @@ #!/bin/bash -cd /opt/ctc/gitrepo/resources/patches/slashcommands/code +if [ -z "$DISTOK_FOLDER" ] +then + cd /opt/ctc/gitrepo/resources/patches/slashcommands/code +else + cd "$DISTOK_FOLDER/resources/patches/slashcommands/code" +fi + +if [ -z "$DISTOK_APKTOOL_COMMAND" ] +then + DISTOK_APKTOOL_COMMAND="java -jar /opt/ctc/tools/apktool.jar" +fi + +if [ -z "$DISTOK_DX_COMMAND" ] +then + DISTOK_DX_COMMAND="/lib/android-sdk/build-tools/debian/dx" +fi + chmod +x gradlew rm -rf build ./gradlew build cd build/libs -/lib/android-sdk/build-tools/debian/dx --dex --output ctccommands.apk ctccommands-1.0-SNAPSHOT.jar -java -jar /opt/ctc/tools/apktool.jar d ctccommands.apk +$DISTOK_DX_COMMAND --dex --output ctccommands.apk ctccommands-1.0-SNAPSHOT.jar +$DISTOK_APKTOOL_COMMAND d ctccommands.apk cp -r ctccommands/smali/* ${DISTOK_EXTRACTED_DISCORD_PATH}/smali/ \ No newline at end of file diff --git a/resources/patches/slashcommands/code/build.gradle b/resources/patches/slashcommands/code/build.gradle index 28a7cbc..59a0f8e 100644 --- a/resources/patches/slashcommands/code/build.gradle +++ b/resources/patches/slashcommands/code/build.gradle @@ -20,7 +20,7 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { - implementation files('/tmp/cutthecord/discord-base-jar/discord-base.jar', 'libs/discord87202.jar') + implementation files('/tmp/cutthecord/discord-base-87202-jar/discord-base.jar', 'libs/discord87202.jar') } test { diff --git a/resources/scripts/ctcci/ctcci.py b/resources/scripts/ctcci/ctcci.py index 124d2ae..b17add8 100755 --- a/resources/scripts/ctcci/ctcci.py +++ b/resources/scripts/ctcci/ctcci.py @@ -21,7 +21,7 @@ def xmlpatch(patch_file, workdir, patch_name=""): print(f"Applying {patch_file}") - subprocess.run(f"java -cp /opt/ctc/tools/xml-patch.jar com.github.dnault.xmlpatch.BatchPatcher --patch {patch_file} --srcdir {workdir}", + subprocess.run(f"{XML_PATCH_BIN} com.github.dnault.xmlpatch.BatchPatcher --patch {patch_file} --srcdir {workdir}", shell=True, check=True, cwd=workdir) def patch(patch_file, workdir, patch_name=""): @@ -48,7 +48,7 @@ with open(os.path.join(REPO_FOLDER, "resources/patchport-state.json")) as f: VERSION = STATE["versioncode"] BASE_APK_PATH = os.path.join(WORK_FOLDER, f"discord-base-{VERSION}") -BASE_JAR_PATH = os.path.join(WORK_FOLDER, f"discord-base-jar") +BASE_JAR_PATH = os.path.join(WORK_FOLDER, f"discord-base-{VERSION}-jar") # Wipe and recreate the base jar folder if os.path.exists(BASE_JAR_PATH): shutil.rmtree(BASE_JAR_PATH) @@ -88,7 +88,6 @@ if not os.path.exists(BASE_JAR_PATH): subprocess.run(f"unzip -j {INPUT_FILE} *.dex -d {BASE_JAR_PATH}", shell=True, cwd=WORK_FOLDER) subprocess.run(f"{DEX2JAR_BIN} *.dex", shell=True, cwd=BASE_JAR_PATH) subprocess.run(f"zipmerge discord-base.jar classes*dex2jar.jar", shell=True, cwd=BASE_JAR_PATH) - subprocess.run(f"rm classes*dex2jar.jar *.dex", shell=True, cwd=BASE_JAR_PATH) # Copy the base cache to work on it shutil.copytree(BASE_APK_PATH, WORK_APK_PATH) @@ -141,13 +140,9 @@ for patch_name in PATCHES: os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "logo_debug.png")) if BRANCH in DYN_ICONS: - shutil.copyfile(DYN_ICONS[BRANCH]["bg"], - os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_background.png")) shutil.copyfile(DYN_ICONS[BRANCH]["fg"], os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png")) elif "default" in ICONS: - shutil.copyfile(DYN_ICONS["default"]["bg"], - os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_background.png")) shutil.copyfile(DYN_ICONS["default"]["fg"], os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png")) diff --git a/resources/scripts/ctcci/ctcconfig.example.py b/resources/scripts/ctcci/ctcconfig.example.py index 095f888..6ad82bb 100644 --- a/resources/scripts/ctcci/ctcconfig.example.py +++ b/resources/scripts/ctcci/ctcconfig.example.py @@ -2,6 +2,7 @@ import os APKTOOL_BIN = "java -jar /opt/ctc/tools/apktool.jar" DEX2JAR_BIN = "java -jar /opt/ctc/tools/dex2jar.jar" +XML_PATCH_BIN = "java -cp /opt/ctc/tools/xml-patch.jar" # APKs must be placed under $DISTOK_FOLDER/android/$PACKAGE_ID-$VERSION_NUMBER.apk # Example: /home/ave/distok/android/com.discord-909.apk @@ -50,10 +51,8 @@ ICONS = {"ave": "/opt/ctc/gitrepo/resources/icons/ctclogoave.png", "default": "/opt/ctc/gitrepo/resources/icons/ctclogo.png"} # Custom dynamic icons, default = applied to all the ones not explicitly stated -DYN_ICONS = {"ave": {"bg": "/opt/ctc/gitrepo/resources/icons/bg.png", - "fg": "/opt/ctc/gitrepo/resources/icons/fg.png"}, - "default": {"bg": "/opt/ctc/gitrepo/resources/icons/dcbg.png", - "fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}} +DYN_ICONS = {"ave": {"fg": "/opt/ctc/gitrepo/resources/icons/fg.png"}, + "default": {"fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}} # Custom app names, default = applied to all the ones not explicitly stated # Needs to be one word, __ gets replaced with space diff --git a/resources/xmlpatches/customtheme/87202.xml b/resources/xmlpatches/customtheme/87202.xml index 34ead93..fef3faf 100644 --- a/resources/xmlpatches/customtheme/87202.xml +++ b/resources/xmlpatches/customtheme/87202.xml @@ -36,8 +36,43 @@ #990f0f0f #ff000000 #ff000000 + #ff000000 #ff000000 #e6000000 + #ff9c4249 + #ff9c4249 + #1a5865f2 + #335865f2 + + #1a9c4249 + #149c4249 + #4d9c4249 + #1a9c4249 + + + + @color/primary_500 + + + + @color/primary_500 + + + + @color/primary_500 + + + + @color/primary_500 + + + + @color/primary_500 + + + + @color/primary_500 +