UBports
  • Community angle-icon

    The main difference between traditional desktop oriented Ubuntu and the mobile phone oriented Ubuntu Touch lies in the user interface. Ubuntu Touch is specially tailored to enable smooth, gesture-based control on smartphone screens. This unique user interface is built upon its very own Software Development Kit (SDK) and Application Programming Interface (API), and its practicality and versatility can be seen in the core Dialer, Calendar, and Photo Gallery applications. Unlike its parent, Ubuntu Touch employs a read-only file system. A phone has heightened needs for safety and stability. Although it is not designed for running desktop applications on a routine basis, it is possible to launch some through LXC containers using the Libertine extension. Again, it is not designed to run Android applications but some can run in a Waydroid container. You will experience battery drain and various issues with either approach, so think of those as enthusiast modes., Native applications can be accessed as Click packages through the OpenStore

    A read-only file system

    By default, the root directory is set to read-only mode. Certain parts of the file system that require read-write access are linked to /userdata using bind mounts, including directories like /home and /var/log. This restriction on write access serves multiple purposes, foremost among them being the preservation of system stability and the solid availability of a functional operating system. It also acts as a protective barrier against potential harm to essential files caused by third-party apps. Additionally, it simplifies system upgrades and greatly reduces the risk of conflicts. Finally, this approach simplifies the process of conducting a factory reset on the device if needed.

    When inspecting mount points, you'll notice numerous records associated with Halium and other LXC containers. Halium serves as the hardware abstraction layer which enables Ubuntu Touch to function with an Android-based kernel. Essentially, it's an LXC container that runs Android services and facilitates communication with hardware. A chroot can be used to directly access the Android roofs provided by the vendor, although that is very much 'advanced' use.

    Libertine

    Ubuntu Touch is built upon the Ubuntu operating system, commonly used on desktops and servers. However, due to its read-only filesystem, using the  apt install  command is not possible on Ubuntu Touch. To address this limitation, Ubuntu Touch offers Libertine as a convenient solution for running applications in LXC containers, complete with a user interface.

    This tool provides a user-friendly interface where you can simply enter the name of the package you want to install. Once the installation is complete, the launcher icon for the newly installed application is seamlessly added alongside other launchers in the main menu of Ubuntu Touch. You can see how this looks in the following video.





     
     

    bullet-icon UBports community

    About
    Join the community
    Manifesto
    Documentation
    Forum

    bullet-icon UBports foundation

    About
    Join the foundation
    Donate
    Sponsors

    bullet-icon Structure of foundation

    Statutes
    Code of conduct
    Bodies
    Membership Committee
    Board of trustees
    Board of Directors
    Advisory board

    bullet-icon Contact

    Consumers
    Developers 
    Business partners

    On a mission to support an open-source and collaborative community for the development and promotion of an innovative mobile operating system.


    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    The main difference between traditional desktop oriented Ubuntu and the mobile phone oriented Ubuntu Touch lies in the user interface. Ubuntu Touch is specially tailored to enable smooth, gesture-based control on smartphone screens. This unique user interface is built upon its very own Software Development Kit (SDK) and Application Programming Interface (API), and its practicality and versatility can be seen in the core Dialer, Calendar, and Photo Gallery applications. Unlike its parent, Ubuntu Touch employs a read-only file system. A phone has heightened needs for safety and stability. Although it is not designed for running desktop applications on a routine basis, it is possible to launch some through LXC containers using the Libertine extension. Again, it is not designed to run Android applications but some can run in a Waydroid container. You will experience battery drain and various issues with either approach, so think of those as enthusiast modes., Native applications can be accessed as Click packages through the OpenStore

    A read-only file system

    By default, the root directory is set to read-only mode. Certain parts of the file system that require read-write access are linked to /userdata using bind mounts, including directories like /home and /var/log. This restriction on write access serves multiple purposes, foremost among them being the preservation of system stability and the solid availability of a functional operating system. It also acts as a protective barrier against potential harm to essential files caused by third-party apps. Additionally, it simplifies system upgrades and greatly reduces the risk of conflicts. Finally, this approach simplifies the process of conducting a factory reset on the device if needed.

    When inspecting mount points, you'll notice numerous records associated with Halium and other LXC containers. Halium serves as the hardware abstraction layer which enables Ubuntu Touch to function with an Android-based kernel. Essentially, it's an LXC container that runs Android services and facilitates communication with hardware. A chroot can be used to directly access the Android roofs provided by the vendor, although that is very much 'advanced' use.

    Libertine

    Ubuntu Touch is built upon the Ubuntu operating system, commonly used on desktops and servers. However, due to its read-only filesystem, using the  apt install  command is not possible on Ubuntu Touch. To address this limitation, Ubuntu Touch offers Libertine as a convenient solution for running applications in LXC containers, complete with a user interface.

    This tool provides a user-friendly interface where you can simply enter the name of the package you want to install. Once the installation is complete, the launcher icon for the newly installed application is seamlessly added alongside other launchers in the main menu of Ubuntu Touch. You can see how this looks in the following video.



    https://www.youtube.com/watch?v=L5-TtUnIgbg

    The main challenge is that most applications were not designed for small screens or tested on them. Fortunately, Ubuntu Touch has a solution to this through its automatically invoked convergence mode. When you connect a large display via USB-C (or where supported by means of casting), the Lomiri UI automatically switches to a familiar desktop interface. This means that applications can immediately be used in windowed mode, allowing you to resize and move windows, and to perform other actions typically associated with desktop UIs. Remarkably, the phone's screen simultaneously transforms into a touch-pad.

    Waydroid

    Ubuntu Touch enables Android applications using Waydroid, which runs these applications in an LXC container, with user interface rendering provided by Mesa, with minimal overhead. Depending on the device, it may use the vendor-provided rootfs or, for devices like the PinePhone, the LineageOS image.

    Android applications on Ubuntu Touch variously:
        
    * Work without any issue: Some apps run seamlessly.
    * Fail because they rely on Google Services: Apps relying on Google Play Services, like those using OAuth2 or Google Maps, may encounter issues due to licensing restrictions which     block installation on non-Android devices.
    * Face problems because they check for bootloader and rootfs consistency: Certain apps, particularly banking applications, check for filesystem consistency and bootloader status,     which can pose compatibility challenges.
    * Cannot run since they lack a hardware component: Some apps may have unique hardware requirements or rely on hardware features not fully implemented in Waydroid.

    While Waydroid does enable some Android app compatibility, there are a few drawbacks. Beyond the extra CPU usage for managing containers, issues can arise from the interaction of two operating systems, especially during device suspend and wake-up. Non-native apps like WhatsApp can have a greater impact on battery life compared to native apps.

    Waydroid is essentially a workaround and needs to be manually installed into the OS. While many things do work, it's still an experimental feature, and some applications will not function as expected.

    Clickable

    Native apps on Ubuntu Touch are created using Qt and QML, and they get installed through something called Click packages. These packages are created using a handy tool known as Clickable. It is basically a Python script that bundles together all the necessary tools for app building and development. It includes commands for compiling your app, installing it to your device, running and debugging it, and finally, uploading it to the OpenStore. This process relies on dpkg and Docker containers. Inside these containers, an environment is created with all the needed dependencies in the correct versions. You can easily select your desired target architecture, either x86 or arm64.

    To set up the development environment, you start by adding the correct Personal Package Archive (PPA) and running the  apt install clickable  command. After that, you initialize the environment with the  clickable setup  command. To create a new project, you use the  clickable create  command, and when you're ready to run and debug your project, you simply use  clickable desktop . During the first run, a Docker container is automatically downloaded, which handles the compilation and execution of your project.

    The resulting file from this process, the Click package, is somewhat like a *.deb package, but has some limitations. Notably, it doesn't allow external dependencies. Instead, it relies on the UBports framework exclusively. However, if your app must have additional dependencies, you can bundle them into the Click package. These dependencies should be loaded during startup using the LD_LIBRARY_PATH environment variable.

    The files from these packages are installed in a directory located at /opt/click.ubuntu.com/hello-world/1.0.0, where "hello-world/1.0.0" represents the app's name and version. This directory is not included in the PATH environment variable. To start the application, a *.desktop file is used, which launches it from that directory. The script's path is relative to this directory (for example, ./run.sh). Any user data created by the application is stored in the Home directory. just like with most applications. If you want to inspect the contents of a *.click package, you can do so by renaming it to *.deb and using tools like Midnight Commander.

    At first glance, you might think that these applications run within a container, overlays, or similar setup. In fact, the required libraries are used directly from the Ubuntu Touch operating system itself. There's no need for an additional separation layer because Ubuntu Touch employs a read-only filesystem and AppArmor to manage security between applications.

    Ubuntu Touch uses AppArmor categories to control access to all basic APIs, making sure that applications run safely.

    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    Community Comit Together.

    >> Check community repo

    Rather than being developed by one of the richest companies in the world, Ubuntu touch is fully developed by the community of users.

    As a consequence the system is developed with the sole purpose of giving the best and most secure user experience possible, while traditional systems balance these concern against profit.

    media-img

  • Ubuntu Touch angle-icon

    bullet-icon Operating System

    About Ubuntu Touch
    Get Ubuntu Touch
    Installer
    App store
    FAQ

    bullet-icon Devices

    Promoted
    All devices

    bullet-icon Contact

    Telegram
    Forum
    Documentation
    Github
    Q&A

    bullet-icon News

         Blogs
    Q&A
    Audiocasts
    General newsletters
     

    Our dream is a future where users, developers and companies can define smartphones together. To ensure freedom of choice and privacy as the greatest goods.


  • Contributors angle-icon

    bullet-iconbullet-iconDevelopment hub

    Core development
    App development
    Porting
    Lomiri project
    Halium project
    UBports installer

    bullet-icon Design hub

    Brandbook
    UX design

    bullet-icon Community hub

    Join us 

    bullet-iconSupport hub

    Triage Github
    Triage Gitlab
    Quality assurance
    Bug reporting

    bullet-iconWriters hub

    Documentation
    Translation

    It's your time to shine. No matter your background or where you live, you're welcome. Join us in the battle for freedom of choice and privacy.


    The main difference between traditional desktop oriented Ubuntu and the mobile phone oriented Ubuntu Touch lies in the user interface. Ubuntu Touch is specially tailored to enable smooth, gesture-based control on smartphone screens. This unique user interface is built upon its very own Software Development Kit (SDK) and Application Programming Interface (API), and its practicality and versatility can be seen in the core Dialer, Calendar, and Photo Gallery applications. Unlike its parent, Ubuntu Touch employs a read-only file system. A phone has heightened needs for safety and stability. Although it is not designed for running desktop applications on a routine basis, it is possible to launch some through LXC containers using the Libertine extension. Again, it is not designed to run Android applications but some can run in a Waydroid container. You will experience battery drain and various issues with either approach, so think of those as enthusiast modes., Native applications can be accessed as Click packages through the OpenStore

    A read-only file system

    By default, the root directory is set to read-only mode. Certain parts of the file system that require read-write access are linked to /userdata using bind mounts, including directories like /home and /var/log. This restriction on write access serves multiple purposes, foremost among them being the preservation of system stability and the solid availability of a functional operating system. It also acts as a protective barrier against potential harm to essential files caused by third-party apps. Additionally, it simplifies system upgrades and greatly reduces the risk of conflicts. Finally, this approach simplifies the process of conducting a factory reset on the device if needed.

    When inspecting mount points, you'll notice numerous records associated with Halium and other LXC containers. Halium serves as the hardware abstraction layer which enables Ubuntu Touch to function with an Android-based kernel. Essentially, it's an LXC container that runs Android services and facilitates communication with hardware. A chroot can be used to directly access the Android roofs provided by the vendor, although that is very much 'advanced' use.

    Libertine

    Ubuntu Touch is built upon the Ubuntu operating system, commonly used on desktops and servers. However, due to its read-only filesystem, using the  apt install  command is not possible on Ubuntu Touch. To address this limitation, Ubuntu Touch offers Libertine as a convenient solution for running applications in LXC containers, complete with a user interface.

    This tool provides a user-friendly interface where you can simply enter the name of the package you want to install. Once the installation is complete, the launcher icon for the newly installed application is seamlessly added alongside other launchers in the main menu of Ubuntu Touch. You can see how this looks in the following video.

    The devices website has long been the place to look for Ubuntu Touch devices. With the new release, we want to chart our own course and especially meet your expectations when you buy a new device or decide to install Ubuntu Touch on a device you already own. Therefore, we have added new features to the website that will help you decide on your next device. Most importantly, the changes made to the website highlight a new focus on quality rather than quantity of devices.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

    A great way to catch your reader's attention is to tell a story.
    Everything you consider writing can be told as a story.

    Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assists with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.

    Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

  • Join Us
  • Devices
  • Shop
  • My Login
  • Mijn winkelmandje
  • Wenslijst 0

Board of Trustees

  • Aaron Kimmig
    App/Openstore Axolotl TELEports
  • Allan Nordhøy
    Calendar app Camera app Clock app Dialer app Lomiri Morph browser Music app UBports Installer Weather app
  • Daniel Georg Frost (danfro)
    Calendar app Camera app Dialer app Doc Viewer app File manager app Music app TELEports Weather app
  • Diogo Constantino
  • Else Clara Bruyn (Moem)
  • Ewald Pierre
  • Marius Gripsgård
    Calendar app Camera app Clock app Dialer app Doc Viewer app File manager app HALium Lomiri Morph browser Music app QA and testing UBports Installer Weather app
  • Joan CiberSheep
    App/Openstore Calculator app Calendar app Camera app Dialer app Doc Viewer app File manager app Lomiri Morph browser Music app TELEports Weather app
  • Johannes Renkl
    Calendar app TELEports
  • Jonatan Hatakeyama Zeidler
    Calendar app Clock app File manager app HALium Morph browser TELEports Terminal App Weather app
  • Nigel Wood
  • Ratchanan Srirattanamet
    Camera app HALium Lomiri Morph browser QA and testing
  • Ricardo Mendoza
  • Riccardo Riccio
    Dialer app Weather app
  • Rodney Dawes (Dobey)
    Calendar app Camera app Dialer app Doc Viewer app Lomiri QA and testing Weather app
  • Sander Klootwijk
    App/Openstore Calendar app Clock app Dialer app

Powered By

ubports-logo

UBports is a global non-profit dedicated to putting you in control of your phone.

Follow Us


  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon
  • social-media-icon

UBports Foundation. (c) 2021•Ubuntu and Canonical are registered trademarks of Canonical Ltd.•License CC-BY-SA-4.0•Privacy policy

  • Deutsch English (UK) English (US) Español Français Italiano Nederlands Język polski Português русский язык 简体中文