อีกหนึ่งฟีเจอร์เด่นของ Android Nougat ที่เราได้ยินเมื่อตอนเปิดตัว คือระบบ Seamless Updates หรือการอัพเดทเวอร์ชั่นของระบบปฎิบัติการแบบไม่ต้องรอ จากเดิมที่ต้องรีสตาร์ทเครื่องแล้วดูน้อง android นอนหงายท้อง แต่ใน Android 7.0 Nougat นั้นจะไม่มีเหตุการณ์แบบนั้นอีกแล้ว ด้วยระบบ Seamless Updates ที่มาช่วยจัดการให้นั่นเอง ว่าแต่ระบบนี้มันทำงานยังไง แล้วทำไมถึงถูกจำกัดให้มีเฉพาะในเครื่องที่เป็น Android 7.0 จากโรงงานเท่านั้น เราลองมาดูกันครับ

Seamless Update มันทำงานอย่างไร?

ระบบนี้ทำงานโดยการสร้าง logical partition บนหน่วยความจำของตัวเครื่องขึ้นมาอีก partition หนึ่ง ซึ่งทุกครั้งที่ android ถูก boot เครื่องขึ้นมาจะมีการเลือกโดยอัตโนมัติว่าจะใช้งาน partition ไหน พูดง่ายๆ ว่าตัวเครื่องที่มาพร้อม android nougat จะมี system partition 2 อันแยกกันและสลับกันทำงาน

เมื่อ android ได้รับไฟล์ OTA หรือไฟล์อัพเดทมาแล้ว ระบบจะสั่งให้มันไปทำการอัพเดท partition ที่ไม่ได้ถูกใช้งานหรือ inactive ในฃณะนั้น และ bootloader ก็จะถูกสั่งให้ทำการ boot เครื่องจาก partition ที่ได้รับการอัพเดทในครั้งถัดไป

แต่ถ้าหากว่าเกิดปัญหาในการ boot จาก partition หลักที่ถูกเรียกใช้งานระบบจะพยายาม boot อีก 2-3 ครั้ง เมื่อไม่สามารถ boot ขึ้นมาได้ก็จะกลับมาเรียก partition รอง

 

ทำไม android รุ่นเก่าๆ ที่อัพเป็น Android Nougat จึงไม่สามารถใช้งานฟีเจอร์นี้ได้ ?

ด้วยระบบที่เปลี่ยนไปของ Android Nougat ทำให้ระบบ partition เดิมของ Android รุ่นก่อนๆ หายไป ทั้ง cached partition และ recovery partition ที่เคยใช้ในการอัพเดท android นั้นถูกตัดออกไปทั้งหมดเพื่อการมาของ seamless updates ซึ่งระบบ OS ในเวอร์ชั่นนี้สามารถนำไฟล์ OTA มาทำการอัพเดทข้อมูลใน partition ที่ว่างอยู่ได้ทันที ทำให้ cached และ recovery นั้นไม่มีความจำเป็นอีกต่อไป

ซึ่งถ้าเราทำการ format แล้วจัดเรียง partition ใหม่ให้เป็นเหมือน nougat แล้วจะใช้งาน semaless update ได้หรือไม่ อันนี้ก็มีความเป็นไปได้ แต่จะไปติดที่ bootloader ก็ต้องมีการอัพเดทให้รู้จักการทำงานกับ dual slot partition ด้วย ซึ่งไม่ตรงส่วนนี้ไม่เคยมีค่ายไหนเปิดเผยหรือปล่อย open source ออกมา 

Recovery partition หายไปแล้ว แบบนี้จะยังมี custom rom ได้หรือไม่ ?

นี่ก็เป็นอีกปัญหานึงที่เหล่านักพัฒนา รวมถึงสายโมทั้งหลายกำลังหาทางกันอยู่ เพราะตอนนี้ไม่มี recovery partition แล้ว แถมยังติดในเรื่องของระบบความปลอดภัยที่ตอนนี้กลายเป็น Full disk encryption หรือการเข้ารหัสที่ตัวไดรฟ์อีกต่างหาก

การที่ Androidf Nougat มี system 2 partition สลับกันทำงานก็ถือว่าน่าสนใจถ้าหากจะทำการโม ROM แล้วเข้าไปเขียนทับ inactive partition ได้เลย แต่ก็ติดปัญหาความยุ่งยากในการเขาไปใช้ข้อมูลที่ใช้ร่วมกันหรือ data partition

 

ระบบ partition ใหม่ มาพร้อมคำสั่ง FASTBOOT ใหม่

เนื่องจากระบบ partition ที่เปลี่ยนไป ทำให้ command FASTBOOT ของ android เปลี่ยนไปด้วยครับ แต่บางคำสั่งก็ยังทำงานคล้ายๆ เดิมก็มี แต่จะมีเรืองของ slot active และ inactive (secondary) มาเกี่ยวข้อง

update <filename> เป็นคำสั่งในการแฟลช update.zip โดย slot ที่ถูกอัพเดทจะกลายเป็น active

flashall จะเป็นการสั่ง flash หมดทั้ง disk เลยคือ boot, system, vendor 

set_active <slot> เลือกสั่งว่าจะบูทเครื่องจาก slot ไหน โดย Google Pixel นั้นจะมีการเรียกชื่อว่า _a และ _b

ตัวอย่างคำสั่งการเลือกเปิด partition ของ Pixel นั้นก็ตามนี้ครับ

fastboot set_active _b คำสั่งนี้จะสั่งให้ bootloader ไปเรียก boot ที่ partition _b ของ Pixel นั่นเอง

 

สำหรับข้อมูลของ Android Nougat Seamless Updates ผมคงเขียนเอาไว้คร่าวๆ ประมาณนี้ ส่วนรายละเอียดคำสั่งทั้งหมด รวมถึงเนื้อหาที่เป็นด้านเทคนิคลองไปอ่านได้ที่ androidpolice นะครับ

 

source : androidpolice