[Android Series ep 3] เจาะลึก Bootloader & Recovery คืออะไร มันมีไว้ทำไม

กระทู้สนทนา
NOTE : ใครอ่านแล้วมึน งง สับสน ลองไปอ่านบทความเก่าๆเกี่ยวกับแอนดรอยด์ไปก่อนนะครับ
series ตอน1 ผ่าโครงสร้างของแอนดรอยด์ http://ppantip.com/topic/30640990
series ตอนที่ 2 เจาะลึก Root คืออะไร http://ppantip.com/topic/30650203

สวัสดีครับวันนี้ผมจะมาเจาะลึกส่วนที่ลึกที่สุดของระบบปฏิบัติการเลยก็ว่าได้ นั่นก็คือ Bootloader & Recovery ครับ ในเรื่องนี้ส่วนตัวเองก็เข้าใจดีพอสมควรแล้วแหละแต่ว่าจะอธิบายให้เข้าใจยังไงดี เนื่องมาจากเป็นโครงสร้างเชิงลึกที่คนที่มีความรู้ระดับ developer กับวิศวกรรมครับ

เอาล่ะ ทำความรู้จักกับมันกันเลยครับ
--------Bootloader & Recovery คืออะไร
ดูรูปไปก่อนครับ
Bootloader

ที่มา http://javigon.com/2012/08/24/from-poweron-to-android-the-boot-sequence/

Recovery


NOTE : โครงสร้างของตัว bootloader กับ recovery อาจเปลี่ยนแปลงได้ตามรุ่นของ CPU ครับ ใครจะเล่นส่วนนี้ต้องศึกษาข้อมูล CPU ให้ละเอียดด้วยครับ

อธิบาย
ดูจากรูปบนแถวกลางนะครับ จะเห็นว่าตัว bootloader เป็นส่วนที่อยู่ข้างใต้ Linux Kernel อีกที Linux Kernel คืออะไร ให้ไปดูตอน 2 ลิงก์ด้านบนครับ หลักของการบูตระบบก็คือเมื่อเปิดเครื่องไฟเลี้ยงเข้า cpu ปุ๊บตัว cpu จะไปมองหา rom ซึ่งมันจะฝังอยู่ cpu หรือเป็นชิพแยกต่างหากอันนี้แล้วแต่รุ่นครับ ซึ่งหน้าที่ก็เหมือนกับ BIOS ในเครื่องคอมพิวเตอร์ที่เป็นหน้าจอดำๆตัวหนังสือวิ่งแล้วก็มีเสียงติ๊ดเวลาเปิดเครื่อง เมื่อมันโหลดตัวรอมที่ว่าแล้วมันก็จะมองหาส่วนที่เป็น bootloader เพื่อโหลดข้อมูลที่เป็น loader และ kernel เข้าสู่หน่วยความจำและเตรียมพร้อมสำหรับการบูตในลำดับถัดไป(ซึ่งหลังๆก็เป็นตัวแอนดรอยด์แล้ว คงไม่มีอะไรมาก)
ถ้างงลองนึกถึงเครื่องคอมที่มี windows หลายตัวในเครื่องเดียวแล้วมีตัวเลือกว่าจะใช้ตัวไหน ซึ่งกระบวนการนั้นก็คือตัว bootloader กำลังให้เลือกว่าจะให้โหลด os อันไหน(เพราะมันโหลดหลายๆอันพร้อมกันไม่ได้) ซึ่งตัวเลือกวินโดว์นั้นมันก็ผ่านเสียงติ๊ดจาก bios ไปแล้วนั่นเองครับ
ส่วน recovery ภาพ 2 recovery เป็นโหมดพิเศษที่ผ่านมาจากตัว bootloader มาอีกที ถามว่ามันไปอยู่รวมกันกับ Linux Kernel ใช่หรือไม่ คำตอบคือไม่ใช่ครับ ดูจากภาพแล้วเนี่ยตัว recovery ก็เหมือนกับ OS ตัวที่สองที่อยู่ในเครื่องนั่นเองเป็นระบบเล็กๆที่เอาไว้จัดการ firmware ของตัวระบบหลักอีกทีนึงครับ

--------------มันมีไว้ทำไม
ตัว bootloader เป็นส่วนสำคัญของระบบสำหรับกระบวนการโหลดตัวระบบเข้าสู่หน่วยความจำ(boot) สมาร์ทโฟนทุกรุ่น ทุกยี่ห้อ ทุกระบบ แม้แต่โทรศัพท์ฟีเจอร์โฟนถูกๆ ที่ใช้ cpu ในการสั่งการและประมวลผลก็มีส่วนนี้อยู่ด้วยเสมอครับห้ามหาย
ส่วนตัว recovery ซึ่งชื่อมันก็บอกอยู่แล้วครับว่ามันเอาไว้สำหรับกู้ภัยที่อันเกิดมาจากเครื่องบูตไม่ขึ้นหรือไว้ล้างข้อมูลแคชหรือแม้กระทั่งไว้อัพรอมใหม่ได้อีกด้วยครับ

-------------แล้วข่าวที่ว่าปลดล็อก bootloader มันจะล็อกไว้ทำไม
สาเหตุที่บริษัทผู้ผลิตหลายๆค่ายได้ทำการล็อก bootloader เอาไว้แล้วทำไมจึงต้องล็อกล่ะ นั่นเป็นเพราะว่า
1.แบบเดียวกับการ Root ครับเพื่อป้องความเสียหายอันเนื่องมาจากการอัพเกรด firmware ที่ไม่ถูกต้อง ถูกวิธี
2.ปัญหาลิขสิทธิ์ครับ เอ้าแล้วไง นั่นเป็นเพราะมีบางยี่ห้อนั้นมีบริการพวกเช่าหนังฟังเพลงออนไลน์ด้วยรวมถึงคุรสมบัติพิเศษของตัวเครื่องซึ่งเป็นลิขสิทธิ์เฉพาะ อย่าง bravia engine,beats audio และอื่นๆ การที่ไปอนุญาติให้เข้าถึง bootloader นั่นก็หมายความว่าสามารถที่จะเข้าไป "ล้วง" แกะส่วนที่เป็นเทคโนโลยีเฉพาะเหล่านี้ไปได้ ซึ่งการล็อกตัว bootloader เป็นการล็อกเพื่อป้องกันสิทธิ์เหล่านี้ครับ(ฉะนั้นจึงเห็นหลายๆเครื่องที่ปลดล็อก bootloader ไปแล้วมันจะมีฟังก์ชันบางตัวหายไป)

----------เราจะลง recovery กับปลดล็อก bootloader ได้อย่างไร
อันนี้เป็นแบบเดียวกับ root ครับ นั่นก็คือเครื่องใครเครื่องมัน รุ่นใครรุ่นมัน ตัวใครตัวมันครับ โดยการปลดล็อก bootloader นั้นแต่ละยี่ห้อก็จะมีวิธีปลดล็อก bootloader ในหน้าเว็บของผู้ผลิตเองซึ่งก็มีกระบวนการที่แตกต่างกันไม่ว่าจะเป็นลงทะเบียน IMEI หรือแจกรหัสปลดล็อกหรือบางยี่ห้อก็ไม่ได้ล็อก(อย่างเช่นซัมซุงกับ LG) ก็ไม่ต้องทำให้ยุ่งยาก ส่วนตัว recovery นั้นก็แล้วแต่ผู้พัฒนาว่าจะทำออกมารองรับหรือเปล่าและเข้าด้วยวิธีไหน อันนี้แล้วแต่รุ่นซึ่งจะมีวิธีทำขั้นตอนอย่างละเอียดแบบเดียวกับการ root ครับไม่ก็บางรุ่นก็มีมาให้ ไม่ต้องลงก็ได้ก็ต้องศึกษาให้ละเอียดว่าในเครื่องของเรานั้นมันมีอะไรมาให้บ้างครับ

-----------ผลกระทบจากการลง custom recovery และปลดล็อก bootloader
แน่นอนว่าแบบเดียวกับ root เลยครับ ลองไปอ่านกระทู้เจาะลึก root ได้เลยครับ

ปิดท้ายผมขอแนะนำตัว recovery ซึ่งมีอยู่ 2ทีมก็คือ
ทีมของ clockworkmod ครับ หรือทางศัพท์ย่อๆจะเรียกว่า CWM ครับ
และทีมของ Teamwin หรือเรียกย่อๆว่า TWRP ครับ
ซึ่งสามารถดูลักษณะหน้าตา การใช้งาน การติดตั้ง และรุ่นที่รองรับกันได้ที่นี่ครับ
http://www.clockworkmod.com/   << ทีมของ clockworkmod
และ http://www.teamw.in/  << ทีมของ Teamwin ครับ

และเรื่องเจาะลึก Bootloader & Recovery ก็มีเพียงเท่านี้ คราวหน้าจะนำเสนอเรื่อง custom rom ครับ ตอนนี้ศึกษาให้ละเอียดอีกนิดนึงแล้วมาเขียนต่อครับ สำหรับวันนี้สวัสดีครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่