AOSP9 to AOSP11 upgrade over OTA

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

AOSP9 to AOSP11 upgrade over OTA

1,020 Views
Nishal
Contributor V
We have imx8qxp running on AOSP9. Now we want to upgrade the android version of the same product to AOSP11 via OTA. However as per our understanding from the android documentation, we see following limitations, and would like to more details on the same
 
  1. Can we add any new physical partitions during OTA? If not, how can we enable vendor_boot partition support with OTA while migrating from AOSP9 to AOSP11.
  2. Does AOSP9 support retrofit update to enable dynamic partitions? Or do we need to update to AOSP11 first?
  3. After retrofit update, can we merge any 2 or more physical partitions to generate one super partition?
Let me know if any further details needed for the same.
 
Thanks in advance!
0 Kudos
4 Replies

995 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport
Hello @Nishal ,

I hope you are doing well.

There may have some limitations to Upgrading from AOSP9 to AOSP11 via OTA.

->Adding new physical partitions during OTA is not supported by the OTA mechanism.
->One can refer to Android's User guide chapter 7 for OTA in detail
->It's a Dynamic partition that Android supports, one can do that during OTA, create it, resize it, or destroy it.

->In order to enable vendor_boot partition support with OTA, one will need to modify the boot image and make changes to the partition layout on the device.

->AOSP9 does not support retrofit updates to enable dynamic partitions. Therefore, you will need to update to AOSP11 first in order to take advantage of dynamic partitions.

->After the retrofit update, it is possible to merge physical partitions to generate one super partition. The process can be done by modifying the device's partition layout and requires a full system update.

Thanks & Regards,
Sanket Parekh
0 Kudos

983 Views
Nishal
Contributor V

Hi Sanket,

Thank you for the reply.

If creating a physical partition is not supported with OTA, is it really possible to have vendor_boot partition since the device is being updated to A11 using OTA method only. Can you share some details on how this can be achieved?

 

Thanks in advance!

0 Kudos

918 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Nishal ,

I hope you are doing well.

->Please refer to the given-below link for OTA dynamic partition.
https://source.android.com/docs/core/ota/dynamic_partitions/ab_launch

Thanks & Regards,

Sanket Parekh

0 Kudos

568 Views
Nishal
Contributor V

Hi @Sanket_Parekh ,

It took a while for me to make few modifications, and generate an retrofit OTA image. But after OTA update, device is not able to mount partitions.

FYI, I have used this document, 

 

I wanted to know is the retrofit update for dynamic partition only supported to to AOSP10 or can it be done from AOSP9 to AOSP11 directory, 

Nishal_0-1685626158535.png

 

Also, if we are merging any 2 physical partitions for super image, is it supposed to be contiguous?

 

 

 

     BOARD_SUPER_PARTITION_GROUPS := test_dynamic_partitions
     BOARD_TEST_DYNAMIC_PARTITIONS_PARTITION_LIST := system system_ext vendor product
     BOARD_SUPER_PARTITION_METADATA_DEVICE := system
 
     BOARD_SUPER_PARTITION_BLOCK_DEVICES := system vendor


    BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 2252341248 # 2148M
    BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 104857600 # 100M
    BOARD_SUPER_PARTITION_SIZE := 2357198848 # 2248M =(2148M+100M)
    BOARD_TEST_DYNAMIC_PARTITIONS_SIZE := 2355101696 # 2247M =(2148M+100M) - 2M

  

 

 

 

Basically merging system and vendor partitions in A9 to generate super partitions that can support vendor, system, system_ext and product.

Error Log:

[ 14.358249] init: Wait for partitions returned after 10009ms
[ 14.364003] init: bool android::init::BlockDevInitializer::InitDevices(std::set<std::string>): partition(s) not found after polling timeout: super
[ 14.377729] init: Failed to mount required partitions early ...
[ 14.385255] init: InitFatalReboot: signal 6
[ 14.396440] init: #00 pc 00000000000afd40 /system/bin/init
[ 14.402081] init: #01 pc 000000000004cd90 /system/bin/init
[ 14.407702] init: #02 pc 0000000000013ab0 /system/lib64/libbase.so
[ 14.414064] init: #03 pc 0000000000013090 /system/lib64/libbase.so
[ 14.420390] init: #04 pc 0000000000075b1c /system/bin/init
[ 14.426030] init: #05 pc 000000000002e0ec /system/bin/init 

Let me know if anything is missed

 

Thanks ! 

0 Kudos