| เปลี่ยนรหัส: 185004937ALWAYS_SANDBOX_DISPLAY_APIS
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ จะใช้แซนด์บ็อกซ์ Display API กับแพ็กเกจ
           โดยไม่คำนึงถึงโหมดการแสดงหน้าต่าง Display API จะระบุขอบเขตของแอปเสมอ
            ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 12
           เกี่ยวกับ
           
           วิธีการแสดงผลที่เลิกใช้งานแล้ว | 
      
        | รหัสการเปลี่ยนแปลง: 163400105AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป
 
 ตั้งแต่ Android 12 เป็นต้นไป แพลตฟอร์มจะแสดงคำแนะนำที่ไม่ใช่ข้อความ (เช่น รูปภาพ) ได้โดยใช้เฟรมเวิร์กการป้อนข้อความอัตโนมัติที่เพิ่มประสิทธิภาพ (ดูบริการป้อนข้อความอัตโนมัติ) โดยปกติแล้ว แอปต้องใช้ API OnReceiveContentListenerเพื่อให้จัดการคำแนะนำเหล่านี้ได้ เพื่อให้การนำ API นี้ไปใช้เป็นไปอย่างราบรื่นยิ่งขึ้นสำหรับแอปที่ก่อนหน้านี้ได้ใช้
             InputConnection.commitContent(InputContentInfo, int, Bundle)API เราจะนำ API นั้นมาใช้ซ้ำเป็นตัวเลือกสำรองหากแอปยังไม่ได้ใช้OnReceiveContentListenerตัวเลือกสำรองนี้จะเปิดใช้ใน
             Android 12 (API ระดับ 31) เท่านั้น รหัสการเปลี่ยนแปลงนี้จะปิดใช้การสำรอง เพื่อให้แอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไปต้องใช้OnReceiveContentListenerAPI เพื่อยอมรับคำแนะนำที่ไม่ใช่ข้อความ | 
      
        | รหัสการเปลี่ยนแปลง: 157929241BLOCK_FLAG_SLIPPERY
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด
 
 สำหรับแอปที่ทำงานบน Android 12 (API ระดับ 31) จะตรวจสอบว่า
             FLAG_SLIPPERYมีการใช้กับหน้าต่างใดๆ ในแอปหรือไม่ เราคาดว่าส่วนประกอบของระบบเท่านั้นที่จะใช้แฟล็กนี้ เนื่องจากเป็นฟิลด์ที่ไม่รองรับ หากเป็นเช่นนั้น วิดีโอจะถูกจำกัด | 
      
        | รหัสการเปลี่ยนแปลง: 144027538BLOCK_GPS_STATUS_USAGE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะต้องแทนที่การใช้ API ทั้งหมดของ GpsStatusด้วย API ของGnssStatus | 
      
        | รหัสการเปลี่ยนแปลง: 171317480BLOCK_IMMUTABLE_PENDING_INTENTS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ออบเจ็กต์ PendingIntentที่ไม่เปลี่ยนแปลงซึ่งส่งไปยัง API ตำแหน่งจะสร้างIllegalArgumentException. | 
      
        | รหัสการเปลี่ยนแปลง: 169887240BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะใช้ LocationRequestAPI ของระบบกับPendingIntentคำขอตำแหน่งไม่ได้ | 
      
        | รหัสการเปลี่ยนแปลง: 158002302BLOCK_UNTRUSTED_TOUCHES
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด
 
 Android 12 จะป้องกันไม่ให้แอปใช้เหตุการณ์การแตะ
            ในกรณีที่การวางซ้อนบล็อกแอปในลักษณะที่ไม่ปลอดภัย เพื่อรักษาความปลอดภัยของระบบและประสบการณ์การใช้งานที่ดี ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ระบบบล็อกเหตุการณ์การแตะที่ไม่น่าเชื่อถือ | 
      
        | รหัสการเปลี่ยนแปลง: 78294732CALL_ACTIVITY_RESULT_BEFORE_RESUME
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป จะแก้ไขวงจรของผลลัพธ์กิจกรรมเพื่อให้แน่ใจว่ากิจกรรมจะได้รับผลลัพธ์กิจกรรมก่อนที่จะกลับมาทำงานต่อ
              | 
      
        | เปลี่ยนรหัส: 162547999CAMERA_MIC_INDICATORS_NOT_PRESENT
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 ระบุว่าอุปกรณ์นี้รองรับสัญญาณบอกสถานะกล้องและไมโครโฟน จะเป็น falseหาก
           มีอยู่ เนื่องจากเมธอดCompatChanges#isChangeEnabledจะแสดงผลtrueหากไม่มีรหัสการเปลี่ยนแปลง | 
      
        | รหัสการเปลี่ยนแปลง: 146211400CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป ตัวจัดการแพ็กเกจจะไม่ติดตั้งแพ็กเกจหากมีกลุ่มสิทธิ์ที่มีรูปแบบไม่ถูกต้อง
             ควรแชร์กลุ่มสิทธิ์ระหว่างแอปที่แชร์ใบรับรองเท่านั้น หากสิทธิ์เป็นของกลุ่ม คุณต้องกำหนดกลุ่มนั้นด้วย | 
      
        | รหัสการเปลี่ยนแปลง: 181350407CHANGE_ID_AUTH_STATE_DENIED
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปไคลเอ็นต์ที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะแสดง SecurityExceptionเมื่อแอปอยู่ในสถานะการให้สิทธิ์ที่ถูกปฏิเสธ
             และพยายามส่งข้อความไปยังนาโนแอป | 
      
        | รหัสการเปลี่ยนแปลง: 136069189CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะแสดง SecurityExceptionเมื่อแอปไม่มีสิทธิ์HIGH_SAMPLING_RATE_SENSORSทำงานในโหมดแก้ไขข้อบกพร่อง และขออัตราการสุ่มตัวอย่างที่เร็วกว่า 200 Hz | 
      
        | รหัสการเปลี่ยนแปลง: 73144566DELIVER_HISTORICAL_LOCATIONS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ไคลเอ็นต์ตำแหน่งอาจได้รับตำแหน่งย้อนหลัง (ตั้งแต่ก่อนเวลาปัจจุบัน) ในบางกรณี | 
      
        | การเปลี่ยนแปลงรหัส: 181658987DISPLAY_INFO_NR_ADVANCED_SUPPORTED
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะให้ความเข้ากันได้แบบย้อนหลังสำหรับการเปลี่ยนแปลงใน TelephonyDisplayInfo | 
      
        | รหัสการเปลี่ยนแปลง: 170503758DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป แพลตฟอร์มอาจลดอัตราเฟรมของแอปให้เป็นตัวหารของ
             อัตราการรีเฟรชหากเป็นสิ่งที่ต้องการมากกว่า (เช่น หากแอปเรียกใช้ Surface.setFrameRate(float, int))
             แอปจะได้รับChoreographer.postFrameCallback(Choreographer.FrameCallback)การเรียกกลับและแรงดันย้อนกลับที่อัตราเฟรมที่ถูกจำกัด แอปใช้Display.getRefreshRate()และDisplay.Mode.getRefreshRate()เพื่อดูว่าอัตราการรีเฟรชของจอแสดงผลคือเท่าใดDisplay.getRefreshRate()จะแสดงอัตราเฟรมของแอปพลิเคชันเสมอ ไม่ใช่อัตราการรีเฟรชของจอแสดงผลจริง เพื่อให้แอป
             สามารถกำหนดอัตราเฟรมได้อย่างถูกต้องDisplay.Mode.getRefreshRate()จะแสดงอัตราเฟรมของแอปหากคอมไพล์เป็นรุ่นก่อนหน้า
             และตั้งแต่ Android 12 (API ระดับ 31) เป็นต้นไป จะแสดงอัตรารีเฟรชของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 168419799DOWNSCALED
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 การเปลี่ยนแปลงนี้เป็นตัวควบคุมการเปลี่ยนแปลงการลดขนาดบัฟเฟอร์ต่อแอปทั้งหมด
            การเปิดใช้การเปลี่ยนแปลงนี้จะช่วยให้ใช้ปัจจัยการปรับขนาดต่อไปนี้ได้
            เมื่อเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจแอป ระบบจะบังคับ
          ปรับขนาดแอปเป็นปัจจัยการปรับขนาดสูงสุดที่เปิดใช้ เช่น ระบบจะใช้ 80% หากเปิดใช้ทั้ง 80% และ 70% (DOWNSCALE_80และDOWNSCALE_70) | 
      
        | เปลี่ยนรหัส: 189970040DOWNSCALE_30
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 30% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 189969749DOWNSCALE_35
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 35% ของจอแสดงผลจริง | 
      
        | เปลี่ยนรหัส: 189970038DOWNSCALE_40
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 40% ของจอแสดงผลจริง | 
      
        | เปลี่ยนรหัส: 189969782DOWNSCALE_45
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 45% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 176926741DOWNSCALE_50
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 50% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 189970036DOWNSCALE_55
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 55% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 176926771DOWNSCALE_60
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 60% ของจอแสดงผลจริง | 
      
        | เปลี่ยนรหัส: 189969744DOWNSCALE_65
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 65% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 176926829DOWNSCALE_70
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 70% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 189969779DOWNSCALE_75
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 75% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 176926753DOWNSCALE_80
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 80% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 189969734DOWNSCALE_85
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 85% ของจอแสดงผลจริง | 
      
        | เปลี่ยนรหัส: 182811243DOWNSCALE_90
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ DOWNSCALEDด้วย
           การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่า
           แอปทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 90% ของจอแสดงผลจริง | 
      
        | รหัสการเปลี่ยนแปลง: 157629738DO_NOT_DOWNSCALE_TO_1080P_ON_TV
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 แอป Android TV ที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไปควรจัดการขนาดหน้าต่างทั้งหมด รวมถึงขนาดหน้าต่างที่ใหญ่กว่า 1080p
             แอปที่กำหนดเป้าหมายเป็น Android เวอร์ชันก่อนหน้าไม่ได้คาดหวังว่าจะได้รับหน้าต่างที่มีความละเอียดสูงกว่า 1080p ดังนั้นระบบจะลดขนาดหน้าต่างของแอปเป็น 1080p เมื่อจำเป็น | 
      
        | การเปลี่ยนแปลงรหัส: 174664120DROP_CLOSE_SYSTEM_DIALOGS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด
 
 เพื่อปรับปรุงการควบคุมของผู้ใช้เมื่อโต้ตอบกับแอปและระบบ เราจึงเลิกใช้งานการดำเนินการ Intent ACTION_CLOSE_SYSTEM_DIALOGSตั้งแต่ Android 12 เป็นต้นไป ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่แอปปิดกล่องโต้ตอบของระบบไม่ได้ | 
      
        | รหัสการเปลี่ยนแปลง: 172100307ENABLE_CHECKS_FOR_PRIVATE_FILES
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 แอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไปจะแทรกหรืออัปเดตไฟล์ส่วนตัวโดยใช้ผู้ให้บริการสื่อไม่ได้ | 
      
        | รหัสการเปลี่ยนแปลง: 180326732ENABLE_DEFERRED_SCAN
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 เปิดใช้ตัวเลือกนี้เพื่อเลื่อนการสแกนที่ทริกเกอร์เป็นส่วนหนึ่งของ MediaProvider#update() | 
      
        | รหัสการเปลี่ยนแปลง: 157233955ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะเปิดใช้การปกป้อง READ_PHONE_STATEใน API ที่ค้นหาและแจ้งสถานะการโทร เช่นTelecomManager#getCallStateTelephonyManager.getCallStateForSubscription()และTelephonyCallback.CallStateListener | 
      
        | รหัสการเปลี่ยนแปลง: 183407956ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะเปิดใช้การป้องกัน READ_PHONE_NUMBERSหรือREAD_PRIVILEGED_PHONE_STATEในgetPhoneAccount(PhoneAccountHandle) | 
      
        | รหัสการเปลี่ยนแปลง: 182734110ENABLE_INCLUDE_ALL_VOLUMES
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 เปิดใช้ตัวเลือกนี้เพื่อรวมแถวฐานข้อมูลของไฟล์จากวอลุ่มที่เพิ่งยกเลิกการเชื่อมต่อใน MediaProvider#query | 
      
        | รหัสการเปลี่ยนแปลง: 178209446ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 เปิดใช้ตัวเลือกนี้เพื่ออนุญาตให้แอปที่มีสิทธิ์ Manifest.permission.MANAGE_EXTERNAL_STORAGEขอสิทธิ์เข้าถึงพื้นที่เก็บข้อมูลภายนอกแบบดิบ | 
      
        | การเปลี่ยนแปลงรหัส: 185199076ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป การปลุกที่ไม่แน่นอนทั้งหมดจะต้องมีขนาดหน้าต่างขั้นต่ำ ซึ่งคาดว่าจะอยู่ในช่วง 2-3 นาที ในทางปฏิบัติ การปลุกใดๆ ที่ต้องใช้ช่วงเวลาที่สั้นกว่าจะเหมือนกับการปลุกในเวลาที่แน่นอน และควรใช้ API ที่เกี่ยวข้องที่ให้ไว้ เช่น setExact(int, long, PendingIntent)ระบบจะขยายกรอบเวลาของสัญญาณเตือนที่ไม่แน่นอนซึ่งมีกรอบเวลาที่สั้นกว่า | 
      
        | รหัสการเปลี่ยนแปลง: 142191088ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 แอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไปต้องประกาศการขึ้นต่อกันกับไลบรารีที่ใช้ร่วมกันแบบเนทีฟสาธารณะที่ผู้ผลิตอุปกรณ์กำหนดโดยใช้แท็ก uses-native-libraryในAndroidManifest.xmlหากไม่สามารถตอบสนองต่อการขึ้นต่อกันใดๆ ได้ เช่น การขึ้นต่อกันอย่างใดอย่างหนึ่งไม่มีอยู่จริง ตัวจัดการแพ็กเกจจะไม่ติดตั้งแอป คุณระบุการขึ้นต่อกันเป็นตัวเลือกได้โดยใช้แอตทริบิวต์android:requiredในแท็ก ในกรณีนี้ การไม่สามารถตอบสนองต่อการขึ้นต่อกันจะไม่หยุดการติดตั้ง เมื่อติดตั้งแล้ว แอปจะได้รับเฉพาะไลบรารีที่ใช้ร่วมกันแบบเนทีฟที่ระบุไว้ในไฟล์ Manifest ของแอป การเรียก dlopenใน
             ไลบรารีที่ใช้ร่วมกันแบบเนทีฟซึ่งไม่ปรากฏในไฟล์ Manifest ของแอปจะล้มเหลวแม้ว่าจะมีอยู่ในอุปกรณ์จริงก็ตาม | 
      
        | เปลี่ยนรหัส: 143231523ENFORCE_STRICT_QUERY_BUILDER
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ SQLiteQueryBuilderจะตรวจสอบการเลือกคำค้นหาCalendarProvider2ทั้งหมดกับอาร์กิวเมนต์ที่เป็นอันตราย | 
      
        | การเปลี่ยนแปลงรหัส: 170668199FGS_BG_START_RESTRICTION_CHANGE_ID
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะจำกัดเวลาที่แอปจะเริ่มบริการที่ทำงานอยู่เบื้องหน้าได้ขณะทำงานในเบื้องหลัง | 
      
        | รหัสการเปลี่ยนแปลง: 174041399FGS_START_EXCEPTION_CHANGE_ID
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะช่วยให้ระบบแสดง IllegalStateExceptionได้หากแอปพยายามเริ่มต้นบริการที่ทำงานอยู่เบื้องหน้าขณะทำงานในเบื้องหลัง | 
      
        | เปลี่ยนรหัส: 156215187 สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ให้สิ้นสุด InputConnectionเมื่ออุปกรณ์เปลี่ยนเป็นnon-interactive หากinput methodปัจจุบันเปิดใช้ไว้ การเชื่อมต่ออินพุตปัจจุบันจะfinishedเมื่อใดก็ตามที่อุปกรณ์ไม่โต้ตอบ หากไม่ได้เปิดใช้ไว้ ระบบจะปิดใช้งานการเชื่อมต่ออินพุตปัจจุบันโดยไม่มีการแจ้งเตือนเมื่ออุปกรณ์ไม่สามารถโต้ตอบได้ และจะส่งonFinishInput()และonStartInput()คู่เมื่ออุปกรณ์กลับมาโต้ตอบได้อีกครั้ง | 
      
        | รหัสการเปลี่ยนแปลง: 174227820FORCE_DISABLE_HEVC_SUPPORT
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 บังคับปิดใช้แอปไม่ให้รองรับความสามารถของสื่อ HEVC
           แอปควรประกาศความสามารถของสื่อที่รองรับในไฟล์ Manifest แต่สามารถใช้ Flag นี้เพื่อบังคับให้แอปไม่รองรับ HEVC ซึ่งจะบังคับให้มีการแปลงรหัสขณะเข้าถึงสื่อที่เข้ารหัสใน HEVC การตั้งค่า Flag นี้จะลบล้างค่าเริ่มต้นระดับระบบปฏิบัติการ
           สำหรับแอป โดยค่าเริ่มต้นจะปิดใช้ ซึ่งหมายความว่าค่าเริ่มต้นของระบบปฏิบัติการ
           จะมีลำดับความสำคัญสูงกว่า หากเปิดใช้ทั้ง Flag นี้และ
           FORCE_ENABLE_HEVC_SUPPORTระบบปฏิบัติการจะไม่สนใจ
           ทั้ง 2 Flag | 
      
        | เปลี่ยนรหัส: 174228127FORCE_ENABLE_HEVC_SUPPORT
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 บังคับเปิดใช้แอปเพื่อรองรับความสามารถของสื่อ HEVC แอป
           ควรอธิบายความสามารถของสื่อที่รองรับในไฟล์ Manifest
           แต่สามารถใช้ Flag นี้เพื่อบังคับให้แอปรองรับ HEVC ได้ ดังนั้น
           จึงหลีกเลี่ยงการแปลงรหัสขณะเข้าถึงสื่อที่เข้ารหัสใน HEVC การตั้งค่า
           ฟีเจอร์นี้จะลบล้างค่าเริ่มต้นระดับระบบปฏิบัติการสำหรับแอป โดยค่าเริ่มต้น ระบบจะปิดใช้
           ซึ่งหมายความว่าค่าเริ่มต้นของระบบปฏิบัติการจะมีลำดับความสำคัญสูงกว่า หากเปิดใช้ทั้ง
           แฟล็กนี้และ FORCE_DISABLE_HEVC_SUPPORTระบบปฏิบัติการจะไม่สนใจทั้ง 2 แฟล็ก | 
      
        | เปลี่ยนรหัส: 181136395FORCE_NON_RESIZE_APP
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 บังคับให้แพ็กเกจที่ใช้ไม่สามารถปรับขนาดได้ | 
      
        | รหัสการเปลี่ยนแปลง: 174042936FORCE_RESIZE_APP
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 บังคับให้แพ็กเกจที่ใช้ปรับขนาดได้ เราอนุญาตให้ปรับขนาดได้เฉพาะในโหมดการแสดงหน้าต่างแบบเต็มหน้าจอ แต่ไม่อนุญาตให้บังคับให้แอปเข้าสู่โหมดหลายหน้าต่างที่ปรับขนาดได้ | 
      
        | รหัสการเปลี่ยนแปลง: 171979766HIDE_PROP_ICUBINARY_DATA_PATH
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะนำสิทธิ์เข้าถึงพร็อพเพอร์ตี้ android.icu.impl.ICUBinary.dataPathออก | 
      
        | รหัสการเปลี่ยนแปลง: 183147249IGNORE_ALLOW_BACKUP_IN_D2D
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะไม่สนใจ android:allowBackupสำหรับแอปในระหว่างการย้ายข้อมูลจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่ง (D2D) | 
      
        | รหัสการเปลี่ยนแปลง: 180523564IGNORE_FULL_BACKUP_CONTENT_IN_D2D
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะไม่สนใจกฎการรวมและการยกเว้นที่ระบุโดยใช้ android:fullBackupContentระหว่างการโอนจากอุปกรณ์ไปยังอุปกรณ์ (D2D) | 
      
        | รหัสการเปลี่ยนแปลง: 169273070IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป getSupportedLocales()จะแสดงรายการภาษาที่ว่างเปล่าเมื่อไม่ได้ตั้งค่า แทนที่จะเป็นภาษาเริ่มต้นของระบบ | 
      
        | รหัสการเปลี่ยนแปลง: 158482162IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะบังคับใช้BACKUPสิทธิ์ที่จำเป็นสำหรับisBackupServiceActive()ที่ฝั่งเซิร์ฟเวอร์แทนฝั่งไคลเอ็นต์ในBackupManager | 
      
        | รหัสการเปลี่ยนแปลง: 169897160KEYSTORE_OPERATION_CREATION_MAY_FAIL
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ การสร้างการดำเนินการที่คลังคีย์อาจล้มเหลวตาม
           กลยุทธ์การตัดแต่งใหม่ Keystore เคยทำงานภายใต้สมมติฐาน
           ที่ว่าการสร้างการดำเนินการเข้ารหัสจะสำเร็จเสมอ
           อย่างไรก็ตาม แบ็กเอนด์ KeyMint มีช่องการดำเนินการ
           จำนวนจำกัดเท่านั้น เพื่อรักษาลักษณะของช่องการดำเนินการ "ไม่จำกัด"
           Daemon ของ Keystore จะตัดการดำเนินการที่ใช้ล่าสุดน้อยที่สุดออก หาก
           ไม่มีช่องการดำเนินการที่พร้อมใช้งาน จึงอาจทำให้การดำเนินการที่ดี
           สิ้นสุดก่อนเวลาอันควร ซึ่งทำให้ AndroidKeystore เสี่ยงต่อการปฏิเสธการให้บริการ (DoS) และการล็อกแบบไลฟ์โดยไม่ตั้งใจ ตัวอย่างเช่น หาก
           แอปหลายแอปตื่นขึ้นมาพร้อมกันเนื่องจากการเพิ่มประสิทธิภาพการจัดการพลังงาน
           และพยายามดำเนินการเข้ารหัสลับ แอปเหล่านั้นจะเริ่ม
           ยกเลิกการดำเนินการของกันและกันโดยไม่คืบหน้า เราได้เปลี่ยนกลยุทธ์การตัดแต่งเพื่อหลีกเลี่ยงการล็อกแบบไลฟ์และเพื่อไม่ให้เกิดการพยายามโจมตีแบบ DoS โดยกลยุทธ์ใหม่นี้จะให้ความสำคัญกับไคลเอ็นต์ที่ใช้ช่องการดำเนินการเพียงไม่กี่ช่องในระยะเวลาสั้นๆ
 ด้วยเหตุนี้ การดำเนินการเดียวที่
           ไม่ได้ไม่ได้ใช้งานนานเกิน 5 วินาทีจะ
           เสร็จสมบูรณ์โดยไม่ได้รับผลกระทบจากกลยุทธ์การตัดออกเกือบทุกครั้ง ยังคงมีการดำเนินการบางอย่างที่เกี่ยวข้องกับการเข้ารหัสระบบไฟล์ซึ่งสามารถตัดการดำเนินการเหล่านี้ได้ แต่กรณีดังกล่าวเกิดขึ้นน้อยมาก ผลข้างเคียงของการดำเนินการตามกลยุทธ์การตัดแต่งใหม่นี้คือ การสร้างอาจล้มเหลว
           หากไคลเอ็นต์มีกำลังการตัดแต่งต่ำกว่าการดำเนินการที่มีอยู่ทั้งหมด
 กลยุทธ์การตัด: เราจะคำนวณค่าปรับสำหรับผู้โทรและแต่ละการดำเนินการที่มีอยู่เพื่อค้นหาผู้สมัครที่เหมาะสม
 
           ค่าปรับคือค่าผกผันของกำลังการตัดแต่ง (ผู้เรียก) หรือความต้านทานการตัดแต่ง (การดำเนินการที่มีอยู่) ผู้โทรจะตัดการดำเนินการได้ก็ต่อเมื่อพบการดำเนินการที่มีค่าปรับสูงกว่าของตนเอง
            ดูรายละเอียดเพิ่มเติมเกี่ยวกับกลยุทธ์การตัดแต่งได้ที่การใช้งาน
           ของ
           operation.rsใน Android 11 (API ระดับ 30) และต่ำกว่า KeyStore2 จะสำรวจ
          Keystore daemon เพื่อหาช่องการดำเนินการที่ว่าง สำหรับแอปที่กำหนดเป้าหมายเป็น
          Android 11 (API ระดับ 30) และต่ำกว่า ลักษณะการทำงานจะยังคงเหมือนเดิมและ
          การเริ่มต้นออบเจ็กต์การเข้ารหัสและลายเซ็นจะสำเร็จเสมอ อย่างไรก็ตาม การดำเนินการอาจใช้เวลานานขึ้น Android ทุกเวอร์ชันจะได้รับประโยชน์จากการจัดกำหนดการช่วงการทำงานที่ยุติธรรมยิ่งขึ้น
          และมีโอกาสมากขึ้นที่จะดำเนินการให้เสร็จสมบูรณ์ | 
      
        | รหัสการเปลี่ยนแปลง: 174664365LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะส่ง Intent.ACTION_CLOSE_SYSTEM_DIALOGSไม่ได้
             เว้นแต่แอปจะมีสิทธิ์android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGSด้วย โปรดทราบว่านี่คือเวอร์ชันที่เข้มงวดกว่าของ#DROP_CLOSE_SYSTEM_DIALOGSซึ่งคาดหวังให้แอปหยุดส่ง IntentIntent.ACTION_CLOSE_SYSTEM_DIALOGSเมื่อแอปเริ่มกำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป | 
      
        | รหัสการเปลี่ยนแปลง: 173031413LOCK_DOWN_COLLAPSE_STATUS_BAR
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะต้องมีสิทธิ์ Manifest.permission.STATUS_BARเพื่อยุบแผงแถบสถานะ
             เนื่องด้วยเหตุผลด้านความปลอดภัย มัลแวร์ใช้ช่องโหว่นี้เพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงการแจ้งเตือนที่สำคัญ | 
      
        | รหัสการเปลี่ยนแปลง: 168936375LOW_POWER_EXCEPTIONS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สําหรับแอปที่กําหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ออบเจ็กต์ LocationRequestทั้งหมดที่ทําเครื่องหมายว่าใช้พลังงานต่ำจะส่งข้อยกเว้น
             หากผู้เรียกไม่มีสิทธิ์LOCATION_HARDWAREแทนที่จะทิ้งส่วนที่ใช้พลังงานต่ำของคำขอ
           โดยไม่มีการแจ้งเตือน | 
      
        | รหัสการเปลี่ยนแปลง: 150232615MISSING_EXPORTED_FLAG
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สําหรับแอปที่กําหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะต้องระบุค่าที่ชัดเจนสําหรับแอตทริบิวต์
            android:exportedทุกครั้งที่มีการกําหนดตัวกรอง Intent ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่การส่งออกคอมโพเนนต์ที่ปลอดภัยยิ่งขึ้น | 
      
        | รหัสการเปลี่ยนแปลง: 207557677NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 32) ขึ้นไป การจัดสรรฮีปเนทีฟในกระบวนการ AppZygoteและกระบวนการย่อย
             จะใช้แท็กที่ไม่ใช่ศูนย์ในไบต์ที่สำคัญที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ตัวชี้ที่ติดแท็ก | 
      
        | เปลี่ยนรหัส: 178038272NATIVE_HEAP_ZERO_INIT
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เปิดใช้การเริ่มต้นเป็น 0 โดยอัตโนมัติสำหรับการจัดสรรหน่วยความจำฮีปดั้งเดิม | 
      
        | รหัสการเปลี่ยนแปลง: 135772972NATIVE_MEMTAG_ASYNC
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เปิดใช้การตรวจสอบแท็กหน่วยความจำแบบไม่พร้อมกัน (ASYNC) ในกระบวนการนี้ ฟีเจอร์นี้จะมีผลกับฮาร์ดแวร์ที่รองรับ Memory Tagging Extension (MTE) ของ ARM เท่านั้น | 
      
        | รหัสการเปลี่ยนแปลง: 177438394NATIVE_MEMTAG_SYNC
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เปิดใช้การตรวจสอบแท็กหน่วยความจำแบบซิงโครนัส (SYNC) ในกระบวนการนี้ ฟีเจอร์นี้จะมีผลกับฮาร์ดแวร์ที่รองรับ Memory Tagging Extension (MTE) ของ ARM เท่านั้น หากเปิดใช้ทั้ง NATIVE_MEMTAG_ASYNCและตัวเลือกนี้ ตัวเลือกนี้จะมีลำดับความสำคัญเหนือกว่าและระบบจะเปิดใช้ MTE ในโหมด SYNC | 
      
        | รหัสการเปลี่ยนแปลง: 184838306NEVER_SANDBOX_DISPLAY_APIS
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ จะป้องกันไม่ให้แซนด์บ็อกซ์ Display API มีผลกับกิจกรรม
           Letterbox หรือ SCM Display API จะยังคงระบุขอบเขต DisplayArea ต่อไป
 ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 12 เกี่ยวกับ
           วิธีการแสดงผลที่เลิกใช้งานแล้ว | 
      
        | รหัสการเปลี่ยนแปลง: 175319604NOTIFICATION_CANCELLATION_REASONS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 ช่วยให้ผู้ฟังการแจ้งเตือนเข้าใจเหตุผลการยกเลิกใหม่ๆ ที่เฉพาะเจาะจงมากขึ้น | 
      
        | เปลี่ยนรหัส: 167676448NOTIFICATION_TRAMPOLINE_BLOCK
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 แอปที่กำหนดเป้าหมายเป็น Android 12 จะใช้บริการหรือ Broadcast Receiver
             เป็น Notification Trampoline ไม่ได้ เพื่อปรับปรุงประสิทธิภาพของแอปและ UX ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่สร้างการแจ้งเตือนแบบส่งต่อจากบริการหรือเครื่องรับสัญญาณออกอากาศไม่ได้ | 
      
        | รหัสการเปลี่ยนแปลง: 182185642NULL_TELEPHONY_THROW_NO_CB
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 ใช้เพื่อตรวจสอบว่า SDK เวอร์ชันเป้าหมายสำหรับกระบวนการปัจจุบันคือ Android 12 (API ระดับ 31) ขึ้นไปหรือไม่ ใช้ได้กับวิธีการต่อไปนี้
              | 
      
        | เปลี่ยนรหัส: 174042980OVERRIDE_MIN_ASPECT_RATIO
สถานะเริ่มต้น: ปิดใช้สำหรับทุกแอป
 
 การเปลี่ยนแปลงนี้เป็นตัวควบคุมการเปลี่ยนแปลงทั้งหมดที่บังคับใช้อัตราส่วนภาพขั้นต่ำที่กำหนด การเปิดใช้การเปลี่ยนแปลงนี้จะช่วยให้ใช้สัดส่วนภาพขั้นต่ำต่อไปนี้ได้
              เมื่อเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจแอป ระบบจะลบล้างอัตราส่วนกว้างยาวขั้นต่ำที่ระบุไว้ในไฟล์ Manifest ของแอปเป็นอัตราส่วนกว้างยาวที่ใหญ่ที่สุดที่เปิดใช้
            เว้นแต่ค่าในไฟล์ Manifest ของแอปจะสูงกว่า | 
      
        | รหัสการเปลี่ยนแปลง: 180326787OVERRIDE_MIN_ASPECT_RATIO_LARGE
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ OVERRIDE_MIN_ASPECT_RATIOด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะตั้งค่าอัตราส่วนภาพขั้นต่ำของกิจกรรมเป็นค่าขนาดใหญ่ตามที่กำหนดโดยOVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE | 
      
        | การเปลี่ยนแปลงรหัส: 180326845OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด
 
 เมื่อเปิดใช้ OVERRIDE_MIN_ASPECT_RATIOด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะตั้งค่า
             สัดส่วนภาพขั้นต่ำของกิจกรรมเป็นค่าปานกลางตามที่กำหนดโดยOVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE | 
      
        | รหัสการเปลี่ยนแปลง: 160794467PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สําหรับแอปที่กําหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป คุณต้องระบุการเปลี่ยนแปลงของออบเจ็กต์ PendingIntentแต่ละรายการที่แอปสร้างขึ้น ข้อกำหนดเพิ่มเติมนี้จะช่วยปรับปรุงการรักษาความปลอดภัยของแอป ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ต้องประกาศความสามารถในการเปลี่ยนแปลงของ PendingIntent | 
      
        | รหัสการเปลี่ยนแปลง: 165573442PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 แอปผู้ดูแลระบบที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไปจะใช้ DevicePolicyManager.setPasswordQuality(ComponentName, int)เพื่อตั้งค่าคุณภาพรหัสผ่านในอินสแตนซ์DevicePolicyManagerที่ได้จากการเรียกDevicePolicyManager.getParentProfileInstance(ComponentName)ไม่ได้
             แต่ควรใช้DevicePolicyManager.setRequiredPasswordComplexity(int)เพื่อตั้ง
             ข้อกำหนดของรหัสผ่านแบบหยาบในระดับอุปกรณ์ | 
      
        | เปลี่ยนรหัส: 174840628RATE_LIMIT_TOASTS
สถานะเริ่มต้น: การเปลี่ยนแปลงนี้สลับไม่ได้ โดยจะบันทึกโดยเฟรมเวิร์กความเข้ากันได้เท่านั้น
 
 เปิดใช้การจำกัดอัตราสำหรับจำนวนการเรียกใช้
           Toast.show()เพื่อป้องกันไม่ให้ผู้ใช้ได้รับข้อความแจ้งมากเกินไปในเวลาจำกัด
 การพยายามแสดงข้อความแจ้งมากกว่าที่อนุญาตในช่วงระยะเวลาหนึ่งๆ จะส่งผลให้ระบบทิ้งข้อความแจ้งนั้น | 
      
        | รหัสการเปลี่ยนแปลง: 171306433REQUIRE_EXACT_ALARM_PERMISSION
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป แอปต้องมีสิทธิ์ Manifest.permission.SCHEDULE_EXACT_ALARMจึงจะใช้ API ใดๆ สำหรับการตั้งการปลุกในเวลาที่แน่นอนได้ เช่นsetExactAndAllowWhileIdle(int, long, PendingIntent)และsetAlarmClock(AlarmClockInfo, PendingIntent) | 
      
        | รหัสการเปลี่ยนแปลง: 182478738REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป แอปต้องมีสิทธิ์ Manifest.permission.READ_PHONE_STATEเพื่อเรียกใช้TelephonyCallback.ActiveDataSubscriptionIdListener | 
      
        | รหัสการเปลี่ยนแปลง: 184323934REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป แอปต้องมีสิทธิ์ Manifest.permission.READ_PHONE_STATEเพื่อเรียกใช้TelephonyCallback.CellInfoListener | 
      
        | รหัสการเปลี่ยนแปลง: 183164979REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป แอปต้องมีสิทธิ์ Manifest.permission.READ_PHONE_STATEเพื่อเรียกใช้TelephonyCallback.DisplayInfoListener | 
      
        | รหัสการเปลี่ยนแปลง: 171032338RESTRICT_ADB_BACKUP
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ระบบจะเปิดadb backupโดยอัตโนมัติสำหรับแอปที่ทำงานเป็นแอปที่แก้ไขข้อบกพร่องได้ (android:debuggableตั้งค่าเป็นtrue) และ
             ไม่พร้อมใช้งานสำหรับแอปอื่นๆ | 
      
        | รหัสการเปลี่ยนแปลง: 175408749RESTRICT_DOMAINS
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป คุณจะต้องใช้ API การยืนยัน App Link ในรูปแบบที่อัปเดตแล้ว ข้อกำหนดนี้หมายความว่าแอปต้องประกาศโดเมนภายในตัวกรอง Intent ที่มีข้อมูลทั้งหมดต่อไปนี้
  
             android:autoVerify="true"Intent.ACTION_VIEWIntent.CATEGORY_BROWSABLEIntet.CATEGORY_DEFAULTเฉพาะ IntentFilter.SCHEME_HTTPและ/หรือIntentFilter.SCHEME_HTTPSเท่านั้น โดยไม่มีรูปแบบอื่นๆ ใน Android เวอร์ชันก่อนหน้า Intent.CATEGORY_BROWSABLEไม่ใช่ข้อกำหนด ระบบอนุญาตให้ใช้รูปแบบอื่นๆ และการตั้งค่าautoVerifyเป็นtrueในตัวกรอง Intent ใดก็ตามจะ
             เสมือนว่าตัวกรอง Intent ทั้งหมดตั้งค่าเป็นautoVerify="true"โดยปริยาย | 
      
        | รหัสการเปลี่ยนแปลง: 151105954SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะบังคับให้ attributionTagsทั้งหมดที่ส่งไปยังnoteOp(String, int, String),noteProxyOp(String, String),
             และstartOp(String, int, String)ต้องกำหนดไว้ใน Manifest ของแพ็กเกจที่ระบุเป็นพารามิเตอร์ของเมธอด หากต้องการเปิดใช้การเปลี่ยนแปลงนี้ ทั้งแพ็กเกจที่เรียก noteOp(String, int, String)และแพ็กเกจที่ระบุเป็นพารามิเตอร์ของเมธอดจะต้องเปิดใช้การเปลี่ยนแปลงนี้ | 
      
        | รหัสการเปลี่ยนแปลง: 143539591SELINUX_LATEST_CHANGES
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป ให้เลือกใช้การเปลี่ยนแปลง SELinux ล่าสุด การปิดการเปลี่ยนแปลงนี้สำหรับแอปที่กำหนดเป้าหมายเป็น
             Android 12 (API ระดับ 31) ขึ้นไปจะไม่มีผลใดๆ และไม่มีผลกับแอปที่ใช้รหัสผู้ใช้ที่แชร์ | 
      
        | เปลี่ยนรหัส: 178111421SETTINGS_API_V2
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด
 
 เรายังไม่ได้ใช้ API ค่ากําหนดของผู้ใช้ใหม่สําหรับการยืนยันโดเมนที่ทําเครื่องหมาย autoVerify=trueในตัวกรอง Intent ของ AndroidManifest.xml ในแพลตฟอร์มตัวอย่างปัจจุบัน
 ตอนนี้คุณสามารถดูตัวอย่างการเปลี่ยนแปลงค่ากำหนดของผู้ใช้ใหม่ได้โดยเปิดใช้ ChangeId นี้และใช้adb shell pm set-app-links-user-selectionและคำสั่งที่คล้ายกัน | 
      
        | รหัสการเปลี่ยนแปลง: 183972877USE_SHORT_FGS_USAGE_INTERACTION_TIME
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป
 
 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป จะกำหนดว่าจะใช้การหมดเวลาที่สั้นลงก่อนที่จะยกระดับที่เก็บข้อมูลในโหมดสแตนด์บายเป็น
             ACTIVEเมื่อแอปเริ่มบริการที่ทำงานอยู่เบื้องหน้าหรือไม่ |