كيفية عرض أذونات تطبيق Android قبل تثبيت APK

A smartphone showing a list of app permissions with a magnifying glass

عند تثبيت تطبيق من متجر Google Play، يعرض Android ملخصًا مبسطًا لما يمكن للتطبيق الوصول إليه. قم بتحميل ملف APK من مصدر غير Play، وليس لديك شبكة أمان من هذا القبيل، إلا إذا قرأت البيان بنفسك. "هل يجب أن يحتاج تطبيق الخلفية حقًا إلى الوصول إلى الرسائل القصيرة والميكروفون؟" هو بالضبط نوع السؤال الذي سيساعدك هذا الدليل على الإجابة عليه.

ما يلي هو نفس سير العمل الذي يستخدمه فريقنا عند فرز ملف APK غير مألوف: افتحه، واقرأ إدخالات uses-permission، وفك تشفير مستويات الحماية، وقارن ما يحتاجه تطبيق يقول مع ما تتطلبه فئته عادةً. يقوم جهاز أداة معلومات APK عبر الإنترنت الخاص بنا بفك تشفير XML الثنائي نيابةً عنك، لذا تستغرق العملية برمتها حوالي عشر ثوانٍ.

وقت القراءة: ~9 دقائق. الأدوات اللازمة: متصفح؛ اختياريا apksigner و aapt2 من Android SDK إذا كنت تريد إجراء نفس عمليات التحقق من محطة طرفية. ما الذي ستتمكن من فعله في النهاية: اقرأ قائمة الأذونات الكاملة لأي ملف APK، وحدد الطلبات الأربعة أو الخمسة "عالية التأثير" التي تشير دائمًا تقريبًا إلى وجود مشكلة، وقرر ما إذا كنت تريد التثبيت قبل التثبيت، وليس بعده.

لماذا تهتم بأذونات التدقيق؟

يأخذ المطورون الضارون التطبيقات المجانية الشائعة، ويغيرونها، ويعيدون إصدارها على مواقع الطرف الثالث. على الرغم من أن التطبيق قد يبدو ويعمل بشكل طبيعي، إلا أن رمزه المخفي قد يكون نسخ قائمة جهات الاتصال الخاصة بك أو تسجيل الصوت في الخلفية. من خلال عرض الأذونات التثبيت المسبق، يمكنك اكتشاف هذه العلامات الحمراء الخاصة بـ "زحف الأذونات".

كيفية تدقيق أي ملف APK (عبر الإنترنت)

يقرأ أداة معلومات APK بيان ملفك بالكامل في متصفحك؛ لا يتم تحميل الملف مطلقًا إلى الخادم، ولا يتم تنفيذ أي تعليمات برمجية. وإليك كيفية استخدامه:

العملية:

  1. انتقل إلى صفحة معلومات APK.
  2. حدد ملف .apk الخاص بك.
  3. انتظر حتى انتهاء التحليل (عادة 5 ثواني).
  4. قم بالتمرير لأسفل إلى قسم الأذونات.
  5. ابحث عن العلامات عالية المخاطر مثل: READ_SMS أو PROCESS_OUTGOING_CALLS أو ACCESS_FINE_LOCATION.

إذن قائمة العلم الأحمر

إذا طلب تطبيق آلة حاسبة أو مصباح يدوي READ_CONTACTS أو RECORD_AUDIO، فاحذف الملف على الفور. لا يوجد أي سبب مشروع لهذه التطبيقات للحصول على تلك البيانات.

فهم مستويات أذونات Android

لا يتم إنشاء كافة الأذونات على قدم المساواة. يصنفها Android إلى ثلاثة مستويات:

الطريقة اليدوية (باستخدام عارض ZIP)

إذا كانت لديك بعض المهارات التقنية، فيمكنك تدقيق الأذونات بنفسك:

  1. أعد تسمية app.apk إلى app.zip وافتحه.
  2. ابحث عن AndroidManifest.xml. (ملاحظة: إنه بتنسيق ثنائي وسيبدو مثل الثرثرة في محرر النصوص).
  3. استخدم أداة مثل AXMLPrinter لتحويله إلى نص قابل للقراءة.
  4. ابحث عن العلامات التي تبدأ بـ <uses-permission>.

توصية: من الأسرع بكثير استخدام أداة على الانترنت الذي يقوم بفك تشفير هذا لك على الفور.

قم بمراجعة تطبيقاتك الآن

تعرف بالضبط على ما تطلبه تطبيقاتك. لا أسرار ولا مخاطر.

تحقق من أذونات APK

ما يتم تخزينه فعليًا في AndroidManifest.xml

البيان هو مصدر الحقيقة لكل إذن ومكون وميزة يعلن عنها التطبيق. داخل ملف APK، يكون الملف في شكل ثنائي XML، وليس النص العادي الذي تراه في الكود المصدري، لذلك لا يمكن قراءته باستخدام محرر نص عادي. تقوم أداة معلومات APK الخاصة بنا بفك تشفير ملف XML الثنائي وإظهار العلامات ذات الصلة. وأهمها هي:

مستويات حماية الأذونات: ورقة الغش

يقوم Android بتعيين "مستوى حماية" لكل إذن. إن معرفة المستوى الذي ينتمي إليه الطلب يخبرك بمدى جدية نظام التشغيل في التعامل معه.

مستوى الحماية تجربة المستخدم أمثلة
طبيعي منح بصمت في وقت التثبيت. لا يوجد موجه. الإنترنت، الاهتزاز، ACCESS_NETWORK_STATE، WAKE_LOCK
خطير يطالب وقت التشغيل في المرة الأولى التي يتم فيها استخدام الميزة. قابل للإلغاء في الإعدادات. الكاميرا، تسجيل_الصوت، قراءة_جهات الاتصال، الوصول إلى_الموقع_FINE_LOCATION
إمضاء يُمنح فقط للتطبيقات الموقعة بنفس الشهادة مثل التطبيق المانح أو نظام التشغيل. BIND_VPN_SERVICE، INSTALL_PACKAGES (النظام فقط)
التوقيع|المتميز متاح فقط للتطبيقات المثبتة مسبقًا في دليل priv-app الخاص بصورة النظام. MANAGE_USERS، READ_LOGS
أبوب / الدور يتطلب تدفق إعدادات منفصل لتمكينه. SYSTEM_ALERT_WINDOW، BIND_ACCESSIBILITY_SERVICE، MANAGE_EXTERNAL_STORAGE

ماذا تعني الأذونات "المخفية" في الواقع؟

من المفاهيم الخاطئة الشائعة أن بعض الأذونات سرية. وهي ليست كذلك: يجب الإعلان عن كل إذن قد يستخدمه التطبيق في AndroidManifest.xml، ويرفض نظام التشغيل منح أي إذن غير مدرج هناك. وما يقصده الناس عادة بكلمة "مخفي" هو أحد أمرين:

وفي كلتا الحالتين، الإجابة هي نفسها: اقرأ البيان، ولا تثق في وصف متجر Play بمفرده.

مثال عملي: تدقيق ملف APK حقيقي

لنفترض أن لديك example.apk في مجلد التنزيلات لديك. هنا هو سير العمل الدقيق:

  1. افتح أداة معلومات APK في متصفحك.
  2. قم بإسقاط APK في منطقة التحميل. تتم المعالجة محليًا؛ الملف لا يترك جهازك.
  3. اقرأ قسم الأذونات. يعرض كل إدخال الاسم الثابت (android.permission.READ_CONTACTS ووصفًا باللغة البسيطة لما يسمح به).
  4. قارن القائمة بفئة التطبيق. تقريبًا، توقع:
    • كاميرا تطبيقات الكاميرا:، تسجيل الصوت (للفيديو)، كتابة التخزين/الوسائط
    • تطبيقات المراسلة: INTERNET، READ_CONTACTS، SEND_SMS (فقط إذا كانت تعتمد على الرسائل القصيرة)، RECORD_AUDIO (للملاحظات الصوتية)، CAMERA (لإرسال الصور)
    • الألعاب: الإنترنت، وأحيانًا RECORD_AUDIO (للدردشة الصوتية داخل اللعبة)، والأذونات المتعلقة بالفواتير؛ نادرا أي شيء آخر
    • تطبيقات المرافق (آلة حاسبة، مصباح يدوي، الطقس): INTERNET (للإعلانات)، ACCESS_NETWORK_STATE، وربما LOCATION (الطقس فقط). وكل ما هو أبعد من ذلك فهو مشكوك فيه.
  5. إذا كان أي شيء في القائمة لا يتناسب مع الفئة، فلا تقم بتثبيته. لا يوجد سبب وجيه لاحتياجات الآلة الحاسبة للوصول إلى الرسائل النصية القصيرة.

ينطبق نفس المنطق سواء كان الملف APK، أو XAPK (حيث نقرأ ملف APK الأساسي الداخلي)، أو حزمة APKS (حيث نقرأ بيان كل تقسيم).

القيام بذلك من سطر الأوامر

إذا كنت تفضل المسار الطرفي، فإن Android SDK يشحن aapt2، الذي يفرغ بيانًا من أي ملف APK بتنسيق XML عادي:

aapt2 dump badging example.apk | grep "uses-permission"

أو استخدم apksigner للتحقق من شهادة التوقيع في نفس الوقت:

apksigner verify --print-certs example.apk

تقوم أداة المتصفح بنفس الشيء بالنسبة للمستخدمين الذين يفضلون عدم تثبيت SDK فقط لفحص ملف واحد.

الأسئلة المتداولة (الأسئلة الشائعة)

هل يمكنني رفض الإذن بعد تثبيت APK؟

نعم. في نظام التشغيل Android 6.0 والإصدارات الأحدث، يمكنك الانتقال إلى الإعدادات > التطبيقات > [اسم التطبيق] > الأذونات لتبديل الأذونات الخطيرة الفردية أو إيقاف تشغيلها.

هل تتمتع ملفات XAPK بأذونات مختلفة؟

يحتوي XAPK على ملف APK واحد أو أكثر. كل ملف APK بالداخل له بيانه الخاص. ستقوم أداتنا بتحليل APK الرئيسي داخل الحزمة لتظهر لك الأذونات ذات الصلة.

لماذا يطلب كل تطبيق "الوصول إلى الشبكة"؟

تحتاج جميع التطبيقات تقريبًا إلى الوصول إلى الإنترنت لإجراء التحليلات أو الإبلاغ عن الأخطاء أو الإعلانات. على الرغم من أن هذا أمر شائع، إلا أنه يمثل أيضًا الطريقة التي يتم بها إرسال البيانات المسروقة إلى خادم المتسلل.

فحص الأذونات الواضحة قبل النقر فوق تثبيت

لا يمكنك الحكم على ما لا يمكنك رؤيته. إن قضاء عشر ثوانٍ في عرض أذونات APK قبل التحميل الجانبي هو الفرق بين معرفة ما يمكن أن يصل إليه التطبيق والأمل ببساطة في أن يتصرف. اقرأ القائمة أولاً، ثم قم بتثبيتها ثانياً.

تم تصميمها وتوثيقها بواسطة Mst Shaefale المطور الرئيسي ومهندس حزم Android • تم التحقق منه على Android 12–15

يحتفظ Mst Shaefale بدمج XAPK/APKS من جانب العميل، ومحلل البيانات الثنائية، وأدوات توقيع APK v1+v2 في xapktoapk.com. اكتشاف أمر قديم أو تغيير نظام التشغيل؟ أرسل مذكرة تحريرية.