fbpx
News

ทำความรู้จัก Seamless Updates ระบบอัพเดทแบบไม่ต้องรอของ Android Nougat ว่ามันทำงานอย่างไร

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

อีกหนึ่งฟีเจอร์เด่นของ 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

 

9 Comments

  1. Avatar

    bo3ber Post on November 9, 2016 at 12:18 am

    #963503

    ถ้ารูทแล้วยังจะใช้ฟังชั่นนี้ได้รึเปล่าครับ

    หรือควรปิดการทำงานของฟังชั่นนี้ไปเลย (ในกรณีที่มีความเสี่ยง)

  2. Sarawut Tidtie

    Sarawut Tidtie Post on November 9, 2016 at 12:39 am

    #963505

    2 partition ผมนึกถึง mi 3 เลย

  3. hisawahiroki

    hisawahiroki Post on November 9, 2016 at 1:18 am

    #963507

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

    เพราะเค้าอยากให้คุณซื้อใหม่ 555

    • Avatar

      darkleonic Post on November 9, 2016 at 2:19 am

      #963510

      ก็ถ้าต้องรื้อ Partition ใหม่ข้อมูลก็หายหมดสิครับ End User ไม่ Happy หรอก

  4. ps000000

    ps000000 Post on November 9, 2016 at 1:46 am

    #963508

    ซับซ้อนยิ่งนัก

    ตอนนี้ Nexus 6P ผมมี รอมโม 3 สาย สาย 7.0 สาย 7.1 สาย 7.1.1

  5. LinkWii777

    LinkWii777 Post on November 9, 2016 at 3:49 am

    #963511

    เคยใช้ System partition 2 ใน Mi4 -​ Miui 7 เสียดายพออัพเดตเป็น Miui 8 ก็หายไปเลย

    ข้อดีตรงที่รอมบางรุ่นมีบั๊กที่รอมกินแบต บูทเครื่องใหม่ย้ายกลับไปรอมก่อนหน้าได้เร็วดี ปัญหารอมกินแบต​ในรอมใหม่หายในแทบจะทันที

  6. kerryExpress

    kerryExpress Post on November 9, 2016 at 4:52 am

    #963514

    สเปคเครื่องต้องแรงพอที่จะอัพเดทอยู่เบื้องหลังได้โดยที่การใช้งานปกติไม่ติดขัด

    แต่ทุกวันนี้ แค่อัพเดทแอพเล็กๆในระหว่างที่ใช้งาน ก็ยังรู้สึกสะดุดนิดๆ

    ถ้าการอัพเดทเวอร์ชั่นอยู่เบื้องหลัง ทำให้การใช้งานไม่ลื่นไหลติดๆขัดๆ มันก็ยังคงจำเป็นต้อง "รอ" จนอัพเดทเสร็จก่อนอยู่ดี

  7. WhiteCat

    WhiteCat Post on November 9, 2016 at 5:28 am

    #963516

    ยอมดูหุ่นเขียวนอนตีพุงตอนอัพเดทดีกว่าเยอะ

    ทำระบบอัพเดทออกมาดีแค่ไหน ถ้าค่ามือถือ ไม่อัพให้ ก็อดอยู่ดี

  8. Avatar

    iammote Post on November 9, 2016 at 6:33 pm

    #963527

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

    อ้าว – -"

Leave a Reply

To Top