Tôi có thể tạo APK từ một ứng dụng đã cài đặt và dữ liệu của nó không?


8

Tôi muốn lấy một ứng dụng đã cài đặt, bao gồm dữ liệu của nó, từ một thiết bị Android đã root và sản xuất từ ​​nó một APK phù hợp để cài đặt trên thiết bị Android chưa root.

Điều này có thể không?

Chỉnh sửa: Các câu trả lời / nhận xét hiện có dường như củng cố ý tưởng rằng các ứng dụng hiện tại không hỗ trợ nhúng dữ liệu của ứng dụng vào APK. Có lẽ câu hỏi cơ bản hơn là, liệu các tệp nhúng APK có thể được định sẵn /data/data/[appname]hay chúng bị hạn chế để tự chứa khi cài đặt?

Ghi chú:

  • Tôi giả định rằng, nếu có thể, chức năng này sẽ được tích hợp vào một ứng dụng như Titanium Backup. Titanium Backup có thể sao lưu ứng dụng + dữ liệu vào một tệp duy nhất, nhưng tệp đó không phải là APK và chỉ có thể được khôi phục bằng chính Titanium Backup - điều này không giúp ích gì cho tôi vì thiết bị đích không được root và vì vậy không thể chạy TB.
  • Các giải pháp yêu cầu sử dụng thiết bị đầu cuối trên điện thoại hoặc ADB đều ổn.

Cảm ơn.


Nếu bạn nhìn vào thư mục sao lưu của TB, bạn sẽ lưu ý rằng nó lưu trữ .apkđơn giản (vì vậy ít nhất bạn có thể lấy nó). Tôi cần xem xét các tập tin dữ liệu; AFAIR đây là thuộc tính được lưu trữ đơn giản, nhưng tôi không thể nhớ định dạng được sử dụng. Tuy nhiên, việc khôi phục dữ liệu trên thiết bị chưa root có lẽ rất khó đạt được vì lý do tương tự như sao lưu là: không truy cập vào các thư mục dữ liệu ...
Izzy

@Izzy TB có hai phương thức sao lưu. Tệp thông thường của nó lưu trữ ba tệp trong thư mục sao lưu - một tar.gz chứa APK, tar.gz chứa nội dung của / data / data / [app] / và tệp .properations chứa những gì tôi giả sử là hàm băm của Tập tài liệu. Tùy chọn khác (trong "Gửi bản sao lưu này" -> "nhập dễ dàng" ghi một tệp .TiBkp mà tôi tin rằng có chứa ba thông thường. Dù sao, như bạn đã nói, cần phải truy cập root để khôi phục dữ liệu về / dữ liệu / dữ liệu / [ứng dụng] / trên thiết bị đích.
Ian Renton

Yepp. Định dạng sau được thiết kế để dễ dàng chuyển sang ví dụ như một thiết bị khác (và cảm ơn tôi đã đề cập điều này với những người từ ES explorer, ứng dụng đó hiện nhận ra các tệp đó và đề nghị mở chúng bằng TB, nếu được cài đặt). Tôi đã đề cập đến định dạng của các gói dữ liệu (không nén) (XML, SQLite, SQL ...) để tìm hiểu làm thế nào người ta có thể thao túng chúng - và ngay ở giữa đã nhớ mục tiêu không được root ... , nó có thể là một ý tưởng thú vị cho một "chuyển tùy chỉnh" sang một mục tiêu gốc khác .
Izzy

Câu trả lời:


3

Bây giờ đã đọc thêm về định dạng tệp APK, tôi nghĩ bây giờ tôi có thể trả lời câu hỏi của mình một cách an toàn với "không thể".

Tệp APK không chứa cấu trúc dữ liệu được "giải nén" khi cài đặt như các gói được sử dụng, ví dụ, hầu hết các bản phân phối Linux. Thay vào đó, APK chỉ đơn giản là một tệp JAR độc lập, được sắp xếp lại có chứa mã byte, tệp kê khai và chứng chỉ của ứng dụng và không có gì khác.

Nội dung /data/data/[appname]có lẽ được tạo bởi mã ứng dụng khi nó chạy lần đầu (hoặc tại một thời điểm nào đó trong tương lai) và không có cách nào nhúng dữ liệu đó vào APK để hệ thống tự động di chuyển đến đích chính xác khi cài đặt.


Không đúng khi APK chỉ chứa mã byte, tệp kê khai và chứng chỉ. Nó cũng chứa bất kỳ tài nguyên và tài sản nào được sử dụng bởi ứng dụng, nhưng chúng vẫn nằm trong tệp APK khi ứng dụng được cài đặt: chúng không được sao chép /data/data/trừ khi ứng dụng được lập trình để tự làm điều đó.
Dan Hulme

1

Bạn vẫn có thể tải APK của một ứng dụng với các ứng dụng như ES File Explorer , AppMonster hoặc Titanium Backup . Nhưng tôi không biết liệu họ có sao lưu dữ liệu khi APK được xây dựng không.


Các ứng dụng không root khó có thể bao gồm dữ liệu. AppMonster chắc chắn không - và đối với Titanium, OP đã tuyên bố rằng nó không phù hợp với nhu cầu của anh ta. Đối với ES tôi nghi ngờ nó trích xuất dữ liệu.
Izzy

Tôi vừa thử ES, và nó dường như không bao gồm dữ liệu với bản sao lưu của nó. (Hoặc ít nhất, khi APK được sao lưu được cài đặt trên thiết bị đích chưa root của tôi, dữ liệu tôi mong đợi không có ở đó.) Theo như tôi có thể nói, bản sao lưu của ES không làm gì khác hơn là sao chép APK từ / data / ứng dụng để / sdcard / sao lưu.
Ian Renton

0

Đi vào cửa hàng play và tải xuống ML Manager để giải nén các tệp Apk vào một thư mục bạn chọn. Tôi không biết làm thế nào để bao gồm dữ liệu ứng dụng trong này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.