Ich versuche, eine Datei in ein Verzeichnis auf einem physischen Android-Gerät zu verschieben, aber ich stoße auf den folgenden Fehler.
>adb push data.db /data/data/com.me.app/databases
failed to copy 'data.db' to '/data/data/com.me.app/databases/data.db': Permission denied
Ich glaube, adb hat ausreichende Privilegien.
>adb root
adbd is already running as root
Hier sind die Berechtigungsdetails für den Pfad: /data/data/com.me.app/databases
drwxrwxrwx system system 2014-01-14 10:31 data
drwxrwxrwx system system 2015-05-23 16:06 data
drwxrwxrwx u0_a224 u0_a224 2015-05-23 15:26 com.me.app
drwxrwxrwx u0_a224 u0_a224 2015-05-23 15:30 databases
Ich bin mir nicht sicher, was ich hier tun soll. Vielleicht gehe ich das falsch an, aber ich möchte nur die Datei data.db in das Verzeichnis /data/data/com.me.app/databases auf dem Gerät verschieben.
Weiß jemand was ich falsch mache oder was ich beachten sollte? Vielen Dank.
Bearbeiten: Ich habe eine Problemumgehung gefunden: AirDroid erlaubt mir, die Datei hochzuladen, aber die Berechtigungen für die Datei sind so eingestellt:
-rw-------
Das Ausführen der folgenden Befehle löst dieses Problem (über die Windows 7-Eingabeaufforderung).
>adb shell
# su
# chmod 777 /data/data/com.me.app/databases/data.db
Ich hatte eine Variation dieses Problems, also werde ich es hier lassen, falls jemand anderes danach googelt:
./adb push update.zip /sdcard
[ 0%] C:/Users/Alex/AppData/Local/Programs/Git/sdcard
adb: error: failed to copy 'update.zip' to 'C:/Users/Alex/AppData/Local/Programs/Git/sdcard':
remote secure_mkdirs failed: No such file or directory
update.zip: 0 files pushed. 41.6 MB/s (131072 bytes in 0.003s)
In meinem Fall wurde das Problem jedoch adb
von Git Bash Shell (MinGW64) ausgeführt. Das Ausführen über die normale Windows-Shell funktionierte einwandfrei.
Der übliche Ansatz, der keine zusätzlichen Apps erfordert:
Drücken Sie auf /data/tmp/
;
Kopieren Sie auf dem Gerät mit adb shell
, verwenden cp
Sie ob es auf Ihrem Gerät verfügbar ist oder cat
nicht.
> adb push data.db /data/tmp/data.db
> adb shell
# su # or run-as com.me.app
# cp /data/tmp/data.db /data/data/com.me.app/databases/data.db
Denken Sie daran com.me.app
, zum richtigen Paketnamen für Ihre App zu wechseln.
/sdcard/
und dann adb shell
ohne Root-Berechtigungen verwendet, um diese Datei in den richtigen Paketordner für diese Datei zu kopieren (in /sdcard/Android/obb/packagename/
dem packagename
geändert werden muss, damit sie mit dem Ihrer Android-App übereinstimmt.adb shell mkdir /data/tmp/ ; adb shell chmod 777 /data/tmp/ ; adb push file /data/tmp/
Chromozonex