กระบวนการบูต ของอุปกรณ์ แอนดรอยด์ เริ่มต้นตั้งแต่การเปิดเครื่อง SoC ( ระบบบนชิป ) และสิ้นสุดลงเมื่อ หน้าจอหลัก ปรากฏขึ้น หรือโหมดพิเศษเช่น การกู้คืน และ บูตอย่างรวดเร็ว [ a] กระบวนการบูตของอุปกรณ์ที่ใช้ แอนดรอยด์ ได้รับอิทธิพลจากการออกแบบเฟิร์มแวร์ของผู้ผลิต SoC
ภูมิหลัง
ณ ปี 2018 SoC ของตลาด แอนดรอยด์ 90% ได้รับการจัดหาโดย ควอลคอมม์ , ซัมซุง หรือ มีเดียเทก [ 1] ผู้จำหน่ายรายอื่นได้แก่ Rockchip, Marvell, อินวิเดีย และก่อนหน้านี้คือ Texas Instruments
ประวัติ
Verified boot ซึ่ง เป็นมาตรการรักษาความปลอดภัยในการบูต ได้รับการแนะนำพร้อมกับ แอนดรอยด์ คิทแคท [ 2]
ขั้นตอน
บูตโหลดเดอร์หลัก
บูตโหลดเดอร์หลัก (PBL) ซึ่งเก็บไว้ใน Boot ROM [ 3] เป็นขั้นตอนแรกของกระบวนการบูต โค้ดนี้เขียนโดยผู้ผลิตชิปเซ็ต [ 4]
PBL ตรวจสอบความถูกต้องของขั้นตอนถัดไป
ในสมาร์ทโฟน ซัมซุง นั้น Samsung Secure Boot Key (SSBK) จะถูกใช้โดย ROM บูตเพื่อตรวจสอบขั้นตอนต่อไป [ 5]
บน SoC จาก ควอลคอมม์ คุณสามารถเข้าสู่ โหมดดาวน์โหลดฉุกเฉินของ ควอลคอมม์ ได้จากตัวบูตโหลดเดอร์หลัก
หากการตรวจสอบ บูตโหลดเดอร์ รองล้มเหลว จะเข้าสู่ EDL [ 6] [ต้องการแหล่งอ้างอิงดีกว่านี้ ] </link>[ ดีกว่า แหล่งที่มา จำเป็น ]
บูตโหลดเดอร์รอง
เนื่องจากพื้นที่ใน ROM บูตมีจำกัด จึงใช้ บูตโหลดเดอร์ รองบน eMMC หรือ eUFS [ 7] ตัวโหลดบูตรองจะเริ่มต้น TrustZone [ 7] [ 8]
ตัวอย่างเช่น บน ควอลคอมม์ MSM8960 บูตโหลดเดอร์ รอง 1 จะโหลด บูตโหลดเดอร์ รอง 2 บูตโหลดเดอร์ รอง 2 โหลด TrustZone และ บูตโหลดเดอร์ รอง 3 [ 9]
ปัจจุบัน ควอลคอมม์ เรียก SBL ว่า XBL และเป็นการใช้งาน แบบ UEFI
ควอลคอมม์ ใช้ LK (Little Kernel) หรือ XBL (eXtensible Bootloader), มีเดียเทก ใช้ Das U-Boot [ 1] Little Kernel คือ ไมโครเคอร์เนล สำหรับ อุปกรณ์ฝังตัว ซึ่งได้รับการปรับเปลี่ยนโดย ควอลคอมม์ เพื่อใช้เป็นบูตโหลดเดอร์ [ 10]
Aboot
แอนดรอยด์ บูตโหลดเดอร์ (Aboot) ซึ่งใช้งานอินเทอร์เฟซ ฟาสต์บูต (ซึ่งไม่มีในอุปกรณ์ ซัมซุง) Aboot ตรวจสอบความถูกต้องของพาร์ติชันการบูตและการกู้คืน [ 4] โดยการกดปุ่มผสมที่เฉพาะเจาะจง อุปกรณ์ก็สามารถบูตเข้าสู่ โหมดการกู้คืน ได้ จากนั้น Aboot จะโอนการควบคุมไปยังเคอร์เนล ลีนุกซ์
เคอร์เนล และ initramfs
initramfs เป็นไฟล์เก็บถาวร cpio ที่ผ่านการบีบอัดด้วย gzip ซึ่งมีระบบไฟล์รูทขนาดเล็ก ประกอบด้วย init ซึ่งจะถูกดำเนินการ เคอร์เนล แอนดรอยด์ เป็นเวอร์ชันปรับเปลี่ยนของเคอร์เนล Linux Init จะทำการ mount พาร์ติชัน dm-verity ตรวจสอบความสมบูรณ์ของพาร์ติชันที่ระบุไว้ในไฟล์ fstab dm-verity คือโมดูลเคอร์เนล Linux ที่ถูกเปิดตัวโดย กูเกล ใน แอนดรอยด์ ตั้งแต่เวอร์ชัน 4.4 การใช้งานสต็อกรองรับการยืนยันแบบบล็อกเท่านั้น แต่ ซัมซุง ได้เพิ่มการรองรับสำหรับไฟล์แล้ว [ 8]
ไซโกต
ไซโกต ถูกสร้างขึ้นโดยกระบวนการ init ซึ่งรับผิดชอบในการเริ่มแอปพลิเคชัน แอนดรอยด์ และกระบวนการบริการ มันโหลดและเริ่มต้นคลาสที่ควรจะใช้บ่อยมากลงในฮีป เช่นโครงสร้างข้อมูล dex ของไลบรารี หลังจากที่ ไซโกต เริ่มทำงาน มันจะฟังคำสั่งจากซ็อกเก็ต เมื่อต้องการเริ่มต้นแอปพลิเคชันใหม่ คำสั่งจะถูกส่งไปยัง ไซโกต ซึ่งดำเนินการเรียกระบบ fork()[ต้องการอ้างอิง ] </link>[ จำเป็นต้องมีการอ้างอิง ]
เลย์เอาต์พาร์ติชัน
ระบบ แอนดรอยด์ แบ่งออกเป็น พาร์ติชั่น ต่างๆ [ 11]
แพลตฟอร์ม ควอลคอมม์ ใช้ประโยชน์จาก ตารางพาร์ติชั่น GUID ข้อกำหนดนี้เป็นส่วนหนึ่งของข้อกำหนด UEFI แต่ไม่ได้ขึ้นอยู่กับเฟิร์มแวร์ UEFI [ 12]
อ้างอิง
↑ 1.0 1.1 Garri, 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 . อ้างอิงผิดพลาด: ป้ายระบุ <ref>
ไม่สมเหตุสมผล มีนิยามชื่อ ":2" หลายครั้งด้วยเนื้อหาต่างกัน
↑ "Android Verified Boot [LWN.net]" . LWN.net . เก็บ จากแหล่งเดิมเมื่อ 2015-04-22. สืบค้นเมื่อ 2021-09-25 .
↑ Yuan, Pengfei; Guo, Yao; Chen, Xiangqun; Mei, Hong (March 2018). "Device-Specific Linux Kernel Optimization for Android Smartphones" . 2018 6th IEEE International Conference on Mobile Cloud Computing, Services, and Engineering (MobileCloud) . pp. 65–72. doi :10.1109/MobileCloud.2018.00018 . ISBN 978-1-5386-4879-7 .
↑ 4.0 4.1 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. อ้างอิงผิดพลาด: ป้ายระบุ <ref>
ไม่สมเหตุสมผล มีนิยามชื่อ ":3" หลายครั้งด้วยเนื้อหาต่างกัน
↑ Alendal, Gunnar; Dyrkolbotn, Geir Olav; Axelsson, Stefan (2018-03-01). "Forensics acquisition — Analysis and circumvention of samsung secure boot enforced common criteria mode" . Digital Investigation (ภาษาอังกฤษ). 24 : S60–S67. doi :10.1016/j.diin.2018.01.008 . ISSN 1742-2876 .
↑ "Exploiting Qualcomm EDL Programmers (1): Gaining Access & PBL Internals" . alephsecurity.com (ภาษาอังกฤษ). 2018-01-22. สืบค้นเมื่อ 2021-09-13 .
↑ 7.0 7.1 Yuan, Pengfei; Guo, Yao; Chen, Xiangqun; Mei, Hong (March 2018). "Device-Specific Linux Kernel Optimization for Android Smartphones" . 2018 6th IEEE International Conference on Mobile Cloud Computing, Services, and Engineering (MobileCloud) . IEEE. pp. 65–72. doi :10.1109/mobilecloud.2018.00018 . ISBN 978-1-5386-4879-7 .
↑ 8.0 8.1 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 . อ้างอิงผิดพลาด: ป้ายระบุ <ref>
ไม่สมเหตุสมผล มีนิยามชื่อ ":0" หลายครั้งด้วยเนื้อหาต่างกัน
↑ Tao, Chen, Yue Zhang, Yulong Wang, Zhi Wei (2017-07-17). Downgrade Attack on TrustZone . OCLC 1106269801 .
↑ Tang, Qinghao (2021). Internet of things security: principles and practice . Fan Du. Singapore. p. 166. ISBN 978-981-15-9942-2 . OCLC 1236261208 .
↑ Alendal, Gunnar; Dyrkolbotn, Geir Olav; Axelsson, Stefan (March 2018). "Forensics acquisition — Analysis and circumvention of samsung secure boot enforced common criteria mode" . Digital Investigation . 24 : S60–S67. doi :10.1016/j.diin.2018.01.008 . ISSN 1742-2876 .
↑ Zhao, Longze; Xi, Bin; Wu, Shunxiang; Aizezi, Yasen; Ming, Daodong; Wang, Fulin; Yi, Chao (2018). "Physical Mirror Extraction on Qualcomm-based Android Mobile Devices" . Proceedings of the 2nd International Conference on Computer Science and Application Engineering . Csae '18. New York, New York, USA: ACM Press. pp. 1–5. doi :10.1145/3207677.3278046 . ISBN 9781450365123 .
แหล่งข้อมูลอื่น
แอปพลิเคชัน รุ่นต่าง ๆ Custom distributions บูตและรีโคเวอรี เครื่องมือพัฒนาซอฟต์แวร์ ที่เป็นทางการ บริการ อื่น ๆ
อ้างอิงผิดพลาด: มีป้ายระบุ <ref>
สำหรับกลุ่มชื่อ "lower-alpha" แต่ไม่พบป้ายระบุ <references group="lower-alpha"/>
ที่สอดคล้องกัน