Just like many other League addicts, ever since the Vanguard incident, TFT has been a no-go....
except it isn't, since the Android version works just as fine, after some tweaks!
- Step 1: Pre-requisites for Waydroid to work
- Step 2: Installing Waydroid
- Step 3: Configuring Waydroid
- Step 4: Launching Waydroid
- Step 5: Enabling Google apps and Installing TFT
- Step 6: Playing TFT and optimizing it!
- Further optimizations - UI
- Some bugs I noticed xd
Waydroid relies on the binder
kernel module: make sure you're running a kernel supporting it if you get any issues related to it.
Some examples of working ones are Cachyos's, Nobara's, Zen or Xanmod kernels.
Wayland is also needed, but it works just fine on x11 using weston
; we'll get into it later.
You can find the instructions for installing Waydroid at here: https://docs.waydro.id/usage/install-on-desktops
I'll cover the install process for Arch Linux or based distros.
yay -S waydroid
sudo waydroid init
sudo systemctl enable --now waydroid-container.service
Intel and AMD users should have no issues overall; NVIDIA users though, read at the fixes here: https://wiki.archlinux.org/title/Waydroid#GPU_Requirements
Using the great waydroid-script repo, time to tweak our Android install.
Make sure to install lzip
from your repositories before using it. For Arch users: sudo pacman -S lzip
Now follow the instructions from their repo:
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py
Here, select the following just like in the image, but depending on your GPU:
- Select
libndk
if on AMD - Select
libhoudini
if on Intel (switch to libndk in case it's not working!)
In my case:
Once done, we're ready to launch Waydroid!
I'll divide the guide between X11 and Wayland.
You'll first need to install weston
from your repos. Arch users: sudo pacman -S weston
You can run Waydroid within weston with this little script:
unset WAYLAND_DISPLAY && waydroid session stop && weston --width 1600 --height 900 --socket=wayland-1 &>/dev/null & sleep 1 && WAYLAND_DISPLAY=wayland-1 XDG_SESSION_TYPE=wayland waydroid show-full-ui && pkill -x weston
Adjust the resolution to your needs like 1920x1080 or add the --fullscreen
parameter if you want it!
You can also save it to a script to launch from terminal or edit with:
echo "unset WAYLAND_DISPLAY && waydroid session stop && weston --width 1600 --height 900 --socket=wayland-1 &>/dev/null & sleep 1 && WAYLAND_DISPLAY=wayland-1 XDG_SESSION_TYPE=wayland waydroid show-full-ui && pkill -x weston" | sudo tee /usr/local/bin/waydroid-x11
sudo chmod +x /usr/local/bin/waydroid-x11
Now running waydroid-x11
should be all!
waydroid show-full-ui
...and it should be all up and running!
You can also customize the window's size if needed:
waydroid prop set persist.waydroid.width 1920
waydroid prop set persist.waydroid.height 1024
sudo systemctl restart waydroid-container.service
Or, if you prefer Windowed mode to fullscreen, you can set it with:
waydroid prop set persist.waydroid.multi_windows true
sudo systemctl restart waydroid-container.service
Once in Waydroid, check if your internet is working by opening Play Store.
If it doesn't work, run the following or check the Arch wiki.
Docker is also known to create issues with Waydroid's net script, solution's here.
sudo ufw allow 67
sudo ufw allow 53
sudo ufw default allow FORWARD
Once Play Store is open, try to login and...you'll get upon a This device isn't Play Protect certified
notification. A classic.
Let's fix it real quick according to Waydroid's instructions:
sudo waydroid shell
And then:
ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
Copy the number string after "android_id|" and paste it at the following link: https://www.google.com/android/uncertified
Wait a few minutes, restart Waydroid and you'll have an up-and-running Play Store. Login as usual, and download TFT!
Open TFT like usual, login and let it download its things. Upon finish, close it as it's time to optimize it!
TFT's config file is hidden in ~/.local/share/waydroid/..., here's how to edit it:
sudo nano /home/$USER/.local/share/waydroid/data/data/com.riotgames.league.teamfighttactics/no_backup/Config/Game.cfg
Here there's a LOT of stuff you can customize (even resolution, if it lags) but what we're looking for is:
WaitForVerticalSync
: change it to 1 in order to unlock fps (it's needed, apparently)FrameCapType
: change it to 0, again, to unlock fps.
Now save and exit with CTRL+X.
And finally, that's pretty much it! Enjoy playing TFT!
If you run TFT in fullscreen on a 1920x1080 monitor, you might notice that the UI appears excessively large—almost as if it's been upscaled for mobile. This happens because the game has hardcoded resolution checks, and if the display resolution is within five pixels of 1920x1080, it assumes it's running on a phone, forcing a mobile-optimized UI.
After testing for weeks, I found an incredibly simple fix: slightly increasing the resolution.
sudo waydroid shell
wm size 1920x1085
This small tweak makes a huge difference in usability, making it way closer to the original UI for the PC version :')
- The carousel and some arenas looks.... black. You can still see champions and items above, but for some reason it stays black xd. Not really sure whether it depends on video drivers or what..
can you make league playable on linux?