Я щойно завантажив файл прошивки ~ 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, будь ласка.