---
title: "Minecraft: Bedrock Edition on Waydroid"
description: "A guide to running Minecraft: Bedrock Edition on Linux with Waydroid"
header: /assets/page/minecraft-bedrock-linux/header.png
header_alt: "neowofetch of my PC with Minecraft: Bedrock Edition in the background"
header_caption: "Minecraft: Bedrock Edition running on my PC"
footer: true
published: 2024-02-29T21:00:00.000+10:00
edited: 2024-04-24T15:03:00.000+10:00
---

## Introduction

Minecraft: Bedrock Edition is Microsoft's cross-platform version of the game. With the introduction of the Better Together Update it allowed players to play together regardless of platform through Xbox. Bedrock boasts its cross-play support for Windows, Xbox, Nintendo Switch, PlayStation, and mobile. However, macOS and Linux support are notably absent from Bedrock. While I am not aware of a workaround for macOS you can play Bedrock on Linux using [Waydroid](https://waydro.id/). This solution runs fairly well and works with cross-play because it's just *special* Android.

## Prerequisites

The following things are required to play Bedrock through this method:

- A computer running Linux and systemd
  - If you're running Linux but don't know what systemd is you're probably fine :3
- A Wayland desktop environment / compositor
  - GNOME
  - KDE Plasma
  - Sway
  - river (what I'm using for this)
  - COSMIC (Epoch, not tweaked GNOME)
- A graphics card compatible with Mesa
  - AMD Radeon
  - Intel
  - NVIDIA with Nouvou+NVK (untested)
- A Google account that owns Minecraft for Android on the Play Store

## Installation

Before setting up Waydroid there are some distribution specific steps you must follow.

### Arch Linux

You will need an AUR helper or know how to manually install AUR packages. This page assumes you are using paru. You either need the binder_linux DKMS modules or the Linux Zen kernel.

#### binder_linux

To install the binder_linux DKMS modules install the binder_linux-dkms package from the AUR:

```bash
paru -S binder_linux-dkms
```

#### Linux Zen

To install the Linux Zen kernel run the following command:

```bash
sudo pacman -S linux-zen linux-zen-headers
```

You will also need to change your system to boot with Zen.

#### Waydroid AUR

You can then install Waydroid from the AUR:

```bash
paru -S waydroid
```

### Debian/Ubuntu

Install Waydroid from the offficial repository:

```bash
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid
```

### Fedora

Install the Waydroid package:

```bash
sudo dnf install waydroid
```

### NixOS

In `/etc/nixos/configuration.nix` or in your flake add the following and rebuild:

```nix
virtualisation.waydroid.enable = true;
```

### Other

View the [install instructions](https://docs.waydro.id/usage/install-on-desktops) for your distribution.

## Waydroid Setup

First you need to enable and start the `waydroid-container` service:

```bash
sudo systemctl enable --now waydroid-container
```

Once the container has started you can initialize Waydroid with Google apps:

```bash
sudo waydroid init -s GAPPS
```

To install apps from Google Play you must "certify" your Waydroid installation:

```bash
waydroid session start
sudo waydroid shell
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 ID from the command output and enter it on the [Google Device registration](https://www.google.com/android/uncertified) page. Then restart the `waydroid-container` service:

```bash
sudo systemctl restart waydroid-container
```

## Configure Waydroid

Waydroid has a few settings you can configure from the command line. The one you will most likely want to set is the resolution, especially if you use fractional scaling. Waydroid currently doesn't appear to properly support fractional scaling so you will need to account for that when setting the resolution. To calculate the scaled resolution divide your display's resolution by the scaling factor, for 1920&times;1080 at 150% that's 1920 / 1.5 = 1280 and 1080 / 1.5 = 720. To set the resolution to 1280&times;720 run:

```bash
waydroid prop set persist.waydroid.width "1280"
waydroid prop set persist.waydroid.height "720"
```

After changing any properties you need to restart `waydroid-container`:

```bash
sudo systemctl restart waydroid-container
```

Some extra settings you might want to change in Android's System Settings are:

- Sound > Media volume: 100%
  - This will make the game audio match your system volume
- System > Language & input > Physical keyboard > Use on-screen keyboard: Off
  - This prevents Android's on-screen keyboard from appearing since you probably have a physical keyboard

## Play Minecraft

Open Waydroid's full system UI and navigate to the Google Play Store. Sign in with your Google account if you aren't already. Search for and download Minecraft.

You should be able to launch Minecraft from your desktop environment's application launcher or from the Waydroid full system UI. Some caveats to this solution are that render distance is limited to 32 chunks and you can't enable RTX even if you get it working on NVIDIA. Keyboard and mouse work out of the box and you may be able to pass through a controller but I couldn't get it to work in my limited testing.

This video shows Minecraft: Bedrock Edition running with 32 chunks through Waydroid on NixOS (the video is much older than the page header) with river.

<video controls preload="metadata">
  <source src="/assets/page/minecraft-bedrock-linux/demo.webm" type="video/webm" />
</video>
