چطور محدودیت اسکرین‌شات در اندروید را دور بزنیم؟

چهارشنبه ۲۳ خرداد ۱۴۰۳ - ۱۲:۳۰
مطالعه 13 دقیقه
دور زدن محدودیت اسکرین شات در گوشی اندروید
در این آموزش به غیرفعال کردن FLAG-SECURE و نحوه‌ی گرفتن اسکرین‌شات در اپلیکیشن‌هایی که این امکان را محدود کرده‌اند، می‌پردازیم.
تبلیغات

اگر گوشی اندرویدی دارید، احتمالاً برای شما هم پیش آمده که در برخی صفحات یا اپلیکیشن‌های خاص هنگام گرفتن اسکرین‌شات با خطای This app doesn't allow screenshots یا Can't take screenshot of this page مواجه شده‌اید یا هنگام ضبط صفحه، چیزی جز یک صفحه‌ی سیاه مشاهده نکرده‌اید. اما چرا این خطا هنگام عکس‌گرفتن از برخی برنامه‌ها ظاهر می‌شود و چگونه می‌توان این ارور را رفع کرد؟

چرا در برخی اپلیکیشن‌ها نمی‌توانیم اسکرین‌شات بگیریم؟

این خطا به‌دلیل APIهای امنیتی سیستم‌عامل اندروید است که به توسعه‌دهندگان اجازه می‌دهد تا از ضبط شدن محتوای یک پنجره یا اکتیویتی در اسکرین‌شات یا اسکرین ریکوردر به‌جهت ملاحظات امنیتی، حریم خصوصی یا محافظت از نشر غیرمجاز محتوا جلوگیری کنند.

این پروتکل محافظتی توسط یک فلگ به‌نام FLAG_SECURE داخل فریم‌ورک اندروید، در سطح سیستم‌عامل اجرا می‌شود. در اندروید، FLAG‌‌-ها تنظیمات یا گزینه‌های ویژه‌ای هستند که رفتار و ظاهر اجزای مختلفی مانند پنجره‌ها، Activity-ها یا View-‌ها را کنترل می‌کنند و سیستم‌عامل محتوای هر برنامه‌ای که از این فلگ در کدهای خود استفاده کرده باشد را مسدود می‌کند تا به‌غیر از نمایشگر گوشی، هیچ راه دیگری برای مشاهده‌ی محتوای محافظت‌‌شده وجود نداشته باشد.

FLAG_SECURE معمولاً در اپلیکیشن‌هایی که با تراکنش‌های مالی، داده‌های محرمانه یا سایر اطلاعات حساس مانند اپلیکیشن‌های بانکداری، مدیریت رمز عبور یا اپلیکیشن‌های پیام‌رسان امن سروکار دارند، استفاده می‌شود.

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

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

حذف محدودیت اسکرین شات اندروید در دستگاه‌های روت نشده

برای غیرفعال کردن FLAG_SECURE اپلیکیشن‌ها در دستگاه‌های روت نشده، از Shizuku و ماژول LSPatch استفاده خواهیم کرد. در این روش به چند ابزار کمکی احتیاج داریم که در ادامه به معرفی و نحوه‌ی استفاده از آن‌ها خواهیم پرداخت.

ابزارهای مورد نیاز

  • Shizuku: برنامه‌ای است که به اپلیکیشن‌ها اجازه می‌دهد با مجوزهای ADB از API-های سیستم استفاده کنند.
  • LSPatch: ابزاری برای پچ کردن اپلیکیشن‌ها و تغییر رفتار آن‌ها.
  • Disable FLAG_SECURE: ماژولی مبتنی‌بر LSPatch برای غیرفعال کردن FLAG_SECURE.
  • ADB: ابزار اشکال‌زدایی اندروید که بر اساس دستورهای خط فرمان کار می‌کند و برای فعال‌سازی برنامه Shizuku مورد استفاده قرار می‌گیرد.

نصب و فعال سازی Shizuku

  • اپلیکیشن شیزوکو را از پلی استور یا صفحه‌ی گیت‌هاب آن دانلود و نصب کنید.
  • با استفاده از دستورالعمل‌های داخل اپلیکیشن و به وسیله‌ی ADB یا Wireless Debugging، شیزوکو را فعال کنید. برای دنبال کردن دقیق‌تر مراحل نصب و فعال‌سازی شیزوکو، به مقاله‌ی Shizuku در اندروید چیست و چه کاربردی دارد رجوع کنید.

نصب و فعال سازی LSPatch از طریق Shizuku

برای پچ کردن اپلیکیشن‌ها و غیرفعال کردن FLAG_SECURE، باید آن‌ها را به‌وسیله‌ی LSPatch پچ کرد. LSPatch فورکی از ابزار مشهور LSposed است که برای دستگاه‌های روت‌نشده توسعه یافته است.

  • فایل APK اپلیکیشن LSPatch را از گیت‌هاب دانلود و نصب کنید. نام این فایل در زمان نگارش این راهنما، manager-v0.6-398-release.apk است.
  • اپلیکیشن شیزوکو را باز کنید و به LSPatch مجوز بدهید.
صفحه‌ی اصلی شیزوکو فعال شده و انتخاب گزینه‌ی دسترسی دادن به اپلیکیشن‌ها
فعال کردن دسترسی LSPatch در اپلیکیشن شیزوکو

نصب و فعال‌سازی ماژول Disable-FLAG_SECURE

ماژول Disable FLAG_SECURE وظیفه‌ی غیرفعال کردن FLAG_SECURE در اپلیکیشن‌ها را برعهده دارد. این ماژول برای دستکاری و حذف این مورد، تحت ابزار LSPatch کار می‌کند و به‌وسیله‌ی آن فایل APK آن‌ها را پچ می‌کند.

  • فایل APK ماژول Disable-FLAG_SECURE را از گیت‌هاب دانلود و نصب کنید. نام این فایل در زمان نگارش این راهنما، Xposed-Disable-FLAG_SECURE_2.0.0.apk است.
  • برای اطمینان از نصب موفق ماژول مذکور، اپلیکیشن LSPatch را باز کنید و به تب Manage بروید. در تب Modules، باید ماژول Disable-FLAG_SECURE را ببینید.
ماژول Disable-FLAG_SECURE در تب Modules‌ در قسمت Manage اپلیکیشن LSPatch

پچ کردن اپلیکیشن‌ها با LSPatch

  • پس از باز کردن اپلیکیشن LSPatch، تب Manage را باز کنید. در تب Apps، روی دکمه‌ی مثبت در پایین صفحه ضربه بزنید.
انتخاب دکمه‌ی افزودن اپلیکیشن برای پچ شدن در تب Apps در قسمت Manage اپلیکیشن LSPatch
  • اولین‌بار، باید پوشه‌ای برای ذخیره کردن اپ‌های پچ شده انتخاب کنید. پس از ضربه زدن روی دکمه‌ی مثبت، در پاپ‌آپِ Select storage directory روی OK بزنید. پوشه‌ای داخل مسیر اصلی فضای ذخیره‌سازی گوشی را انتخاب کنید و روی Use this folder بزنید. در پاپ‌آپ بعدی Allow را انتخاب کنید.
پاپ‌آپِ انتخاب دایرکتوری برای ذخیره‌ی فایل‌های پچ شده و انتخاب OK
انتخاب یک دایرکتوری در فایل منیجر باز شده و انتخاب گزینه‌ی Use this folder
اجازه دادن به LSPatch برای دسترسی به دایرکتوری انتخاب شده
  • در صفحه‌ی New Patch، گزینه‌ی Select an installed app را انتخاب کنید.
انتخاب گزینه‌ی Select an installed app در پاپ‌آپِ New Patch
  • اپلیکیشن مورد نظر خود را از لیست اپ‌های نصب شده انتخاب کنید.
انتخاب یک اپلیکیشن (در اینجا Firefox Klar) برای پچ شدن
  • در صفحه‌ی New Patch گزینه‌ی Integrated را به‌عنوان Patch Mode انتخاب کنید.
  • روی Embed modules ضربه بزنید و Select an installed app را انتخاب کنید.
انتخاب گزینه‌ی Integrated برای Patch Mode و انتخاب Embed modules
انتخاب گزینه‌ی Select an installed app در پاپ‌آپِ Embed modules
  • ماژول Disable-FLAG-SECURE را علامت و روی تأیید ضربه بزنید.
انتخاب ماژول Disable-FLAG_SECURE و زدن دکمه‌ی تأیید پایین صفحه
  • به صفحه‌ی New Patch برگردید و برای شروع فرایند پچ کردن، دکمه‌ی Start Patch را بزنید. پس از پایان فرایند، برای نصب اپلیکیشن پچ شده روی Install بزنید.
  • یک پنجره‌ی پاپ‌آپ در مورد تفاوت امضاها‌ی اپلیکیشن نصب شده و پچ شده ظاهر می‌شود. برای حذف نسخه‌ی نصب شده روی OK بزنید. پس از حذف نصب اپلیکیشن، LSPatch نسخه‌ی پچ شده‌ی آن را به‌طور خودکار نصب می‌کند.
زدن دکمه‌ی Start Patch در صفحه‌ی New Patch
اتمام فرآیند پچ شدن اپلیکیشن و انتخاب گزینه‌ی Install
پاپ‌آپِ هشدار درباره‌ی امضای متفاوت اپلیکیشن نصب شده و پچ شده و درخواست تأیید حذف اپلیکیشن نصب شده
پیغام درحال نصب اپلیکیشن پچ شده
  • پس از موفقیت آمیز بودن نصب، اپلیکیشن پچ شده در تب Apps در صفحه‌ی Manage لیست خواهد شد. فایل APK پچ‌شده در دایرکتوری انتخاب‌شده ذخیره می‌شود.
ظاهر شدن اپلیکیشن پچ شده در تب Apps در قسمت Manage اپلیکیشن LSPatch

نکته ۱: شیزوکو و به طبع آن LSPatch پس از هربار راه‌اندازی مجدد گوشی غیرفعال می‌شوند. البته مشکلی در عملکرد اپلیکیشن‌های پچ شده به‌وجود نخواهد آمد.

نکته ۲: درنظر داشته باشید که از آن‌جایی که نسخه‌ی پچ‌شده‌ای از اپلیکیشن با امضایی متفاوت از امضای سازنده تولید می‌شود، بنابراین از این روش نمی‌توان برای برنامه‌های سیستمی استفاده کرد.

حذف محدودیت اسکرین شات اندروید در دستگاه‌های روت شده

برای دستگاه‌های روت شده، ما از KernelSU با LSPosed و Zygisk Next یا Magisk با LSPosed استفاده خواهیم کرد.

پس از اینکه گوشی خود را با دنبال کردن آموزش روت کردن گوشی های اندروید یا دستورالعمل‌های مخصوص به گوشی خود، به وسیله‌ی Magisk یا KernelSU روت کردید، برای حذف محدودیت اسکرین‌شات به وسیله‌ی LSPosed و ماژول Disable FLAG_SECURE به‌صورت زیر عمل کنید.

ابزارهای مورد نیاز

  • دستگاه روت شده با KernelSU یا Magisk
  • LSPosed: ابزاری مبتنی‌بر Xposed Framework که اجازه‌ی دخالت و دستکاری در اپلیکیشن‌ها و پچ کردن آن‌ها بدون تغییر در فایل اجرایی اپلیکیشن یا APK را با استفاده از ماژول‌های مختلف ارائه می‌دهد.
  • Zygisk Next: ابزاری برای نصب ماژول‌ها در دستگا‌ه‌هایی که به‌روش KernelSU روت شده‌اند.
  • ماژول DisableFlagSecure: ماژول مبتنی‌بر LSPosed برای غیرفعال کردن FLAG_SECURE.

نصب Zygisk Next (مخصوص KernelSU)

برای فعال شدن برخی از ماژول‌ها از جمله ماژول LSPosed در KernelSU، باید فایل زیپ ماژول Zygisk Next را از صفحه‌ی گیت‌هاب آن دانلود کنید و از طریق KernelSU فلش بزنید. نام این فایل در زمان نگارش این راهنما، Zygisk-Next-1.0.5-305-d463cbb-release.zip است. برای فعال شدن ماژول، گوشی خود را ریستارت کنید.

صفحه‌ی ماژول‌های KenrelSU که ماژول نصب شده‌ای دیده نمی‌شود
انتخاب فایل ماژول Zygisk Next برای فلش کردن
اتمام فرآیند فلش ماژول Zygisk Next در KernelSU
صفحه‌ی ماژول‌های KernelSU که ماژول Zygisk Next در آن فعال است

فعال کردن Zygisk (مخصوص Magisk)

برای فلش کردن و استفاده از ماژول LSPosed در Magisk، باید ابتدا گزینه‌ی Zygisk را در تنظیمات Magisk فعال کنید.

نصب و فعال‌سازی LSPosed

  • فایل زیپ ماژول LSPosed را از صفحه‌ی گیت‌هاب آن دانلود کنید و آن را از طریق KernelSU یا Magisk فلش کنید. نام این فایل در زمان نگارش این راهنما،LSPosed-v1.9.2-7024-zygisk-release.zip است. برای فعال شدن ماژول، گوشی خود را ریستارت کنید.
انتخاب فایل ماژول LSPosed برای فلش کردن
اتمام فرآیند فلش ماژول LSPosed در KernelSU
صفحه‌ی ماژول‌های KernelSU که ماژول Zygisk Next و LSPosed در آن فعال است
  • اپلیکیشن LSPosed را از گوگل‌پلی نصب کنید.

نصب و فعال‌سازی ماژول DisableFlagSecure

  • فایل APK ماژول DisableFlagSecure برای LSPosed را از صفحه‌ی گیت‌هاب آن دانلود و نصب کنید. نام این ماژول در به‌روزرسانی آخر به Enable Screenshot تغییر یافته است و پس‌از نصب در تب Modules در LSPosed ظاهر می‌شود.
  • برنامه LSPosed را باز کنید و پس‌از کسب اجازه‌ی دسترسی روت، به تب Modules بروید و ماژول Enable Screenshot (Disable FLAG_SECURE قدیم) را فعال کنید. برای فعال کردن امکان گرفتن اسکرین‌شات در کل سیستم، مطمئن شوید که System Framework در تنظیمات ماژول انتخاب شده است. برای اعمال تغییرات، دستگاه خود را ریستارت کنید.
صفحه‌ی ماژول‌های LSPosed که ماژول Disable FLAG_SECURE در آن غیرفعال است
فعال کردن ماژول Disable FLAG_SECURE و گزینه‌ی System Framework

در مراحل غیرفعال کردن FLAG_SECURE در گوشی‌های روت شده، از KernelSU استفاده شد؛ اما به جز فلش کردن Zygisk Next، بقیه‌ی مراحل با تفاوت‌های اندک در Magisk قابل انجام است.

با دنبال کردن روش‌های ذکر شده در این مقاله، می‌توانید محدودیت اسکرین ریکورد یا اسکرین‌شات در دستگاه اندرویدی را از سر راه خود بردارید و چه هنگام گرفتن اسکرین شات در گوشی سامسونگ و چه گوشی شیائومی، هیچ چیز جلودار شما نخواهد بود.

آیا تابه‌حال موقعیتی برای شما پیش آمده که فعال بودن این ویژگی امنیتی، شما را به دردسر انداخته باشد؟ تجارب و پرسش‌های خود در رابطه با این آموزش را در بخش نظرات با ما به اشتراک بگذارید.

تبلیغات
داغ‌ترین مطالب روز
تبلیغات

نظرات