نحوه مشاهده مجوزهای برنامه 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 به هر مجوزی یک "سطح حفاظت" اختصاص می دهد. دانستن اینکه یک درخواست به کدام سطح تعلق دارد، به شما می گوید که سیستم عامل چقدر با آن برخورد جدی می کند.

سطح حفاظت تجربه کاربری نمونه ها
عادی در زمان نصب بی‌صدا اعطا می‌شود. بدون اعلان. INTERNET، VIBRATE، ACCESS_NETWORK_STATE، WAKE_LOCK
خطرناک زمان اجرا اولین باری که از این ویژگی استفاده می شود. قابل برگشت در تنظیمات دوربین، RECORD_AUDIO، READ_CONTACTS، ACCESS_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 Store اعتماد نکنید.

مثال کار: ممیزی یک APK واقعی

فرض کنید example.apk را در پوشه Downloads خود دارید. در اینجا گردش کار دقیق است:

  1. ابزار اطلاعات APK را در مرورگر خود باز کنید.
  2. APK را در قسمت آپلود رها کنید. پردازش به صورت محلی انجام می شود. فایل از دستگاه شما خارج نمی شود.
  3. بخش مجوزها را بخوانید. هر ورودی نام ثابت (android.permission.READ_CONTACTS و توصیفی به زبان ساده از آنچه اجازه می دهد را نشان می دهد).
  4. لیست را با دسته برنامه مقایسه کنید. تقریباً انتظار می رود:
    • دوربین برنامه های دوربین:، RECORD_AUDIO (برای ویدیو)، STORAGE/MEDIA نوشتن
    • برنامه های پیام رسانی: INTERNET، READ_CONTACTS، SEND_SMS (فقط در صورت پیامک)، RECORD_AUDIO (برای یادداشت‌های صوتی)، دوربین (برای ارسال عکس)
    • بازی ها: INTERNET، گاهی اوقات 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 اصلی را در بسته تجزیه و تحلیل می کند تا مجوزهای مربوطه را به شما نشان دهد.

چرا هر برنامه ای «دسترسی به شبکه» را می خواهد؟

تقریباً همه برنامه ها برای تجزیه و تحلیل، گزارش اشکال یا تبلیغات به دسترسی به اینترنت نیاز دارند. در حالی که رایج است، این روشی است که اطلاعات دزدیده شده به سرور یک هکر ارسال می شود.

بررسی مجوزهای Manifest قبل از اینکه روی Install ضربه بزنید

شما نمی توانید چیزی را که نمی بینید قضاوت کنید. گذراندن ده ثانیه برای مجوزهای یک APK را مشاهده کنید قبل از بارگذاری جانبی، تفاوت بین دانستن اینکه یک برنامه به چه چیزی می‌تواند دسترسی داشته باشد و صرفاً امیدوار بودن عملکرد آن است. ابتدا لیست را بخوانید و در مرحله دوم نصب کنید.

مهندسی و مستند شده توسط Mst Shaefale توسعه‌دهنده اصلی و معمار بسته Android • تأییدشده در Android 12–15

Mst Shaefale ادغام XAPK/APKS سمت کلاینت، تجزیه کننده مانیفست باینری و ابزارهای امضای APK v1+v2 را در xapktoapk.com حفظ می کند. آیا یک فرمان قدیمی یا تغییر سیستم عامل را مشاهده می کنید؟ یک یادداشت تحریریه بفرستید.