شاخص های حریم خصوصی

اندروید با نمایش شاخص‌های حریم خصوصی برای انواع دسترسی‌های زیر، شفافیت را برای کاربران فراهم می‌کند:

  • دسترسی به دوربین و میکروفون. این نشانگر زمانی ظاهر می‌شود که یک برنامه از طریق مجوزهای برنامه دوربین و میکروفون از یک منبع داده خصوصی استفاده کند. برای الزام CDD مربوطه، به بخش ۲.۲.۵. مدل امنیتی مراجعه کنید.

  • دسترسی به موقعیت مکانی. این نشانگر زمانی ظاهر می‌شود که یک برنامه به موقعیت مکانی دستگاه دسترسی پیدا کند. برای الزامات مربوط به CDD، به بخش 9.8.8 مراجعه کنید. موقعیت مکانی .

کاربران برای مشاهده‌ی اینکه کدام برنامه‌ها به داده‌هایشان دسترسی پیدا کرده‌اند، روی یک نشانگر ضربه می‌زنند.

کاربردهای فعال و اخیر

رابط کاربری اندروید بین میزان مصرف در حال اجرا و میزان مصرف اخیر تمایز قائل می‌شود:

  • در اندروید ۱۷ یا بالاتر، استفاده از موقعیت مکانی در صورتی فعال در نظر گرفته می‌شود که توسط سیستم به عنوان در حال اجرا علامت‌گذاری شده باشد یا کمتر از ۱۰ ثانیه از زمان استفاده از آن گذشته باشد. برای نقطه موقعیت مکانی، دسترسی در صورتی فعال در نظر گرفته می‌شود که برنامه غیرسیستمی در حالت پیش‌زمینه اجرا شود.

  • در اندروید ۱۲ یا بالاتر، استفاده از میکروفون و دوربین در صورتی فعال تلقی می‌شود که توسط سیستم به عنوان در حال اجرا علامت‌گذاری شده باشد، یا کمتر از پنج ثانیه از زمان استفاده از آنها گذشته باشد.

آیکون‌های نوار وضعیت هر بار که یک برنامه به میکروفون، دوربین یا موقعیت مکانی حساس به کاربر دسترسی مداوم دارد، نشان داده می‌شوند. کاربران می‌توانند روی این آیکون‌ها ضربه بزنند و ببینند کدام برنامه‌ها به میکروفون، دوربین، موقعیت مکانی یا ترکیبی از این موارد دسترسی دارند. در اینجا مثالی از نشانگرهای در حال استفاده آورده شده است:

شاخص‌های نشان دهنده دسترسی فعال

شکل ۱. نشانگرهای در حال استفاده که دسترسی فعال را نشان می‌دهند (گوشه بالا سمت راست).

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

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

شاخص‌های دسترسی و منبع فعال و اخیر

شکل ۲. شاخص‌های دسترسی فعال و اخیر.

شاخص‌های دسترسی اخیر نشان می‌دهند که یک برنامه در طول ۱۵ ثانیه قبل (یا ۲۰ ثانیه برای داده‌های موقعیت مکانی) به داده‌ها دسترسی داشته است، اما برنامه فعال نیست. همه برنامه‌های فعال در کادر محاوره‌ای نشان داده می‌شوند، اما فقط یک برنامه به عنوان منبع دسترسی اخیر نشان داده می‌شود، حتی زمانی که بیش از یک برنامه در یک بازه زمانی ۱۵ یا ۲۰ ثانیه قبل به داده‌ها دسترسی داشته باشند. همه برنامه‌هایی که در پنجره زمانی فعال یا اخیر به داده‌های موقعیت مکانی دسترسی داشته‌اند در کادر محاوره‌ای نشان داده می‌شوند. نمای دسترسی تا زمانی که کاربر کادر اعلان را ببندد، باقی می‌ماند.

تحویل و فعال کردن

کلاس PermissionManager روشی برای پر کردن کادر محاوره‌ای (که در رابط کاربری سیستم قرار دارد) ارائه می‌دهد. رابط کاربری سیستم به سوئیچ پیکربندی دستگاه privacy/mic_camera_indicators_enabled واکنش نشان می‌دهد؛ این سوئیچ ضروری است زیرا دو وسیله تحویل جداگانه وجود دارد: (1) Deliver، سپس (2) Enable.

جریان فرآیند

عملکرد نشانگر مجوز سه بخش اصلی دارد:

  • برنامه‌ها
  • شاخص‌ها (که توسط رابط کاربری سیستم مدیریت می‌شوند)
  • راهی برای تعیین اینکه کدام برنامه‌ها از داده‌ها استفاده می‌کنند

PermissionController مکانیزمی را برای تعیین اینکه کدام برنامه‌ها از داده‌ها استفاده می‌کنند، فراهم می‌کند. رابط کاربری سیستم، برنامه‌هایی را که از داده‌های خصوصی استفاده می‌کنند، شناسایی می‌کند. رابط کاربری سیستم، آیکونی را در نوار ناوبری بالا نشان می‌دهد که مربوط به مجوزهای استفاده شده است. PermissionController هنگامی که کاربر روی یک آیکون کلیک می‌کند، داده‌های مربوط به میزان استفاده را نمایش می‌دهد.

جریان فرآیند برای توابع نشانگر مجوز

شکل ۳. جریان اجزای سیستم و انتقال‌های (رابط کاربری).

  • ۱- یک برنامه، داده‌های خصوصی را از سیستم درخواست می‌کند.

  • ۲- سیستم مجوزها را بررسی می‌کند. اگر مجوزها مجاز باشند، سیستم به ارائه‌دهنده داده اطلاع می‌دهد و میزان استفاده در عملیات برنامه را یادداشت می‌کند.

  • ۳- ارائه‌دهنده داده، داده‌ها را به برنامه می‌دهد.

  • ۴-۵ کاربر روی آیکون‌ها کلیک می‌کند. رابط کاربری سیستم، داده‌ها را از PermissionManager درخواست می‌کند و کادر محاوره‌ای را به کاربر نمایش می‌دهد.

جزئیات فرآیند

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

  1. برنامه‌ها با فراخوانی AppOpsManager.startOp ، stopOp یا noteOp از میکروفون، دوربین یا موقعیت مکانی استفاده می‌کنند. این کار باعث ایجاد رکوردهای عملیاتی برنامه در سرور سیستم می‌شود. در نسخه ۱۷ و بالاتر، نشانگر موقعیت مکانی نیز از این رکوردهای عملیاتی برنامه استفاده می‌کند.

  2. رابط کاربری سیستم با استفاده از شنونده‌های AppOpsManager.OnOpActiveChangedInternalListener و OnOpNotedListener به دنبال عملیات جدید برنامه می‌گردد. هنگامی که یک کاربرد جدید (از طریق فراخوانی startOp یا noteOp ) وارد می‌شود، رابط کاربری سیستم تأیید می‌کند که این کاربرد توسط یک برنامه سیستمی انجام شده است:

    • اگر رابط کاربری سیستم، استفاده از برنامه سیستم را تأیید کند، و اگر این استفاده مربوط به میکروفون باشد، رابط کاربری سیستم بررسی می‌کند که آیا میکروفون بی‌صدا شده است یا خیر.

    • اگر رابط کاربری سیستم، استفاده از برنامه‌های غیرسیستمی را تأیید کند (و برای استفاده از میکروفون، میکروفون بی‌صدا نباشد؛ برای استفاده از دوربین، دوربین روشن باشد)، نمادی را نشان می‌دهد که منعکس‌کننده چنین استفاده‌ای است.

    • اگر رابط کاربری سیستم، استفاده از برنامه‌های غیرسیستمی را تأیید کند، آیکونی را نشان می‌دهد که نشان‌دهنده چنین استفاده‌ای است، مشروط بر اینکه گزینه‌های مربوطه فعال باشند:

      • برای میکروفون: میکروفون بی‌صدا نیست.
      • برای دوربین: دوربین روشن است.
      • برای موقعیت مکانی: برنامه در حالت پیش‌زمینه اجرا می‌شود.

اگر رابط کاربری سیستم، دستور noteOp دریافت کند که مدت زمان مشخصی نداشته باشد، آیکون را حداقل به مدت ۵ ثانیه (۱۰ ثانیه برای location) نمایش می‌دهد. در غیر این صورت، آیکون یا تا زمان دریافت stopOp یا حداقل به مدت ۵ یا ۱۰ ثانیه، هر کدام که طولانی‌تر باشد، نمایش داده می‌شود. کلیک کاربر روی یک آیکون، یک intent را آغاز می‌کند که برای شروع دیالوگ به PermissionController می‌رود.

PermissionController تمام استفاده‌های اخیر از میکروفون، دوربین و موقعیت مکانی را بارگذاری می‌کند. این برنامه بررسی می‌کند که آیا هر یک از این موارد در حال اجرا هستند یا در بازه زمانی تعیین‌شده توسط رابط کاربری سیستم (۱۵ ثانیه برای میکروفون یا دوربین، ۲۰ ثانیه برای موقعیت مکانی) اجرا می‌شدند. اگر موردی منطبق پیدا کند، نام برنامه و مجوزهای استفاده‌شده را نمایش می‌دهد.

تلفن باید هنگام کار با برنامه جستجوی گوگل اندروید (AGSA) و GMS، استفاده از مجوز را پیاده‌سازی کند (تا میکروفون جداگانه‌ای که در تماس‌های تلفنی استفاده می‌شود را در نظر بگیرد).