What is Lindroid?

Lindroid is a convergence solution for Android that allows you to use your Android device as the desktop replacement.

It is simple and reliable – just connect your phone or tablet to wired or wireless monitor, keyboard and mouse. And enjoy the desktop experience.

With Lindroid on board of your phone or tablet, your desktop PC is always in your pocket!

Mission of Lindroid

Over the last decade, the computing power of smartphones has increased drastically, and has actually become comparable to budget desktop computers.

However, the functionality of the phones remained limited.

Smartphones remain devices mainly for content consumption and digital entertainment. Performing everyday tasks, plain programming, or unleashing your imagination - all this is usually impossible with modern smartphones. The form factor imposes its limitations. Software also imposes its limitations. The entire paradigm of the modern smartphone does not help the user to create – only to consume.

We want to change this.

With Lindroid, all the computational power of modern phones can be used not only for executing Android software, but for running a huge mass of Linux soft in the most reliable way. In our vision of nearest future everyone will be able just connect the phone or tablet to a wired or wireless monitor, keyboard, and mouse. And enjoy the desktop experience.

Lindroid is – and always will be – an open-source community-driven project. No sharing of your personal data with marketing scums. In fact, no sharing your data with anyone. No backdoors, no cooperation with governments or special services. But it also means that we dependent on community donations and volunteers.

How does it work?

Lindroid consists of a native daemon responsible for overseeing the creation, execution and management of lxc containers. The app on the one hand is responsible for allowing the user to manage containers, and on the other hand it includes a very minimal implementation/emulation of the Android HWComposer HAL which is used by the container to display images by handing the buffers to the actual Android display stack. This design allows the container (or more specifically, the Wayland compositor like KWin inside the container) to use the same HWComposer API it uses for Halium-based mobile Linux distributions, but without interfering with the Android side of the graphics stack.

This allows you to use an OpenGL ES accelerated desktop environment running on a mostly standard Linux distribution anywhere. Lindroid also supports multiple displays and input types, so you can attach your phone to a display, mouse and keyboard and enjoy the full convergence experience. Integrations between Android and the container such as network access, audio, touch/mouse/keyboard input, internal storage access and running the container in the background are working - and many more integration features are planned. You can create/start/stop/delete containers at runtime and seperate your work into multiple containers. In short: it's Linux, as an app. Without awkward restrictions like broken programs due to missing kernel support, performance limitations due to no hardware acceleration or poor GPU support (e.g. Mali or PowerVR not working) due to not being able to use Android's graphic drivers under Linux.

Of course, this being an AOSP patchset also means you have to install an alternative operating system on your phone. While some proot or PC emulation-based solutions don't need this, we don't believe these are able to really provide an enjoyable desktop PC experience.

Lindroid is free and open-source

All the code of Lindroid are created under the GPL license. This software is free to use and to modify, and it will always remain free.

How to install?

Are you a developer?
No

You should probably wait

Yes

clone into your kernel's drivers/lindroid-drm

and add obj-y += lindroid-drm/ to drivers/Makefile

and: source "drivers/lindroid-drm/Kconfig" to drivers/Kconfig

set defconfig in kernel according to pinned message (if this causes build errors, check pinned message)

clone vendor_lindroid external_lxc libhybris into aosp tree

add $(call inherit-product, vendor/lindroid/lindroid.mk) to device mk

pick soft reboot temp fix and (if you use casefold) overlayfs hack from pinned message

pick

build & flash aosp (userdebug)

open app and follow prompts

use attach command to get to debian shell

Important notice!

People, please share logs each time you have an issue. Its extremely frustrating that even developers think we can magically figure their issues based on very limited to none information.

Ways to get logs:

adb logcat - useful for general debugging, including app and graphics issues

journalctl --no-pager --boot - in container, useful to debug kwin, sdsm, create-disp

adb shell dmesg - useful to debug kernel side

Important notes

Copypasta:

apt allow overwrite: sudo apt-get -o Dpkg::Options::="--force-overwrite"

attach to lxc container via adb: adb shell -t lxc_attach default -- "/bin/bash -c \"source /etc/profile && exec su - root\""

create container: adb shell -t lxc_create default -t lindroid -- -f /dev/fd/4 "4

user lindroid pass lindroid

XDG hack to run kwin manually:

export XDG_RUNTIME_DIR=/tmp/runtime-lindroid

mkdir -p $XDG_RUNTIME_DIR

chmod 700 $XDG_RUNTIME_DIR

to fix soft reboot when starting container on A14 or later (temporary!!! workaround)

if overlayfs can't be mounted due to casefold, you can pick a HACK:

Run wayland app from cli (assuming kwin running)

with xdg hack: EGL_PLATFORM=wayland

WAYLAND_DISPLAY=wayland-0 APP

with plasma started via dm: XDG_RUNTIME_DIR=/run/user/1000

EGL_PLATFORM=wayland WAYLAND_DISPLAY=wayland-0 APP

kernel configs for lindroid:

CONFIG_SYSVIPC=y

CONFIG_UTS_NS=y

CONFIG_PID_NS=y

CONFIG_IPC_NS=y

CONFIG_USER_NS=y

CONFIG_NET_NS=y

CONFIG_CGROUP_DEVICE=y

CONFIG_CGROUP_FREEZER=y

CONFIG_DRM_LINDROID_EVDI=y

for nixos: CONFIG_TMPFS_POSIX_ACL=y

if you get a build failure about CONFIG_SYSVIPC not meeting fcm requirement, delete the line "# CONFIG_SYSVIPC is not set" from $ANDROID_BUILD_TOP/kernel/configs/*/*/android-base.config

Support Us!

You can support Lindroid via OpenCollective.

This financial platform is absolutely transparent. Everyone can see where money comes from and where it goes.

Press

Despite the fact that our project is in the early stages of development, it is generating considerable interest among open source users.

Lindroid fa girare le app Linux su Android

at Zeuz News

Eseguire programmi Linux su Android: l'idea Lindroid

at IlSoftware

Lindroid Promises True Linux On Android

at Hackaday

This Project Lets You Run Linux as an App on Android

at It's FOSS

Linux on Your Android? Lindroid Promises a Desktop Experience in Your Pocket.

at Retro Pocket

Lindroid promises to run TRUE Linux on your Android phone

at Destination Linux

Contact Us

If you’d like to reach out, please, write a message below.