← Back to team overview

ubuntu-phone team mailing list archive

Ubuntu is just another android shell ! (or announcing the container flip)

 

hi,

It was often claimed that due to the fact that Ubuntu runs in a chroot
under android this just makes it another "android shell" ... i can
assure you this isn't the case anymore, since as of today we have
switched to a new image model ! 

Instead of booting into android and firing up the Ubuntu system after
android has booted, the new images now boot into Ubuntu and initialize
android inside an LXC container during boot. 

so here now comes the official announcement of what we call the "Flipped
Ubuntu Touch Image"

############################################################

Announcing the flipped images as default.

The images are not necessarily in the same state as the traditional one,
but we believe it's good enough already for us to flip it by default,
and move forward just fixing and improving the flipped scenario (which
matches our desired architecture).

What does "flipped container" mean anyway?

The legacy 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 we're providing images for maguro, mako, manta and grouper,
and all are tested and known to work.

The daily builds of container flipped Ubuntu Touch images can be found
at http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/current/

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.

Before flashing the latest flipped image, make sure you have the latest
version of phablet-flash installed (version 0.14daily13.06.22-0ubuntu1).
You can still flash the legacy images by using the new argument
'--legacy'.

Useful commands after flashing the image:
Getting info about the container: 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)

Android container access: android-chroot
  - As the name suggests this will give you chroot access
    into the android container.

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:
By default adbd running in the Ubuntu rootfs will use usb, and as we
can't have both running at the same time, it's just easier to force the
Android one to start over tcp.

To access the Android adbd via tcp:
At your host:
$ adb forward tcp:5555 tcp:5555

Then start Android's adbd over tcp, in the target:
$ sudo setprop service.adb.tcp.port 5555

And then at your host just connect and use adb shell:
$ adb connect localhost:5555
$ adb -s localhost:5555 shell

Community Ports

We hope to have an updated detailed tutorial explaining how to port your
device to the new flipped model later this week, so if you're a porter,
stay tunned!

For known issues and bugs, please make sure to check
https://bugs.launchpad.net/touch-preview-images/+bugs?orderby=-id&start=0.

If you have any further questions, feel free to post any question in the
#ubuntu-touch channel on irc.freenode.net (or by replying this email).

ciao
	oli

Attachment: signature.asc
Description: This is a digitally signed message part