Есть такая программа, которая поможет сделать обновления прошивок очень компактными, при условии что уже есть предыдущая версия.
Patcher
Эта программа создаёт "патч" - файл различий между двумя версиями файлов.
Из описания программы:
Для примера для двух файлов
R373_45R_&_Art_FleX_3.shx (70 Мб) и R373_48R_&_Art_FleX_5.shx (70 Мб) патч получился размером 13 Мб, а после упаковки стал весить меньше 4 Мб, думаю если разработчики помимо новых версий монстров выкладывали и такие патчи, то большому числу людей это бы облегчило жизнь, ну и сэкономило средства bigsmile;
Patcher
Эта программа создаёт "патч" - файл различий между двумя версиями файлов.
Из описания программы:
Цитата
Две утилиты:
- PatchMaker - для создания патча на базе двух исходных файлов, которые можно
рассматривать как две различные версии одного и того же файла (приложения,
документа или данных).
- Patcher - для использования полученного в результате работы PatchMaker'а патча
для превращения первого исходного файла ("старая версия") во второй
("новая версия).
+---------+
| OLD |===================================================#
| Version |======# |
+---------+ #==> * * * * * * * +------------+ |
* PatchMaker *========>| patch-file | |
+---------+ #==> * * * * * * * +------------+ |
| NEW |======# | |
| Version |<=============================# V V
+---------+ | * * * * * * * *
#<======* Patcher *
* * * * * * * *
Например: Пусть мы создали большую программу MyBigProg.exe размером ~3M,
положили ее на FTP или Web-сайт. И некоторые пользователи загрузили
ее, после чего была обнаружена ошибка. Мы исправляем ошибку, и делаем
новую версию доступной для загрузки. Если мы хотим облегчить жизнь тем
нашим пользователям, кто уже загрузил сбойную версию, то мы создаем
патч размером 200-300К и делаем его доступным для загрузки. Пользователи
загружают патч, запускают Patcher, и получают новую версию MyBigProg.exe
через несколько секунд.
Оба исходных файла могут быть различного размера. Имя (новой версии), размер и
контрольная сумма (старой версии) сохраняются в патч-файле. Расширение патч-файла
должно быть pch. Предполагается, что целевой файла (для натравливания на него
утилиты Patcher) уже имеет то имя, которое должен иметь результирующий файл, но
содержимое его - от старой версии. Для предотвращения неверного применения патча к
неверной версии файла, предварительно проверяется размер и контрольная сумма. В любом
случае, прежняя версия файла сохраняется на диске, но с расширением .001, .002 и т.д.
В приведенном выше примере, чтобы создать патч, мы должны иметь на диске обе версии
программы MyBigProg.exe. Старая версия называется MyBigProg.old, новая -
MyBigProg.exe. Мы запускаем PatchMaker, выбираем MyBigProg.old как "старую"
версию, MyBigProg.exe как "новую" версию и нажимаем на кнопку Start.
В результате, мы получаем файл MyBigProg.pch.
Наши пользователи запускают Patcher с файлом MyBigProg.pch как параметром
командной строки (например, бросая этот файл мышкой на программу Patcher
мышкой - в окне эксплорера). Поскольку старая версия программы MyBigProg.exe
уже поименована целевым именем, этого должно быть достаточно. В результате
пользователи получат новцю версию MyBigProg.exe, а старая будет переименована
в MyBigProg.exe.001 .
=====================================================================
Требования к аппаратуре: 486 или Pentium, Windows 9x / NT4SP3+ / 2000.
=====================================================================
Статус: бесплатно, с исходными текстами.
Ассемблерная версия Patcher выполненная Алексеем Климиным, публикуется
с его согласия.
=====================================================================
http://xcl.cjb.net
- PatchMaker - для создания патча на базе двух исходных файлов, которые можно
рассматривать как две различные версии одного и того же файла (приложения,
документа или данных).
- Patcher - для использования полученного в результате работы PatchMaker'а патча
для превращения первого исходного файла ("старая версия") во второй
("новая версия).
+---------+
| OLD |===================================================#
| Version |======# |
+---------+ #==> * * * * * * * +------------+ |
* PatchMaker *========>| patch-file | |
+---------+ #==> * * * * * * * +------------+ |
| NEW |======# | |
| Version |<=============================# V V
+---------+ | * * * * * * * *
#<======* Patcher *
* * * * * * * *
Например: Пусть мы создали большую программу MyBigProg.exe размером ~3M,
положили ее на FTP или Web-сайт. И некоторые пользователи загрузили
ее, после чего была обнаружена ошибка. Мы исправляем ошибку, и делаем
новую версию доступной для загрузки. Если мы хотим облегчить жизнь тем
нашим пользователям, кто уже загрузил сбойную версию, то мы создаем
патч размером 200-300К и делаем его доступным для загрузки. Пользователи
загружают патч, запускают Patcher, и получают новую версию MyBigProg.exe
через несколько секунд.
Оба исходных файла могут быть различного размера. Имя (новой версии), размер и
контрольная сумма (старой версии) сохраняются в патч-файле. Расширение патч-файла
должно быть pch. Предполагается, что целевой файла (для натравливания на него
утилиты Patcher) уже имеет то имя, которое должен иметь результирующий файл, но
содержимое его - от старой версии. Для предотвращения неверного применения патча к
неверной версии файла, предварительно проверяется размер и контрольная сумма. В любом
случае, прежняя версия файла сохраняется на диске, но с расширением .001, .002 и т.д.
В приведенном выше примере, чтобы создать патч, мы должны иметь на диске обе версии
программы MyBigProg.exe. Старая версия называется MyBigProg.old, новая -
MyBigProg.exe. Мы запускаем PatchMaker, выбираем MyBigProg.old как "старую"
версию, MyBigProg.exe как "новую" версию и нажимаем на кнопку Start.
В результате, мы получаем файл MyBigProg.pch.
Наши пользователи запускают Patcher с файлом MyBigProg.pch как параметром
командной строки (например, бросая этот файл мышкой на программу Patcher
мышкой - в окне эксплорера). Поскольку старая версия программы MyBigProg.exe
уже поименована целевым именем, этого должно быть достаточно. В результате
пользователи получат новцю версию MyBigProg.exe, а старая будет переименована
в MyBigProg.exe.001 .
=====================================================================
Требования к аппаратуре: 486 или Pentium, Windows 9x / NT4SP3+ / 2000.
=====================================================================
Статус: бесплатно, с исходными текстами.
Ассемблерная версия Patcher выполненная Алексеем Климиным, публикуется
с его согласия.
=====================================================================
http://xcl.cjb.net
Для примера для двух файлов
R373_45R_&_Art_FleX_3.shx (70 Мб) и R373_48R_&_Art_FleX_5.shx (70 Мб) патч получился размером 13 Мб, а после упаковки стал весить меньше 4 Мб, думаю если разработчики помимо новых версий монстров выкладывали и такие патчи, то большому числу людей это бы облегчило жизнь, ну и сэкономило средства bigsmile;