Compare commits

...

16 commits

13 changed files with 109 additions and 27 deletions

7
.gitignore vendored
View file

@ -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

View file

@ -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)!

View file

View file

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -1,2 +1,2 @@
#!/bin/bash
\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png
\cp "$1" res/drawable-xxxhdpi/img_logo.png

View file

@ -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

View file

@ -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/

View file

@ -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 {

View file

@ -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"))

View file

@ -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

View file

@ -36,8 +36,43 @@
<replace sel="resources/color[@name='primary_700_alpha_60']/text()">#990f0f0f</replace>
<replace sel="resources/color[@name='primary_dark_600']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_630']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_660']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_700']/text()">#ff000000</replace>
<replace sel="resources/color[@name='tooltip_background_dark']/text()">#e6000000</replace>
<replace sel="resources/color[@name='brand']/text()">#ff9c4249</replace>
<replace sel="resources/color[@name='brand_500']/text()">#ff9c4249</replace>
<replace sel="resources/color[@name='brand_500_alpha_10']/text()">#1a5865f2</replace>
<replace sel="resources/color[@name='brand_500_alpha_20']/text()">#335865f2</replace>
</diff>
<diff file="res/values/styles.xml">
<replace sel="resources/style[@name='AppTheme.AutoGenerated.Dark']/item[@name='colorBackgroundMentioned']/text()">#1a9c4249</replace>
<replace sel="resources/style[@name='AppTheme.AutoGenerated.Dark']/item[@name='colorBackgroundMentionedHover']/text()">#149c4249</replace>
<replace sel="resources/style[@name='AppTheme.Base.Dark']/item[@name='theme_chat_mention_background']/text()">#4d9c4249</replace>
<replace sel="resources/style[@name='AppTheme.Base.Dark']/item[@name='theme_chat_mentioned_me']/text()">#1a9c4249</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round_beta.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round_canary.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square_beta.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square_canary.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
</diffs>