diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8479566 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,14 @@ +# Store archives in Git LFS. +*.7z filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.cab filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..380f475 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.pnpm-store/ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..946361d --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,138 @@ +# Правила ведения каталога + +Эти правила действуют для всего репозитория. Перед изменением метаданных сверяйся +с `schema/index.schema.json`. Не добавляй поля, которых нет в схеме. + +## Структура + +- Корень репозитория является корнем каталога; папку `catalog` создавать не + нужно. +- Каждая категория и каждая программа находятся в собственной папке и содержат + ровно один файл `index.yaml`. +- Вложенность категорий не ограничена. Дочерние категории и программы + определяются по файловой структуре и не перечисляются в индексе категории. +- Имя папки — стабильный идентификатор. Используй строчные латинские буквы, + цифры, дефис и подчёркивание. +- В папке программы все загружаемые файлы находятся в `files`, а скриншоты — в + `img`. +- Не создавай отдельные YAML-файлы или папки метаданных для версий. Все версии + описываются в `versions` единственного `index.yaml` программы. +- Папки без `index.yaml`, например `schema`, `files` и `img`, не являются + категориями. + +## YAML категории + +Используй только следующие обязательные поля и сохраняй их порядок: + +```yaml +format: 1 +type: category +name: Русское название категории +description: Описание категории на русском языке. +``` + +## YAML программы + +Поля программы располагай в следующем порядке: + +1. `format: 1` — обязательное поле. +2. `type: program` — обязательное поле. +3. `name` — обязательное официальное название программы. +4. `description` — обязательное подробное описание на русском языке в формате + Markdown. +5. `homepage` — необязательный URL домашней страницы. +6. `source` — необязательный URL исходного кода. +7. `screenshots` — обязательный массив путей; используй `[]`, если изображений + нет. +8. `versions` — обязательный непустой массив версий. +9. `additional_files` — необязательный массив файлов, не привязанных к версии. + +Новые версии добавляй в начало `versions`, от новых к старым. Каждая версия +имеет такой вид: + +```yaml +- version: "1.2.0" + status: current + released: "2007-08-14" + files: + - path: files/program-1.2.0.zip + description: Назначение файла на русском языке + platform: win32 + sha256: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef +``` + +Поля версии располагай в порядке `version`, `status`, `released`, `description`, +`files`. Обязательны только `version` и непустой массив `files`. Необязательный +`status` принимает `current` для актуальной версии и `archived` для устаревшей, +сохранённой ради архива. Если статусы используются у программы, указывай их у +всех её версий. Поле `released` добавляй только при наличии достоверной даты. +Не переноси changelog в `description` версии и не добавляй это поле для полноты. +Оно допустимо только в особом случае, когда нужно зафиксировать существенное +ограничение, которое нельзя выразить номером версии или описанием конкретного +файла. + +Необязательное поле файла `platform` принимает одно из значений: `win32`, +`win64`, `dos`, `java` или `j2me`. Для Windows разрядность входит в название +платформы; отдельное поле `architecture` не используется. + +Файлы, которые подходят ко всем версиям или существуют отдельно от релиза, +помещай в `additional_files`, а не внутрь случайной версии: + +```yaml +additional_files: + - path: files/manual.pdf + description: Руководство пользователя +``` + +## Текст и достоверность + +- Названия категорий, описания программ, версий и файлов пиши на русском языке. + Официальные названия продуктов и технологий не переводи. +- Сохраняй полноту исходного описания. Не сокращай перечень возможностей до + общего пересказа и не удаляй значимые технические подробности. +- Содержимое каждого `description` интерпретируется как Markdown. Для длинного + описания со списком используй литеральный блок `|-` и Markdown-списки; для + обычного абзаца, перенесённого на несколько строк, используй `>-`. Не вставляй + HTML-разметку. +- Не выдумывай даты, ссылки, возможности или платформы. Неизвестное + необязательное поле лучше не добавлять. +- Сначала пытайся определить версию по странице, имени файла, README и + метаданным бинарника. Если номер версии нигде не указан и достоверно получить + его невозможно, используй каталоговое значение `version: "1.0"`. Не выводи + номер версии из даты сборки. +- Если источник содержит только текущую версию, добавляй только её. Не ищи + более ранние архивы в Wayback Machine без отдельного указания пользователя. + +## Пути и файлы + +- Все пути относительны папке программы и используют `/`. +- Путь загружаемого файла начинается с `files/`; путь скриншота — с `img/`. +- Абсолютные пути, `..` и обратная косая черта запрещены. +- Каждый путь из YAML должен указывать на существующий файл. +- Один файл нельзя одновременно указывать в `versions` и `additional_files`. +- Для каждого добавленного файла вычисляй и указывай SHA-256 в нижнем регистре. +- Архивы должны проходить через Git LFS согласно `.gitattributes`. Остальные + файлы хранятся в обычном Git. + +## Стиль YAML + +- Кодировка — UTF-8, окончания строк — LF, отступ — два пробела, табуляция + запрещена. +- Версии и даты всегда заключай в двойные кавычки. +- Дата имеет формат `YYYY-MM-DD`, SHA-256 — ровно 64 шестнадцатеричных символа. +- Не используй YAML-теги, anchors, aliases и merge keys. +- Не допускай неизвестных полей и дубликатов в массивах. + +## Проверка + +Перед завершением изменения: + +1. Проверь синтаксис всех затронутых `index.yaml` безопасным YAML-парсером. +2. Проверь их по `schema/index.schema.json` валидатором JSON Schema Draft 2020-12, + если он доступен. +3. Убедись, что все пути существуют и их SHA-256 совпадает с метаданными. + Для заполнения и обновления сумм используй `pnpm sha256 [путь]`, для проверки + без изменения файлов — `pnpm sha256:check [путь]`. +4. Для каждого нового архива выполни `git check-attr filter -- <путь>` и + убедись, что значение равно `lfs`. +5. Выполни `git diff --check`. diff --git a/README.md b/README.md index e69de29..b6054a3 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,182 @@ +# Каталог программ + +Репозиторий хранит дистрибутивы программ и их метаданные. Все пользовательские +названия и описания пишутся на русском языке. Официальные названия программ, +версии, имена платформ и другие технические значения переводить не нужно. + +## Структура + +Корень репозитория одновременно является корнем каталога программ. Вложенность +категорий не ограничена. Имя папки служит стабильным машиночитаемым +идентификатором: используйте строчные латинские буквы, цифры, дефис и +подчёркивание. + +```text +./ +├── index.yaml +├── schema/ +│ └── index.schema.json +└── system/ + ├── index.yaml + └── file-managers/ + ├── index.yaml + └── example-program/ + ├── index.yaml + ├── img/ + │ └── screenshot.png + └── files/ + ├── example-program-1.0.0.zip + ├── example-program-1.1.0.zip + └── manual.pdf +``` + +Каждая категория и каждая программа содержит ровно один `index.yaml`: + +- `type: category` означает категорию; рядом могут находиться подкатегории и + программы; +- `type: program` означает программу; все её версии описываются в этом же + файле; +- `img` и `files` — зарезервированные папки внутри программы. + +Папки без `index.yaml`, например корневая `schema`, не входят в дерево +категорий. + +Список дочерних элементов категории не дублируется в YAML: он определяется по +вложенным папкам. Благодаря этому перемещение программы не требует правки +родительских индексов. + +## Категория + +```yaml +format: 1 +type: category +name: Системные программы +description: Утилиты для настройки и обслуживания устройства. +``` + +## Программа + +```yaml +format: 1 +type: program +name: Пример программы +description: |- + Краткое описание назначения и возможностей программы. + + Возможности: + - первая возможность; + - вторая возможность. +homepage: https://example.org/program +source: https://github.com/example/program +screenshots: + - img/screenshot.png +versions: + - version: "1.1.0" + status: current + released: "2007-08-14" + files: + - path: files/example-program-1.1.0.zip + description: Дистрибутив программы + platform: win32 + sha256: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef + - version: "1.0.0" + files: + - path: files/example-program-1.0.0.zip +additional_files: + - path: files/manual.pdf + description: Руководство пользователя +``` + +Обязательные поля программы: `format`, `type`, `name`, `description`, +`screenshots`, `versions`. Поля `homepage`, `source` и `additional_files` +необязательны. + +Поле `description` содержит Markdown. Для содержательного описания используйте +абзацы и списки внутри литерального YAML-блока `|-`. + +Все файлы программы хранятся в её папке `files`. Версионные файлы перечислены +в `versions[].files`, а не зависящие от версии — в `additional_files`. Один и +тот же файл не следует указывать в обоих местах. Новые версии добавляются в +начало массива `versions`, от новых к старым. + +Необязательное поле файла `platform` использует короткие машиночитаемые +значения: `win32`, `win64`, `dos`, `java` или `j2me`. Отдельного поля +архитектуры нет: разрядность Windows уже включена в `win32` или `win64`. + +Необязательное поле `status` принимает значение `current` для актуальной версии +или `archived` для версии, оставленной в каталоге как архивная. Если программа +использует статусы, они указываются у всех её версий. + +`description` версии используется только для существенных исключений, которые +нельзя выразить номером версии или описанием файла. Обычный список изменений в +индекс не переносится. + +Скриншоты хранятся в `img`; пути всегда начинаются с `img/`. Если скриншотов +нет, указывается пустой массив: `screenshots: []`. + +## Правила формата + +- Кодировка всех YAML-файлов — UTF-8, окончания строк — LF. +- `format` — версия формата метаданных. Текущее значение: `1`. +- Неизвестные поля запрещены: расширение формата требует изменения схемы. +- Все пути задаются относительно папки программы. Абсолютные пути, `..` и + обратная косая черта запрещены. +- Даты записываются строкой `YYYY-MM-DD` и берутся в кавычки. +- URL используют только `http` или `https`. +- `sha256`, если указан, содержит 64 шестнадцатеричных символа в нижнем + регистре. +- Массивы не должны содержать дубликаты. +- Описания программы, версии и файла пишутся на русском языке. + +Архивы хранятся через Git LFS, остальные файлы — как обычные объекты Git. + +## Заполнение SHA-256 + +Для установки зависимостей используется pnpm: + +```shell +pnpm install +``` + +Команда вычисляет контрольные суммы всех файлов из `versions` и +`additional_files`, после чего добавляет или обновляет поля `sha256`: + +```shell +pnpm sha256 +``` + +Можно ограничить обход одной программой, категорией или конкретным индексом: + +```shell +pnpm sha256 service/repair-tools/joker +pnpm sha256 service/repair-tools/joker/index.yaml +``` + +Для проверки без изменения YAML используется отдельная команда: + +```shell +pnpm sha256:check +``` + +## Дерево каталога + +Дерево категорий и программ строится по файловой структуре и названиям из +`index.yaml`: + +```shell +pnpm tree +``` + +Можно вывести только выбранную ветку, добавить пути каталогов или версии +программ: + +```shell +pnpm tree service/repair-tools +pnpm tree --paths +pnpm tree --versions +``` + +Формальная JSON Schema находится в +[`schema/index.schema.json`](schema/index.schema.json). Она проверяет структуру +и значения `index.yaml`; соответствие русского текста проверяется при ревью, +поскольку название продукта может состоять из латинских символов. diff --git a/development/debuggers/armdebugger/files/ArmDebugger-079.rar b/development/debuggers/armdebugger/files/ArmDebugger-079.rar new file mode 100644 index 0000000..f238229 --- /dev/null +++ b/development/debuggers/armdebugger/files/ArmDebugger-079.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e089e35a4733c97890c34c14d065007332057f5b11693a7f94cca7245251ad +size 439518 diff --git a/development/debuggers/armdebugger/index.yaml b/development/debuggers/armdebugger/index.yaml new file mode 100644 index 0000000..ee05b45 --- /dev/null +++ b/development/debuggers/armdebugger/index.yaml @@ -0,0 +1,29 @@ +format: 1 +type: program +name: ArmDebugger +description: |- + Отладчик для телефонов Siemens 65/70/75-й серии. + + Возможности: + - автоматическая генерация CGSN-патча по слитому фулфлешу; + - просмотр содержимого памяти телефона в HEX-дампе; + - ARM/Thumb-дизассемблер с inline-ассемблером; + - пошаговая трассировка программы или процесса; + - установка точек мониторинга на любой адрес флеш-памяти и на запись в + диапазон RAM; + - редактирование памяти, в том числе флеш-области, с использованием замещения + flash-страниц; + - поиск байтов, строк и ссылок в памяти; + - интеграция с Keil ARM Tools; + - дамп памяти в файл, вызов функций flash с параметрами и hex/bin/dec + калькулятор. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "0.7.9" + released: "2006-12-28" + files: + - path: files/ArmDebugger-079.rar + description: Отладчик, краткое руководство и примеры для Keil ARM Tools + platform: win32 + sha256: 94e089e35a4733c97890c34c14d065007332057f5b11693a7f94cca7245251ad diff --git a/development/debuggers/index.yaml b/development/debuggers/index.yaml new file mode 100644 index 0000000..b333795 --- /dev/null +++ b/development/debuggers/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Отладчики +description: Программы для анализа памяти, машинного кода и выполнения программ. diff --git a/development/index.yaml b/development/index.yaml new file mode 100644 index 0000000..f6aadd2 --- /dev/null +++ b/development/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Средства разработки +description: Инструменты для исследования и разработки программного обеспечения телефонов. diff --git a/development/java-tools/index.yaml b/development/java-tools/index.yaml new file mode 100644 index 0000000..d696630 --- /dev/null +++ b/development/java-tools/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Инструменты Java ME +description: Программы для разработки, настройки и подготовки приложений Java ME. diff --git a/development/java-tools/midletsigner/files/JRE131L.rar b/development/java-tools/midletsigner/files/JRE131L.rar new file mode 100644 index 0000000..39b2346 --- /dev/null +++ b/development/java-tools/midletsigner/files/JRE131L.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0236f9e6fd71537d878792b7aa4cf6b20c2a729ae9672c81d6e69289f1afcf89 +size 624754 diff --git a/development/java-tools/midletsigner/files/MidletSigner5.rar b/development/java-tools/midletsigner/files/MidletSigner5.rar new file mode 100644 index 0000000..568e881 --- /dev/null +++ b/development/java-tools/midletsigner/files/MidletSigner5.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad81aebd58ddf45a57c42123d708214aa2cd1297cf1c871c95b8808f70939046 +size 19259 diff --git a/development/java-tools/midletsigner/index.yaml b/development/java-tools/midletsigner/index.yaml new file mode 100644 index 0000000..1a245cb --- /dev/null +++ b/development/java-tools/midletsigner/index.yaml @@ -0,0 +1,30 @@ +format: 1 +type: program +name: MidletSigner +description: |- + Программа для самостоятельного создания сертификата и подписывания + Java-мидлетов на телефонах Siemens 65-й и 75-й серий. + + Подписанный мидлет может работать без постоянных запросов подтверждения при + чтении и записи файлов, выходе в интернет, отправке SMS и MMS, доступе к + COM-порту, Bluetooth, адресной книге, органайзеру и мультимедийным функциям. + Подпись также позволяет автоматически запускать мидлет по времени или + событию. + + Программа работает из командной строки с JAD- и JAR-файлами. Для работы + требуется JRE версии 1.3 или новее. Для телефонов 65-й серии нужен OpenDisc + 2.0, а для телефонов 75-й серии в телефон должен быть введён SKEY. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "5" + files: + - path: files/MidletSigner5.rar + description: MidletSigner 5 с русским и английским руководствами + platform: java + sha256: ad81aebd58ddf45a57c42123d708214aa2cd1297cf1c871c95b8808f70939046 +additional_files: + - path: files/JRE131L.rar + description: Минимальный JRE 1.3.1 только для запуска MidletSigner + platform: win32 + sha256: 0236f9e6fd71537d878792b7aa4cf6b20c2a729ae9672c81d6e69289f1afcf89 diff --git a/development/patch-tools/ffpatch/files/ffpatch.rar b/development/patch-tools/ffpatch/files/ffpatch.rar new file mode 100644 index 0000000..7487a56 --- /dev/null +++ b/development/patch-tools/ffpatch/files/ffpatch.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fef324ef0e22d97dc550e6bb20acd1a5edb4c6d773784f1edb2ad3ad854aac6 +size 79635 diff --git a/development/patch-tools/ffpatch/index.yaml b/development/patch-tools/ffpatch/index.yaml new file mode 100644 index 0000000..fd9ff32 --- /dev/null +++ b/development/patch-tools/ffpatch/index.yaml @@ -0,0 +1,23 @@ +format: 1 +type: program +name: FFPatch +description: |- + Программа для сравнения двух файлов fullflash, сохранения найденных отличий + в виде патча VKP и поиска уже установленных патчей в образе flash-памяти. + + Возможности: + - сравнение оригинального и текущего fullflash; + - формирование файла различий в формате VKP; + - поиск одного или нескольких патчей VKP в fullflash; + - добавление патчей отдельными файлами или целым каталогом; + - исключение заданных диапазонов адресов из поиска и сравнения; + - сохранение настроек фильтрации адресов. +homepage: https://web.archive.org/web/20130813164842/http://vi-soft.com.ua/ +screenshots: [] +versions: + - version: "0.4.2" + files: + - path: files/ffpatch.rar + description: Программа FFPatch и руководство пользователя + platform: win32 + sha256: 6fef324ef0e22d97dc550e6bb20acd1a5edb4c6d773784f1edb2ad3ad854aac6 diff --git a/development/patch-tools/filescomparer/files/fc_v1.2.rar b/development/patch-tools/filescomparer/files/fc_v1.2.rar new file mode 100644 index 0000000..aadea80 --- /dev/null +++ b/development/patch-tools/filescomparer/files/fc_v1.2.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e2416941803cf80c9a56a859b0cc2e714388e5f907d89403c0d3f05c7520cc4 +size 7415 diff --git a/development/patch-tools/filescomparer/index.yaml b/development/patch-tools/filescomparer/index.yaml new file mode 100644 index 0000000..2ddbab4 --- /dev/null +++ b/development/patch-tools/filescomparer/index.yaml @@ -0,0 +1,21 @@ +format: 1 +type: program +name: FilesComparer +description: |- + Программа для сравнения файлов и образов flash-памяти. + + Возможности: + - сравнение файлов одинакового и разного размера; + - ограничение сравнения начальным и конечным адресами; + - передача параметров через командную строку; + - выравнивание результатов по байтам; + - работа под DOS и Windows. +homepage: https://web.archive.org/web/20130813164842/http://vi-soft.com.ua/ +screenshots: [] +versions: + - version: "1.2" + files: + - path: files/fc_v1.2.rar + description: Программа FilesComparer 1.2 + platform: win32 + sha256: 1e2416941803cf80c9a56a859b0cc2e714388e5f907d89403c0d3f05c7520cc4 diff --git a/development/patch-tools/hex2vkp/files/hex2vkp.zip b/development/patch-tools/hex2vkp/files/hex2vkp.zip new file mode 100644 index 0000000..6ad3426 --- /dev/null +++ b/development/patch-tools/hex2vkp/files/hex2vkp.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10149c6770337551f18f5ff948acf9e3fbd025fca3e97a1f0f1cab9702301786 +size 50300 diff --git a/development/patch-tools/hex2vkp/index.yaml b/development/patch-tools/hex2vkp/index.yaml new file mode 100644 index 0000000..d1d8883 --- /dev/null +++ b/development/patch-tools/hex2vkp/index.yaml @@ -0,0 +1,20 @@ +format: 1 +type: program +name: Hex2VKP +description: |- + Консольный конвертер из формата Intel HEX в формат патчей VKP программы + V_KLay. + + Intel HEX применяется для загрузки данных в микроконтроллеры и может быть + создан компиляторами для C166, включая Keil и Tasking C. Hex2VKP преобразует + результат компиляции в патч VKP для последующей записи через V_KLay. Ключ + `-F` создаёт секцию отмены патча `UNDO PATCH`. +homepage: https://web.archive.org/web/20130813164842/http://vi-soft.com.ua/ +screenshots: [] +versions: + - version: "0.1a" + files: + - path: files/hex2vkp.zip + description: Программа Hex2VKP, исходный код, настройки и руководство + platform: win32 + sha256: 10149c6770337551f18f5ff948acf9e3fbd025fca3e97a1f0f1cab9702301786 diff --git a/development/patch-tools/index.yaml b/development/patch-tools/index.yaml new file mode 100644 index 0000000..436a8c8 --- /dev/null +++ b/development/patch-tools/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Средства создания патчей +description: Программы для сравнения прошивок, поиска изменений и создания патчей VKP. diff --git a/development/patch-tools/slfc/files/slfc-chaos.exe b/development/patch-tools/slfc/files/slfc-chaos.exe new file mode 100644 index 0000000..73519ab Binary files /dev/null and b/development/patch-tools/slfc/files/slfc-chaos.exe differ diff --git a/development/patch-tools/slfc/files/slfc-vi-soft.exe b/development/patch-tools/slfc/files/slfc-vi-soft.exe new file mode 100644 index 0000000..e14eef1 Binary files /dev/null and b/development/patch-tools/slfc/files/slfc-vi-soft.exe differ diff --git a/development/patch-tools/slfc/index.yaml b/development/patch-tools/slfc/index.yaml new file mode 100644 index 0000000..9abd3a2 --- /dev/null +++ b/development/patch-tools/slfc/index.yaml @@ -0,0 +1,23 @@ +format: 1 +type: program +name: SLFC +description: |- + Консольная программа для сравнения двух файлов fullflash и создания патча в + формате VKP. + + Совпадающие байты можно учитывать по правилу: если их не больше трёх, они + включаются в патч; более длинная совпадающая последовательность считается + окончанием блока изменений. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "1.0" + files: + - path: files/slfc-chaos.exe + description: Сборка SLFC со страницы автора Chaos + platform: win32 + sha256: 6b77b967ab44dccb4d3038df9d95cebbcdf9f3162183990d9516c32cd2d450e6 + - path: files/slfc-vi-soft.exe + description: Сборка SLFC со страницы vi-soft.com.ua + platform: win32 + sha256: 3ec3143bc70f6ad7d0efaa41e0c666a9213c5e8c4163b11c05dfa999335600e4 diff --git a/index.yaml b/index.yaml new file mode 100644 index 0000000..6514350 --- /dev/null +++ b/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Каталог программ +description: Программы и утилиты для мобильных устройств Siemens. diff --git a/multimedia/audio-tools/index.yaml b/multimedia/audio-tools/index.yaml new file mode 100644 index 0000000..74e31aa --- /dev/null +++ b/multimedia/audio-tools/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Работа со звуком +description: Инструменты для преобразования и обработки звуковых файлов телефонов. diff --git a/multimedia/audio-tools/vmo2wav/files/vmo2wav.zip b/multimedia/audio-tools/vmo2wav/files/vmo2wav.zip new file mode 100644 index 0000000..8cfa7f0 --- /dev/null +++ b/multimedia/audio-tools/vmo2wav/files/vmo2wav.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb89b2df0dc483a7a418002aee7e3d070a7613c16142246f815d08e5b527dd6c +size 37605 diff --git a/multimedia/audio-tools/vmo2wav/index.yaml b/multimedia/audio-tools/vmo2wav/index.yaml new file mode 100644 index 0000000..c705977 --- /dev/null +++ b/multimedia/audio-tools/vmo2wav/index.yaml @@ -0,0 +1,17 @@ +format: 1 +type: program +name: vmo2wav +description: |- + Консольный конвертер диктофонных записей Siemens SL45 из формата VMO в WAV. + + По умолчанию программа нормализует уровень сигнала. Нормализацию можно + отключить параметром `-n`. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "1.0" + files: + - path: files/vmo2wav.zip + description: Конвертер vmo2wav и руководство пользователя + platform: win32 + sha256: fb89b2df0dc483a7a418002aee7e3d070a7613c16142246f815d08e5b527dd6c diff --git a/multimedia/index.yaml b/multimedia/index.yaml new file mode 100644 index 0000000..ad51558 --- /dev/null +++ b/multimedia/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Мультимедиа +description: Программы для обработки звука, изображений и других мультимедийных данных. diff --git a/package.json b/package.json new file mode 100644 index 0000000..4876be2 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "siemens-software-catalog", + "private": true, + "type": "module", + "packageManager": "pnpm@11.3.0", + "scripts": { + "sha256": "tsx scripts/fillSha256.ts", + "sha256:check": "tsx scripts/fillSha256.ts --check", + "tree": "tsx scripts/printTree.ts", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@types/node": "^26.2.0", + "tsx": "^4.23.12", + "typescript": "^7.0.2", + "yaml": "^2.9.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..35063d6 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,540 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@types/node': + specifier: ^26.2.0 + version: 26.2.0 + tsx: + specifier: ^4.23.12 + version: 4.23.12 + typescript: + specifier: ^7.0.2 + version: 7.0.2 + yaml: + specifier: ^2.9.0 + version: 2.9.0 + +packages: + + '@esbuild/aix-ppc64@0.28.2': + resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.28.2': + resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.28.2': + resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.28.2': + resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.28.2': + resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.2': + resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.28.2': + resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.2': + resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.28.2': + resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.28.2': + resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.28.2': + resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.28.2': + resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.28.2': + resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.28.2': + resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.2': + resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.28.2': + resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.28.2': + resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.28.2': + resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.2': + resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.28.2': + resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.2': + resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.2': + resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.28.2': + resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.28.2': + resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.28.2': + resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.28.2': + resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@types/node@26.2.0': + resolution: {integrity: sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==} + + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + esbuild@0.28.2: + resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} + engines: {node: '>=18'} + hasBin: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + tsx@4.23.12: + resolution: {integrity: sha512-FDf4L4sYzKtzWYhU/Xm0AQFdTjdIxNo9ElTf2mxXM6k8YMHXzYUe4yODVaXP4V9uMFbVg8c0qyBccK2OOxb45Q==} + engines: {node: '>=18.0.0'} + hasBin: true + + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + +snapshots: + + '@esbuild/aix-ppc64@0.28.2': + optional: true + + '@esbuild/android-arm64@0.28.2': + optional: true + + '@esbuild/android-arm@0.28.2': + optional: true + + '@esbuild/android-x64@0.28.2': + optional: true + + '@esbuild/darwin-arm64@0.28.2': + optional: true + + '@esbuild/darwin-x64@0.28.2': + optional: true + + '@esbuild/freebsd-arm64@0.28.2': + optional: true + + '@esbuild/freebsd-x64@0.28.2': + optional: true + + '@esbuild/linux-arm64@0.28.2': + optional: true + + '@esbuild/linux-arm@0.28.2': + optional: true + + '@esbuild/linux-ia32@0.28.2': + optional: true + + '@esbuild/linux-loong64@0.28.2': + optional: true + + '@esbuild/linux-mips64el@0.28.2': + optional: true + + '@esbuild/linux-ppc64@0.28.2': + optional: true + + '@esbuild/linux-riscv64@0.28.2': + optional: true + + '@esbuild/linux-s390x@0.28.2': + optional: true + + '@esbuild/linux-x64@0.28.2': + optional: true + + '@esbuild/netbsd-arm64@0.28.2': + optional: true + + '@esbuild/netbsd-x64@0.28.2': + optional: true + + '@esbuild/openbsd-arm64@0.28.2': + optional: true + + '@esbuild/openbsd-x64@0.28.2': + optional: true + + '@esbuild/openharmony-arm64@0.28.2': + optional: true + + '@esbuild/sunos-x64@0.28.2': + optional: true + + '@esbuild/win32-arm64@0.28.2': + optional: true + + '@esbuild/win32-ia32@0.28.2': + optional: true + + '@esbuild/win32-x64@0.28.2': + optional: true + + '@types/node@26.2.0': + dependencies: + undici-types: 8.3.0 + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + esbuild@0.28.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.2 + '@esbuild/android-arm': 0.28.2 + '@esbuild/android-arm64': 0.28.2 + '@esbuild/android-x64': 0.28.2 + '@esbuild/darwin-arm64': 0.28.2 + '@esbuild/darwin-x64': 0.28.2 + '@esbuild/freebsd-arm64': 0.28.2 + '@esbuild/freebsd-x64': 0.28.2 + '@esbuild/linux-arm': 0.28.2 + '@esbuild/linux-arm64': 0.28.2 + '@esbuild/linux-ia32': 0.28.2 + '@esbuild/linux-loong64': 0.28.2 + '@esbuild/linux-mips64el': 0.28.2 + '@esbuild/linux-ppc64': 0.28.2 + '@esbuild/linux-riscv64': 0.28.2 + '@esbuild/linux-s390x': 0.28.2 + '@esbuild/linux-x64': 0.28.2 + '@esbuild/netbsd-arm64': 0.28.2 + '@esbuild/netbsd-x64': 0.28.2 + '@esbuild/openbsd-arm64': 0.28.2 + '@esbuild/openbsd-x64': 0.28.2 + '@esbuild/openharmony-arm64': 0.28.2 + '@esbuild/sunos-x64': 0.28.2 + '@esbuild/win32-arm64': 0.28.2 + '@esbuild/win32-ia32': 0.28.2 + '@esbuild/win32-x64': 0.28.2 + + fsevents@2.3.3: + optional: true + + tsx@4.23.12: + dependencies: + esbuild: 0.28.2 + optionalDependencies: + fsevents: 2.3.3 + + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + undici-types@8.3.0: {} + + yaml@2.9.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..5ed0b5a --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +allowBuilds: + esbuild: true diff --git a/schema/index.schema.json b/schema/index.schema.json new file mode 100644 index 0000000..da8bc35 --- /dev/null +++ b/schema/index.schema.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Индекс каталога программ", + "description": "Схема index.yaml для категории или программы.", + "oneOf": [ + { + "$ref": "#/$defs/category" + }, + { + "$ref": "#/$defs/program" + } + ], + "$defs": { + "name": { + "type": "string", + "minLength": 1, + "maxLength": 120 + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 4000, + "contentMediaType": "text/markdown" + }, + "url": { + "type": "string", + "format": "uri", + "pattern": "^https?://" + }, + "filePath": { + "type": "string", + "pattern": "^(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)files/.+$" + }, + "screenshotPath": { + "type": "string", + "pattern": "^(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)img/.+\\.(?:png|jpe?g|webp|gif)$" + }, + "file": { + "title": "Файл программы", + "type": "object", + "additionalProperties": false, + "required": [ + "path" + ], + "properties": { + "path": { + "$ref": "#/$defs/filePath" + }, + "description": { + "$ref": "#/$defs/description" + }, + "platform": { + "type": "string", + "enum": [ + "win32", + "win64", + "dos", + "java", + "j2me" + ] + }, + "sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + } + } + }, + "version": { + "title": "Версия программы", + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "files" + ], + "properties": { + "version": { + "type": "string", + "minLength": 1, + "maxLength": 80, + "pattern": "^[^/\\\\]+$" + }, + "status": { + "type": "string", + "enum": [ + "current", + "archived" + ] + }, + "released": { + "type": "string", + "format": "date" + }, + "description": { + "$ref": "#/$defs/description" + }, + "files": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/$defs/file" + } + } + } + }, + "category": { + "title": "Категория", + "type": "object", + "additionalProperties": false, + "required": [ + "format", + "type", + "name", + "description" + ], + "properties": { + "format": { + "const": 1 + }, + "type": { + "const": "category" + }, + "name": { + "$ref": "#/$defs/name" + }, + "description": { + "$ref": "#/$defs/description" + } + } + }, + "program": { + "title": "Программа", + "type": "object", + "additionalProperties": false, + "required": [ + "format", + "type", + "name", + "description", + "screenshots", + "versions" + ], + "properties": { + "format": { + "const": 1 + }, + "type": { + "const": "program" + }, + "name": { + "$ref": "#/$defs/name" + }, + "description": { + "$ref": "#/$defs/description" + }, + "homepage": { + "$ref": "#/$defs/url" + }, + "source": { + "$ref": "#/$defs/url" + }, + "screenshots": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/$defs/screenshotPath" + } + }, + "versions": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/$defs/version" + } + }, + "additional_files": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/$defs/file" + } + } + } + } + } +} diff --git a/scripts/fillSha256.ts b/scripts/fillSha256.ts new file mode 100644 index 0000000..0fd1f07 --- /dev/null +++ b/scripts/fillSha256.ts @@ -0,0 +1,272 @@ +#!/usr/bin/env node + +import { createHash } from "node:crypto"; +import { createReadStream } from "node:fs"; +import { + lstat, + mkdir, + readdir, + readFile, + realpath, + rename, + rm, + stat, + writeFile, +} from "node:fs/promises"; +import path from "node:path"; +import process from "node:process"; +import { parseDocument } from "yaml"; + +type CatalogFile = { + path?: unknown; + sha256?: unknown; +}; + +type ProgramIndex = { + type?: unknown; + versions?: Array<{ files?: CatalogFile[] }>; + additional_files?: CatalogFile[]; +}; + +type Options = { + check: boolean; + targets: string[]; +}; + +type FileReference = { + data: CatalogFile; + yamlPath: Array; +}; + +const ignoredDirectories = new Set([".git", "node_modules", "files", "img"]); + +function usage(): void { + console.log(`Использование: pnpm sha256 [--check] [путь ...] + +Без путей скрипт обходит текущий каталог. Путь может указывать на index.yaml +или на папку, внутри которой нужно найти index.yaml. + + --check только проверить суммы, не изменяя YAML + --help показать эту справку`); +} + +function parseArguments(args: string[]): Options { + const targets: string[] = []; + let check = false; + + for (const argument of args) { + if (argument === "--check") { + check = true; + } else if (argument === "--help" || argument === "-h") { + usage(); + process.exit(0); + } else if (argument.startsWith("-")) { + throw new Error(`Неизвестный параметр: ${argument}`); + } else { + targets.push(argument); + } + } + + return { check, targets: targets.length > 0 ? targets : ["."] }; +} + +async function findIndexes(target: string, result: Set): Promise { + const absoluteTarget = path.resolve(target); + const targetStat = await lstat(absoluteTarget); + + if (targetStat.isFile()) { + if (path.basename(absoluteTarget) !== "index.yaml") { + throw new Error(`Ожидался index.yaml: ${target}`); + } + result.add(absoluteTarget); + return; + } + + if (!targetStat.isDirectory()) { + throw new Error(`Путь не является файлом или каталогом: ${target}`); + } + + const entries = await readdir(absoluteTarget, { withFileTypes: true }); + for (const entry of entries) { + const entryPath = path.join(absoluteTarget, entry.name); + if (entry.isFile() && entry.name === "index.yaml") { + result.add(entryPath); + } else if (entry.isDirectory() && !ignoredDirectories.has(entry.name)) { + await findIndexes(entryPath, result); + } + } +} + +function collectFileReferences(data: ProgramIndex): FileReference[] { + const references: FileReference[] = []; + + for (const [versionIndex, version] of (data.versions ?? []).entries()) { + for (const [fileIndex, file] of (version.files ?? []).entries()) { + references.push({ + data: file, + yamlPath: ["versions", versionIndex, "files", fileIndex], + }); + } + } + + for (const [fileIndex, file] of (data.additional_files ?? []).entries()) { + references.push({ + data: file, + yamlPath: ["additional_files", fileIndex], + }); + } + + return references; +} + +async function resolveCatalogFile(indexPath: string, value: unknown): Promise { + if (typeof value !== "string" || value.length === 0) { + throw new Error("поле path отсутствует или не является строкой"); + } + if (path.isAbsolute(value) || value.includes("\\")) { + throw new Error(`недопустимый путь: ${value}`); + } + + const parts = value.split("/"); + if (parts[0] !== "files" || parts.some((part) => part === ".." || part === "")) { + throw new Error(`путь должен находиться внутри files/: ${value}`); + } + + const programDirectory = path.dirname(indexPath); + const filesDirectory = path.resolve(programDirectory, "files"); + const filePath = path.resolve(programDirectory, ...parts); + const relativePath = path.relative(filesDirectory, filePath); + if (relativePath.startsWith("..") || path.isAbsolute(relativePath)) { + throw new Error(`путь выходит за пределы files/: ${value}`); + } + + const [realFilesDirectory, realFilePath] = await Promise.all([ + realpath(filesDirectory), + realpath(filePath), + ]); + const realRelativePath = path.relative(realFilesDirectory, realFilePath); + if (realRelativePath.startsWith("..") || path.isAbsolute(realRelativePath)) { + throw new Error(`символическая ссылка выходит за пределы files/: ${value}`); + } + if (!(await stat(realFilePath)).isFile()) { + throw new Error(`путь не указывает на обычный файл: ${value}`); + } + + return realFilePath; +} + +async function calculateSha256(filePath: string): Promise { + const hash = createHash("sha256"); + for await (const chunk of createReadStream(filePath)) { + hash.update(chunk); + } + return hash.digest("hex"); +} + +async function writeAtomically(filePath: string, contents: string): Promise { + const directory = path.dirname(filePath); + const temporaryPath = path.join( + directory, + `.${path.basename(filePath)}.${process.pid}.tmp`, + ); + + await mkdir(directory, { recursive: true }); + try { + await writeFile(temporaryPath, contents, "utf8"); + await rename(temporaryPath, filePath); + } finally { + await rm(temporaryPath, { force: true }); + } +} + +async function processIndex(indexPath: string, check: boolean): Promise { + const source = await readFile(indexPath, "utf8"); + const document = parseDocument(source, { prettyErrors: true }); + if (document.errors.length > 0) { + throw new Error(document.errors.map((error) => error.message).join("; ")); + } + + const data = document.toJS() as ProgramIndex; + if (data.type !== "program") { + return 0; + } + + let changed = 0; + const errors: string[] = []; + const references = collectFileReferences(data); + + const results = await Promise.all( + references.map(async (reference) => { + try { + const filePath = await resolveCatalogFile(indexPath, reference.data.path); + return { reference, digest: await calculateSha256(filePath) }; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + errors.push(`${String(reference.data.path)}: ${message}`); + return undefined; + } + }), + ); + + if (errors.length > 0) { + throw new Error(errors.join("; ")); + } + + for (const result of results) { + if (result === undefined || result.reference.data.sha256 === result.digest) { + continue; + } + changed += 1; + if (!check) { + document.setIn([...result.reference.yamlPath, "sha256"], result.digest); + } + } + + const displayPath = path.relative(process.cwd(), indexPath) || indexPath; + if (changed > 0 && check) { + console.error(`${displayPath}: требуется обновить SHA-256 (${changed})`); + } else if (changed > 0) { + await writeAtomically(indexPath, document.toString()); + console.log(`${displayPath}: обновлено SHA-256 (${changed})`); + } + + return changed; +} + +async function main(): Promise { + const options = parseArguments(process.argv.slice(2)); + const indexes = new Set(); + + for (const target of options.targets) { + await findIndexes(target, indexes); + } + + let changed = 0; + let failed = 0; + for (const indexPath of [...indexes].sort()) { + try { + changed += await processIndex(indexPath, options.check); + } catch (error) { + failed += 1; + const displayPath = path.relative(process.cwd(), indexPath) || indexPath; + const message = error instanceof Error ? error.message : String(error); + console.error(`${displayPath}: ${message}`); + } + } + + if (failed > 0) { + console.error(`Ошибок: ${failed}`); + process.exitCode = 1; + } else if (options.check && changed > 0) { + console.error(`Файлов с несовпадениями: ${changed}`); + process.exitCode = 1; + } else { + console.log( + changed > 0 + ? `Готово, обновлено полей: ${changed}` + : `Готово, все SHA-256 актуальны. Проверено index.yaml: ${indexes.size}`, + ); + } +} + +await main(); diff --git a/scripts/printTree.ts b/scripts/printTree.ts new file mode 100644 index 0000000..913a49e --- /dev/null +++ b/scripts/printTree.ts @@ -0,0 +1,222 @@ +#!/usr/bin/env node + +import { lstat, readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import process from "node:process"; +import { parseDocument } from "yaml"; + +type CatalogType = "category" | "program"; + +type CatalogIndex = { + type?: unknown; + name?: unknown; + versions?: Array<{ version?: unknown; status?: unknown }>; +}; + +type CatalogVersion = { + version: string; + status?: "current" | "archived"; +}; + +type CatalogNode = { + type: CatalogType; + name: string; + directory: string; + versions: CatalogVersion[]; + children: CatalogNode[]; +}; + +type Options = { + showPaths: boolean; + showVersions: boolean; + target: string; +}; + +const collator = new Intl.Collator("ru", { + numeric: true, + sensitivity: "base", +}); + +function usage(): void { + console.log(`Использование: pnpm tree [параметры] [путь] + +Без пути выводится всё дерево каталога. Путь может указывать на папку категории, +программы или на её index.yaml. + + --versions вывести версии под каждой программой + --paths вывести относительные пути каталогов + --help показать эту справку`); +} + +function parseArguments(args: string[]): Options { + const targets: string[] = []; + let showPaths = false; + let showVersions = false; + + for (const argument of args) { + if (argument === "--paths") { + showPaths = true; + } else if (argument === "--versions") { + showVersions = true; + } else if (argument === "--help" || argument === "-h") { + usage(); + process.exit(0); + } else if (argument.startsWith("-")) { + throw new Error(`Неизвестный параметр: ${argument}`); + } else { + targets.push(argument); + } + } + + if (targets.length > 1) { + throw new Error("Можно указать только один путь"); + } + + return { + showPaths, + showVersions, + target: targets[0] ?? ".", + }; +} + +function compareNodes(left: CatalogNode, right: CatalogNode): number { + if (left.type !== right.type) { + return left.type === "category" ? -1 : 1; + } + return collator.compare(left.name, right.name); +} + +async function resolveDirectory(target: string): Promise { + const absoluteTarget = path.resolve(target); + const targetStat = await lstat(absoluteTarget); + + if (targetStat.isDirectory()) { + return absoluteTarget; + } + if (targetStat.isFile() && path.basename(absoluteTarget) === "index.yaml") { + return path.dirname(absoluteTarget); + } + throw new Error(`Ожидалась папка каталога или index.yaml: ${target}`); +} + +async function readCatalogNode(directory: string): Promise { + const indexPath = path.join(directory, "index.yaml"); + let source: string; + + try { + source = await readFile(indexPath, "utf8"); + } catch (error) { + const reason = error instanceof Error ? error.message : String(error); + throw new Error(`${indexPath}: не удалось прочитать index.yaml: ${reason}`); + } + + const document = parseDocument(source, { prettyErrors: true }); + if (document.errors.length > 0) { + const errors = document.errors.map((error) => error.message).join("; "); + throw new Error(`${indexPath}: ${errors}`); + } + + const data = document.toJS() as CatalogIndex; + if (data.type !== "category" && data.type !== "program") { + throw new Error(`${indexPath}: неизвестный type`); + } + if (typeof data.name !== "string" || data.name.length === 0) { + throw new Error(`${indexPath}: отсутствует название`); + } + + const versions = + data.type === "program" + ? (data.versions ?? []).map((entry, index) => { + if (typeof entry.version !== "string" || entry.version.length === 0) { + throw new Error(`${indexPath}: некорректная версия с индексом ${index}`); + } + if ( + entry.status !== undefined && + entry.status !== "current" && + entry.status !== "archived" + ) { + throw new Error(`${indexPath}: неизвестный статус версии ${entry.version}`); + } + return { version: entry.version, status: entry.status } as CatalogVersion; + }) + : []; + + const children: CatalogNode[] = []; + if (data.type === "category") { + const entries = await readdir(directory, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory()) { + continue; + } + + const childDirectory = path.join(directory, entry.name); + try { + const childIndexStat = await lstat(path.join(childDirectory, "index.yaml")); + if (childIndexStat.isFile()) { + children.push(await readCatalogNode(childDirectory)); + } + } catch (error) { + const code = (error as NodeJS.ErrnoException).code; + if (code !== "ENOENT") { + throw error; + } + } + } + } + + children.sort(compareNodes); + return { type: data.type, name: data.name, directory, versions, children }; +} + +function formatNode(node: CatalogNode, showPaths: boolean): string { + const categorySuffix = node.type === "category" ? "/" : ""; + if (!showPaths) { + return `${node.name}${categorySuffix}`; + } + + const relativePath = path.relative(process.cwd(), node.directory) || "."; + return `${node.name}${categorySuffix} [${relativePath}]`; +} + +function printChildren( + node: CatalogNode, + prefix: string, + options: Pick, +): void { + const entries: Array<{ label: string; node?: CatalogNode }> = node.children.map( + (child) => ({ label: formatNode(child, options.showPaths), node: child }), + ); + + if (options.showVersions && node.type === "program") { + entries.push( + ...node.versions.map(({ version, status }) => ({ + label: `версия ${version}${status === undefined ? "" : ` [${status}]`}`, + })), + ); + } + + entries.forEach((entry, index) => { + const last = index === entries.length - 1; + console.log(`${prefix}${last ? "└── " : "├── "}${entry.label}`); + if (entry.node !== undefined) { + printChildren(entry.node, `${prefix}${last ? " " : "│ "}`, options); + } + }); +} + +async function main(): Promise { + const options = parseArguments(process.argv.slice(2)); + const directory = await resolveDirectory(options.target); + const root = await readCatalogNode(directory); + + console.log(formatNode(root, options.showPaths)); + printChildren(root, "", options); +} + +try { + await main(); +} catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(`Ошибка: ${message}`); + process.exitCode = 1; +} diff --git a/service/drivers/index.yaml b/service/drivers/index.yaml new file mode 100644 index 0000000..c81937e --- /dev/null +++ b/service/drivers/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Драйверы +description: Драйверы устройств и кабелей для работы с мобильными телефонами. diff --git a/service/drivers/pl-2303/files/PL-2303_patched.rar b/service/drivers/pl-2303/files/PL-2303_patched.rar new file mode 100644 index 0000000..9862bed --- /dev/null +++ b/service/drivers/pl-2303/files/PL-2303_patched.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce4c19231e2e051a80267487c37062df0161569edc0f43013df7f6d1fa0565e6 +size 231854 diff --git a/service/drivers/pl-2303/index.yaml b/service/drivers/pl-2303/index.yaml new file mode 100644 index 0000000..da09f65 --- /dev/null +++ b/service/drivers/pl-2303/index.yaml @@ -0,0 +1,16 @@ +format: 1 +type: program +name: PL-2303 Driver +description: >- + Модифицированный Chaos драйвер для дата-кабелей на чипсете Prolific PL-2303. + В отличие от штатного драйвера он позволяет флешерам обмениваться данными с + телефоном на скорости до 1625000 бит/с. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "2.0.5.26" + files: + - path: files/PL-2303_patched.rar + description: Драйвер PL-2303 с поддержкой скорости до 1625000 бит/с + platform: win32 + sha256: ce4c19231e2e051a80267487c37062df0161569edc0f43013df7f6d1fa0565e6 diff --git a/service/firmware-tools/index.yaml b/service/firmware-tools/index.yaml new file mode 100644 index 0000000..b9228a1 --- /dev/null +++ b/service/firmware-tools/index.yaml @@ -0,0 +1,6 @@ +format: 1 +type: category +name: Инструменты прошивок +description: >- + Вспомогательные программы для анализа, распаковки и изменения файлов прошивок + и сервисных обновлений. diff --git a/service/firmware-tools/winswup/files/WSMPlus2.rar b/service/firmware-tools/winswup/files/WSMPlus2.rar new file mode 100644 index 0000000..93918c4 --- /dev/null +++ b/service/firmware-tools/winswup/files/WSMPlus2.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1eb247567a4b5b66b8f796e6e3012481d819c825f400693fb26eae8b79f785f +size 137632 diff --git a/service/firmware-tools/winswup/files/winswup-0.91-pre1.7z b/service/firmware-tools/winswup/files/winswup-0.91-pre1.7z new file mode 100644 index 0000000..80c77a3 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.91-pre1.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9254f44bc15d6e1027d96112860eb2b392d83de20b15a680037534704e460a9e +size 190868 diff --git a/service/firmware-tools/winswup/files/winswup-0.91-pre2.7z b/service/firmware-tools/winswup/files/winswup-0.91-pre2.7z new file mode 100644 index 0000000..ced6ce3 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.91-pre2.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c19ca1f49ab76f2c544adf0291d82172f1024c44606a1443bb365c588eced1 +size 177805 diff --git a/service/firmware-tools/winswup/files/winswup-0.91.7z b/service/firmware-tools/winswup/files/winswup-0.91.7z new file mode 100644 index 0000000..06e1acd --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.91.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ae4a7be7abc7f17fc6f0dd55d601da56226571aa8634dae38ba16f5f65b47ad +size 180291 diff --git a/service/firmware-tools/winswup/files/winswup-0.95-amd32.7z b/service/firmware-tools/winswup/files/winswup-0.95-amd32.7z new file mode 100644 index 0000000..166a556 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.95-amd32.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5df6de4c09f872f2175dd7fe26d456ce7cb1dba254bfe6e2b41bd47e6acc9482 +size 201184 diff --git a/service/firmware-tools/winswup/files/winswup-0.95.7z b/service/firmware-tools/winswup/files/winswup-0.95.7z new file mode 100644 index 0000000..b200ea2 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.95.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1792894d1a1efa7e95de3f747a86c1e5eefc00c8914a7e78859dabeac57c2a3 +size 215244 diff --git a/service/firmware-tools/winswup/files/winswup-0.97.7z b/service/firmware-tools/winswup/files/winswup-0.97.7z new file mode 100644 index 0000000..f4e0835 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.97.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cace85ee4ef5085b645855c502f74f18b11d8301c135c0f34442fc27c4b149c3 +size 622407 diff --git a/service/firmware-tools/winswup/files/winswup-0.98-pre.7z b/service/firmware-tools/winswup/files/winswup-0.98-pre.7z new file mode 100644 index 0000000..830af0b --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.98-pre.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd0e8b50fa2fdb33208eb0b73d69b04a94fbb8bc102fb99548fae0e98e83075f +size 196555 diff --git a/service/firmware-tools/winswup/files/winswup-0.98.7z b/service/firmware-tools/winswup/files/winswup-0.98.7z new file mode 100644 index 0000000..ade63af --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-0.98.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:754d3e84d6653c1ef69713e7de3163dc87cc9bef0a5427fe5c792d51a3a3e263 +size 205322 diff --git a/service/firmware-tools/winswup/files/winswup-1.04.7z b/service/firmware-tools/winswup/files/winswup-1.04.7z new file mode 100644 index 0000000..5d41559 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.04.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cea1c7c0b1db441a1d35e364716d71d64e30710b6165b980e7f883a2f7fb4343 +size 6176468 diff --git a/service/firmware-tools/winswup/files/winswup-1.23.7z b/service/firmware-tools/winswup/files/winswup-1.23.7z new file mode 100644 index 0000000..062c712 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.23.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2c65b13d9e88f0a7bcbfc44b25b9b1b2901c8c5186c617acbd849b6cab8f76c +size 168168 diff --git a/service/firmware-tools/winswup/files/winswup-1.27.7z b/service/firmware-tools/winswup/files/winswup-1.27.7z new file mode 100644 index 0000000..c1eb155 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.27.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:986eb13ce887f77ed5b15d29fd587edbdf4b6bc3f41a510ad540dc385ef9ee95 +size 470254 diff --git a/service/firmware-tools/winswup/files/winswup-1.28.7z b/service/firmware-tools/winswup/files/winswup-1.28.7z new file mode 100644 index 0000000..5b7dcdf --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.28.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:783d123f2ce62253dd3c697efc8a622d027dd34388db6165b6a682ecf44246d0 +size 468469 diff --git a/service/firmware-tools/winswup/files/winswup-1.30.7z b/service/firmware-tools/winswup/files/winswup-1.30.7z new file mode 100644 index 0000000..ee2a52b --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.30.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c12b5563409d9ff356299b5f7277ebeaaefe564b1cb71a7856636daf0156f690 +size 461270 diff --git a/service/firmware-tools/winswup/files/winswup-1.34.7z b/service/firmware-tools/winswup/files/winswup-1.34.7z new file mode 100644 index 0000000..4b8fc86 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.34.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15ee3c94cb31c01d877898456d8aceababd4e5f7cd1313b4adb9e1afed3d2af5 +size 220250 diff --git a/service/firmware-tools/winswup/files/winswup-1.35.7z b/service/firmware-tools/winswup/files/winswup-1.35.7z new file mode 100644 index 0000000..0324d37 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.35.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a947c38253e40502cee5019f62a5e9868a1f8e3661105a8a3a753187b5f92cc +size 228880 diff --git a/service/firmware-tools/winswup/files/winswup-1.40.7z b/service/firmware-tools/winswup/files/winswup-1.40.7z new file mode 100644 index 0000000..db84309 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.40.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19e6d4ff841c00445fc953268efbe98d69aba261f9204ee896917a4d28472a95 +size 949541 diff --git a/service/firmware-tools/winswup/files/winswup-1.44.7z b/service/firmware-tools/winswup/files/winswup-1.44.7z new file mode 100644 index 0000000..79b8be6 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-1.44.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:810f8f7b24ea27bd2c7e6746ea13ff8be4b7117fec46989a07c522d9eb60ef21 +size 730425 diff --git a/service/firmware-tools/winswup/files/winswup-3.002.7z b/service/firmware-tools/winswup/files/winswup-3.002.7z new file mode 100644 index 0000000..072bed7 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-3.002.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20dc66b4b95651633ed5a5ea9d55cda430bce7ed089ca4031626b60e86b88d41 +size 184530 diff --git a/service/firmware-tools/winswup/files/winswup-3.05.7z b/service/firmware-tools/winswup/files/winswup-3.05.7z new file mode 100644 index 0000000..813a89d --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-3.05.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:613b329574723539cc5ec38630977dc5ca0db14718330f4d1e09f73c8e8016e3 +size 2089945 diff --git a/service/firmware-tools/winswup/files/winswup-3.17.7z b/service/firmware-tools/winswup/files/winswup-3.17.7z new file mode 100644 index 0000000..47627c4 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-3.17.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a1e770a3f0f8c77108f6841b7d1fc605c41052f21cd734c3d5684bbdbdd1877 +size 3151337 diff --git a/service/firmware-tools/winswup/files/winswup-3.19.7z b/service/firmware-tools/winswup/files/winswup-3.19.7z new file mode 100644 index 0000000..8fb824d --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-3.19.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a797f2097ae96c678cc987b08fafd0b11b0c929e550751f8190b793f564dbc55 +size 3146606 diff --git a/service/firmware-tools/winswup/files/winswup-3.20.rar b/service/firmware-tools/winswup/files/winswup-3.20.rar new file mode 100644 index 0000000..e93bae1 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-3.20.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d497519b7f6c4bd95aacd93828f12d977110da86f612d7f55c3bcc2dc40e3677 +size 5612252 diff --git a/service/firmware-tools/winswup/files/winswup-4.07.7z b/service/firmware-tools/winswup/files/winswup-4.07.7z new file mode 100644 index 0000000..c26b1d6 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-4.07.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e27536eb975c6127ca7d61ac39d9edceb142fb3e4eaf91348992ea214f30d8f5 +size 1008836 diff --git a/service/firmware-tools/winswup/files/winswup-4.14p3.7z b/service/firmware-tools/winswup/files/winswup-4.14p3.7z new file mode 100644 index 0000000..8efdc10 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-4.14p3.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99a33142bb9b008a051bd6fe3212ffa3ccd9e38be3472059d5125dcd9783c21e +size 599244 diff --git a/service/firmware-tools/winswup/files/winswup-4.20.7z b/service/firmware-tools/winswup/files/winswup-4.20.7z new file mode 100644 index 0000000..e75a268 --- /dev/null +++ b/service/firmware-tools/winswup/files/winswup-4.20.7z @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d317695a4ab32856167370d3f7cd527bf09c9f34db13530e23de34700d6c3efe +size 1228159 diff --git a/service/firmware-tools/winswup/index.yaml b/service/firmware-tools/winswup/index.yaml new file mode 100644 index 0000000..41d3b51 --- /dev/null +++ b/service/firmware-tools/winswup/index.yaml @@ -0,0 +1,186 @@ +format: 1 +type: program +name: WinSwup +description: |- + Сервисная программа Siemens для обновления программного обеспечения + телефонов. В каталоге представлены исполняемые комплекты и developer-пакеты + с Update DLL, загрузчиками, библиотеками, заголовочными файлами, примерами и + документацией. +screenshots: [] +versions: + - version: "4.20-pre1" + status: current + released: "2006-05-08" + files: + - path: files/winswup-4.20.7z + description: Полный developer-пакет WinSwup 4.20 prerelease 1 с SDK, + документацией и утилитами + platform: win32 + sha256: d317695a4ab32856167370d3f7cd527bf09c9f34db13530e23de34700d6c3efe + - version: "4.14p3" + status: archived + files: + - path: files/winswup-4.14p3.7z + description: Developer-пакет WinSwup 4.14p3 для SL75 Escada + platform: win32 + sha256: 99a33142bb9b008a051bd6fe3212ffa3ccd9e38be3472059d5125dcd9783c21e + - version: "4.07" + status: archived + released: "2004-09-08" + files: + - path: files/winswup-4.07.7z + description: Полный developer-пакет WinSwup 4.07 с SDK и документацией + platform: win32 + sha256: e27536eb975c6127ca7d61ac39d9edceb142fb3e4eaf91348992ea214f30d8f5 + - version: "3.20" + status: current + files: + - path: files/winswup-3.20.rar + description: Прошивальщик для телефонов Siemens EGold и EGoldLite с + поддержкой XBI, XBZ и XFS + platform: win32 + sha256: d497519b7f6c4bd95aacd93828f12d977110da86f612d7f55c3bcc2dc40e3677 + - version: "3.19" + status: archived + files: + - path: files/winswup-3.19.7z + description: Полный developer-пакет WinSwup 3.19 для AL21 + platform: win32 + sha256: a797f2097ae96c678cc987b08fafd0b11b0c929e550751f8190b793f564dbc55 + - version: "3.17" + status: archived + files: + - path: files/winswup-3.17.7z + description: Полный developer-пакет WinSwup 3.17 с SDK и документацией + platform: win32 + sha256: 4a1e770a3f0f8c77108f6841b7d1fc605c41052f21cd734c3d5684bbdbdd1877 + - version: "3.05" + status: archived + files: + - path: files/winswup-3.05.7z + description: Полный предварительный пакет WinSwup 3.05 с SDK и документацией + platform: win32 + sha256: 613b329574723539cc5ec38630977dc5ca0db14718330f4d1e09f73c8e8016e3 + - version: "3.002" + status: archived + files: + - path: files/winswup-3.002.7z + description: Компактный исполняемый комплект WinSwup 3.002 + platform: win32 + sha256: 20dc66b4b95651633ed5a5ea9d55cda430bce7ed089ca4031626b60e86b88d41 + - version: "1.44" + status: archived + files: + - path: files/winswup-1.44.7z + description: Полный developer-пакет WinSwup 1.44 с SDK + platform: win32 + sha256: 810f8f7b24ea27bd2c7e6746ea13ff8be4b7117fec46989a07c522d9eb60ef21 + - version: "1.40" + status: archived + files: + - path: files/winswup-1.40.7z + description: Полный developer-пакет WinSwup 1.40 с SDK и документацией + platform: win32 + sha256: 19e6d4ff841c00445fc953268efbe98d69aba261f9204ee896917a4d28472a95 + - version: "1.35" + status: archived + files: + - path: files/winswup-1.35.7z + description: Исполняемый комплект WinSwup 1.35 с загрузчиком SGOLD + platform: win32 + sha256: 4a947c38253e40502cee5019f62a5e9868a1f8e3661105a8a3a753187b5f92cc + - version: "1.34" + status: archived + files: + - path: files/winswup-1.34.7z + description: Исполняемый комплект WinSwup 1.34 + platform: win32 + sha256: 15ee3c94cb31c01d877898456d8aceababd4e5f7cd1313b4adb9e1afed3d2af5 + - version: "1.30" + status: archived + files: + - path: files/winswup-1.30.7z + description: Полный developer-пакет WinSwup 1.30 с SDK + platform: win32 + sha256: c12b5563409d9ff356299b5f7277ebeaaefe564b1cb71a7856636daf0156f690 + - version: "1.28" + status: archived + files: + - path: files/winswup-1.28.7z + description: Полный developer-пакет WinSwup 1.28 с SDK + platform: win32 + sha256: 783d123f2ce62253dd3c697efc8a622d027dd34388db6165b6a682ecf44246d0 + - version: "1.27" + status: archived + files: + - path: files/winswup-1.27.7z + description: Полный developer-пакет WinSwup 1.27 с SDK + platform: win32 + sha256: 986eb13ce887f77ed5b15d29fd587edbdf4b6bc3f41a510ad540dc385ef9ee95 + - version: "1.23" + status: archived + files: + - path: files/winswup-1.23.7z + description: Исполняемый комплект WinSwup 1.23 + platform: win32 + sha256: d2c65b13d9e88f0a7bcbfc44b25b9b1b2901c8c5186c617acbd849b6cab8f76c + - version: "1.04" + status: archived + files: + - path: files/winswup-1.04.7z + description: Комплект WinSwup 1.04 с пакетами WC3I 2001 и 2008 + platform: win32 + sha256: cea1c7c0b1db441a1d35e364716d71d64e30710b6165b980e7f883a2f7fb4343 + - version: "0.98" + status: archived + files: + - path: files/winswup-0.98.7z + platform: win32 + sha256: 754d3e84d6653c1ef69713e7de3163dc87cc9bef0a5427fe5c792d51a3a3e263 + - version: "0.98-pre" + status: archived + files: + - path: files/winswup-0.98-pre.7z + platform: win32 + sha256: cd0e8b50fa2fdb33208eb0b73d69b04a94fbb8bc102fb99548fae0e98e83075f + - version: "0.97" + status: archived + files: + - path: files/winswup-0.97.7z + description: Комплект WinSwup 0.97 «Alle Produkte» с исходным ZIP-пакетом + platform: win32 + sha256: cace85ee4ef5085b645855c502f74f18b11d8301c135c0f34442fc27c4b149c3 + - version: "0.95" + status: archived + files: + - path: files/winswup-0.95.7z + description: Обычная сборка WinSwup 0.95 + platform: win32 + sha256: a1792894d1a1efa7e95de3f747a86c1e5eefc00c8914a7e78859dabeac57c2a3 + - path: files/winswup-0.95-amd32.7z + description: Сборка WinSwup 0.95 с комплектом DLL AMD32 + platform: win32 + sha256: 5df6de4c09f872f2175dd7fe26d456ce7cb1dba254bfe6e2b41bd47e6acc9482 + - version: "0.91" + status: archived + files: + - path: files/winswup-0.91.7z + platform: win32 + sha256: 7ae4a7be7abc7f17fc6f0dd55d601da56226571aa8634dae38ba16f5f65b47ad + - version: "0.91-pre2" + status: archived + files: + - path: files/winswup-0.91-pre2.7z + platform: win32 + sha256: c0c19ca1f49ab76f2c544adf0291d82172f1024c44606a1443bb365c588eced1 + - version: "0.91-pre1" + status: archived + files: + - path: files/winswup-0.91-pre1.7z + platform: win32 + sha256: 9254f44bc15d6e1027d96112860eb2b392d83de20b15a680037534704e460a9e +additional_files: + - path: files/WSMPlus2.rar + description: WinSwup Menu Plus 2 для включения дополнительных меню в сервисных SWUP + platform: win32 + sha256: b1eb247567a4b5b66b8f796e6e3012481d819c825f400693fb26eae8b79f785f diff --git a/service/firmware-tools/wsff/files/WSFF4.rar b/service/firmware-tools/wsff/files/WSFF4.rar new file mode 100644 index 0000000..61737eb --- /dev/null +++ b/service/firmware-tools/wsff/files/WSFF4.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e63fe5b665dad8322dbfab081b7c41bc0e40520d922d9a7d8166c5b53fe1b2c1 +size 162002 diff --git a/service/firmware-tools/wsff/index.yaml b/service/firmware-tools/wsff/index.yaml new file mode 100644 index 0000000..0ded6a3 --- /dev/null +++ b/service/firmware-tools/wsff/index.yaml @@ -0,0 +1,16 @@ +format: 1 +type: program +name: WSFF +description: |- + Утилита для анализа структуры и распаковки баз сервисных прошивок Siemens + WinSwup. +homepage: https://web.archive.org/web/20130825050857/http://papuas.allsiemens.com/ +screenshots: [] +versions: + - version: "4" + released: "2006-02-10" + files: + - path: files/WSFF4.rar + description: Программа WSFF4 + platform: win32 + sha256: e63fe5b665dad8322dbfab081b7c41bc0e40520d922d9a7d8166c5b53fe1b2c1 diff --git a/service/flashers/index.yaml b/service/flashers/index.yaml new file mode 100644 index 0000000..474c4be --- /dev/null +++ b/service/flashers/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Флешеры +description: Программы для чтения, записи и восстановления флеш-памяти телефонов. diff --git a/service/flashers/v-klay/files/v_klay_setup.zip b/service/flashers/v-klay/files/v_klay_setup.zip new file mode 100644 index 0000000..aa37896 --- /dev/null +++ b/service/flashers/v-klay/files/v_klay_setup.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ef29148ea0a6f9c0ef2cb9a09da992bd1063920d891878709b066b22707b80f +size 1691594 diff --git a/service/flashers/v-klay/files/v_klay_setup_v2152.rar b/service/flashers/v-klay/files/v_klay_setup_v2152.rar new file mode 100644 index 0000000..ee434ad --- /dev/null +++ b/service/flashers/v-klay/files/v_klay_setup_v2152.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc7c32ed37b9e75aa5316cef46661eb78240dd2911b89ba26ab30d88fff6d9a9 +size 2329332 diff --git a/service/flashers/v-klay/files/v_klay_setup_v25.zip b/service/flashers/v-klay/files/v_klay_setup_v25.zip new file mode 100644 index 0000000..5dc3e62 --- /dev/null +++ b/service/flashers/v-klay/files/v_klay_setup_v25.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d78f69d0750a8e0d93349049d4dac3361202ad8fedb9f5479ca9f95505d250db +size 2362704 diff --git a/service/flashers/v-klay/files/v_klay_setup_v272.zip b/service/flashers/v-klay/files/v_klay_setup_v272.zip new file mode 100644 index 0000000..dcc2c5c --- /dev/null +++ b/service/flashers/v-klay/files/v_klay_setup_v272.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4e31a5fd9cdfb6b5f3b2612116ad0ca575d281dc5e4c0c4f85bba6226985cde +size 2622662 diff --git a/service/flashers/v-klay/files/v_klay_update_v2112.rar b/service/flashers/v-klay/files/v_klay_update_v2112.rar new file mode 100644 index 0000000..8c61679 --- /dev/null +++ b/service/flashers/v-klay/files/v_klay_update_v2112.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b6e4fe30ea81ef3a07892b297772aba811d04b15e2a93c482eb3da7d74e3b72 +size 840128 diff --git a/service/flashers/v-klay/index.yaml b/service/flashers/v-klay/index.yaml new file mode 100644 index 0000000..0ae9542 --- /dev/null +++ b/service/flashers/v-klay/index.yaml @@ -0,0 +1,54 @@ +format: 1 +type: program +name: V_KLay +description: |- + Патчер, флешер и редактор раскладки клавиатуры для мобильных телефонов + Siemens. + + Возможности: + - чтение и запись flash-памяти телефона; + - установка и отмена патчей в формате VKP; + - изменение раскладки клавиатуры; + - подключение через Password Boot, Chaos BootPatch, Bootcore bug, Patched + bootcore и Test point; + - работа с телефоном без выключения в режиме online, если модель и прошивка + поддерживают такой способ; + - многоязычный интерфейс, включая русский и украинский языки. + + Версия 3.3 поддерживает Siemens 1168, 2118, 2128, 3118, 3618, 6618, 6688, + A35, A36, A40, A50, A52, A55, A60, A65, C30, C35, C45, C55, C60, C65, + CF62, CX65, M35, M50, M55, M65, MC60, ME45, MT50, S35, S40, S45, S55, + S65, SL42, SL45, SL55, SL65 и SX1. +homepage: https://web.archive.org/web/20130813164842/http://vi-soft.com.ua/ +screenshots: [] +versions: + - version: "3.3" + files: + - path: files/v_klay_setup.zip + description: Установочный пакет V_KLay 3.3 + platform: win32 + sha256: 9ef29148ea0a6f9c0ef2cb9a09da992bd1063920d891878709b066b22707b80f + - version: "2.7.2" + files: + - path: files/v_klay_setup_v272.zip + description: Установочный пакет V_KLay 2.7.2 + platform: win32 + sha256: f4e31a5fd9cdfb6b5f3b2612116ad0ca575d281dc5e4c0c4f85bba6226985cde + - version: "2.5" + files: + - path: files/v_klay_setup_v25.zip + description: Установочный пакет V_KLay 2.5 + platform: win32 + sha256: d78f69d0750a8e0d93349049d4dac3361202ad8fedb9f5479ca9f95505d250db + - version: "2.1.12" + files: + - path: files/v_klay_update_v2112.rar + description: Обновление до V_KLay 2.1.12 + platform: win32 + sha256: 5b6e4fe30ea81ef3a07892b297772aba811d04b15e2a93c482eb3da7d74e3b72 + - version: "2.1.5.2" + files: + - path: files/v_klay_setup_v2152.rar + description: Англоязычный установочный пакет V_KLay 2.1.5.2 + platform: win32 + sha256: bc7c32ed37b9e75aa5316cef46661eb78240dd2911b89ba26ab30d88fff6d9a9 diff --git a/service/flashers/x65flasher/files/bsReader.zip b/service/flashers/x65flasher/files/bsReader.zip new file mode 100644 index 0000000..226e254 --- /dev/null +++ b/service/flashers/x65flasher/files/bsReader.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7c38947a9e042b0a9107760d79b3f5f6daa95a71b33c26d219453c80d943f55 +size 61749 diff --git a/service/flashers/x65flasher/files/px75v1.rar b/service/flashers/x65flasher/files/px75v1.rar new file mode 100644 index 0000000..0a1ad1d --- /dev/null +++ b/service/flashers/x65flasher/files/px75v1.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64fd3cca1fcb253a43f1c2101256a0050731598c6c35a0805d6a874c5893ce5c +size 39784 diff --git a/service/flashers/x65flasher/files/x65flasher-2103.rar b/service/flashers/x65flasher/files/x65flasher-2103.rar new file mode 100644 index 0000000..922bd1d --- /dev/null +++ b/service/flashers/x65flasher/files/x65flasher-2103.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5ba3574b1f5a774948a8d62dc7fb51ef05b762d27e3000c0e5ba38360d4f41 +size 423000 diff --git a/service/flashers/x65flasher/index.yaml b/service/flashers/x65flasher/index.yaml new file mode 100644 index 0000000..ef0896e --- /dev/null +++ b/service/flashers/x65flasher/index.yaml @@ -0,0 +1,32 @@ +format: 1 +type: program +name: x65flasher +description: |- + Флешер для телефонов Siemens 65–75-й серии и мидлеты для поиска boot-ключей. + + Возможности: + - чтение и запись flash-памяти телефона; + - резервное копирование и восстановление как всего fullflash, так и отдельных + частей: файловой системы, прошивки и EEPROM; + - просмотр карты flash-памяти; + - работа на скорости от 57600 до 1600000 бит/с; + - генерация загрузчиков для V_Klay. +homepage: https://web.archive.org/web/20130813164842/http://chaos.allsiemens.com/software.html +screenshots: [] +versions: + - version: "2.103" + released: "2006-12-06" + files: + - path: files/x65flasher-2103.rar + description: Флешер, документация и вспомогательные мидлеты + platform: win32 + sha256: ad5ba3574b1f5a774948a8d62dc7fb51ef05b762d27e3000c0e5ba38360d4f41 +additional_files: + - path: files/px75v1.rar + description: Мидлет для получения HASH и ESN на младших моделях телефонов + platform: j2me + sha256: 64fd3cca1fcb253a43f1c2101256a0050731598c6c35a0805d6a874c5893ce5c + - path: files/bsReader.zip + description: Мидлет для получения HASH и ESN на S75, SL75 и BenQ-Siemens + platform: j2me + sha256: e7c38947a9e042b0a9107760d79b3f5f6daa95a71b33c26d219453c80d943f55 diff --git a/service/index.yaml b/service/index.yaml new file mode 100644 index 0000000..a8477e5 --- /dev/null +++ b/service/index.yaml @@ -0,0 +1,4 @@ +format: 1 +type: category +name: Сервисные программы +description: Программы для диагностики, обслуживания и восстановления телефонов. diff --git a/service/repair-tools/index.yaml b/service/repair-tools/index.yaml new file mode 100644 index 0000000..9fef34d --- /dev/null +++ b/service/repair-tools/index.yaml @@ -0,0 +1,6 @@ +format: 1 +type: category +name: Ремонт и восстановление +description: >- + Сервисные программы для диагностики, восстановления и ремонта программной + части телефонов. diff --git a/service/repair-tools/joker/files/JokerSorceV0341.rar b/service/repair-tools/joker/files/JokerSorceV0341.rar new file mode 100644 index 0000000..775d2be --- /dev/null +++ b/service/repair-tools/joker/files/JokerSorceV0341.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6e539597dbe6d8af1e6a813a305ea30322e561ec5a9786aadba520d9c1963c5 +size 129019 diff --git a/service/repair-tools/joker/files/JokerV0295.rar b/service/repair-tools/joker/files/JokerV0295.rar new file mode 100644 index 0000000..6ac3686 --- /dev/null +++ b/service/repair-tools/joker/files/JokerV0295.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37a8805c5731ce74aa99b11c5f90580bce39b96c95b36cbd8adb72008df25e30 +size 206353 diff --git a/service/repair-tools/joker/index.yaml b/service/repair-tools/joker/index.yaml new file mode 100644 index 0000000..c059fa8 --- /dev/null +++ b/service/repair-tools/joker/index.yaml @@ -0,0 +1,38 @@ +format: 1 +type: program +name: Joker +description: |- + Сервисная программа для восстановления программных неисправностей телефонов + Siemens на платформе EGOLD с помощью обычного кабеля с минимальными + доработками. Поддерживаются A50–A75, AX72/AX75, C55/C56/C60, CF62/CF110, + M55, MC60, S55/S56, SL55, SX1 и совместимые модели. + + Возможности: + - чтение информации о телефоне и работа в режимах BFB и Service mode; + - чтение и запись FullFlash и отдельных flash-сегментов; + - резервное копирование и восстановление EEPROM и секретных блоков; + - вычисление и сохранение SKEY, BKEY, ESN, HASH и мастер-кодов; + - пересчёт ключей после записи FullFlash от другого аппарата; + - подготовка BCORE, устранение Freeze и дефрагментация EEPROM; + - автоматическое определение flash-памяти и контроль CRC при операциях записи. + + Перед записью автор рекомендует обязательно сохранить ESN, HASH и полный + FullFlash рабочего телефона. Программа создавалась как экспериментальный + ремонтный инструмент; часть операций требует TestPoint. +homepage: https://web.archive.org/web/20130825050857/http://papuas.allsiemens.com/Joker.htm +screenshots: [] +versions: + - version: "0.3.4.1" + released: "2006-01-25" + files: + - path: files/JokerSorceV0341.rar + description: Исходный код Joker 0.3.4.1 для Borland Delphi + platform: win32 + sha256: b6e539597dbe6d8af1e6a813a305ea30322e561ec5a9786aadba520d9c1963c5 + - version: "0.2.9.5" + released: "2005-11-25" + files: + - path: files/JokerV0295.rar + description: Исполняемая программа Joker 0.2.9.5 + platform: win32 + sha256: 37a8805c5731ce74aa99b11c5f90580bce39b96c95b36cbd8adb72008df25e30 diff --git a/service/repair-tools/siemens-eeprom-tool/files/SiemensEEPROMtool315plus.rar b/service/repair-tools/siemens-eeprom-tool/files/SiemensEEPROMtool315plus.rar new file mode 100644 index 0000000..3c15be3 --- /dev/null +++ b/service/repair-tools/siemens-eeprom-tool/files/SiemensEEPROMtool315plus.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75249994aceab0836cfe26820f110dcaf61f411986b7d600d51ca57496d83e16 +size 76448 diff --git a/service/repair-tools/siemens-eeprom-tool/index.yaml b/service/repair-tools/siemens-eeprom-tool/index.yaml new file mode 100644 index 0000000..3df31f1 --- /dev/null +++ b/service/repair-tools/siemens-eeprom-tool/index.yaml @@ -0,0 +1,20 @@ +format: 1 +type: program +name: Siemens EEPROM Tool +description: |- + Редактор файлов EEPROM телефонов Siemens. Используется совместно с + x65PapuaUtils и Joker для восстановления программно неисправных аппаратов, + работы с резервными копиями блоков EEPROM и исправления их содержимого. + + Номер `3.01.0005` получен из ресурса версии исполняемого файла; имя исходного + архива — `SiemensEEPROMtool315plus.rar`. +homepage: https://web.archive.org/web/20130825050857/http://papuas.allsiemens.com/ +screenshots: [] +versions: + - version: "3.01.0005" + released: "2004-12-26" + files: + - path: files/SiemensEEPROMtool315plus.rar + description: Программа Siemens EEPROM Tool + platform: win32 + sha256: 75249994aceab0836cfe26820f110dcaf61f411986b7d600d51ca57496d83e16 diff --git a/service/repair-tools/x65-papua-utils/files/AllBugSGold.rar b/service/repair-tools/x65-papua-utils/files/AllBugSGold.rar new file mode 100644 index 0000000..d2677e5 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/AllBugSGold.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e743043a1a9c1ebc7e5cfe2fb92ba19f3cfd491e1cfcfc53667bd4b5cb8b1aae +size 449428 diff --git a/service/repair-tools/x65-papua-utils/files/SWP2.rar b/service/repair-tools/x65-papua-utils/files/SWP2.rar new file mode 100644 index 0000000..c076b7a --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/SWP2.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5bf27c1023637716bdbb1b47ff14da52dbe1145ec7b282d2cc949bb9a887e42 +size 256546 diff --git a/service/repair-tools/x65-papua-utils/files/SWP3.rar b/service/repair-tools/x65-papua-utils/files/SWP3.rar new file mode 100644 index 0000000..85845ab --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/SWP3.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8d28fcfb54ee5888e7b20dbcdcc06e43f8c8e5049a5a3dae829c1cc3d9b60de +size 278635 diff --git a/service/repair-tools/x65-papua-utils/files/SWPEXE.rar b/service/repair-tools/x65-papua-utils/files/SWPEXE.rar new file mode 100644 index 0000000..2870e21 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/SWPEXE.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4406effbdfc740ef0a9a0fc35bfa578eb31facd54af64856addc824552bf56fa +size 127296 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV036.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV036.rar new file mode 100644 index 0000000..0ff74d4 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV036.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fc8dabb213982cd6efc7b082a4bd15e55703920f86b6b3f75cba35b4d846d18 +size 349275 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV038.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV038.rar new file mode 100644 index 0000000..93a1d7f --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV038.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:934e1dfc639b169739e91148e4c776bed45b55fecb8f0de5e1572161927d013e +size 350969 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV041.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV041.rar new file mode 100644 index 0000000..1519e97 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV041.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e75d16376506c1058cfbaf5c23bfe936a6e951b9f6e8aa673bc805e1f7bff874 +size 317749 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV043.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV043.rar new file mode 100644 index 0000000..6fdebce --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV043.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:122b60beb4754b10f07f66eb2de3c00ff2e1d0fc5755b8c977486943235062fc +size 321272 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV044.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV044.rar new file mode 100644 index 0000000..1e33c1b --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV044.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df538d7444014bb1d03b088911e0fbd67e90087f441e891b2c1c6890b184101f +size 320982 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV045.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV045.rar new file mode 100644 index 0000000..5940535 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV045.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:011df539dc179731d8e860752ce433266d4fb4e0616d50f5b406f58c24929f24 +size 328595 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV046.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV046.rar new file mode 100644 index 0000000..6083638 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV046.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac7fa346ec3bb951e8ded2412a9fb8079435af6baf5c1a6b69f90a07fa197e7f +size 329505 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV047.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV047.rar new file mode 100644 index 0000000..6fc890a --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV047.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0921d459063ede951daa1a813c4efcb01b8cbee86c778587077e619f9974ccb +size 331456 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV048.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV048.rar new file mode 100644 index 0000000..ae7fedb --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV048.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d443a7931d9256b26db52e9e0cfe60baaf95a1214219a492f58829a0846b8a3 +size 330453 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV050.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV050.rar new file mode 100644 index 0000000..7446bb9 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV050.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:874e8e209294bdc76394e20d05547cdf616c8752b72d8594e35fe650a5e48610 +size 330644 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV051.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV051.rar new file mode 100644 index 0000000..865f3d8 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV051.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f7bda62da5ac752239041d4842ae5ee260b462868a4d0907bbfd35b5e2b2dbc +size 331606 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV054.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV054.rar new file mode 100644 index 0000000..cefdf5d --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV054.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e86772910a36b21664e5c06843b0154b8a1ceb3cd905187906c8b211db42b370 +size 477217 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV055.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV055.rar new file mode 100644 index 0000000..a952a3b --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV055.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7d32065e5d13b376fca635919841c4ac48c1e878a2d33ac239bb100aa803a85 +size 477302 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV056.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV056.rar new file mode 100644 index 0000000..abab165 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV056.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fc712572c3d6e84b82765fc6a71e9837a2d2bddaf3d0846d105611902a66926 +size 481404 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV060.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV060.rar new file mode 100644 index 0000000..174186c --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV060.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38f15d7b1fe7b49712682e0aaed0b731e070fa8c95bf2b4990a442684fc4d05c +size 527737 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV062.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV062.rar new file mode 100644 index 0000000..b279b13 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV062.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5eadfa0b4d67116e35d2fa5a0abaefc905060e06411b8abf0280ee37db5c07 +size 396015 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV064.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV064.rar new file mode 100644 index 0000000..111c686 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV064.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e175ef0711763b6905b9482eac94d197c3691a2c7d96109ad4be17ed8810c889 +size 397263 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV065.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV065.rar new file mode 100644 index 0000000..3638629 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV065.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c859e29478758ad558d29ac9ec562f14467b89487048bd4ab9941b6be04975 +size 398848 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV066.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV066.rar new file mode 100644 index 0000000..ed01081 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV066.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4bd9c397caa1b95edd68ebf0afce45e3dde51220c2567a6217170fd48b54a5f +size 399470 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV067c.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV067c.rar new file mode 100644 index 0000000..3abb5e0 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV067c.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bed53e2f20e8e8612093457de6d1e3729fadf08f78d277ebdd7e311a40b24965 +size 399655 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV068.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV068.rar new file mode 100644 index 0000000..efd9bb3 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV068.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fff633734b473fad335b8cedf4958ff3128321324127739ab78357da275f35c +size 399815 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV069.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV069.rar new file mode 100644 index 0000000..cca3910 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV069.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ece0d737a855b69bdfd931c8e14af6a7d3895c4c2685e714380c50c96dc99db +size 399694 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV070.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV070.rar new file mode 100644 index 0000000..cd04102 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV070.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc8574961048d3eb98b14c555fcb49836a1cdc90166f8a14c7ba9f3445645ca +size 397908 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV074.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV074.rar new file mode 100644 index 0000000..5ba74cb --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV074.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41f39790bc07e692e13dcd1eb744215f4091e5c7345815caa7be1df6c6e179ac +size 469388 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV075.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV075.rar new file mode 100644 index 0000000..23862ed --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV075.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2af3b05f56e147e957d5ad34fb895292a4bd62f7e6eccdd3d9dfdca9750cc430 +size 470383 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV076b.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV076b.rar new file mode 100644 index 0000000..ec16c77 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV076b.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f35a1e5b10dbc2309b25f1ff65ff05f12708c3148c9f3eb84c0cae9fff6e69fb +size 470068 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV077.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV077.rar new file mode 100644 index 0000000..4f20cbb --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV077.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d84b245b50465cb2274bbb53c88221be04e450ec1a1baf715e6c329eacf52d7 +size 473015 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV078.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV078.rar new file mode 100644 index 0000000..81fef9a --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV078.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67736ce7e6f0612c428a2b1afadea9cd0096d59e62eea777f9698713e2a5879b +size 446927 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV079d.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV079d.rar new file mode 100644 index 0000000..8968f01 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV079d.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19c66d8de5ffbada50d589150fb755d940bcca40e7d7cf87c54a1588bc697b81 +size 525033 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111b.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111b.rar new file mode 100644 index 0000000..6470a6e --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111b.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5bcbbe5b4e8cdf44319c0ce7aa8e943f6bf2a408239c0310b8c955a83f238d5 +size 625333 diff --git a/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111c_rus.rar b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111c_rus.rar new file mode 100644 index 0000000..34f0230 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/files/x65PapuaUtilsV111c_rus.rar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40422af6400b8b03fe86dd872bd09362975f667f6dbdd7de2475e4fbe3bb4c01 +size 632114 diff --git a/service/repair-tools/x65-papua-utils/index.yaml b/service/repair-tools/x65-papua-utils/index.yaml new file mode 100644 index 0000000..356a0e6 --- /dev/null +++ b/service/repair-tools/x65-papua-utils/index.yaml @@ -0,0 +1,259 @@ +format: 1 +type: program +name: x65PapuaUtils +description: |- + Комплексная сервисная программа для телефонов Siemens на платформе SGOLD: + моделей семейств R65, X65, X75 и X85, включая S65, S68, S75, SL65, SL75, + M65, M75, ME75, CX65, CX70, CX75, C65, C72, C75 и их варианты. + + Возможности: + - получение сведений о телефоне, ESN, HASH, SKEY и BootKey; + - перевод телефона в сервисный режим и работа через загрузчики; + - чтение и запись flash-памяти, создание полного бэкапа и восстановление BCORE; + - чтение, сохранение и восстановление EEPROM, генерация и пересчёт секретных + блоков и ключей; + - создание загрузчиков для V_KLay; + - преобразование FullFlash и отдельных сегментов в XBI и UserSwup, а также + извлечение XBZ/XBZI из сервисных WinSwup; + - тестирование RAM и шин ExtRAM/ROM, работа с камерой и проверка звука; + - восстановление программно неисправных аппаратов с помощью обычного кабеля; + для первой записи BCORE в полностью неработающий телефон требуется TestPoint. + + Автор предупреждает, что методы и поддержка отдельных моделей носили + экспериментальный характер. Перед операциями записи следует сохранить ESN, + HASH и полный FullFlash исправного телефона. +homepage: https://web.archive.org/web/20130825050857/http://papuas.allsiemens.com/PapuaUtils.htm +screenshots: [] +versions: + - version: "1.1.1c" + description: Отличается от версии 1.1.1b русским языком интерфейса. + files: + - path: files/x65PapuaUtilsV111c_rus.rar + platform: win32 + sha256: 40422af6400b8b03fe86dd872bd09362975f667f6dbdd7de2475e4fbe3bb4c01 + - version: "1.1.1b" + files: + - path: files/x65PapuaUtilsV111b.rar + description: Программа x65PapuaUtils 1.1.1b + platform: win32 + sha256: c5bcbbe5b4e8cdf44319c0ce7aa8e943f6bf2a408239c0310b8c955a83f238d5 + - version: "0.7.9d" + released: "2006-04-08" + files: + - path: files/x65PapuaUtilsV079d.rar + description: Программа x65PapuaUtils 0.7.9d + platform: win32 + sha256: 19c66d8de5ffbada50d589150fb755d940bcca40e7d7cf87c54a1588bc697b81 + - version: "0.7.8" + released: "2006-03-16" + files: + - path: files/x65PapuaUtilsV078.rar + description: Программа x65PapuaUtils 0.7.8 + platform: win32 + sha256: 67736ce7e6f0612c428a2b1afadea9cd0096d59e62eea777f9698713e2a5879b + - version: "0.7.7" + released: "2006-02-23" + files: + - path: files/x65PapuaUtilsV077.rar + description: Программа x65PapuaUtils 0.7.7 + platform: win32 + sha256: 4d84b245b50465cb2274bbb53c88221be04e450ec1a1baf715e6c329eacf52d7 + - version: "0.7.6b" + released: "2006-02-09" + files: + - path: files/x65PapuaUtilsV076b.rar + description: Программа x65PapuaUtils 0.7.6b + platform: win32 + sha256: f35a1e5b10dbc2309b25f1ff65ff05f12708c3148c9f3eb84c0cae9fff6e69fb + - version: "0.7.5c" + released: "2006-01-16" + files: + - path: files/x65PapuaUtilsV075.rar + description: Программа x65PapuaUtils 0.7.5c + platform: win32 + sha256: 2af3b05f56e147e957d5ad34fb895292a4bd62f7e6eccdd3d9dfdca9750cc430 + - version: "0.7.4" + released: "2005-12-31" + files: + - path: files/x65PapuaUtilsV074.rar + description: Программа x65PapuaUtils 0.7.4 + platform: win32 + sha256: 41f39790bc07e692e13dcd1eb744215f4091e5c7345815caa7be1df6c6e179ac + - version: "0.7.0" + released: "2005-12-17" + files: + - path: files/x65PapuaUtilsV070.rar + description: Программа x65PapuaUtils 0.7.0 + platform: win32 + sha256: 0bc8574961048d3eb98b14c555fcb49836a1cdc90166f8a14c7ba9f3445645ca + - version: "0.6.9" + released: "2005-11-26" + files: + - path: files/x65PapuaUtilsV069.rar + description: Программа x65PapuaUtils 0.6.9 + platform: win32 + sha256: 3ece0d737a855b69bdfd931c8e14af6a7d3895c4c2685e714380c50c96dc99db + - version: "0.6.8" + released: "2005-11-18" + files: + - path: files/x65PapuaUtilsV068.rar + description: Программа x65PapuaUtils 0.6.8 + platform: win32 + sha256: 9fff633734b473fad335b8cedf4958ff3128321324127739ab78357da275f35c + - version: "0.6.7c" + released: "2005-11-13" + files: + - path: files/x65PapuaUtilsV067c.rar + description: Программа x65PapuaUtils 0.6.7c + platform: win32 + sha256: bed53e2f20e8e8612093457de6d1e3729fadf08f78d277ebdd7e311a40b24965 + - version: "0.6.6b" + released: "2005-10-14" + files: + - path: files/x65PapuaUtilsV066.rar + description: Программа x65PapuaUtils 0.6.6b + platform: win32 + sha256: d4bd9c397caa1b95edd68ebf0afce45e3dde51220c2567a6217170fd48b54a5f + - version: "0.6.5" + released: "2005-10-11" + files: + - path: files/x65PapuaUtilsV065.rar + description: Программа x65PapuaUtils 0.6.5 + platform: win32 + sha256: 32c859e29478758ad558d29ac9ec562f14467b89487048bd4ab9941b6be04975 + - version: "0.6.4" + released: "2005-10-04" + files: + - path: files/x65PapuaUtilsV064.rar + description: Программа x65PapuaUtils 0.6.4 + platform: win32 + sha256: e175ef0711763b6905b9482eac94d197c3691a2c7d96109ad4be17ed8810c889 + - version: "0.6.2" + released: "2005-10-02" + files: + - path: files/x65PapuaUtilsV062.rar + description: Программа x65PapuaUtils 0.6.2 + platform: win32 + sha256: 2c5eadfa0b4d67116e35d2fa5a0abaefc905060e06411b8abf0280ee37db5c07 + - version: "0.6.0" + released: "2005-09-26" + files: + - path: files/x65PapuaUtilsV060.rar + description: Программа x65PapuaUtils 0.6.0 + platform: win32 + sha256: 38f15d7b1fe7b49712682e0aaed0b731e070fa8c95bf2b4990a442684fc4d05c + - version: "0.5.6" + released: "2005-09-22" + files: + - path: files/x65PapuaUtilsV056.rar + description: Программа x65PapuaUtils 0.5.6 + platform: win32 + sha256: 1fc712572c3d6e84b82765fc6a71e9837a2d2bddaf3d0846d105611902a66926 + - version: "0.5.5" + released: "2005-09-20" + files: + - path: files/x65PapuaUtilsV055.rar + description: Программа x65PapuaUtils 0.5.5 + platform: win32 + sha256: c7d32065e5d13b376fca635919841c4ac48c1e878a2d33ac239bb100aa803a85 + - version: "0.5.4" + released: "2005-09-19" + files: + - path: files/x65PapuaUtilsV054.rar + description: Программа x65PapuaUtils 0.5.4 + platform: win32 + sha256: e86772910a36b21664e5c06843b0154b8a1ceb3cd905187906c8b211db42b370 + - version: "0.5.1" + released: "2005-08-26" + files: + - path: files/x65PapuaUtilsV051.rar + description: Программа x65PapuaUtils 0.5.1 + platform: win32 + sha256: 2f7bda62da5ac752239041d4842ae5ee260b462868a4d0907bbfd35b5e2b2dbc + - version: "0.5.0" + released: "2005-08-16" + files: + - path: files/x65PapuaUtilsV050.rar + description: Программа x65PapuaUtils 0.5.0 + platform: win32 + sha256: 874e8e209294bdc76394e20d05547cdf616c8752b72d8594e35fe650a5e48610 + - version: "0.4.8a" + released: "2005-07-19" + files: + - path: files/x65PapuaUtilsV048.rar + description: Программа x65PapuaUtils 0.4.8a + platform: win32 + sha256: 8d443a7931d9256b26db52e9e0cfe60baaf95a1214219a492f58829a0846b8a3 + - version: "0.4.7r" + released: "2005-07-11" + files: + - path: files/x65PapuaUtilsV047.rar + description: Программа x65PapuaUtils 0.4.7r + platform: win32 + sha256: f0921d459063ede951daa1a813c4efcb01b8cbee86c778587077e619f9974ccb + - version: "0.4.6" + released: "2005-07-01" + files: + - path: files/x65PapuaUtilsV046.rar + description: Программа x65PapuaUtils 0.4.6 + platform: win32 + sha256: ac7fa346ec3bb951e8ded2412a9fb8079435af6baf5c1a6b69f90a07fa197e7f + - version: "0.4.5b" + released: "2005-06-30" + files: + - path: files/x65PapuaUtilsV045.rar + description: Программа x65PapuaUtils 0.4.5b + platform: win32 + sha256: 011df539dc179731d8e860752ce433266d4fb4e0616d50f5b406f58c24929f24 + - version: "0.4.4a" + released: "2005-06-24" + files: + - path: files/x65PapuaUtilsV044.rar + description: Программа x65PapuaUtils 0.4.4a + platform: win32 + sha256: df538d7444014bb1d03b088911e0fbd67e90087f441e891b2c1c6890b184101f + - version: "0.4.3" + released: "2005-06-19" + files: + - path: files/x65PapuaUtilsV043.rar + description: Программа x65PapuaUtils 0.4.3 + platform: win32 + sha256: 122b60beb4754b10f07f66eb2de3c00ff2e1d0fc5755b8c977486943235062fc + - version: "0.4.1g" + released: "2005-06-07" + files: + - path: files/x65PapuaUtilsV041.rar + description: Программа x65PapuaUtils 0.4.1g + platform: win32 + sha256: e75d16376506c1058cfbaf5c23bfe936a6e951b9f6e8aa673bc805e1f7bff874 + - version: "0.3.8d" + released: "2005-06-01" + files: + - path: files/x65PapuaUtilsV038.rar + description: Программа x65PapuaUtils 0.3.8d + platform: win32 + sha256: 934e1dfc639b169739e91148e4c776bed45b55fecb8f0de5e1572161927d013e + - version: "0.3.6" + released: "2005-05-28" + files: + - path: files/x65PapuaUtilsV036.rar + description: Программа x65PapuaUtils 0.3.6 и FAQ + platform: win32 + sha256: 0fc8dabb213982cd6efc7b082a4bd15e55703920f86b6b3f75cba35b4d846d18 +additional_files: + - path: files/SWP3.rar + description: Файлы SWP 4.15 и 4.14 для создания UserSwup в новых версиях программы + platform: win32 + sha256: f8d28fcfb54ee5888e7b20dbcdcc06e43f8c8e5049a5a3dae829c1cc3d9b60de + - path: files/SWP2.rar + description: Файлы SWP 4.14 и 4.12 для создания UserSwup + platform: win32 + sha256: d5bf27c1023637716bdbb1b47ff14da52dbe1145ec7b282d2cc949bb9a887e42 + - path: files/SWPEXE.rar + description: Файл SWPEXE 4.09 для создания UserSwup в версиях ниже 0.7.4 + platform: win32 + sha256: 4406effbdfc740ef0a9a0fc35bfa578eb31facd54af64856addc824552bf56fa + - path: files/AllBugSGold.rar + description: Интерактивная видеоинструкция по устранению программных неисправностей SGOLD + platform: win32 + sha256: e743043a1a9c1ebc7e5cfe2fb92ba19f3cfd491e1cfcfc53667bd4b5cb8b1aae diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3cb0ea5 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "noEmit": true, + "skipLibCheck": true, + "types": ["node"] + }, + "include": ["scripts/**/*.ts"] +}