← Back to team overview

ubuntu-phone team mailing list archive

Re: How the OTA works in detail?

 

On Wed, Sep 16, 2015 at 02:16:52PM +0200, Matthias Apitz wrote:
> > > Can someone shed a bit light over how the OTA works in detail or point
> > > me to some pages about that, i.e. how the fetch of the images and the
> > > installation into the BQ E4.5 works? Thanks in advance

> > https://wiki.ubuntu.com/ImageBasedUpgrades

> Thanks! I'm trying to understand the OTA process; as I understand, after
> fetching the files, an Upgrader is launched from the recovery image to
> update the phone's partitions ... what I do not understand is the
> folliwing example:

> I fetched the OTA-6 files for my device/channel which are:

> $ ls
> custom-996a0631cdd3014deb88bfa3c228a70922d68ea953607e3133d94713b351f650.tar.xz
> device-169bc102d21754e91d142385ffadb32b63cfa92831b82f221b5f38d9bc65b687.tar.xz
> ubuntu-59b0c7aa8af63dda3a06005a6087c1faa4ed8993321293b276e7f7021d0cb0a3.tar.xz
> version-25.tar.xz

> when I now look for two example files in the tar files:

> $ tar xzf ubuntu-59b0c7aa8af63dda3a06005a6087c1faa4ed8993321293b276e7f7021d0cb0a3.tar.xz system/etc/apparmor.d/local/usr.lib.telepathy^C
> $ tar xzf ubuntu-59b0c7aa8af63dda3a06005a6087c1faa4ed8993321293b276e7f7021d0cb0a3.tar.xz system/etc/apparmor.d/cache/usr.lib.telepathy^C
> $ ls -l system/etc/apparmor.d/*/usr.lib.telepathy
> -rw-------  1 guru  wheel  200656 25 ago 19:39 system/etc/apparmor.d/cache/usr.lib.telepathy
> -rw-r--r--  1 guru  wheel     124 25 ago 19:35 system/etc/apparmor.d/local/usr.lib.telepathy
> $ md5 system/etc/apparmor.d/*/usr.lib.telepathy
> MD5 (system/etc/apparmor.d/cache/usr.lib.telepathy) = 6681f89d5dd73d76580000f2035722d5
> MD5 (system/etc/apparmor.d/local/usr.lib.telepathy) = dd65bcf98ff23b7c811d0380b5d6947f

> i.e. both above files have last mod time as 25 ago ...

> When I now look into my device which was updated on September 13, around
> 7.20am I see:

> phablet@ubuntu-phablet:~$ ls -l /etc/apparmor.d/cache/usr.lib.telepathy /etc/apparmor.d/local/usr.lib.telepathy
> -rw------- 1 root root 200656 sep 13 07:21 /etc/apparmor.d/cache/usr.lib.telepathy
> -rw-r--r-- 1 root root    124 ene 29  2015 /etc/apparmor.d/local/usr.lib.telepathy
> phablet@ubuntu-phablet:~$ sudo md5sum /etc/apparmor.d/*/usr.lib.telepathy
> 6681f89d5dd73d76580000f2035722d5 /etc/apparmor.d/cache/usr.lib.telepathy
> dd65bcf98ff23b7c811d0380b5d6947f /etc/apparmor.d/local/usr.lib.telepathy

> i.e. only one file was really updated, the other not. Why not both in
> this example? What decides if a give file on the device will be renewed
> or not?

What you downloaded were the full image tarballs; these are the ones that
are used when initially flashing a device, or if so much of the system has
changed that it's not useful to apply a delta upgrade.

But if you're currently running OTA-5, instead your phone will download the
delta tarballs for OTA-6.  The deltas are generated as a file-wise diff
between the new and old filesystems.  If a file's contents haven't changed
between the old and new images, it won't be included in the delta,
regardless of whether the timestamp has changed.

And /etc/apparmor.d/local/usr.lib.telepathy is a rather simple file that
won't change very often:

$ cat /etc/apparmor.d/local/usr.lib.telepathy 
# Site-specific additions and overrides for usr.lib.telepathy.
# For more details, please see /etc/apparmor.d/local/README.
$

So the delta is optimized to avoid including a pointless copy of this file. 
We don't care about timestamps for these files on the filesystem.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@xxxxxxxxxx                                     vorlon@xxxxxxxxxx

Attachment: signature.asc
Description: Digital signature


Follow ups

References