Процесс обновления Web UI через вебморду, через утилиту SearchTool или удаленно через p2p
Файл прошивки /bin закачивается в директорию /tmp как post1.bin
Проверяется структура, и содержимое bin-файла, если все нормально то вытаскивается из него /tmp/www.zip и далее
Код: |
function_453e84("cp /system/www/system.ini /tmp/system.ini")
function_453e84("cp /system/www/system-b.ini /tmp/system-b.ini")
function_453e84("cp /system/www/network.ini /tmp/network.ini")
function_453e84("cp /system/www/network-b.ini /tmp/network-b.ini")
function_453e84("rm -rf /system/www/")
function_453e84("mkdir -p /system/www")
function_453e84("cp /tmp/system.ini /system/www/system.ini")
function_453e84("cp /tmp/system-b.ini /system/www/system-b.ini")
function_453e84("cp /tmp/network.ini /system/www/network.ini")
function_453e84("cp /tmp/network-b.ini /system/www/network-b.ini")
puts("unzip www is start...")
function_453e84("unzip -o /tmp/www.zip -d /system >/tmp/app.txt")
puts("unzip www is end")
function_453e84("rm /tmp/www.zip") |
- Сначала копируется системные файлы system.ini, system-b.ini, network.ini, network-b.ini
- Затем удаляется директория /system/www/ со всем содержимым
- Создается директория /system/www/
- Копируется туда системные файлы system.ini, system-b.ini, network.ini, network-b.ini
- Распаковывется в /system/www/ содержимое tmp/www.zip
- И удаляется /tmp/www.zip
- И затем камера перезагружается.
Во время установки новой WebUi удаляется всё содержимое system/www т.е. удаляются все текущие настройки (voice.ini moto.ini и другие.) удаляются голосовые файлы, и прочее.
Именно поэтому в bin-файле всё это должно быть (это актуально если создаете свою версию webui)
Структура файла прошивки web.bin
32 байта - заголовок - wifi-camera-app-qazwsxedcrfvtgba
+ 4 байта - чек сумма файла web.zip
+ файл web.zip
+ 32 байта - окончание файла - wifi-camera-end-yhnujmzaqxswcdef
web.zip в bin-файле - это по сути полностью архивированная в zip директория system/www/
Создание своего файла прошивки webui Я создавал файл прошивки ручками, под ubuntu это делается легко:
- Создаем чек-сумму файла web.zip: всё очень просто
Получаем - 7E142, т.к. используется little endian то искомая чек-сумма - 42E10700
- Создаем сам bin-файл прошивки webui
Код: |
(echo -ne "wifi-camera-app-qazwsxedcrfvtgbax42xe1x07x00" ; cat my_web_ui.zip ; echo -ne "wifi-camera-end-yhnujmzaqxswcdef" ) > my_webui.bin |
p.s. Приаттачил инструментарий