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

مجوزهای زمان اجرا در اندروید 6 و بالاتر به کاربران اجازه می‌دهد تا چه زمانی صدا را از میکروفون دستگاه یا ویدیو از دوربین دستگاه ضبط کنند، کنترل کنند. قبل از اینکه یک برنامه بتواند ضبط کند، یک کاربر باید از طریق گفتگویی که سیستم ارائه می دهد، به آن اجازه دهد یا رد کند.

Android 12 با نمایش نشانگرهایی که یک برنامه از منبع داده خصوصی از طریق دوربین‌ها و مجوزهای اجرای میکروفون استفاده می‌کند، شفافیت را در اختیار کاربران قرار می‌دهد. App-ops دسترسی به APIهای محافظت شده با مجوز زمان اجرا را ضبط می کند.

App-op هم وضعیت فعالیت و هم تعداد تماس‌های API منفرد را ردیابی می‌کند و با نشانگرهای میکروفون و دوربین در Android 12 تعامل می‌کند تا به کاربران نشان دهد که برنامه‌ها به داده‌های صوتی و دوربین دستگاه‌هایشان دسترسی پیدا کرده‌اند. وقتی کاربران روی نشانگرهای میکروفون یا دوربین کلیک می کنند، می بینند که کدام برنامه به داده های آنها دسترسی پیدا کرده است. این ویژگی برای همه OEM ها اجباری است.

الزامات دید نشانگر

این موارد برای نشانگرهای میکروفون و دوربین در دستگاه‌های دارای Android 12 یا بالاتر هستند:

  • نشانگرها باید در نوار وضعیت ظاهر شوند و بالاترین اولویت بصری را حفظ کنند (به عنوان مثال، در سمت راست ترین موقعیت در گوشه سمت راست بالا قرار دارند).
  • نشانگرها باید به طور پیوسته در یک موقعیت قرار داشته باشند و هنگام راه اندازی برنامه نباید توسط برنامه مسدود شوند.
  • هر دو نشانگر باید رنگ سبز (یا تغییر رنگ سبز) داشته باشند.
  • با کلیک بر روی یک یا هر دو نشانگر باید یک اعلان هزینه انتساب برنامه ارائه شود که موارد زیر را انجام می دهد:
    • نام برنامه ای را که از میکروفون و (یا) دوربین استفاده می کند نشان می دهد
    • نام برنامه ای را نشان می دهد که در 15 ثانیه گذشته از میکروفون و (یا) دوربین استفاده کرده است
    • کاربران را به صفحه مجوز برنامه در تنظیمات می برد

استفاده و ویژگی ها

در اندروید 12، رابط کاربری بین استفاده‌های در حال اجرا و استفاده‌های اخیر تمایز قائل می‌شود. استفاده‌ها در صورتی که توسط سیستم به‌عنوان «در حال اجرا» علامت‌گذاری شده باشند، یا کمتر از 5 ثانیه قدیمی باشند، «فعال» در نظر گرفته می‌شوند.

  • نمادهای نوار وضعیت هر بار که برنامه‌ای به میکروفون یا دوربین حساس به کاربر دسترسی دارد نشان داده می‌شود.
  • کاربران می‌توانند روی این نمادها کلیک کنند و ببینند کدام برنامه‌ها به میکروفون، دوربین یا هر دو دسترسی دارند.

Microphone and camera in-use indicators showing that access is active

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

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

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

Indicators for both active and recent access, and whether the access was from camera or microphone

شکل 2. نشانگرهای دسترسی فعال و اخیر

تصویر در شکل 2 نشانگرهای دسترسی فعال را نشان می دهد که در 5 ثانیه گذشته توسط یک برنامه در حال اجرا به داده ها دسترسی داشته باشید.

نشانگرهای دسترسی اخیر نشان می دهد که یک برنامه در 15 ثانیه قبل به داده ها دسترسی داشته است، اما برنامه فعال نیست. همه برنامه‌های فعال در گفتگو نشان داده می‌شوند، اما تنها یک برنامه به‌عنوان منبع دسترسی اخیر نشان داده می‌شود، حتی زمانی که بیش از 1 برنامه در بازه زمانی 15 ثانیه قبلی به داده‌ها دسترسی داشته باشند. نمای دسترسی ثابت می ماند تا زمانی که کاربر گفتگوی اعلان را رد کند.

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

کلاس PermissionManager روشی را برای پر کردن دیالوگ ارائه می دهد که در رابط کاربری سیستم قرار دارد.

  • رابط کاربری سیستم به سوئیچ پیکربندی دستگاه واکنش نشان می‌دهد: privacy/mic_camera_indicators_enabled .
  • سوئیچ ضروری است زیرا دو وسیله نقلیه تحویل جداگانه وجود دارد، به ترتیب:
    1. ارائه.
    2. فعال کردن
  • اگر روش در PermissionManager نتواند داده های مورد نیاز را ارائه دهد، رابط کاربری سیستم نباید خراب شود.

جریان فرآیند

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

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

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

Process flow for Permission Indicator functions

شکل 3. اجزای سیستم و (UI) انتقال جریان

انتقال های شماره گذاری شده در شکل 3 در زیر توضیح داده شده است:

1- یک برنامه اطلاعات خصوصی را از سیستم درخواست می کند.

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

3- ارائه دهنده داده به برنامه داده می دهد.

4-5 کاربر روی آیکون ها کلیک می کند. سیستم UI داده ها را از PermissionManager درخواست می کند و گفتگو را به کاربر ارائه می دهد.

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

  1. برنامه‌ها از میکروفون و دوربین استفاده می‌کنند و AppOpsManager.startOp ، stopOp و (یا) noteOp را صدا می‌زنند. با این کار رکوردهای app-op در سرور سیستم ایجاد می شود.
  2. رابط کاربری سیستم با استفاده از شنوندگان AppOpsManager.OnOpActiveChangedInternalListener و OnOpNotedListener به برنامه های جدید گوش می دهد. هنگامی که استفاده جدیدی وارد می شود (از طریق تماس با startOp یا noteOp )، رابط کاربری سیستم تأیید می کند که استفاده توسط یک برنامه سیستمی است.
  3. اگر رابط کاربری سیستم استفاده از برنامه سیستم را تأیید کند، و اگر استفاده از میکروفون باشد، رابط کاربری سیستم بررسی می‌کند که آیا میکروفون بی‌صدا است یا خیر.
  4. اگر رابط کاربری سیستم استفاده از برنامه های غیر سیستمی را تأیید کند (و برای استفاده از میکروفون، میکروفون خاموش است، برای استفاده از دوربین، دوربین روشن است)، نمادی را نشان می دهد که چنین استفاده ای را منعکس می کند.

اگر رابط کاربری سیستم یک noteOp دریافت کند که مدت زمان ندارد، نماد را برای حداقل 5 ثانیه نشان می دهد. در غیر این صورت، نماد یا تا زمانی که یک stopOp دریافت کند، یا به مدت 5 ثانیه، هر کدام طولانی‌تر باشد، نشان داده می‌شود. کاربر با کلیک بر روی یک نماد، هدفی را آغاز می کند که به PermissionController می رود تا گفتگو را شروع کند.

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

به دلیل این تغییر در اندروید 12 و بالاتر، برخی از اپلیکیشن ها باید یا رفتار خود را تغییر دهند یا رفتار خاصی را اعمال کنند.

تلفن باید هنگام کار با برنامه جستجوی Google Android (AGSA) و Google Mobile Services (GMS) استفاده از مجوز (برای محاسبه پشته میکروفون جداگانه مورد استفاده در تماس‌های تلفنی) را اجرا کند.