
تطبيق سطح مكتب لتسجيل حساب Signal وربط Signal Desktop دون الحاجة إلى هاتف ذكي، باستخدام بروتوكولات التشفير الخاصة بـ Signal لتزويد الجهاز بشكل آمن.
تطبيق سطح مكتب لتسجيل حساب في Signal وربطه بـ Signal Desktop، كل ذلك دون الحاجة إلى هاتف ذكي.

لاحظ أن Signal لا يزال يتطلب رقم هاتف لاستخدامه. هذه الأداة تتجنب الحاجة إلى هاتف ذكي، ولكنها ستظل تتطلب وسيلة لاستقبال رسائل SMS أثناء مرحلة الإعداد
احصل على أحدث إصدار!
هناك عدة أسباب تجعل هذه الأداة قد تهمك:
أمان محادثاتك في Signal يكون بقدر أمان الأجهزة المثبت عليها:
إذا فقد جهازك أو سُرق عندما لا يكون مقفلاً برمز المرور الخاص بك، فبالتأكيد يمكن لشخص ما قراءة الرسائل عليه. وبالمثل، من المعروف أن جهات إنفاذ القانون تستخدم أدوات الطب الشرعي لاختراق الأجهزة المصادرة، مما يجعل من الممكن قراءة أي شيء على الجهاز، بما في ذلك رسائلك.
بعض الأشخاص لا يمتلكون هاتفًا ذكيًا، ويجب أن يكونوا قادرين على استخدام Signal :-)
Signal ليس لديه نية لدعم حالة الاستخدام هذه في برنامجه الخاص. يوجد كود تسجيل مستقل في Signal Desktop، لكنه مقصور على إصدارات التطوير والاختبار فقط، وقد أكد المشرفون على متتبعهم أنه ليس مخصصًا للمستخدمين النهائيين (#1118, #551, #575, #6431). لهذا السبب توجد هذه الأداة المنفصلة.
قم بتنزيل الملف المناسب لنظامك من صفحة الإصدارات:
.dmg واسحب Signal Setup إلى مجلد التطبيقات.AppImage: اجعله قابلاً للتنفيذ (chmod +x Signal_Setup-*.AppImage) وقم بتشغيله. يتم أيضًا نشر ملف ثنائي عادي signal-setup-linux-* إذا كنت تفضل ذلك.الإصدارات غير موقعة بشهادة مطور مدفوعة (99 دولارًا أمريكيًا سنويًا لنظام macOS، وأكثر لنظام Windows)، ونتيجة لذلك يحذرك النظام بعد التثبيت:
macOS يعرض "لا يمكن فتحه لأنه من مطور غير معروف." انقر بزر الماوس الأيمن على التطبيق واختر فتح، ثم قم بالتأكيد. تحتاج فقط إلى فعل ذلك مرة واحدة. إذا أبلغ أن التطبيق "تالف"، قم بمسح علامة الحجر الصحي للتنزيل: xattr -dr com.apple.quarantine "/Applications/Signal Setup.app".
Windows يعرض SmartScreen "قام Windows بحماية جهاز الكمبيوتر الخاص بك." انقر على معلومات أكثر، ثم تشغيل على أي حال.
cargo build --release
./target/release/signal-setup
المشروع هو مساحة عمل Cargo تحتوي على صندوقين: signal-setup-core (منطق تسجيل Signal وربط الأجهزة) و signal-setup (واجهة المستخدم الرسومية لسطح المكتب التي تعتمد عليه). بناء مساحة العمل ينتج الملف الثنائي signal-setup أعلاه.
على Linux فقط، بعض مكتبات النظام مفيدة لوحدة معالجة الرسومات/الشاشة:
# Ubuntu / Debian
sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libssl-dev protobuf-compiler
# Fedora
sudo dnf install libxcb-devel libxkbcommon-devel openssl-devel protobuf-compiler
# Arch
sudo pacman -S libxcb libxkbcommon openssl protobuf
يمكنك تشغيل الأداة ضد بيئة الاختبار الخاصة بـ Signal بدلاً من الإنتاج، وهو مفيد للتطوير والاختبار دون المخاطرة بحسابك الحقيقي:
./target/release/signal-setup --staging
لإكمال خطوة ربط الجهاز، ستحتاج إلى نسخة من Signal Desktop متصلة أيضًا بخادم الاختبار. بناء Signal Desktop من المصدر يفعل ذلك افتراضيًا:
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
pnpm install
pnpm start
علامة --demo متاحة أيضًا للاختبار دون اتصال بالإنترنت بشكل كامل باستخدام بيانات وهمية (لا حاجة لخادم).
هناك أدوات أخرى قادرة على فعل ذلك، مثل signal-cli الرائع من AsamK، لكن للأسف لا توفر واجهة مستخدم رسومية. إصدار سابق من هذه الأداة كان يستخدمه تحت الغطاء، لكنه احتاج من المستخدمين تثبيت JVM لتشغيل الأشياء.
بدلاً من ذلك — ولأنني اعتقدت أنه سيكون أسهل — اغتنمت الفرصة للغوص عميقًا في تشفير Signal.
إليك نظرة عالية المستوى لكيفية عمل الأشياء (هذا التطبيق يسجل كجهاز Signal أساسي، ثم يربط Signal Desktop كجهاز ثانوي).
إليك التدفق:
%%{init: {'theme':'default', 'themeVariables': {'background':'#ffffff'}}}%%
sequenceDiagram
actor User
participant App as App
participant Server as Signal Server
participant Desktop as Signal Desktop
participant Store as Disk + Keyring
Note over App: Step 0: Welcome (if saved accounts)
rect rgb(235,245,255)
Note over User,Server: Phase 1: Request verification code
User->>App: Step 1: enter phone (+1234567890)
App->>Server: POST /v1/verification/session
Server-->>App: session.id (+ captcha_required?)
alt Captcha required
Note over App: Step 2 shown
User->>App: solve captcha, paste it
App->>Server: POST .../session/{id}/code (sms)
else No captcha
App->>Server: POST .../session/{id}/code (sms)
end
Server-->>User: SMS verification code
end
rect rgb(235,255,235)
Note over User,Server: Phase 2: Verify & register account
User->>App: Step 3: enter 6-digit code
App->>Server: PUT .../session/{id}/code {code}
Note over App: Generate keys: ACI/PNI identity,<br/>signed pre-keys, Kyber PQ keys,<br/>master/profile keys, password
App->>Server: POST /v1/registration (account attrs + keys)
alt 409 Device transfer available
Server-->>App: 409 / DeviceTransferAvailable
Note over App: warn, retry skipping device transfer
else Success
Server-->>App: registered
App->>Store: save metadata (disk) + secrets (keyring)
end
end
rect rgb(255,245,235)
Note over User,Desktop: Phase 3: Link Signal Desktop
User->>App: Step 4: launch Desktop, "Link to existing device"
Desktop-->>User: shows QR code
User->>App: paste QR image / link
App->>Server: GET /v1/devices/provisioning/code
Server-->>App: verification_code
Note over App: Build ProvisionMessage (identity keys,<br/>profile/master key, code) →<br/>ECDH + HKDF + AES-256-CBC + HMAC
App->>Server: PUT /v1/provisioning/{ephemeral_id} (envelope)
Server-->>Desktop: deliver envelope / register as device 2
loop Poll up to 60s
App->>Server: GET /v2/keys/{aci}/2
Server-->>App: device 2 pre-keys (when ready)
end
Note over App: send_linked_device_sync():<br/>X3DH + Double Ratchet session,<br/>encrypt empty contacts SyncMessage
App->>Server: PUT /v1/messages/{aci} (encrypted sync)
Server-->>Desktop: SyncMessage / leaves "Syncing…"
end
App-->>User: Step 5 : 🎉 Setup complete
Signal Without Smartphone
حقوق الطبع والنشر (C) 2026 Alexis Métaireau
هذا البرنامج هو برنامج مجاني: يمكنك إعادة توزيعه و/أو تعديله
بموجب شروط رخصة جنو أفيرو العامة كما نشرتها
مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو
(حسب اختيارك) أي إصدار لاحق.
يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا،
ولكن دون أي ضمان؛ حتى بدون الضمان الضمني
للتسويق أو الملاءمة لغرض معين. راجع
رخصة جنو أفيرو العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة جنو أفيرو العامة
بجانب هذا البرنامج. إذا لم يكن الأمر كذلك، انظر <https://www.gnu.org/licenses/>.