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?

  • 11
    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 Sep 26 '13 at 23:31
  • 13
    This guide will provide a great place to start for whoever wants to tackle answering this question. – Nathan Osman Sep 26 '13 at 23:33
  • I would ask on the mailing list if anyone has any luck with said device. – NoBugs Oct 7 '13 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 Apr 7 '14 at 16:31

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.

| improve this answer | |
  • @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 Oct 21 '13 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 Oct 21 '13 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 Oct 22 '13 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 Oct 23 '13 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 May 19 '15 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 Oct 14 '13 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 Oct 14 '13 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 Oct 15 '13 at 3:22

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


| improve this answer | |
  • This answer is approaching 3yrs old now too, I think it might be referring to Ubuntu 14.04? Any new updated links/ideas? – Xen2050 Jan 1 '19 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 http://docs.ubports.com/en/latest/porting/introduction.html

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.