[Sony Xperia S, Acro S, Ion] mickybart:
Archlinux Phone for Sony Xperia S

Part of GNU/Linux for Android devices project

First of all, this project is not ready for end users but everything is provided to build an archlinux system for the Sony Xperia S. So you will be able to have a complete system with GPU hardware acceleration, support of vibrator, sensors, GPS, wifi etc (everything is not yet tested like bluetooth, nfc...). Graphical applications are already able to display (Qt/Kwin tested but GTK3/kwin should be ok too).

This project is not just for this device and is really open to support multiple devices and GNU/Linux distributions. So you can share this project everywhere (xda, distributions forum...) ! Contribution are welcome and can be discussed directly on this thread to share efforts.

Introduction

This is a project to create a convergence between the desktop and the mobile/phablet/TV... so to build new mobile OS based on existing GNU/Linux distributions with the most common parts possible. We share some common base between mer-hybris (SailfishOS) and Ubuntu Touch but the architecture and integration are different (refer to Architecture).

Cell phone are powerful and expensive for flag ship so why just use it as a phone ?

Imagine that your cell phone can become your core device ! Plug it to a big screen and this is your workstation ! Plug it to an 'empty' laptop (no CPU, no RAM needed ...) and this is your laptop ! Move everywhere and this is just your mobile phone !

This is what motivate this project.

Applications

Applications are critical on a mobile platform and we hope to support Android application as soon as possible (need further studies to complete the architecture).

GNU/Linux applications are already compatible but not always adapted for a mobile phone for now but... We hope a lot of plasma mobile and KDE convergence guideline for Application developers :)

Source code

There is few projects and some fork available under my github but if you want to start to port a new distribution or a new device, everything is documented in the gnulinux_support project.

Android needs to be modified but we deliver a solution that permit to be integrated upstream and so to compile Android or Android for GNU/Linux with the same code.

For now we have only Android 5.1.1 patches available but 6.0 will come soon. CyanogenMod 12.1 and 13.0 can be a good target to support a lot of devices in the future (or at least to simplify the portage process per device).

manifest for Sony Xperia S

manifest for Pure AOSP 5.1.1 (can be used for Nexus devices)

Documentations

Architecture schema

Main documentation

Archlinux installation

Videos

https://vimeo.com/177893595

Distributions supported

archlinux (archlinuxarm)

Project status

This project is in an early stage and for developers but we created solid base of works and the portage of plasma mobile, ofono, ... and amazing features will start over those solid base to provide an end user product :)

Todo :

pulseaudio support for GNU/Linux - Android Hw (and maybe for Android to support sound from Android application)

fix libinput/kwin environment

ofono (or maybe an alternative/hybrid solution that can use the Android Telephony Framework ? no study yet on this point)

flashing after boot.img package update + generation of a custom initramfs

security with crypto, firewall and SELinux (SELinux or equivalent integration will mainly depend of the distribution support but for now this is disabled)

plasma mobile or other ?

localisation framework (see freedesktop project)

OMX

merge everything possible to every upstream projects used to create GNU/Linux for Android devices

overlayfs into kernel ? (not mandatory but can be a great solution for the Android rootfs and schroot)

... (a lot that I forget)

BUT despite this long list of todo... We already did :

New architecture (GNU/Linux and Android integration, systemd, libhybris, chroot, wayland ...)

SurfaceFlinger Composer supported by Qt and Kwin

schroot for Android (Android can run into a chroot and we can interact easily with it)

systemd integration (with reboot to bootloader and recovery, Android /init support, etc)

libhybris_ext (compatibility version with support of Android 5+)

Android integration with GNULINUX_SUPPORT (rc, init, busybox, ramdisk, OTA ... adaptation)

clean rootfs with only 2 symlinks that permit to see that we are on an Android device (nothing more)

OpenGL support (with backend hwcomposer or SurfaceFlinger)

Archlinux support (OTA and packaging)

Design a possible solution for a lot of other GNU/Linux distributions (share architecture and Android adaptation)

Documentation

Download

Binaries will be available when really usable for end user. For now everything can be compiled from source code