Warning /!\ Ubuntu Touch is no longer maintained as a core product by Canonical. However, the Ubports community are continuing development.


Device name

HTC Desire Z

Code name


Image maintainer(s)




Update interval / last update

No automatic builds, last update 2014-01-18. May freeze on first boot, see "known issues".

Unlocking instructions

see XDA Developers

Install instructions

phablet-flash community --wipe -d vision (or see below for manual installation)

Android code

https://github.com/w-flo/android (manifest repo)

Ubuntu zip modification script


Image download


State of things

Booting and using the device works as far as I can tell. As of 2014-01-18, Mir is enabled by default. Anything that involves radio and is not wifi is untested (i.e. Bluetooth, making calls, etc.).

This port is heavily based on the work of the Andromadus team. They maintain an inofficial CyanogenMod port for the Desire Z. If a feature is marked as "Perfect" that means that it works without code patches for Ubuntu, but still possibly a lot of patches for Andromadus. Also, "Perfect" features might still require vision-specific configuration files for Ubuntu Touch that are not included in the Ubuntu archive (yet?), only in the zip modification script linked above.





Everything works, all patches included in Ubuntu proper


Works, minor issues only, some patches pending


Work in progress


Severely broken, unusable or progress is blocked






GUI works using Surfaceflinger and Mir

Boot process

Hack required: Remove adbd+libcrypto from initrd to reduce its size. Manual fstab creation currently required (should be fixed in Ubuntu eventually, LP#1199084).



Cellular Radio

No idea, no spare SIM card to test. Tester reported successfully receiving a text message but then hitting some issues.

Wireless network



Speaker and wired headphones work with some delay when playing first sound. Mic, headset mic, earpiece, bluetooth hardware and anything else audio-related still needs work (no spare SIM card and no bluetooth devices to test that stuff easily).




Camera libraries depend on libjnigraphics which is not built for Ubuntu Touch and seems to have a lot of dependencies, so it is unlikely that this will be fixed. Actually I'm trying to get this to work now..

Video Decode

Used to work with new Ubuntu media stack, but fails to work now. Probably because of new GPU drivers and some PMEM/ION confusion..




Patch required to flash Ubuntu parts, see Launchpad bug 1145984 and updated flash scripts in the ubuntu zip file modification script on github

Storage Requirements

/data is only 1gb on the Desire Z. The modified rootfs has some tweaks to free up some space, e.g. the swap file is removed from the tarball. This is probably not upstreamable and as of 2013-11-30, /data is 88% full after flashing even with the modified rootfs..

Click Packages Confinement



Make sure that you know how to boot into recovery and how to use adb before you try this, as things can go wrong and you will need that knowledge to make your device work again.

You can use the phablet-flash utility to flash your device. It is important to use the --wipe parameter that will remove any existing userdata from /data and /cache. Chances are your device will fail to boot (black screen, no ADB, only recovery working) if you forget to wipe. Use this command: phablet-flash community --wipe -d vision . If phablet-flash fails to work while booted into ubuntu because adb does not work, try booting into recovery (hold volume down while booting) and then start phablet-flash.

Manual installation is possible, too:

  • Put the most recently published files on your SD card (download from google drive link above, you probably want the trusty version):
    • cm-10.1-[DATE]-UNOFFICIAL-vision.zip

    • modified-[DISTRIBUTION]-touch-armhf-[DATE].zip

  • Wipe/format data (this is important, even when just updating to a newer *-touch-armhf-*.zip!) and possibly system partitions.
  • Flash both zip files through recovery, the cm zip first, then the touch-armhf zip.
  • Reboot, read "known issues" below

Changelog (for vision specific things only!)

  • 2014-01-18: (cm: 20140112, ubuntu: 20140116.1)
    • Default to Mir instead of surfaceflinger
  • 2013-11-30: (cm: 20131130, ubuntu: 20131130)
    • Only use andromadus repositories for vision-specific things, canonicals' phablet repos for everything else (improves Mir support). This required a few kernel changes too, like enabling ION.
    • Update adreno drivers to improve Mir support. Test Mir by executing touch /home/phablet/.display-mir in adb shell and then rebooting.

    • Update to trusty and free up some space by deleting some hopefully unimportant directories (help-langpack and some item sets)
  • 2013-10-18: (cm: 20131018, ubuntu: 20131017)
    • Turn trackpad button into a power button, otherwise it can no longer be used to turn the screen on
    • Disable trackpad navigation (left/right/top/down) since unity8 crashes when using it
    • Some fixes to get Mir working, but there's a crash bug / incompatibility in one of the vision libraries that is triggered by the latest Mir version, so it doesn't work anymore. Hopefully fixed in next image I upload.
  • 2013-10-03: (cm: 20131003, ubuntu: 20131003)
    • Fix headphones audio out
    • Kernel: Add hack for wifi driver so it no longer fails randomly on some boots; also update to andromadus kernel 3.0.96
    • No actual change on my end required for this, but possibly noteworthy: Video playback is now supported on the vision by Ubuntu
  • 2013-09-26: (cm: 20130924, ubuntu: 20130923)
    • Fix mtp (PC <-> Phone file transfer via USB), though currently this breaks adb

    • Fix auto brightness
    • Some work on making audio work again after Ubuntu switched from audioflinger to pulseaudio
    • Fix mounts
  • 2013-08-25:
    • Fixed click packages confinement (i.e. stock ticker, sudoku, dropping letters fixed)
    • Some kernel changes (upgraded to latest 3.0.x kernel, ported LCD backlight driver to make it ubuntu compatible)

Known issues

  • The first boot takes very long, ~5 minutes, and sometimes results in a hard freeze as of 2014-01-18. There is no boot animation, the screen just stays black for a long time. The screen may even turn off before the GUI comes up. If the phone freezes on first boot after flashing: Wait 10 minutes, if it still doesn't work, pull the battery and reboot.
  • As of 2013-11-30, ADB and MTP (usb file transfer) sometimes conflict. ADB might randomly fail after boot. If it fails and you want to use it, open the terminal app in Ubuntu and type "sudo restart android-tools-adbd", then enter "phablet" at the password prompt. Note that in order for phablet-flash to work, ADB must be active, so make sure it is -- or start phablet-flash when your phone is booted into recovery, which should always work.
  • If /data has more than a few MB used and phablet-flash is used without --wipe, phablet-flash won't show any error messages, but flashing and rebooting into Ubuntu fails (since only 1 out of 2 zip files flashed correctly). Always use --wipe. When manually flashing the ubuntu zip file, there is an error message if /data must be wiped.
  • camera doesn't work and seems unlikely to work in the future

The image

How to build it

  • Use my github repo linked above to init the source tree using the repo tool (branch "master").
  • ". build/envsetup.sh" in the the source tree root
  • "brunch cm_vision-eng" in the the source tree root
  • The android zip file will be created in out/target/product/vision (cm-*.zip)
  • Download Ubuntu rootfs from http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/ and use the rootfs modifier script linked above (github) to make it work for the Desire Z. (see instructions on github)


The Image contains blobs from https://github.com/w-flo/proprietary_htc_vision with unknown redistributability status.





Redistributable, we're all happy

Maybe problematic

Might be redistributable, some open questions (comment)


Not redistributable at all



Component name

Link to it

License (link or name)

Status / Comment'

Touch/Devices/flipped_vision (last edited 2014-01-18 17:16:58 by x2f4dc7e)