Introducing the Ubuntu Touch image based upgrader

Some of you may be aware that I along with Barry Warsaw and Ondrej Kubik have been working on image based upgrades for Ubuntu Touch.
This is going to be the official method to update any Ubuntu Touch devices. When using this system, the system will effectively be read-only with updates being downloaded over the air from a central server and applied in a consistent way across all devices.
Design details may be found at: http://wiki.ubuntu.com/ImageBasedUpgrades

After several months of careful design and implementation, we are now ready to get more testers. We are producing daily images for our 4 usual devices, Galaxy Nexus (maguro), Nexus 4 (mako), Nexus 7 (grouper) and Nexus 10 (manta).
At this point, only those devices are supported. We’ll soon be working with the various ports to see how to get them running on the new system.

So what’s working at this point?

  • Daily delta images are generated and published to
    http://system-image.ubuntu.com
  • We have a command line client tool (system-image-cli), an update server and an upgrader sitting in the recovery partition
  • The images usually boot and work

What doesn’t work?

  • Installing apps as the system partition is read-only and we’re waiting for click packages to be fully implemented in our images
  • Data migration. We haven’t implemented any migration script from the current images to the new ones, so switching will wipe everything from your device
  • Possibly quite some more features I haven’t tested yet

So how can I help?

You can help us if:

  • You have one of the 4 supported devices
  • You don’t use that device for your everyday work
  • You don’t need to install any extra apps
  • You don’t care about losing all your existing data
  • You’re usually able to use adb/fastboot to recover from any problems that might happen

If you don’t fit all of the above criteria, please stick to the current flipped images.
If you think you’re able to help us and want to test those new images, then here’s how to switch to them:

  1. Get the latest version of phablet-tools (>= 0.15+13.10.20130720.1-0ubuntu1)
  2. Boot your device
  3. Backup anything you may want to keep as it’ll be wiped clean!!!
  4. Run: phablet-flash --ubuntu-bootstrap
  5. Wait for it to finish downloading and installing
  6. You’re done!
  7. To apply any further update, use: adb shell system-image-cli
    (never use phablet-flash after the initial flash, updates can only be applied through system-image-cli!)

Reverting to standard flipped images:

  • Boot your device
  • Backup anything you may want to keep as it’ll be wiped clean!!!
  • Run: phablet-flash –bootstrap
  • Wait for it to finish downloading and installing
  • You’re back to standard flipped images!

To report bugs, the easiest is to go to:
https://launchpad.net/ubuntu-image-image/+filebug

We also all hangout in #ubuntu-touch on irc.freenode.net

 

About Stéphane Graber

Project leader of Linux Containers, Linux hacker, Ubuntu core developer, conference organizer and speaker.
This entry was posted in Canonical voices, Planet Ubuntu, Ubuntu Touch and tagged . Bookmark the permalink.

11 Responses to Introducing the Ubuntu Touch image based upgrader

  1. Leo Arias says:

    There’s a typo on your post, it uses a long dash – instead of two short –.
    I’m currently installing in nexus 4. Let me know if you want me to try something.

    1. Good catch, it was wordpress trying to be clever… I replaced those by the html code for the minus character which should now give the right result…

  2. Fred says:

    s/loosing/losing/

    1. Good catch, fixed.

  3. manny says:

    just wondering when convergence comes and since is the same code base, will this also be an alternative upgrader for the desktop ?

    or you will be using another approach ?

    1. In theory the same system could be used for desktop images, though we’ll definitely have to figure out a way of getting extra packages installed on those as only relying on click won’t really be an option.

      Anyway, we don’t have any clear plan there yet, but the design for the image based upgrader was made in a way that it can be applied to desktop and servers just as well as the touch devices.

      1. manny says:

        Hmm, I see. Thanks for your answer.

        Maybe an idea would be that on most consumer devices pre-loaded with ubuntu desktop, touch (or converged), aimed at non tech people (Mom and Pop) that will not be using commands, these type of upgrades and click-packages should probably be the default. They always need a reliable working system, worry-free upgrades and normal/paid apps (safe mode).

        And for anyone else tinkering, tech-savvy enough, server admin or a developer that wants full access, they can opt for the old more technical way of installing and upgrading stuff (dev or admin mode).

  4. Greg s says:

    Wondering with updates in reguard to the phone will updates be sent automatically or will the CX be notified first. I work in a call center for virgin canada and a massive amount of the calls I get is from customers on pay per use internet with data charges despite them being adamant that no internet was used I usasly check but generally speaking the customer is right but their system updated and they where charged. With the Ubuntu phone I would love it if auto updates was not default maybe keep the current implementation where you have to manually select. Or a notification that asked you to chose how you would like updates to be handled. Ex between notify me, only over WiFi, manual updates, and whenever there is a data connection. I would recommend your phone to so many people if you did this.

    1. I’m currently waiting on the final design and user experience specification however from what I’ve heard so far, it looks like we’ll be downloading automatically and in the background but only do so when on WiFi and have a manual option for people who really want to update over 3G.

  5. For anyone running the experimental image based Ubuntu Touch builds, today’s build will break updates due to a config file change in the downloader code. To fix it, simply do:
    adb shell rm /userdata/system-data/etc/system-image/client.ini
    adb shell reboot

    This will generate a new config file at boot time which contains the missing key, allowing you to update your device again.

    We are currently working on removing the need for the diversion of that particular config file, so that this kind of problem doesn’t happen again in the future.

    1. For people using the Ubuntu Touch system images, you will likely get a “ValueError” traceback on your next update. To fix that, simply run “umount /etc/system-image/client.ini” and then run “system-image-cli”.

      Some migration code will run on next boot fixing this issue for good.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.