Обсуждение приложения epk2extract, предназначенного для распаковки и расшифровка файлов прошивок телевизоров LG
epk2extract - это приложение с открытым кодом, который может извлекать, расшифровывать и конвертировать несколько форматов файлов, которые могут встречаться в телевизорах LG и аналогичных устройствах.
Поддерживаемые форматы файлов:
Формат | Описание |
epk v1 | Первая версия формата epk, не зашифрованная и не подписанная |
epk v2 | Вводит подпись и шифрование, требуются ключи |
epk v3 | Введен в webOS. Требуются ключи |
Mediatek pkg | Файлы UPG/PKG, используемые Hisense/Sharp/Philips (отсутствует ключ AES для Philips) и, возможно, другими |
Philips "fusion" | Файлы обновлений, используемые некоторыми телевизорами Philips |
squashfs | |
cramfs | |
lz4 | Немного измененная версия с заголовком |
lzo | |
gzip | |
jffs2 | |
lzhs | Специальное сжатие для загрузчиков MTK (boot.pak, tzfw.pak), использует lzss + huffman |
lzhs_fs | Система файлов LZHS, используемая в файлах MTK Upgrade для внешнего записываемого раздела (3rdw) |
mtdinfo/partinfo | Формат таблицы разделов LG (mtdi.pak, part.pak) |
str/pif | Формат записи PVR, который можно найти в моделях netcast |
sym | Символы отладки LG. Может извлекать имена функций и адреса в файл скрипта IDA (idc) |
Примечание: Для распаковки форматов epk v2 и v3 потребуются соответствующие ключи AES и RSA для расшифровки. Их можно извлечь из работающего телевизора.
Примечание: Для расшифровки PVR-записей вам потребуется дамп уникального ключа AES-128 из вашего телевизора.
epk2extract был протестирован только на файлах прошивок LG, однако можно использовать его для извлечения других файлов как общий инструмент распаковки, если они поддерживаются согласно таблице выше.
epk2extract не предназначен для перепаковки файлов. Если вы хотите перепаковать измененные файлы, следуйте вики/форуму openlgtv и делайте это в среде Linux (не используйте Cygwin). Не перепаковывайте файлы, извлеченные в среде Cygwin. В любом случае, вы делаете это на свой страх и риск.
Примечание
Программное обеспечение предоставляется "как есть", без гарантий любого рода, явных или подразумеваемых, включая, но не ограничиваясь, гарантиями товарного вида, пригодности для определенной цели и ненарушения прав. В любом случае авторы или владельцы авторских прав не несут ответственности за любые претензии, убытки или другие обязательства, возникающие из использования программного обеспечения или из других действий с ним.
Страница приложения на Github: https://github.com/openlgtv/epk2extract/
Входящие в состав компоненты:
Компонент | Описание |
lzhsenc | Сжимает заданный файл с помощью алгоритма lzhs |
lzhs_scanner | Сканирует заданный файл для поиска файлов lzhs и извлекает их |
idb_extract | Извлекает файлы базы изображений (IDB), которые можно найти в прошивках LG |
jffs2extract | Извлекает образы JFFS2. Поддерживает различные алгоритмы сжатия |
Как скомпилировать epk2extract в Linux:
- Установите необходимые компоненты для сборки:
Ubuntu/Debian:- Код: Выделить всё
apt-get install git build-essential cmake liblzo2-dev libssl-dev libc6-dev
Mandriva/Mageia:- Код: Выделить всё
urpmi git task-c++-devel cmake liblzo-devel libopenssl-devel glibc-devel --auto
- Скачайте и распакуйте на диск архив
- Соберите проект:
- Код: Выделить всё
./build.sh
- После сборки epk2extract можно найти в папке build_<platform>.
Как скомпилировать epk2extract на Cygwin:
- Установите Cygwin и во время установки выберите следующие пакеты:
- Код: Выделить всё
Devel -> gcc-g++, git, cmake, make
Libs -> liblzo2-devel, zlib-devel
Net -> openssl-devel
Utils -> ncurses
- Соберите проект:
- Код: Выделить всё
./build.sh
Как использовать epk2extract:
- Поместите файлы прошивки в ту же директорию, что и исполняемый файл epk2extract.
- Запустите его через sudo/fakeroot, чтобы избежать предупреждений (при извлечении узлов устройства из rootfs):
- Код: Выделить всё
sudo ./epk2extract имя_файла
- Чтобы получить IDC из SYM, выполните:
- Код: Выделить всё
./epk2extract xxxxxxxx.sym
Чтобы декодировать файлы part.pak или mtdi.pak выполните:- Код: Выделить всё
./epk2extract part.pak