I would like to port Ubuntu Touch to a device that is currently not supported. What are the requirements for doing this and where do I begin?

  • 12
    Please make any answer as detailed as possible, and as close to a "how to" guide as is possible, as this may become a Canonical question/answer.
    – Thomas Ward
    Commented Sep 26, 2013 at 23:31
  • 13
    This guide will provide a great place to start for whoever wants to tackle answering this question. Commented Sep 26, 2013 at 23:33
  • I would ask on the mailing list if anyone has any luck with said device.
    – NoBugs
    Commented Oct 7, 2013 at 5:00
  • I would like to ask if it takes too long to port it. I have a bit of spare time the weekends until July. How much time does it require, in average? Thank you!
    – user198770
    Commented Apr 7, 2014 at 16:31

4 Answers 4


Ubuntu (Touch) 13.10 is released; it's stable for developers now. You can get the step-by-step guide here.

However, I used the CyanogenMod. Check the building CyanogenMod guide to learn how to build it.

Building from source for Android guide, and Building Ubuntu Touch wiki should help you as well.

After it is ready, visit the Porting Ubuntu Touch guide along with the Ubuntu Phone Install guide given before.

The steps are:

  1. Build Cyanomod
  2. Root Android
  3. Port

These links give you a fair idea of how you should proceed. The actual code to be used differs from device to device, due to the different drivers, (but, Terminal commands would remain roughly the same) and it's something you'd have to work on yourself with lots of trial & error.

I tried porting to Lava Xolo Q800, which was built fine, and it installed too. But, it does nothing that a smartphone should do apart from connecting to WiFi. I've now reinstalled Android.

  • @searchfgold6789 I've "dirtied my hands", but the building process is certainly device-specific (the OP doesn't mention his device), and the links here are to be followed exactly as they are (for porting, etc once the build is ready) and it'd be TOO LONG to mention all the data contained in them here. It'd, in fact, in my opinion, be counter-productive. Also, the bounty instructions read resources for extra information that would otherwise be too long to list here. Please refrain copy/pasting large amounts of information
    – TomKat
    Commented Oct 21, 2013 at 2:09
  • 1
    Please include "steps to manually port" in the body, a step by step process is probably the most important for this question. The links should supplement your process. That paragraph was intended to prevent people from copying the wiki word-for-word.
    – Mateo
    Commented Oct 21, 2013 at 6:36
  • @Mateo Thanks for the response. Even if I were to enter the step-by-step process, it'd be nothing but the entire guides pasted here as they hardly have anything that can be edited. The steps are: 1. Build Cyanomod 2. Root Android 3. Port using the process given there. If you believe that some more details should be given, please be a bit more specific. I'd update it for sure. Maybe I'm not quite understanding your point unfortunately.
    – TomKat
    Commented Oct 22, 2013 at 16:59
  • 1
    It is easier for some people to think of it as a "check list", first do this, then this.. instead of look at these links, without a general idea of how to proceed. I edited in your steps from comment and am awarding bounty.
    – Mateo
    Commented Oct 23, 2013 at 18:14
  • @TomKat may I ask you from where did you got kernel source or device tree and vendor specific blobs and proprietary drivers for lava xolo q800. I would love to get my hands on it.
    – Karthik
    Commented May 19, 2015 at 6:12

I would first start by getting a rooted Linux(Android) device and make sure you have a 64-bit Ubuntu system. (a lot of ram would be good like 16 gigs if you can swing it, or at least that much available with a swap file or partition)

If your not familiar with CyanogenMod become familiar by installing and by building it. I say this because the guide you already mentioned clearly states:

To support a wide range of devices, we decided to use CyanogenMod as a base for the Android system. You could safely use AOSP, as we don't use a lot of the customizations and improvements done at the App/Java side, but it's easier with CyanogenMod due the scripts and build procedures available for it.

If your device is not listed here then check here. This is well documented and easy to follow and will help you better understand and has loads of guides.


Depending on your preference, you may just want to start here:


Then go for the Cyanogenmod project, but I think your best bet is building Cyanogenmod. Once you have done that go back to the guide you mentioned.

Bottom line learn Android first, the more you can understand with Android the easier Ubuntu Touch will be to port.

  • 1
    Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. We are looking for users of already ported devices and that had dirtied their hands, not just internet resources.
    – Braiam
    Commented Oct 14, 2013 at 14:56
  • Though I wanted a more detailed answer, but i think, it is better than no answer. So, you got the bounty.
    – Anwar
    Commented Oct 14, 2013 at 17:17
  • Thank you Anwar. @Braiam I am planning on doing just this though currently I have a 32 bit system, I will provide updates to this answer as I complete the process...at least it helps point others where to begin. Perhaps someone else can give a better answer sooner than myself...
    – CrandellWS
    Commented Oct 15, 2013 at 3:22

These answers are very old. Modern, up to date instructions are here


  • 1
    This answer is approaching 3yrs old now too, I think it might be referring to Ubuntu 14.04? Any new updated links/ideas?
    – Xen2050
    Commented Jan 1, 2019 at 0:37

After Canonical stopped development of Unity, and Ubuntu for devices, in early 2017, the task has been taken up by the UBports community.

For documentation on porting Ubuntu Touch now, one should go to https://docs.ubports.com/en/latest/porting/introduction/Intro.html

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .