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

تتجنب هذه الأداة الحاجة إلى هاتف ذكي، لكنها لا تزال تتطلب وسيلة لاستقبال رسائل SMS خلال مرحلة الإعداد. قدّمت Signal مؤخرًا حسابات بدون رقم، لكن ذلك لا يزال يتطلب Android وخدمات Google Play. من المرجّح أن يقدّموا خيارات دفع بديلة في المستقبل.
احصل على أحدث إصدار!
هناك أسباب متعددة قد تجعل هذه الأداة مثيرة للاهتمام بالنسبة لك:
أمان محادثاتك على Signal منخفض بقدر أمان الأجهزة المثبّت عليها:
إذا فُقد جهازك أو سُرِق عندما لا يكون مقفلًا برمز المرور الخاص بك، فبالطبع يمكن لشخص ما قراءة الرسائل الموجودة عليه. وبالمثل، من المعروف أن جهات إنفاذ القانون تستخدم أدوات جنائية لاختراق الأجهزة المصادرة، مما يجعل من الممكن قراءة أي شيء على الجهاز، بما في ذلك رسائلك.
بعض الناس لا يملكون هاتفًا ذكيًا، ويجب أن يكون بإمكانهم استخدام Signal :-)
تسجّل الأداة نفسها بوصفها الجهاز الأساسي للحساب وتربط Signal Desktop كجهاز ثانوي. تسمح Signal بخمسة أجهزة مرتبطة لكل حساب، ويمكن لهذه الأداة المساعدة في ربطها جميعًا. هذا مفيد في الحالات التي تريد فيها مشاركة حساب Signal مع زميل، على سبيل المثال.
حتى الآن، يتطلب Signal Desktop رقم هاتف وهاتفًا ذكيًا لإعداد حساب. قد يتغير هذا في المستقبل لكن حتى ذلك الحين، يمكنك استخدام هذه الأداة.
"أفترض أن سؤالك يتعلق بنوع من التسجيل برقم الهاتف الموجود في Signal اليوم. هذا شيء ندرسه على أمل إضافته في وقت لاحق من هذا العام، وهو إضافة طريقة للتسجيل بدون أرقام هواتف. [...]"
— Ehren Kret، المدير التقني لـ Signal، 20 يوليو 2026
نزّل الملف المناسب لنظامك من صفحة الإصدارات:
.dmg واسحب Signal Setup إلى مجلد Applications.AppImage: اجعله قابلًا للتنفيذ (chmod +x Signal_Setup-*.AppImage) ثم شغّله. يُنشر أيضًا ملف ثنائي عادي باسم signal-setup-linux-* إذا كنت تفضّل ذلك.الإصدارات غير موقّعة بشهادة مطوّر مدفوعة (99 دولارًا أمريكيًا سنويًا لـ macOS، وأكثر من ذلك لـ Windows)، ونتيجة لذلك يحذّرك النظام بعد التثبيت:
يعرض macOS رسالة "cannot be opened because it is from an unidentified
developer." انقر بزر الفأرة الأيمن على التطبيق واختر Open، ثم أكّد. لا تحتاج
إلى فعل ذلك إلا مرة واحدة. إذا أبلغ عن أن التطبيق "damaged"، فامسح علامة حجر التنزيل:
xattr -dr com.apple.quarantine "/Applications/Signal Setup.app".
يعرض Windows SmartScreen رسالة "Windows protected your PC." انقر على More info، ثم Run anyway.
cargo build --release
./target/release/signal-setup
المشروع عبارة عن مساحة عمل Cargo تضم حزمتين: signal-setup-core (منطق تسجيل Signal وربط الأجهزة) وsignal-setup (واجهة المستخدم الرسومية لسطح المكتب التي تعتمد عليها). يؤدي بناء مساحة العمل إلى إنتاج الملف التنفيذي signal-setup المذكور أعلاه.
على Linux فقط، تكون بعض مكتبات النظام مفيدة لـ GPU/العرض:
# 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
يمكن تصدير كل حساب من شاشة "Manage" الخاصة به كملف مفتاح:
signal-account-<number>.json. يحتوي على كل ما يلزم للعمل كجهاز أساسي للحساب،
مشفّرًا بعبارة مرور من اختيارك.
احتفظ به كنسخة احتياطية، ستتمكن من استيراده إلى جهاز آخر!
تحمل ملفات المفاتيح أيضًا المفتاح الرئيسي، وهو مفيد لإعادة تسجيل رقم دون انتظار انتهاء القفل.
يمكنك تشغيل الأداة مقابل بيئة staging الخاصة بـ Signal بدلًا من بيئة الإنتاج، وهو أمر مفيد للتطوير والاختبار دون المخاطرة بحسابك الحقيقي:
./target/release/signal-setup --staging
لإكمال خطوة ربط الجهاز، ستحتاج إلى نسخة من Signal Desktop متصلة أيضًا بخادم staging. بناء Signal Desktop من المصدر يفعل ذلك افتراضيًا:
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
pnpm install
pnpm start
قم بتعيين SIGNAL_SETUP_DEBUG=1 لطباعة كل استجابة من واجهة برمجة تطبيقات التحقق الخاصة بـ Signal
(الحالة والنص) إلى الطرفية، وهو أول ما يجب النظر إليه عندما لا تكتمل
عملية التسجيل.
يتوفر أيضًا خيار --demo للاختبار دون اتصال بالكامل باستخدام بيانات وهمية (لا حاجة
إلى خادم). في وضع العرض التجريبي، يحاكي رمز التحقق 000000
حسابًا مؤهلًا لنقل الجهاز، و111111 رقمًا مقفلًا للتسجيل.
هناك أدوات أخرى قادرة على القيام بذلك، مثل 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 423 Registration locked
Server-->>App: 423 / RegistrationLocked
Note over App: ask for the account's key file
else Success
Server-->>App: registered
App->>Server: PUT /v1/accounts/registration_lock (HMAC of master key)
App->>Store: save metadata (disk) + secrets (keyring)
end
end