Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Android

วิธีรับ OTA Updates บน Xiaomi Mi A2 ที่ Root ด้วย Magisk อย่างง่าย

Apply OTA Updates บน Rooted Xiaomi Mi A2 มักปวดหัว มักต้อง Unroot แล้ว Root ใหม่ทั้งกระบวนการ โชคดีมีวิธีติดตั้ง Magisk ที่รองรับ OTA Updates

อยาก Root Mi A2 พร้อม Apply OTA โดยไม่ Unroot ตามคู่มือด้านล่างอย่างระมัดระวัง

ข้อกำหนด

  • ADB and Fastboot (ดูคู่มือ How to Install ADB on Windows)
  • MiFlash Tool

Bootloader Unlock ก่อน - ระวัง Xiaomi Bootloader Unlock Program ช้ามาก อาจใช้ สัปดาห์ ได้ Unlock Code รู้จัก ARB (Anti-rollback Protection) ใน Xiaomi Devices

Bootloader Unlocked แล้ว ดีแล้ว ดำเนินต่อ

  1. Settings > System > About Phone > Build Number 7 ครั้ง Unlock Developer Mode
  2. Settings > Developer Options > Enable OEM Unlocking
  3. Shutdown Device กด Volume Down+Power ปล่อยตอนเข้า Fastboot Menu
  4. เชื่อม Mi A2 USB PC ADB Terminal (Shift+Right Click ADB Folder > Open Command Window Here)
  5. ADB: fastboot oem unlock (Reboot Phone Erase All Data ขณะ Unlock)

ติดตั้ง Magisk

Download ติดตั้ง Magisk Manager APK ล่าสุดบนโทรศัพท์

Download Patched boot.img จากรายการด้านล่าง - หรือ Patch Original boot.img เอง (ด้านล่างรายการ Boot.img Downloads)

สำคัญ: Download Patched boot.img ต้อง Build Number เดียวกับที่อยู่ Check Settings > About Phone อย่า Flash ไฟล์ตรงบน Memory โทรศัพท์ Magisk จะไม่ทำงาน ปฏิบัติตามคำสั่งอย่างแม่นยำ!

Download Patched boot.img ไป ADB Folder PC

  • patched_boot 9.6.4.0 (July 2018) - Patched Magisk 17.1
  • patched_boot 9.6.6.0 (Aug 2018) - Patched Magisk 17.1
  • patched_boot 9.6.8.0 (Sep 2018) - Patched Magisk 17.1

Flash ผิด boot.img Flash Original boot.img กลับได้:

  • original boot.img 9.6.4.0 (July 2018) - From Fastboot ROM
  • original boot.img 9.6.6.0 (Aug 2018) - From OTA Update
  • original boot.img 9.6.8.0 (Sep 2018) - From OTA Update

Manual Patch boot.img: ต้อง Original boot.img หาใน Official Fastboot ROM ZIP สำหรับ daisy ให้ Build Number ตรงกับโทรศัพท์ Download Original boot.img Build Number เดียวกัน หรือ Upgrade/Downgrade Version

ได้ Original boot.img (Extract จาก Fastboot ROM ZIP) Copy ไป External Memory (SD Card) ของโทรศัพท์

เปิด Magisk Manager ถาม Install Magisk Accept > "Patch Boot Image File" > เลือก boot.img ที่โอนมา

Process ~1 นาที ปิดตอนเสร็จ ใน Phone Memory /Download จะมี "patched_boot.img" โอนไป PC วางใน ADB Folder หลัก

Reboot Device Fastboot Mode (Power+Volume Down) ADB Terminal PC

ADB: fastboot boot patched_boot.img

Phone Boot ปกติ กลับ Android System เปิด Magisk Manager ถาม Install อีกครั้ง Install > Direct Install Reboot เสร็จ

ป้องกัน OTA อนาคต: Settings > System > Developer Options > Disable Automatic System Updates ติดตั้ง OTA Manual เท่านั้น อย่า Auto OTA บน Rooted Device

วิธี Apply OTA Updates ในอนาคต

สำคัญ: OTA Updates ทำงานได้ก็ต่อเมื่อ Partitions ทั้งหมด Untouched! Magisk Restore Original boot.img ได้ แต่ถ้า Modify /system Partition (Manual Edit build.prop, Add/Remove System App) OTA จะ Refuse Install

ลอง Apply OTA โดยไม่ Flash Full Stock ROM: Flash Modified Partitions เท่านั้น เช่น Flash /system Partition จาก Original Fastboot ROM ใช้ .img ที่ถูกต้องจาก Original ROM ZIP

OTA ใหม่พร้อมติดตั้ง: Magisk Manager > "Uninstall > Restore Images" อย่า Reboot Yet

ปิด Magisk Settings > System > System Update Install OTA Download เสร็จ 2-Stage Update แนะนำดื่มกาแฟ เล่น Madalin Stunt Cars 2 หรือ The Impossible Quiz (Good Luck!)

Update Stages เสร็จ ถาม Restart อย่า Restart! Magisk Manager อีกครั้ง > Install > Install > Install to Inactive Slot (After OTA) ถึงค่อย Reboot

Reboot เสร็จ ควรได้ Android Updated พร้อม Magisk Intact

Troubleshooting

Note: ก่อน Operation ใดๆ Disable Screen Security (Lock, PIN, Password, Fingerprint) เพราะ Risk Encryption Issues Backup แนะนำมาก

ไม่ทำตามคู่มือแม่นยำ อาจเจอปัญหา:

OTA Updater เช็ค Partitions Untouched หาก Modified จะไม่ Install

Partition ที่ User Mod มักแก้: Boot Partition (Magisk/TWRP) และ System Partition (Config Files, System Apps)

System Partition Modified ด้วย Magisk Modules = Effectively Untouched (Magisk Register Changes ใน /data Trick Android ว่า Applied /system)

Boot Partition Modified จริง แต่ติดตั้ง Magisk ตามคู่มือ Magisk Save Untouched Boot Partition Copy Restore ก่อน OTA = Update Works

ติดตั้ง Magisk อื่นไม่ตามคู่มือ Magisk อาจ Alert Cannot Restore Original boot.img ตอน Apply OTA

Fix: Flash Vanilla (Original) boot.img จาก Point 6:

fastboot getvar current-slot
fastboot flash boot_? boot.img

Command แรกบอก Current Slot (a หรือ b) Command ที่ 2 Flash Original Boot แต่เปลี่ยน "?" เป็น a หรือ b (Current Slot จาก Command แรก)

boot.img Version ต้องตรง Android Build Version บนโทรศัพท์

OTA ยัง Refuse: น่าจะแก้ /system Partition โดยตรง (เช่น build.prop โดยไม่ใช้ Magisk Module) Flash Original system.img:

fastboot getvar current-slot
fastboot flash system_? system.img

Slot เหมือนกัน หา system.img จาก OTA Updates ZIP (พร้อม .img อื่นๆ):

  • 9.6.8.0 (Sep 2018) OTA Update Dump as .img files
  • 9.6.6.0 (Aug 2018) OTA Update Dump as .img files

Extract system.img เอง: ใน Fastboot Images (ไม่ Update ทุกเดือน مثل OTA) หรือ Extract จาก OTA Update ZIPs ใน Thread นี้ ใช้ Python Scripts:

  • Download "extract_android_ota_payload.py" และ "update_metadata_pb2.py" ให้ Execution Property
  • Install package "python-protobuf"
  • Command: ./extract_android_ota_payload.py /path/to/payload.bin (payload.bin จาก OTA ZIP)
  • Extract .img Files รวม system.img ใน Current Directory
  • Windows: ติดตั้ง Latest Python2 Script ควรทำงาน

Last Resort: MiFlash Latest Fastboot Image (แม้เก่ากว่า Current Version) ใช้ "flash_all.bat" Backup Data ก่อน (Phone Full Reset)

ไม่อยาก Backup ใช้ "flash_all_except_storage.bat" เก็บ Data แต่ Warning บางครั้ง Access Data ไม่ได้ (Encryption Problems)

หลัง Flash เริ่มคู่มือ Point 5 หรือ 6 ใหม่

Downgrade Build Version ผ่าน Fastboot ไม่ปัญหา ถ้า Android Main Version เดียวกัน (Oreo 8.1 ตอนนี้)

Patched/Original Boot Files สำหรับ Mi A2 jasmine (ไม่ใช่ Mi A2 Lite daisy - ไฟล์ daisy อยู่ส่วนบน)

  • patched_boot 9.6.9.0 (July Update) - Patched Magisk 17.1
  • patched_boot 9.6.10.0 (Aug Update) - Patched Magisk 17.1
  • original boot.img 9.6.9.0 (July Update) - From Fastboot ROM
  • original boot.img 9.6.10.0 (Aug Update) - From Fastboot ROM