В качестве альтернативы (хотя это может быть небезопасно или даже не очень хорошая идея), вы всегда можете загрузить двоичный файл sqlite3
в /system/bin
, это сработало для меня:
Сначала давайте смонтируем /system/
, чтобы разрешить чтение / запись (rw)
$ adb shell
$ su
# mount -o remount,rw /system
в другом каталоге смены терминала (cd), где находится sqlite3
, и давайте нажмем на него
$ ls
sqlite3
$ adb push sqlite3 /sdcard/
Теперь вернемся к другой оболочке, позволяющей копировать и изменять разрешения двоичного файла
# cat /sdcard/sqlite3 > /system/bin/sqlite3
# chmod 4755 /system/bin/sqlite3
Теперь давайте смонтируем обратно /system/
только для чтения (ro)
# mount -o remount,ro /system
И теперь мы можем использовать sqlite3 из оболочки:
# sqlite3 /data/data/com.telly/databases/fun.db
SQLite version 3.7.4
Enter ".help" for instructions
sqlite> .tables
android_metadata lulz
Примечание : Я использую двоичный файл sqlite3, который поставляется с "SuperOneClickv1.6.5-ShortFuse"
Вы всегда можете извлечь sqlite3
двоичный файл из эмулятора:
Запустите эмулятор, а затем из терминала
$ adb pull /system/xbin/sqlite3
Если вы ленивый как я, вы можете скачать один прямо здесь для ICS или до или для Jelly Bean и позже здесь
Убедитесь, что вы используете правильный вариант для вашей версии Android, так как вы можете получить eloc_library[1306]: 14446 cannot locate 'sqlite3_enable_load_extension'...
или похожие ошибки при выполнении