Jump to content
  • 0

Сохранение прошивки через CLI и веб


gvan

Question

Возможно, глупый вопрос. Но сейчас озадачился периодическим сохранением прошивки из роутера по cron. 

Соответственно, для этого использую команду cli наподобие:

copy flash:/firmware USBFLASH:/firmware-cli

Также для сравнения сохраняю прошивку через веб (Система-Файлы). Прошивки по размеру получаются одинаковыми, но почти в самом конце 6 байт отличаются. Пробовал несколько раз. Байты одни и те же различаются, их содержимое также не изменяется (что для CLI, что для веба):

Сравнение файлов firmware-web и firmware-cli
00BB0030: 10 7C
00BB0031: CE 91
00BB0032: 99 91
00BB0034: E0 68
00BB0035: 3E F5
00BB0036: C1 95

Это нормально? По какой причине это происходит? Безопасно ли восстанавливаться с прошивки, сохраненной через CLI (не дают мне покоя различия в этих 6 байтах:-?)?

  • Thanks 1
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
59 минут назад, gvan сказал:

Возможно, глупый вопрос. Но сейчас озадачился периодическим сохранением прошивки из роутера по cron. 

Соответственно, для этого использую команду cli наподобие:


copy flash:/firmware USBFLASH:/firmware-cli

Также для сравнения сохраняю прошивку через веб (Система-Файлы). Прошивки по размеру получаются одинаковыми, но почти в самом конце 6 байт отличаются. Пробовал несколько раз. Байты одни и те же различаются, их содержимое также не изменяется (что для CLI, что для веба):


Сравнение файлов firmware-web и firmware-cli
00BB0030: 10 7C
00BB0031: CE 91
00BB0032: 99 91
00BB0034: E0 68
00BB0035: 3E F5
00BB0036: C1 95

Это нормально? По какой причине это происходит? Безопасно ли восстанавливаться с прошивки, сохраненной через CLI (не дают мне покоя различия в этих 6 байтах:-?)?

Если затем попробовать прошить через Web, он принимает оба файла без ошибок?

Link to comment
Share on other sites

  • 0
5 минут назад, Le ecureuil сказал:

Если затем попробовать прошить через Web, он принимает оба файла без ошибок?

Так я и не пробовал файл, полученный через CLI файл, засовывать через веб. Пока такой необходимости не было. А различие в содержимом меня как раз и насторожило, т.к. опасаюсь испортить роутер.

Link to comment
Share on other sites

  • 0
24 минуты назад, gvan сказал:

Так я и не пробовал файл, полученный через CLI файл, засовывать через веб. Пока такой необходимости не было. А различие в содержимом меня как раз и насторожило, т.к. опасаюсь испортить роутер.

Web валидирует прошивку и подпись, поэтому он не даст вам засунуть испорченную, а также просто неправильный файл. Можете попробовать.

  • Thanks 1
Link to comment
Share on other sites

  • 0
8 минут назад, Le ecureuil сказал:

Web валидирует прошивку и подпись, поэтому он не даст вам засунуть испорченную, а также просто неправильный файл. Можете попробовать.

Да, проверку файл прошел. Прошивка на роутер загрузилась.

Будем считать изменения в 6 байтах неважными, но подозрительными...

  • Thanks 1
Link to comment
Share on other sites

  • 0

Апну тему.

Обратил внимание, что на последних версиях прошивки 2.09 мой скрипт бэкапа стал делать новую копию прошивки, как-будто я ее обновляю каждый день. Но это не так.

Стал разбираться и определил, что прошивка, сохраненная в файл через CLI каждый раз в бинарном виде отличается.

Делаю две копии одной и той же прошивки с разницей в пару секунд и сравниваю:

ndmq -p 'copy flash:/firmware ADATA:/backup/firmware-cli' -P message
ndmq -p 'copy flash:/firmware ADATA:/backup/firmware-cli2' -P message
cmp -l firmware-cli firmware-cli2
	12124209  44  14
	12124210   0 270
	12124211 145 144

Всегда различаются байты с указанными номерами. Размер прошивки одинаковый.

Но если сохранять через веб, то бинарные файлы получаются одинаковыми байт в байт.

Но теперь логика скрипта, определяющая различия в прошивках, не работает. Можно, конечно, модифицировать ее, сделав так, что если различаются только три байта, то считать прошивки идентичными. Но не факт, что в дальнейшем что-то опять не изменится. Да и хотелось понять, почему же это все-таки происходит.

  • Thanks 1
Link to comment
Share on other sites

  • 0
9 часов назад, gvan сказал:

Апну тему.

Обратил внимание, что на последних версиях прошивки 2.09 мой скрипт бэкапа стал делать новую копию прошивки, как-будто я ее обновляю каждый день. Но это не так.

Стал разбираться и определил, что прошивка, сохраненная в файл через CLI каждый раз в бинарном виде отличается.

Делаю две копии одной и той же прошивки с разницей в пару секунд и сравниваю:


ndmq -p 'copy flash:/firmware ADATA:/backup/firmware-cli' -P message
ndmq -p 'copy flash:/firmware ADATA:/backup/firmware-cli2' -P message
cmp -l firmware-cli firmware-cli2
	12124209  44  14
	12124210   0 270
	12124211 145 144

Всегда различаются байты с указанными номерами. Размер прошивки одинаковый.

Но если сохранять через веб, то бинарные файлы получаются одинаковыми байт в байт.

Но теперь логика скрипта, определяющая различия в прошивках, не работает. Можно, конечно, модифицировать ее, сделав так, что если различаются только три байта, то считать прошивки идентичными. Но не факт, что в дальнейшем что-то опять не изменится. Да и хотелось понять, почему же это все-таки происходит.

Ага, проблема найдена, и исправлена.

Исправление появится во всех следующих сборках всех веток.

  • Thanks 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...