Kann ich eine APK aus einer installierten App und ihren Daten erstellen?

8

Ich möchte eine installierte App, einschließlich ihrer Daten, von einem gerooteten Android-Gerät nehmen und daraus eine APK erstellen, die für die Installation auf einem nicht gerooteten Android-Gerät geeignet ist.

Ist das möglich?

Bearbeiten: Bestehende Antworten / Kommentare scheinen die Idee zu bekräftigen, dass vorhandene Apps das Einbetten der Daten einer App in eine APK nicht unterstützen. Vielleicht ist die grundsätzlichere Frage ist, kann eine APK - Dateien einbetten bestimmt für /data/data/[appname], oder sind sie beschränkt sich geschlossene zu sein , wenn installiert?

Anmerkungen:

  • Ich ging davon aus, dass diese Funktionalität, wenn es möglich wäre, in eine App wie Titanium Backup integriert werden würde. Titanium Backup kann App + -Daten in einer einzelnen Datei sichern, aber diese Datei ist kein APK und kann nur von Titanium Backup selbst wiederhergestellt werden - was für mich keine Hilfe ist, da das Zielgerät nicht gerootet ist und daher TB nicht ausführen kann.
  • Lösungen, die die Verwendung des Terminals am Telefon oder ADB erfordern, sind in Ordnung.

Vielen Dank.

Ian Renton
quelle
Wenn Sie in den Sicherungsordner von TB schauen, werden .apkSie feststellen, dass dort die Ebene gespeichert ist (zumindest können Sie das übernehmen). Ich muss in die Datendateien schauen; AFAIR waren dies einfach gespeicherte Eigenschaften, aber ich kann mich nicht an das verwendete Format erinnern. Das Wiederherstellen von Daten auf einem nicht gerooteten Gerät ist jedoch wahrscheinlich aus demselben Grund wie das Sichern sehr schwierig: Kein Zugriff auf die Datenordner ...
Izzy
@Izzy TB verfügt über zwei Sicherungsmethoden. Die normale Datei speichert drei Dateien im Sicherungsverzeichnis - ein tar.gz mit der APK, ein tar.gz mit dem Inhalt von / data / data / [app] / und eine .properties-Datei mit dem, was ich für einen Hash halte die Dateien. Die andere Option (unter "Dieses Backup senden" -> "Einfacher Import") schreibt eine einzelne .TiBkp-Datei, von der ich glaube, dass sie die normalen drei enthält. In beiden Fällen ist, wie Sie sagten, Root-Zugriff erforderlich, um die Daten in / data / data wiederherzustellen / [App] / auf dem Zielgerät.
Ian Renton
Yepp. Das letztere Format ist für die einfache Übertragung auf ein anderes Gerät vorgesehen (und ich danke Ihnen, dass Sie dies den Mitarbeitern des ES-Datei-Explorers gegenüber erwähnt haben. Diese App erkennt diese Dateien jetzt und bietet an, sie bei Installation von TB öffnen zu lassen). Ich bezog mich eher auf das Format der (unkomprimierten) Datenpakete (XML, SQLite, SQL ...), um herauszufinden, wie man diese manipulieren kann - und erinnerte mich genau in der Mitte daran, dass das Ziel nicht verwurzelt war ... Trotzdem könnte es eine interessante Idee für eine "angepasste Übertragung" auf ein anderes verwurzeltes Ziel sein.
Izzy

Antworten:

3

Nachdem ich jetzt mehr über das APK-Dateiformat gelesen habe, denke ich, dass ich meine eigene Frage jetzt sicher mit "es ist unmöglich" beantworten kann.

Eine APK-Datei enthält keine Datenstruktur, die bei der Installation "entpackt" wird, wie die Pakete, die beispielsweise von den meisten Linux-Distributionen verwendet werden. Stattdessen ist eine APK einfach eine in sich geschlossene, neu geladene JAR-Datei, die den Bytecode, das Manifest und das Zertifikat der Anwendung und nichts anderes enthält.

Der Inhalt von /data/data/[appname]wird vermutlich vom Anwendungscode beim ersten Ausführen (oder zu einem späteren Zeitpunkt) erstellt, und es gibt keine Möglichkeit, solche Daten in eine APK einzubetten, sodass das System sie bei der Installation automatisch an das richtige Ziel verschiebt.

Ian Renton
quelle
Es ist nicht wahr, dass eine APK nur den Bytecode, das Manifest und das Zertifikat enthält. Es enthält auch alle Ressourcen und Assets, die von der App verwendet werden. Sie verbleiben jedoch bei der Installation der App in der APK-Datei: Sie werden nicht kopiert, es /data/data/sei denn, die App ist dafür programmiert.
Dan Hulme
1

Sie können weiterhin die APK einer App mit Anwendungen wie ES File Explorer , AppMonster oder Titanium Backup erhalten . Aber ich weiß nicht, ob sie Daten sichern, wenn die APK erstellt wird.

Luft-Dex
quelle
Nicht-Root-Apps können kaum Daten enthalten. AppMonster sicher nicht - und was Titan betrifft, so hat das OP bereits angegeben, dass es nicht seinen Anforderungen entspricht. Für ES bezweifle ich, dass es Daten extrahiert.
Izzy
Ich habe gerade ES ausprobiert und es scheint auch keine Daten in die Sicherung aufzunehmen. (Oder zumindest, wenn das gesicherte APK auf meinem nicht gerooteten Zielgerät installiert ist, sind die erwarteten Daten nicht vorhanden.) Soweit ich das beurteilen kann, kopiert die ES-Sicherung lediglich ein APK von / data / Apps auf / sdcard / Backups.
Ian Renton
0

Gehen Sie in den Play Store und laden Sie ML Manager herunter, um die Apk-Dateien in einen Ordner Ihrer Wahl zu extrahieren. Ich weiß nicht, wie ich die App-Daten in diese aufnehmen soll.

gkeeg
quelle