อุปกรณ์ Android 11 ใหม่อาจไม่รองรับ A/B เสมือนสำหรับการอัปเดตที่ราบรื่น

Google ย้อนรอยในการกำหนดให้ OEM รองรับ A/B เสมือนบนอุปกรณ์ Android 11 ใหม่ ซึ่งจะปูทางสำหรับการอัปเดตที่ราบรื่น

อัปเดต 1 (25/01/2021 @ 14:06 น. ET): ก่อนที่จะมีการเปิดตัว Android 11 ดูเหมือนว่า Google จะย้อนรอยในการกำหนดให้อุปกรณ์เปิดตัวรองรับ A / B เสมือน คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติม บทความที่เผยแพร่เมื่อวันที่ 7 เมษายน 2021 ได้รับการเก็บรักษาไว้ด้านล่าง

ด้วย Android 7.0 Nougat Google ได้เปิดตัวรูปแบบพาร์ติชันที่ออกแบบมาเพื่อเพิ่มความเร็วในการอัปเดตซอฟต์แวร์ ใน Nougat Google ได้เพิ่มการสนับสนุนสำหรับการทำซ้ำพาร์ติชันบางพาร์ติชันเพื่อให้พาร์ติชันที่ไม่ได้ใช้งานได้รับการอัปเดตในเบื้องหลัง จากนั้นจึงสลับให้ทำงานด้วยการรีบูตอย่างรวดเร็ว นี้ การตั้งค่า "พาร์ติชัน A/B" ช่วยให้สามารถ "อัปเดตได้อย่างราบรื่น" ที่จะเกิดขึ้นบนอุปกรณ์ Android ที่รองรับ เช่นเดียวกับ Chrome OS ของ Google อย่างไรก็ตาม Google ไม่เคยกำหนดให้ใช้พาร์ติชัน A/B จึงมีอุปกรณ์จำนวนมากที่ไม่รองรับการอัปเดตที่ราบรื่น อย่างไรก็ตาม สิ่งนี้อาจเปลี่ยนแปลงได้ใน Android 11 เนื่องจาก Google กำหนดให้อุปกรณ์ที่เพิ่งเปิดตัวใหม่รองรับพาร์ติชัน A/B เสมือน

สำหรับพื้นหลังเล็กน้อย พาร์ติชัน A/B หมายถึงชุดของพาร์ติชันแบบอ่านอย่างเดียวที่ทำซ้ำ โดยทั่วไปพาร์ติชันที่ทำซ้ำจะประกอบด้วยพาร์ติชันระบบ ผู้จำหน่าย บูต และพาร์ติชันผลิตภัณฑ์ เมื่อโทรศัพท์กำลังดาวน์โหลดการอัปเดต ตัวอัปเดตจะแก้ไขชุดพาร์ติชันที่ไม่ได้ใช้งาน ("ช่อง" หนึ่งช่อง) ในเบื้องหลัง เมื่อการอัปเดตใช้กับช่องที่ไม่ได้ใช้งานเสร็จแล้ว ผู้ใช้จะได้รับแจ้งให้รีบูตอุปกรณ์ เมื่อผู้ใช้รีบูทอุปกรณ์ ช่องที่ไม่ได้ใช้งานจะสลับกับช่องที่ใช้งานอยู่ เพื่อเสร็จสิ้นกระบวนการอัปเดต ช่องที่ใช้งานก่อนหน้านี้จะไม่ถูกแตะต้องหากมีปัญหาในการบูตช่องที่อัปเดตใหม่ เมื่อมีการอัปเดตครั้งต่อไป กระบวนการนี้จะเกิดขึ้นซ้ำ หากคุณสนใจคำอธิบายทางเทคนิคเพิ่มเติม โปรดดูเอกสารสำหรับนักพัฒนาซอฟต์แวร์ของ Google บนพาร์ติชัน A/B

ในทางตรงกันข้าม อุปกรณ์ที่ไม่มีพาร์ติชัน A/B เช่น Samsung Galaxy S20, OPPO Find X2 และอื่นๆ อีกมากมาย จะใช้การอัปเดตผ่านตัวอัปเดตเฉพาะในกระบวนการกู้คืน การดำเนินการนี้จะทำให้ผู้ใช้ออกจาก Android และทำให้ไม่สามารถใช้อุปกรณ์ได้เป็นเวลาหลายนาที และอาจพลาดการแจ้งเตือนที่สำคัญ การโทร หรือข้อความ Google เชื่อว่าการทำให้กระบวนการอัปเดตง่ายขึ้นจะทำให้ผู้คนรับการอัปเดตจริงมากขึ้นเมื่อมีการเปิดตัว อันที่จริงในเดือนพฤษภาคมปี 2017 Google พบว่า เปอร์เซ็นต์ของผู้ใช้ Pixel ที่สูงกว่าผู้ใช้ Nexus ใช้งานการอัปเดตความปลอดภัยล่าสุด แน่นอนว่าผู้ใช้สามารถกำหนดเวลาการอัปเดตให้เกิดขึ้นเมื่อไม่ได้ใช้งานอุปกรณ์ของตน แต่ผู้ใช้จำนวนมากก็ไม่อัปเดตอุปกรณ์ของตนแม้ว่าจะได้รับแจ้งก็ตาม นอกจากนี้ เมื่อไม่มีพาร์ติชั่น A/B ผู้ใช้จะพลาดข้อดีข้อใดข้อหนึ่ง นั่นก็คือ การปกป้องพวกเขาจากการอัปเดตระบบที่เสียหาย

ยกตัวอย่างเมื่อเสี่ยวมี่ เปิดตัวการอัปเดต Android 10 ครั้งแรก สำหรับ Mi A2 Lite ผู้ใช้หลายคนพบว่าอุปกรณ์ของตนไม่ได้บู๊ต โชคดีสำหรับพวกเขา Mi A2 Lite มีพาร์ติชัน A/B เพื่อการอัพเดตที่ราบรื่น พบผู้ใช้ในฟอรัมของเรา พวกเขาสามารถใช้คำสั่ง fastboot เพื่อตั้งค่า bootloader ให้บูตชุดพาร์ติชันที่ไม่ถูกแตะต้องซึ่งใช้งานก่อนหน้านี้ ดังนั้น พาร์ติชั่น A/B ไม่เพียงแต่ให้กระบวนการอัพเดตแก่ผู้ใช้ได้รวดเร็วยิ่งขึ้นเท่านั้น แต่ยังทำหน้าที่เป็นตัวป้องกันความล้มเหลวสำหรับการอัพเดตที่เสียหายอีกด้วย OEM ที่ไม่ได้ใช้พาร์ติชัน A/B ยังคงสามารถออกแบบวิธีการของตนเองในการป้องกัน OTA ได้ ความล้มเหลว แม้ว่าเหตุใดจึงต้องประสบปัญหานั้น ในเมื่อการป้องกันนี้เป็นส่วนหนึ่งของการออกแบบ A/B พาร์ทิชัน? สำหรับการอ้างอิงของคุณ นี่คือบางส่วน (และล้าสมัยที่เป็นที่ยอมรับ) รายการอุปกรณ์ที่รองรับพาร์ติชัน A/B สำหรับการอัปเดตที่ราบรื่น และนี่คือบทช่วยสอนเกี่ยวกับ วิธีตรวจสอบว่าอุปกรณ์ของคุณรองรับคุณสมบัตินี้หรือไม่.

อาจดูน่าสงสัยว่าทำไม OEM บางรายถึงชอบ Samsung เรียกเก็บเงิน 1,400 ดอลลาร์สำหรับสมาร์ทโฟน แต่จะไม่มีฟีเจอร์ที่ดีเช่นนี้. สาเหตุมักจะอยู่ที่พื้นที่จัดเก็บข้อมูล: OEM ไม่ต้องการสละพื้นที่จัดเก็บข้อมูลสองสามกิกะไบต์เพื่อรองรับการอัปเดตที่ราบรื่น โทรศัพท์อย่าง Samsung Galaxy S20 มี ตัน ของซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้า ดังนั้นการทำซ้ำพาร์ติชัน เช่น /system และ /product จะทำให้มีไฟล์ขนาดใหญ่และแอปพลิเคชันจำนวนมากถูกทำซ้ำ Google จัดการเพื่อใช้พาร์ติชัน A/B โดยไม่ต้องเสียสละพื้นที่จัดเก็บข้อมูลมากเกินไป ต้องขอบคุณเคล็ดลับอันชาญฉลาด เพื่อแก้ไขปัญหาการทำซ้ำไฟล์ .odex ขนาดใหญ่ อีกเหตุผลหนึ่งที่ OEM อาจเลือกที่จะไม่ใช้พาร์ติชัน A/B ก็คือต้นทุน: การตามทันของ Google การเปลี่ยนแปลงอย่างต่อเนื่องกับแผนพาร์ติชันของ Android ต้องใช้ความพยายามอย่างมากในฐานะนักพัฒนาที่ได้รับการยอมรับจาก XDA ท็อปจอห์นวู จะบอกคุณ เว้นแต่ว่า OEM จะถูกบังคับให้ทำ หลายๆ คนก็ไม่สนใจที่จะเปลี่ยนสิ่งที่ใช้ได้ผลอยู่แล้วสำหรับพวกเขา

ในที่สุด Google ดูเหมือนจะวางกฎหมายใน Android 11 ด้วยการบังคับให้มีการใช้พาร์ติชัน A/B เสมือนบนอุปกรณ์ที่เพิ่งเปิดตัว พวกเขามั่นใจได้ว่า OEM จะต้องสนับสนุนการอัปเดตที่ราบรื่นสำหรับอุปกรณ์ช่วงปลายปี 2020 และ 2021 ตามที่เห็นโดย XDA Recognized Developer ลูก้า020400Yifan Hong วิศวกรซอฟต์แวร์ของ Google ในทีม Project Treble ได้ยื่นข้อผูกพันต่อ AOSP Gerrit ในหัวข้อ "จำเป็นต้องมี Virtual A/B บน R” คอมมิตจะอัปเดต Vendor Test Suite หรือ VTS ซึ่งเป็นการทดสอบอัตโนมัติที่อุปกรณ์ทั้งหมดต้องผ่านจึงจะถือว่าเข้ากันได้กับ Project Treble การทดสอบใหม่จะตรวจสอบว่าคุณสมบัติของระบบ "ro.virtual_ab.enabled" ถูกตั้งค่าเป็นจริงและถ้า "ro.virtual_ab.retrofit" ถูกตั้งค่าเป็นเท็จบนอุปกรณ์ที่มีระดับ API การจัดส่ง 30 ขึ้นไป กล่าวอีกนัยหนึ่ง การทดสอบนี้จะตรวจสอบว่าอุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไปรองรับพาร์ติชัน A/B เสมือนหรือไม่ พาร์ติชัน A/B "เสมือน" เปิดตัวพร้อมกับ Android 10 ควบคู่ไปกับ "พาร์ติชันไดนามิก" ซึ่งเป็นพาร์ติชันที่ปรับขนาดได้แบบไดนามิก มีแนวคิดเดียวกันกับพาร์ติชัน A/B ทั่วไป แต่สามารถปรับขนาดได้อย่างอิสระ

หากอุปกรณ์ที่เปิดตัวด้วย Android 11 ไม่รองรับพาร์ติชัน A/B เสมือน อุปกรณ์นั้นจะล้มเหลว VTS หากอุปกรณ์ไม่ผ่าน VTS ก็จะไม่สามารถจัดส่งผ่าน Google Mobile Services ได้ กล่าวอีกนัยหนึ่ง Google ได้กำหนดไว้อย่างมีประสิทธิภาพสำหรับ OEM เพื่อรองรับพาร์ติชัน A/B เสมือน และโดยส่วนขยาย การอัปเดตที่ราบรื่น


อัปเดต: ไม่จำเป็นต้องใช้ A/B เสมือนสำหรับ Android 11

เมื่อเรารายงานย้อนกลับไปครั้งแรกในเดือนเมษายนว่า Google ต้องการให้อุปกรณ์ที่เปิดตัว Android 11 ทั้งหมดรองรับ กลไกการอัพเดต A/B เสมือนมีความตื่นเต้นอย่างมากเพราะในที่สุดมันก็จะทำให้โทรศัพท์ Samsung มีการอัปเดตที่ราบรื่นในที่สุด น่าเสียดายที่ Google ตัดสินใจที่จะไม่สร้างข้อกำหนดการสนับสนุน A/B เสมือน ระบบปฏิบัติการ Android 11 เอกสารคำจำกัดความความเข้ากันได้ (CDD) ปัจจุบันอ่านว่า "การใช้งานอุปกรณ์ควรรองรับการอัปเดตระบบ A/B" แทนที่จะเป็นการสนับสนุน "ต้อง" ดูเหมือนว่า ณ จุดหนึ่งก่อนการเปิดตัว Android 11 นั้น Google ได้ตัดสินใจยกเลิกการตัดสินใจที่ต้องการการสนับสนุน A/B เสมือน ซึ่งน่าจะอยู่ที่ ตามคำสั่งของ OEM หลายราย สิ่งนี้เกิดขึ้นค่อนข้างบ่อยแต่ไม่เคยถูกเผยแพร่สู่สาธารณะ เนื่องจากมีเพียงร่างสุดท้ายของ CDD เท่านั้นที่ได้รับการตีพิมพ์ ออนไลน์