Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Android

วิธีรับการอัปเดต OTA บน Xiaomi Mi A2 ที่รูทได้อย่างง่ายดายด้วย Magisk

การใช้การอัปเดต 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