bluecord/README.md
2019-02-05 03:14:41 +03:00

53 lines
3 KiB
Markdown

# cutthecord
Discord Android app patches.
**Latest supported Discord Android version:** 8.4.2g (842), released on 2019-02-05.
New patch development will be done for the latest supported version.
## Binaries
An F-Droid repo is available on https://fdroid.a3.pm/seabear/repo/.
You can add that to your phone and get updates easily or just download directly from there.
**You will need to uninstall any and all existing Discord or CutTheCord applications from your phone before installing one, or else installation will fail.**
Feel free to ignore play protect, it's bullshit.
## Building
#### Toolchain setup
- Get apktool (due to [a bug](https://github.com/iBotPeaches/Apktool/issues/1909) present on v2.3.4, I recommend using [this build](https://elixi.re/i/cq4r2zxg.jar))
- Get a keystore, see [here](https://stackoverflow.com/a/14994354/3286892), step 1.
- If you want Mutant Standard emoji patches, get 72x72 copies of latest version of mutant standard emojis with codepoints. I have a zip [here](https://mutant.lavatech.top/72x72.zip).
- Extract the emojis you got somewhere.
- Clone this repo somewhere, edit `emojireplace.py` and set the `extracted_mutstd_path` folder to the folder you just extracted emojis to.
#### Building a patched discord app
- Get a Discord apk (*cough* [apkmirror](https://www.apkmirror.com/apk/discord-inc/discord-chat-for-gamers/), [aptoide API](https://ws75.aptoide.com/api/7/app/getMeta?package_name=com.discord)).
- Extract it with apktool (`apktool d <apk path>`)
- Get all the necessary patches for that version. Necessary patches are not available for all versions and are only required to get some versions to pack together correctly.
- Get optional patches you want for your version. If the patch you want isn't available for your version, you'll have to port them yourself.
- Apply the patches (`patch -p1 < <patch name>`).
- If you want mutant (or other emoji patches), edit `patches/mutant/emojireplace.py` to point to extracted discord folder (`extracted_discord_path`), and apply emoji patches (`python3 emojireplace.py`)
- Build the new APK (`apktool b com.discord-832`)
- Sign the new APK (`jarsigner -keystore <keystore path> <foldername>/dist/<foldername>.apk <alias>`)
- Get your new APK from `<foldername>/dist/<foldername>.apk`, install and enjoy!
#### Building patches
After extracting the APK, copy it to a folder that you won't modify (`cp -r com.discord-836 com.discord-836-base`), so that you can easily diff them.
To get the diff, run `diff -crB -x "dist" -x "res/raw" -x "build" CleanFolder PatchedFolder > patchname.patch`
#### Porting patches
You can use `patchport` to easily attempt to port patches.
It's not really intelligent and doesn't do much more than just checking if an existing patch can be applied to a given version (it also replaces relevant variables required for porting various patches), but it saves a lot of time if used carefully.
Example command: `python3 patchport.py 839 8.3.9g /home/ave/Downloads/dic/com.discord-841 /home/ave/Projects/cutthecord/`