Device Trust از Android Enterprise - سیگنال‌های دردسترس

‫Device Trust از Android Enterprise مجموعه‌ای از نشان‌های وضعیت دستگاه را در Device دردسترس قرار می‌دهد که برنامه‌های مجاز (ازجمله برنامه‌های موجود در فهرست مجاز و برنامه‌هایی که نقش COMPANION_APP به آن‌ها اختصاص داده شده است (به مدیریت نقش‌های برنامه و پیکربندی خط‌مشی مراجعه کنید)) می‌توانند برای محاسبه امتیاز اعتماد دستگاه به آن‌ها دسترسی داشته باشند.

هر فیلد سیگنال در Device و کلاس‌های مدل تودرتوی آن شامل یک روش get*Metadata() متناظر است که Metadata را برمی‌گرداند، که هرگونه Metadata.DataIssue مواجه‌شده هنگام بازیابی سیگنال (مانند اجازه‌های مانیفست مفقود) را گزارش می‌دهد.

برای کسب اطلاعات درباره نحوه ادغام Android Management API SDK در برنامه‌تان، Device Trust از Android Enterprise - راهنمای ادغام را ببینید.

نشان‌ها
نسخه سیستم‌عامل
Device#getSoftwareInfo() یک SoftwareInfo شیء حاوی جزئیات نسخه سیستم‌عامل را برمی‌گرداند (نسخه‌های قدیمی‌تر سیستم‌عامل معمولاً آسیب‌پذیری‌های بیشتری دارند):
نسخه Android Device Policy
SoftwareInfo#getAndroidDevicePolicyVersionCode() و SoftwareInfo#getAndroidDevicePolicyVersionName() کد نسخه و نام نسخه قابل‌مشاهده برای کاربر برنامه Android Device Policy را در دستگاه برمی‌گرداند.
آیا دستگاه OTA معلقه دارد
SoftwareInfo#getSystemUpdateInfo() SoftwareInfo.SystemUpdateInfo را برمی‌گرداند که نشان می‌دهد آیا به‌روزرسانی سیستم‌عامل معلقی برای دستگاه وجود دارد یا نه (پروکسی برای اینکه آیا دستگاه دربرابر سوءاستفاده آسیب‌پذیر است یا نه):
سطح وصله امنیتی دستگاه
SoftwareInfo#getDeviceSecurityPatchInfos() فهرستی از اشیاء SoftwareInfo.SecurityPatchInfo (با getComponent() و getSecurityPatchLevel() که فهرستی از اشیاء SecurityPatchLevel را برمی‌گرداند) برای سطح وصله امنیتی فعلی دستگاه در انواع SecurityPatchComponent قابل‌به‌روزرسانی برمی‌گرداند:
سطح وصله امنیتی منتشرشده
SoftwareInfo#getPublishedSecurityPatchInfos() فهرستی از اشیاء SoftwareInfo.SecurityPatchInfo (با getComponent() و getSecurityPatchLevel() که فهرستی از اشیاء SecurityPatchLevel را برمی‌گرداند) برای سطح وصله امنیتی منتشرشده فعلی در انواع SecurityPatchComponent قابل‌به‌روزرسانی برمی‌گرداند:
جزئیات مهم برنامه
Device#getApplicationReports() جزئیات مربوط به همه برنامه‌های نصب‌شده را به برنامه‌های توسعه‌پذیری و برنامه‌های تماس‌گیرنده با نقش COMPANION_APP در دستگاه تحت‌مدیریت AMAPI برمی‌گرداند (به مدیریت نقش‌های برنامه و پیکربندی خط‌مشی مراجعه کنید؛ وقتی از داخل نمایه کاری فراخوانی شود، گزارش‌ها به برنامه‌های نصب‌شده در نمایه کاری محدود می‌شود). برای همه تماس‌گیرندگان دیگر (مانند برنامه‌های موجود در فهرست مجاز)، Device#getApplicationReports() جزئیات را فقط برای برنامه‌های حیاتی زیر برمی‌گرداند:
  • com.android.chrome
  • com.google.android.gms
  • com.google.android.apps.work.clouddpc
  • com.android.vending
  • بسته «وب‌نمای» فعلی دستگاه (مانند com.google.android.webview)
جزئیات به‌صورت فهرستی از ApplicationReport شیء برگردانده می‌شود که موارد زیر را نشان می‌دهد:
اطلاعات سخت‌افزار دستگاه
‫ Device#getHardwareInfo() HardwareInfo را برمی‌گرداند که این موارد را نشان می‌دهد:
پیچیدگی قفل صفحه
Device#getDeviceSettings() DeviceSettings#getScreenLockComplexity() را ارائه می‌دهد و مقدار DeviceSettings.ScreenLockComplexity را برمی‌گرداند که نشان‌دهنده میزان پیچیدگی قفل صفحه کاربر یا نمایه فعلی است.
وضعیت مدیریت (و برنامه مدیریت)
اطلاعات برگردانده‌شده به نمایه‌ای بستگی دارد که برنامه در آن اجرا می‌شود. برای جزئیات، جدول وضعیت مدیریت را ببینید.
رمزگذاری دیسک
DeviceSettings#getEncryptionStatus() مقدار DeviceSettings.EncryptionStatus را برمی‌گرداند که نشان می‌دهد فضای ذخیره‌سازی دستگاه رمزگذاری شده است یا نه.
وضعیت شبکه دسترسی (وضعیت شبکه و وضعیت Wi-Fi)
Device#getNetworkInfo() یک شیء NetworkInfo برمی‌گرداند، و NetworkInfo#getNetworkParams() فهرستی از اشیاء NetworkInfo.NetworkParams را با جزئیات مربوط به همه شبکه‌های فعال در دستگاه برمی‌گرداند:
سپر ایمنی Google Play VerifyApps
آیا «ساناد ازطریق TLS» فعال است
NetworkParams#getPrivateDnsState() مقدار PrivateDnsState را برمی‌گرداند که نشان می‌دهد آیا از ساناد خصوصی در شبکه استفاده می‌شود یا نه.
بسته وب‌نما
SoftwareInfo#getWebviewPackage() نام بسته «وب‌نما» فعلی را برمی‌گرداند.
نام کسب‌وکار قابل‌خواندن برای انسان ارائه‌دهنده مدیریت
در دستگاه‌های تحت مدیریت AMAPI، Device#getManagementProviderInfo() یک شیء ManagementProviderInfo برمی‌گرداند که روش getBusinessName() آن نام کسب‌وکار قابل‌خواندن برای انسان ارائه‌دهنده مدیریت را ارائه می‌دهد. این فیلد در دستگاه‌های مدیریت‌نشده یا دستگاه‌هایی که با DPC سفارشی مدیریت می‌شوند تنظیم نشده است.

وضعیت مدیریت

مقادیر برگردانده‌شده برای نشان‌های مدیریت به نمایه‌ای بستگی دارد که برنامه‌تان در آن اجرا می‌شود. برای دسترسی به سیگنال‌ها از داخل «نمایه شخصی»، در دستگاه مدیریت‌نشده، یا در دستگاهی که توسط DPC سفارشی مدیریت می‌شود، برنامه شما باید در فهرست مجاز باشد. در دستگاه کاملاً مدیریت‌شده تحت مدیریت AMAPI یا از داخل «نمایه کاری»، برنامه‌هایی که نقش COMPANION_APP به آن‌ها اختصاص داده شده است نیز می‌توانند بدون قرار گرفتن در فهرست مجاز به این سیگنال‌ها دسترسی داشته باشند (محدود به سیگنال‌های نمایه کاری وقتی که در داخل نمایه کاری فراخوانی شوند).

وضعیت مدیریت سیگنال‌ها هنگام فراخوانی از داخل «نمایه شخصی» سیگنال‌ها هنگام فراخوانی از داخل «نمایه کاری»
دستگاه مدیریت‌نشده ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
N/A
نمایه کاری در دستگاه شخصی (BYOD) ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
ownership: PERSONALLY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
نمایه کاری در دستگاه متعلق به شرکت ownership: COMPANY_OWNED
managementMode: UNMANAGED
managementAppPackageName:N/A
workProfileState:
ownership: COMPANY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
دستگاه کاملاً مدیریت‌شده N/A ownership: COMPANY_OWNED
managementMode: DEVICE_OWNER
managementAppPackageName: Package name of the Device Owner application
workProfileState: