Wednesday, 12 June 2013

experimental Ubuntu Touch flipped container images now available for developer consumption


I am happy to announce that there are now Ubuntu Touch Images with a
flipped container model available for some of the nexus devices we

Note that these images are still highly experimental and meant mainly
for Ubuntu developers that want to help fixing bugs in the flipped
container model.

What does "flipped container" mean anyway ?

The known Ubuntu Touch images run Ubuntu inside a chroot on top of
android .... For the flipped model we are instead booting directly into
Ubuntu and then start up android inside an lxc container before starting
any services/applications

Currently only the maguro and mako sub architectures are tested and
known to work ... grouper is actually known to not work at all in saucy
(even unflipped) currently, manta has not been tested yet (feedback

The daily builds of container flipped Ubuntu Touch images can be found
To install them follow the manual

NOTE: It is essential for the flipped model to work properly that you
install the zips in the right order, first you always want the armel
+$, only then the file

After install the first boot might take a little longer than you are
used to from the unflipped images, second boot should be reasonably
There have been reports that wifi only works after the second boot, in
case you have problems with this, please try a reboot first.

We run adbd on the Ubuntu side, so you will be able to use the "adb
shell" command from your PC to get into the running system.

Some tipe for working with the new design:

Getting info about the container:

the command: lxc-info -n android

* this will tell you if the container is actually running and where you
can find it (/proc/$pid is usually the namespace where lxc puts it)

the command: android-chroot

* as the name suggests this will give you chroot access into the
android container (note that this does not provide the android
properties system (yet))

modifying android:

if you want to i.e. change the services that get started by default you
can do the following:

cp /var/lib/lxc/android/rootfs/init.rc /var/lib/lxc/android/overrides/

now you can edit /var/lib/lxc/android/overrides/init.rc to your liking
(i.e. to prevent surfaceflinger from starting because you work on Mir
you would delete all surfaceflinger related blocks in there)

Using androids adbd instead of ubuntus:

to have adbd running inside the container instead of the rootfs (i.e. to
get full access to the properties system the android-chroot tool can not
provide) do the following:

echo manual > /etc/init/android-tools-adbd.override

then reboot, after the reboot adb will get you into android normally ...

to revert this just do

rm /data/ubuntu/etc/init/android-tools-adbd.override

and on next reboot adb will log you into the ubuntu side again.

If you have any further questions, feel free to find me in the
#ubuntu-touch channel on (or just follow up on this