การใช้การอัปเดต OTA กับ Xiaomi Mi A2 ที่รูทแล้วอาจทำให้ปวดหัวมาก เนื่องจากอาจเกี่ยวข้องกับการถอนการรูทอุปกรณ์ของคุณและทำตามขั้นตอนทั้งหมดเพื่อรูทอุปกรณ์ทั้งหมดอีกครั้ง โชคดีที่มีวิธีติดตั้ง Magisk ที่รองรับการอัปเดต OTA
ดังนั้นหากคุณต้องการรูท Xiaomi Mi A2 ในขณะที่สามารถใช้การอัปเดต OTA ได้โดยไม่ต้องทำการรูทอุปกรณ์ของคุณ ให้ทำตามคำแนะนำง่ายๆ ด้านล่างอย่างระมัดระวัง
ข้อกำหนด:
- ADB และ Fastboot (ดูคู่มือ Appual วิธีการติดตั้ง ADB บน Windows)
- เครื่องมือ MiFlash
ก่อนอื่นคุณต้องปลดล็อกโปรแกรมโหลดบูต แต่คุณต้องระวังให้มาก และโปรดทราบว่าโปรแกรมปลดล็อก Xiaomi bootloader ทำงานช้ามากในช่วงนี้ อาจใช้เวลา สัปดาห์ เพื่อรับรหัสปลดล็อค bootloader คุณควรระวัง ARB (กลไกป้องกันการย้อนกลับ) ในอุปกรณ์ Xiaomi
หากอุปกรณ์บูตโหลดเดอร์ของคุณปลดล็อกแล้ว เยี่ยมเลย! เราไปต่อได้
ไปที่การตั้งค่า> ระบบ> เกี่ยวกับโทรศัพท์> แตะ "สร้างหมายเลข" 7 ครั้งจนกว่าจะปลดล็อกโหมดนักพัฒนาซอฟต์แวร์
ไปที่การตั้งค่า> ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์> เปิดใช้งานการปลดล็อก OEM
ตอนนี้ปิดอุปกรณ์ของคุณแล้วกดปุ่มลดระดับเสียง + ปุ่มเปิดปิด ปล่อยปุ่มเมื่อคุณเข้าสู่เมนู Fastboot
เชื่อมต่อ Xiaomi Mi A2 ของคุณกับพีซีผ่าน USB และเปิดเทอร์มินัล ADB (กด Shift ค้างไว้ + คลิกขวาในโฟลเดอร์ ADB หลักของคุณ แล้วเลือก 'เปิดหน้าต่างคำสั่งที่นี่')
ในเทอร์มินัล ADB พิมพ์คำสั่งนี้:fastboot oem Unlock
การดำเนินการนี้จะรีบูตโทรศัพท์ของคุณและ ลบข้อมูลทั้งหมดของคุณ ขณะปลดล็อกโปรแกรมโหลดบูต
การติดตั้ง Magisk
ดาวน์โหลดและติดตั้ง Magisk Manager APK เวอร์ชันล่าสุดบนโทรศัพท์ของคุณ
ตอนนี้ดาวน์โหลด boot.img ที่แก้ไขแล้วจากการดาวน์โหลดต่อไปนี้ หรือเราจะแสดงวิธีแก้ไข boot.img ดั้งเดิมด้วยตัวเองภายใต้รายการดาวน์โหลด boot.img
เมื่อดาวน์โหลด patched boot.img คุณต้องแน่ใจว่ามีหมายเลขบิลด์เดียวกันกับที่คุณใช้อยู่ ดังนั้น ตรวจสอบหมายเลขบิวด์ของคุณในการตั้งค่า> เกี่ยวกับโทรศัพท์ ก่อนดำเนินการต่อ และ อย่าแฟลชไฟล์โดยตรงบนหน่วยความจำของโทรศัพท์ เนื่องจาก Magisk จะทำงานไม่ถูกต้อง ปฏิบัติตามคำแนะนำของเราอย่างระมัดระวังและตรงตามที่เขียนไว้
คุณควรดาวน์โหลด boot.img ที่แพตช์แล้วไปยังโฟลเดอร์ ADB บนพีซีของคุณ
- patched_boot 9.6.4.0 (อัปเดต 2018 กรกฎาคม) – แพตช์ด้วย Magisk 17.1
- patched_boot 9.6.6.0 (อัปเดต 2018 สิงหาคม) – แพตช์ด้วย Magisk 17.1
- patched_boot 9.6.8.0 (อัปเดต 2018 กันยายน) – แพตช์ด้วย Magisk 17.1
ในกรณีที่คุณแฟลช boot.img ผิดโดยไม่ได้ตั้งใจ คุณสามารถแฟลช boot.img ดั้งเดิมได้จากรายการด้านล่าง:
- ดั้งเดิม boot.img 9.6.4.0 (อัปเดต 2018 กรกฎาคม) – นำมาจาก fastboot ROM
- ดั้งเดิม boot.img 9.6.6.0 (อัปเดต 2018 สิงหาคม) – นำมาจากการอัปเดต OTA
- ดั้งเดิม boot.img 9.6.8.0 (อัปเดต 2018 กันยายน) – นำมาจากการอัปเดต OTA
โปรดทราบว่าหากทำโปรแกรมแก้ไข boot.img ด้วยตนเอง คุณจะต้องใช้ boot.img ดั้งเดิม - คุณสามารถค้นหาได้ในไฟล์ zip fastboot ROM อย่างเป็นทางการสำหรับ เดซี่ . แต่ตรวจสอบให้แน่ใจว่าเวอร์ชัน ROM ที่ดาวน์โหลดมามีหมายเลขบิลด์เดียวกันกับในโทรศัพท์ของคุณ ดังนั้นให้ดาวน์โหลด boot.img ดั้งเดิมด้วยหมายเลขบิลด์เดียวกันกับโทรศัพท์ของคุณ หรืออัปเดต/ดาวน์เกรดเวอร์ชันของคุณ
หลังจากคุณมี boot.img ดั้งเดิมแล้ว (แยกจาก zip fastboot ROM อย่างเป็นทางการ) คุณต้องคัดลอกไปยัง หน่วยความจำภายนอก ของโทรศัพท์คุณ (การ์ด SD)
ตอนนี้เปิดแอป Magisk Manager แล้วระบบจะถามว่าคุณต้องการติดตั้ง Magisk หรือไม่ – ยอมรับการติดตั้ง จากนั้น "Patch Boot Image File" แล้วเลือกไฟล์ boot.img ที่คุณโอนมา
กระบวนการควรใช้เวลาประมาณ 1 นาทีจึงจะเสร็จสมบูรณ์ ดังนั้นให้ปิดเมื่อเสร็จสิ้น ในหน่วยความจำโทรศัพท์ของคุณในส่วน ดาวน์โหลด ไดเร็กทอรี คุณควรพบไฟล์ชื่อ "patched_boot.img" ซึ่งคุณต้องถ่ายโอนไปยังพีซีของคุณ วางไว้ในโฟลเดอร์ ADB หลักของคุณ
ตอนนี้รีบูตอุปกรณ์ของคุณในโหมด Fastboot (จำไว้ พลัง + ลดระดับเสียง) และเปิดเทอร์มินัล ADB บนพีซีของคุณ
ในเทอร์มินัล ADB ให้พิมพ์คำสั่งต่อไปนี้:fastboot boot patched_boot.img
โทรศัพท์ของคุณควรบู๊ตตามปกติ เมื่อคุณกลับมาอยู่ในระบบ Android ให้เปิดแอป Magisk Manager แล้วระบบจะถามอีกครั้งเพื่อติดตั้ง Magisk ไปข้างหน้าและเลือก ติดตั้ง> ติดตั้งโดยตรง และรีบูตเมื่อเสร็จสิ้น
เพื่อเป็นการป้องกันไว้ก่อนสำหรับการอัปเดต OTA ในอนาคต ให้ไปที่การตั้งค่า> ระบบ> ตัวเลือกสำหรับนักพัฒนา> ปิดใช้งานการอัปเดตระบบอัตโนมัติ คุณควรเลือกติดตั้งการอัปเดต OTA เท่านั้น ด้วยตนเอง . ไม่อนุญาตให้ใช้ OTA อัตโนมัติบนอุปกรณ์ Android ที่รูทเครื่อง
วิธีสมัครการอัปเดต OTA ในอนาคต
โปรดทราบว่าการอัปเดต OTA จะทำงานก็ต่อเมื่อ พาร์ติชั่นทั้งหมดบนอุปกรณ์ไม่ถูกแตะต้อง! Magisk สามารถกู้คืน boot.img ดั้งเดิมของคุณได้ แต่ถ้าคุณแก้ไขพาร์ติชั่น /system ด้วยวิธีใดก็ตาม เช่น แก้ไข build.prop ด้วยตนเอง OTA จะปฏิเสธที่จะติดตั้ง
คุณสามารถลองใช้การอัปเดต OTA ได้โดยไม่จำเป็นต้องแฟลช ROM fastboot ดั้งเดิมทั้งหมด หากคุณแฟลชเฉพาะพาร์ติชั่นที่แก้ไขแล้ว เช่น แฟลชเฉพาะพาร์ติชั่น /system จาก ROM fastboot ดั้งเดิม โดยใช้ไฟล์ .img ที่เหมาะสมจาก ROM ดั้งเดิม .zip ไฟล์.
ดังนั้นเมื่อมีการอัปเดต OTA ใหม่ที่คุณต้องการติดตั้ง คุณต้องเปิด Magisk Manager แล้วแตะ “ถอนการติดตั้ง> กู้คืนรูปภาพ” แต่อย่าเพิ่งรีบูตอุปกรณ์
ปิด Magisk และไปที่การตั้งค่าของอุปกรณ์> ระบบ> การอัปเดตระบบ และติดตั้งการอัปเดต OTA เมื่อดาวน์โหลดการอัปเดตแล้ว จะเริ่มการอัปเดตสองขั้นตอน เราแนะนำให้ดื่มกาแฟสักถ้วย และอาจสนุกกับเกม Madalin Stunt Cars 2 หรือพยายามทำให้ดีที่สุดที่ The Impossible Quiz (โชคดี!)
หลังจากขั้นตอนการอัปเดตเสร็จสิ้น ระบบจะขอให้รีสตาร์ท อย่ารีสตาร์ทอุปกรณ์ของคุณ . เรียกใช้ Magisk Manager อีกครั้ง จากนั้นแตะติดตั้ง> ติดตั้ง> ติดตั้งไปยังสล็อตที่ไม่ใช้งาน (หลังจาก OTA) จากนั้นคุณสามารถดำเนินการรีบูตได้เท่านั้น
หลังจากที่ Xiaomi Mi A2 ของคุณรีบูตแล้ว คุณควรมีเวอร์ชัน Android ที่อัปเดตโดย Magisk ยังคงไม่ใช้งาน
การแก้ปัญหา
หมายเหตุ:ก่อนดำเนินการใดๆ เหล่านี้ คุณต้องปิดใช้งานการรักษาความปลอดภัยหน้าจอใดๆ ที่คุณมีบนอุปกรณ์ของคุณ (ล็อกหน้าจอ, PIN, รหัสผ่าน, ลายนิ้วมือ ฯลฯ) เนื่องจากคุณเสี่ยงต่อปัญหาการเข้ารหัสข้อมูลของคุณ ขอแนะนำให้สร้างข้อมูลสำรองก่อน
หากคุณไม่ปฏิบัติตามคำแนะนำนี้อย่างพิถีพิถัน คุณอาจประสบปัญหาบางอย่าง
เมื่อพบเวอร์ชันใหม่ โปรแกรมอัพเดตจะตรวจสอบว่าพาร์ติชั่นทั้งหมดบนอุปกรณ์ไม่ถูกแตะต้องหรือไม่ หากมีพาร์ติชั่นที่ถูกแก้ไข OTA updater จะไม่ดำเนินการติดตั้งต่อ
โดยทั่วไป พาร์ติชั่นสองพาร์ติชั่นที่แก้ไขโดยผู้ใช้ modding มักจะเป็นพาร์ติชั่นสำหรับเริ่มระบบ (นั่นคือตำแหน่งที่ติดตั้ง Magisk และ TWRP) และพาร์ติชั่นระบบ (เมื่อคุณเปลี่ยนไฟล์ปรับแต่ง ให้เพิ่มหรือลบแอพระบบ ฯลฯ)
พาร์ติชันระบบที่แก้ไขโดยใช้โมดูล Magisk เท่านั้นจะไม่ถูกแตะต้องอย่างมีประสิทธิภาพ เนื่องจาก Magisk ลงทะเบียนการเปลี่ยนแปลงทั้งหมดใน /system ในไฟล์ในพาร์ติชั่น /data แล้วหลอกให้ Android เชื่อว่าการเปลี่ยนแปลงเหล่านั้นมีผลกับ /system จริงๆ
พาร์ติชั่นสำหรับบู๊ตมีการปรับเปลี่ยนจริงๆ แทน แต่ถ้าคุณติดตั้ง Magisk โดยทำตามคำแนะนำนี้ Magisk จะบันทึกสำเนาของพาร์ติชั่นสำหรับเริ่มระบบที่ยังไม่ได้แตะ และการกู้คืนก่อนที่จะใช้การอัปเดต OTA จะทำให้การอัปเดตทำงานได้
ตอนนี้ หากคุณไม่ได้ปฏิบัติตามคู่มือนี้เพื่อติดตั้ง Magisk และคุณติดตั้งด้วยวิธีอื่น Magisk สามารถเตือนคุณว่าไม่สามารถกู้คืน boot.img ดั้งเดิม (พาร์ติชั่นสำหรับบูต) เมื่อคุณพยายามใช้การอัปเดต OTAพี>
ในการแก้ไขปัญหานี้ คุณสามารถแฟลช boot.img วานิลลา (ดั้งเดิม ไม่มีการแก้ไข ไม่มีการแตะต้อง) ที่นำมาจากจุดที่ 6 ของคู่มือนี้โดยตรง โดยใช้คำสั่งเหล่านี้:
fastboot getvar current-slot fastboot flash boot_? boot.img
คำสั่งแรกจะบอกคุณว่าช่องใดที่ใช้อยู่ในปัจจุบัน (a หรือ ข ) คำสั่งที่สองจะแฟลชบูตดั้งเดิมไปยังโทรศัพท์ แต่คุณต้องเปลี่ยน “?” ในคำสั่งด้วย a หรือ ข (เช่น ช่องปัจจุบันที่คำสั่งแรกให้มา)
โปรดจำไว้ว่าเวอร์ชันไฟล์ boot.img จะต้องสอดคล้องกับเวอร์ชันบิลด์ของ Android ที่ทำงานอยู่ในโทรศัพท์ของคุณ
หากการอัปเดต OTA ยังคงปฏิเสธที่จะใช้ คุณอาจเปลี่ยนบางสิ่งโดยตรงในพาร์ติชั่น /system (เช่น คุณเปลี่ยนบางอย่างใน build.prop โดยไม่ใช้โมดูล Magisk ในการดำเนินการนี้)
ในกรณีนี้คุณมี เพื่อแฟลช system.img ดั้งเดิมในโทรศัพท์ด้วยคำสั่งเหล่านั้น:
fastboot getvar current-slot fastboot flash system_? system.img
และเหมือนเมื่อก่อน คำสั่งแรกจะบอกช่องที่ถูกต้องให้คุณใช้แทน “?” ในคำสั่งที่สอง
คุณจะพบ system.img ที่ดึงมาจาก OTA อัปเดต zip (พร้อมกับไฟล์ .img อื่น ๆ ทั้งหมดที่อยู่ในนั้น):
- 9.6.8.0 (กันยายน 2018) การถ่ายโอนข้อมูลการอัปเดต OTA เป็นไฟล์ .img
- 9.6.6.0 (สิงหาคม 2018) การถ่ายโอนข้อมูลการอัปเดต OTA เป็นไฟล์ .img
หากคุณต้องการรับ system.img ด้วยตัวเอง คุณสามารถค้นหาได้จากอิมเมจ fastboot แต่โดยปกติแล้วจะไม่ได้รับการอัปเดตทุกเดือน เช่น การอัปเดต OTA แต่คุณสามารถแยก system.img ได้โดยตรงจากไฟล์ zip การอัปเดต OTA ที่พบในชุดข้อความนี้ โดยใช้สคริปต์ Python ที่พบที่นี่
ในการทำให้สคริปต์ Python ทำงานใน Debian/Ubuntu และอนุพันธ์ คุณต้องดาวน์โหลดทั้ง “extract_android_ota_payload.py” และ “update_metadata_pb2.py” ให้คุณสมบัติการเรียกทำงาน จากนั้นจึงติดตั้งแพ็คเกจ “python-protobuf” หลังจากนี้ คุณสามารถให้คำสั่งนี้เพื่อคลายไฟล์ payload.bin (ซึ่งคุณต้องแยกจาก OTA update zip):
./extract_android_ota_payload.py /path/to/payload.bin
สิ่งนี้จะแยกไฟล์ .img ทั้งหมดที่อยู่ใน payload.bin ในไดเร็กทอรีปัจจุบัน รวมถึง system.img
ฉันไม่รู้ว่าจะดำเนินการอย่างไรใน Windows คุณอาจจำเป็นต้องติดตั้ง รุ่นล่าสุดของ Python2 และสคริปต์จะทำงาน
วิธีสุดท้ายคือ คุณสามารถแฟลชโดยตรงกับ MiFlash ซึ่งเป็นอิมเมจ fastboot ล่าสุดที่มี (แม้ว่าจะเก่ากว่าเวอร์ชันปัจจุบันของคุณก็ตาม) ใช้ “flash_all.bat ” แต่ก่อนที่จะสำรองข้อมูลของคุณเพราะโทรศัพท์จะถูกรีเซ็ตอย่างสมบูรณ์
หากคุณไม่ต้องการเสี่ยงที่จะไม่สำรองข้อมูล ให้ใช้สคริปต์ “flash_all_except_storage.bat ” เมื่อกระพริบดังนั้นคุณจะเก็บข้อมูลทั้งหมดของคุณไว้ แต่ขอเตือนว่าบางครั้งคุณจะไม่สามารถเข้าถึงข้อมูลได้อีกต่อไปเนื่องจากปัญหาการเข้ารหัส
หลังจากใช้แฟลช คุณจะเริ่มทำตามคำแนะนำได้จากจุดที่ 5 หรือ 6
ไม่ควรเป็นปัญหาในการดาวน์เกรดเวอร์ชันบิลด์ผ่าน fastboot ตราบใดที่เวอร์ชันหลักของ Android ยังคงเหมือนเดิม (Oreo 8.1 ในขณะนี้)
ไฟล์บูตดั้งเดิมและแพตช์สำหรับ Mi A2 jasmine (ห้ามใช้กับ Mi A2 Lite เดซี่ คุณสามารถค้นหาไฟล์สำหรับเดซี่ได้ในส่วนแรกของคู่มือนี้)
- patched_boot 9.6.9.0 (อัปเดตกรกฎาคม) – แพตช์ด้วย Magisk 17.1
- patched_boot 9.6.10.0 (อัปเดตเดือนสิงหาคม) – แพตช์ด้วย Magisk 17.1
- ดั้งเดิม boot.img 9.6.9.0 (อัปเดตกรกฎาคม) – นำมาจาก fastboot ROM
- ดั้งเดิม boot.img 9.6.10.0 (อัปเดตเดือนสิงหาคม) – นำมาจาก fastboot ROM