การควบคุมการอัปเดตแบบรวม

Unified Update Controls (UUC) ช่วยให้ผู้ดูแลระบบไอทีมีวิธีที่สอดคล้องกันและเป็นหนึ่งเดียวในการควบคุมเวลาที่ดาวน์โหลดและใช้การอัปเดตซอฟต์แวร์ในอุปกรณ์ Android ของบริษัท เพื่อไม่ให้การอัปเดตรบกวนการดำเนินธุรกิจ

นโยบาย UUC เพียงนโยบายเดียวช่วยให้คุณควบคุมการอัปเดตสำหรับคอมโพเนนต์ซอฟต์แวร์ต่อไปนี้ได้

  • การอัปเดตระบบปฏิบัติการที่ออกโดยผู้ผลิตอุปกรณ์ (OEM) ซึ่งรวมถึงการอัปเดตระบบปฏิบัติการหลักและการอัปเดตระบบปฏิบัติการและการอัปเดตความปลอดภัยย่อย
  • การอัปเดตระบบ Google Play (เมนไลน์)
  • บริการระบบของ Google เช่น บริการ Google Play และ Android System WebView โดยจะอัปเดตเป็นกลุ่มหรือทีละแอปก็ได้

คุณกำหนดกฎ UUC ในช่อง unifiedUpdatePolicy ของทรัพยากร Policy แอป Android Device Policy (ADP) เป็นจุดตัดสินใจหลักในอุปกรณ์สำหรับ UUC

ข้อกำหนดเบื้องต้น

ก่อนกำหนดค่า UUC โปรดตรวจสอบข้อกำหนดต่อไปนี้

อัปเดตเป้าหมาย มีการจัดการครบวงจร (เจ้าของอุปกรณ์) โปรไฟล์งานในอุปกรณ์ของบริษัท (COPE)
บริการระบบ Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP) Android 13 (ระดับ API 33) ขึ้นไป Android 15 (ระดับ API 35) ขึ้นไป
การอัปเดตระบบ Google Play / เมนไลน์ (GOOGLE_PLAY_SYSTEM_UPDATE) Android 13 (ระดับ API 33) ขึ้นไป Android 15 (ระดับ API 35) ขึ้นไป
การอัปเดตระบบปฏิบัติการ - OEM ที่ใช้ตัวแทน Google OTA เช่น Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) Android 13 (ระดับ API 33) ขึ้นไป Android 15 (ระดับ API 35) ขึ้นไป
การอัปเดตระบบปฏิบัติการ - OEM อื่นๆ (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) Android 17 (ระดับ API 37) ขึ้นไป Android 17 (ระดับ API 37) ขึ้นไป

ข้อควรพิจารณาและข้อจำกัด

โปรดอ่านข้อควรพิจารณาและข้อจำกัดต่อไปนี้ก่อนวางแผนการผสานรวม UUC

  • วิซาร์ดการตั้งค่าเริ่มต้น: ระบบจะไม่บังคับใช้นโยบาย UUC ขณะที่อุปกรณ์อยู่ในวิซาร์ดการตั้งค่าเริ่มต้น การอัปเดตที่สำคัญจาก Google Play หรือตัวแทน OTA ของ OEM อาจเกิดขึ้นระหว่างการตั้งค่าอุปกรณ์
  • การอัปเดตก่อนกำหนดหลังการตั้งค่า: นโยบาย UUC อาจไม่มีผลกับการอัปเดตอัตโนมัติที่เริ่มทันทีหลังจากการตั้งค่าอุปกรณ์ เช่น การอัปเดตบริการ Google Play ก่อนกำหนด ก่อนที่นโยบายจะถึง ADP
  • โมดูล OTA ที่รวมมาด้วย: การอัปเดต OTA ของ OEM อาจมีโมดูล Mainline และบริการของระบบของ Google เวอร์ชันที่อัปเดต การติดตั้งการอัปเดต OTA ของ OEM จะอัปเดตคอมโพเนนต์ที่รวมมาเหล่านั้นโดยอัตโนมัติ
  • การอัปเดตระบบ Google Play (เมนไลน์): UUC จะควบคุมการอัปเดตเมนไลน์เป็นหน่วยเดียว ดังนั้นจึงไม่สามารถควบคุมแพ็กเกจเมนไลน์แต่ละแพ็กเกจแยกกันได้ UUC จะควบคุมเฉพาะการเริ่มต้นของระยะการดาวน์โหลดเท่านั้น เมื่อการดาวน์โหลด Mainline เริ่มต้นขึ้นแล้ว จะหยุดไม่ได้ หากมีการใช้กฎ BLOCK หลังจากเริ่มดาวน์โหลด การอัปเดตจะยังคงเสร็จสมบูรณ์เมื่อรีบูตอุปกรณ์ครั้งถัดไป
  • การอัปเดตด้วยตนเองในช่วงระยะเวลาที่บล็อก: สำหรับการอัปเดตระบบ Google Play (Mainline) และบริการระบบของ Google กฎ BLOCK จะป้องกันเฉพาะการอัปเดตอัตโนมัติเท่านั้น ผู้ใช้ยังคงอัปเดตคอมโพเนนต์เหล่านี้ด้วยตนเองได้แม้ว่ากฎ BLOCK จะทำงานอยู่ก็ตาม เราจะแก้ไขการโหวตซ้ำนี้ในการเปิดตัวรุ่นต่อๆ ไป
  • แอปพลิเคชันที่ได้รับการยกเว้น: UUC จะไม่จัดการการอัปเดตสำหรับแอป Google Play Store หรือแอป ADP

ทำความเข้าใจนโยบาย UUC

UnifiedUpdatePolicy ประกอบด้วยรายการออบเจ็กต์ Rule ที่จัดเรียงตามลำดับ โดยแต่ละกฎจะระบุข้อมูลต่อไปนี้

  • ตัวระบุ (id) ที่กำหนดโดยโซลูชัน EMM
  • เป้าหมายการอัปเดตซอฟต์แวร์อย่างน้อย 1 รายการ
  • ขั้นตอนการประเมินที่ไม่บังคับ
  • เพรดิเคตที่ไม่บังคับอย่างน้อย 1 รายการซึ่งมีเงื่อนไขตามเวลา
  • ผลลัพธ์ที่กำหนดวิธีจัดการการอัปเดต

การประเมินกฎ

เมื่อประเมินการอัปเดตที่รอดำเนินการ ADP จะพิจารณากฎทั้งหมดที่ใช้กับเป้าหมายและระยะของการอัปเดตนั้นตามลำดับที่ปรากฏใน rules ADP จะเลือกกฎข้อแรกที่มีเพรดิเคตที่ประเมินเป็น true และใช้ผลลัพธ์ของกฎนั้น เช่น คำสั่ง if-else ที่ต่อกัน หากไม่มีเพรดิเคตของกฎที่ประเมินเป็น true ไคลเอ็นต์การอัปเดตที่รับผิดชอบคอมโพเนนต์จะจัดการการอัปเดตตามปกติ

ตัวระบุกฎ

กฎแต่ละข้อต้องมี id ที่มีความยาวไม่เกิน 64 อักขระซึ่งกำหนดโดยโซลูชัน EMM id ต้องไม่เว้นว่างและต้องไม่ซ้ำกันในกฎของนโยบาย

อัปเดตเป้าหมาย

กฎแต่ละข้อต้องระบุรายการ targets ที่ไม่ว่างเปล่าและไม่มีรายการซ้ำ การระบุเป้าหมายหลายรายการในกฎเดียวเทียบเท่ากับการกำหนดกฎหลายข้อตามลำดับ โดยแต่ละกฎมีเป้าหมายเดียวในลำดับเดียวกัน

ตารางต่อไปนี้อธิบายค่า targetType ที่รองรับ

ค่า targetType คำอธิบาย
OS_UPDATE_WITH_API_LEVEL_CHANGE การอัปเดตระบบปฏิบัติการที่ออกโดย OEM ซึ่งเปลี่ยนระดับ API ของ Android ในอุปกรณ์ (การอัปเดตระบบปฏิบัติการหลัก)
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE การอัปเดตระบบปฏิบัติการที่ออกโดย OEM ซึ่งไม่เปลี่ยนระดับ API ของ Android ในอุปกรณ์ (การอัปเดตระบบปฏิบัติการและการอัปเดตความปลอดภัยเล็กน้อย)
GOOGLE_PLAY_SYSTEM_UPDATE การอัปเดตระบบ Google Play (เมนไลน์) ควบคุมการอัปเดต 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 กำหนดเงื่อนไขตามเวลาที่กฎตรงกัน เช่น วันในสัปดาห์ กรอบเวลาของวัน (ที่ความละเอียดระดับชั่วโมง) ช่วงวันที่ในปฏิทินในเขตเวลาท้องถิ่นของอุปกรณ์ หรือระยะเวลาที่อุปกรณ์พร้อมใช้งานการอัปเดต (เป็นจำนวนทวีคูณของ 24 ชั่วโมง)

เงื่อนไขทั้งหมดที่ตั้งค่าไว้ภายในเพรดิเคตเดียวจะรวมกันโดยใช้ 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 จะถูกลบล้างเป็นค่าเริ่มต้น และไคลเอ็นต์การอัปเดตจะจัดการการอัปเดตตามปกติ

ตารางต่อไปนี้แสดงขีดจำกัดการเลื่อนสูงสุดตามเป้าหมายและโหมดการจัดการ

กลุ่มเป้าหมาย อัปเดตเป้าหมาย อุปกรณ์ที่มีการจัดการเต็มรูปแบบ โปรไฟล์งานในอุปกรณ์ของบริษัท
การอัปเดตที่ไม่มีการเปลี่ยนแปลงระดับ API บริการระบบของ Google (เช่น WebView) 5 วัน 5 วัน
การอัปเดตที่ไม่มีการเปลี่ยนแปลงระดับ API การอัปเดตระบบ Google Play (เมนไลน์) และการอัปเดตระบบ OTA ของ OEM โดยไม่มีการเปลี่ยนแปลงระดับ API (รวมถึงแพตช์สำคัญรายเดือน) 25 วัน 25 วัน
การอัปเดตที่มีการเปลี่ยนแปลงระดับ API การอัปเดตระบบ OTA ของ OEM ที่มีการเปลี่ยนแปลงระดับ API 180 วัน 90 วัน

ลำดับความสำคัญของ systemUpdate

ก่อนที่จะเพิ่ม unifiedUpdatePolicy ลงในนโยบายที่มีอยู่ ให้ตรวจสอบการตั้งค่าsystemUpdate และสร้างลักษณะการทำงานที่ต้องการขึ้นมาใหม่ด้วยกฎ UUC เช่น หากต้องการอัปเดตระบบปฏิบัติการนอกเวลาทำการ ให้ใช้กฎ BLOCK เช่นเดียวกับกฎในบล็อกการอัปเดตระบบปฏิบัติการหลักในเวลาทำการ

ลักษณะการทำงานตามลำดับความสำคัญนี้แตกต่างจาก DPC ที่กำหนดเองซึ่งใช้ AMAPI SDK โดยที่ SystemUpdatePolicy ของ AOSP จะมีความสำคัญเหนือกว่า UUC สำหรับการอัปเดต OTA ของ OEM โปรดดูรายละเอียดที่หัวข้อลำดับความสำคัญของ SystemUpdatePolicy ของ AOSP

กำหนดค่านโยบาย UUC

คุณสามารถตั้งค่า ดึงข้อมูล และล้างช่อง unifiedUpdatePolicy ในทรัพยากรนโยบาย รวมถึงตรวจสอบการปฏิบัติตามข้อกำหนดของอุปกรณ์ที่ใช้นโยบายดังกล่าวได้

กำหนดนโยบาย UUC

หากต้องการกำหนดค่า UUC ให้เพิ่มออบเจ็กต์ unifiedUpdatePolicy ลงในนโยบาย หากต้องการใช้นโยบาย UUC โดยไม่เปลี่ยนการตั้งค่าอื่นๆ ของนโยบายที่มีอยู่ ให้เรียกใช้ 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 SDK

บล็อกการอัปเดตระบบปฏิบัติการหลักในช่วงเวลาทำการ

กฎต่อไปนี้จะบล็อกการอัปเดตระบบปฏิบัติการหลัก (OS_UPDATE_WITH_API_LEVEL_CHANGE) ตั้งแต่เวลา 09:00 น. ถึง 17:00 น. ตั้งแต่วันจันทร์ถึงวันศุกร์

{
  "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"
        }
      }
    ]
  }
}

บังคับให้อัปเดตระบบปฏิบัติการตามอายุการอัปเดต

กฎต่อไปนี้จะบังคับให้มีการอัปเดตระบบปฏิบัติการเวอร์ชันหลักที่พร้อมใช้งานในอุปกรณ์เป็นเวลาสูงสุด 7 วัน (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 กฎต่อไปนี้จะบล็อกการอัปเดต WebView ตั้งแต่เวลา 09:00 น. ถึง 17:00 น. ตั้งแต่วันจันทร์ถึงวันศุกร์

{
  "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"
        }
      }
    ]
  }
}

รวมกฎหลายข้อในเป้าหมายการอัปเดตทั้งหมด

เนื่องจากระบบจะประเมินกฎตามลำดับ คุณจึงรวมกฎหลายข้อเพื่อบล็อกการอัปเดตในช่วงเวลาที่เฉพาะเจาะจงและบังคับให้อัปเดตนอกช่วงเวลาดังกล่าวได้

ตัวอย่างต่อไปนี้ใช้กฎตามลำดับ 2 ข้อกับเป้าหมายหมวดหมู่ 4 รายการ (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE, GOOGLE_SYSTEM_SERVICES และ GOOGLE_PLAY_SYSTEM_UPDATE)

  1. บล็อกการอัปเดตทั้งหมดในช่วงเวลาทำการ (วันจันทร์-ศุกร์ เวลา 09:00 น. - 17:00 น.)
  2. นอกเวลาทำการ บังคับให้อัปเดตที่พร้อมใช้งานมาแล้วไม่เกิน 7 วัน
{
  "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 เพื่อจำกัดหรืออนุญาตการอัปเดตภายในช่วงวันที่ในปฏิทินที่เฉพาะเจาะจงในเขตเวลาท้องถิ่นของอุปกรณ์ กฎต่อไปนี้จะบล็อกการอัปเดตสำหรับเป้าหมายการกำหนดเป้าหมายตามหมวดเนื้อหาทั้ง 4 รายการจนถึงวันที่ 14 มีนาคม 2026

{
  "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"
        }
      }
    ]
  }
}