A mobile operating system for hardware you can buy today, with its roots in Symbian.
Try it in VirtualBox · On a PinePhone · Build it
Phorepoc OS is an open-source operating system for phones and PCs. It grew out of Symbian, the system that ran on hundreds of millions of phones. In 2010 Nokia and the Symbian Foundation released Symbian's source code and then shut the project down, and that code sat untouched for years.
We started from that source, and build it with a modern compiler. Phorepoc OS runs on any x86-64 PC or virtual machine and on the PINE64 PinePhone, with the Symbian^3 interface and its apps, networking with modern TLS, and OpenGL ES on the GPU through Mesa. It runs apps made for Symbian^3, and it keeps going where Symbian stopped: Catalogue for apps, drivers and codecs, a developer shell, a modern web engine.
Phorepoc is the whole project around it: the operating system, the tools to build and debug it (the pdk and PhoneLab), and services like the Cloud Companion.
Phorepoc OS on a PinePhone, in the built-in Haze theme.
![]() |
![]() |
| About. | Music player. |
- Phorepoc OS for PCs
: a VirtualBox appliance and a bootable ISO for QEMU and real PCs. The easiest way to try it.
- Phorepoc OS for the PinePhone
: a microSD card image. Boot Phorepoc OS on the phone, take the card out and its own system is back.
- core: everything that is the same on every device, built for an architecture, never for a device.
- adaptation-x86-64 and adaptation-a64: the kernel on x86-64 (64-bit CPU, 32-bit pointers, SMP) and the Allwinner A64 drivers shared by every A64 board.
- tls: TLS 1.2 and 1.3 through mbedTLS, built into Phorepoc OS and usable as a drop-in on older Symbian phones.
- mesa-symbian: OpenGL ES 1.1/2.0 and EGL through Mesa, in software on any board or on the Mali-400 GPU of the A64.
- Catalogue
: the software store. It reads the index, shows what's there by category with search, checks each download's SHA-256 and installs it. Drivers, codecs, web engines and apps get onto a device this way, not by being built into the image.
- index: the list of software Catalogue offers. Add yours with a pull request.
- webengine: the plug-in interface between the browser and its web engines. The browser draws pages with whichever engine you install from Catalogue:
- webkit-symbian
: WPE WebKit 2.54 with JavaScriptCore, behind the browser-control API apps have used since 2010.
- netsurf-symbian
: NetSurf, a small, fast engine with https and JavaScript (QuickJS-ng), for devices with little memory.
- webkit-symbian
- codecpack
: FFmpeg and OpenH264 video and AAC support, installed from Catalogue.
![]() |
![]() |
| Catalogue on the phone. | The Catalogue website. |
![]() |
![]() |
| The website on a phone. | A listing, with each file's SHA-256. |
- Proteus
: runs ARM Symbian programs on the PC edition. An app installed from an ARM SIS starts like any other; Proteus runs its ARM code in user space, with the program's own SecureId and capabilities.
- qt-symbian
: Qt 4.8.7, so Qt apps made for Symbian^3 keep running. A Catalogue package, never part of an image.
- cxxrt: the modern C++ runtime (libstdc++, C++17/20) and the POSIX functions ported libraries need.
Phorepoc OS starts with the Symbian^3 interface. Other shells install from Catalogue and are chosen in Settings, Device, UI shell.
- hildon-ui
: the Maemo / Leste Hildon widgets and home and status plug-ins, on gtk-symbian
(GTK 2), glib-symbian
and dbus-symbian
, with the hildon-theme-alpha
theme.
- orbit-ui
: Orbit, the Hb interface and Qt home screen of Symbian^4, published in 2010 and never shipped on a phone. On the PC edition for now.
- clutter-symbian: Clutter and Cogl on OpenGL ES. The libraries build and a test program draws a Clutter stage; not released yet.
- pdk
:
phebuilds Phorepoc OS from source (components, resources, ROMs, skins, icons, SIS packages), and PhoneLab puts a running phone's screen, files and log in your browser. - toolchain: the Linux build images: GCC x32, Arm GNU 14.2 and the Symbian host tools built from the 2010 source.
- Cloud Companion
: a server you run yourself that brings the modern internet to legacy phones: a cloud browser, your mail, messages and calendar.
Cloud Companion: a desktop in your browser, with your messages, files and the cloud browser in overlapping windows.
- dav-sync: syncs contacts and calendars with any CalDAV or CardDAV server, in small C99.
- tailscale-symbian: a small Tailscale client in plain C99. An early prototype.
Every Phorepoc OS development image has a debug link, and PhoneLab turns it into a workbench in your browser: the live screen you can
tap on, one-step flashing with a report of each boot, the full log of every boot, the phone's files and a shell, and a
REST API and MCP server so scripts and AI agents can do all of it too. It runs anywhere with one docker run, and it
works with stock Nokia Symbian phones as well. See the pdk.
The easiest way is VirtualBox. Download the .ova file from the
latest PC release and import it with
File > Import Appliance.
If you have a PinePhone, download phorepoc-pinephone-sdcard.img.xz from the
latest PinePhone release and write it to a microSD
card with balenaEtcher.
Where things are
Phorepoc OS is built in layers, and each repository only knows about the ones below it:
| Layer | Repositories |
|---|---|
| Boards: one device each | adaptation-pc, adaptation-pinephone |
| Chips: kernel ports and drivers | adaptation-x86-64, adaptation-a64 |
| Optional layers | tls, mesa-symbian, cxxrt, webkit-symbian, codecpack |
| The operating system | core, built for an architecture, never for a device |
| The tools | pdk (the phe command, PhoneLab, the CI pipeline) and toolchain (the compilers) |
So bringing Phorepoc OS to a new device means writing a board repository, plus a chip repository if nobody has done that chip yet. You don't change core or the pdk. The pdk's docs/layering.md explains how.
If you're curious about where it all started, symbian-2010 is the 2010 release with
as few changes as possible, booting in the Symbian QEMU from qemu-syborg.
The oss.* repositories are untouched mirrors of the 2010 source packages.
Code we wrote is Apache-2.0. Symbian files we've changed are EPL-2.0, with GPL-2.0-or-later as a Secondary License, and Symbian files we use unchanged stay EPL-1.0. Ported projects keep their own licences: Mesa is MIT, mbedTLS is Apache-2.0 and FFmpeg is LGPL.
Phorepoc was started by Kyriakos Bompotis. Contributions are very welcome, and each repository's README explains how to get going.
Phorepoc is an independent project, not affiliated with Nokia or the Symbian Foundation, and ships no Nokia firmware files.







