Allwinner H616. Android 10 OTA обновление


  Введение     Процесс       Cоздание       Обновление     FAQ  

Инструкция по использованию OTA модуля


3. Инструкция для модуля OTA

3.1 Объем обновления OTA

Программа обновления Recovery, предоставляемая родным Android, поддерживает только обновление разделов: System, Recovery и Boot

Кроме того, мы расширили некоторые проприетарные функции для Recovery на основе характеристик продукта, чтобы удовлетворить потребности в обновлениях BSP.

Примечание ред. Термин BSP это Board Support Package - пакет поддержки платформы (или платы).
Возможно (?), применительно к устройствам на Allwinner это означает входящий в состав образа прошивки пакет из файла boot_package.fex, который содержит загрузчик U-Boot, дерево устройств DTB и sec-monitor (монитор безопасной загрузки). Ссылки про BSP могут как-то прояснить: linux-sunxi     github


РазделОбновление
изначального
содержимого
Обновление
загрузочного
раздела
System (системный) Да Да
Vendor (поставщик) Да Да
Recovery (восстановление)Да Да
Env (окружение) Да Да
Bootloader (загрузчик) Да Нет
Boot0 / Uboot Да Нет
файл sys_config.fex Да Нет
файл sys_partition.fex Нет Нет

Стоит отметить, что большая часть конфигурации модуля BSP сосредоточена в sys_config.fex.

Конфигурация sys_config.fex должна быть обновлена с помощью uboot.

Примечание ред. Пример файла sys_config.fex

Если вы хотите реализовать сценарий для создания OTA-пакета самостоятельно, вы можете обратиться к следующим пунктам:

Записанный файл сценария: android/device/softwinner/common/vendorsetup.sh

Примечание ред. Ссылка на файл: vendorsetup.sh

3.2 Шаги по созданию пакета OTA

Перед использованием OTA нужно различать три пакета:

  • 1. Целевой файл (Target File) - содержит разделы system, boot, recovery и т.д. текущей скомпилированной версии на момент производства.

  • 2. Полный пакет OTA - все содержимое этой обновленной версии и может быть напрямую обновлен с предыдущих версий до текущей версии систем. Для создания полного пакета требуется текущая версия целевого файла Target File .
  • 3. Дифференциальный пакет OTA - содержимое обновления этой версии обновления и предыдущей конкретной версии, применимо только к предыдущей конкретной версии.

    Для создания дифференциального пакета требуются предыдущая конкретная версия Target File и текущая версия Target File.

    3.2.1 Создание полного пакета OTA

    3.2.1.1 Команда создания полного пакета OTA

    Процесс упаковки:

    $ source build/envsetup.sh
    $ lunch
    $ make -j8
    $ pack4dist [-d] [-v]

    Если вам нужно подписать прошивку, поместите соответствующий файл подписи в каталог android/vendor/security и процесс останется прежним.

    Для подписи полной прошивки необходимо добавить параметр -v, чтобы включить проверку системы безопасности.

    $ pack4dist небезопасен
    $ pack4dist -d пакет обновления для программирования карты
    $ pack4dist -v безопасный
    $ pack4dist -d -vбезопасный пакет обновления для программирования карты

    После использования описанного выше процесса упаковки pack4dist путь к пакету целевых файлов будет автоматически сгенерирован:

    /obj/PACKAGING/target_files_intermediates/-target_files.zip

    Если он содержит подписанный пакет объектного файла, то его путь:
    /signed_target_files.zip

    Примечание. Созданный файл target_files.zip необходимо сохранить вместе с прошивкой для дальнейшего использования. Продолжайте создавать пакет OTA.


    3.2.1.2 Процесс выполнения команды Pack4dist

    Пакет целевого файла будет автоматически сгенерирован после pack4dist, потому что включены следующие команды:

    1. Подпись Target File

    Процесс создания подписанного пакета обновления OTA выглядит следующим образом:

    $./build/tools/releasetool/sign_target_files_apks -d [key_path]
    [unsigned_target_file.zip] [signed_target_file.zip]

    [key_path] - это путь к ключевой папке (при отсутствии файла подписи по умолчанию будет сгенерирован неподписанный OTA-пакет).

    Чтобы включить 4 ключа, а именно media, platform, release key, shared, используются следующие файлы:

  • media.pem
  • media.x509.pem
  • platform.pk8
  • releasekey.pem
  • releasekey.x509.pem
  • shared.pk8
  • media.pk8
  • platform.pem
  • platform.x509.pem
  • releasekey.pk8
  • shared.pem
  • shared.x509.pem

  • [unsigned_target_file.zip] - cгенерированный TargetFile без подписи

  • [signed_target_file.zip] представляет подписанный TargetFile, полученный из вывода команды


    2. Получение образов

    Файлы boot.img, system.img и recovery.img из подписанного TargetFile

    $./build/tools/releasetools/img_from_target_files
    [signed_target_file.zip] [img.zip]

    [signed_target_file.zip] представляет подписанный TargetFile

    [img.zip] представляет сжатый пакет изображения, полученный из выходных данных команды.


    3. Разархивируйте img.zip

    и скопируйте полученные boot.img, system.img и recovery.img в out/target product/[device]/

    Повторно запакуйте, чтобы получить записываемую прошивку, которая является подписанной прошивкой.


    4. Создание полного пакета OTA PACKAGE

    $./build/tools/releasetools/ota_from_target_files --block
    [target_file.zip] [ota_full.zip]

    [target_file.zip] представляет окончательный TargetFile

    [ota_full.zip] представляет собой полный пакет OTA, полученный из вывода команды.


    3.2.2 Создание дифференциального пакета OTA

    $.build/tools/releasetools/ota_from_target_files -i
    [target_file_v1.zip] [target_file_v2.zip] ota_inc.zip

    [target_file_v1.zip] Представляет TargetFile подписанной версии v1.

    [target_file_v2.zip] Представляет TargetFile подписанной версии v2

    [ota_inc.zip] Представляет дифференциальный пакет OTA, полученный из выходных данных команды.

    Примечания

  • 1. Дифференциальный пакет действителен только для указанной прошивки предыдущей версии.

  • 2. Создание полного пакета также приведет к созданию пакета целевого файла текущей версии.




  • Назад      Вперед