ผู้ที่ชื่นชอบ Android จำนวนมากใช้การกู้คืนแบบกำหนดเอง เช่น TWRP และ ClockworkMod สำหรับการแฟลช ROM และม็อด การรับและกู้คืนข้อมูลสำรองของอุปกรณ์ทั้งหมด และแม้แต่การจัดการไฟล์โดยใช้โปรแกรมจัดการไฟล์ AROMA ที่มีคุณสมบัติครบถ้วน และในขณะที่ผู้ใช้ส่วนใหญ่ไม่ต้องการจับภาพหน้าจอในโหมดการกู้คืนจริงๆ บล็อกเกอร์ นักพัฒนาซอฟต์แวร์กู้คืนแบบกำหนดเอง และแอปที่ใช้ AROMA ตลอดจนผู้ออกแบบธีมการกู้คืนมักต้องการฟังก์ชันนี้เพื่อแสดงสิ่งที่พวกเขากำลังตรวจสอบหรือกำลังทำงานอยู่ . ต่อไปนี้ เราจะแนะนำคุณตลอดกระบวนการจับภาพหน้าจอของอุปกรณ์ Android ของคุณอย่างง่ายดายในขณะที่เปิดเครื่องในโหมดการกู้คืน โดยไม่คำนึงว่าอุปกรณ์นั้นกำลังทำงานกู้คืนแบบกำหนดเองแบบใด
ต่างจากตอนที่คุณบูทเข้าสู่ Android ตามปกติ การรวมปุ่มลดระดับเสียงมาตรฐาน + เปิด/ปิด จะไม่ทำงานสำหรับการจับภาพหน้าจอในการกู้คืน ก่อนหน้านี้ เครื่องมือ DDMS ของ Android SDK เคยทำงานได้ดีสำหรับจุดประสงค์นี้ แต่นั่นไม่ใช่กรณีอีกต่อไปตั้งแต่การอัปเดต 2-3 ครั้งที่ผ่านมา
วิธีแก้ปัญหาการทำงานเดียวที่ฉันรู้มาจนถึงตอนนี้คือการดึงข้อมูลเฟรมบัฟเฟอร์ดิบด้วยตนเองแล้วประมวลผลโดยใช้เครื่องมือบรรทัดคำสั่ง ffmpeg เพื่อให้ได้ภาพที่ต้องการ อย่างไรก็ตาม วิธีแก้ปัญหานี้มีข้อแม้ที่ร้ายแรง: ไม่ใช่คำสั่งเดียวที่เป็นสากลสำหรับอุปกรณ์ Android ทั้งหมด เนื่องจากอุปกรณ์และการกู้คืนที่แตกต่างกันใช้รูปแบบพิกเซลที่แตกต่างกันสำหรับเฟรมบัฟเฟอร์ และยังต้องปรับแต่งคำสั่งเพื่อพิจารณาปัจจัยความละเอียดดั้งเดิมของอุปกรณ์ และปัจจัยก้าวในภาพลักษณ์ โดยส่วนตัวแล้วฉันเคยผ่านฝันร้ายของการใช้เวลาหลายชั่วโมงในการพยายามหาพารามิเตอร์เหล่านี้สำหรับอุปกรณ์บางตัวของฉันเมื่อเขียนคำแนะนำบางส่วนที่เกี่ยวข้องกับภาพหน้าจอการกู้คืน
สิ่งที่เราจะได้เห็นคือเครื่องมือเล็กๆ น้อยๆ ที่ยอดเยี่ยมโดย XDA Member makers_mark ที่จะทำงานให้เสร็จลุล่วงไปพร้อมกับคุณโดยที่ยังคงความยุ่งยากทั้งหมดไว้ในเบื้องหลัง
พบกับภาพหน้าจอการกู้คืน
Recovery Screenshot เป็นสคริปต์ (ใช้ได้เฉพาะกับ Windows ในขณะที่เขียน) ที่ใช้ ADB และ ffmpeg เพื่อดึง framebuffer ดิบจากอุปกรณ์ของคุณแล้วประมวลผลตามนั้นเพื่อแสดงภาพหน้าจอในรูปแบบ PNG
ก่อนที่คุณจะสามารถเริ่มถ่ายภาพหน้าจอการกู้คืน คุณต้องกำหนดค่าเครื่องมือสำหรับอุปกรณ์ของคุณ มาเริ่มกันเลยดีกว่า
ตั้งค่าสิ่งต่างๆ
ก่อนดำเนินการต่อ ตรวจสอบให้แน่ใจว่าคุณได้รีบูตอุปกรณ์ในโหมดการกู้คืน เชื่อมต่อกับคอมพิวเตอร์ผ่านสาย USB และติดตั้งไดรเวอร์ที่จำเป็นสำหรับอุปกรณ์
ดาวน์โหลด ภาพหน้าจอการกู้คืน และแตกเนื้อหาของไฟล์ ZIP ที่ดาวน์โหลดไปยังตำแหน่งที่สะดวกบนคอมพิวเตอร์ของคุณ ถัดไป เปิดเครื่องมือโดยใช้ไฟล์ RUNrs.bat ในโฟลเดอร์ สคริปต์จะนำเสนอตัวเลือกต่อไปนี้แก่คุณ:
เลือกตัวเลือกแรก เช่น ทำการตั้งค่าคอนฟิกโดยกด 1 จากนั้นระบบจะถามขนาดหน้าจอของอุปกรณ์เป็นพิกเซล ตรวจสอบให้แน่ใจว่าคุณป้อนมิติที่สั้นกว่าเป็นความกว้างและมิติที่ยาวกว่าเป็นความสูง
ภาพหน้าจอการกู้คืนจะดึงเฟรมบัฟเฟอร์ออกจากอุปกรณ์ของคุณ ประมวลผลในรูปแบบพิกเซลต่างๆ ด้วย ffmpeg และใส่ไฟล์ PNG ที่ประมวลผลแล้วลงในโฟลเดอร์ ‘Pixel_formats’ ภายในโฟลเดอร์ที่คุณแตกเครื่องมือ
ไปที่โฟลเดอร์ Pixel_formats และดูภาพเหล่านั้นทั้งหมด คุณจะสังเกตได้ว่าส่วนใหญ่ดูตลกซึ่งเป็นเรื่องปกติ พวกเขาได้รับการประมวลผลโดยใช้รูปแบบพิกเซลที่แตกต่างจากอุปกรณ์ของคุณ สิ่งที่คุณต้องมองหาที่นี่คือภาพที่ดูเหมาะสม จดชื่อ (ซึ่งเป็นชื่อรูปแบบพิกเซล) แล้วกดปุ่มใดก็ได้เพื่อดำเนินการต่อ
หากคุณพบรูปภาพที่ถูกต้องในโฟลเดอร์ ให้กด 1 เพื่อสิ้นสุดการตั้งค่าของคุณ หากคุณไม่โชคดีในครั้งนี้ เพียงกด 2 และเครื่องมือจะลองใช้รูปแบบที่ไม่ค่อยมีใครใช้มากขึ้นไปอีก ในกรณีนั้น ให้มองหารูปภาพใหม่จำนวนมากในโฟลเดอร์เดียวกันอีกครั้งในโฟลเดอร์เดียวกัน และจดชื่อรูปภาพนั้นไว้เมื่อคุณพบรูปภาพที่ถูกต้อง
หลังจากที่คุณพบรูปแบบพิกเซลที่ถูกต้องแล้ว ให้ป้อนในหน้าจอถัดไปตามที่คุณเห็นในชื่อไฟล์ที่ถูกต้อง (โดยไม่ใช้นามสกุล .PNG) ตัวอย่างเช่น ในการทดสอบของเราโดยใช้ Nexus 5 รูปภาพที่ถูกต้องคือ rgb0.png และด้วยเหตุนี้รูปแบบพิกเซลที่ถูกต้องจึงเป็น rgb0
หลังจากที่คุณป้อนรูปแบบพิกเซลที่ถูกต้องสำหรับอุปกรณ์ของคุณและกด Enter แสดงว่าคุณทำการกำหนดค่าเสร็จเรียบร้อยแล้ว – ได้เวลาเริ่มถ่ายภาพหน้าจอการกู้คืนเหล่านั้นแล้ว การตั้งค่าของคุณจะถูกบันทึกและคุณไม่จำเป็นต้องกำหนดค่าสคริปต์สำหรับอุปกรณ์เดียวกันอีกต่อไปเมื่อเปิดใช้งานอีกครั้ง
จับภาพหน้าจอในการกู้คืน
หลังจากการกำหนดค่าเริ่มต้นเสร็จสมบูรณ์ คุณจะได้รับตัวเลือกต่อไปนี้ทุกครั้งที่คุณเปิดเครื่องมือ
สิ่งที่อาจดูสับสนคือมีตัวเลือกสามตัวในการจับเฟรมบัฟเฟอร์ การอธิบายว่าระบบ double framebuffer ของ Android ทำงานอย่างไรนั้นอยู่นอกเหนือขอบเขตของคู่มือนี้ และรูปภาพที่คุณกำลังมองหาอาจอยู่ในเฟรมบัฟเฟอร์ตัวใดตัวหนึ่ง ดังนั้นจึงควรเลือกตัวเลือกที่สามในแต่ละครั้ง นั่นคือ ทั้งเฟรมบัฟเฟอร์ เพียงกด 3 และหน้าจอการกู้คืนจะเริ่มดึงและประมวลผลทั้งบัฟเฟอร์เฟรมสำหรับคุณ
ไฟล์ภาพที่ประมวลผลแล้วจะถูกวางไว้ในโฟลเดอร์ย่อยภายในโฟลเดอร์หลักของสคริปต์ และตั้งชื่อตามวันที่ปัจจุบัน รูปภาพภายในจะถูกตั้งชื่อตามเวลาปัจจุบัน เช่นเดียวกับเฟรมบัฟเฟอร์ (บนหรือล่าง)
โปรดทราบว่าเมื่อคุณพยายามจับภาพหน้าจอของอุปกรณ์อื่น คุณอาจต้องกำหนดค่าเครื่องมืออีกครั้ง ในการทำเช่นนั้น เพียงกด 4 บนหน้าจอหลักเพื่อรีเซ็ตการตั้งค่าของคุณและเริ่มต้นใหม่ ตัวเลือกที่ห้า เช่น โหมดกำหนดเองไม่เกี่ยวข้องกับการเชื่อมต่ออุปกรณ์ในโหมดการกู้คืน และสามารถใช้เพื่อระบุการตั้งค่าของคุณด้วยตนเอง และประมวลผลไฟล์ภาพดิบที่เป็นแหล่งที่มา
ผลลัพธ์เล็กน้อย
ต่อไปนี้คือภาพหน้าจอบางส่วนที่ถ่ายในโหมดการกู้คืนโดยใช้สคริปต์ อันแรกคือหน้าจอหลักของการกู้คืน TWRP ส่วนอันที่สองแสดงความคืบหน้าแบบกะพริบ ในขณะที่อันที่สามคือ AROMA File Manager
อีกครั้งแม้ว่าจะไม่ใช่สำหรับทุกคนเนื่องจากผู้ใช้ทั่วไปและแม้แต่ผู้ใช้ที่มีอำนาจส่วนใหญ่ไม่จำเป็นต้องจับภาพหน้าจอการกู้คืน แต่ Recovery Screenshot สามารถพิสูจน์ได้ว่าเป็นผู้ช่วยชีวิตสำหรับคนอย่างฉันซึ่งก่อนหน้านี้ต้องผ่านความยุ่งยากในการดึงเฟรมบัฟเฟอร์ด้วยตนเองและ การประมวลผลภาพดิบด้วยคำสั่ง ffmpeg ทุกครั้งที่เราต้องตรวจสอบการกู้คืนแบบกำหนดเองหรือสคริปต์ AROMA
ดาวน์โหลดภาพหน้าจอการกู้คืนจาก XDA-Developers