Debian GNU/Linux with the Phosh shell on a Samsung Galaxy Note10 Lite (SM-N770F, Exynos 9810), running Droidian.
This is a Halium port, not a mainline port. The device runs its stock Android 4.9 vendor kernel, and the Android hardware HALs — graphics, audio, camera, radio — are used through libhybris from inside an LXC container. There is no mainline kernel for Exynos 9810, so this is what "Linux on this phone" realistically means today. Everything above that layer is ordinary Debian.
This is a community port. It is not affiliated with or endorsed by Samsung or the Droidian project.
This is a detached, unofficial development effort. It is not submitted to or tracked by the official droidian-devices registry, and it is not guaranteed to stay in sync with upstream Droidian, Halium, or any of the projects it patches. Treat every repository here as this port's own fork, not as a tracked mirror of anything upstream.
Status: usable as a daily-driver-ish device, with caveats. Calls connect but there is no call audio; the device reboots instead of shutting down while the charger is attached. Read Known issues before you flash anything.
This port was developed with heavy use of an LLM (Claude) throughout: reading kernel and driver source, forming and eliminating hypotheses, writing and translating patches, and writing this documentation. A port this deep — kernel driver fixes and a full feature audit among them — would not have come together in this timeframe without it.
Every kernel and package change described here was built and run on the actual device; nothing here is theoretical or untested code generated and left unverified. But the investigation, the wording, and a fair amount of the code came from the LLM, with the human directing the work, running the hardware tests, and making the calls it couldn't. Read the technical claims with that in mind, and if something looks wrong, it may well be - open an issue.
Short version — the full table with evidence is in docs/STATUS.md.
| ✅ Working | Display, touch, GPU, rotation, S Pen (hover, tap, button, scroll), WiFi, Bluetooth + tethering, mobile data, SIM, speaker, microphone, camera (photo + video), battery, charging, vibration, sensors, Waydroid (Android apps) |
| UI smoothness, video thumbnails, NFC (hardware works, toggle does not), Waydroid under heavy GPU/video load | |
| ❌ Not working | Call audio, shutdown while charging, external display |
There is also early, unfinished research into a Wayfire/Plasma Mobile desktop mode — not part of the image, not daily-usable, and not a claim this port is making yet. See docs/STATUS.md if you are curious about where that stands.
External display / DeX-style output is impossible on this device and no amount of software will change that: the USB-C port is USB 2.0-only, so the SuperSpeed pairs that DisplayPort Alt Mode needs are not routed on the PCB. The full 18-step investigation and evidence chain is in docs/research/displayport-alt-mode.md.
The port follows the layout used by the other droidian-devices ports:
| Repository | What it is |
|---|---|
| linux-android-samsung-r7 | Kernel 4.9.191 with the device patches, plus Debian packaging |
| adaptation-samsung-r7 | The adaptation package: udev rules, audio policy, systemd units, S Pen daemon |
| droidian-samsung-r7 | Image recipes, the device apt repository, and the release workflow |
| docs (this repo) | Documentation, status, install guide, research notes |
Flashable images are published as releases on droidian-samsung-r7.
See docs/INSTALL.md.
Before you start, three things that will ruin your day if you skip them:
- The bootloader must be unlocked.
- The device must be on Android 13 stock firmware. This model has anti-rollback; you cannot go back to an older firmware once it has been raised.
heimdallaccepts one flash command per download-mode session. Reboot into download mode again between commands.
Beyond getting the device to boot, two genuine defects in Samsung's own kernel source were found and fixed. Both are independent of this particular device and apply to any Exynos device using the same drivers:
usbpd_manager.c—MANAGER_DisplayPort_Configure_ACKEDwas an emptycase, sodisplayport_drvwas never told aboutDP_CONNECT/LINK_CONF/HPDafter a successful DisplayPort negotiation.displayport_usb_typec_notification_proceed()— never assignedccic_cable_state. That assignment only existed in a sibling function that is dead code unlessCONFIG_USE_DISPLAYPORT_CCIC_EVENT_QUEUEis enabled.
Three more fixes that matter to anyone doing a Halium port:
- Mali
kbasePID-namespace bug — GPU context creation fails with-ESRCHinside any PID namespace, which is why Android-in-a-container (Waydroid) could never finish booting. Present in thebv_r26p0,bv_r32p1andbv_r38p1driver copies. net/bluetooth/Makefile— Samsung had commented out theobj-lines for RFCOMM/BNEP/HIDP, so those were never built even withCONFIG_BT_*=y. Note that/proc/config.gzstill claims they are enabled.net/bluetooth/hci_sock.c— most of the file's body was commented out, leaving stubs that return 0.
Reusable findings for other Halium ports are collected in docs/research/porting-notes.md.
| docs/STATUS.md | Full feature table with how each item was verified |
| docs/INSTALL.md | Flashing and first-boot |
| docs/KNOWN-ISSUES.md | What is broken, why, and any workaround |
| docs/BUILDING.md | Building the kernel, the adaptation package and the image |
| docs/research/bring-up.md | How the port got from first boot to a working display, and the black screen investigation |
| docs/research/displayport-alt-mode.md | Why external display is impossible here, and the two driver bugs found on the way |
| docs/research/desktop-mode.md | Early Wayfire/Plasma Mobile research — the render/gesture engine works, but app launching, the keyboard and icons don't yet. Not a usable feature |
| docs/research/performance.md | What was measured, what the bottleneck actually is |
| docs/research/porting-notes.md | Findings that apply to other Halium ports |
| docs/reference/ | Command cookbook, symptom index, partition map, boot-image parameters |
See LICENCE for the full breakdown of what was used in full, what was adapted, and what was only consulted for reference — this port touches several other people's projects and each is credited there by name.
- Kernel source: Samsung Open Source Release Center,
SM-N770F_EUR_13_Opensource— GPL-2.0 - Adaptation package — see its own repository
- Documentation in this repository — CC BY-SA 4.0
The published images contain no Samsung proprietary blobs. The vendor
libraries are read at runtime from the device's own vendor partition, which
is left in place; nothing proprietary is redistributed here.