steins-zapp/old_README.org

156 lines
8.5 KiB
Org Mode
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

* Steins;Zapp D-Mailer
#+HTML: <p align="center"><img src="https://gitlab.com/secret-vault/steins-zapp/-/raw/master/visual_identity/02_Makise_Kurisu/icon.png" height="150"><p>
Steins;Zapp D-Mailer, Steins;Zapp, or just S;Z, are a /Steins;Gate/ inspired patches for WhatsApp made in [[https://t.me/soulamods][SoulaMods]] /WhatsApp Go/ (~com.soula2~).
Join our [[https://matrix.to/#/#steins-zapp:matrix.thisisjoes.site][Matrix space]] to receive S;Z updates, suggestion polls and pré-releases! 😁
** Screenshots
#+HTML: <p align="center"><img src="https://gitlab.com/secret-vault/steins-zapp/-/raw/master/visual_identity/screenshots/02.png" height="450"> <img src="https://gitlab.com/secret-vault/steins-zapp/-/raw/master/visual_identity/screenshots/03.png" height="450"> <img src="https://gitlab.com/secret-vault/steins-zapp/-/raw/master/visual_identity/screenshots/05.png" height="450"> <img src="https://gitlab.com/secret-vault/steins-zapp/-/raw/master/visual_identity/screenshots/10.png" height="450"><p>
[[https://gitlab.com/secret-vault/steins-zapp/-/tree/master/visual_identity/screenshots][Click here for more S;Z screenshots]]
** Download
To download the entire Steins;Zapp APK pack, go to [[https://gitlab.com/secret-vault/steins-zapp/-/tree/master/steins-zapp/][ ~steins-zapp/~ ]] and download [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/steins-zapp.zip][ ~steins-zapp.zip~ (or simply click here)]] or download individual APK's below at [[steins-zapp/ content]].
#+BEGIN_QUOTE
Important: do *NOT* download Steins;Zapp from *ANY* unofficial sources to prevent damages (the official ones are [[https://gitlab.com/secret-vault/steins-zapp][GitLab]], [[https://github.com/secret-vault/steins-zapp][GitHub]] and [[https://matrix.to/#/#steins-zapp:matrix.thisisjoes.site][Matrix space]]).
#+END_QUOTE
*** ~steins-zapp/~ content
- [[https://gitlab.com/secret-vault/steins-zapp/-/tree/master/steins-zapp][ ~steins-zapp/~ - Builds output]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/CHECKSUM][ ~CHECKSUM~ - SHA256 checksum of all ~*.apk~ files]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/com.steinszapp0.apk][ ~com.steinszapp0.apk~ - 0 Steins;Zapp (build #1)]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/com.steinszapp1.apk][ ~com.steinszapp1.apk~ - β Steins;Zapp (build #2)]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/com.steinszapp2.apk][ ~com.steinszapp2.apk~ - α Steins;Zapp (build #3)]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/com.steinszapp3.apk][ ~com.steinszapp3.apk~ - γ Steins;Zapp (build #4)]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/com.steinszapp4.apk][ ~com.steinszapp4.apk~ - δ Steins;Zapp (build #5)]]
- [[https://gitlab.com/secret-vault/steins-zapp/-/raw/master/steins-zapp/steins-zapp.zip][ ~steins-zapp.zip~ - All files above, but compressed/zipped]]
-----
* Technical info
** Repo content
- ~dependencies/~ - Steins;Zapp dependencies (softwares, scripts, images, etc.)
- ~dev_builds/~ - Development builds output
- ~patches/~ - ~com.soula2~ patched files
- ~steins-zapp/~ - Steins;Zapp builds output
- ~visual_identity/~ - The entire S;Z visual identity (icons, wallpapers, project files). Collect and enjoy them 😉
- ~builder.sh~ - Script to generate Steins;Zapp builds
- ~CHANGELOG~ - Changes made in the actual Steins;Zapp release
- ~dev_builder.sh~ - Script to help at development
- ~dev_patches.org~ - Guide to find the files to patch
- ~LICENSE~ - MIT License
- ~README.org~ - Readme file with all important information about this project
** Build guide
*** Software dependencies
- Any terminal emulator with any shell
- Java (developed with ~openjdk 17.0.3~)
- ~sed~ (should come by default with most *NIX os'es: BSD, Linux, Mac, etc.)
- ~zip~
*** Autobuild
1. Open a terminal instance and enter on it on repo root folder (this one, that contains ~builder.sh~)
2. Check if ~builder.sh~ has execution permission (run ~ls -l~). If hasn't, ~chmod +x builder.sh~
3. Run builder, with ~./builder.sh~
#+BEGIN_QUOTE
The entire process can take more than 5 minutes. Make sure repo is up to date, to prevent errors
#+END_QUOTE
4. If everything is OK, you're done!
*** Manual build
1. If exists, delete ~source/~ directory
2. Run APKTool (it should be located at ~dependencies/~) to decompile WhatsApp Go. Run
#+BEGIN_SRC sh
java -jar ./dependencies/apktool_2.6.1.jar -q d ./dependencies/com.soula2_v0.22.6L.apk -o ./source
#+END_SRC
3. Delete everything inside ~source/assets/~, after that, delete WhatsApp bloats. Run
#+BEGIN_SRC sh
rm -r ./source/assets/*
./dependencies/value_list.sh source
#+END_SRC
4. Copy and *replace* everything inside ~patches/~ into ~source/~. To automate this process, run
#+BEGIN_SRC sh
cp -rf ./patches/* ./source/
#+END_SRC
5. Copy all light and dark theme files, to their respective directories. Run
#+BEGIN_SRC sh
./dependencies/light_theme.sh source
./dependencies/dark_theme.sh source
#+END_SRC
6. Delete everything inside ~steins-zapp/~. To automate this process, run
#+BEGIN_SRC sh
rm -rf ./steins-zapp/*
#+END_SRC
7. Create a copy of ~source/~ directory called ~build/~. To automate this process, run
#+BEGIN_SRC sh
cp -r ./source ./build
#+END_SRC
8. Copy last modified files. To automate this process, run
#+BEGIN_SRC sh
declare -A symbols
symbols[0]="0"
symbols[1]="β"
symbols[2]="α"
symbols[3]="γ"
symbols[4]="δ"
divergence=VALUE
./dependencies/general.sh build ${divergence}
#+END_SRC
#+BEGIN_QUOTE
Change ~VALUE~ to any number greater or equal to 0 and less or equal to 4.
#+END_QUOTE
9. Change properly the package name to ~steinszapp${divergence}~. To automate this process, run
#+BEGIN_SRC sh
for apk_paths in $(grep -s -r -o "com\.soula2" ./build | cut -d ":" -f 1 | uniq); do sed -i "s/com\.soula2/com\.steinszapp${divergence}/g" ${apk_paths} > /dev/null; done
for smali_paths in $(grep -s -r -o "Lcom\/soula2" ./build | cut -d ":" -f 1 | uniq); do sed -i "s/Lcom\/soula2/Lcom\/steinszapp${divergence}/g" ${smali_paths} > /dev/null; done
#+END_SRC
10. Change ~wa_go_name~ and ~wa_go_version~ values in ~build/values-v1/strings.xml~. Run
#+BEGIN_SRC sh
release=NAME
sed -i "s/<string name=\"wa_go_name\">Soula2<\/string>/<string name=\"wa_go_name\">${symbols[${divergence}]} Steins;Zapp ${release}<\/string>/g" ./build/res/values-v1/strings.xml > /dev/null
sed -i "s/<string name=\"wa_go_version\">v0.22.6L<\/string>/<string name=\"wa_go_version\">${release}<\/string>/g" ./build/res/values-v1/strings.xml > /dev/null
#+END_SRC
#+BEGIN_QUOTE
Change ~NAME~ to a name you want.
#+END_QUOTE
11. Build, align and sign the APK. Run
#+BEGIN_SRC sh
java -jar ./dependencies/apktool_2.6.1.jar -q b ./build -o build.apk
./dependencies/zipalign -p -f -v 4 build.apk ./steins-zapp/com.steinszapp${divergence}.apk > /dev/null
java -jar ./dependencies/apksigner.jar sign --ks ./dependencies/key.keystore --ks-key-alias steins-zapp --ks-pass pass:elpsykongroo ./steins-zapp/com.steinszapp${divergence}.apk
#+END_SRC
12. If everything gone correctly, your build is complete. To delete temp files, run
#+BEGIN_SRC sh
rm -rf ./steins-zapp/com.steinszapp${divergence}.apk.idsig ./build.apk ./build > /dev/null
#+END_SRC
#+BEGIN_QUOTE
Repeat steps 7 - 12 to build up to 5 Steins;Zapp's (you can build more, but you must have a basic shell scripting acknowledgment to change some variables and values with no errors).
#+END_QUOTE
*** Development tips
- *Check* ~dev_patches.org~ *to understand how S;Z patches are made*
- *Backup* files and instruction-sets *BEFORE modifying* them
- Test patches using ~dev_builder.sh~ before copy modified files into ~patches/~
- Document the changes adding comments in the patches (search for ~Steins;Zapp~ in ~.smali~ and ~.xml~ files to do it like them)
-----
* Credits
This project wouldn't be possible without the help and collaboration of:
- [[https://sidneypepo.gitlab.io][Sidney PEPO (aka sysb1n)]]
- [[https://www.youtube.com/channel/UCVoF2uXL9w19fbPa8Ks7pVg][Ellen Manga]]
- [[https://github.com/wender-404][José Wender (aka Dreifus)]]
- [[https://matrix.to/#/#steins-zapp:matrix.thisisjoes.site][S;Z community members❣]]
- [[https://t.me/soulamods][SoulaMods Team (WhatsApp Go devs ) 💗]]
#+BEGIN_QUOTE
Made in [[https://matrix.to/#/#secret-vault:matrix.thisisjoes.site][FG Lab (aka Secret Vault)]]
#+END_QUOTE
/~El Psy Kongroo/