Справочный материал для платформ ArmSoM: полная процедура OTA Android 13→14 для систем без A/B из китайского документа RK-KF-YF-788 V1.0.0. Источник указывает RK3326/RK3399/RK356x/RK3588/RK3562 и ядра 5.10, 6.10; значение 6.10 сохранено, а не заменено на 6.1. Это не подтверждение поддержки плат ArmSoM. Требуется проверить плату, Android BSP, разделы и настройки безопасности; аппаратная проверка не проводилась. Доступен только китайский оригинал, технических иллюстраций нет; таблицы и патчи редактируемые.
Риск: патч удаляет пользовательские данные, а отладочная настройка ослабляет SELinux. Это примеры источника, они не выполнялись. Нужны резервная копия и независимая проверка целевого SDK; не считать их готовой производственной конфигурацией.
| SoC в источнике | Ядра в источнике |
|---|---|
| RK3326/RK3399/RK356x/RK3588/RK3562 | 5.10, 6.10 |
1. Обзор
Документ описывает OTA-обновление Rockchip Android 13.0 без A/B до Android 14.0 без A/B.
2. Патчи Android 14.0
2.1 Раздел data и keymaster
(1) После перехода на новую основную версию источник настоятельно рекомендует очистить data, чтобы избежать сложных проблем совместимости, мешающих запуску Android. Следующий справочный патч репозитория build/make Android 14 SDK автоматически очищает data после обновления.
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index d1b935845f..a3f2e28af0 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -279,7 +279,7 @@ logger = logging.getLogger(__name__)
OPTIONS = ota_utils.OPTIONS
OPTIONS.verify = False
OPTIONS.patch_threshold = 0.95
-OPTIONS.wipe_user_data = False
+OPTIONS.wipe_user_data = True
OPTIONS.extra_script = None
OPTIONS.worker_threads = multiprocessing.cpu_count() // 2
if OPTIONS.worker_threads == 0:
@@ -1498,14 +1498,15 @@ def main(argv):
else:
OPTIONS.info_dict = ParseInfoDict(args[0])
- if OPTIONS.wipe_user_data:
+ '''if OPTIONS.wipe_user_data:
if not OPTIONS.vabc_downgrade:
logger.info("Detected downgrade/datawipe OTA."
"When wiping userdata, VABC OTA makes the user "
"wait in recovery mode for merge to finish. Disable VABC by "
"default. If you really want to do VABC downgrade, pass "
"--vabc_downgrade")
- OPTIONS.disable_vabc = True
+ OPTIONS.disable_vabc = True'''
+ if OPTIONS.downgrade:
# We should only allow downgrading incrementals (as opposed to full).
# Otherwise the device may go back from arbitrary build with this full
# OTA package.
(2) Если необходимо сохранить data после обновления:
a. Сначала выполните раздел 3. Если основной интерфейс Android запускается нормально, пункт b можно пропустить; иначе выполните его.
b. Загрузите соответствующие патчи из userdata_patches по приведённой ссылке и примените их к нужным репозиториям Android 14 SDK. Подробности находятся в README.txt этого каталога.
Ссылка источника: патчи, код 0nsa. Текущая доступность не проверялась; загрузка и выполнение не производились.
Важно: патчи предназначены только для обновления существующих устройств Android 13 до Android 14, а не для новых устройств Android 14.
3. Обновление Android 13.0 до Android 14.0
Создайте соответствующий OTA-пакет на платформе Rockchip Android 14.0, перенесите на устройство Rockchip Android 13.0 и выполните обычное OTA-обновление. Сначала прочитайте раздел 4.
- Выберите цель
lunchдля Android 13→14, напримерlunch rk3588_t-userdebugилиlunch rk3568_t-userdebug. Каталог соответствующего lunch-проекта обычно можно скопировать из Android 13 SDK. - Соберите систему обычным образом: скомпилируйте uboot и kernel, выполните lunch, затем команду источника:
make clean && make –j32 && make dist -j32 && ./mkimage.sh ota
Первый параметр –j32 содержит в источнике не-ASCII тире; оно сохранено для проверки. Перед выполнением уточните настоящий параметр, не считайте команду гарантированно готовой к копированию.
- Возьмите пакет из шага 2 и назовите
update.zip. - Поместите соответствующий
update.zipна устройство Android 13 и обновите его.
История обновлений:
(1) Если текущий Android 13.0 получен из Android 12.0 по Rockchip_Developer_Guide_OTA_from_Android12_to_Android13_CN, переход на 14.0 выполняется по Rockchip_Developer_Guide_OTA_from_Android12_to_Android14_CN: в дереве 14.0 выберите lunch для 12.0, например lunch rk3568_s-userdebug или lunch rk3588_s-userdebug, выполните обычную сборку и перенесите пакет, названный в источнике upddate.zip, на названное в том абзаце «устройство Android 14.0» для обновления.
(2) Если Android 13.0 получен из Android 11.0 по Rockchip_Developer_Guide_OTA_from_Android11_to_Android13_CN, следуйте Rockchip_Developer_Guide_OTA_from_Android11_to_Android14_CN: в дереве 14.0 выберите lunch для 11.0, например lunch rk3568_r-userdebug, соберите систему и перенесите названный в источнике upddate.zip на обозначенное там «устройство Android 14.0» для обновления.
Примечание: upddate.zip не совпадает с update.zip основного процесса, а «устройство Android 14.0» противоречит контексту исходного Android 13.0. Расхождения сохранены; проверьте имя файла и целевое устройство.
4. Меры предосторожности
- Для проверки и отладки источник требует
userdebugна каждой платформе Android, например 13.0/14.0, и следующую переменную. Это отладочный пример, не готовая производственная настройка.
BOARD_SELINUX_ENFORCING := false
- Перед OTA таблицы разделов
parameterдолжны совпадать. Для 13.0→14.0 прошивка 14.0 должна использовать тот жеparameter.txt, что и 13.0. - Файловая система data и шифрование в
fstab, напримерfstab.rk30board, должны совпадать. При 13.0→14.0 параметры data в прошивке 14.0 должны соответствовать 13.0. - До OTA проверьте исправность самой прошивки. Для 13.0→14.0 запишите 14.0 инструментом вроде
RKDevToolи убедитесь в нормальной загрузке и работе всех функций.
Официальная справка: AOSP OTA без A/B. Ссылка не подтверждает совместимость патчей Rockchip с текущим SDK.
