กระบวนการบูตของอุปกรณ์แอนดรอยด์
กระบวนการบูต ของอุปกรณ์ แอนดรอยด์ เริ่มต้นตั้งแต่การเปิดเครื่อง SoC (ระบบบนชิป) และสิ้นสุดลงเมื่อ หน้าจอหลัก ปรากฏขึ้น หรือโหมดพิเศษเช่น การกู้คืน และ บูตอย่างรวดเร็ว [a] กระบวนการบูตของอุปกรณ์ที่ใช้ แอนดรอยด์ ได้รับอิทธิพลจากการออกแบบเฟิร์มแวร์ของผู้ผลิต SoC
ภูมิหลัง
[แก้]ณ ปี 2018 SoC ของตลาด แอนดรอยด์ 90% ได้รับการจัดหาโดย ควอลคอมม์, ซัมซุง หรือ มีเดียเทก [1] ผู้จำหน่ายรายอื่นได้แก่ ร็อคชิป, มาร์เวล, อินวิเดีย และก่อนหน้านี้คือ เท็กซัสอินสทรูเมนท์ส
ประวัติ
[แก้]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.
{{cite journal}}
:|hdl-access=
ต้องการ|hdl=
(help) - ↑ "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.
{{cite journal}}
:|hdl-access=
ต้องการ|hdl=
(help) - ↑ 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.
หมายเหตุ
[แก้]- ↑ These modes tend to support a feature to resume regular booting
แหล่งข้อมูลอื่น
[แก้]- Android.com - บูตโฟลว์
- การจัดการเวลาการบูต
- ตัวโหลดบูตของ Qualcomm
- ห่วงโซ่แห่งความไว้วางใจของ Qualcomm
- การบูตที่ปลอดภัยและการตรวจสอบภาพ
- การบูตที่ปลอดภัยบน Snapdragon 410
- การวิเคราะห์ Qualcomm Secure Boot Chains
- msm8916-เมนไลน์/qhypstub
- การเริ่มต้นกระบวนการ init ของระบบ Android และการวิเคราะห์ init.rc แบบเต็ม
- ภาษาเริ่มต้นของ Android