Releases: bglglzd/CipherBoard
Release list
CipherBoard 0.2.0
CipherBoard 0.2.0
English
CipherBoard 0.2.0 changes the protected writing flow. Tapping the shield now
opens a Private mode panel above the keyboard keys, inside the current IME
window. It no longer navigates to a separate composer screen.
Choose a verified contact and type with CipherBoard's on-screen keys. The
plaintext stays in a bounded, process-local draft and is not composed in the
external application's field. After you tap Encrypt, CipherBoard advances
and stores the Olm state, then inserts only the persisted CB1: ciphertext with
one InputConnection.commitText() call. The plaintext remains visible in the
panel after a successful insertion so you can check it; Clear, Close, a
host-field change, screen lock, or IME shutdown clears it best effort.
Private mode disables personalized learning, user-dictionary updates,
clipboard history and plaintext copy/paste paths. Its IME window uses
FLAG_SECURE. Detailed input debug logs are suppressed for this editor even if
HeliBoard debug mode was enabled. Host publication is scoped to the exact
InputBinding.connectionToken. Before the host call, a pending send moves
durably from READY to COMMIT_UNCERTAIN; delivery-uncertain ciphertext is not
retried automatically because the host may already have accepted it.
Pending sends left by a 0.1.x crash are also treated as delivery-uncertain
after upgrade, because their older storage format cannot safely prove otherwise.
Important limitations:
- Do not type a Private draft with a physical keyboard. Android may send those
key events directly to the focused host application, bypassing IME draft
routing. Use CipherBoard's on-screen keys. - Buffer and UI clearing is best effort. Android views, Binder, JNI and the JVM
may retain copies; complete RAM erasure is not guaranteed. FLAG_SECUREreduces standard capture paths but cannot stop a compromised OS,
a camera, shoulder surfing or every privileged/Accessibility path.- The complete application has not received an independent applied-cryptography
and Android security audit.
Install CipherBoard-0.2.0-release.apk over the existing release. Do not
uninstall first: that destroys the Vault, local identity, contacts and ratchet
state. Verify the published SHA-256 and signing-certificate fingerprint, and
stop if Android reports a signer mismatch.
CipherBoard has no in-app updater and requests neither Internet nor package-
installation permission. For optional update notifications, configure the
external Obtainium app with https://github.com/bglglzd/CipherBoard, disable
pre-releases, and use this release asset filter:
^CipherBoard-[0-9]+\.[0-9]+\.[0-9]+-release\.apk$
Obtainium is a separate, networked trust boundary. CipherBoard itself remains
offline.
Русский
В CipherBoard 0.2.0 изменён сценарий защищённого набора. Теперь кнопка со щитом
открывает панель приватного режима над клавишами, прямо внутри текущего окна
клавиатуры. Перехода на отдельный экран редактора больше нет.
Выберите проверенный контакт и вводите сообщение программными клавишами
CipherBoard. Открытый текст хранится в ограниченном локальном черновике процесса
IME и не набирается в поле внешнего приложения. После нажатия
Зашифровать CipherBoard продвигает и сохраняет состояние Olm, а затем одним
вызовом InputConnection.commitText() вставляет только сохранённый
CB1:-шифротекст. После успешной вставки исходный текст остаётся видимым в
панели для проверки. Он очищается по кнопкам Очистить или Закрыть, при
смене внешнего поля, блокировке экрана или завершении IME.
В приватном режиме отключены персональное обучение, обновление пользовательского
словаря, история буфера обмена и операции копирования/вставки открытого текста.
Детальные отладочные логи ввода также отключены для этого редактора, даже если
в настройках HeliBoard был включён debug-режим. Окно IME защищено
FLAG_SECURE. Публикация привязана к точному токену
InputBinding.connectionToken. До обращения к внешнему полю ожидающая отправка
надёжно переводится из READY в COMMIT_UNCERTAIN. CipherBoard не повторяет
такую вставку автоматически: внешнее приложение могло принять шифротекст, даже
если подтверждение потерялось.
Ожидающие отправки, оставшиеся после сбоя 0.1.x, после обновления также
считаются неопределёнными: старый формат не позволяет безопасно доказать, была
ли уже выполнена вставка.
Важные ограничения:
- Не вводите приватный черновик физической клавиатурой. Android может направить
такие нажатия прямо в активное поле внешнего приложения, минуя локальный
черновик IME. Используйте экранные клавиши CipherBoard. - Очистка буферов и UI выполняется по мере возможностей. Android View, Binder,
JNI и JVM могут создавать копии, поэтому гарантировать полное удаление из
оперативной памяти нельзя. FLAG_SECUREограничивает стандартные способы захвата экрана, но не защищает
от скомпрометированной ОС, камеры, просмотра из-за плеча и всех
привилегированных или Accessibility-механизмов.- Полное приложение не проходило независимый аудит прикладной криптографии и
Android security.
Установите CipherBoard-0.2.0-release.apk поверх текущей release-версии. Не
удаляйте приложение перед обновлением: это уничтожит Vault, локальную identity,
контакты и состояние ratchet. Проверьте опубликованные SHA-256 и fingerprint
сертификата подписи. При сообщении Android о несовпадении подписи остановитесь.
В CipherBoard нет встроенного обновления и разрешений на Internet или установку
пакетов. Для необязательных уведомлений об обновлениях настройте внешнее
приложение Obtainium на https://github.com/bglglzd/CipherBoard, отключите
pre-release и используйте фильтр release-файлов:
^CipherBoard-[0-9]+\.[0-9]+\.[0-9]+-release\.apk$
Obtainium использует сеть и является отдельной границей доверия. Сам CipherBoard
остаётся полностью офлайн.
CipherBoard 0.1.1
CipherBoard 0.1.1
CipherBoard 0.1.1 fixes unreadable text and controls in native application
screens on Android 12 and later, including current GrapheneOS releases. It also
documents stable install-in-place updates through Obtainium.
CipherBoard itself remains fully offline: it has no Internet permission, does
not contact GitHub, and does not install updates. Obtainium is an optional,
external networked installer and a separate trust boundary. Add
https://github.com/bglglzd/CipherBoard, keep pre-releases disabled, and select
only CipherBoard-0.1.1-release.apk.
Install this release over 0.1.0. Do not uninstall first: uninstalling destroys
the Vault, local identity, contacts, and ratchet state. Android may require an
installation confirmation. Stop if it reports a signing-certificate mismatch.
CipherBoard 0.1.1 исправляет невидимый текст и элементы управления на нативных
экранах Android 12 и новее, включая актуальные версии GrapheneOS. Также
добавлена инструкция для стабильных обновлений через Obtainium.
Сам CipherBoard остаётся полностью офлайн: у него нет разрешения Internet, он
не обращается к GitHub и не устанавливает обновления. Obtainium является
необязательным внешним установщиком и отдельной границей доверия. Добавьте
https://github.com/bglglzd/CipherBoard, отключите pre-release и выбирайте
только CipherBoard-0.1.1-release.apk.
Установите эту версию поверх 0.1.0. Не удаляйте предыдущую версию: удаление
уничтожит Vault, локальную identity, контакты и состояние ratchet. Android
может запросить подтверждение установки. При несовпадении сертификата подписи
остановитесь и выясните причину.
CipherBoard 0.1.0
CipherBoard 0.1.0
This is the first public preview of CipherBoard, an offline-first encrypted Android keyboard designed primarily for current GrapheneOS devices.
Included
- HeliBoard-based English/Russian IME with emoji, symbols, themes, and normal keyboard mode
- local identities and contacts with physical two-way QR pairing
- Olm Double Ratchet sessions through pinned
vodozemac 0.10.0 - authenticated Android Keystore Vault with StrongBox-first and verified TEE fallback
- protected Secure Composer that commits only
CB1:ciphertext to the host app - read-only
ACTION_PROCESS_TEXTdecryption in aFLAG_SECUREviewer - bounded canonical-CBOR transport parser, multipart assembly, replay protection, and atomic ratchet persistence
- English and Russian product UI and security documentation
Verification
- Release source tag:
v0.1.0 - Release source commit:
d96e3cf4858a3f2b92b73bf5e1d4ccdd2217b1b7 - APK SHA-256:
8b6e6e0cc09420337a5f178452e2b2be6914a2671cccf49c4bb599b58b567c04 - Signing certificate SHA-256:
c3b770778fb255c0ed9c025b468fe0592352fedf0e5f9e1580d4e8529e9e27b8 - Release ABI:
arm64-v8a - Runtime network permission: none
RELEASE_ARTIFACTS.sha256 is the authoritative inventory for every attached file. The repository's published-release workflow independently verifies that inventory, the signed APK, source archive, SBOM, offline vulnerability report, native hardening, permissions, and certificate pin.
Security status
CipherBoard is pre-1.0 security-sensitive software. The exact release passed automated unit, parser, JNI, lint, static-analysis, APK-policy, vulnerability, and API 36 AOSP instrumentation gates. It has not received an independent applied-cryptography or Android security audit, and physical GrapheneOS/two-device validation remains required before high-risk reliance.
Read README, THREAT_MODEL.md, SECURITY_REVIEW.md, and BUILD.md before installation.