Hello Dominik,


If you want to install ota from main OS, from your build environment, you can use those commands:

source ./build/envsetup.sh


./system/update_engine/scripts/update_device.py your_ota_file.zip --file


There is no problem with mounting the partitions.

What you observe is due to “A/B system update”, in that case data and cache are not mounted simply because they are not used in recovery.

You may want to check https://source.android.com/devices/tech/ota which clearly explains the different between “A/B system update” and “non-A/B system update”


By the way, for my information, can you please tell me which lunch target and which hardware you are using?





From: Dominik Louven [mailto:dlouven@videro.com]
Sent: Tuesday, June 11, 2019 2:34 PM
To: Regnier, Philippe <philippe.regnier@intel.com>
Cc: celadon@lists.01.org
Subject: Re: [01.org Celadon] How to generate OTA update, install from within Android OS


Hi All, HI Philippe,


I don’t want to side load the ota package.

I would like to install it from within the Android OS via system app I was referring to the following method :




public static void installPackage (Context context, File packageFile)


Normally when you invoke this method in an application signed with the platform key the system will reboot into recovery mode and install the update package automatically.

That’s exactly what I am trying to archive for remote updates. However when I use this method on the NUC it reboots to recovery but the packages is not installed. My guess is that the partitions are not mounted correctly. I tried to store the ota in /data/ota and /cache


Best regards,


Dominik Louven


On 30. May 2019, at 08:03, Regnier, Philippe <philippe.regnier@intel.com> wrote:


Hi Dominik,


For ota update you need to keep ota file on your host PC, the API that you mentioned is used through the adb sideload command.


The update sequence is like that:

adb reboot sideload-auto-reboot

wait for reboot of your device (screen remains black)

adb sideload ota.zip

where ota.zip is the name of your ota file.

Please note that you can use “adb reboot sideload” instead of “adb reboot sideload-auto-reboot” which is similar to previous command but does not automatically trigger reboot at the end of update, and it also does not display the update animation.





From: Dominik Louven [mailto:dlouven@videro.com] 
Sent: Wednesday, May 29, 2019 5:31 PM
To: Regnier, Philippe <philippe.regnier@intel.com>
Cc: celadon@lists.01.org
Subject: Re: [01.org Celadon] How to generate OTA update


Hi Philippe,


That is correct, I forgot the SPARSE_IMG.


Do you know where I have to put the OTA file in order for it to work via the android/os/RecoverySystem api (installPackage)


Best regards,


Dominik Louven

On 28. May 2019, at 01:18, Regnier, Philippe <philippe.regnier@intel.com> wrote:


Hi Dominik,

Can you please check and confirm the command line you are using?
Instead of:
make dist
it should be something like that:
make SPARSE_IMG=true dist -j8

I suspect that you might have forgotten the parameter SPARSE_IMG=true in your command line, which might explains why you get error in __init__ function of sparse_img.py.

Philippe REGNIER

-----Original Message-----
From: Celadon [
mailto:celadon-bounces@lists.01.org] On Behalf Of celadon-request@lists.01.org
Sent: Tuesday, May 28, 2019 3:00 AM
Subject: Celadon Digest, Vol 13, Issue 22

Send Celadon mailing list submissions to

To subscribe or unsubscribe via the World Wide Web, visit
or, via email, send a message with subject or body 'help' to

You can reach the person managing the list at

When replying, please edit your Subject line so it is more specific than "Re: Contents of Celadon digest..."

Today's Topics:

  1. How to generate OTA update (Dominik Louven)


Message: 1
Date: Mon, 27 May 2019 08:54:16 +0200
From: Dominik Louven <
Subject: [
01.org Celadon] How to generate OTA update
Message-ID: <
Content-Type: text/plain; charset="utf-8"

Hi all,
How do I create an OTA update ?

?make dist?  produces the following error:

system.img already exists, no need to overwrite...
vendor.img already exists, no need to overwrite...
vbmeta.img already exists, no need to overwrite...
Traceback (most recent call last):
 File "build/make/tools/releasetools/add_img_to_target_files", line 824, in <module>
 File "build/make/tools/releasetools/add_img_to_target_files", line 818, in main
 File "build/make/tools/releasetools/add_img_to_target_files", line 773, in AddImagesToTargetFiles
   AddCareMapTxtForAbOta(output_zip, ab_partitions, partitions)
 File "build/make/tools/releasetools/add_img_to_target_files", line 563, in AddCareMapTxtForAbOta
   care_map_list += GetCareMap(partition, image_path)
 File "build/make/tools/releasetools/add_img_to_target_files", line 111, in GetCareMap
   simg = sparse_img.SparseImage(imgname)
 File "/home/ubuntu/Android/celadon/build/make/tools/releasetools/sparse_img.py", line 52, in __init__
   raise ValueError("Magic should be 0xED26FF3A but is 0x%08X" % (magic,))
ValueError: Magic should be 0xED26FF3A but is 0x00000000
ninja: build stopped: subcommand failed.
01:36:13 ninja failed with: exit status 1

#### failed to build some targets (14:12 (mm:ss)) ####

Best regards,
Dominik Louven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <


Subject: Digest Footer

Celadon mailing list


End of Celadon Digest, Vol 13, Issue 22
Celadon mailing list