วิธีการ DIY Port TWRP สำหรับ Android

Appual เป็นเจ้าภาพหลายวิธีที่จะให้คำแนะนำเกี่ยวกับ Android แต่คำแนะนำรากไม่มีอยู่สำหรับอุปกรณ์ทุกประเภทบนดาวเคราะห์ซึ่งโดยปกติแล้วจะมีสาเหตุหลายประการ โดยเฉพาะอย่างยิ่งการไม่สามารถกู้คืนที่กำหนดเองเช่น TWRP สำหรับอุปกรณ์ใดก็ได้ โชคดีที่การกู้คืนข้อมูลที่กำหนดเองเช่น TWRP ไปยังอุปกรณ์ของคุณไม่ใช่เรื่องยาก อย่างเหลือเชื่อ (แต่ยังคงเป็นธรรม)

หากคุณมีอุปกรณ์ที่คุณต้องการใช้ root และไม่สามารถหาชนิดของ root ได้คุณควรพิจารณาเรียนรู้วิธีการพอร์ต TWRP ด้วยตัวคุณเอง อย่างน้อยนี้จะทำให้คุณได้รับการกู้คืนที่กำหนดเองเพื่อทำงานจากเมื่อคุณพยายาม root อุปกรณ์ของคุณ

หากคุณสนใจในโครงการ DIY Android เหล่านี้โปรดพิจารณาอ่านคู่มือต่อไปนี้จาก Appuals:

  • วิธีการสร้างเคอร์เนล Android Mediatek จากที่มา
  • วิธีการสร้างรอมที่กำหนดเองจากโครงการโอเพนซอร์สของ Android | จุด 2
  • วิธีการใช้ UI Android System ด้วยตนเอง

requisites ก่อน:

ความรู้พื้นฐานเกี่ยวกับคำสั่ง Linux และ / หรือการรวบรวม AOSP ตั้งแต่เริ่มต้น

หากคุณไม่คุ้นเคยกับคำสั่งพื้นฐานของ Linux และ / หรือการสร้าง AOSP คำแนะนำนี้ไม่ใช่สำหรับคุณ - ไม่มีคำแนะนำในการเขียนคู่มือสำหรับกระบวนการนี้ ผมขอแนะนำให้ลองดำเนินการที่ง่ายขึ้นก่อนเช่นอ่านคู่มือ Appual เกี่ยวกับวิธีการสร้าง AOSP ตั้งแต่เริ่มต้น

ตอนนี้สำหรับการสร้างคุณสามารถใช้ Omni เวอร์ชัน 5.1 ถึง 8.1 หรือ CM เวอร์ชัน 12.1 ถึง 15.1 แต่ถ้าคุณใช้ CM คุณอาจประสบปัญหาเล็กน้อยเกี่ยวกับ makefile หากคุณไม่สะดวกในการแก้ไขปัญหา Makefile คุณควรเลือกใช้ Omni แทน

แต่ถ้าคุณตัดสินใจที่จะใช้ CM คุณจะต้องวาง TWRP ไว้ในโฟลเดอร์ CM / bootable / recovery-twrp และตั้งค่า RECOVERY_VARIANT: = twrp ในไฟล์ BoardConfig.mk

คุณสามารถหารหัสแหล่งที่มา TWRP ได้ที่นี่และคุณควรเลือกสาขาที่พร้อมใช้งานล่าสุด คุณไม่จำเป็นต้องทำเช่นนี้กับ Omni เนื่องจากจะมีแหล่งข้อมูล TWRP โดยค่าเริ่มต้นเว้นแต่คุณจะใช้ Omni รุ่นเก่ากว่าซึ่งในกรณีนี้คุณจะต้องการดึงข้อมูลจากสาขาล่าสุด

ถ้าคุณ ต้องการสร้าง TWRP คุณสามารถลองใช้ต้นไม้ขนาดเล็กเช่น Minimal Manifest TWRP นี้ อย่างไรก็ตามอาจมีสถานการณ์ที่คุณต้องมีการทำ repos เพิ่มเติมมากกว่านี้

หมายเหตุสำคัญก่อนรวบรวม: ถ้าคุณเพิ่มหรือเปลี่ยนธงใด ๆ คุณจะต้องทำความสะอาด (หรือทำกระจุก) ก่อนที่จะคอมไพล์ใหม่มิฉะนั้นการเปลี่ยนแปลงค่าสถานะจะไม่รวมอยู่!

หลังจากที่คุณมีรหัสต้นฉบับ TWRP แล้วเราจำเป็นต้องเปลี่ยนค่าสถานะการสร้างสำหรับอุปกรณ์เฉพาะของคุณ ค้นหา BoardConfig.mk สำหรับอุปกรณ์ของคุณซึ่งปกติจะพบได้ใน อุปกรณ์ / ผู้ผลิต / ชื่อรหัส (เช่นอุปกรณ์ / lge / hammerhead / BoardConfig.mk)

config ของบอร์ดจำเป็นต้องมีการตั้งค่าสถาปัตยกรรมและแพลตฟอร์มโดยปกติแล้วจะมีอยู่แล้ว หาก คุณใช้คอนฟิกูเรชันอุปกรณ์ของผู้อื่น แต่ถ้าคุณสร้างตัวคุณเองคุณจะต้องเพิ่มพวกเขา นี่เป็นเพราะว่าไม่มีพวกเขาการบูตการกู้คืนอาจเกิดขึ้นได้และมันจะเป็นการแฟลชโลโก้ TeamWin ซ้ำ ๆ บนหน้าจอของคุณ

ธงควรวางไว้ที่ด้านล่างของ BoardConfig.mk ภายใต้หัวข้อ #twrp

สำหรับอุปกรณ์ ทั้งหมด คุณจะต้องสั่งให้ TWRP ใช้ชุดรูปแบบใด ธง TW_THEME ใช้แทนค่าสถานะ DEVICE_RESOLUTION ที่เก่ากว่าซึ่งหมายความว่าตอนนี้ TWRP ใช้การปรับขนาดเพื่อยืดรูปแบบใด ๆ

ตัวเลือกของคุณคือ portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi และ watch_mdpi สำหรับโหมดถ่ายภาพในโหมดแนวตั้งคุณอาจต้องการธีม HD 720 ที่ 720 × 1280 ขึ้นไป แต่สำหรับอุปกรณ์แนวนอนจะมีขนาด 1280 × 720 ขึ้นไป

ธงชุดรูปแบบ + ธงรูปแบบของคุณควรมีลักษณะดังนี้:

#twrp

TW_THEME: = portrait_hdpi

ธงการสร้างเพิ่มเติมที่คุณต้องการรวมไว้ในส่วนนี้ (เครดิตไปยังฟอรัม XDA):

  • RECOVERY_SDCARD_ON_DATA: = true (ซึ่งจะช่วยให้การจัดการ / ข้อมูล / สื่อบนอุปกรณ์ต่างๆที่มีโฟลเดอร์นี้เป็นที่เก็บข้อมูลได้ดี (Honeycomb ส่วนใหญ่และอุปกรณ์ที่มาพร้อมกับ ICS เช่น Galaxy Nexus) ธงนี้ไม่จำเป็นสำหรับอุปกรณ์ประเภทนี้ แต่ถ้าคุณ ไม่กำหนดค่าสถานะนี้และไม่รวมถึงการอ้างอิงใด ๆ ไปยัง / sdcard, / internal_sd, / internal_sdcard หรือ / emmc ใน fstab ของคุณจากนั้นเราจะถือว่าอุปกรณ์ดังกล่าวใช้พื้นที่เก็บข้อมูลแบบจำลองโดยอัตโนมัติ)
  • BOARD_HAS_NO_REAL_SDCARD: = true - ปิดการใช้งานสิ่งต่างๆเช่นการแบ่งพาร์ติชันการ์ด SD และอาจช่วยให้คุณประหยัดเนื้อที่หาก TWRP ไม่เหมาะกับการกู้คืนของคุณ
  • TW_NO_BATT_PERCENT: = true - ปิดการแสดงเปอร์เซ็นต์แบตเตอรี่สำหรับอุปกรณ์ที่ไม่รองรับอย่างเหมาะสม
  • TW_CUSTOM_POWER_BUTTON: = 107 - กำหนดแผนผังปุ่มเปิด / ปิดสำหรับ lockscreen
  • TW_NO_REBOOT_BOOTLOADER: = true - ลบปุ่มบูตเครื่องรีบู๊ตจากเมนูรีบูต
  • TW_NO_REBOOT_RECOVERY: = true - เอาปุ่มรีบูตเครื่องจากเมนูรีบูต
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - แลกเปลี่ยนการจับคู่ระหว่างแกน X และแกน Y
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - พลิกค่าสกรีนชัตเตอร์แกน Y
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - พลิกค่าสกรีนชัตเตอร์แกน x
  • TWRP_EVENT_LOGGING: = true - เปิดการบันทึกเหตุการณ์แบบสัมผัสเพื่อช่วยในการแก้ปัญหาปัญหาหน้าจอสัมผัส (อย่าปล่อยให้ข้อมูลนี้เปิดขึ้นมา - มันจะเติม logfile ของคุณอย่างรวดเร็ว)
  • BOARD_HAS_FLIPPED_SCREEN: = true - พลิกหน้าจอคว่ำหน้าจอที่ติดตั้งคว่ำลง

สามารถสร้าง flag เพิ่มเติมได้โดยการสแกนผ่านไฟล์ Android.mk ในแหล่งข้อมูลการกู้คืน แต่โดยปกติแล้วจะไม่ได้ใช้เพื่อไม่ให้มีการบันทึกข้อมูลเหล่านั้น

ใช้ Recovery.Fstab

TWRP 2.5 ขึ้นไปได้รับการสนับสนุนสำหรับคุณลักษณะ recovery.fstab ใหม่ ๆ โดยเฉพาะอย่างยิ่งความสามารถในการขยายฟังก์ชันการสำรองข้อมูล / เรียกคืนของ TWRP คุณไม่จำเป็นต้องเพิ่มแฟล็ก fstab เนื่องจากพาร์ติชันส่วนใหญ่จะได้รับการจัดการโดยอัตโนมัติ

TWRP สนับสนุน fstabs v2 ในเวอร์ชัน 3.2.0 ขึ้นไปเท่านั้น - ใน TWRP เวอร์ชันเก่าคุณจะต้องใช้รูปแบบเก่าของ fstab นี่คือตัวอย่างของ fstab TWRP สำหรับ Galaxy S4:

คุณสามารถสร้างไฟล์ twrp.fstab และใช้ PRODUCT_COPY_FILES เพื่อวางใน> etc> twrp.fstab เพื่อเพิ่มความเข้ากันได้สูงสุดกับโครงสร้างการสร้างเฉพาะของคุณ

เมื่อ TWRP เปิดตัวและพบไฟล์ twrp.fstab ใน RAMDisk จะเปลี่ยนชื่อเป็น> etc> recover.fstab.bak โดยทั่วไปจะแทนที่ fstab จากอุปกรณ์ของคุณด้วย fstab TWRP ซึ่งจะขยายความเข้ากันได้

ตัวอย่างรหัส:

PRODUCT_COPY_FILES + = อุปกรณ์ / lge / hammerhead / twrp.fstab: การกู้คืน> root> etc> twrp.fstab

fstab ใน TWRP สามารถมีแฟล็กบางส่วนสำหรับพาร์ติชันที่แสดงใน fstab

ธงเหล่านี้ถูกเพิ่มลง ในตอนท้าย ของรายการพาร์ทิชันใน fstab โดยคั่นด้วยช่องว่าง / ช่องว่าง / แท็บ ธงจะมีผลกับพาร์ติชันนั้น แต่ไม่มีผู้อื่น ธงถูกคั่นด้วยเครื่องหมายอัฒภาค นี่คือตัวอย่างรหัส:

ลองตรวจดูทีละทีละนิด ธงที่นี่จะแสดงชื่อที่แสดงของ Micro SDcard ธง wipeingui จะทำให้พาร์ติชันนี้พร้อมใช้งานสำหรับการล้างข้อมูลในเมนู Advanced Wipe แฟล็กที่ถอดออกได้บ่งชี้ว่าพาร์ติชันนี้ไม่ได้แสดงอยู่เสมอซึ่งจะป้องกันไม่ให้มีการแสดงข้อผิดพลาดในการติดตั้ง

รายการที่สมบูรณ์ของธง (เครดิตไป TeamWin) :

  • ถอดออกได้ - บ่งบอกว่าพาร์ทิชันนี้อาจไม่สามารถป้องกันข้อผิดพลาดในการติดตั้งระหว่างการบูตได้
  • การจัดเก็บ - ระบุว่าพาร์ทิชันสามารถใช้เป็นที่จัดเก็บข้อมูลซึ่งทำให้พาร์ทิชันสามารถใช้เป็นที่จัดเก็บสำหรับการสำรองข้อมูลเรียกคืนซิปการติดตั้ง ฯลฯ
  • settingsstorage - ควรตั้งค่าพาร์ติชันเดียวเป็นค่าจัดเก็บข้อมูลพาร์ติชันนี้จะใช้เป็นตำแหน่งสำหรับจัดเก็บไฟล์การตั้งค่า TWRP
  • canbewiped - บ่งชี้ว่าพาร์ทิชันนี้สามารถถูกลบโดยระบบ back-end แต่อาจไม่ได้ระบุไว้ใน GUI สำหรับการเช็ดโดยผู้ใช้
  • userrmrf - แทนที่รูปแบบรูปแบบปกติของการเช็ดและอนุญาตให้พาร์ทิชันเท่านั้นที่จะเช็ดโดยใช้คำสั่ง rm -rf
  • = 1 หรือ backup = 0, 1 ระบุว่าพาร์ทิชันสามารถแสดงรายการในรายการสำรอง / เรียกคืนในขณะที่ 0 มั่นใจได้ว่าพาร์ติชันนี้จะไม่แสดงในรายการที่สำรองไว้
  • wipeingui - ทำให้พาร์ติชันปรากฏใน GUI เพื่อให้ผู้ใช้เลือกเพื่อเช็ดในเมนูเช็ดขั้นสูง
  • wipeduringfactoryreset - พาร์ติชันจะถูกล้างระหว่างการรีเซ็ตเป็นค่าเริ่มต้น
  • ignoreblkid - blkid ถูกใช้เพื่อกำหนดว่าระบบไฟล์ใดที่ TWRP ใช้อยู่ธงนี้จะทำให้ TWRP ข้าม / ละเว้นผลลัพธ์ของ blkid และใช้ระบบไฟล์ที่ระบุไว้ใน fstab เท่านั้น
  • retainlayoutversion - ทำให้ TWRP เก็บไฟล์ .layoutversion ไว้ใน / ข้อมูลบนอุปกรณ์เช่น Sony Xperia S ซึ่งใช้ / ข้อมูล / สื่อ แต่ยังมีพาร์ทิชันแยกต่างหาก / sdcard
  • symlink = - ทำให้ TWRP เรียกใช้คำสั่ง mount เพิ่มเติมเมื่อติดตั้งพาร์ติชันโดยทั่วไปใช้กับ / data / media เพื่อสร้าง / sdcard
  • display = - ตั้งชื่อที่แสดงสำหรับพาร์ติชันสำหรับแสดงรายการใน GUI
  • storagename = - กำหนดชื่อที่จัดเก็บสำหรับพาร์ติชันเพื่อแสดงรายการในรายการจัดเก็บ GUI
  • backupname = - ตั้งชื่อแบ็คอัพสำหรับพาร์ติชันสำหรับแสดงรายการในรายการสำรอง / เรียกคืน GUI
    length = - มักใช้เพื่อสงวนพื้นที่ว่างในตอนท้ายของพาร์ติชันข้อมูล / เพื่อจัดเก็บคีย์ถอดรหัสเมื่อมีการเข้ารหัสอุปกรณ์เต็มรูปแบบของ Android ไม่ใช่การตั้งค่านี้อาจทำให้ไม่สามารถเข้ารหัสอุปกรณ์ได้
  • canencryptbackup = - 1 หรือ 0 เพื่อเปิด / ปิดใช้งานทำให้ TWRP เข้ารหัสลับการสำรองข้อมูลของพาร์ติชันนี้หากผู้ใช้เลือกการเข้ารหัส (ใช้กับการสำรองข้อมูล tar เท่านั้นไม่ใช่ภาพ)
  • userdataencryptbackup = - 1 หรือ 0 เพื่อเปิด / ปิดใช้งานทำให้ TWRP เข้ารหัสเฉพาะส่วน userdata ของพาร์ติชันนี้ข้อมูลย่อยบางอย่างเช่น / data / app จะไม่ได้รับการเข้ารหัสเพื่อประหยัดเวลา
  • subpartitionof = - ต้องประสบความสำเร็จด้วยเครื่องหมายเท่ากับและเส้นทางของพาร์ติชันที่เป็นพาร์ติชันย่อยของ พาร์ติชันย่อยจะถือว่าเป็นส่วนหนึ่งของพาร์ติชันหลักตัวอย่างเช่น TWRP จะสร้าง / datadata พาร์พาร์ทิชัน / ข้อมูลโดยอัตโนมัติ ซึ่งหมายความว่าข้อมูล / datadata จะไม่ปรากฏในรายชื่อ GUI แต่จะ / datadata จะถูกล้างสำรองข้อมูลคืนติดตั้งและยกเลิกการต่อเชื่อมทุกครั้งที่มีการดำเนินการเหล่านี้บน / data

ตัวอย่างที่ดีของการใช้พาร์ติชันย่อยคือพาร์ติชัน efs 3x ใน LG Optimus G:

แบ่งพาร์ติชันทั้งหมด 3 รายการลงในรายการ EFS รายการเดียวใน TWRP GUI ทำให้ทั้งสามสามารถสำรองและเรียกคืนข้อมูลพร้อมกันภายใต้รายการเดียว

ด้วย TWRP 3.2.0 ขึ้นไปซึ่งใช้ V2 Fstab คุณ ไม่จำเป็นต้องเพิ่มค่าสถานะการสร้างใด ๆ สนับสนุน V2 Fstab โดยอัตโนมัติ V2 Fstab ยังสนับสนุนสัญลักษณ์ตัวแทน (สัญลักษณ์ *) ซึ่งอาจเป็นประโยชน์สำหรับ USB OTG และการ์ด micro-SD ที่มีหลายพาร์ติชัน คุณสามารถใช้รูปแบบ V1 Fstab ต่อไปได้และสามารถใช้ทั้ง V1 และ V2 ใน Fstab เดียวกันได้

ตัวอย่างเช่นนี่คือบรรทัด V1 Fstab ที่มีสัญลักษณ์แทนสำหรับ USB OTG:

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

ต่อไปนี้เป็นบรรทัด V2 Fstab สำหรับอุปกรณ์เดียวกันซึ่งบรรลุผลเช่นเดียวกัน:

นอกจากนี้คุณอาจรวมถึง etc twrp.flags ที่ใช้รูปแบบ V1 Fstab และสามารถใช้เพื่อเสริม V2 Fstab ด้วยธง TWRP พาร์ติชันเพิ่มเติมที่ไม่รวมอยู่ใน V2 Fstab หรือการแทนที่ค่าใน V2 Fstab

ตัวอย่างเช่นอุปกรณ์หัวเว่ยอาจมี fstab V2 นี้ใน etc recovery.fstab:

นอกจากนี้ยังอาจมีธงเหล่านี้รวม:

ดังนั้นที่นี่สองบรรทัดแรกใน TWRP.Flags จะเพิ่มพาร์ติชัน Boot และ Recovery ที่ ไม่มีอยู่ ใน V2 Fstab จากนั้นบรรทัด / cust ใน TWRP.flags จะสั่งให้ TWRP อนุญาตให้ผู้ใช้ปลายทางสำรองพาร์ติชัน (cust) และตั้งชื่อให้กับ

พาร์ติชัน / misc มีอยู่ใน twrp.flags และพาร์ติชัน / oeminfo แนะนำ TWRP เพื่ออนุญาตการสำรองข้อมูลและตั้งชื่อให้กับชื่อ

เราต้องการสายข้อมูล / เพราะอุปกรณ์ Huawei จำนวนมากถูกเข้ารหัส แต่ใช้เฉพาะ Huawei binaries - ดังนั้นเราจึงใช้ Huawei binaries เพื่อถอดรหัสอุปกรณ์โดยอัตโนมัติในโหมดการกู้คืน ดังนั้นที่นี่ / สายข้อมูลจะสั่งให้ TWRP ใช้ / dev / block / dm -0 และไม่ใช่ / dev / block / bootdevice / by-name / userdata ซึ่งปกติจะใช้สำหรับการติดตั้งที่เหมาะสม

สุดท้ายมี / system_image เพื่อให้ TWRP มีตัวเลือกในการสร้างภาพระบบในเมนู Backup and Restore

TeamWin github อย่างเป็นทางการควรมีตัวอย่างอุปกรณ์รุ่นล่าสุดสำหรับอุปกรณ์ที่มีพอร์ต TWRP อย่างเป็นทางการ คุณสามารถดู TeamWin github ได้ที่นี่

หลังจาก Omni หรือ CM ได้รับการซิงค์แล้วและคุณได้ตั้งค่าสถานะ TWRP ของคุณแล้วคุณควรสร้างแหล่งที่มา ./build/envsetup.sh

คุณจะต้องทานอาหารกลางวันเพื่อให้คุณสามารถทำอะไรได้บ้างเช่น lunch omni_hammerhead.eng

หลังจากรับประทานอาหารเที่ยงเรียบร้อยแล้วอุปกรณ์ส่วนใหญ่จะใช้คำสั่งนี้:

คุณต้องแทนที่ # ใน -j # โดยนับหลัก +1 ดังนั้นหากคุณมีแกนแบบคู่คือ -j3 quadcore จะเป็น -j5 ฯลฯ วาง # ด้วยจำนวนหลัก +1 ดังนั้นถ้าคุณมีแกนคู่เป็น -j3 และแกนรูปสี่เหลี่ยมจะกลายเป็น -j5 ฯลฯ

นอกจากนี้อุปกรณ์ทั่วไปของซัมซุงจะต้องมีดังนี้:

เนื่องจากอุปกรณ์ Samsung ส่วนใหญ่มีการกู้คืน เป็น ramdisk พิเศษในการบูต แทนที่จะเป็นพาร์ติชันการกู้คืนแยกต่างหาก (ซึ่งอุปกรณ์อื่น ๆ ส่วนใหญ่ใช้)

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

รวบรวมข้อมูลการกู้คืนโดยใช้ไฟล์อุปกรณ์เหล่านั้น ใน Android SDK ให้คลิกที่ Tools -> Manage AVDs คลิกใหม่ ตั้งค่าดังต่อไปนี้:

จากนั้นคลิก OK

เมื่อคุณมี AVD และการกู้คืนแล้วคุณสามารถบูต TWRP ในโปรแกรมจำลองโดยการเรียกดูไปยังโฟลเดอร์ android-sdk / tools ของคุณและเรียกใช้คำสั่งนี้:

โปรดทราบว่า ADB ไม่สามารถใช้งานได้ทันที ประมาณ 10 ถึง 15 วินาทีหลังจากที่ TWRP เริ่มต้นการบูต ADB จะออนไลน์ เราเริ่มต้น ADB ผ่านทาง init.rc ดังนั้นแม้ว่า TWRP จะไม่สามารถบูตได้เนื่องจากมีข้อผิดพลาดบางอย่างเกี่ยวกับโค้ดที่คุณอาจได้รับ ADB ควรใช้งานได้ สนุก!

TWRP และอุปกรณ์ A / B (เครดิตไปยัง TeamWin):

จากมุมมอง TWRP อุปกรณ์ A / B ไม่ใช่อุปกรณ์อื่นที่แตกต่างจากอุปกรณ์ทั่วไป แต่นักพัฒนาซอฟต์แวร์ดูเหมือนจะขี้อายในการทำงานกับอุปกรณ์เหล่านี้ ฉันจะพยายามที่จะส่องแสงในเรื่องนี้และหวังว่านี้จะเป็นคำแนะนำสำหรับ porting TWRP ไป A / B อุปกรณ์

ประการแรกให้เราเข้าใจว่าอุปกรณ์ A / B เป็นอย่างไรและแตกต่างกันอย่างไร อุปกรณ์ A / B มีส่วนที่ซ้ำกันของพาร์ติชันจำนวนมากบนอุปกรณ์ อุปกรณ์ A / B มีพาร์ติชันระบบ 2 ระบบพาร์ติชันสำหรับการบูต 2x พาร์ติชันผู้จำหน่าย 2x พาร์ติชันโมเด็ม / เฟิร์มแวร์ 2 ตัว ฯลฯ โดยใช้เพียงช่องเดียวเท่านั้น ช่วงเริ่มต้นของ bootloader จะอ่านข้อมูลขนาดเล็กที่เรียกว่า BCB หรือ Bootloader Control Block และตัดสินใจว่าจะบูตพาร์ติชั่น A หรือพาร์ทิชัน B หรือไม่ เมื่อมีการปรับปรุง OTA ข้อมูลจะถูกคัดลอกจากช่องที่ใช้งานอยู่และไม่ได้ใช้งาน / patched ตัวอย่างเช่นหากคุณใช้สล็อต A อยู่ในปัจจุบันอุปกรณ์ของคุณจะดาวน์โหลดการอัปเดตและคัดลอกพาร์ติชันระบบที่มีอยู่จากช่อง A และติดตั้ง / อัปเดตด้วยการอัปเดตใหม่ ๆ ลงในช่อง B เมื่อการคัดลอกและอัปเดตเสร็จสมบูรณ์ BCB มีการอัพเดตและอุปกรณ์จะเริ่มต้นใหม่โดยใช้สล็อตบีครั้งต่อไปที่มีการอัพเดตพาร์ติชั่นระบบในช่อง B จะถูกคัดลอกไปยังสล็อต A และอัพเดต BCB จะได้รับการอัพเดตและเรารีบูตไปที่สล็อต A เมื่อดูพาร์ทิชันบนอุปกรณ์, คุณจะเห็นบางอย่างเช่นนี้:

หมายเหตุพาร์ติชันสำหรับเริ่มระบบแบบคู่และพาร์ติชันผู้ขายในรายการด้านบน แต่มีพาร์ติชันผู้ใช้เพียงรายการเดียว

ในขณะที่ไม่มีข้อกำหนดทางเทคนิคที่ฉันรับรู้อุปกรณ์ A / B ทั้งหมดที่จัดส่งมาจนถึงปัจจุบันไม่มีพาร์ทิชันการกู้คืนแยกต่างหาก ภาพบูตประกอบด้วยการกู้คืนใน RAMDIS แทน สิ่งสำคัญคือรู้ว่าตอนนี้ภาพบูตยังมีการกู้คืน พาร์ติชันระบบเป็นระบบไฟล์แบบเต็ม ในระหว่างการบูตถ้าเคอร์เนลถูกสั่งให้บูตเข้าสู่การกู้คืนระบบจะดึงข้อมูล ramdisk ในพาร์ติชันสำหรับเริ่มระบบ ถ้าเคอร์เนลไม่ได้บอกโดยบูตโหลดเพื่อเริ่มต้นการกู้คืนเคอร์เนลจะติดตั้งพาร์ติชันระบบที่เหมาะสม (A หรือ B) เนื่องจากพาร์ติชันระบบเป็นระบบไฟล์แบบเต็ม ซึ่งหมายความว่าพาร์ติชันระบบบนอุปกรณ์เหล่านี้จะถูกเมาท์ไปที่ / instead of / system และพาร์ติชันระบบจะประกอบด้วยไฟล์ทั้งหมดที่ปกติจะอยู่ใน ramdisk สำหรับบูตและโฟลเดอร์ย่อยของระบบ /

จากมุมมอง TWRP มี 3 สิ่งที่คุณต้องทำสำหรับอุปกรณ์ A / B ขั้นแรกคุณต้องตั้งค่า

รหัส:

สุดท้ายเมื่อคุณเข้า TWRP คุณอาจต้องการตรวจสอบให้แน่ใจว่า bootctl hal-info ตอบสนองได้อย่างถูกต้องโดยไม่มีข้อผิดพลาด มักใช้ไบนารี bootctl ต้องใช้ไลบรารีที่เป็นกรรมสิทธิ์หรือแม้แต่บริการบางอย่างทำงานได้อย่างถูกต้อง หาก bootctl ไม่ทำงานอย่างถูกต้องคุณจะไม่สามารถเปลี่ยนช่องภายใน TWRP ได้อย่างถูกต้องด้วย

นอกเหนือจากการตั้งค่า

รหัส:

AB_OTA_UPDATER: = true

คุณอาจต้องการตั้งค่า:

รหัส:

BOARD_USES_RECOVERY_AS_BOOT: = true

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = true

หากคุณตั้งค่า

รหัส:

BOARD_USES_RECOVERY_AS_BOOT: = true

แล้วทำการกู้คืนข้อมูลจะไม่ทำงานอีกต่อไปและคุณจะต้องทำ bootimage แทน ฉันไม่แนะนำให้ตั้งค่าใด ๆ ของธงเหล่านี้สำหรับ TWRP เท่านั้นสร้างต้นไม้ ธงเหล่านี้อาจจำเป็นสำหรับนักพัฒนาซอฟต์แวร์ที่สร้างรอมเต็มรูปแบบสำหรับอุปกรณ์ A / B

การติดตั้ง / กระพริบ TWRP บนอุปกรณ์ A / B:

เนื่องจากอุปกรณ์ A / B ที่รู้จักกันทั้งหมดไม่มีพาร์ติชันการกู้คืนแยกกันคุณจะต้อง flash TWRP ไปที่พาร์ติชันสำหรับเริ่มระบบ ในพิกเซล 1 และ 2 เราใช้บูต fastboot เพื่อบูต TWRP ชั่วคราวโดยไม่กระพริบ TWRP จากนั้นเราจะส่งไปรษณีย์เพื่อให้ผู้ใช้สามารถแฟลช TWRP ไปยังช่องเสียบทั้งสองได้ คุณสามารถดาวน์โหลดหนึ่งในซิปเหล่านี้จากเว็บไซต์ของเราและอัปเดตซิปตามต้องการเพื่อสนับสนุนอุปกรณ์ของคุณ ในที่สุดเราจะเพิ่มเครื่องมือในการ TWRP เพื่อให้ผู้ใช้สามารถกู้คืนข้อมูล flash บนอุปกรณ์เหล่านี้ได้โดยไม่จำเป็นต้องใช้ซิป

เมื่อเร็ว ๆ นี้ผมได้ทำงานเกี่ยวกับ Razer Phone โทรศัพท์ Razer ไม่สนับสนุนการบู๊ต fastboot ผู้ใช้ต้องกำหนดสล็อตบูตที่กำลังใช้อยู่ในปัจจุบันโดยใช้

รหัส:

เข้า TWRP ครั้งหนึ่งใน TWRP พวกเขาสามารถไปที่หน้ารีบูตและเปลี่ยนกลับไปใช้งานช่องเดิมของพวกเขาให้สำรองข้อมูลจากนั้นติดตั้ง TWRP การใช้ช่องว่างที่ไม่ได้ใช้งานจะช่วยให้ผู้ใช้สามารถสำรองข้อมูลอุปกรณ์ของตนได้ดีก่อนทำการติดตั้ง TWRP

หมายเหตุเพิ่มเติม:

หากคุณต้องการได้รับ การสนับสนุน TWRP อย่างเป็นทางการสำหรับอุปกรณ์ของคุณ เพื่อให้สามารถติดตั้งแอพพลิเคชั่น TWRP โดยอัตโนมัติและคุณต้องการทำเช่นนี้เพื่อให้เจ้าของอุปกรณ์เครื่องอื่น ๆ สามารถรับการสนับสนุน TWRP อย่างเป็นทางการและเป็นสิ่งที่ดี คุณจะต้องส่งข้อมูลต่อไปนี้ไปยัง TeamWin:

  1. ไฟล์คอนฟิกูเรชันอุปกรณ์เพื่อรวบรวม TWRP จากแหล่ง อุปกรณ์ของคุณ - อย่าบรรจุข้อมูลใหม่ด้วยตนเองโดย จะต้องรวบรวมจากแหล่งข้อมูล
  2. หลังจากที่ TeamWin สร้างสำเนาของ TWRP แล้วพวกเขาก็จะส่งให้คุณเพื่อตรวจสอบความถูกต้อง - เมื่อคุณได้ตรวจสอบแล้ว TeamWin จะสร้างภาพที่ทำงานสำหรับอุปกรณ์ของคุณและเพิ่มลงในแอพพลิเคชั่น TWRP อย่างเป็นทางการ

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

Facebook Twitter Google Plus Pinterest