A Manager app for Android that patches TIDAL to bring the Radiant Lyrics experience to mobile.
This project adds ALLOT of completely Optional & Customisable Patches/Integrations to TIDAL on Android (iOS SoonTM). Every Patch & Integration can be disabled/enabled & adjusted exactly how you want TIDAL to feel/look <3
- Insane Customisation of the Player Backdrop
- Higher quality lyrics from more providers (WIP)
- Progress pill overlay in lyrics mode (restored from old UI)
- Keeps lyrics controls visible
- One-handed player controls
- Redesigned mini-player with gestures
- Word Level Lyrics (Word by Word) <3
- Syllable Level Lyrics (Syllable by Syllable) <3
- Waze | Control TIDAL playback from Waze
This project is not affiliated with TIDAL in any way. Use at your own risk.
- I can't guarantee using this project won't result in any platform enforcement (Bans)
- Phone of some unknown description
- The smallest amount of brain damage
- Android 7.0+ & >340 DPI
- Internet
- Paid TIDAL Account
- Download the latest
rl-manager.apkfrom Releases - Install it (allow unknown sources if prompted)
- Open the Manager & follow the instructions in the app
- Install the patched TIDAL APK when prompted
- You might need to disable Play Protect (might not be required so just ignore if you don't see a warning prompt)
git clone https://github.com/meowarex/rl-mobile
cd rl-mobile/Manager
./gradlew :app:assembleDebugThe Manager downloads the TIDAL APK, disassembles it with baksmali, applies each .patch file in patches/ as a unified diff against the matching smali class, reassembles, and repacks the APK.
Each patch file targets a specific class via its --- a/ header — the filename itself is just for readability.
-
Disassemble TIDAL with apktool:
apktool d tidal.apk -o tidal-src
-
Copy the target smali file and edit it:
cp tidal-src/smali_classesX/com/tidal/.../Target.smali Target.smali.orig # make your changes to Target.smali -
Generate the patch:
diff -u Target.smali.orig Target.smali \ --label a/com/tidal/.../Target.smali \ --label b/com/tidal/.../Target.smali \ > patches/my-feature.patch -
Test it applies cleanly:
cp Target.smali.orig Target.smali patch -p1 < patches/my-feature.patch
- The
--- a/header must be the full smali class path relative to the dex root (e.g.com/tidal/android/feature/...) - Patches apply sequentially in filename order — if your patch touches a file another patch already modifies, make sure the context lines still match after the prior patch
- No new helper classes — the patcher only edits existing APK classes
- Keep patches focused: one feature per file
- Comment EACH patch line on the end with a simple 1-5 word description of what it does/or is for
- Make sure the patch file name is descriptive of what it does
patches/extension/radiant/Kawarp.smali and patches/extension/dev/kawarp/KawarpEngine.smali
are generated — don't hand-edit them. The engine comes from the
Kawarp-AGSL library, which the build tooling expects
cloned inside tools/ (the clone is gitignored):
git clone https://github.com/meowarex/kawarp-agsl tools/kawarp-agslTo change the TIDAL glue, edit tools/kawarp-build/src/radiant/Kawarp.java; to change the
effect itself, PR the Kawarp-AGSL repo. Then regenerate and commit the refreshed smali:
./tools/kawarp-build/build.shFork the repo, add your patch to patches/, and open a PR describing what it changes and why.
- Patch PR should be prefixed with
[patch]in the title
GPL-3.0 — see LICENSE.
Plain English: use it, change it, share it, even sell it. But if you distribute it (or a fork), you must ship the source under the GPL too — no closed-source forks, and per GPL-3 §5(a) a modified version has to carry a prominent notice saying it was modified and when.
"Radiant Lyrics" is the project's name — please pick your own for a fork, so users can tell them apart.
Third-party components and their licences are listed in THIRD-PARTY.md. The TIDAL app itself
is not covered by this licence and remains the property of its owners.
Inrixia — TidaLuna framework