# sqlite3 /data/data/com.moodme.Android/databases/moodme
sqlite3 /data/data/com.moodme.Android/databases/moodme
sqlite3: not found
Im Android-Emulator befindet sich sqlite3
in /system/xbin
. Es gibt keinen /system/xbin
auf einem Nexus One (Android 2.2). Daher vermute ich, dass sqlite3
nicht auf dem Nexus One installiert ist.
Als Alternative (möglicherweise nicht sicher oder sogar eine gute Idee) können Sie die sqlite3
-Binärdatei immer in /system/bin
hochladen. Dies hat für mich funktioniert:
Zuerst lässt sich /system/
einbinden, um Lesen/Schreiben (rw) zu ermöglichen.
$ adb Shell
$ su
# mount -o remount,rw /system
wechseln Sie in einem anderen Terminal in das Verzeichnis (cd), in das sich sqlite3
befindet, und drücken Sie Push
$ ls
sqlite3
$ adb Push sqlite3 /sdcard/
Zurück zur anderen Shell können nun die Berechtigungen der Binärdatei kopiert und geändert werden
# cat /sdcard/sqlite3 > /system/bin/sqlite3
# chmod 4755 /system/bin/sqlite3
Jetzt kann /system/
als schreibgeschützt (ro) wieder eingebunden werden
# mount -o remount,ro /system
Und jetzt können wir sqlite3 von Shell verwenden:
# sqlite3 /data/data/com.telly/databases/fun.db
SQLite version 3.7.4
Enter ".help" for instructions
sqlite> .tables
Android_metadata lulz
Hinweis: Ich verwende die sqlite3-Binärdatei, die mit "SuperOneClickv1.6.5-ShortFuse" geliefert wird.
Sie können sqlite3
binary immer vom Emulator abrufen:
Starten Sie einen Emulator und dann von einem Terminal aus
$ adb pull /system/xbin/sqlite3
Wenn Sie faul sind wie ich, können Sie hier direkt für ICS oder vor oder für Jelly Bean und später hier herunterladen
Stellen Sie sicher, dass Sie die richtige Version für Ihre Android-Version verwenden, da bei der Ausführung möglicherweise eloc_library[1306]: 14446 cannot locate 'sqlite3_enable_load_extension'...
- oder ähnliche Fehler auftreten
Nach der Antwort von evelio hatte ich ein Problem, die sqlite3-Datei nach/system/bin zu verschieben. Ich habe es stattdessen auf die/sdcard geschoben.
In diesem Thread fand ich die richtige Lösung (Antwort von Kila): Wie installiere ich sqlite3 auf gerooteten NexusOne-Runs Lebkuchen
$ adb Push sqlite3 /sdcard/
$ adb Shell
$ su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# dd if=/sdcard/sqlite3 of=/system/bin/sqlite3
# chmod 4755 /system/bin/sqlite3
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
Es funktioniert auf meinem Samsung Galaxy S II mit 2.3.3.
Um sqlite3 auf NICHT-ROOTED-Geräten zu installieren, haben Sie eine bewährte Methode für mein Galaxy S3, FYR, gefunden.
$ adb -e pull /system/xbin/sqlite3 # get sqlite3 binary from emulator with the same CPU Arch.
$ adb -d Push sqlite3 /mnt/sdcard # Push it
$ adb -d Shell
$ run-as <PACKAGE_NAME> # run as your app, which should be debuggable.
$ cd databases; pwd
/data/data/<PACKAGE_NAME>/databases
$ cat /mnt/sdcard/sqlite3 > sqlite3 # copy it to internal storage directory
$ ls -l sqlite3
-rw-rw-rw- u0_a138 u0_a138 36860 2014-03-26 06:37 sqlite3
$ chmod 777 sqlite3 # change mode bits, to be executable
$ ./sqlite3 # now it works on your NON-ROOTED device
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
Gehen Sie auf dem Nexus 4 wie folgt vor:
adb Shell
$ su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# dd if=/sdcard/sqlite3 of=/system/xbin/sqlite3
# chmod 777 /system/xbin/sqlite3
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
Beachten Sie, dass der Ordner/system/xbin und der chmod 777 ist
Weitere Informationen, die jemandem bei diesem Problem helfen können
Für die Leute, die sich fragen, wo man eine funktionierende binäre sqilte3-Datei zum Kopieren bekommt:
Sie können den Emulator verwenden, um eine funktionierende Binärdatei zu erhalten. Sie müssen prüfen, ob Ihr Build auf _86, _64 oder ARM basiert und dieses Image replizieren. Andernfalls erhalten Sie möglicherweise eine inkompatible Version, die zu einem Fehler führt.
Überprüfen, welche Version Ihr Android-Gerät ist
https://www.quora.com/How-can-I-check-wheat-my-Android-phone-is-32-bit-or-64-bit
Gebäude ARM in Android Studio
Android Studio - Wie kann ich eine AVD mit ARM anstelle von HAXM erstellen?
.__ Verwenden Sie die nachstehenden Hinweise, um Dateien zwischen Ihrem Computer und dem Android-Gerät zu verschieben.
Adb schreibbar machen
Android Emulator SD-Karte Push-Fehler: Schreibgeschütztes Dateisystem
Kopieren von Dateien von adb auf lokale Gerätemaschine
Wie kopiere ich ausgewählte Dateien von Android mit adb pull
Auf einem gerooteten Endgerät 4 funktionierten diese Links mit der Anleitung auf dieser Seite. Hoffe es hilft jemandem. Der Schlüssel ist, dass Sie mounten müssen, um über adb eine Schreibberechtigung im Gerät zu erhalten.