Compare commits

...
Sign in to create a new pull request.

126 commits

Author SHA1 Message Date
ave
59c76a6506 Revert "betterrotation: Restore from old-patches"
This reverts commit a8c17e2032.

I am an idiot
2021-08-24 22:14:28 +03:00
ave
a8c17e2032 betterrotation: Restore from old-patches 2021-08-24 21:47:57 +03:00
ave
de8cfb9a10 readme: Make the screenshot smaller 2021-08-23 00:03:15 +03:00
ave
b7aa569435 README: Update readme 2021-08-23 00:01:16 +03:00
ave
7e4c49becc customtheme 87202: red pings 2021-08-22 22:42:41 +03:00
ave
f58c28410d customtheme 87202: Fix logo bg color, drop bg field from ctcconfig 2021-08-22 22:34:47 +03:00
ave
91c37ab9d0 87202 nocamerabutton: Don't show the fucking expand button 2021-08-22 22:19:39 +03:00
ave
166d763792 87202 customtheme: Use CTC logo for splash 2021-08-22 22:04:35 +03:00
ave
0754700d51 87202 customtheme: black background pls 2021-08-22 21:49:40 +03:00
ave
c4fd0be029 Fix gradle builds
whoops, broke it with d139344274
2021-08-22 20:16:55 +03:00
ave
d139344274 Remove hardcode'd docker paths 2021-08-22 20:04:01 +03:00
ave
b6f80bbee0 ctcci: Get xmlpatch command from config 2021-08-22 19:41:58 +03:00
ave
2786de6c73 Add a keystores folder 2021-08-22 19:26:57 +03:00
ave
de992e86ea Stricter gitignore 2021-08-22 19:25:32 +03:00
ave
78d5dea649 Create an "others" icon folder 2021-08-22 19:17:25 +03:00
Ave
7b77ce9eda Merge pull request '87202 patches' () from clienthax/cutthecord:2021-05-31 into 2021-05-31
Reviewed-on: 
2021-08-22 15:58:56 +00:00
ave
f1e8382505 ctcconfig: Use better defaults 2021-08-22 18:57:56 +03:00
ave
d3c51e2bef Fix images defaulting to spoilered state + not getting out 2021-08-22 18:38:17 +03:00
ave
4199ef9d22 Fix permissions on files 2021-08-22 18:37:50 +03:00
e1e88773ec notrack fixup 2021-08-21 18:12:56 +01:00
015c90eb70 cmd cleanup 2021-08-21 18:12:42 +01:00
cdfa005d35 Split notrack and port 2021-08-21 18:00:17 +01:00
c17cb44eaa Fixup commands/supplemental changes. 2021-08-21 17:02:18 +01:00
4de5282bf3 Woops. 2021-08-21 15:37:47 +01:00
a70f7395aa Split and implement betterdmheader 2021-08-21 15:37:40 +01:00
1d0a8b7088 Implement slashcommands for discord api 2021-08-21 15:18:19 +01:00
5bd99aa8c3 Deprecate old slashcommand patches 2021-08-15 14:44:15 +01:00
5cca5ef444 Port more patches. 2021-08-11 17:56:22 +01:00
3e0464c796 Move customtheme to xml+smali patch 2021-08-10 20:36:53 +01:00
f08854f5d0 Exclude -custom generated patches from git 2021-08-10 20:15:15 +01:00
f8dbc9333c Move noblocked to xml patch 2021-08-10 20:14:07 +01:00
1c6b151083 Move betterrotation to xml patch 2021-08-10 20:09:53 +01:00
0359f5f975 fix customversion 2021-08-10 20:01:46 +01:00
f709704fce Implement squareavatars as xml patch 2021-08-10 20:01:12 +01:00
ec47b98061 Move squareavatars to old patches 2021-08-10 19:57:49 +01:00
1a7ad17c87 Add xml-port support. 2021-08-10 19:56:58 +01:00
55e2e94b63 Dockerise 2021-08-06 18:43:36 +01:00
8ec2dd75c2 87202 patches 2021-08-06 15:58:49 +01:00
Ave
44cd92fcdc hotfix for branding 2021-06-30 15:15:30 +03:00
Ave
8037a7c9b8 Add branding to 78.4 2021-06-30 15:13:42 +03:00
ab288a7c79 add customversion 2021-06-04 21:53:33 +03:00
f38df07e48 Add profilemention 2021-06-04 21:23:03 +03:00
350f30b1f6 Add nozlib, remove nonearby 2021-06-04 21:02:56 +03:00
4f86cec370 Add embedlinks 2021-05-31 18:40:14 +03:00
9d7138b6a6 Add showtag 2021-05-31 18:31:10 +03:00
66b238bb1b Fix versions on patch READMEs 2021-05-31 16:42:35 +03:00
ee4a3cb49e Remove noprofilestrip 2021-05-31 16:29:20 +03:00
8f690ffe03 Push start on 78.4 alpha 2021-05-31 16:21:06 +03:00
Ave
69700dacaf patchport: Look out for "can't find file to patch" 2021-02-21 22:43:49 +03:00
Ave
fb587755da Make CTCCI use a hacky self built version of apktool bc yeah 2021-02-21 22:33:49 +03:00
Ave
1b99304a05 Revert "Start up work on 1387"
This reverts commit c60d13a690.
2021-02-21 22:12:13 +03:00
Ave
c60d13a690 Start up work on 1387 2021-01-10 05:35:35 +03:00
Ave
1cc00f6a48 patchport: Fix 2021-01-10 03:39:47 +03:00
Ave
f3ee05255c supplemental: Fix 2021-01-10 02:41:09 +03:00
Ave
4db6c07a04 Merge pull request '53.1 - 56.0 (1358 - 1371) + other small changes' () from tesnos6921/cutthecord:master into master
Reviewed-on: 
2021-01-06 19:53:43 +00:00
fb8a857955 56.0 (1371) 2021-01-05 17:09:25 -05:00
9082828e56 55.1 (1370) 2021-01-05 17:01:54 -05:00
354e1538c2 54.0 but better (1368) 2021-01-05 16:52:52 -05:00
8811192499 53.8 (1367) 2021-01-05 16:44:17 -05:00
9de62d94f3 53.6 (1365) 2021-01-05 16:23:38 -05:00
dab5801b1e 53.3 (1361) + 54.0 (1362) 2021-01-05 16:06:09 -05:00
03827d9f02 53.1 (1358) + patchport.py performance improvements + small BUILDING.md corrections 2021-01-05 15:33:23 -05:00
Ave
73cba5f94d Update building to clarify how to force old versions
Closes 
2020-12-15 18:09:44 +03:00
a35345d167
Fix all slashcommands patches 2020-12-13 05:53:12 +00:00
c21b085f22
53.0 (1356) 2020-12-13 05:35:00 +00:00
91dd61f262
[1355] Fix slashcommands patch 2020-12-13 05:34:37 +00:00
f52a1d0764
52.3 (1355) 2020-12-10 19:03:11 +00:00
Ave
b9cf51f294
rename sanerotation to betterrotation and add docs 2020-12-08 22:03:04 +03:00
Ave
2027eaeb39 Merge pull request 'Add sane rotation patch.' () from clienthax/cutthecord:master into master
Reviewed-on: 
2020-12-08 18:58:34 +00:00
846555b074 Add sane rotation patch.
Makes discord follow the system settings like every other app.
2020-12-08 18:52:51 +00:00
aa4716a408
Fix nocamerabutton patch (thanks TechnoJo4#1337) 2020-11-20 17:05:52 +00:00
be9d148ab6
49.13 (1340) 2020-11-20 16:36:30 +00:00
5b3d119feb
49.12 (1339) 2020-11-19 15:28:50 +00:00
ba24b116ef
49.10 (1334) 2020-11-16 14:20:51 +00:00
cc8480a670
49.8 (1330) 2020-11-13 15:21:45 +00:00
1b951992d6
49.2 (1318) 2020-11-11 12:22:17 +00:00
c959bbd5dc
49.1 (1315) 2020-11-10 19:24:37 +00:00
eb5982b549
48.2 (1310) 2020-11-09 19:13:11 +00:00
1a0e94e839
48.1 (1307) 2020-11-08 15:08:44 +00:00
4d55171e0a
48.0 (1306) 2020-11-05 15:14:59 +00:00
eba502d79b
46.3 (1304) 2020-11-02 13:50:03 +00:00
74ef6c739c
46.0 (1301) 2020-10-27 21:47:44 +00:00
0d9e174896
45.2 (1300) 2020-10-20 01:04:24 +01:00
50635e7ef5
44.6 (1298) 2020-10-17 16:09:18 +01:00
27e17c1b02
44.5 (1295) 2020-10-15 15:18:50 +01:00
fa42c5c2ac
44-alpha4 (1294) 2020-10-11 17:15:08 +01:00
6b28150550
44-alpha2 (1290) 2020-10-06 19:06:18 +01:00
042e463396
42.3 (1284) 2020-10-01 01:21:40 +01:00
7d26edb384
42.1 (1282) 2020-09-30 13:01:03 +01:00
55350f39f3
42.0 (1281) 2020-09-29 14:13:40 +01:00
0eac291e9e
41.11 (1280) 2020-09-24 10:58:57 +01:00
365fbb5434
41.10 (1279) 2020-09-23 12:24:52 +01:00
8b40115c04
41.06 (1273) 2020-09-17 10:38:27 +01:00
1e65ddc414
41.05 (1270) 2020-09-16 11:27:08 +01:00
36148dc8c4
41.02 (1266) 2020-09-15 09:48:20 +01:00
af9c3084c4
Fix supplemental breaking image uploading on 1259 2020-09-13 15:09:49 +01:00
b486a04551
40.04 (1259) 2020-09-13 12:14:34 +01:00
012602f8d3
Do not add the new version to the patch README if it's the same as the old one 2020-09-08 11:01:23 +01:00
dedd8883e6
38.1 (1252) 2020-09-08 10:58:21 +01:00
b9a34abfd1
Rollback to 1249
Custom emojis seem to be missing, probably something on Discord's side
2020-09-07 14:07:41 +01:00
4135a5166e
Fix supplemental breaking image uploading on 1251 2020-09-07 12:06:56 +01:00
e4214a720a
38.1 (1251) 2020-09-07 11:16:46 +01:00
a41f6243c6 38.0 (1249) 2020-08-27 15:14:03 +03:00
654b36a802 customtheme: Splash logo location changed 2020-08-23 16:53:30 +03:00
be8022f711 embedlinks: Show embed links for images
Closes 
2020-08-22 14:50:28 +03:00
3a3a87e5b0 36.5 (1246) 2020-08-22 13:36:16 +03:00
5a51e939bf 36.3 (1243) 2020-08-20 13:27:16 +03:00
ec246529e2 add (deleted) to deleted messages ()
add (deleted) to deleted messages

Co-authored-by: BlueMods
Reviewed-on: 
2020-08-20 10:05:57 +00:00
Ave
e17082f086 Merge pull request 'add ctc commands and subcommands to autocomplete' () from Juby210/cutthecord:patch-2 into master
Reviewed-on: 

Got approved by theo too
2020-08-12 18:27:56 +00:00
19d9174f13 add ctc commands and subcommands to autocomplete 2020-08-12 20:02:29 +02:00
e0da880575 35.0-alpha1 (1223) 2020-08-09 14:42:54 +03:00
Ave
68088a72da
34.3
my fucking god discord
2020-08-01 14:48:14 +03:00
Ave
6b0907b1f4
cleanartifacts: Whoopsie 2020-07-31 23:21:25 +03:00
Ave
c0f31381e4
Add cleanartifacts script to ctcci
Closes 
2020-07-31 23:13:24 +03:00
Ave
8021dc754f
34.2 2020-07-31 21:43:10 +03:00
Ave
cb48362e57
Implement gif autoplay option
Closes 
2020-07-31 19:12:01 +03:00
Ave
bcbb19690b
Extend license to include other scripts 2020-07-31 17:14:49 +03:00
Ave
839fac0839
Support guilds on squareavatars 2020-07-31 17:10:18 +03:00
Ave
38112bd90f
hideunusableemojis: Implement patch
Closes 

Thanks to @BlueMods for contributing this!
2020-07-31 15:37:51 +03:00
Ave
ce167af965
Add license information 2020-07-31 15:20:46 +03:00
Ave
14f60a1f71
branding: fix repo link and a typo
Closes 
2020-07-30 02:33:50 +03:00
Ave
8fb52e55b0
34.0 2020-07-30 01:57:09 +03:00
Ave
470cf56160
showtag: Implement showtag. Finally.
Closes 
2020-07-30 01:50:26 +03:00
Ave
39936489cd
betterdmheader: Implement betterdmheader
Closes 
2020-07-30 01:27:37 +03:00
Ave
393bc9f5f7
no-mobileindicator: Finally fix no-mobileindicator
Closes 
2020-07-29 23:34:57 +03:00
Ave
6de3dd6e9b
nocamerabutton: hide expand button
Closes 
2020-07-29 23:25:15 +03:00
3968 changed files with 2874568 additions and 1891 deletions
.gitattributes.gitignoreBUILDING.mdDockerfileREADME.md
ctcci
patches
bettertmlight
branding
customtheme
disable-mobileindicator
mutant
nocamerabutton
noprofilestrip
patchport-state.jsonpatchport.py
resources

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
* text=auto eol=lf

12
.gitignore vendored
View file

@ -1,2 +1,14 @@
patches/*/*-custom.patch
patches/*/*.patch-failed
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,7 @@
#### Toolchain setup
- Get apktool (due to 2 bugs present in v2.3.4, you're strongly recommended to use v2.4.0 or higher, I compile latest from source).
- Get apktool (use [this self-built version](//f001.backblazeb2.com/file/avepub/apktool-cli-all.jar) which is master + [this pr](https://github.com/iBotPeaches/Apktool/pull/2463)).
- Get a keystore, see [here](https://stackoverflow.com/a/14994354/3286892), step 1.
- Get apksigner, it's part of android build tools.
- If you want Mutant Standard emoji patches, get 72x72 PNG copies of latest version of mutant standard emojis with codepoints. I have a zip [here](https://mutant.lavatech.top/72x72.zip).
@ -21,9 +21,8 @@ CTCCI requires python3.6+, and also likely requires Linux (I haven't tried it on
#### Initial setup
- Follow the "Toolchain setup" steps above in case you haven't already.
- Install dependencies (`python3 -m pip install -Ur requirements.txt`)
- Copy `ctcci/ctcconfig.example.py` to `ctcci/ctcconfig.py` and configure contents to your local data and your personal preferences.
- If you don't want to always automatically be required to use the latest discord version, set `LOCAL_STATE` to `True` and point `STATE_FILE` to a `state.json` file that looks like this: `{"android": {"com.discord": {"version": 909}}}`.
- If you don't want to always automatically be required to use the latest discord version, edit the `$REPO_FOLDER/patchport-state.json` file.
- Set up a local distok-style file storage for your APKs, and copy your APKs on it, and name them properly (the format is `$DISTOK_FOLDER/android/$PACKAGE_ID-$VERSION_NUMBER.apk`, example: `/home/ave/distok/android/com.discord-909.apk`).
#### Environment Variables
@ -61,11 +60,11 @@ To get the diff, run `diff -crB -x "dist" -x "res/raw" -x "build" CleanFolder Pa
#### Porting patches
You can use `patchport.py` to easily attempt to port patches. This is what I use to port between every single version.
You can use `patchport.py` to easily attempt to port patches. This is what I use to port between every single version. Note that while CTCCI requires python3.6+, `patchport.py` requires python3.7+.
It's not really intelligent and doesn't do much more than manually preparing necessary patch, checking if an existing patch can be applied to a given version, replacing relevant variables required for porting various patches and eliminating offsets caused by updates, but it saves a lot of time if used carefully.
Example command: `python3 patchport.py /home/ave/workbench/ctc/com.discord-968`
Example command: `python3.7 patchport.py /home/ave/workbench/ctc/com.discord-968`
#### Figuring out which patch is causing your build to break

68
Dockerfile Normal file
View file

@ -0,0 +1,68 @@
FROM ubuntu:21.04
# Install needed packages
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python3 android-sdk-build-tools wget unzip imagemagick git patch software-properties-common
# Mirror is being weird currently so install this seperatly
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install zipmerge
# Install fdroid
RUN add-apt-repository ppa:fdroid/fdroidserver
RUN apt-get update
RUN apt-get -y install fdroidserver
# Create resources folder for tools/images etc
ENV CTC_FOLDER=/opt/ctc
RUN mkdir ${CTC_FOLDER}
# Grab modified apktool
RUN mkdir ${CTC_FOLDER}/tools
RUN wget -O ${CTC_FOLDER}/tools/apktool.jar https://f001.backblazeb2.com/file/avepub/apktool-cli-all.jar
# Grab xml-patch (https://github.com/dnault/xml-patch)
RUN wget -O ${CTC_FOLDER}/tools/xml-patch.jar https://jcenter.bintray.com/com/github/dnault/xml-patch/0.3.1/xml-patch-0.3.1.jar
# Grab dex2jar (https://github.com/Aliucord/dex2jar)
RUN wget -O ${CTC_FOLDER}/tools/dex2jar.jar https://github.com/Aliucord/dex2jar/releases/download/v19-fork2/dex2jar.jar
# Grab emoji sets
ENV EMOJI_PATH=${CTC_FOLDER}/emojis
ENV EMOJI_MUTANT_PATH=${EMOJI_PATH}/mutant
ENV EMOJI_BLOBMOJIS_PATH=${EMOJI_PATH}/blobmojis
RUN mkdir ${EMOJI_PATH}
# Mutant emojis
RUN mkdir ${EMOJI_MUTANT_PATH}
WORKDIR ${EMOJI_MUTANT_PATH}
RUN wget https://mutant.lavatech.top/72x72.zip
RUN unzip 72x72.zip
RUN mv 72x72/*.png .
RUN rm -rf 72x72
RUN rm 72x72.zip
# Blobmojis
RUN mkdir ${EMOJI_BLOBMOJIS_PATH}
RUN mkdir /tmp/blobmoji
WORKDIR /tmp/blobmoji
RUN wget https://github.com/C1710/blobmoji/archive/refs/heads/main.zip
RUN 7za x main.zip
WORKDIR /tmp/blobmoji/blobmoji-main/svg
RUN find ./*.svg -exec mogrify -format png -resize 72x72 -path ${EMOJI_BLOBMOJIS_PATH} {} \; ; exit 0
# Generate self signed KS
RUN mkdir ${CTC_FOLDER}/keystores
WORKDIR ${CTC_FOLDER}/keystores
RUN keytool -genkey -alias test \
-keyalg RSA -keystore keystore.jks \
-dname "CN=Test, OU=Test, O=Test, L=Test, S=Test, C=Test" \
-storepass password -keypass password
# Make folder for git repo
RUN mkdir ${CTC_FOLDER}/gitrepo
WORKDIR ${CTC_FOLDER}/gitrepo
# paths in ctcconfig in docker
# container fs
# /opt/ctc/gitrepo
# /opt/ctc/keystores/keystore.jks not specified by default

View file

@ -2,11 +2,17 @@
Modular Client Mod for Discord's Android app.
**Latest supported Discord Android version:** 33.1 (1208), released on 2020-07-25.
**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
**Latest supported Discord Android version:** 87.2 - Alpha (87202), released on 2021-08-04.
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)!
@ -23,3 +29,8 @@ If you fail recaptcha, [follow this](https://gitdab.com/distok/cutthecord/issues
## Building
See [BUILDING.md](BUILDING.md).
## License
- CTCCI, patchport and other scripts are AGPLv3.
- We chose to not license the patches, and are therefore "All Rights Reserved". However, you're allowed to use it to build your own version of CutTheCord, fork CutTheCord, develop your own patches etc, and we kindly ask you to send us any patches you develop that you think may be helpful. You're free to distribute binaries (apks) including CutTheCord patches as long as you give appropriate credit to the CutTheCord project.

1
ctcci/.gitignore vendored
View file

@ -1 +0,0 @@
ctcconfig.py

View file

@ -1 +0,0 @@
../bettertm/bettertm.sh

View file

@ -1,7 +0,0 @@
\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

(image error) Size: 12 KiB

View file

@ -1,3 +0,0 @@
#!/bin/bash
\cp "$1" res/drawable-xxhdpi/img_loading_clyde.png
\cp "$1" res/drawable-xxxhdpi/img_loading_clyde.png

View file

@ -1,20 +0,0 @@
diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali
*** from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-06-20 04:18:51.683371812 +0100
--- to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-06-20 04:19:01.317301433 +0100
***************
*** 176,182 ****
const-string v2, "browser"
! const-string v3, "Discord Android"
invoke-direct {v1, v2, v3}, Lkotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
--- 176,182 ----
const-string v2, "browser"
! const-string v3, "Discord Client"
invoke-direct {v1, v2, v3}, Lkotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V

View file

@ -1,179 +0,0 @@
## DisTok CutTheCord: Disable Mobile Indicator Patch
This patch replaces the browser name from "Discord Android" to "Discord Client", disabling the Mobile Indicator which is a privacy violation without an explicit opt-out option.
However, this causes some issues. See the `Bugs / Side effects` list below.
#### Bugs / Side effects
- CRITICAL: Push notifications are broken
- NOTE: This is really obvious on discord's end, and may be bannable.
#### Available and tested on:
- 8.3.0
- 8.3.1
- 8.3.6g
- 8.3.9g
- 8.4.1g
- 8.4.2g
- 8.4.3g
- 8.4.4g
- 8.4.5g
- 8.4.8
- 8.5.0
- 8.5.1
- 8.5.3
- 8.5.4
- 8.5.5
- 8.5.6
- 8.7.6
- 8.8.4
- 8.8.8
- 8.9.6
- 8.9.7
- 8.9.8
- 8.9.9
- 9.0.0
- 9.0.1
- 9.0.2
- 9.0.3
- 9.0.4
- 9.0.6
- 9.0.9
- 9.1.0
- 9.3.8-SAO-Heathcliff
- 9.3.9
- 9.4.0
- 9.4.2-SA
- 9.4.3-SA
- 9.4.5
- 9.4.6
- 9.4.7
- 9.4.8
- 9.6.3
- 9.6.4
- 9.6.5
- 9.6.6
- 9.6.7
- 9.6.8
- 9.7.0
- 9.8.0
- 9.8.4
- 9.8.6
- 9.9.1
- 9.9.2
- 9.9.3
- 9.9.4
- 9.9.6
- 10.0.6
- 10.0.7
- 10.1.1
- 10.1.2
- 10.1.3
- 10.1.5
- 10.1.6
- 10.1.9
- 10.2.0
- 10.2.1
- 10.2.2
- 10.2.3
- 10.2.4
- 10.2.5
- 10.2.6
- 10.2.9
- 10.3.1
- 10.3.2
- 10.3.3
- 10.4.0
- 10.4.1
- 10.5.1
- 11.0
- 11.4
- 11.5
- 12.0-alpha1
- 11.7
- 12.1
- 12.2
- 12.3
- 13-alpha1
- 12.5
- 14-alpha2
- 14-alpha3
- 14.0
- 15-alpha3
- 15.0
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha1
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha4
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha6
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha7
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3
- 22.4
- 22.5
- 23.0
- 24-alpha2
- 24
- 28-alpha2
- 28.1
- 29-alpha1
- 30.0
- 30.1
- 31-alpha1
- 31-alpha2
- 32-alpha2
- 32.0
- 33.1

View file

@ -1,223 +0,0 @@
#!/bin/env python3
import os
import re
import shutil
# You'll likely want to edit these lines or set DISTOK_EXTRACTED_DISCORD_PATH and DISTOK_EMOJI_MUTANT
extracted_discord_path = os.environ.get("DISTOK_EXTRACTED_DISCORD_PATH", "/tmp/cutthecord/discord")
extracted_mutstd_path = os.environ.get("DISTOK_EMOJI_MUTANT", "/root/distokfiles/mutant/72x72")
# Add your custom emojis here
# with "mutstd filename": "discord filename".
# You'll need to write a patch for `assets/data/emojis.json` too.
custom_emojis = {"1f4af-200d-1f308.png": "emoji_1f4af_1f308.webp",
"10169b-200d-1f308.png": "emoji_10169b_1f308.webp",
"1f9d1-200d-2708-fe0f.png": "emoji_1f9d1_2708.webp",
"1f9d1-200d-2695-fe0f.png": "emoji_1f9d1_2695.webp",
"1f9d1-200d-1f680.png": "emoji_1f9d1_1f680.webp",
"1f9d1-200d-1f52c.png": "emoji_1f9d1_1f52c.webp",
"1f9d1-200d-1f527.png": "emoji_1f9d1_1f527.webp",
"1f9d1-200d-1f4bb.png": "emoji_1f9d1_1f4bb.webp",
"1f9d1-200d-1f373.png": "emoji_1f9d1_1f373.webp",
"1f3fb.png": "emoji_1f3fb.webp",
"1f3fc.png": "emoji_1f3fc.webp",
"1f3fd.png": "emoji_1f3fd.webp",
"1f3fe.png": "emoji_1f3fe.webp",
"1f3ff.png": "emoji_1f3ff.webp",
"101600.png": "emoji_101600.webp",
"101601.png": "emoji_101601.webp",
"101602.png": "emoji_101602.webp",
"101603.png": "emoji_101603.webp",
"101604.png": "emoji_101604.webp",
"101605.png": "emoji_101605.webp",
"101606.png": "emoji_101606.webp",
"101607.png": "emoji_101607.webp",
"101608.png": "emoji_101608.webp",
"101609.png": "emoji_101609.webp",
"10160a.png": "emoji_10160a.webp",
"10160b.png": "emoji_10160b.webp",
"10160c.png": "emoji_10160c.webp",
"10160d.png": "emoji_10160d.webp",
"10160e.png": "emoji_10160e.webp",
"10160f.png": "emoji_10160f.webp",
"101610.png": "emoji_101610.webp",
"101611.png": "emoji_101611.webp",
"101612.png": "emoji_101612.webp",
"101613.png": "emoji_101613.webp",
"101614.png": "emoji_101614.webp",
"101615.png": "emoji_101615.webp",
"101616.png": "emoji_101616.webp",
"101617.png": "emoji_101617.webp",
"101618.png": "emoji_101618.webp",
"101619.png": "emoji_101619.webp",
"10161a.png": "emoji_10161a.webp",
"10161b.png": "emoji_10161b.webp",
"10161c.png": "emoji_10161c.webp",
"10161d.png": "emoji_10161d.webp",
"10161e.png": "emoji_10161e.webp",
"10161f.png": "emoji_10161f.webp",
"101620.png": "emoji_101620.webp",
"101621.png": "emoji_101621.webp",
"101622.png": "emoji_101622.webp",
"101623.png": "emoji_101623.webp",
"101624.png": "emoji_101624.webp",
"101625.png": "emoji_101625.webp",
"101626.png": "emoji_101626.webp",
"101627.png": "emoji_101627.webp",
"101628.png": "emoji_101628.webp",
"101629.png": "emoji_101629.webp",
"10162a.png": "emoji_10162a.webp",
"10162b.png": "emoji_10162b.webp",
"10162c.png": "emoji_10162c.webp",
"101650.png": "emoji_101650.webp",
"101651.png": "emoji_101651.webp",
"10169a.png": "emoji_10169a.webp",
"26b2-fe0f.png": "emoji_26b2.webp",
"26a8-fe0f.png": "emoji_26a8.webp",
"26a7-fe0f.png": "emoji_26a7.webp",
"26a5-fe0f.png": "emoji_26a5.webp",
"26a4-fe0f.png": "emoji_26a4.webp",
"26a3-fe0f.png": "emoji_26a3.webp",
"26a2-fe0f.png": "emoji_26a2.webp",
"2642-fe0f.png": "emoji_2642.webp",
"2640-fe0f.png": "emoji_2640.webp",
"1f9e1.png": "emoji_1f9e1.webp",
"101685.png": "emoji_101685.webp",
"101684.png": "emoji_101684.webp",
"101683.png": "emoji_101683.webp",
"101682.png": "emoji_101682.webp",
"1f9fb.png": "emoji_1f9fb.webp",
"1f9f1.png": "emoji_1f9f1.webp",
"1f9e8.png": "emoji_1f9e8.webp",
"1f9b4.png": "emoji_1f9b4.webp",
"101696.png": "emoji_101696.webp",
"101695.png": "emoji_101695.webp",
"101694.png": "emoji_101694.webp",
"101693.png": "emoji_101693.webp",
"101692.png": "emoji_101692.webp",
"10169b.png": "emoji_10169b.webp",
"101698.png": "emoji_101698.webp",
"101699.png": "emoji_101699.webp",
"1f9dd.png": "emoji_1f9dd.webp",
"1f99d.png": "emoji_1f99d.webp",
"1f99c.png": "emoji_1f99c.webp",
"1f99a.png": "emoji_1f99a.webp",
"101666.png": "emoji_101666.webp",
"1f9d0.png": "emoji_1f9d0.webp",
"1f97a.png": "emoji_1f97a.webp",
"1f976.png": "emoji_1f976.webp",
"1f975.png": "emoji_1f975.webp",
"1f974.png": "emoji_1f974.webp",
"1f973.png": "emoji_1f973.webp",
"1f970.png": "emoji_1f970.webp",
"1f92f.png": "emoji_1f92f.webp",
"1f92e.png": "emoji_1f92e.webp",
"1f92d.png": "emoji_1f92d.webp",
"1f92c.png": "emoji_1f92c.webp",
"1f92b.png": "emoji_1f92b.webp",
"1f92a.png": "emoji_1f92a.webp",
"1f929.png": "emoji_1f929.webp",
"1f928.png": "emoji_1f928.webp",
"1f575-10162b.png": "emoji_1f575_10162b.webp",
"1f486-10162b.png": "emoji_1f486_10162b.webp",
"1f481-10162b.png": "emoji_1f481_10162b.webp",
"101690.png": "emoji_101690.webp",
"101697.png": "emoji_101697.webp",
"1f9dc.png": "emoji_1f9dc.webp",
"101681.png": "emoji_101681.webp",
"101680.png": "emoji_101680.webp",
"10167f.png": "emoji_10167f.webp",
"10167e.png": "emoji_10167e.webp",
"10167d.png": "emoji_10167d.webp",
"10167c.png": "emoji_10167c.webp",
"10167b.png": "emoji_10167b.webp",
"10167a.png": "emoji_10167a.webp",
"101679.png": "emoji_101679.webp",
"101678.png": "emoji_101678.webp",
"101677.png": "emoji_101677.webp",
"101676.png": "emoji_101676.webp",
"101675.png": "emoji_101675.webp",
"101674.png": "emoji_101674.webp",
"101673.png": "emoji_101673.webp",
"101672.png": "emoji_101672.webp",
"101671.png": "emoji_101671.webp",
"101670.png": "emoji_101670.webp",
"101686.png": "emoji_101686.webp",
"101691.png": "emoji_101691.webp"}
# self note to get MM emojos:
# ls 72x72 | grep "101650-" | cut -f 1 -d '-' | sort | uniq
# ls 72x72 | grep "101651-" | cut -f 1 -d '-' | sort | uniq
# echo -e "\U1f44c"
# paw: 􁙐
# claw: 􁙑
def add_diverse_emojos():
# Hackiest regex ever
div_regex = r'(|.*/)([a-f0-9]+(|-fe0f)-(|101650|101651|101650-|101651-)'\
r'(|1016[0-2][a-f0-9]|1f3f[b-f])\.png)'
div_regex = re.compile(div_regex)
for file in mutstd_emojis:
re_result = div_regex.fullmatch(file)
if re_result:
mutant = re_result.group(2)
discord = discordify_emoji_name(mutant)
custom_emojis[mutant] = discord
def clean_emoji_name(name):
name = name.lower().replace("_", "-")\
.replace("emoji-", "").replace("-fe0f", "")
return name
def discordify_emoji_name(name):
name = "emoji_" + name.lower().replace("-", "_").replace("fe0f_", "")\
.replace("200d_", "").replace(".png", ".webp")
return name
discord_emoji_path = os.path.join(extracted_discord_path, "res", "raw")
# Get file listings in relevant folders
discord_emojis = os.listdir(discord_emoji_path)
mutstd_emojis = os.listdir(extracted_mutstd_path)
add_diverse_emojos()
# Clean names of mutantstd emojis so thar we can compare them
# to clean discord emojis later
clean_mutstd_emojis = {clean_emoji_name(emoji): emoji for
emoji in mutstd_emojis}
replace_counter = 0
# Go through each discord emoji, and clean their names
for emoji in discord_emojis:
clean_discord_emoji = clean_emoji_name("{}.png".format(os.path.splitext(emoji)[0]))
# Check if said clean name of emoji is in clean mutstd list
if clean_discord_emoji in clean_mutstd_emojis:
# Get full unclean filename of mutantstd emoji, generate relevant paths
full_mutstd_name = clean_mutstd_emojis[clean_discord_emoji]
full_mutstd_path = os.path.join(extracted_mutstd_path, full_mutstd_name)
full_discord_path = os.path.join(discord_emoji_path, emoji)
# Copy and overwrite the discord emojis with the mutantstd alternatives
shutil.copyfile(full_mutstd_path, full_discord_path)
# print("Replaced {} emoji.".format(emoji))
replace_counter += 1
for custom_emoji in custom_emojis:
# One day I'd like to do discordify_emoji_name(custom_emoji)
# But discord has too many exceptions for that~
discord_emoji_name = custom_emojis[custom_emoji]
full_mutstd_path = os.path.join(extracted_mutstd_path, custom_emoji)
full_discord_path = os.path.join(discord_emoji_path, discord_emoji_name)
shutil.copyfile(full_mutstd_path, full_discord_path)
# print("Added custom {} emoji.".format(discord_emoji_name))
replace_counter += 1
print("Done, {} emojis replaced.".format(replace_counter))

View file

@ -1,20 +0,0 @@
diff -crB from/smali_classes2/com/lytefast/flexinput/fragment/FlexInputFragment.smali to/smali_classes2/com/lytefast/flexinput/fragment/FlexInputFragment.smali
*** from/smali_classes2/com/lytefast/flexinput/fragment/FlexInputFragment.smali 2020-07-18 13:36:47.690000000 +0300
--- to/smali_classes2/com/lytefast/flexinput/fragment/FlexInputFragment.smali 2020-07-18 13:38:12.390000000 +0300
***************
*** 379,385 ****
if-eqz v5, :cond_5
! const/4 v10, 0x0
goto :goto_2
--- 379,385 ----
if-eqz v5, :cond_5
! const/16 v10, 0x8
goto :goto_2

View file

@ -1,169 +0,0 @@
## DisTok CutTheCord: No Profile Strip Patch
This patch removes the "profile strip" from the left side menu, helping remove PII from screenshots:
![](https://x3.pm/i/99b1vutg.png)
#### Available and tested on:
- 8.4.2g
- 8.4.3g
- 8.4.4g
- 8.4.5g
- 8.4.8
- 8.5.0
- 8.5.1
- 8.5.3
- 8.5.4
- 8.5.5
- 8.5.6
- 8.7.6
- 8.8.4
- 8.8.8
- 8.9.6
- 8.9.7
- 8.9.8
- 8.9.9
- 9.0.0
- 9.0.1
- 9.0.2
- 9.0.3
- 9.0.4
- 9.0.6
- 9.0.9
- 9.1.0
- 9.3.8-SAO-Heathcliff
- 9.3.9
- 9.4.0
- 9.4.2-SA
- 9.4.3-SA
- 9.4.5
- 9.4.6
- 9.4.7
- 9.4.8
- 9.6.4
- 9.6.5
- 9.6.6
- 9.6.7
- 9.6.8
- 9.7.0
- 9.8.0
- 9.8.4
- 9.8.6
- 9.9.1
- 9.9.2
- 9.9.3
- 9.9.4
- 9.9.6
- 10.0.6
- 10.0.7
- 10.1.1
- 10.1.2
- 10.1.3
- 10.1.5
- 10.1.6
- 10.1.9
- 10.2.0
- 10.2.1
- 10.2.2
- 10.2.3
- 10.2.4
- 10.2.5
- 10.2.6
- 10.2.9
- 10.3.1
- 10.3.2
- 10.3.3
- 10.4.0
- 10.4.1
- 10.5.1
- 11.0
- 11.4
- 11.5
- 12.0-alpha1
- 11.7
- 12.1
- 12.2
- 12.3
- 13-alpha1
- 12.5
- 14-alpha2
- 14-alpha3
- 14.0
- 15-alpha3
- 15.0
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha1
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha4
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha6
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3-alpha7
- 16
- 17.0
- 18.0-alpha1
- 18.0-alpha9
- 18.0-alpha11
- 18.0-alpha12
- 19.0
- 20-alpha1
- 21-alpha2
- 22-alpha1
- 21.3
- 22-alpha3
- 22.4
- 22.5
- 23.0
- 24-alpha2
- 24
- 28-alpha2
- 28.1
- 29-alpha1
- 30.0
- 30.1
- 31-alpha1
- 31-alpha2
- 32-alpha2
- 32.0
- 33.1

View file

@ -1 +0,0 @@
{"versionname": "33.1", "versioncode": "1208"}

View file

@ -1,235 +0,0 @@
#!/bin/env python3
import re
import sys
import os
import json
import subprocess
import datetime
import shutil
# Example invocation:
# python3 patchport.py /home/ave/apks/com.discord-900/
with open("patchport-state.json", "r") as f:
jin = json.load(f)
from_versioncode = jin["versioncode"]
from_versionname = jin["versionname"]
apk_folder = sys.argv[1]
cutthecord_folder = os.path.dirname(os.path.realpath(__file__))
debug = False
tmp_folder = "/tmp/patchport"
if debug:
print(f"ctc folder: {cutthecord_folder}")
def modify_patch(patch_name, patch_path):
with open(patch_path) as f:
patch_content = f.read()
if patch_name in ["branding", "customversion"]:
patch_content = patch_content.replace(from_versioncode, to_versioncode)
patch_content = patch_content.replace(from_versionname, to_versionname)
if patch_name == "notrack":
# TODO: There's a risk here that we'll replace the nulled value
from_crashlytics_id = re_crashlytics.findall(patch_content)[0]
patch_content = patch_content.replace(from_crashlytics_id,
to_crashlytics_id)
return patch_content
def apply_patch(patch_contents):
subprocess.run("patch -p1 --no-backup-if-mismatch --force",
shell=True, input=patch_contents, text=True,
cwd=apk_folder, capture_output=True)
def fix_offset(patch_contents):
# OH GOD OH FUCK
shutil.rmtree(tmp_folder, ignore_errors=True)
shutil.copytree(apk_folder, tmp_folder)
subprocess.run("patch -p1 --no-backup-if-mismatch --force",
shell=True, input=patch_contents, text=True,
cwd=tmp_folder, capture_output=True)
out = subprocess.run(f"diff -crB {apk_folder} {tmp_folder}",
shell=True, input=patch_contents, text=True,
cwd=tmp_folder, capture_output=True)
shutil.rmtree(tmp_folder, ignore_errors=True)
patch_out = out.stdout.replace(apk_folder, "from").replace(tmp_folder, "to")
return patch_out
def make_necessary(version_name, version_code):
# OH GOD OH FUCK
shutil.rmtree(tmp_folder, ignore_errors=True)
shutil.copytree(apk_folder, tmp_folder)
# Set version code and name
# Due to https://github.com/iBotPeaches/Apktool/issues/2046
# Code based on https://stackoverflow.com/a/4128192/3286892
with open(os.path.join(tmp_folder, "AndroidManifest.xml")) as fin:
filec = fin.read()
incorrect_versioncode = re_versioncode_xml.findall(filec)[0]
filec = filec.replace(incorrect_versioncode,
f'platformBuildVersionCode="{to_versioncode}"')
incorrect_versionname = re_versionname_xml.findall(filec)[0]
filec = filec.replace(incorrect_versionname,
f'platformBuildVersionName="{to_versionname}"')
with open(os.path.join(tmp_folder, "AndroidManifest.xml"), "w") as fout:
fout.write(filec)
out = subprocess.run(f"diff -crB {apk_folder} {tmp_folder}",
shell=True, text=True,
cwd=tmp_folder, capture_output=True)
shutil.rmtree(tmp_folder, ignore_errors=True)
patch_out = out.stdout.replace(apk_folder, "from").replace(tmp_folder, "to")
return patch_out
re_versioncode_xml = re.compile(r'(platformBuildVersionCode="[0-9]+")')
re_versionname_xml = re.compile(r'(platformBuildVersionName="[0-9a-z.]+")')
re_versioncode_yml = re.compile(r'versionCode: \'([0-9]+)\'')
re_versionname_yml = re.compile(r'versionName: \'?(.+?)\'?$')
re_releasedate = re.compile(r'released on ([0-9]{4}-[0-9]{2}-[0-9]{2})')
re_crashlytics = re.compile(r'com\.crashlytics\.android\.build_id">([a-z0-9]'
r'{8}-?[a-z0-9]{4}-?[a-z0-9]{4}-?[a-z0-9]{4}-?'
r'[a-z0-9]{12})</string>')
# Get version code and name
with open(os.path.join(apk_folder, "apktool.yml")) as f:
file_contents = f.read()
to_versioncode = re_versioncode_yml.findall(file_contents)[0]
to_versionname = re_versionname_yml.findall(file_contents)[0]
# Get crashlytics build ID
with open(os.path.join(apk_folder, "res", "values", "strings.xml")) as f:
file_contents = f.read()
to_crashlytics_id = re_crashlytics.findall(file_contents)[0]
failures = []
for patch in os.listdir(os.path.join(cutthecord_folder, "patches")):
if debug:
print(f"going over patch: {patch}")
# Ignore non-dirs
if not os.path.isdir(os.path.join(cutthecord_folder, "patches", patch)):
if debug:
print(f"patch is not a folder, skipping: {patch}")
continue
pre_in_path = os.path.join(cutthecord_folder, "patches", patch,
f"{from_versioncode}-pre.sh")
post_in_path = os.path.join(cutthecord_folder, "patches", patch,
f"{from_versioncode}-post.sh")
pre_out_path = os.path.join(cutthecord_folder, "patches", patch,
f"{to_versioncode}-pre.sh")
post_out_path = os.path.join(cutthecord_folder, "patches", patch,
f"{to_versioncode}-post.sh")
patch_path = os.path.join(cutthecord_folder, "patches", patch,
f"{from_versioncode}.patch")
out_path = os.path.join(cutthecord_folder, "patches", patch,
f"{to_versioncode}.patch")
readme_path = os.path.join(cutthecord_folder, "patches", patch, "README.md")
# Handle copying of versioned scripts, untested and dirty!
script_path = os.path.join(cutthecord_folder, "patches", patch,
f"{from_versioncode}.sh")
if os.path.exists(script_path):
script_out_path = os.path.join(cutthecord_folder, "patches", patch,
f"{to_versioncode}.sh")
with open(script_path) as f:
with open(script_out_path, "w") as f2:
f2.write(f.read())
# Check if patch exists for from_version, if it doesn't, warn user
if not os.path.isfile(patch_path) and patch not in ["necessary"]:
# Don't warn on instructional patches
if patch not in ["customfont", "customring",
"bettertm", "bettertmlight",
"blobs"]:
print(f"SKIPPED: No {from_versionname} version found for {patch}.")
continue
# Check if pre-script exists, if it does copy it
if os.path.isfile(pre_in_path):
shutil.copyfile(pre_in_path, pre_out_path)
print(f"PRE COPIED: {patch}'s pre script was copied.")
# Check if post-script exists, if it does copy it
if os.path.isfile(post_in_path):
shutil.copyfile(post_in_path, post_out_path)
print(f"POST COPIED: {patch}'s post script was copied.")
# Create necessary instead of porting it.
if patch == "necessary":
patch_contents = make_necessary(to_versioncode, to_versionname)
else:
# Get a modified version of the patch
patch_contents = modify_patch(patch, patch_path)
# Pass the new patch to patch command and get it to attempt to patch
out = subprocess.run("patch -p1 --dry-run --force", shell=True,
cwd=apk_folder, input=patch_contents, text=True,
capture_output=True)
# Check for issues
if "FAILED" in out.stdout:
print(f"FAILED: {patch} failed, please fix by hand.")
failures.append(patch)
out_path += "-failed"
elif "offset" in out.stdout:
patch_contents = fix_offset(patch_contents)
print(f"WARNING: {patch} has offsets which were auto corrected.")
if debug:
print(out.stdout)
# Apply patch to main APK folder too
if patch in ["necessary"]:
apply_patch(patch_contents)
# Add supported version to readme of that patch, hacky
# https://stackoverflow.com/a/35130508/3286892
with open(readme_path, 'r') as f:
readme_text = f.read().replace(f'- {from_versionname}\n',
f'- {from_versionname}\n'
f'- {to_versionname}\n')
with open(readme_path, "w") as f:
f.write(readme_text)
# Save ported patch
with open(out_path, "w") as f:
f.write(patch_contents)
if not out_path.endswith("-failed"):
print(f"PORTED: {patch} was successfully ported.")
ctcreadme_path = os.path.join(cutthecord_folder, "README.md")
# TODO: can we pull the correct date from distok?
out_datestamp = datetime.datetime.utcnow().strftime("%Y-%m-%d")
# Update readme with latest version, hacky
# https://stackoverflow.com/a/35130508/3286892
with open(ctcreadme_path, 'r') as f:
ctcr_text = f.read().replace(f'{from_versionname} ({from_versioncode})',
f'{to_versionname} ({to_versioncode})')
in_datestamp = re_releasedate.findall(ctcr_text)[0]
ctcr_text = ctcr_text.replace(in_datestamp, out_datestamp)
with open(ctcreadme_path, "w") as f:
f.write(ctcr_text)
with open("patchport-state.json", "w") as f:
jout = {"versionname": to_versionname, "versioncode": to_versioncode}
json.dump(jout, f)
if failures:
print(f"Port complete. Following patches failed: {', '.join(failures)}")
else:
print("Port complete. All patches completed successfully.")

2
resources/distok/android/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
*.apk

View file

View file

View file

0
resources/fonts/.gitkeep Normal file
View file

View file

Before

(image error) Size: 48 KiB

After

(image error) Size: 48 KiB

Before After
Before After

View file

Before

(image error) Size: 578 KiB

After

(image error) Size: 578 KiB

Before After
Before After

View file

Before

(image error) Size: 638 KiB

After

(image error) Size: 638 KiB

Before After
Before After

View file

Before

(image error) Size: 44 KiB

After

(image error) Size: 44 KiB

Before After
Before After

View file

Before

(image error) Size: 8.5 KiB

After

(image error) Size: 8.5 KiB

Before After
Before After

View file

Before

(image error) Size: 21 KiB

After

(image error) Size: 21 KiB

Before After
Before After

View file

Before

(image error) Size: 2.2 KiB

After

(image error) Size: 2.2 KiB

Before After
Before After

View file

Before

(image error) Size: 44 KiB

After

(image error) Size: 44 KiB

Before After
Before After

View file

Before

(image error) Size: 4.5 KiB

After

(image error) Size: 4.5 KiB

Before After
Before After

View file

Before

(image error) Size: 8.5 KiB

After

(image error) Size: 8.5 KiB

Before After
Before After

View file

Before

(image error) Size: 10 KiB

After

(image error) Size: 10 KiB

Before After
Before After

View file

Before

(image error) Size: 21 KiB

After

(image error) Size: 21 KiB

Before After
Before After

View file

Before

(image error) Size: 2.2 KiB

After

(image error) Size: 2.2 KiB

Before After
Before After

View file

Before

(image error) Size: 44 KiB

After

(image error) Size: 44 KiB

Before After
Before After

View file

Before

(image error) Size: 4.6 KiB

After

(image error) Size: 4.6 KiB

Before After
Before After

View file

Before

(image error) Size: 8.5 KiB

After

(image error) Size: 8.5 KiB

Before After
Before After

View file

Before

(image error) Size: 9.9 KiB

After

(image error) Size: 9.9 KiB

Before After
Before After

View file

Before

(image error) Size: 21 KiB

After

(image error) Size: 21 KiB

Before After
Before After

View file

Before

(image error) Size: 2.2 KiB

After

(image error) Size: 2.2 KiB

Before After
Before After

View file

Before

(image error) Size: 44 KiB

After

(image error) Size: 44 KiB

Before After
Before After

View file

Before

(image error) Size: 4.5 KiB

After

(image error) Size: 4.5 KiB

Before After
Before After

View file

Before

(image error) Size: 8.5 KiB

After

(image error) Size: 8.5 KiB

Before After
Before After

View file

Before

(image error) Size: 9.7 KiB

After

(image error) Size: 9.7 KiB

Before After
Before After

View file

Before

(image error) Size: 21 KiB

After

(image error) Size: 21 KiB

Before After
Before After

View file

Before

(image error) Size: 2.2 KiB

After

(image error) Size: 2.2 KiB

Before After
Before After

View file

Before

(image error) Size: 43 KiB

After

(image error) Size: 43 KiB

Before After
Before After

View file

Before

(image error) Size: 4.5 KiB

After

(image error) Size: 4.5 KiB

Before After
Before After

View file

Before

(image error) Size: 112 KiB

After

(image error) Size: 112 KiB

Before After
Before After

View file

Before

(image error) Size: 63 KiB

After

(image error) Size: 63 KiB

Before After
Before After

View file

Before

(image error) Size: 48 KiB

After

(image error) Size: 48 KiB

Before After
Before After

View file

Before

(image error) Size: 578 KiB

After

(image error) Size: 578 KiB

Before After
Before After

View file

Before

(image error) Size: 56 KiB

After

(image error) Size: 56 KiB

Before After
Before After

View file

Before

(image error) Size: 591 KiB

After

(image error) Size: 591 KiB

Before After
Before After

View file

Before

(image error) Size: 51 KiB

After

(image error) Size: 51 KiB

Before After
Before After

View file

View file

View file

@ -9,3 +9,9 @@ Here's why these patches are no longer maintained in this form:
- compact: It's just a pain to maintain.
- smalltime: It's just a pain to maintain.
- customdefaultemoji: There doesn't seem to be default emojis anymore?
- noprofilestrip: UI changes removed the profile strip.
- nonearby: Didn't add much anyways.
- squareavatars: Moved to xml-patchs
- betterrotation: Moved to xml-patchs
- noblocked: Moved to xml-patchs
- slashcommands: Moved to dynamic patch due to discord api supporting this now

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2020-12-08 18:13:28.198490900 +0000
--- to/AndroidManifest.xml 2020-12-08 18:10:38.788471600 +0000
***************
*** 30,37 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 30,37 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB fromAndroidManifest.xml to/AndroidManifest.xml
*** fromAndroidManifest.xml 2021-05-31 15:40:24.000000000 +0300
--- to/AndroidManifest.xml 2021-05-31 15:40:24.000000000 +0300
***************
*** 37,44 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 37,44 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,22 @@
diff -crB fromAndroidManifest.xml to/AndroidManifest.xml
*** fromAndroidManifest.xml 2021-05-31 15:40:24.000000000 +0300
--- to/AndroidManifest.xml 2021-05-31 15:40:24.000000000 +0300
***************
*** 37,44 ****
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
--- 37,44 ----
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
! <activity android:name="com.discord.app.AppActivity" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
! <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View file

@ -0,0 +1,17 @@
## DisTok CutTheCord: Better Rotation
This patch changes rotation settings to disallow upside down rotation.
Contributed by [clienthax](https://gitdab.com/clienthax).
#### Available and tested on:
- 49.13
- 52.3
- 53.0
- 53.1
- 53.3
- 54.0
- 55.1
- 56.0
- 78.4 - Alpha

Some files were not shown because too many files have changed in this diff Show more