mocktail README

The project's README from github.com/komaruworld/mocktail. As one markdown file: README.md.

Mocktail

CI Stars Downloads License Discord

Mocktail runs the Android x86_64 Roblox client on Linux, including a Linux userspace hosted by FreeBSD's Linuxulator. It provides the Android ABI and JNI pieces the client expects, then connects them to SDL3 and Vulkan or OpenGL on the Linux side.

Mocktail is an independent community project. It is not affiliated with Roblox Corporation or VinegarHQ and does not distribute the Roblox client.

How it works

Roblox APK -> signature and ABI checks -> Bionic + JNI -> SDL3 + Vulkan/OpenGL

The APK is checked before any native code is loaded. It is downloaded on first launch and is not bundled with Mocktail. The last working copy is kept in case an update fails.

Install with Flatpak

Install the stable release from Flathub:

flatpak install flathub space.bigrat.mocktail
flatpak run space.bigrat.mocktail

Nightly builds are produced automatically from the latest main branch:

flatpak install --user https://mocktail.bigrat.space/mocktail.flatpakref
flatpak run space.bigrat.mocktail

Install from the AUR

Arch Linux users can install either the pinned source release (mocktail) or the current development version (mocktail-git) with an AUR helper:

paru -S mocktail-git
# or
yay -S mocktail-git

Use mocktail instead of mocktail-git to build the pinned release from source, or install the stable prebuilt package with paru -S mocktail-bin or yay -S mocktail-bin.

Install with DNF

Fedora 44 users can install either the stable mocktail package or the mocktail-nightly package built from main:

sudo curl -fsSL https://mocktail.bigrat.space/rpm/mocktail.repo \
  -o /etc/yum.repos.d/mocktail.repo
sudo dnf install mocktail
# or
sudo dnf install mocktail-nightly

Install with APT

Ubuntu 26.04 users can install either the stable mocktail package or the mocktail-nightly package built from main:

sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://mocktail.bigrat.space/mocktail-packages.gpg \
  -o /etc/apt/keyrings/mocktail.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/mocktail.gpg] https://mocktail.bigrat.space/apt mocktail main" | \
  sudo tee /etc/apt/sources.list.d/mocktail.list >/dev/null
sudo apt update
sudo apt install mocktail
# or
sudo apt install mocktail-nightly

Direct downloads

Direct AppImage, DEB, and RPM downloads are available from the Website and GitHub Releases.

Screenshots

Roblox home in Mocktail

Roblox gameplay in Mocktail

Roblox experience in Mocktail

FFlag overrides

Put a JSON object in $XDG_CONFIG_HOME/mocktail/fflags.json (usually ~/.config/mocktail/fflags.json). Mocktail applies it on the next launch.

{
  "FFlagExample": "True",
  "DFIntExample": "120"
}

FAQ

To see the most Frequently Asked Question go check FAQ.md

Building

Linux x86_64 is supported. Experimental FreeBSD 15.1 Linuxulator support has been tested with an x86_64 Fedora 44 userspace. On FreeBSD, Mocktail runs inside Linuxulator; it is not a native FreeBSD binary. Building requires CMake 3.20+, Git, pkg-config, LLD, binutils, a C++17 compiler, SDL 3.4+, SDL3_ttf, Vulkan, EGL, libplacebo, fontconfig, libcurl, OpenSSL, libelf, libyaml, minizip, Capstone 5, utf8proc, nlohmann/json, GTK4, libadwaita 1.6+, and WebKitGTK 6.0.

See the FreeBSD Guide for setup and launch instructions.

Ubuntu 26.04+
sudo apt update
sudo apt install build-essential cmake git ninja-build pkg-config lld \
  libsdl3-dev libsdl3-ttf-dev libcurl4-openssl-dev libssl-dev \
  nlohmann-json3-dev libyaml-dev libelf-dev libminizip-dev \
  libcapstone-dev libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-dev \
  libutf8proc-dev libfontconfig1-dev libegl-dev libvulkan-dev \
  libplacebo-dev zlib1g-dev
Arch Linux
sudo pacman -S --needed base-devel cmake git ninja pkgconf lld sdl3 sdl3_ttf \
  curl openssl nlohmann-json libyaml libelf minizip capstone gtk4 \
  libadwaita webkitgtk-6.0 libutf8proc fontconfig libglvnd \
  libplacebo vulkan-headers vulkan-icd-loader zlib
Fedora 44+
sudo dnf install gcc-c++ cmake git ninja-build pkgconf-pkg-config lld \
  SDL3-devel SDL3_ttf-devel libcurl-devel openssl-devel \
  nlohmann-json-devel libyaml-devel elfutils-libelf-devel minizip-ng-compat-devel \
  capstone-devel gtk4-devel libadwaita-devel webkitgtk6.0-devel \
  utf8proc-devel fontconfig-devel libglvnd-devel vulkan-headers \
  vulkan-loader-devel libplacebo-devel zlib-ng-compat-devel
git clone --recurse-submodules https://github.com/komaruworld/mocktail.git
cd mocktail
make build
./build/mocktail

Known limitations

Mocktail does not currently work with hardened_malloc. Using hardened_malloc may cause Mocktail to fail to start or crash during runtime. Run Mocktail without hardened_malloc enabled.

License

Apache License 2.0. Third-party components keep their own licenses.

Support

You can support the project by giving it a star or with cryptocurrency:

mocktail (komaruworld/mocktail)

Searching Database…

Что это?Mocktail — экспериментальный рантайм совместимости, запускающий Android-клиент Roblox x86-64 на Linux и даже на FreeBSD через её Linuxulator. Он реализует нужные клиенту части Android ABI/JNI и подключает их к SDL3 и Vulkan или OpenGL на стороне хоста.
Это полноценный Android-эмулятор или нечто более лёгкое?Это не полноценный Android-эмулятор — он лишь заново реализует нужные клиенту Roblox привязки Android ABI и JNI, а рендер, звук и ввод маршрутизирует через нативные SDL3 и Vulkan или OpenGL, так что это скорее тонкий слой совместимости, чем VM.
Он работает надёжно или есть известные поломки?Сейчас Mocktail не работает с hardenedmalloc — с включённым он может не запускаться или падать во время работы, так что его нужно отключать. Поддержка FreeBSD тоже официально экспериментальная и проверена только на userspace x86-64 Fedora 44 под Linuxulator.
Он запускается на FreeBSD нативно или только на Linux?На FreeBSD Mocktail работает внутри Linuxulator (Linux-совместимого userspace FreeBSD), а не как нативный бинарник FreeBSD; полная поддержка нацелена на x86-64 Linux, а поддержка FreeBSD 15.1 Linuxulator помечена как экспериментальная.
Откуда берётся клиент Roblox — он входит в Mocktail?APK Roblox не входит в Mocktail; он скачивается при первом запуске и проверяется до загрузки какого-либо нативного кода, а последняя рабочая копия хранится как запасной вариант на случай неудачного обновления.
Можно настроить экспериментальные флаги Roblox (FFlags)?Да, можно положить JSON-объект в ~/.config/mocktail/fflags.json, и Mocktail применит эти переопределения FFlag при следующем запуске.
Какие бэкенды рендера он использует?Mocktail может рендерить через Vulkan или OpenGL на стороне Linux, а за окна, ввод и звук отвечает SDL3.
Size
13.6 MB
Stars
341
Age
2mo
Commits · 90 Days