sqlite3: command not found
Вот подстава. Вот так вот захочешь посмотреть свою сверх-супер-пупер базу данных на устройстве в привычном терминале, а там хоп-па и выскакивает ошибка:
@android:/ # sqlite3
sqlite3: command not found
Ну и вот что тут делать?
1. Если у вас не рутованное устройство – можно просто поискать, для начала. К примеру, этот файл может находится в /system/bin и /system/xbin. Но под простым пользователем вам ничего не покажется, а su работать не будет :) Значит надо рутить. Информацию об этом – можно найти на тематических форумах.
2. Создаём новое виртуальное устройство через программку AVD Manager.exe (вы ведь поставили android-sdk, правда ведь?). Параметре абсолютно любые. Отключаем свой телефон (которое физическое устройство) от шнурка, запускаем наше виртуальное устройство. Ждём запуска. Когда запустится, из консольки (<Win>+r, cmd, <Enter>, cd c:\PATH_TO_ANDROID_SDK\platform-tools) набираем adb pull /system/xbin/sqlite3. Теперь в текущей папке у нас появился файлик sqlite3. Выключаем виртуальное устройство, подключаем физическое.
3. Делаем adb shell. Попадаем на телефон. Выполняем su, переходим под суперпользователя. Далее:
root@android:/ # mount mount rootfs on / type rootfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) none on /acct type cgroup (rw,relatime,cpuacct) tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000) tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000) none on /dev/cpuctl type cgroup (rw,relatime,cpu) /dev/block/mmcblk0p9 on /system type ext4 (ro,relatime,barrier=1,data=ordered) /dev/block/mmcblk0p7 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered) /dev/block/mmcblk0p1 on /efs type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered) /dev/block/mmcblk0p10 on /data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc) /dev/block/mmcblk0p4 on /mnt/.lfs type j4fs (rw,relatime) /sys/kernel/debug on /sys/kernel/debug type debugfs (rw,relatime) ... |
Видим строку:
/dev/block/mmcblk0p9 on /system type ext4 (ro,relatime,barrier=1,data=ordered) |
То, что нам нужно. Выполняем:
root@android:/ # mount /dev/block/mmcblk0p9 /system -o remount,rw |
Выходим командой exit.
Попадаем в консоль Windows. Набираем
> adb push sqlite3 /system/xbin |
Заходим обратно на устройство:
# su # mount /dev/block/mmcblk0p9 /system -o remount,ro |
Всё, теперь на устройстве имеется sqlite3 :) Все базы данных хранятся в /data/data (хотя могу путать).
1 комментарий
[…] Как использовать (на root-устройстве) читать тут. […]