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
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.