Knotthailand Forum

Geek & Dev => Base => หัวข้อที่ตั้งโดย: Admin เมื่อ ต.ค 29, 2024, 11:58 หลังเที่ยง

ชื่อ: loader ต่าง ๆของ Qualcomm
โดย: Admin เมื่อ ต.ค 29, 2024, 11:58 หลังเที่ยง
ในแฟลชไฟล์ของ Qualcomm จะเห็น loader ต่าง ๆ มีโครงสร้างประมาณนี้:

prog_emmc_firehose_8976_lite
prog_emmc_firehose_8976_ddr
prog_ufs_firehose_8996_lite
prog_ufs_firehose_sdm845_ddr
prog_firehose_ddr_fwupdate
คุณอาจสงสัยว่าแต่ละอันต่างกันยังไง: สรุปสั้น ๆ คือ... ddr vs lite: "ddr" มีการใช้หน่วยความจำ DDR (เร็วกว่า), "lite": ใช้แค่ SRAM

นั่นหมายถึง DDR มีความสามารถมากกว่า lite และมีคำสั่งบางอย่างที่ lite ใช้ไม่ได้ ทำให้ครอบคลุมการใช้งานกว้างขวางกว่า อย่างไรก็ตาม ไฟล์เหล่านี้ถูกสร้างขึ้นสำหรับศูนย์บริการหลักและหลังการขายโดยเฉพาะ ไม่ได้มีไว้สำหรับผู้ใช้ทั่วไปหรือช่างภายนอกอย่างพวกเรา

รูปแบบไฟล์:

MBN & ELF
ELF (Executable and Linkable Format)
MBN (Modem Binary หรือ Multi Boot Image)
ไฟล์ MBN เป็นแบบ 32 บิต ซึ่งเป็นรูปแบบเก่า หากเปิดด้วย HXD คุณจะเห็นโค้ดเริ่มต้นในลักษณะนี้: #define MBN_HEAD_CODEWORD 0x844bdcd1 /* little-endian */ ส่วนไฟล์ MBN ที่เป็น ELF และไฟล์ ELF binaries จะเริ่มต้นด้วย: 0x464C457F - header สำหรับ ".ELF"

ไฟล์ Firehose FW Update: ส่วนใหญ่เรารู้จักตัวเลือก "Update FFU" ที่อยู่ใน eMMCDL source แต่มันไม่ได้มีใน loader ทุกตัว หากคุณลองใช้งานผ่าน loader ปกติ การทำงานจะล้มเหลว

ไฟล์นี้มีการเปิดใช้งานเฉพาะคำสั่ง IC Firmware Update และ Patch ซึ่งเมื่อเร็ว ๆ นี้ได้มีการใช้เพื่อจัดการกับอุปกรณ์ Oppo และ Realme Qualcomm รุ่นใหม่ ๆ โดยใช้คำสั่ง Patch ในการเขียนและฟอร์แมต แทนที่จะใช้คำสั่งทั่วไปที่มีใน loader ปกติ และเนื่องจากการอ่านข้อมูลไม่ได้รับอนุญาตจาก loader นักพัฒนาจึงหาวิธีดึงที่อยู่ที่เกี่ยวข้องจาก Raw Program เช่น ส่วน misc และ frp บนอุปกรณ์ที่รู้แน่ว่ามีแฟลชไฟล์ให้ และแบ่งส่วนพร้อมที่อยู่ของแต่ละพาร์ติชัน ส่วนใหญ่ที่อยู่นี้จะคงที่สำหรับ vendor และโปรเซสเซอร์เดียวกัน โดยเฉพาะพาร์ติชันหลักก่อนถึงไฟล์ SUPER/SYSTEM ทำให้สามารถใช้คำสั่งนี้สำหรับฟอร์แมตและลบ FRP ได้ อย่างไรก็ตาม การทำงานค่อนข้างช้าเพราะคำสั่ง Patch ใช้ผ่าน SRAM แทนที่จะเป็น DRAM - DDR

อาจจะดูไม่สำคัญ แต่เป็นความรู้พื้นฐานที่ควรเข้าใจไว้