Gần đây có cùng một vấn đề (trên Nexus S của một người bạn đang chạy Android 4.0 với màn hình & số hóa hoàn toàn bị hỏng và adb đã tắt):
Nhận một hệ thống phục hồi chạy với bật adb. Sau đó sử dụng bảng điều khiển adb để truy cập dữ liệu của thiết bị và tạo bản sao lưu. Trên Nexus S, bạn không thể sử dụng thẻ sd để lấy dữ liệu khỏi thiết bị, vì vậy bạn cần sử dụng adb cho điều đó.
Điều kiện tiên quyết:
- Điện thoại không có chế độ fastboot với khởi động lệnh kích hoạt
- Điện thoại vẫn hoạt động (trừ màn hình)
- Đã cài đặt SDK (với adb + fastboot thực thi)
- Hình ảnh khôi phục CWM được tải xuống /tmp/cwm.zip (đã bật adb khi bắt đầu)
- Linux với uudecode được cài đặt (một phần của gói 'sharutils' trên Ubuntu)
Cách thực hiện:
a) Khởi động thiết bị ở chế độ fastboot và khởi động khôi phục CWM theo cách này
me@workstation:~$ fastboot boot /tmp/cwm.zip
b) đợi một thời gian để CWM khởi động, sau đó đăng nhập vào thiết bị
me@workstation:~$ adb shell
shell@android:/ $ mkdir -p /tmp/backup/data /tmp/backup/sdcard
Thay thế DATA_DEV và SDCARD_DEV bằng các tên chính xác
tùy thuộc vào điện thoại của bạn, rất có thể đó là một trong những điều sau:
- DATA_DEV:
/dev/block/mtdblock*
- SDCARD_DEV:
/dev/block/mmcblk*
sử dụng df
lệnh để tìm ứng viên theo kích thước.
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
Hãy cẩn thận và giải thích thêm:
- Tại sao
uuencode
? Bảng điều khiển ADB dường như chặn luồng dữ liệu và rõ ràng chèn trở lại vận chuyển trước mỗi nguồn cấp dữ liệu đơn . Mã hóa dữ liệu trước khi truyền dữ liệu qua thiết bị xuất chuẩn của adb bảo vệ chống lại điều đó.
- Liệu không làm việc trên các thiết bị mã hóa
- Bạn cũng có thể chỉ cần lặp lại quá trình trên các thiết bị chưa từng có và truyền
/dev/block/*
từng cái một và tìm ra cái nào dùng để làm gì sau đó
- Bạn cần phải tự tìm một hình ảnh khôi phục CWM phù hợp