Найти в Дзене
351 подписчик

Как uboot первой станции узнает, что необходимо перезагрузиться в recovery?

В раздел mmcblk0p9 (он же misc) в самое начало записывается строка "boot-recovery" (без кавычек, в конце нулевой байт). Увидев эту строку, uboot запускает команды, записанные в env в переменной boot_recovery (сейчас это "sunxi_flash read 45000000 recovery;boota 45000000 recovery"). Раздел recovery - это mmcblk0p10.
Далее стартует стандартный recovery андроида (желающие могут почитать исходники). В частности, он читает файл "/cache/recovery/command", который имеет содержимое вида:
boot-recovery
--update_package=/cache/update_2.263.5.53.2603478784.20241005.50.zip

На Станции Макс поведение похожее, только в раздел misc еще можно записать набор команд, которые uboot выполнит до начала загрузки (опять же - см исходники uboot). Выполнение - одноразовое, перед исполнением команд это место в misc затирается.
Около минуты