کنترل‌های به‌روزرسانی یکپارچه

«کنترل‌های به‌روزرسانی یکپارچه» (UUC) روشی واحد و منسجم برای کنترل زمان بارگیری و اعمال به‌روزرسانی‌های نرم‌افزار در دستگاه‌های Android تحت مالکیت شرکت در اختیار سرپرستان فناوری اطلاعات قرار می‌دهد تا به‌روزرسانی‌ها باعث اختلال در فعالیت‌های تجاری نشود.

با یک خط‌مشی UUC، می‌توانید به‌روزرسانی‌های مؤلفه‌های نرم‌افزاری زیر را کنترل کنید:

  • به‌روزرسانی‌های سیستم‌عامل که توسط سازنده دستگاه (OEM) صادر می‌شود، ازجمله به‌روزرسانی‌های اصلی سیستم‌عامل و به‌روزرسانی‌های امنیتی و سیستم‌عامل جزئی.
  • به‌روزرسانی‌های سیستم Google Play (Mainline).
  • سرویس‌های سیستم Google، مثل خدمات Google Play و Android System WebView، به‌صورت گروهی یا یک برنامه در هر بار.

قوانین «محتوای بارگذاری‌شده توسط کاربر» را در فیلد unifiedUpdatePolicy منبع Policy تعریف می‌کنید. برنامه Android Device Policy (ADP) نقطه تصمیم‌گیری مرکزی درون‌دستگاهی برای UUC است.

پیش‌نیازها

قبل‌از پیکربندی UUC، شرایط لازم زیر را تأیید کنید:

به‌روزرسانی هدف کاملاً مدیریت‌شده (مالک دستگاه) نمایه کاری در دستگاه‌های متعلق به شرکت (COPE)
خدمات سیستم Google Play‏ (GOOGLE_SYSTEM_SERVICES، SINGLE_APP) ‫Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) و بالاتر Android 15 (سطح میانای برنامه‌سازی کاربردی ۳۵) و بالاتر
به‌روزرسانی‌های سیستم Google Play /‏ Mainline‏ (GOOGLE_PLAY_SYSTEM_UPDATE) ‫Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) و بالاتر Android 15 (سطح میانای برنامه‌سازی کاربردی ۳۵) و بالاتر
به‌روزرسانی‌های سیستم‌عامل — سازندگان اصلی تجهیزات که از عامل Google OTA استفاده می‌کنند، مانند Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) ‫Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) و بالاتر Android 15 (سطح میانای برنامه‌سازی کاربردی ۳۵) و بالاتر
به‌روزرسانی‌های سیستم‌عامل — سایر سازندگان اصلی محصول (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) ‫Android 17 (سطح API‏ ۳۷) و بالاتر ‫Android 17 (سطح API‏ ۳۷) و بالاتر

ملاحظات و محدودیت‌ها

قبل‌از برنامه‌ریزی برای ادغام UUC، ملاحظات و محدودیت‌های زیر را مرور کنید:

  • دستیار راه‌اندازی اولیه: خط‌مشی‌های UUC تا زمانی که دستگاه در دستیار راه‌اندازی اولیه است اجرا نمی‌شوند. به‌روزرسانی‌های مهم از Google Play یا عامل OEM OTA می‌تواند درحین راه‌اندازی دستگاه انجام شود.
  • به‌روزرسانی‌های اولیه پس‌از راه‌اندازی: ممکن است خط‌مشی‌های UUC برای به‌روزرسانی‌های خودکاری که بلافاصله پس‌از راه‌اندازی دستگاه شروع می‌شوند (مثل به‌روزرسانی‌های اولیه «خدمات Google Play» قبل‌از اینکه خط‌مشی به ADP برسد) اعمال نشود.
  • مدول‌های OTA بسته‌ای: به‌روزرسانی‌های OTA سازنده اصلی تجهیزات می‌تواند حاوی نسخه‌های به‌روزشده مدول‌های Mainline و خدمات سیستم Google باشد. نصب به‌روزرسانی OTA سازنده اصلی محصول به‌طور خودکار آن مؤلفه‌های بسته‌بندی‌شده را به‌روز می‌کند.
  • به‌روزرسانی‌های سیستم Google Play (خط اصلی): UUC به‌روزرسانی «خط اصلی» را به‌عنوان یک واحد تکی کنترل می‌کند، بنابراین بسته‌های «خط اصلی» را نمی‌توان به‌طور مستقل کنترل کرد. UUC فقط شروع مرحله بارگیری را کنترل می‌کند: وقتی بارگیری Mainline شروع شود، نمی‌توان آن را متوقف کرد. اگر قانون BLOCK پس‌از شروع بارگیری اعمال شود، به‌روزرسانی همچنان در بازراه‌اندازی بعدی دستگاه تکمیل می‌شود.
  • به‌روزرسانی‌های دستی درطول دوره‌های مسدودسازی: برای به‌روزرسانی‌های سیستم Google Play (Mainline) و خدمات سیستم Google، قانون BLOCK فقط از به‌روزرسانی‌های خودکار جلوگیری می‌کند. کاربران همچنان می‌توانند این مؤلفه‌ها را به‌طور دستی به‌روز کنند، حتی وقتی قانون BLOCK فعال باشد. در نسخهٔ پخش بعدی به این مورد رسیدگی خواهد شد.
  • برنامه‌های معاف: UUC به‌روزرسانی‌های برنامه «فروشگاه Google Play» یا برنامه ADP را مدیریت نمی‌کند.

آشنایی با خط‌مشی‌های «محتوای تولیدشده توسط کاربر»

UnifiedUpdatePolicy شامل فهرست مرتب‌شده‌ای از اشیاء Rule است. هر قانون موارد زیر را مشخص می‌کند:

  • شناسه‌ای (id) که راهکار EMM شما تعریف کرده است
  • یک یا چند هدف به‌روزرسانی نرم‌افزار
  • مراحل ارزیابی اختیاری.
  • یک یا چند گزاره اختیاری حاوی شرایط مبتنی بر زمان
  • نتیجه‌ای که نحوه مدیریت به‌روزرسانی را تعیین می‌کند

ارزیابی قانون

هنگام ارزیابی به‌روزرسانی معلقه، ADP همه قوانینی را که برای هدف و مرحله آن به‌روزرسانی اعمال می‌شود، به‌ترتیبی که در rules ظاهر می‌شوند، درنظر می‌گیرد. ADP اولین قانونی را که گزاره آن به true ارزیابی می‌شود انتخاب می‌کند و نتیجه آن را اعمال می‌کند، مانند یک عبارت زنجیره‌ای if-else. اگر گزاره هیچ قانونی به true ارزیابی نشود، کارخواه به‌روزرسانی مسئول مؤلفه، به‌روزرسانی را به‌طور عادی مدیریت می‌کند.

شناسه‌های قانون

هر قانون به یک id با حداکثر ۶۴ نویسه نیاز دارد که راهکار EMM شما تعریف می‌کند. id نباید خالی باشد و باید در بین قوانین خط‌مشی منحصربه‌فرد باشد.

به‌روزرسانی هدف‌ها

هر قانون باید فهرست غیرخالی از targets بدون تکرار را مشخص کند. مشخص کردن چندین هدف در یک قانون معادل تعریف چندین قانون به‌صورت متوالی است که هرکدام یک هدف واحد دارند و به همان ترتیب هستند.

جدول زیر مقادیر targetType پشتیبانی‌شده را شرح می‌دهد:

به‌ارزش targetType شرح
OS_UPDATE_WITH_API_LEVEL_CHANGE به‌روزرسانی سیستم‌عامل که توسط OEM صادر شده است و سطح میانای برنامه‌سازی کاربردی Android دستگاه را تغییر می‌دهد (به‌روزرسانی اصلی سیستم‌عامل).
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE به‌روزرسانی سیستم‌عامل که توسط OEM صادر شده است و سطح میانای برنامه‌سازی کاربردی Android دستگاه را تغییر نمی‌دهد (به‌روزرسانی‌های امنیتی و سیستم‌عامل جزئی).
GOOGLE_PLAY_SYSTEM_UPDATE به‌روزرسانی‌های سیستم Google Play (Mainline). به‌روزرسانی Mainline را به‌عنوان یک موجودیت واحد کنترل می‌کند.
GOOGLE_SYSTEM_SERVICES خدمات سیستم Google به‌روزشده از Google Play، مثل خدمات Google Play و Android System WebView.
SINGLE_APP نام بسته سرویسی در Google Play که به GOOGLE_SYSTEM_SERVICES تعلق دارد، مثل com.google.android.webview. باید singleApp را با packageName برنامه تنظیم کنید.

مراحل ارزیابی

برای هدف‌های OS_UPDATE_WITH_API_LEVEL_CHANGE و OS_UPDATE_WITHOUT_API_LEVEL_CHANGE، می‌توانید به‌صورت اختیاری stages را که در آن قانون ارزیابی می‌شود مشخص کنید:

  • STAGE_DOWNLOAD: قانون قبل‌از بارگیری به‌روزرسانی ارزیابی می‌شود.
  • STAGE_APPLY: این قانون قبل‌از انجام کنشی که به‌روزرسانی را اعمال می‌کند، مثلاً راه‌اندازی مجدد خودکار، ارزیابی می‌شود.

اگر stages خالی باشد، قانون در همه مراحل ارزیابی می‌شود. توجه: برای هدف‌های GOOGLE_SYSTEM_SERVICES، SINGLE_APP، و GOOGLE_PLAY_SYSTEM_UPDATE، مراحل نادیده گرفته می‌شوند.

گزاره‌ها

predicate شرایط مبتنی بر زمان را تعریف می‌کند که تحت آن قانون مطابقت دارد—مانند روزهای هفته، پنجره زمانی روز (با جزئیات ساعت)، محدوده تاریخ تقویم در منطقه زمانی محلی دستگاه، یا مدت زمانی که به‌روزرسانی برای دستگاه دردسترس بوده است (به‌صورت مضربی از ۲۴ ساعت).

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

نتایج

outcome مشخص می‌کند که ADP چگونه به عامل به‌روزرسانی دستور می‌دهد تا زمانی که گزاره قانون به true ارزیابی می‌شود، ادامه دهد. جدول زیر مقادیر outcomeType پشتیبانی‌شده را شرح می‌دهد:

به‌ارزش outcomeType شرح
BLOCK از بارگیری یا اعمال به‌روزرسانی جلوگیری می‌کند. برای به‌روزرسانی‌هایی که ازطریق Google Play ارائه می‌شوند (GOOGLE_SYSTEM_SERVICES، SINGLE_APP، GOOGLE_PLAY_SYSTEM_UPDATE)، BLOCK فقط بر به‌روزرسانی‌های خودکار تأثیر می‌گذارد و مانع به‌روزرسانی‌های دستی توسط کاربر نمی‌شود. برای به‌روزرسانی‌های سیستم‌عامل OEM،‏ BLOCK از به‌روزرسانی‌های دستی و خودکار جلوگیری می‌کند.
USER_PROMPT بدون رضایت کاربر اقدام به به‌روزرسانی نمی‌کند و از کاربر می‌خواهد برای به‌روزرسانی اقدام کند.
FORCE فوراً اقدام مربوط به مرحله ارزیابی‌شده را آغاز می‌کند، مثلاً بارگیری به‌روزرسانی یا بازراه‌اندازی دستگاه برای اعمال آن.

حداکثر حد تعویق

UUC امکان به‌تعویق انداختن به‌روزرسانی‌ها با نتیجه BLOCK یا USER_PROMPT را تا حداکثر دوره تعویق برای هر هدف به‌روزرسانی فراهم می‌کند. وقتی به‌روزرسانی‌ای بیشتر از حداکثر دوره تعویقش دردسترس باشد، هر نتیجه BLOCK یا USER_PROMPT به پیش‌فرض لغو می‌شود و کارخواه به‌روزرسانی، به‌روزرسانی را به‌طور عادی مدیریت می‌کند.

جدول زیر حداکثر محدودیت‌های تعویق را براساس هدف و حالت مدیریت فهرست می‌کند:

گروه هدف به‌روزرسانی هدف دستگاه کاملاً مدیریت‌شده نمایه کاری در دستگاه متعلق به شرکت
به‌روزرسانی‌های بدون تغییر سطح میانای برنامه‌سازی کاربردی خدمات سیستم Google (مانند WebView) ۵ روز ۵ روز
به‌روزرسانی‌های بدون تغییر سطح میانای برنامه‌سازی کاربردی به‌روزرسانی‌های سیستم Google Play (خط اصلی) و به‌روزرسانی‌های سیستم OEM OTA بدون تغییر سطح میانای برنامه‌سازی کاربردی (ازجمله وصله‌های ماهانه مهم) ‫۲۵ روز ‫۲۵ روز
به‌روزرسانی‌ها با تغییرات سطح میانای برنامه‌سازی کاربردی به‌روزرسانی‌های سیستم OTA سازنده اصلی محصول با تغییر سطح میانای برنامه‌سازی کاربردی ‫۱۸۰ روز ۹۰ روز

اولویت systemUpdate

قبل‌از افزودن unifiedUpdatePolicy به خط‌مشی موجود، تنظیمات systemUpdate آن را مرور کنید و رفتار موردنیازتان را با قوانین UUC بازآفرینی کنید. برای مثال، برای اینکه به‌روزرسانی‌های سیستم‌عامل در ساعات کاری انجام نشود، از قانون BLOCK مانند قانون موجود در مسدود کردن به‌روزرسانی‌های اصلی سیستم‌عامل در ساعات کاری استفاده کنید.

این رفتار اولویت با «کنترل‌کننده‌های خط‌مشی دستگاه» سفارشی که از «کیت توسعه نرم‌افزار AMAPI» استفاده می‌کنند متفاوت است، که در آن SystemUpdatePolicy AOSP بر UUC برای به‌روزرسانی‌های OTA سازنده اصلی تجهیزات اولویت دارد. برای جزئیات، اولویت SystemUpdatePolicy در AOSP را ببینید.

پیکربندی خط‌مشی UUC

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

تنظیم خط‌مشی «محتوای بارگذاری‌شده توسط کاربر»

برای پیکربندی UUC، شیء unifiedUpdatePolicy را به خط‌مشی اضافه کنید. برای اعمال خط‌مشی «محتوای تولیدشده توسط کاربر» بدون تغییر دادن تنظیمات دیگر خط‌مشی موجود، enterprises.policies.patch را با updateMask=unifiedUpdatePolicy فراخوانی کنید:

PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "Block Policy",
        "targets": [
          {
            "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
          }
        ],
        "predicate": {
          "daysOfWeek": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY"
          ],
          "timeOfDayLowerBound": { "hours": 9 },
          "timeOfDayUpperBound": { "hours": 17 }
        },
        "outcome": {
          "outcomeType": "BLOCK"
        }
      }
    ]
  }
}

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

بازیابی کردن خط‌مشی UUC

برای خواندن قوانین پیکربندی‌شده UUC، enterprises.policies.get را فراخوانی کنید و فیلد unifiedUpdatePolicy خط‌مشی برگردانده‌شده را بررسی کنید:

GET https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}

پاک کردن خط‌مشی UUC

برای برداشتن همه قوانین UUC از خط‌مشی، enterprises.policies.patch را با updateMask=unifiedUpdatePolicy و بدنه درخواستی که حاوی unifiedUpdatePolicy نباشد فراخوانی کنید:

PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{}

نمونه‌های پیکربندی خط‌مشی

مثال‌های زیر شیء unifiedUpdatePolicy را برای سناریوهای رایج نشان می‌دهد. آن‌ها را با enterprises.policies.patch همان‌طور که در تنظیم خط‌مشی UUC شرح داده شده است اعمال کنید. همین سناریوها به‌صورت کد Kotlin و Java در پیکربندی کنترل‌های به‌روزرسانی یکپارچه با کیت توسعه نرم‌افزار AMAPI دردسترس است.

مسدود کردن به‌روزرسانی‌های اصلی سیستم‌عامل درطول ساعت کاری

قانون زیر به‌روزرسانی‌های اصلی سیستم‌عامل (OS_UPDATE_WITH_API_LEVEL_CHANGE) را از ساعت ۹:۰۰ تا ۱۷:۰۰، از دوشنبه تا جمعه مسدود می‌کند:

{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "Block Policy",
        "targets": [
          {
            "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
          }
        ],
        "predicate": {
          "daysOfWeek": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY"
          ],
          "timeOfDayLowerBound": { "hours": 9 },
          "timeOfDayUpperBound": { "hours": 17 }
        },
        "outcome": {
          "outcomeType": "BLOCK"
        }
      }
    ]
  }
}

اجباری کردن به‌روزرسانی‌های سیستم‌عامل براساس سن به‌روزرسانی

قانون زیر به‌روزرسانی‌های اصلی سیستم‌عامل را که تا ۷ روز برای دستگاه دردسترس بوده‌اند اجباری می‌کند (604800s):

{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "Force Policy",
        "targets": [
          {
            "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
          }
        ],
        "predicate": {
          "updateAgeUpperBound": "604800s"
        },
        "outcome": {
          "outcomeType": "FORCE"
        }
      }
    ]
  }
}

مسدود کردن به‌روزرسانی‌ها برای یک برنامه خدمات سیستم Google

برای کنترل برنامه خاصی که بخشی از سرویس‌های سیستم Google است، مثل Android System WebView (com.google.android.webview)،‏ targetType را روی SINGLE_APP تنظیم کنید و packageName برنامه را در singleApp ارائه دهید. قانون زیر به‌روزرسانی‌های «وب‌نما» را از ساعت ۹:۰۰ تا ۱۷:۰۰، از دوشنبه تا جمعه مسدود می‌کند:

{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "Block Webview Policy",
        "targets": [
          {
            "targetType": "SINGLE_APP",
            "singleApp": {
              "packageName": "com.google.android.webview"
            }
          }
        ],
        "predicate": {
          "daysOfWeek": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY"
          ],
          "timeOfDayLowerBound": { "hours": 9 },
          "timeOfDayUpperBound": { "hours": 17 }
        },
        "outcome": {
          "outcomeType": "BLOCK"
        }
      }
    ]
  }
}

ترکیب کردن چند قانون در همه هدف‌های به‌روزرسانی

ازآنجایی‌که قوانین به‌ترتیب ارزیابی می‌شوند، می‌توانید چندین قانون را برای مسدود کردن به‌روزرسانی‌ها درطول پنجره‌های خاص و اجبار به‌روزرسانی‌ها در خارج از آن پنجره‌ها ترکیب کنید.

مثال زیر دو قانون متوالی را در چهار هدف مقوله‌ای (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE، GOOGLE_SYSTEM_SERVICES، و GOOGLE_PLAY_SYSTEM_UPDATE) اعمال می‌کند:

  1. مسدود کردن همه به‌روزرسانی‌ها درطول ساعت کاری (دوشنبه تا جمعه، ۹:۰۰ تا ۱۷:۰۰).
  2. خارج از ساعت کاری، به‌روزرسانی‌هایی را که تا ۷ روز دردسترس بوده‌اند اجباری کنید.
{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "Block Policy - rule1",
        "targets": [
          { "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
          { "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
          { "targetType": "GOOGLE_SYSTEM_SERVICES" },
          { "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
        ],
        "predicate": {
          "daysOfWeek": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY"
          ],
          "timeOfDayLowerBound": { "hours": 9 },
          "timeOfDayUpperBound": { "hours": 17 }
        },
        "outcome": {
          "outcomeType": "BLOCK"
        }
      },
      {
        "id": "Force Policy - rule2",
        "targets": [
          { "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
          { "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
          { "targetType": "GOOGLE_SYSTEM_SERVICES" },
          { "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
        ],
        "predicate": {
          "updateAgeUpperBound": "604800s"
        },
        "outcome": {
          "outcomeType": "FORCE"
        }
      }
    ]
  }
}

محدود کردن به‌روزرسانی‌ها تا تاریخ تقویم

می‌توانید از dateLowerBound و dateUpperBound برای محدود کردن یا مجاز کردن به‌روزرسانی‌ها در محدوده تاریخ تقویم خاصی در منطقه زمانی محلی دستگاه استفاده کنید. قانون زیر به‌روزرسانی‌های چهار هدف دسته‌ای را تا ۱۴ مارس ۲۰۲۶ مسدود می‌کند:

{
  "unifiedUpdatePolicy": {
    "rules": [
      {
        "id": "block_until_date",
        "targets": [
          { "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
          { "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
          { "targetType": "GOOGLE_SYSTEM_SERVICES" },
          { "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
        ],
        "predicate": {
          "dateUpperBound": { "year": 2026, "month": 3, "day": 14 }
        },
        "outcome": {
          "outcomeType": "BLOCK"
        }
      }
    ]
  }
}