อ่าน 5 นาที
กระบวนการบูตของอุปกรณ์ Android
กระบวนการ บูต ของ อุปกรณ์ Android เริ่มต้นที่การเปิดเครื่อง SoC ( system on a chip ) และสิ้นสุดที่การแสดง หน้าจอหลัก หรือโหมดพิเศษ เช่น โหมดกู้คืน (recovery) , โหมด fastboot หรือ...
กระบวนการบูตของอุปกรณ์ Android
กระบวนการบูตของ อุปกรณ์ Androidเริ่มต้นที่การเปิดเครื่อง SoC ( system on a chip ) และสิ้นสุดที่การแสดงหน้าจอหลักหรือโหมดพิเศษ เช่นโหมดกู้คืน (recovery) , โหมด fastbootหรือโหมด Odinสำหรับอุปกรณ์ Samsung [ a ]กระบวนการบูตของอุปกรณ์ที่ใช้ Android ได้รับอิทธิพลจากการออกแบบเฟิร์มแวร์ของผู้ผลิต SoC
พื้นหลัง
ณ ปี 2018 ชิปประมวลผล (SoC) ของตลาด Android ร้อยละ 90 มาจากQualcomm , SamsungหรือMediaTek [ 1 ]ผู้จำหน่ายรายอื่น ๆ ได้แก่UNISOC , Rockchip , Marvell , Nvidiaและก่อนหน้านี้คือTexas Instruments
ประวัติศาสตร์
Verified boot ซึ่งเป็นมาตรการรักษาความปลอดภัยในการบูต ได้ถูกนำมาใช้ในAndroid KitKat [ 2 ]
เวที
บูตโหลดเดอร์หลัก
บูตโหลดเดอร์หลัก (PBL) ซึ่งจัดเก็บอยู่ในบูตรอม[ 3 ]เป็นขั้นตอนแรกของกระบวนการบูต โค้ดนี้เขียนโดยผู้ผลิตชิปเซ็ต[ 4 ]
PBL จะตรวจสอบความถูกต้องของขั้นตอนต่อไป
ในสมาร์ทโฟน Samsung นั้น Samsung Secure Boot Key (SSBK) ถูกใช้โดย boot ROM เพื่อตรวจสอบขั้นตอนต่อไป[ 5 ]
บนชิปประมวลผล (SoC) จาก Qualcomm สามารถเข้าสู่โหมดดาวน์โหลดฉุกเฉินของ Qualcomm ได้ จากบูตโหลดเดอร์หลัก
หากการตรวจสอบบูตโหลดเดอร์รองล้มเหลว ระบบจะเข้าสู่ EDL [ 6 ] [ 7 ]
บูตโหลดเดอร์รอง
เนื่องจากพื้นที่ในบูตรอมมีจำกัด จึงใช้ บูตโหลดเดอร์รองบน eMMCหรือeUFS [ 8 ]บูตโหลดเดอร์รองจะเริ่มต้นTrustZone [ 8 ] [ 9 ]
ตัวอย่างเช่น บน Qualcomm MSM8960 บูตโหลดเดอร์รอง 1 จะโหลดบูตโหลดเดอร์รอง 2 บูตโหลดเดอร์รอง 2 จะโหลด TrustZone และบูตโหลดเดอร์รอง 3 [ 10 ]
ปัจจุบัน Qualcomm เรียก SBL ว่า XBL ซึ่งเป็นการ ใช้งาน UEFIและในอุปกรณ์สมาร์ทโฟนและแท็บเล็ต XBL มักจะเป็นการใช้งาน EDK2
Qualcomm เคยใช้ LK (Little Kernel) บวก Aboot หรือปัจจุบันใช้ XBL (eXtensible Bootloader) บวก ABL; Samsung Exynos ใช้ S-Boot; MediaTek SoC รุ่นเก่ามากใช้Das U-Bootและ MediaTek SoC รุ่นใหม่ใช้ UEFI [ 1 ] Little Kernel เป็นไมโครเคอร์เนลสำหรับอุปกรณ์ฝังตัวซึ่งได้รับการดัดแปลงโดย Qualcomm และ MediaTek เพื่อใช้เป็นบูตโหลดเดอร์[ 11 ] Android Bootloader (Aboot หรือ ABL) ใช้ ส่วนต่อประสาน fastboot Android Bootloader ตรวจสอบความถูกต้องของพาร์ติชั่นบูตและกู้คืน[ 4 ]โดยการกดปุ่มผสมเฉพาะ อุปกรณ์ยังสามารถบูตในโหมดกู้คืนได้ จากนั้น Android Bootloader จะถ่ายโอนการควบคุมไปยังเคอร์เนล Linux
เคอร์เนลและ initramfs
initramfs เป็น ไฟล์เก็บถาวร cpio ที่บีบอัดด้วย gzip ซึ่งมีระบบไฟล์รูทขนาดเล็กอยู่ ภายในประกอบด้วยinitซึ่งจะถูกเรียกใช้งาน เคอร์เนล Android เป็นเวอร์ชันที่แก้ไขแล้วของเคอร์เนล Linux จากนั้น init จะทำการเมานต์พาร์ติชันdm-verityจะตรวจสอบความสมบูรณ์ของพาร์ติชันที่ระบุไว้ใน ไฟล์ fstab dm-verity เป็นโมดูลเคอร์เนล Linux ที่ Google นำมาใช้ใน Android ตั้งแต่เวอร์ชัน 4.4 การใช้งานแบบดั้งเดิมรองรับเฉพาะการตรวจสอบแบบบล็อก แต่ Samsung ได้เพิ่มการรองรับไฟล์[ 9 ]
ไซโกต
Zygote ถูกสร้างขึ้นโดยกระบวนการ init ซึ่งมีหน้าที่ในการเริ่มต้นแอปพลิเคชันและกระบวนการบริการของ Android มันจะโหลดและเริ่มต้นคลาสที่ควรใช้งานบ่อยๆ ลงในฮีป ตัวอย่างเช่น โครงสร้างข้อมูล dex ของไลบรารีต่างๆ หลังจากที่ Zygote เริ่มทำงานแล้ว มันจะรอรับคำสั่งบนซ็อกเก็ต เมื่อต้องการเริ่มต้นแอปพลิเคชันใหม่ คำสั่งจะถูกส่งไปยัง Zygote ซึ่งจะเรียกใช้ระบบ fork()
การจัดวางพาร์ทิชัน
ระบบ Android แบ่งออกเป็นพาร์ติชัน ต่างๆ [ 12 ]
แพลตฟอร์ม Qualcomm ใช้ตารางพาร์ติชั่น GUIDข้อกำหนดนี้เป็นส่วนหนึ่งของ ข้อกำหนด UEFIแต่ไม่ขึ้นอยู่กับเฟิร์มแวร์ UEFI [ 13 ]
ดูเพิ่มเติม
หมายเหตุอธิบาย
- โหมดเหล่านี้ มักรองรับฟังก์ชันในการกลับสู่การบูตตามปกติ
ลิงก์ภายนอก
- Android.com - ขั้นตอนการบูต
- การจัดการเวลาในการบูตเครื่อง
- บูตโหลดเดอร์ของ Qualcomm
- ห่วงโซ่ความน่าเชื่อถือของ Qualcomm
- การบูตที่ปลอดภัยและการตรวจสอบความถูกต้องของอิมเมจ
- ระบบบูตที่ปลอดภัยบน Snapdragon 410
- การวิเคราะห์ระบบ Secure Boot Chain ของ Qualcomm
- msm8916-mainline/qhypstub
- การวิเคราะห์อย่างละเอียดเกี่ยวกับการเริ่มต้นกระบวนการ init ของระบบ Android และไฟล์ init.rc
- ภาษาเริ่มต้น Android
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ กระบวนการบูตของอุปกรณ์ Android
กระบวนการ บูต ของ อุปกรณ์ Android เริ่มต้นที่การเปิดเครื่อง SoC ( system on a chip ) และสิ้นสุดที่การแสดง หน้าจอหลัก หรือโหมดพิเศษ เช่น โหมดกู้คืน (recovery) , โหมด fastboot หรือ...
พื้นหลัง
ณ ปี 2018 ชิปประมวลผล (SoC) ของตลาด Android ร้อยละ 90 มาจาก Qualcomm , Samsung หรือ MediaTek [ 1 ] ผู้จำหน่ายรายอื่น ๆ ได้แก่ UNISOC , Rockchip , Marvell , Nvidia และก่อนหน้านี้คือ Texas Instruments
ประวัติศาสตร์
Verified boot ซึ่งเป็น มาตรการรักษาความปลอดภัยในการบูต ได้ ถูกนำมาใช้ใน Android KitKat [ 2 ]
บูตโหลดเดอร์หลัก
บูตโหลดเดอร์หลัก (PBL) ซึ่งจัดเก็บอยู่ใน บูตรอม [ 3 ] เป็นขั้นตอนแรกของกระบวนการบูต โค้ดนี้เขียนโดยผู้ผลิตชิปเซ็ต [ 4 ]