GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • hakios
  • Documentation
  • Devices
  • Changelog
  • FAQ
  • GitHub
  • Telegram
  • RU
  • UA
  • 中文
  • Reference

This view

  • Original page
  • New address

GeezerVison is showing hackios-web.vercel.app — HakiOS: the Darwin kernel on Android phones

XNU · ANDROID · QEMU

hakios / 04Open source · research projectAdreno · Snapdragon 778G

hakios

Apple's open-source Darwin kernel on Android phones with a Qualcomm chip, the way Android is Linux on phones: our own boot loader, our own drivers, a configuration per device. The same kernel runs in QEMU with nothing of Apple's in it.

Get started →Port your phoneRead the documentation

xnu-8796.121.2 · POCO X5 Pro 5G · QEMU virt

CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms · CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms · CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms · CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms · CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms · CP_MEMCPY · 0x70460004 · CP_MEM_WRITE · xnu-8796.121.2 · gpu=1 · touchscreen=1 · launchd · HakiosGPU · fence 40/40 · 16 MB / 182 ms ·

01 · Documentation

Pick your way in

Four ways into hakios, from the one that needs nothing to the one that needs patience. Each ends somewhere useful.

02 · boot

How it works

From the power button to an app. The striped parts are what you bring yourself; everything else is open source in our repositories.

  1. fastbootthe phone's own boot loader starts an image from RAM
  2. HakiOS UEFI · U-Bootscreen and memory, then the loader
  3. xnuloaderkernel, boot arguments, device tree
  4. XNU + driverstouch, storage, GPU, audio, Wi-Fi, modem
  5. launchdthe first process
  6. Darwin user spacefrom your own restore image

hakios, open sourceyours, or the phone's

The whole chain, explained →

03 · metal

Metal on the Adreno

The window server draws through Metal on the phone, by two paths. This is the faster: hakios-metal turns Metal into the Adreno's own command packets for the kernel's GPU driver, no Vulkan in between. The other is UniXNU's Metal on Vulkan, through Turnip. Page swipes at the full 1125x2436: 100 to 104 frames a second against 50 to 57; at the default 750x1624, 107 to 118. A steady 120 has not been reached.

  1. MTLCommandBufferthe window server records its frames
  2. HakiosMetal.bundlethe Metal plug-in, with CoreAnimation's shaders
  3. hakios-metalAdreno PM4 packets, buffers, fences
  4. HakiosGPUthe kernel's GPU driver
  5. Adreno 642Lruns them; the frames go to the panel

How to use Metal →

04 · status

What works today

As each device's own status file records it. Only what has been seen working on the device is marked as working.

POCO X5 Pro 5GQEMU
Lock screen, home screen, stock appsyesyes, slowly
Touch and buttonsyesyes
GPU (OpenGL ES through Mesa)yesno
Wi-Fiyesnetwork
Speakers, microphone, battery levelyessound
Cameras, vibrationyesno
Metalpartly: the window server, swipes 107 to 118 fps, about 110 over all gestures, not 120started: no GPU
Cellularpartlyno
Bluetoothnono

Every part, per device →

05 · layers

Three layers, and which ones are ours

  1. The open core The kernel port, the boot loader, the drivers and the tools. All of it is source code in our repositories.
  2. What you put on top The kernel can start a user space you supply. It was built so that it can start the Darwin 16.5 user space, which you lay out yourself from Apple's own download. None of it is in our repositories.
  3. Apple's services Activation, Apple ID, iCloud and the App Store are not supported and are not a goal.

Nothing is installed. The loader goes into RAM with fastboot boot, the system lives in RAM for one session, and a reboot gives the phone back to Android. The only thing written by default is the loader's own log, a few kilobytes.

06 · try

Try it

The open kernel in QEMU needs no phone and nothing of Apple's. The documentation takes it from there to the full Darwin user space in QEMU and to the phone.

git clone https://github.com/oosexgang/hakios-xnu-kernel.git hakios
cd hakios
make doctor          # what this machine lacks, and what to do
make qemu-open       # the open kernel in QEMU: nothing of Apple's, nothing of a phone's

Get started →

07 · code

Repositories

Split the way phone projects are: a common repository that every device builds on, one repository per device that carries its chip family's layer with it, the UEFI, and this site. tools/hakios-device.py new makes a whole device repository, so anyone can start one.

  • hakios-xnu-kernelThe kernel port, every common driver, the loader, user space, the tools and the documentation
  • hakios-sm7325POCO X5 Pro 5G: its configuration, status, UEFI platform, firmware script and its SoC layer (Snapdragon 778G). One repository per device
  • hakios-uefiHakiOS's UEFI: Mu-Silicium with our boot path, our name and our boot logo
  • hakios-metalMetal's command model on the Adreno, through the kernel's GPU driver
  • hakios-mt6768Infinix Hot 20 (MediaTek Helio G85): an experimental port with its own loader
  • hackios-webThis site

08 · people

Team

  • @oodzeFounder
  • @netusdMedia, founder of OOSEX GANG
  • @wannqnDeveloper
  • @hxfuxyyXDDeveloper
  • @netusdCooperation and advertising
  • t.me/oosexgangdevsTelegram

09 · press

Press kit

The mark and the logo, free to use when writing about the project.

Mark, SVGMark, PNG 1024Logo, SVG

Community token

There is a community token, separate from the code. It licenses nothing and gives no rights to the software, the repositories or the team's income.

Network
BNB Chain
Ticker
$HackiOS
Supply
1,000,000,000
Contract
0x5be8dca38cff485d3a80809195284c7f74c77777
Platform
flap.sh

Not financial advice. Crypto prices are volatile and you can lose everything you put in. Always check the contract address.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.