Тема: ZyXEL Keenetic - прошивки второго поколения V2.00 - что там внутри
Несколько дней назад компания ZyXEL представила для старшей модели маршрутизатора keenetic новую прошивку серии V2. Цитирую:
Внимание! Данная версия микропрограммы — это не очередное улучшение микропрограмм первого поколения, а принципиально другая платформа! ....
Подробнее можно почитать на форуме IXBT в этой теме и, конечно, на zyxel.ru.
Естественно, многие захотели посмотреть, что там внутри, но способы, которые работали для первой серии прошивок, не срабатывали. Впрочем, решение было найдено быстро. Вот, что пишет один из владельцев keenetic.
нужно найти в lzma C/7zip/Compress/LZMA_Lib/ZLib.cpp функцию uncompress и в ней заменить
if (decoderSpec->SetDecoderPropertiesRaw(ZLIB_LC,
ZLIB_LP, ZLIB_PB, (1 << 23)) != S_OK) return Z_DATA_ERROR;на
if (decoderSpec->SetDecoderPropertiesRaw(ZLIB_LC,
ZLIB_LP, ZLIB_PB, (1 << 16)) != S_OK) return Z_DATA_ERROR;
еще понадобилось изменить параметры компрессии в этом же файле
#define ZLIB_LC 3
#define ZLIB_LP 0
на
#define ZLIB_LC 0
#define ZLIB_LP 2
Внутри прошивки нет ни shell, ни, естественно, shell скриптов.
Как описано в документации, в новую прошивку добавить нужные из компоненты, выбирая их в web-интерфейсе (или через cli). Вот, что пишет другой владелец железки:
Keenetic скачивает список доступных компонентов с адреса http://..../components.xml, а "кастомизированная" прошивка берётся в виде ответа на POST-запрос к адресу....
....
по POST-запросу на адрес .../cgi-bin/build отдаётся один файл, и это файл прошивки, идентичный по структуре всем (в том числе и V1) прошивкам для Keenetic.
Похоже, что на сервере собирается прошивка из выбранных пользователем компонент, и отдается единым файлом.