Halium
latest

Porting Guide

  • First steps
    • Getting help
    • Pick an Android target device
    • Collaborate
    • Document your target device
    • Set up your build device
      • Debian (Stretch or newer) / Ubuntu (16.04 or newer)
      • Arch
  • Get Halium source
    • Initialize and download source tree
    • Adding your device-specific source
      • The Device Repository
      • Dependencies
      • Vendor blobs
      • Remotes
        • halium-7.1
        • halium-5.1
    • Sync
    • Document
    • Next steps
  • Build Halium
    • Initialize
      • For Halium-5.1
      • For Halium-7.1
    • Modify the kernel configuration
    • As of systemd 233 the 3.4 kernel needs to have a patch in order to boot (tmpmnt not being created)
    • Include your device in fixup-mountpoints
    • Building the system.img and hybris-boot.img
    • Documented errors
      • Common kernel build errors
        • Implicit declaration of ‘kvfree’
        • ‘kuid_t’ (sdcardfs, cgroup) error
        • Firmware class error
        • ECRYPTFS error
        • ‘Undefined reference to pidns_operations’ on Linux 3.4
        • ‘struct perf_cpu_context’ has no member named ‘unique_pmu’
        • ‘PROC_PID_INIT_INO’ undeclared here (not in a function)
        • POSIX_ACL not supported in 3.18 backport
      • Common system build errors
        • signapk.jar missing
        • HYBRIS_BOOT_PART and HYBRIS_DATA_PART
        • Flex locale error
    • Next steps
  • Install Halium
    • Fully halium-integrated distributions
      • Halium reference rootfs
        • Install hybris-boot.img
        • Install hybris-boot.img on Samsung devices
        • Install rootfs and system.img
        • Install rootfs and system.img (alternative method)
        • Debugging
      • Plasma mobile
        • Install rootfs and system.img
        • Debugging
    • Halium-modified distributions
      • Ubuntu Touch
  • Debug Halium
    • Early Init
      • Determining if this is needed
      • Debugging via telnet
      • Forcing debug mode
      • Common errors
        • The device reboots after leaving hybris-recovery
        • Bootloop: “Too many levels of symbolic links” when leaving hybris-boot
        • The device reboots with hybris-recovery
        • None of these describe my issue
    • Logging in
    • Add udev rules
      • On the device:
      • On the host:
      • Send upstream:
    • Wifi
      • Enabling Wi-Fi hardware
        • Qualcomm
        • Broadcom bcmdhd
      • Testing Wi-Fi functionality
      • Common errors
        • Kernel 3.10 ping: socket: Permission denied
    • Lights
      • Tests
    • Graphics
      • Tests
      • Common errors
        • EGL_BAD_SURFACE
      • Reading pm4 microcode failed
      • test_hwcomposer failure on aarch64 device with armhf rootfs
    • Vibrator
      • Tests
    • Debugging the Android userspace
      • lxc-android
      • Logcat
      • dmesg
      • strace
      • backtrace
    • USB Network tethering
    • Reading kernel logs
      • Linux kernel <=3.4
      • Linux Kernel >3.4
    • References

Distribution

  • Distribution
    • Reference rootfs
    • Deployment
      • boot.img
      • rootfs.img
      • udev rules
      • lxc container configuration
      • system.img and vendor.img
      • Android rootfs
    • Startup sequence

Supplementary Information

  • About this chapter
    • Where should I put my information?
    • Why is this important?
    • Who is this for?
  • Device Overview
    • Codename - Template Device
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • dream2lte - Samsung Galaxy S8+
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Useful Resources
    • Bullhead - Nexus 5X
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
    • Cedric - Motorola Moto G5
      • Status
        • Maintainership
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • Chaozu - BQ Aquaris U
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Deb - Nexus 7 (2013 GSM)
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
    • Flo - Nexus 7 (2013 Wifi only)
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
    • FP2 - Fairphone 2
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Hammerhead - Nexus 5
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
    • krillin - BQ Aquaris E4.5
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • land - Xiaomi Redmi 3S/Prime
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Resources
    • mako - Nexus 4
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Nicki - Sony Xperia M
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • oneplus3 - OnePlus 3(T)
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Useful Resources
    • PME (Perfume) - HTC 10
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • rolex - Xiaomi Redmi 4a
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Useful Resources
    • T00F/T00J - Asus Zenfone 5
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Titan - Moto G 2014
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Vegeta / Vegetahd - BQ Aquaris E5 / BQ Aquaris E5HD
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Ressources
    • Xiaomi Redmi 2/Prime (wt88047)
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • Yuga - Sony Xperia Z
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • Taoshan - Sony Xperia L
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Usefull Resources
    • Z00L - Zenfone 2 Laser
      • Status
        • Halium
        • Distributions
        • Kernel & Hardware
      • Device Specifics
        • Guides
        • Developer Info
        • Useful Resources
    • How to document
      • Purpose
      • Table Format
      • Getting the Info
    • Devices
      • Sources
        • OnePlus 5
        • Samsung Galaxy S8+
        • Samsung Galaxy S8
        • Shift 5.1
        • Wiko Pupl 4G
        • Nexus 5
        • Nexus 5X
        • Oneplus One
        • Nexus 4
        • Fairphone 2
        • Nexus 7 (2012)
        • Nexus 7 (2013) Wifi-only = flo
        • BQ Aquaris E4.5
        • HTC 10
        • Asus Zenfone 2 Laser (Z00L)
        • Xiaomi Redmi2/Prime (wt88047)
        • OnePlus 5
        • Xiaomi Redmi 3s/Prime
        • Xiaomi Redmi 4A
  • Hardware and kernel enablement
    • How to use this Overview
      • Where to find software status
        • SoC support @ Device Tree Source (dts) folder
    • System Components
      • System-on-Chips (SoC)
        • Device specific dts
        • General dts
      • GPU
        • Qualcomm’s Adreno
      • Wireless Connectivity
        • WiFi + (x)
        • Mobile
        • NFC
      • Sound
      • Sensors
        • Touch
        • Orientation & Acceleration
      • Peripherals
        • Charging & Power Management
        • Slimport
    • How to test a new kernel
  • How to contribute documentation
    • Check for existing Halium work
    • Download templates and files
    • Edit device-overview
    • Create device documentation
    • Check hardware enablement
    • Create pages for undocumented hardware

Project

  • Scope of Halium
    • Reference-implementation only components
  • Related projects
    • LuneOS
    • Plasma mobile
    • postmarketOS
    • SailfishOS
    • Ubuntu Touch
    • Others
  • Planning
    • Linux kernel + Android + Libhybris common basel
      • Introduction
      • Action Points
    • REVIEW ONCE THEN MOVE UP - bshah
      • What this base consists of? Or what is our “products”?
      • What is the lifecycle of port?
      • Distributions (Plasma Mobile, UBports, Mer etc)
    • The Stack - proposal
      • Some random links
      • Mer-meeting takeaway
    • Initial halium creator script (locusf rambling)
  • Development
    • Development plan/outline:
    • Initial development (stage 0, libhybris):
    • Hardware enablement (stage 1):
    • Device enablement (stage 2):
    • Future ideas
  • Documentation Todo
Halium
  • Docs »
  • Related projects
  • Edit on GitHub

Related projects¶

There are a number of other free software projects to provide a Linux experience for mobile devices. Some of these projects are actively working on moving to Halium. All of them are kindred spirits in the quest for Linux on mobile. Not the least, they have valuable resources available at their respective sites about porting to mobile devices.

LuneOS¶

LuneOS is based on Open webOS and webOS OSE. It is provided by the WebOS Ports team. The system has it’s legacy in projects by Palm, HP and LG. It is a continuation of Palm/HP’s webOS that was used in 2009-2011 in various phones and tablets. The project is fully open source and can be build completely from scratch. LuneOS developers are actively contributing to Halium, even though only the minimal Android image from Halium is being used currently. LuneOS actively uses the Yocto Project build system and builds their kernels with GCC provided by Yocto.

Plasma mobile¶

Plasma-mobile is based on the Plasma shell, developed by the KDE community. Plasma mobile is available on Halium.

postmarketOS¶

PostmarketOS is based on Alpine Linux. It has a selection of multiple phone interfaces. A main difference to Halium is that postmarketOS targets upstream kernels. This brings the advantage of more up to date software. It has the disadvantage that device drivers which are only available as binaries for old kernels can not be used.

SailfishOS¶

Sailfish OS is based on the Mer Project. The user interface is developed by Jolla and not open source. The technical architecture should be largely compatible with Halium.

Ubuntu Touch¶

Ubuntu Touch is based on Unity 8 and is developed by UBports. It is the continuation of the earlier Ubuntu Touch project from Canonical. UBports is actively working on making their future releases available on Halium.

Others¶

There are more projects that share similar goals and/or similar tools and might have valuable resources. A few shout outs: LineageOS, MaruOS, Neo900, Purism Librem 5, Replicant, Tizen.

Next Previous

© Copyright 2017-2018, Halium Documentation Contributors Revision 8a9b82c3.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.