มีปัญหาเดียวกันอย่างแน่นอนเมื่อเร็ว ๆ นี้ (บน Nexus S ของเพื่อนที่ใช้ Android 4.0 พร้อมหน้าจอที่หักและ digitizer และ adb ปิด):
รับระบบการกู้คืนที่ทำงานโดยเปิดใช้ adb จากนั้นใช้คอนโซล adb เพื่อเข้าถึงข้อมูลของอุปกรณ์และสร้างการสำรองข้อมูล ใน Nexus S คุณไม่สามารถใช้ sdcard เพื่อนำข้อมูลออกจากอุปกรณ์ได้ดังนั้นคุณต้องใช้ adb สำหรับสิ่งนั้น
วิชาบังคับก่อน:
- โทรศัพท์จะมีโหมด fastboot กับบูตคำสั่งที่เปิดใช้งาน
- โทรศัพท์ยังใช้งานได้ (ยกเว้นหน้าจอ)
- ติดตั้ง SDK แล้ว (พร้อมกับ adb + fastboot executables)
- อิมเมจการกู้คืน CWM ที่ดาวน์โหลดไปยัง /tmp/cwm.zip (เปิดใช้งาน adb เมื่อเริ่มต้น)
- Linux พร้อม uudecode ที่ติดตั้ง (ส่วนหนึ่งของแพ็คเกจ 'sharutils' บน Ubuntu)
วิธีการทำ:
ก) เริ่มอุปกรณ์ในโหมด fastboot และบูตการกู้คืน CWM ด้วยวิธีนี้
me@workstation:~$ fastboot boot /tmp/cwm.zip
b) รอสักครู่เพื่อให้ CWM ทำการบู๊ตจากนั้นลงชื่อเข้าใช้อุปกรณ์
me@workstation:~$ adb shell
shell@android:/ $ mkdir -p /tmp/backup/data /tmp/backup/sdcard
แทนที่ DATA_DEV และ SDCARD_DEV ด้วย devicenames จริง
ขึ้นอยู่กับโทรศัพท์ของคุณซึ่งเป็นไปได้มากที่หนึ่งในสิ่งต่อไปนี้:
- DATA_DEV:
/dev/block/mtdblock*
- SDCARD_DEV:
/dev/block/mmcblk*
ใช้df
คำสั่งเพื่อค้นหาผู้สมัครตามขนาด
shell@android:/ $ mount -oro <DATA_DEV> /tmp/backup/data
shell@android:/ $ mount -oro <SDCARD_DEV> /tmp/backup/sdcard
shell@android:/ $ exit
me@workstation:~$ adb shell tar czf - /tmp/backup \| uuencode foo | uudecode -o - > /tmp/backup.tar.gz
คำเตือนและคำอธิบายเพิ่มเติม:
- ทำไม
uuencode
? ADB คอนโซลดูเหมือนว่าจะสกัดกั้นการสตรีมข้อมูลและเห็นได้ชัดแทรกกลับรถก่อนแต่ละเดียวอาหารเส้น การเข้ารหัสข้อมูลก่อนส่งสัญญาณผ่าน stdout ของ adb จะป้องกันสิ่งนั้น
- ไม่ได้ทำงานในอุปกรณ์เข้ารหัส
- นอกจากนี้คุณยังสามารถทำซ้ำกระบวนการบนอุปกรณ์ที่ไม่ได้ต่อเชื่อมและส่งทั้งหมด
/dev/block/*
หนึ่งต่อหนึ่งและหาว่าอันไหนเป็นสิ่งที่เกิดขึ้นภายหลัง
- คุณจำเป็นต้องค้นหาอิมเมจการกู้คืน CWM ที่เหมาะสมด้วยตัวเอง