# sqlite3 /data/data/com.moodme.Android/databases/moodme
sqlite3 /data/data/com.moodme.Android/databases/moodme
sqlite3: not found
Sur l'émulateur Android, sqlite3
est dans /system/xbin
. Il n'y a pas /system/xbin
sur un Nexus One (Android 2.2). Par conséquent, je soupçonne que sqlite3
n’est pas installé sur le Nexus One.
En guise d'alternative (cela peut ne pas être sûr ou même une bonne idée), vous pouvez toujours télécharger le binaire sqlite3
dans /system/bin
ceci a fonctionné pour moi:
Commençons par monter /system/
pour permettre la lecture/écriture (rw)
$ adb Shell
$ su
# mount -o remount,rw /system
dans un autre terminal, changez le répertoire (cd) vers sqlite3
et laissez Push it
$ ls
sqlite3
$ adb Push sqlite3 /sdcard/
Revenons maintenant à l’autre Shell permet de copier et de modifier les autorisations du fichier binaire.
# cat /sdcard/sqlite3 > /system/bin/sqlite3
# chmod 4755 /system/bin/sqlite3
Maintenant, remontons /system/
en lecture seule (ro)
# mount -o remount,ro /system
Et maintenant, nous pouvons utiliser sqlite3 de Shell:
# sqlite3 /data/data/com.telly/databases/fun.db
SQLite version 3.7.4
Enter ".help" for instructions
sqlite> .tables
Android_metadata lulz
Remarque: J'utilise le binaire sqlite3 fourni avec "SuperOneClickv1.6.5-ShortFuse"
Vous pouvez toujours extraire sqlite3
binaire de l'émulateur:
Démarrer un émulateur puis à partir d'un terminal
$ adb pull /system/xbin/sqlite3
Si vous êtes paresseux comme moi, vous pouvez en télécharger un ici même pour ICS = ou avant ou pour Jelly Bean et plus tard ici
Assurez-vous d’utiliser la version adaptée à votre version Android, car vous risquez d’obtenir eloc_library[1306]: 14446 cannot locate 'sqlite3_enable_load_extension'...
ou des erreurs similaires lors de l’exécution.
D'après la réponse d'evelio, j'ai eu un problème pour envoyer le fichier sqlite3 à/system/bin. Donc, au lieu de cela, je l'ai poussé sur la/sdcard.
Dans ce fil, j'ai trouvé la bonne solution (réponse de Kila): Comment puis-je installer sqlite3 sur un NexusOne rooté exécute Gingerbread
$ 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
Cela fonctionne sur mon Samsung Galaxy S II avec 2.3.3.
Pour installer sqlite3 sur des périphériques NON-ROOTES, voici une méthode qui a fait ses preuves sur mon Galaxy S3, FYR.
$ 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>
Sur le Nexus 4, procédez comme suit:
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
Notez que le dossier est/system/xbin et que le chmod est 777
Quelques informations supplémentaires pouvant aider quelqu'un sur ce problème
Pour les personnes qui se demandent où trouver un fichier binaire sqilte3 qui fonctionne à copier:
Vous pouvez utiliser l'émulateur pour obtenir un binaire fonctionnel. Vous devez au préalable vérifier si votre construction est basée sur _86, _64 ou ARM et répliquer cette image, sinon vous risquez d'obtenir une version incompatible qui provoquera une erreur.
Vérifier quelle version est votre appareil Android
https://www.quora.com/How-can-I-check-whether-my-Android-phone-is-32-bit-or-64-bit
Construction ARM dans le studio Android
Android Studio - Comment créer un DAV avec ARM au lieu de HAXM?
Ensuite, utilisez les notes ci-dessous pour déplacer des fichiers de votre ordinateur vers l’appareil Android.
Rendre inscriptible en écriture
Erreur sdcard Push de l'émulateur Android: système de fichiers en lecture seule
Copie de fichiers d'adb sur un ordinateur local
Comment copier des fichiers sélectionnés sous Android avec adb pull
Sur un lien de périphérique enraciné 4, ces liens avec les instructions de cette page fonctionnaient. J'espère que ça aide quelqu'un. La clé est que vous devez monter pour obtenir une autorisation d'écriture sur le périphérique via adb.