Compare commits
62 commits
master
...
2021-05-31
Author | SHA1 | Date | |
---|---|---|---|
59c76a6506 | |||
a8c17e2032 | |||
de8cfb9a10 | |||
b7aa569435 | |||
7e4c49becc | |||
f58c28410d | |||
91c37ab9d0 | |||
166d763792 | |||
0754700d51 | |||
c4fd0be029 | |||
d139344274 | |||
b6f80bbee0 | |||
2786de6c73 | |||
de992e86ea | |||
78d5dea649 | |||
7b77ce9eda | |||
f1e8382505 | |||
d3c51e2bef | |||
4199ef9d22 | |||
e1e88773ec | |||
015c90eb70 | |||
cdfa005d35 | |||
c17cb44eaa | |||
4de5282bf3 | |||
a70f7395aa | |||
1d0a8b7088 | |||
5bd99aa8c3 | |||
5cca5ef444 | |||
3e0464c796 | |||
f08854f5d0 | |||
f8dbc9333c | |||
1c6b151083 | |||
0359f5f975 | |||
f709704fce | |||
ec47b98061 | |||
1a7ad17c87 | |||
55e2e94b63 | |||
8ec2dd75c2 | |||
44cd92fcdc | |||
8037a7c9b8 | |||
ab288a7c79 | |||
f38df07e48 | |||
350f30b1f6 | |||
4f86cec370 | |||
9d7138b6a6 | |||
66b238bb1b | |||
ee4a3cb49e | |||
8f690ffe03 | |||
69700dacaf | |||
fb587755da | |||
1b99304a05 | |||
c60d13a690 | |||
1cc00f6a48 | |||
f3ee05255c | |||
4db6c07a04 | |||
fb8a857955 | |||
9082828e56 | |||
354e1538c2 | |||
8811192499 | |||
9de62d94f3 | |||
dab5801b1e | |||
03827d9f02 |
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
12
.gitignore
vendored
|
@ -1,2 +1,14 @@
|
||||||
patches/*/*-custom.patch
|
patches/*/*-custom.patch
|
||||||
patches/*/*.patch-failed
|
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
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#### Toolchain setup
|
#### 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 a keystore, see [here](https://stackoverflow.com/a/14994354/3286892), step 1.
|
||||||
- Get apksigner, it's part of android build tools.
|
- 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).
|
- 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,7 +21,6 @@ CTCCI requires python3.6+, and also likely requires Linux (I haven't tried it on
|
||||||
#### Initial setup
|
#### Initial setup
|
||||||
|
|
||||||
- Follow the "Toolchain setup" steps above in case you haven't already.
|
- 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.
|
- 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, edit the `$REPO_FOLDER/patchport-state.json` file.
|
- 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`).
|
- 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`).
|
||||||
|
@ -61,11 +60,11 @@ To get the diff, run `diff -crB -x "dist" -x "res/raw" -x "build" CleanFolder Pa
|
||||||
|
|
||||||
#### Porting patches
|
#### 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.
|
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
|
#### Figuring out which patch is causing your build to break
|
||||||
|
|
||||||
|
|
68
Dockerfile
Normal 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
|
10
README.md
|
@ -2,11 +2,17 @@
|
||||||
|
|
||||||
Modular Client Mod for Discord's Android app.
|
Modular Client Mod for Discord's Android app.
|
||||||
|
|
||||||
**Latest supported Discord Android version:** 53.0 (1356), released on 2020-12-13.
|
**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.
|
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)!
|
Check out [README.md in patches folder to see what patches are available and what each of them do](patches/README.md)!
|
||||||
|
|
||||||
|
|
1
ctcci/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
ctcconfig.py
|
|
|
@ -1 +0,0 @@
|
||||||
../bettertm/bettertm.sh
|
|
|
@ -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
|
|
Before Width: | Height: | Size: 12 KiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png
|
|
|
@ -1,204 +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
|
|
||||||
- 34.0
|
|
||||||
- 34.2
|
|
||||||
- 34.3
|
|
||||||
- 35.0-alpha1
|
|
||||||
- 36.3
|
|
||||||
- 36.5
|
|
||||||
- 38.0
|
|
||||||
- 38.1
|
|
||||||
- 40.04
|
|
||||||
- 41.02
|
|
||||||
- 41.05
|
|
||||||
- 41.06
|
|
||||||
- 41.10
|
|
||||||
- 41.11
|
|
||||||
- 42.0
|
|
||||||
- 42.1
|
|
||||||
- 42.3
|
|
||||||
- 44-alpha2
|
|
||||||
- 44-alpha4
|
|
||||||
- 44.5
|
|
||||||
- 44.6
|
|
||||||
- 45.2
|
|
||||||
- 46.0
|
|
||||||
- 46.3
|
|
||||||
- 48.0
|
|
||||||
- 48.1
|
|
||||||
- 48.2
|
|
||||||
- 49.1
|
|
||||||
- 49.2
|
|
||||||
- 49.8
|
|
||||||
- 49.10
|
|
||||||
- 49.12
|
|
||||||
- 49.13
|
|
||||||
- 52.3
|
|
||||||
- 53.0
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{"versionname": "53.0", "versioncode": "1356"}
|
|
236
patchport.py
|
@ -1,236 +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)
|
|
||||||
|
|
||||||
if from_versionname != to_versionname:
|
|
||||||
# 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
|
@ -0,0 +1,2 @@
|
||||||
|
*.apk
|
||||||
|
|
0
resources/distok/android/.gitkeep
Normal file
0
resources/distok/versionlogs/.gitkeep
Normal file
0
resources/fdroid/repo/.gitkeep
Normal file
0
resources/fonts/.gitkeep
Normal file
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 578 KiB After Width: | Height: | Size: 578 KiB |
Before Width: | Height: | Size: 638 KiB After Width: | Height: | Size: 638 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 578 KiB After Width: | Height: | Size: 578 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
resources/icons/others/.gitkeep
Normal file
0
resources/keystores/.gitkeep
Normal 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.
|
- compact: It's just a pain to maintain.
|
||||||
- smalltime: 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?
|
- 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
|
22
resources/old-patches/betterrotation/1358.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1361.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1362.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1365.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1367.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1368.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1370.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/1371.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/78204.patch
Normal 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"/>
|
22
resources/old-patches/betterrotation/87202.patch
Normal 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"/>
|
|
@ -8,4 +8,10 @@ Contributed by [clienthax](https://gitdab.com/clienthax).
|
||||||
- 49.13
|
- 49.13
|
||||||
- 52.3
|
- 52.3
|
||||||
- 53.0
|
- 53.0
|
||||||
|
- 53.1
|
||||||
|
- 53.3
|
||||||
|
- 54.0
|
||||||
|
- 55.1
|
||||||
|
- 56.0
|
||||||
|
- 78.4 - Alpha
|
||||||
|
|