Cuối cùng tôi đã quản lý để khôi phục nội dung của cơ sở dữ liệu trước đây trên thiết bị hiện tại của mình và tôi sẽ giải thích làm thế nào.
Ý tưởng là sao chép bản sao lưu của /data/data/com.android.providers.telephony từ bản cài đặt trước của tôi, sang Thiết bị ảo Android, sao lưu trên đó bằng SMS Backup & Restore ở định dạng XML, sau đó khôi phục bản sao lưu XML đó thiết bị của tôi. SMS Backup & Restore đã hợp nhất các tin nhắn từ bản sao lưu với tin nhắn của thiết bị hiện tại để tôi không phải hợp nhất hai cơ sở dữ liệu bằng tay.
Trong câu hỏi của tôi, AVD chạy 6.0.0 sẽ không đọc nội dung cơ sở dữ liệu của tôi vì nó được tạo trên CM 13 dựa trên Android 6.0.1. Nhưng Google dường như không cung cấp hình ảnh giả lập dựa trên Android 6.0.1, vì vậy tôi vẫn sử dụng AVD chạy 6.0.0. Vì lý do hiệu suất, tôi đã cấu hình nó để mô phỏng CPU Intel Atom (x86) và cài đặt trình điều khiển Intel HAXM trên PC của tôi (Tôi đã làm theo câu trả lời này để làm điều đó).
Cơ sở dữ liệu mmssms.db chứa các thuộc tính về chính nó, đặc biệt là số phiên bản, vì vậy tôi đã chỉnh sửa chúng để khiến Android tin rằng nó xử lý cơ sở dữ liệu của phiên bản mà nó có thể xử lý. Tôi đã mở mmssms.db trong SQLite Expert , nhấp vào tab "Cơ sở dữ liệu" và trong danh sách thuộc tính, tìm thấy các dòng sau:
- lược đồ_version
- user_version
Tôi đã hạ những cái này xuống còn 44 và 60, tương ứng.
Sau đó, tôi đã chuyển bản sao lưu /data/data/com.android.providers.telephony của mình sang AVD bằng cách đẩy adb , sau khi chắc chắn rằng vị trí đó đã trống ở đó. Sử dụng shell adb Tôi đã đặt chủ sở hữu và nhóm mọi thứ trong thư mục này và các thư mục con của nó thành radio và trong thư mục con cơ sở dữ liệu , giá trị chmod là 660.
Tôi đã khởi động lại thiết bị.
Tôi đã cài đặt Sao lưu & Khôi phục SMS trên AVD thông qua ADB. (Có thể tìm thấy .apk của ứng dụng đó trên một thiết bị hiện có trong / data / app trên thiết bị đã cài đặt. Tôi không bận tâm cài đặt Google Play Services trên trình giả lập để lấy nó từ Play Store, nhưng bạn có thể làm điều đó.)
Tôi đã sao lưu các tin nhắn và sao chép .xml kết quả vào thiết bị thực của mình, nơi tôi đã sử dụng SMS Backup & Restore để khôi phục nó. Võngà.