Skip to content
obsifoxPublic

About

oMessage — offline-first rich SMS messenger for Android (Kotlin). Rich messaging over plain SMS. ObsiFox.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

oMessage — 0.1.0b 🦊

پیام‌رسان SMS سبک، آفلاین و بدون سرور با لایهٔ نامرئی پیام غنی — پروژهٔ ObsiFox


⛔ Build Freeze (فعلی)

تا نسخهٔ 1.0.0 هیچ APK بیلد نمی‌شود؛ تحویل‌ها = سورس + تست + گزارش. کلید امضا حفظ‌شده است.

فارسی

oMessage چیست؟

یک اپ SMS معمولی اندروید با یک ارتقای نامرئی: کسی که oMessage دارد پیام شما را زیبا و ساختارمند (کارت، نقل‌قول، لیست، هایلایت، رنگ، تراز…) می‌بیند؛ بقیهٔ دنیا دقیقاً همان SMS معمولی و خوانا را دریافت می‌کنند. بدون سرور، بدون حساب، حتی بدون مجوز اینترنت.

معماری در یک نگاه

پیام (ادیتور بصری)
   ↓  OML Encoder (باینری فشرده + fallback متنی داخلی)
ظرف OML
   ↓  فشرده‌سازی خودکار (Deflate سطح ۱ یا خام — هرکدام کوچک‌تر)
   ↓  قاب OFD (هدر + قطعه‌بندی ۱۲۰×۱۶ + CRC16)
دیتا SMS پورت‌دار (پورت 20312)  ←  برای گوشی‌های دیگر کاملاً نامرئی
   ↓
گیرندهٔ oMessage: CRC ✓ → بازسازی → پارس امن → رندر نیتیو + ✦

محتویات نسخهٔ ۰٫۱٫۰b

بخش وضعیت
هستهٔ پروتکل OML v1 / OFD v1 (۱۸ توکن + CLR) ✅ کامل + ۳۹ تست سبز (fuzz ۲۰هزار ورودی)
اپ پیش‌فرض SMS (DELIVER / Provider / نوتیفیکیشن / پاسخ سریع) ✅
کشف قابلیت با دیتا SMS + ACK + ماشین حالت ✅
انتقال هیبریدی (دوگانه در کشف، تک‌پیامکی پس از تثبیت) + ارسال تضمینی ✅
رندر نیتیو (بدون WebView) + نشانگر ✦ ✅
طراح پیام با ۸ پریست + پیش‌نمایش زنده + شمارندهٔ پیامک ✅
۷ والپیپر رویه‌ای + پترن‌ساز سفارشی + رنگ اپ + رنگ حباب هر گفتگو ✅
دوزبانه فارسی/انگلیسی خودکار + RTL + تم روشن/تاریک + کاهش حرکت ✅

ساخت (Build)

  1. پوشهٔ omessage را در Android Studio (Hedgehog یا جدیدتر، JDK 17) باز کنید.
  2. منتظر همگام‌سازی Gradle بمانید (وابستگی‌ها فقط androidx هستند).
  3. Run روی دستگاه واقعی (برای SMS امولاتور محدود است).

تست‌های پروتکل بدون دستگاه:

./gradlew :app:testDebugUnitTest          # از طریق پل JUnit
# یا مستقل:
kotlinc app/src/main/java/com/obsifox/omessage/protocol/*.kt \
        app/src/test/java/com/obsifox/omessage/protocol/ProtocolTest.kt \
        -include-runtime -d test.jar && java -jar test.jar

امضای قاب (برای بازبینی فنی)

  • پورت دیتا SMS: 0x4F58 (20312)
  • هگزِ تست‌شدهٔ پیام نمونهٔ «Hello!» کارت‌دار: ۳۲ بایت، CRC = CBB8 — جزئیات در سند طراحی §۷.۴
  • CRC16-CCITT-FALSE · varint LEB128 · سقف امنیتی پارسر: عمق ≤۱۰، گره ≤۲۰۰، متن ≤۱۲۰۰ بایت

محدودیت‌های شناخته‌شدهٔ این بتا

  • ویرایشگر آزاد WYSIWYG (قالب‌بندی روی انتخابِ متن) در نسخهٔ بعدی می‌آید؛ فعلاً پریست + فیلدها
  • MMS فقط دریافت حداقلی با hand-off صادقانه
  • بازسازی قطعه‌ها در حافظه است (TTL ۲۴ ساعت)؛ پایداری پس از ری‌استارت در نسخهٔ بعد
  • برخی اپراتورها دیتا SMS را فیلتر می‌کنند → خودکار به فاز دوگانه برمی‌گردیم (SMS همیشه می‌رسد)

English (summary)

oMessage is a lightweight, offline-first Android SMS app with an invisible rich-message layer. Contacts who also run oMessage receive beautifully formatted messages; everyone else receives a perfectly normal SMS. No servers, no accounts, no INTERNET permission.

  • Protocol core (pure Kotlin, no Android deps): OML v1 binary (18 tokens + CLR color token), OFD v1 datagram framing, CRC16-CCITT-FALSE, LEB128 varints, auto deflate/raw, 120×16 segmentation, strict parser with hard limits, deterministic plain-text fallback. 39 automated checks green, including a 20,000-case fuzz pass and a byte-exact spec example (32-byte frame, CRC CBB8).
  • Discovery: port-addressed data SMS on port 0x4F58 (20312); silent on all other phones; ACK carries capabilities; per-thread state machine (UNKNOWN → PROBING → AVAILABLE → TRUSTED) with TTL and auto-downgrade.
  • Transport: hybrid — dual (readable SMS + hidden data SMS) until capability stabilizes, then single data-SMS; a "Guaranteed send" toggle forces dual.
  • UI: Conversations / Chat / Designer, 8 style presets with live preview, 7 procedural wallpapers + pattern maker, global accent + per-chat bubble color, bilingual (fa/en) with RTL, light/dark, accessibility-friendly.

Build: open omessage/ in Android Studio (JDK 17), Run. Tests: ./gradlew :app:testDebugUnitTest.

See CHANGELOG.md for the release notes and docs/ObsiFox-Technical-Design-FA.html for the full technical design document (v1.1).

About

oMessage — offline-first rich SMS messenger for Android (Kotlin). Rich messaging over plain SMS. ObsiFox.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages