กระบวนการบูตของอุปกรณ์แอนดรอยด์

กระบวนการบูตของอุปกรณ์แอนดรอยด์ เริ่มต้นตั้งแต่การเปิดเครื่อง SoC (ระบบบนชิป) และสิ้นสุดลงเมื่อหน้าจอหลักปรากฏขึ้นหรือโหมดพิเศษ เช่นการกู้คืนและบูตอย่างรวดเร็ว กระบวนการบูตของอุปกรณ์ที่ใช้ แอนดรอยด์ ได้รับอิทธิพลจากการออกแบบเฟิร์มแวร์ของผู้ผลิต SoC

 ภูมิหลัง 
ณ ปี 2018 SoC ของตลาดแอนดรอยด์ 90% ได้รับการจัดหาโดย ควอลคอมม์, ซัมซุง หรือ มีเดียเทก ผู้จำหน่ายรายอื่นได้แก่ ร็อคชิป, มาร์เวล, อินวิเดีย และก่อนหน้านี้คือ เท็กซัสอินสทรูเมนท์ส

 ประวัติ 
Verified boot ซึ่ง เป็นมาตรการรักษาความปลอดภัยในการบูต ได้รับการแนะนำพร้อมกับแอนดรอยด์ คิทแคท

 ขั้นตอน 
 บูตโหลดเดอร์หลัก 
บูตโหลดเดอร์หลัก (PBL) ซึ่งจะเก็บไว้ใน Boot ROM เป็นขั้นตอนแรกของกระบวนการบูต โค้ดนี้เขียนโดยผู้ผลิตชิปเซ็ต

PBL ตรวจสอบความถูกต้องของขั้นตอนถัดไป

ในสมาร์ทโฟนซัมซุงนั้น Samsung Secure Boot Key (SSBK) จะถูกใช้โดย ROM บูตเพื่อตรวจสอบขั้นตอนต่อไป

บน SoC จากควอลคอมม์ คุณสามารถเข้าสู่โหมดดาวน์โหลดฉุกเฉินของ ควอลคอมม์ได้จากตัวบูตโหลดเดอร์หลัก

หากการตรวจสอบบูตโหลดเดอร์รองล้มเหลวจะเข้าสู่ EDL[ ดีกว่า แหล่งที่มา จำเป็น ]

 บูตโหลดเดอร์รอง 
เนื่องจากพื้นที่ใน ROM บูตมีจำกัดจึงใช้บูตโหลดเดอร์รองบน eMMC หรือ eUFS ตัวโหลดบูตรองจะเริ่มต้นTrustZone

ตัวอย่างเช่นบนควอลคอมม์ MSM8960 บูตโหลดเดอร์รอง 1 จะโหลด บูตโหลดเดอร์รอง 2 บูตโหลดเดอร์รอง 2 โหลด TrustZone และ บูตโหลดเดอร์รอง 3

ปัจจุบันควอลคอมม์เรียก SBL ว่า XBL และเป็นการใช้งานแบบ UEFI

ควอลคอมม์ใช้ LK (Little Kernel) หรือ XBL (eXtensible Bootloader), มีเดียเทกใช้ Das U-BootGarri, Khireddine; Kenaza, Tayeb; Aissani, Mohamed (October 2018). "A Novel approach for bootkit detection in Android Platform". 2018 International Conference on Smart Communications in Network Technologies (SaCoNeT). IEEE. pp. 277–282. doi:10.1109/saconet.2018.8585583. ISBN 978-1-5386-9493-0. S2CID 56718094. Little Kernel คือ ไมโครเคอร์เนล สำหรับ อุปกรณ์ฝังตัว ซึ่งได้รับการปรับเปลี่ยนโดยควอลคอมม์เพื่อใช้เป็นบูตโหลดเดอร์

 Aboot 
แอนดรอยด์ บูตโหลดเดอร์ (Aboot) ซึ่งใช้งานอินเทอร์เฟซ ฟาสต์บูต (ไม่มีในอุปกรณ์ซัมซุง) Aboot ตรวจสอบความถูกต้องของพาร์ติชันการบูตและการกู้คืนHay, Roee (2017-08-14). "fastboot oem vuln: android bootloader vulnerabilities in vendor customizations". Proceedings of the 11th USENIX Conference on Offensive Technologies. WOOT'17. Vancouver, BC, Canada: USENIX Association: 22. โดยการกดปุ่มผสมที่เฉพาะเจาะจง อุปกรณ์ก็สามารถบูตเข้าสู่ โหมดการกู้คืน ได้ จากนั้น Aboot จะโอนการควบคุมไปยังเคอร์เนล ลีนุกซ์

 เคอร์เนลและอินนิแทรมเอฟเอส 
อินนิแทรมเอฟเอส เป็นไฟล์เก็บถาวร cpio ที่ผ่านการบีบอัดด้วย gzip ซึ่งมีระบบไฟล์รูทขนาดเล็ก ประกอบด้วย init ซึ่งจะถูกดำเนินการเคอร์เนลแอนดรอยด์เป็นเวอร์ชันปรับเปลี่ยนของเคอร์เนลกระบวนการเริ่มลินุกซ์จะทำการติดพาร์ติชัน dm-verity ตรวจสอบความสมบูรณ์ของพาร์ติชันที่ระบุไว้ในไฟล์ fstab dm-verity คือโมดูลเคอร์เนล Linux ที่ถูกเปิดตัวโดยกูเกิลในแอนดรอยด์ตั้งแต่เวอร์ชัน 4.4 การใช้งานสต็อกรองรับการยืนยันแบบบล็อกเท่านั้น แต่ ซัมซุงได้เพิ่มการรองรับสำหรับไฟล์แล้วKanonov, Uri; Wool, Avishai (2016-10-24). "Secure Containers in Android". Proceedings of the 6th Workshop on Security and Privacy in Smartphones and Mobile Devices. SPSM '16. New York, NY, USA: ACM. pp. 3–12. doi:10.1145/2994459.2994470. ISBN 9781450345644. S2CID 8510729.

 ไซโกต 
ไซโกต ถูกสร้างขึ้นโดยกระบวนการ init ซึ่งรับผิดชอบในการเริ่มแอปพลิเคชัน แอนดรอยด์ และกระบวนการบริการ มันโหลดและเริ่มต้นคลาสที่ควรจะใช้บ่อยมากลงในฮีป เช่นโครงสร้างข้อมูล dex ของไลบรารีหลังจากที่ไซโกตเริ่มทำงาน มันจะฟังคำสั่งจากซ็อกเก็ตเมื่อต้องการเริ่มต้นแอปพลิเคชันใหม่ คำสั่งจะถูกส่งไปยังไซโกตซึ่งดำเนินการเรียกระบบ fork[ จำเป็นต้องมีการอ้างอิง ]

 เลย์เอาต์พาร์ติชัน 
ระบบแอนดรอยด์แบ่งออกเป็นพาร์ติชั่นต่าง ๆ

แพลตฟอร์มควอลคอมม์ใช้ประโยชน์จากตารางพาร์ติชั่น GUID ข้อกำหนดนี้เป็นส่วนหนึ่งของข้อกำหนด UEFI แต่ไม่ได้ขึ้นอยู่กับเฟิร์มแวร์ UEFI

 อ้างอิง 

 หมายเหตุ 

 แหล่งข้อมูลอื่น 
 Android.com - บูตโฟลว์
 การจัดการเวลาการบูต
 ตัวโหลดบูตของ Qualcomm
 ห่วงโซ่แห่งความไว้วางใจของ Qualcomm
 การบูตที่ปลอดภัยและการตรวจสอบภาพ
 การบูตที่ปลอดภัยบน Snapdragon 410
 การวิเคราะห์ Qualcomm Secure Boot Chains
 msm8916-เมนไลน์/qhypstub
 การเริ่มต้นกระบวนการ init ของระบบ Android และการวิเคราะห์ init.rc แบบเต็ม
 ภาษาเริ่มต้นของ Android

หมวดหมู่:บูตโลดเดอร์
หมวดหมู่:แอนดรอยด์ (ระบบปฏิบัติการ)