Skip to content

repinek/SonolusReverse

Repository files navigation

Warning

This Project is for educational and research purposes only. Not affiliated with Sonolus; using this mod may violate Sonolus' TOS and EULA.
Use at your own risk. I'm NOT responsible for bans or anything else that happens to you or your account.
If you enjoy Sonolus, please consider supporting project by purchasing VIP or gems in-game.
If you wanna contact me: see Contact Me

SonolusReverse

Mod for the Sonolus rhythm game with extra features, written using Frida and frida-il2cpp-bridge

Tested Sonolus version 1.1.1 on Android. Should work on iOS too, but untested.

Screenshots

SonolusReverse section in Settings

Themes shortcut & Themes spoofing

Rosé Pine 2 - A custom theme
彗く星(しいたけ杯) - An exclusive theme for tournament participants

Features

  • Custom Settings Section
  • VIP + Themes spoof: Client-side unlock of VIP (removes ad) and all themes (including exclusives)
  • Version Spoof: Override the version used by client compatibility checks

    WIP: Custom Themes: Create your own themes! Currently only hardcoded.

Planned:

See our TODO. If you wanna contribute: see Contributing

Building

  1. Download Sonolus executable and install npm dependencies.
npm install
  1. Build a script
npm run build

Script will be built into dist/agent.js

  1. Patch Sonolus executable using Frida Gadget in script mode.
    I'm using fgi to patch (APK only).
fgi -i <sonolus-apk> -t script -l dist/agent.js

Developing

  1. Download Sonolus executable and install npm dependencies.
python -m venv .venv # Creating a virtual environment for Python

# Activate Python venv, it's depending on what OS you are. For example Linux with fish:
. .venv/bin/activate.fish

pip install -r requirements.txt

npm install
  1. Patch Sonolus executable using Frida Gadget in listen mode (or use frida-server).
    I'm using fgi to patch (APK only).
fgi -i <sonolus-apk>
  1. Build Script
npm run build:dev

Script will be built into dist/agent.js

  1. Spawn script
npm run spawn

NOTE: You can re-build script without re-launching game

Developer infrastructure

  • Typed widget builders for Sonolus UI
  • i18n ready
  • Webpack bundler with contiditional compilation (ifdef)
  • Pre-commit hooks
  • Auto-incrementing build version (MAJOR.MINOR.BUILD)
  • Simple, but yet enough Logger
  • JSON Config system

Scripts

Build the script:
Compile the agent into ./dist/agent.js
npm run build - a RELEASE version (minified, optimized, no debug logs)
npm run build:dev - a DEV version

npm run spawn - Inject a script into the game with the Gadget (You need patched game with Gadget in listen mode and Frida Installed)

npm run prettier - Runs prettier to format code and files
npm run lint Runs ESLint to static analyzes code

* from package.json

Contributing

Got ideas? Want to add localization? Found a bug? Pull requests and issues are welcome!

Contact Me

My contacts are on my GitHub Profile - @repinek

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

Acknowledgements

About

Mod for the Sonolus rhythm game with extra features, written using Frida and frida-il2cpp-bridge

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors