WIP

# Building from source

You will need:
* Python 3.12
* Java 17 JDK
* Android Studio/Android dev tools (Specifically, `zipalign`)
* Some understand of android development

You can invoke the python script directly using `python build.py ...` or using the bash script: `./build.sh ...`.
Use whichever you prefer.

1. Copy `zipalign` or `zipalign.exe` from your android build tools (ver. 35) into `tools`
2. If you want a release build, generate a keystore and name it `release.keystore` in `keystores` using `keytool`
3. Get a copy of the tumblr apk version `34.3.0.110` and place it inside `source-apk` (Naming doesn't matter)
4. Run the build script using `python build.py build r`
5. Copy the output apk (in `build/apk/tumblr-ykit.apk`) wherever you need it.

Build commands and flags:

`./build.sh extract` - Extracts the apk's contents into `build/extracted`

`./build.sh clean` - Cleans up the workspace by deleting the `build` directory

`./build.sh assemble` - Assembles the ykit apk without signing or aligning it

`./build.sh build [flags]` - Builds the apk and aligns and signs it using the specified key.

Build flags:

`a` - Deploy to android studio in `~/ApkProjects/tumblr-ykit`. To generate one, open AS, and load the apk. From then on you will not need to repeat this step unless you want to analyze the code (TODO: This explanation is garbage.)

`r` - Sign using release keystore `keystores/release.keystore` (You will have to create it yourself)

`d` - Sign using the debug keystore `keystores/debug.keystore` (It will be created automatically)