forked from distok/cutthecord
Compare commits
16 commits
2021-05-31
...
2021-05-31
Author | SHA1 | Date | |
---|---|---|---|
59c76a6506 | |||
a8c17e2032 | |||
de8cfb9a10 | |||
b7aa569435 | |||
7e4c49becc | |||
f58c28410d | |||
91c37ab9d0 | |||
166d763792 | |||
0754700d51 | |||
c4fd0be029 | |||
d139344274 | |||
b6f80bbee0 | |||
2786de6c73 | |||
de992e86ea | |||
78d5dea649 | |||
7b77ce9eda |
13 changed files with 109 additions and 27 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -4,4 +4,11 @@ resources/distok/versionlogs/*
|
||||||
!resources/distok/versionlogs/.gitkeep
|
!resources/distok/versionlogs/.gitkeep
|
||||||
resources/fdroid/repo/icons/*.xml
|
resources/fdroid/repo/icons/*.xml
|
||||||
resources/fonts/*.ttf
|
resources/fonts/*.ttf
|
||||||
|
resources/fonts/*.otf
|
||||||
|
resources/icons/others/*
|
||||||
|
!resources/icons/others/.gitkeep
|
||||||
|
resources/ringtones/*
|
||||||
|
!resources/ringtones/.gitkeep
|
||||||
|
resources/keystores/*
|
||||||
|
!resources/keystores/.gitkeep
|
||||||
*.apk
|
*.apk
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Modular Client Mod for Discord's Android app.
|
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
|
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.
|
New patch development will be done for the latest supported version.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Check out [README.md in patches folder to see what patches are available and what each of them do](patches/README.md)!
|
Check out [README.md in patches folder to see what patches are available and what each of them do](patches/README.md)!
|
||||||
|
|
||||||
|
|
0
resources/icons/others/.gitkeep
Normal file
0
resources/icons/others/.gitkeep
Normal file
0
resources/keystores/.gitkeep
Normal file
0
resources/keystores/.gitkeep
Normal 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-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-xhdpi/ic_launcher_foreground.png
|
||||||
\cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-xxhdpi/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 |
|
@ -1,2 +1,2 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png
|
\cp "$1" res/drawable-xxxhdpi/img_logo.png
|
||||||
|
|
|
@ -1,8 +1,23 @@
|
||||||
Binary files com.discord-base/build/apk/classes3.dex and com.discord/build/apk/classes3.dex differ
|
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
|
||||||
Binary files com.discord-base/dist/com.discord-78204.apk and com.discord/dist/com.discord-78204.apk differ
|
*** com.discord-87202-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:08:14.202391194 +0300
|
||||||
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-87202/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:14:01.302308963 +0300
|
||||||
*** 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
|
*** 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 ****
|
*** 206,212 ****
|
||||||
|
|
||||||
|
@ -20,3 +35,20 @@ diff -crB com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexIn
|
||||||
|
|
||||||
goto :goto_1
|
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
|
||||||
|
|
|
@ -1,10 +1,26 @@
|
||||||
#!/bin/bash
|
#!/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
|
chmod +x gradlew
|
||||||
rm -rf build
|
rm -rf build
|
||||||
./gradlew build
|
./gradlew build
|
||||||
cd build/libs
|
cd build/libs
|
||||||
/lib/android-sdk/build-tools/debian/dx --dex --output ctccommands.apk ctccommands-1.0-SNAPSHOT.jar
|
$DISTOK_DX_COMMAND --dex --output ctccommands.apk ctccommands-1.0-SNAPSHOT.jar
|
||||||
java -jar /opt/ctc/tools/apktool.jar d ctccommands.apk
|
$DISTOK_APKTOOL_COMMAND d ctccommands.apk
|
||||||
cp -r ctccommands/smali/* ${DISTOK_EXTRACTED_DISCORD_PATH}/smali/
|
cp -r ctccommands/smali/* ${DISTOK_EXTRACTED_DISCORD_PATH}/smali/
|
|
@ -20,7 +20,7 @@ sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
|
|
||||||
dependencies {
|
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 {
|
test {
|
||||||
|
|
|
@ -21,7 +21,7 @@ def xmlpatch(patch_file, workdir, patch_name=""):
|
||||||
|
|
||||||
print(f"Applying {patch_file}")
|
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)
|
shell=True, check=True, cwd=workdir)
|
||||||
|
|
||||||
def patch(patch_file, workdir, patch_name=""):
|
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"]
|
VERSION = STATE["versioncode"]
|
||||||
|
|
||||||
BASE_APK_PATH = os.path.join(WORK_FOLDER, f"discord-base-{VERSION}")
|
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
|
# Wipe and recreate the base jar folder
|
||||||
if os.path.exists(BASE_JAR_PATH):
|
if os.path.exists(BASE_JAR_PATH):
|
||||||
shutil.rmtree(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"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"{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"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
|
# Copy the base cache to work on it
|
||||||
shutil.copytree(BASE_APK_PATH, WORK_APK_PATH)
|
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"))
|
os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "logo_debug.png"))
|
||||||
|
|
||||||
if BRANCH in DYN_ICONS:
|
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"],
|
shutil.copyfile(DYN_ICONS[BRANCH]["fg"],
|
||||||
os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png"))
|
os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png"))
|
||||||
elif "default" in ICONS:
|
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"],
|
shutil.copyfile(DYN_ICONS["default"]["fg"],
|
||||||
os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png"))
|
os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png"))
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import os
|
||||||
|
|
||||||
APKTOOL_BIN = "java -jar /opt/ctc/tools/apktool.jar"
|
APKTOOL_BIN = "java -jar /opt/ctc/tools/apktool.jar"
|
||||||
DEX2JAR_BIN = "java -jar /opt/ctc/tools/dex2jar.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
|
# APKs must be placed under $DISTOK_FOLDER/android/$PACKAGE_ID-$VERSION_NUMBER.apk
|
||||||
# Example: /home/ave/distok/android/com.discord-909.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"}
|
"default": "/opt/ctc/gitrepo/resources/icons/ctclogo.png"}
|
||||||
|
|
||||||
# Custom dynamic icons, default = applied to all the ones not explicitly stated
|
# Custom dynamic icons, default = applied to all the ones not explicitly stated
|
||||||
DYN_ICONS = {"ave": {"bg": "/opt/ctc/gitrepo/resources/icons/bg.png",
|
DYN_ICONS = {"ave": {"fg": "/opt/ctc/gitrepo/resources/icons/fg.png"},
|
||||||
"fg": "/opt/ctc/gitrepo/resources/icons/fg.png"},
|
"default": {"fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}}
|
||||||
"default": {"bg": "/opt/ctc/gitrepo/resources/icons/dcbg.png",
|
|
||||||
"fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}}
|
|
||||||
|
|
||||||
# Custom app names, default = applied to all the ones not explicitly stated
|
# Custom app names, default = applied to all the ones not explicitly stated
|
||||||
# Needs to be one word, __ gets replaced with space
|
# Needs to be one word, __ gets replaced with space
|
||||||
|
|
|
@ -36,8 +36,43 @@
|
||||||
<replace sel="resources/color[@name='primary_700_alpha_60']/text()">#990f0f0f</replace>
|
<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_600']/text()">#ff000000</replace>
|
||||||
<replace sel="resources/color[@name='primary_dark_630']/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='primary_dark_700']/text()">#ff000000</replace>
|
||||||
<replace sel="resources/color[@name='tooltip_background_dark']/text()">#e6000000</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>
|
||||||
|
|
||||||
|
<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>
|
</diffs>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue