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 комментарий

  1. 12 Ноя 2012

    […] Как использовать (на root-устройстве) читать тут. […]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *