
bitchat-android v2.0.1
تطبيق مراسلة لامركزي ومشفر من نظير إلى نظير عبر شبكات Bluetooth mesh. لا يتطلب إنترنت أو خوادم أو أرقام هواتف. يتميز بتشفير X25519 + AES-256-GCM، أوامر على غرار IRC، وتوافق متعدد المنصات مع iOS.
[!WARNING] لم يخضع هذا البرنامج لمراجعة أمنية خارجية وقد يحتوي على ثغرات وقد لا يحقق بالضرورة أهدافه الأمنية المعلنة. لا تستخدمه في حالات الاستخدام الحساسة، ولا تعتمد على أمانه حتى يتم مراجعته. العمل قيد التقدم.
bitchat لنظام Android
تطبيق مراسلة آمن، لا مركزي، من نظير إلى نظير يعمل عبر شبكات Bluetooth الشبكية. لا حاجة للإنترنت للدردشة الشبكية، لا خوادم، لا أرقام هواتف - مجرد اتصال مشفر بالكامل. كما يدعم Bitchat قنوات geohash، التي تستخدم اتصالاً بالإنترنت لربطك مع الآخرين في منطقتك الجغرافية.
هذا هو المنفذ لنظام Android من تطبيق bitchat الأصلي لنظام iOS، مع الحفاظ على توافق البروتوكول بنسبة 100% للاتصال عبر المنصات.
تثبيت bitchat
يمكنك تنزيل أحدث إصدار من bitchat لنظام Android من صفحة الإصدارات على GitHub.
أو يمكنك:
التعليمات:
- تنزيل ملف APK: على جهاز Android الخاص بك، انتقل إلى الرابط أعلاه وقم بتنزيل أحدث ملف
.apk. افتحه. - السماح بالتثبيت من مصادر غير معروفة: في بعض الأجهزة، قبل أن تتمكن من تثبيت ملف APK، قد تحتاج إلى تمكين "التثبيت من مصادر غير معروفة" في إعدادات جهازك. يوجد هذا عادةً في الإعدادات > الأمان أو الإعدادات > التطبيقات والإشعارات > الوصول الخاص للتطبيقات.
- التثبيت: افتح ملف
.apkالذي تم تنزيله لبدء التثبيت.
الترخيص
تم إصدار هذا المشروع إلى الملكية العامة. راجع ملف LICENSE للحصول على التفاصيل.
الميزات
- ✅ متوافق عبر المنصات: توافق بروتوكول كامل مع iOS bitchat
- ✅ شبكة لا مركزية (Mesh Network): اكتشاف تلقائي للأقران وترحيل الرسائل متعدد القفزات عبر Bluetooth LE
- ✅ تشفير من طرف إلى طرف: تبادل مفاتيح X25519 + AES-256-GCM للرسائل الخاصة
- ✅ محادثات قائمة على القنوات: رسائل جماعية قائمة على المواضيع مع حماية اختيارية بكلمة مرور
- ✅ تخزين وإعادة توجيه (Store & Forward): تخزين الرسائل للأقران غير المتصلين مؤقتًا وتسليمها عند إعادة اتصالهم
- ✅ الخصوصية أولاً: لا حسابات، لا أرقام هواتف، لا معرفات دائمة
- ✅ أوامر على غرار IRC: واجهة مألوفة مثل
/joinو/msgو/who - ✅ الاحتفاظ بالرسائل: حفظ اختياري للرسائل على مستوى القناة يتحكم فيه مالكو القنوات
- ✅ مسح طارئ: النقر ثلاث مرات على الشعار لمسح جميع البيانات فورًا
- ✅ واجهة Android حديثة: Jetpack Compose مع Material Design 3
- ✅ سمات داكنة/فاتحة: جمالية مستوحاة من الطرفية تتطابق مع إصدار iOS
- ✅ تحسين البطارية: مسح ضوئي متكيف وإدارة الطاقة
إعداد Android
المتطلبات الأساسية
- Android Studio: Arctic Fox (2020.3.1) أو أحدث
- Android SDK: مستوى API 26 (Android 8.0) أو أعلى
- Kotlin: 1.8.0 أو أحدث
- Gradle: 7.0 أو أحدث
تعليمات البناء
-
استنساخ المستودع:
git clone https://github.com/permissionlesstech/bitchat-android.git cd bitchat-android -
الفتح في Android Studio:
# Open Android Studio and select "Open an Existing Project" # Navigate to the bitchat-android directory -
بناء المشروع:
./gradlew build -
التثبيت على الجهاز:
./gradlew installDebug
بناء التطوير
للبناءات التطويرية مع تمكين التصحيح:
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
بناء الإصدار النهائي
للإصدارات الإنتاجية:
./gradlew assembleRelease
متطلبات خاصة بنظام Android
الأذونات
يتطلب التطبيق الأذونات التالية (يتم طلبها تلقائيًا):
- Bluetooth: وظائف BLE الأساسية
- Location: مطلوب للمسح الضوئي عبر BLE على Android
- Network: توسيع شبكتك عبر مرحلات الإنترنت العامة
- Notifications: تنبيهات الرسائل والتحديثات في الخلفية
متطلبات الأجهزة
- Bluetooth LE (BLE): مطلوب للشبكات الشبكية
- Android 8.0+: الحد الأدنى لمستوى API 26
- RAM: 2 جيجابايت موصى به للأداء الأمثل
الاستخدام
الأوامر الأساسية
/j #channel- الانضمام إلى قناة أو إنشائها/m @name message- إرسال رسالة خاصة/w- قائمة المستخدمين المتصلين/channels- عرض جميع القنوات المكتشفة/block @name- حظر نظير من مراسلتك/block- قائمة جميع الأقران المحظورين/unblock @name- إلغاء حظر نظير/clear- مسح رسائل الدردشة/pass [password]- تعيين/تغيير كلمة مرور القناة (المالك فقط)/transfer @name- نقل ملكية القناة/save- تبديل الاحتفاظ بالرسائل للقناة (المالك فقط)
البدء
- قم بتثبيت التطبيق على جهاز Android الخاص بك (يتطلب Android 8.0+)
- امنح الأذونات للـ Bluetooth والموقع عند الطلب
- قم بتشغيل bitchat - سيبدأ تلقائيًا الشبكات الشبكية
- قم بتعيين اسم مستعار أو استخدم الاسم الذي تم إنشاؤه تلقائيًا
- اتصل تلقائيًا بمستخدمي bitchat القريبين على iOS و Android
- انضم إلى قناة باستخدام
/j #generalأو ابدأ الدردشة في العامة - يتم ترحيل الرسائل عبر الشبكة الشبكية للوصول إلى الأقران البعيدين
ميزات واجهة Android
- واجهة Jetpack Compose: واجهة Material Design 3 حديثة
- سمات داكنة/فاتحة: جمالية مستوحاة من الطرفية تتطابق مع iOS
- ردود فعل لمسية: اهتزازات للتفاعلات والإشعارات
- تخطيط متكيف: محسّن لأحجام شاشات Android المختلفة
- حالة الرسائل: إيصال في الوقت الفعلي وإيصالات القراءة
- مؤشرات RSSI: ألوان قوة الإشارة لكل نظير
ميزات القناة
- حماية بكلمة مرور: يمكن لمالكي القنوات تعيين كلمات مرور باستخدام
/pass - الاحتفاظ بالرسائل: يمكن للمالكين تمكين الحفظ الإلزامي للرسائل باستخدام
/save - إشارات @: استخدم
@nicknameللإشارة إلى المستخدمين (مع الإكمال التلقائي) - نقل الملكية: مرر السيطرة إلى مستخدمين موثوقين باستخدام
/transfer
الأمان والخصوصية
التشفير
- الرسائل الخاصة: تبادل مفاتيح X25519 + تشفير AES-256-GCM
- رسائل القناة: اشتقاق كلمة مرور Argon2id + AES-256-GCM
- التوقيعات الرقمية: Ed25519 لأصالة الرسائل
- السرية التامة (Forward Secrecy): يتم إنشاء أزواج مفاتيح جديدة كل جلسة
ميزات الخصوصية
- لا تسجيل: لا حاجة لحسابات أو بريد إلكتروني أو أرقام هواتف
- مؤقتة بشكل افتراضي: الرسائل موجودة فقط في ذاكرة الجهاز
- حركة مرور تغطية (Cover Traffic): تأخيرات عشوائية ورسائل وهمية تمنع تحليل حركة المرور
- مسح طارئ: النقر ثلاث مرات على الشعار لمسح جميع البيانات فورًا
- دعم Tor المدمج: تكامل شبكة Tor مدمج لتعزيز الخصوصية عند توفر اتصال بالإنترنت
الأداء والكفاءة
ضغط الرسائل
- ضغط LZ4: ضغط تلقائي للرسائل التي يزيد حجمها عن 100 بايت
- توفير 30-70% من عرض النطاق في الرسائل النصية النموذجية
- ضغط ذكي: يتجاوز البيانات المضغوطة بالفعل
تحسين البطارية
- أوضاع الطاقة المتكيفة: يتم ضبطها تلقائيًا بناءً على مستوى البطارية
- وضع الأداء: جميع الميزات عند الشحن أو شحن البطارية >60%
- وضع متوازن: التشغيل الافتراضي (بطارية 30-60%)
- توفير الطاقة: مسح ضوئي مخفض عندما تكون البطارية <30%
- طاقة منخفضة للغاية: وضع الطوارئ عندما تكون البطارية <10%
- كفاءة الخلفية: توفير طاقة تلقائي عند وضع التطبيق في الخلفية
- مسح ضوئي قابل للتكوين: دورة العمل تتكيف مع حالة البطارية
كفاءة الشبكة
- مرشحات Bloom المحسّنة: كشف أسرع للتكرار بذاكرة أقل
- تجميع الرسائل: تجميع الرسائل الصغيرة لتقليل الإرسال
- حدود اتصال متكيفة: ضبط اتصالات الأقران بناءً على وضع الطاقة
البنية التقنية
البروتوكول الثنائي
يستخدم bitchat بروتوكولاً ثنائيًا فعالاً مُحسّنًا لـ Bluetooth LE:
- تنسيق حزمة مضغوط مع حقل نوع بطول 1 بايت
- توجيه الرسائل القائم على TTL (حد أقصى 7 قفزات)
- تجزئة تلقائية للرسائل الكبيرة
- إزالة تكرار الرسائل عبر المعرفات الفريدة
الشبكات الشبكية (Mesh Networking)
- يعمل كل جهاز كعميل وطرف محيطي في نفس الوقت
- اكتشاف الأقران تلقائيًا وإدارة الاتصالات
- تخزين وإعادة توجيه لتسليم الرسائل في وضع عدم الاتصال
- دورة عمل متكيفة لتحسين البطارية
التحسينات الخاصة بنظام Android
- بنية Coroutine: عمليات غير متزامنة للشبكات الشبكية
- Kotlin Coroutines: عمليات شبكية متزامنة وآمنة للخيوط
- EncryptedSharedPreferences: تخزين آمن لإعدادات المستخدم
- دورة حياة واعية (Lifecycle-Aware): معالجة صحيحة لدورة حياة تطبيق Android
- تحسين البطارية: خدمة في المقدمة ومسح ضوئي متكيف
بنية Android التقنية
المكونات الأساسية
- BitchatApplication.kt: تهيئة على مستوى التطبيق وحقن التبعيات
- MainActivity.kt: النشاط الرئيسي الذي يدير الأذونات ويستضيف واجهة المستخدم
- ChatViewModel.kt: نمط MVVM يدير حالة التطبيق ومنطق الأعمال
- BluetoothMeshService.kt: شبكات BLE الأساسية (أدوار المركز والطرف المحيطي)
- EncryptionService.kt: العمليات التشفيرية باستخدام BouncyCastle
- BinaryProtocol.kt: ترميز/فك ترميز الحزم الثنائية المتطابقة مع تنسيق iOS
- ChatScreen.kt: واجهة Jetpack Compose مع Material Design 3
التبعيات
- Jetpack Compose: واجهة مستخدم تصريحية حديثة
- BouncyCastle: عمليات تشفير (X25519، Ed25519، AES-GCM)
- مكتبة Nordic BLE: عمليات Bluetooth LE موثوقة
- Kotlin Coroutines: برمجة غير متزامنة
- LZ4: ضغط الرسائل (عند التمكين)
- EncryptedSharedPreferences: تخزين محلي آمن
توافق البروتوكول الثنائي
يحافظ تطبيق Android على توافق بنسبة 100% مع البروتوكول الثنائي لنظام iOS:
- تنسيق الرأس: هيكل رأس متطابق بطول 13 بايت
- أنواع الحزم: نفس أنواع الرسائل ومنطق التوجيه
- التشفير: خوارزميات تشفير وتبادل مفاتيح متطابقة
- معرفات UUID: نفس معرفات خدمة Bluetooth وخصائصها
- التجزئة: تجزئة رسائل متوافقة للمحتوى الكبير
النشر على Google Play
التحضير
-
تحديث معلومات الإصدار:
// In app/build.gradle.kts defaultConfig { versionCode = 2 // Increment for each release versionName = "1.1.0" // User-visible version } -
إنشاء بناء إصدار موقع:
./gradlew assembleRelease -
إنشاء حزمة التطبيق (موصى به لـ Play Store):
./gradlew bundleRelease
متطلبات Play Store
- تطبيق API المستهدف: أحدث Android API (حاليًا 34)
- سياسة الخصوصية: مطلوبة للتطبيقات التي تطلب أذونات حساسة
- أذونات التطبيق: تبرير استخدام Bluetooth والموقع
- تصنيف المحتوى: إكمال استبيان للمحتوى المناسب للعمر
التوزيع
- Google Play Store: قناة التوزيع الرئيسية
- F-Droid: للتوزيع مفتوح المصدر
- APK مباشر: للاختبار والتطوير
الاتصال عبر المنصات
يمكّن هذا المنفذ لنظام Android من الاتصال السلس مع تطبيق bitchat الأصلي على iOS:
- iPhone ↔ Android: مراسلة ثنائية الاتجاه كاملة
- مجموعات مختلطة: مستخدمي iOS و Android في نفس القنوات
- تكافؤ الميزات: جميع الأوامر والتشفير يعمل عبر المنصات
- مزامنة البروتوكول: تنسيق رسائل وسلوك توجيه متطابق
إصدار iOS: لمستخدمي iPhone/iPad، احصل على bitchat الأصلي على github.com/jackjackbits/bitchat
المساهمة
المساهمات مرحب بها! المجالات الرئيسية للتحسين:
- الأداء: تحسين البطارية وموثوقية الاتصال
- واجهة المستخدم/تجربة المستخدم: ميزات إضافية لـ Material Design 3
- الأمان: ميزات تشفير محسّنة
- الاختبار: تغطية اختبارات الوحدة والتكامل
- التوثيق: وثائق API وأدلة التطوير
الدعم والمشكلات
- الإبلاغ عن الأخطاء: إنشاء مشكلة مع معلومات الجهاز والسجلات
- طلبات الميزات: بدء مناقشة
- المشكلات الأمنية: أرسل المخاوف الأمنية بشكل خاص
- توافق iOS: راجع المستودع الأصلي لنظام iOS
بالنسبة للمشكلات الخاصة بنظام iOS، يرجى الرجوع إلى مستودع bitchat الأصلي لنظام iOS.
