ماذا يرسل MExplorer خارج جهازك
الجواب المختصر: إحصاءات استخدام، وتقارير أعطال، وفحص التحديثات. لا أسماء ملفات، ولا محتوى ملفات، ولا مسارات من أي نوع.
ما لا يغادر جهازك أبدًا
- أسماء الملفات، والمسارات، ومحتوى الملفات. أبدًا، دون استثناء.
- التطبيقات المثبّتة لديك، ونتائج الفحص، وسجلات التنظيف. تعيش كلها في قاعدة بيانات SQLite داخل مجلد دعم التطبيق نفسه، على جهازك أنت.
- عملك. لا نتيجة فحص ولا قائمة تطبيقات ولا سجل تنظيف يغادر الجهاز أبدًا — ولا حتى داخل نداء تفعيل الترخيص.
هذا ليس مجرد وعد. قائمة الأحداث المسموح بإرسالها هي نوع مغلق في الشيفرة المصدرية: كل مُعامل إمّا تعداد أو عدّاد أو نطاق حجم. ولا حقل فيها يقبل نصًّا حرًّا، فلا يوجد أصلًا موضع يُدسّ فيه مسار. وثمة بوابة تعمل مع كل عملية بناء تتحوّل إلى الأحمر إن أضاف أحدهم مُعاملًا نصيًّا، أو إن لمس وحدة القياس نظامَ الملفات.
ما يغادر جهازك فعلًا
١. إحصاءات الاستخدام (Firebase Analytics)
| الحدث |
يُرسل معه |
| فتح التطبيق |
رمز لغة الواجهة |
| فتح شاشة |
أي شاشة (التنظيف، المكرّرات، تحليل القرص…) |
| انتهاء التنظيف |
عمق الفحص، وكم مجموعة كانت محدّدة، ونطاق المساحة المحرَّرة |
| نتيجة خطوة الأذونات |
مُنحت أم تُخطّيت |
| إغلاق جولة الميزات |
أُكملت، أم عند أي صفحة توقفت |
| تفعيل الترخيص |
لا شيء على الإطلاق |
تُرسل الأحجام على شكل نطاق («أقل من ١ غيغابايت»، «١–١٠ غيغابايت»، «أكثر من ١٠ غيغابايت»)، لا كرقم حقيقي. فالرقم الدقيق حين يتكرّر عبر الجلسات يبدأ أن يصير بصمةً لجهاز بعينه؛ أما النطاق فلا.
ويضيف Firebase من عنده أكثر من ذلك، خارج سيطرتنا: إصدار التطبيق، وإصدار macOS، وطراز الجهاز، والبلد المستنتَج من عنوان IP، ومعرّف واحد لكل تثبيت.
٢. تقارير الأعطال (Firebase Crashlytics)
حين يتعطّل التطبيق: مكدّس النداءات، وإصدار التطبيق، وإصدار macOS، ومعمارية الجهاز، ولغة الواجهة. وليس اسم الملف الذي كان مفتوحًا لديك — فالتقرير لا يسلك ذلك الطريق أصلًا.
٣. فحص التحديثات (Sparkle)
يُنزّل ملف XML يسرد الإصدارات، ويُنزّل حزمة التحديث إن وُجد إصدار أحدث. ويرى الخادم ما يراه أي خادم ويب: عنوان IP، والوقت، وإصدار macOS، وإصدار MExplorer. وتُتحقّق الحزمة من توقيع EdDSA قبل تثبيتها. يمكن إيقافه من الإعدادات ← التحديثات.
٤. تفعيل الترخيص (منذ ١٫٠٫٣)
لا يحدث إلا حين تُفعّل أنت مفتاحًا على هذا الجهاز، أو تفتح قائمة أجهزة Mac التي تستعمل مفتاحك. لا نبض هناك: فالتطبيق لا ينادي خادم التراخيص وفق جدول زمني قط، وبعد أول تفعيل لا يناديه إطلاقًا.
- مفتاح ترخيصك — للبحث عن ترخيصك.
- رمز جهاز — لعدّ أجهزة Mac في باقتك. وهو بصمة أحادية الاتجاه لمعرّف عتاد، لا رقم تسلسلي: فالخادم لا يحتفظ أبدًا بالمعرّف الحقيقي لجهازك، ولا يمكن مطابقة هذا الرمز مع سجلات أي أحد آخر.
- اسم جهازك («MacBook Pro الخاص بـ Công») — لتعرف أيّ جهاز تزيله. وهذا هو الحقل الشخصي الجديد الوحيد، وبدونه تصير القائمة مجرد صفوف من البصمات.
- إصدار macOS وإصدار التطبيق — للدعم ولإحصاءات التوافق.
مدة الحفظ: تُحذف سجلات التفعيل وسجل الأحداث بعد ٢٤ شهرًا. أما سجلات التراخيص والطلبات فتُحفظ مدة أطول لأنها إثبات شراء.
لا شيء يتوقف حين تنقطع عن الإنترنت. فالترخيص على جهازك دائم ويُتحقّق منه دون اتصال — وحتى لو أُغلق خادم التراخيص إلى الأبد، ما كان جهاز مُفعَّل ليشعر بذلك.
كيف تُوقفه
إحصاءات الاستخدام وتقارير الأعطال مُفعّلة افتراضيًا ولا يوجد لها حاليًا زر إيقاف. هذا قرار تجاري، وهو مخالف لشرط «الاشتراك الاختياري» الذي وضعته مواصفاتنا نفسها. ونحن نكتبه هنا بدل أن نصمت عنه.
- اعترِضه عند الجدار الناري: لا يتحدث MExplorer إلا مع
*.google-analytics.com و*.crashlytics.com وfirebaselogging.googleapis.com وخادم تحديثات MOBILUCK، ومع licence.code247.ai حين تُفعّل ترخيصًا.
- استعمل نسخة بناء بلا إعدادات Firebase. فالنسخة الخالية من ملف الإعدادات لا ترسل شيئًا على الإطلاق — وهذا سلوك الشيفرة الافتراضي، لا خيار مخفي.
فيمَ يُستعمل الوصول الكامل إلى القرص
يشترط macOS هذا الإذن لقراءة ~/Library حيث تضع التطبيقات بياناتها. وبدونه تعجز ثلاث من الميزات الأساسية — المساحة حسب التطبيق، وبقايا التطبيقات المحذوفة، وتنظيف الذاكرة المؤقتة — عن العمل، لأن نظام التشغيل يوقفها عند الباب.
هذا الإذن يتيح لـ MExplorer أن يقرأ. ولا يُستعمل لجمع أي شيء لإرساله: فلا شيء قُرئ من قرصك يصل يومًا إلى الأحداث أعلاه.
تحقّق بنفسك
لست مضطرًّا لتصديق هذه الصفحة. فـ Firebase يجمع الأحداث في قاعدة بيانات محلية ويرسلها وفق جدوله هو، ولذلك فالنظر إلى اتصالات الشبكة مرة واحدة لا يُظهر شيئًا في الغالب — وهذا لا يعني أن التطبيق لا يرسل شيئًا. ولترى ما ينتظر في الطابور، افتحه على جهازك أنت:
sqlite3 ~/Library/Application\ Support/Google/Measurement/google-app-measurement.sql \
"SELECT name, count(*) FROM events GROUP BY name"
سترى الأحداث الواردة في الجدول أعلاه بالضبط، ومعها بضعة أحداث تلقائية من Firebase نفسه. ولن ترى أي اسم ملف أو مسار، لأنه لا يوجد طريق يوصلها إلى هناك.
حُدّثت في ١ سبتمبر ٢٠٢٦. قبل ذلك التاريخ لم يكن MExplorer يرسل شيئًا سوى فحص التحديثات، وكانت هذه الصفحة تقول ذلك. وقد غيّرنا البرنامج وغيّرنا هذه الصفحة في اليوم نفسه، بدل أن نترك الوعد القديم قائمًا.
تُنشر هذه الوثيقة بكل لغة يتحدث بها موقع MExplorer. والترجمات موجودة لتقرأ الشروط بلغتك أنت؛ وحين يختلف معنى الترجمة عن الإنجليزية، فالنسخة الإنجليزية هي المعتمدة. ولا يمسّ هذا حقوقك القانونية في بلد إقامتك.