Personal firmware for the Xteink X4 Pro e-reader, a fork of CrossPoint Reader 1.6.5, paired with the iOS companion app FolioLink. Документация ниже — на русском.
Folio — «библиотека в кармане»: главный экран с текущей книгой и календарём чтения, статистика, полки, выделения, личный словарь, заставки-дашборды и управление читалкой с телефона.
✅ Проверено на железе: релиз v0.1.0 установлен на Xteink X4 Pro веб-установщиком crosspointreader.com (Custom .bin) 26.09.2026 — загружается и работает в штатном режиме.
Это личный проект: пользуйтесь на свой риск и сначала сохраните резервную копию флеш-памяти.
⬇ Скачать прошивку — файл folio-<версия>-x4pro.bin в разделе Assets.
| Где | Что |
|---|---|
| Главный экран | «Продолжить чтение» (обложка, прогресс, оценка оставшегося времени по личной скорости), недавние книги, календарь чтения, панель Библиотека · Полки · Статистика · Меню. Обложки кешируются в PSRAM, перемещение фокуса перерисовывает только рамку. Классический экран — настройка folioHome. |
| Статистика | Журнал сессий (активное время, страницы) → сегодня против цели, серия дней, рекорд, итоги, календарь-heatmap. |
| Полки и статусы | Полки создаются в приложении и видны на читалке. Статусы ставятся сами: открыл — «Читаю», дочитал — «Прочитано». |
| Выделения | Меню читалки → «Выделить» (кнопками или касанием, долгое нажатие на слово) → сохраняется с главой и позицией. В тексте выделения видны на светло-сером фоне (настройка «Показывать выделения в тексте»). Из списка «Выделения» можно перейти к месту в книге. |
| Личный словарь | Каждое найденное в словаре слово записывается с контекстом. |
| Заставки | «Дашборд» (книга, прогресс, цель, серия, календарь) и «Цитата» (случайное выделение). |
| Связь с телефоном | Wi-Fi: Bonjour _inklink._tcp, API /api/inklink/v1; сопряжение по 6-значному PIN, изменения только с токеном. Bluetooth LE: фоновая синхронизация статистики, прогресса, выделений. |
| Обновление | Образы подписываются ed25519; из приложения и по OTA ставятся только подписанные релизы этого репозитория, установка подтверждается на читалке. |
| Язык | Русский перевод дописан для всех строк Folio и 61 строки upstream. |
Данные Folio лежат на SD в /.crosspoint/inklink/ обычным текстом (JSON/JSONL) — их легко сохранить.
python3 -m venv ../.venv && ../.venv/bin/pip install platformio
git submodule update --init --recursive
../.venv/bin/pio run -e x4pro # образ: .pio/build/x4pro/firmware.binСимулятор на Mac (SDL2: brew install sdl2; форк симулятора ожидается в ../simulator):
../.venv/bin/pio run -e simulator_x4_pro
CROSSPOINT_SIM_HTTP_PORT=18080 .pio/build/simulator_x4_pro/program- CI (
.github/workflows/build.yml) собираетx4proна каждый push вmain. - Публикация релиза
vX.Y.Z(совпадает с[folio] versionвplatformio.ini) запускаетrelease.yml: ассетыfolio-X.Y.Z-x4pro.bin,.sha256и.sig. - Подпись: ed25519 над
"FOLIO-FW-v1\n" + SHA-256(образа), 64 байта в.bin.sig. Публичный ключ встроен в прошивку и приложение. Если секретFOLIO_SIGNING_KEYв репозитории не задан, релиз подписывается локально:tools/inklink/sign_release.sh vX.Y.Z.
- Страховка. Сохраните полную копию флеш-памяти (crosspointreader.com → Debug → Read flash). У X4 Pro нет кнопки Back, поэтому комбинация восстановления Back+Up не работает — в прошивке кнопка recovery — Down.
- Первая установка по USB-C:
pio run -e x4pro -t uploadили веб-флешер с файломfirmware.bin. Новый образ подтверждается после 10 секунд нормальной работы; если загрузилась старая версия — сработал откат, прошейте ещё раз. - Дальше — по Wi-Fi: из приложения FolioLink или OTA из релизов этого репозитория.
MIT, как у upstream CrossPoint Reader (см. LICENSE). Сторонние компоненты — под своими лицензиями
(см. файлы лицензий в lib/).