Your 5G hotspot is a Linux computer

Install Ubuntu or OpenWrt next to Android on the ZTE F50 / MU300 and the ZTE U30 Air. SSH, Wi-Fi, Bluetooth and the 5G modem work. Android stays, and if Linux ever fails to start, the device goes back to it by itself.

A 5G pocket hotspot running Linux A drawing of a small 5G hotspot with three status LEDs. Its face shows two rooms: a green one for Android and an amber one for Linux.

What is this?

The ZTE F50 is a small box that takes a SIM card and shares 5G internet over Wi-Fi. Inside it is a little computer running Android. This project puts a real Linux system on it, next to Android.

Think of it as a Raspberry Pi that already has a 5G modem, a Wi-Fi access point and 32 GB of storage inside. The ZTE U30 Air is the same board and chip with a battery, and it is supported too.

Why would you want that?

What works

Supported devices

ZTE F50 / MU300ZTE U30 Air
ChipUnisoc T760 (UMS9620)the same
PowerUSB onlybattery (4050 mAh), charger and fuel gauge
USB network address192.168.77.1192.168.78.1
SD cardLinux can live on a card instead of the internal storageno card slot
Extrasstatus LEDsstatus LEDs, battery readings, NFC tag, USB host with an OTG adapter (mainline kernels)

The installer reads which one it is from Android, so you never pick it by hand. The U30 Pro is a different chip (UMS9632) and is not supported. Most units have 64 GB of internal storage; on the 32 GB variant, read the check step before anything else.

How it works, like a story

Four small pictures explain everything that matters.

1. One house, two rooms

Your device is like a house. Android already lives in one room, with all its things. On the usual 64 GB device there is a second, empty room nobody uses: about 32 GiB of storage after Android's partitions. Linux moves into that empty room. Nothing in Android's room is moved or changed.

The house also has two front doors, called boot slots A and B. Android uses one of them. The installer puts Linux's door, its boot image, on the other one.

Android and Linux on one device The internal storage: Android's partitions stay as they are, and Linux goes into the free space after them. The device has two boot slots; Android keeps its own, and Linux's boot image goes into the other one. Internal storage (the usual 64 GB device) Android's partitions system, apps, your data Free space, about 32 GiB Ubuntu and/or OpenWrt left as they are Linux lives here Two boot slots: two front doors into the same house Android's slot never written The other slot Linux's boot image F50: Linux can live on an SD card instead

2. Every start is a trial

Each time the device starts Linux, it treats the start as a trial and uses up one try. When Linux is up (the USB network and SSH work), Linux tells the device "this start was good", and all tries are back. If Linux does not come up, the try stays used. After 5 failed starts in a row (you choose 1 to 6), the device simply starts Android instead. You cannot lock yourself out by accident.

What happens when the device starts The device starts Linux as a trial. If Linux comes up, the boot is confirmed and the count of tries is full again. If it does not, one try is used up; when the tries run out, the device starts Android by itself. Power on The bootloader starts Linux and uses up one try Is Linux up within about a minute? USB network and SSH yes Boot confirmed: all tries are back You use Linux no Not confirmed: one try fewer Tries left? yes next start no Android starts by itself Tries: 1 to 6 (5 unless you chose otherwise). Locked Linux never goes back on its own.

3. Going back to Android is one command

From Linux, ask for Android at the next start and restart:

sudo mu300-next-boot android
sudo reboot

From Android, Linux comes back with su -c mu300-linux or the Action button of the "MU300 Linux" Magisk module the installer adds. To remove Linux for good, run the uninstaller from your computer. All of this is on the updates and safety page.

4. Your own network, on your desk

Phones and laptops join the device's Wi-Fi hotspot, or plug into its USB port. The device takes them to the internet over 5G or LTE with your SIM card, or over another Wi-Fi network it has joined. Over USB, your computer reaches the device itself at 192.168.77.1 (F50) or 192.168.78.1 (U30 Air).

How the device connects everything Phones and laptops join the device's Wi-Fi hotspot or plug into its USB port. The device takes them to the internet over 5G or LTE with its SIM card, or over another Wi-Fi network. Phone Laptop Wi-Fi hotspot USB cable F50 / U30 Air 192.168.77.1 (F50) 192.168.78.1 (U30 Air) 5G / LTE with your SIM or another Wi-Fi network Internet

Quick start

About 15 minutes, on Windows, macOS or Linux, with the device rooted and connected by USB. The install guide walks through every question.

  1. Check

    ./install.sh --check only reads the device and tells you whether, and where, Linux fits.

  2. Install

    ./install.sh asks a few questions, shows what it will write and waits for you to type INSTALL.

  3. Log in

    About a minute later: ssh ubuntu@192.168.77.1, or open http://192.168.77.1 for OpenWrt.

git clone https://github.com/dikeckaan/mu300-linux
cd mu300-linux
./install.sh --check          # reads only, writes nothing
./install.sh                  # Windows: .\install.ps1  or  install.cmd

What you lose (spoiler: nothing)

Android on these boxes has no screen, no speaker and no HDMI either, so Linux takes nothing away that was there. All it takes is your last excuse for not having a 5G Linux server in your pocket. Installing it costs you nothing; not trying it costs you the server.

A hobby project, at your own risk

This is an experimental project made in spare time. It is not a product, it has no support line and it comes with no warranty. Writing to a phone-class device can leave it unusable, and rooting, unlocking and recovery tools are outside this project. Keep a backup, and do not install on a device you cannot afford to lose. Changing what your device sends (TTL, band locks, VPNs) may break your operator's terms or local law. Read the full notice in the README.

Questions people ask

Will installing Linux delete Android or my data?

On the usual 64 GB device, no. Linux goes into about 32 GiB of storage that belongs to no partition, and Android's partitions, its data and the partition table are never written. The installer writes only one boot partition (the slot Android is not using) and 32 bytes of misc.

The 32 GB variant is the exception: it has no free space at all. There you can use an SD card (F50), or let the installer shrink userdata, which erases everything in Android. That path is experimental and asks you to type ERASE first.

Do I need to root the device first?

Yes. The device must already be rooted and unlocked: it must already boot a modified Android boot image, with USB debugging on. Getting there is not part of this project, and you do it at your own risk with those tools' own instructions.

What happens if Linux does not start?

The device goes back to Android by itself. Every start of Linux is a trial; if it fails 5 times in a row (you choose 1 to 6 when you install), the next start is Android. See the safety net.

How do I get back to Android?

From Linux: sudo mu300-next-boot android, then sudo reboot. To remove Linux completely, run ./uninstall.sh (Windows: .\uninstall.ps1) while the device is in Android. From Android, su -c mu300-linux starts Linux again.

Ubuntu or OpenWrt: which one should I pick?

OpenWrt if you mostly want a router with a web interface; Ubuntu if you want a small server with apt. You can also install both and switch with mu300-os. The choosing guide explains it, together with the three kernels.

Is the ZTE U30 Pro supported?

No. The U30 Pro has a different chip (UMS9632). Supported are the ZTE F50 / MU300 and the ZTE U30 Air, which share the same board and chip; the installer recognises which one it is talking to.

Can I install it without a computer?

Yes, if the device already runs a rooted Android with Magisk 26 or newer: each release has Magisk zips, one per system and kernel (11 in all, OpenWrt with the control panel included), that install from the Magisk app. See installing with a Magisk zip.

Can I put Linux on an SD card?

On the F50, yes: with a card of at least 700 MiB in the slot the installer asks whether Linux goes there. The U30 Air has no card slot.

Is there a screen, or sound?

No. HDMI over USB-C does not work and the board has no speaker or microphone. You use the device over SSH, a web interface or a serial console.

Does it cost anything?

No. The scripts and documentation are MIT-licensed and the kernels are GPL-2.0. The release images contain no proprietary files: the installer copies the Wi-Fi and modem files from your own device.

Where to go next