Я щойно завантажив файл прошивки ~ 7 Кб у вбудовану систему BusyBox Linux через послідовний порт.
Без мережевих зв’язків, без утиліт передачі файлів; ніяких утиліт Base64 або нічого корисного на пристрої.
На хості я тривіально кодував прошивку у наступний формат; різновид шістнадцяткового дампа, що складається з літералів оболонки в поєднанні з printf
командами:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
в основному printf
команди оболонки з \x
послідовностями escape, що printf
інтерпретує. На пристрої я зробив:
device $ cat > firmware.sh
потім використовував minicom
файл ASCII send ( Ctrl-AS), щоб надіслати цей файл хосту. Я міг просто скопіювати та вставити, оскільки кількість даних невелика.
Потім позначив виконуваний файл і запустив printf
сценарій:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Перевірено за допомогою BusyBox, md5sum
чи firmware.bin
контрольна сума на пристрої відповідає оригінальному зображенню мікропрограмного забезпечення на хості.
PS Синтаксис подвійної цитати оболонки проходить через \x
дослівно, оскільки це не розпізнана послідовність втечі; отже, нам не доведеться подвоювати зворотні риски.
busybox --help
іls -l /bin
йls -l /usr/bin
, будь ласка.