Anwendungsdaten auf Android lesen/schreiben

Ich möchte Daten einer bestimmten Anwendung einsehen und idealerweise die Daten ändern und wieder hochladen. Ich weiß, dass die Anwendungsdatendateien implizit geschützt sind, um zu verhindern, dass böswillige Anwendungen Passwörter/Konten und andere Informationen stehlen.

Gibt es jedoch keine API zum Sichern der Daten und zum Zurückladen der Sicherung? Ich würde das ziemlich praktisch finden, bevor ich auch nicht rückgängig zu machende Änderungen in Anwendungen vornehme.

Kann ich den Eintrag irgendwie lesen/schreiben, ohne das Telefon zu rooten?

Dafür gibt es adb backup/ . adb restoreDas Problem wäre immer noch, wie man Daten in den Sicherungsdateien ändert.
Sind sie verschlüsselt? Oder von unbekanntem Format?
Kommt darauf an. Wenn Sie ein Passwort angeben, werden sie verschlüsselt (ansonsten nicht). Sie können in konvertiert werden .tar, aber ich weiß es nicht für die entgegengesetzte Richtung (Konvertieren einer modifizierten .tarzurück in eine .ab).

Antworten (1)

Das Lesen und Schreiben von Anwendungsdaten erfordert mindestens Systemberechtigungen (Benutzer-ID 1000 oder weniger) oder explizite Berechtigungen (Benutzer-ID der Anwendung selbst).

Einige Anwendungen teilen sich Benutzer-IDs (wie kostenlose und Pro-Versionen einer Anwendung), um dieselben Daten gemeinsam zu nutzen, aber als normaler Nicht-Systembenutzer können Sie nicht einmal die Dateien in der Partition auflisten, in der alle Anwendungsdaten gespeichert sind /data.

Der Sicherungsvorgang von Android/Google selbst erfolgt mit Systemberechtigungen als Systembenutzer (ID 1000) und funktioniert nur bei Anwendungen, die das allowBackupTag explizit auf setzen true.

Und wie wird ein solches Backup durchgeführt, wenn es erlaubt ist? Könnte es möglich sein, die Anwendungsflags zu ändern?
Die Sicherung erfolgt durch die Google Play-Dienste, bei denen es sich um eine Systemanwendung handelt. Denken Sie daran, dass nur Apps gesichert werden, die mit dem Play Store installiert wurden (Sie können Anwendungen mit dem Play Store verbinden, sodass davon ausgegangen wird, dass Sie sie mit dem Play Store installiert haben) und alle Daten mit Ausnahme des verschlüsselten Caches auf die Google-Server hochgeladen und mit verknüpft werden ihr Konto. Es ist möglich, diese Tags zu ändern, indem Sie die Anwendung (mit apktool) dekompilieren und die AndroidManifest.xmlDatei ändern. Kompilieren Sie die App neu und wenn Sie Glück haben, wird sie als Update installiert. Wenn nicht, müssen Sie es komplett neu installieren
Vielen Dank, dass Sie mir ausgiebig geholfen haben, aber jede Antwort bringt weitere Fragen mit sich. Wie kann ich eine Anwendung mit Google Play verbinden ? Wenn Sie dies googeln, erhalten Sie viele Google Play-Links, die irrelevant sind. Wie kann ich die Daten ändern, nachdem ich sie an Google-Server gesendet habe?
Sie können die gesicherten Daten nicht ändern. Wenn Sie die Daten einer Drittanbieteranwendung ändern möchten, rooten Sie einfach Ihr Gerät, sichern Sie die Daten und ändern Sie sie, um die Ergebnisse anzuzeigen. Sie können geschützte Informationen nicht einfach ändern, was zum Absturz der anderen Anwendung führen kann. Es gibt einen Grund für einen solchen Schutz.
Das Verbinden einer App mit Google Play kann mit TitaniumBackup erfolgen . Ich denke, es ändert den Wert installedBy:Ihrer Anwendung in den Paketnamen des Play Store in der packages.xmlDatei, die in /data. Dies erfordert natürlich Root-Zugriff.