If you want to install ota from main OS, from your build environment, you can use those commands:
./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?
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 :
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
On 30. May 2019, at 08:03, Regnier, Philippe <email@example.com> wrote:
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.
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)
On 28. May 2019, at 01:18, Regnier, Philippe <firstname.lastname@example.org> wrote:
Can you please check and confirm the command line you are using?
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.
From: Celadon [mailto:email@example.com] On Behalf Of firstname.lastname@example.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..."
1. How to generate OTA update (Dominik Louven)
Date: Mon, 27 May 2019 08:54:16 +0200
From: Dominik Louven <email@example.com>
Subject: [01.org Celadon] How to generate OTA update
Content-Type: text/plain; charset="utf-8"
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)) ####
-------------- next part --------------
An HTML attachment was scrubbed...
Subject: Digest Footer
Celadon mailing list
End of Celadon Digest, Vol 13, Issue 22
Celadon mailing list