OnePlus 6 Linux Phone Installation Guide

Ubuntu Touch & postmarketOS Installation from macOS Tahoe 26.2

Table of Contents

1. Introduction & OS Comparison

The OnePlus 6 (codename: enchilada) and OnePlus 6T (codename: fajita) are excellent candidates for mobile Linux due to their Snapdragon 845 processor and strong community support. This guide covers installation of both Ubuntu Touch and postmarketOS from a Mac running macOS Tahoe 26.2.

Ubuntu Touch

Best for: Users wanting a polished, daily-driver experience

  • 96.4% feature completion on OnePlus 6
  • Calls, SMS, MMS, data working
  • Camera fully functional
  • WiFi, Bluetooth, NFC supported
  • GPS and all sensors working
  • Simple installation via UBports Installer

Limitations: Fingerprint reader not working, partial offline charging

Current Version: 20.04 Focal OTA-11 (November 2025)

postmarketOS

Best for: Tinkerers who want a true Linux experience

  • Multiple UI options (Phosh, Plasma Mobile, GNOME Mobile, Sxmo)
  • Full Linux environment (Alpine-based)
  • Camera support added in 2025
  • Full disk encryption available
  • Regular kernel updates
  • Active development community

Limitations: More technical, firmware dependencies

Current Version: v25.12 (December 2025)

2. Prerequisites & Downloads

Important: Both installations require unlocking the bootloader, which will completely wipe all data from your device. Back up everything before proceeding!

Required Software for macOS

Essential Downloads

OxygenOS 9 Firmware (Required for Both)

If your OnePlus 6 is running Android 10 or later, you must downgrade to OxygenOS 9 before installing either Linux OS.

TWRP Recovery (For Manual Installation)

postmarketOS Images (v25.12)

Select your preferred user interface:

Latest Phosh Images (January 2026):

3. macOS Setup

Option A: Install via Homebrew (Recommended)

If you don't have Homebrew installed, first install it:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then install the required tools:

# Install Android platform tools (ADB and Fastboot)
brew install --cask android-platform-tools

# Install UBports Installer (for Ubuntu Touch)
brew install --cask ubports-installer

# Verify installation
adb --version
fastboot --version

Option B: Manual Installation

1Download Platform Tools

Download the macOS ZIP from developer.android.com

2Extract and Configure PATH

# Extract to a permanent location
unzip platform-tools-latest-darwin.zip -d ~/Library/Android/

# Add to your shell profile (~/.zshrc for Tahoe)
echo 'export PATH="$HOME/Library/Android/platform-tools:$PATH"' >> ~/.zshrc

# Reload shell configuration
source ~/.zshrc

# Verify
adb --version

3Download UBports Installer

Download the .dmg file from GitHub Releases and drag to Applications.

4. Phone Preparation

Backup Warning: The following steps will erase ALL data on your phone. Ensure you have backed up:

Step 1: Check Android Version

Go to Settings → About Phone → Build Number to check your OxygenOS version. If you're on Android 10 or later, you must downgrade to OxygenOS 9 first.

Step 2: Enable Developer Options

  1. Go to Settings → About Phone
  2. Tap Build Number 7 times until you see "You are now a developer!"
  3. Go back to Settings → Developer Options
  4. Enable OEM Unlocking
  5. Enable USB Debugging
  6. Enable Advanced Reboot (optional but helpful)

Step 3: Unlock Bootloader

This will wipe your device! Make sure you've backed up everything.

1Boot into Fastboot Mode

Power off your phone completely. Then hold Volume Up + Power until you see the Fastboot screen.

Alternative: With USB debugging enabled, run: adb reboot bootloader

2Connect to Mac and Verify Connection

fastboot devices

You should see a device ID followed by "fastboot". If not, check your USB cable and connection.

3Unlock the Bootloader

fastboot oem unlock

On your phone, use the volume keys to highlight "Unlock the bootloader" and press Power to confirm.

The phone will wipe and reboot. This is normal.

4Re-enable Developer Options

After the phone reboots, go through initial setup (you can skip most things), then re-enable Developer Options and USB Debugging as before.

Step 4: Downgrade to OxygenOS 9 (If Needed)

If your phone is running Android 10+, you must downgrade:

  1. Download the OxygenOS 9.0.9 full ROM ZIP file
  2. Copy the ZIP to your phone's internal storage
  3. Go to Settings → System → System Updates
  4. Tap the gear icon → Local Upgrade
  5. Select the OxygenOS 9 ZIP file
  6. Wait for the downgrade to complete

5. Ubuntu Touch Installation

Recommended Method: The UBports Installer handles everything automatically and is the easiest way to install Ubuntu Touch.

Method A: UBports Installer (Recommended)

1Launch UBports Installer

Open the UBports Installer from your Applications folder.

2Connect Your Phone

Connect your OnePlus 6 via USB. Make sure USB Debugging is enabled.

3Select Your Device

The installer should automatically detect "OnePlus 6 (enchilada)". If not, select it manually from the list.

4Select Channel

Choose Stable for the best experience. Development builds are available but may have bugs.

5Follow On-Screen Instructions

The installer will guide you through the process, including rebooting to fastboot mode and flashing the necessary files.

6Wait for Installation

The process takes 10-15 minutes. Don't disconnect your phone until complete.

Method B: Manual Installation via TWRP

1Download Required Files

2Boot TWRP (Do NOT Flash)

# Boot to fastboot mode first
adb reboot bootloader

# Boot TWRP temporarily (important: use 'boot', not 'flash')
fastboot boot twrp-3.5.2_9-0-enchilada.img
Important: Use fastboot boot NOT fastboot flash. Permanently flashing TWRP can cause issues.

3Push and Install Ubuntu Touch

# Push the Ubuntu Touch ZIP to the device
adb push ubuntu-touch-*.zip /sdcard/

# In TWRP, go to Install and select the ZIP file

6. postmarketOS Installation

Method A: Web Flasher (Easiest)

Browser Requirement: The web flasher requires a Chromium-based browser (Chrome, Edge, Brave). Firefox does not support WebUSB.

1Open the Web Flasher

Go to https://flash.postmarketos.org/ in Chrome or another Chromium-based browser.

2Boot to Fastboot Mode

adb reboot bootloader

Or power off and hold Volume Up + Power.

3Connect and Flash

  1. Click "Give access" in the web flasher
  2. Select your OnePlus 6 from the USB device list
  3. Choose your preferred user interface (Phosh recommended)
  4. Click Flash and wait for completion
Default Password: The default user password for web flasher installations is 147147

Method B: Manual Fastboot (More Control)

1Download postmarketOS Images

Download both files from the official images page:

2Decompress the Images

# On macOS, use unxz or The Unarchiver
unxz 20260126-1815-postmarketOS-v25.12-phosh-25-oneplus-enchilada-boot.img.xz
unxz 20260126-1815-postmarketOS-v25.12-phosh-25-oneplus-enchilada.img.xz

3Boot to Fastboot Mode

adb reboot bootloader

4Flash the Images

# Erase dtbo partition first
fastboot erase dtbo

# Flash the boot image
fastboot flash boot 20260126-1815-postmarketOS-v25.12-phosh-25-oneplus-enchilada-boot.img

# Flash the system image to userdata
fastboot flash userdata 20260126-1815-postmarketOS-v25.12-phosh-25-oneplus-enchilada.img

# Reboot
fastboot reboot
Troubleshooting: If you see "waiting for any device", try:

Method C: pmbootstrap (Full Disk Encryption)

Note: pmbootstrap does not run natively on macOS. You'll need a Linux virtual machine.

1Set Up a Linux VM

Use UTM (for Apple Silicon) or VirtualBox to create an Alpine Linux or Ubuntu VM. Make sure to pass through USB devices.

2Install pmbootstrap in the VM

# Alpine/postmarketOS
apk add pmbootstrap

# Ubuntu/Debian
apt install pmbootstrap

# Or from source
git clone https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git
cd pmbootstrap
ln -s "$PWD/pmbootstrap.py" ~/.local/bin/pmbootstrap

3Initialize and Flash

# Initialize pmbootstrap
pmbootstrap init
# Select: oneplus-enchilada, phosh, edge

# Flash with encryption
pmbootstrap install --fde
pmbootstrap flasher flash_kernel
pmbootstrap flasher flash_rootfs

7. Dual Boot Setup (Optional)

The OnePlus 6 supports A/B slots, allowing you to install Android on one slot and Linux on another.

Advanced Users Only: Dual booting is more complex and may require manual intervention if something goes wrong.

Concept

The OnePlus 6 has two system slots (A and B). You can:

Switching Slots

# Check current slot
fastboot getvar current-slot

# Switch to slot A (Android)
fastboot --set-active=a

# Switch to slot B (Linux)
fastboot --set-active=b

# Reboot
fastboot reboot

For detailed dual-boot instructions, see the postmarketOS Dual Booting Wiki.

8. Post-Installation

Ubuntu Touch First Boot

postmarketOS First Boot

Enabling VoLTE (postmarketOS)

For VoLTE support on postmarketOS, additional configuration is required. See the postmarketOS Wiki for detailed instructions.

9. Troubleshooting

Common Issues

Problem Solution
"waiting for any device" Try sudo fastboot devices, different USB cable, or different port
Phone not detected in ADB Re-enable USB debugging, try "Revoke USB debugging authorizations" and reconnect
Boot loop after flashing Boot to fastboot mode and re-flash images, or restore OxygenOS
UBports Installer stuck Close installer, run adb kill-server, then restart installer
Web flasher not working Use Chrome/Chromium (Firefox doesn't support WebUSB)
No cellular signal Ensure you downgraded to OxygenOS 9 before installing Linux OS

Recovery Options

Restore to Android:

# Download OxygenOS full ROM
# Boot to fastboot mode
adb reboot bootloader

# Flash recovery and boot using MSMDownloadTool or local upgrade method

Re-flash Linux OS:

# Boot to fastboot
adb reboot bootloader
# or hold Volume Up + Power

# Re-run the flash commands or use the web flasher again

10. Resources & Links

Official Documentation

Download Links

Community & Support

Additional Guides

Last Updated: March 26, 2026

Guide Version: 2026.1

This guide is provided as-is. Always refer to official documentation for the most current information.