สำหรับผู้ใช้ขั้นสูงที่ใช้งานอุปกรณ์ Huawei อาจมีสถานการณ์ที่ต้องการ Flash ไฟล์เฉพาะ จาก OTA Update แทนที่จะ Flash ทั้ง ROM ทั้งหมด เช่น เมื่ออุปกรณ์บริค (Brick) และทราบว่า Flash ไฟล์เฉพาะจากแพ็กเกจอัปเดตจะช่วยกู้คืนได้
ในคู่มือนี้เราจะแสดงวิธีแยกและ Flash ไฟล์เฉพาะจากแพ็กเกจ Firmware Update ของ Huawei เรามี 3 วิธี ได้แก่ Huawei Update Extractor สำหรับ Windows, สคริปต์ SplitUpdate สำหรับ Linux/Mac และสคริปต์ทางเลือกอีกตัวสำหรับ Linux พร้อมฟีเจอร์เพิ่มเติม
ข้อกำหนดเบื้องต้น
- Firmware Update.zip
- Huawei Update Extractor (Windows เท่านั้น)
- SplitUpdate Perl Script (Linux / Mac / Windows)
- Alternative Script (แยกไฟล์ไปยังโฟลเดอร์เดียวกับ splitupdate และมี mount script สำหรับ Linux)
ก่อนอื่น ตรวจสอบเวอร์ชัน Firmware ปัจจุบันของ Huawei ที่ Settings > System > About Phone คัดลอก Build Number
ตัวอย่าง: BLA-L29 8.0.0.132(C636) แปลได้เป็น: BLA-L29C636B132 (แทนที่ "8.0.0." ด้วย C636 และเติม B นำหน้า 132)
หมายเหตุเกี่ยวกับ Nougat และ Oreo
Partition เปลี่ยนไปบน Oreo: Boot partition แยกเป็น 'ramdisk' และ 'kernel' Recovery partition แยกเป็น recovery_ramdisk, recovery_vendor, recovery_vbmeta ซึ่งใช้ kernel partition ร่วมกับ ramdisk
ดังนั้นคุณอาจต้องการ Flash ramdisk และ recovery_ramdisk: ramdisk สำหรับ Magisk/SuperSU, recovery_ramdisk สำหรับ TWRP
วิธี Huawei Update Extractor (Windows Only)
- ดาวน์โหลดและแยก Huawei Update Extractor เปิด HuaweiUpdateExtractor.exe
- ไปแท็บ Settings ยกเลิกติ๊ก 'Verify header checksum'
- กลับไปแท็บ Extract กดปุ่ม ... เลือกไฟล์ update.app ที่แยกไว้
- รายการไฟล์ใน update.app จะแสดง คลิกขวาที่ไฟล์ต้องการเลือก 'Extract Selected' แล้วเลือกที่เก็บ
- ใช้ Fastboot Flash ไฟล์ที่แยกได้ เช่น Flash ไปยัง ramdisk
- วางไฟล์ที่จะ Flash ไว้ใน ADB pathway เปิด ADB Terminal
- สั่ง
adb reboot bootloaderเข้าสู่ Fastboot Mode - Flash ด้วยคำสั่ง:
fastboot flash ramdisk xxxxx.img - บน Nougat จะแยก 'BOOT' จาก update.app และ Flash ด้วย:
fastboot flash boot boot.img
วิธี Perl Script (Linux และ Mac)
- ดาวน์โหลด splitupdate.zip แยกไฟล์ เข้าโฟลเดอร์ 'split' เปิด Terminal
- สั่ง:
chmod +x splitupdate chmod +x crc
- วาง update.app ไว้ในโฟลเดอร์ Split เปิด Terminal ใหม่
- สั่ง:
./splitupdate UPDATE.APP file_to_extract
- หากเขียน 'file_to_extract' หรือไฟล์ที่มี/ไม่มีใน UPDATE.APP จะแสดงรายการ images ทั้งหมด
./splitupdate UPDATE.APP
จะแยกไฟล์ทั้งหมดไปที่โฟลเดอร์ 'output' (การกรองไม่สมบูรณ์)./splitupdate UPDATE.APP RAMDISK
จะแยก images ที่มี RAMDISK ในชื่อ (RAMDISK.img และ RECOVERY_RAMDISK.img)
วิธี Alternative Script
- chmod ไฟล์ในโฟลเดอร์ alternative script:
chmod +x simg2img chmod +x mount.sh
- หากใช้ mount.sh ให้แก้สคริปต์แทนที่ YOUR_SUDO_PASSWORD_HERE ด้วยรหัสจริง หรือลบ 'echo YOUR_SUDO_PASSWORD_HERE | ' แล้วใส่รหัสเองขณะรัน
- แยก system.img หรือไฟล์อื่น แล้วใช้
./mount.sh SYSTEM - จะแปลง SYSTEM.img เป็น SYSTEM.raw และ Mount ไปที่ 'split_folder/SYSTEM/' เป็น loop device พร้อม chmod 777 ทุกอย่างใน SYSTEM/