» » Выполняем SQL-запросы через ADB

Выполняем SQL-запросы через ADB
Выполняем SQL-запросы через ADBИногда для перевода в RUIM режим или например манипуляций с включением/выключением 3G параметров, необходимо работать с массивом баз данных. И хорошо когда это надо можно одной строчкой либо для одного телефона. Но когда количество запросов большое, либо количество телефонов зашкаливает, то удобнее всего делать это через ADB команды.
Так как в стандартной среде Андроида нет программ позволяющих общаться с базами данных через ADB команды, то прийдется обратиться к стронним приложениям. Для работы в среде Андроид есть замечательный инструмент для работы с базами данных - sqlite3
Скачать его можно отсюда - sqlite3.rar [17,61 Kb] (cкачиваний: 73)
Если кого более детально интересует работа с командами sqlite3, то на данном ресурсе очень отличная статья Стартуем с SQLite3 – Основные команды
Мы же остановимся на более узком направлении - обновлении данных, необходимых нам, в конкретной базе данных.
Пример: Поколение Motorola XT9xx выводятся из RUIM режима посредством изменения переменной subscription_mode в разделе Security с 0 на 1 в базе /data/data/com.android.providers.settings/databases/
Синтаксис скрипт на изменение будет следующим:
1. Закидываем сам sqlite3 на телефон с целью дальнейшего его запуска из среды Андроид. Просто закинуть на флэшку конечно можно, но sqlite3 не будет иметь необходимых прав доступа для работы и работать не будет. Поступаем проще, есть папка в любом телефоне на андроиде /data/local/tmp/ которая позволяет запускать приложения с необходимыми правами.
Потому копируем файл в нее
adb push sqlite3 /data/local/tmp


и даем файлу необходимые права
adb shell su -c "chmod 777 /data/local/tmp/sqlite3"


2. После этого нам нужен sql файл с запросом в базу данных.
Исправление параметра subscription_mode с 0 на 1 будет выглядеть так
update secure set value=1 where name='subscription_mode';
.exit

Создаем файл ruim_to_nv.sql, вставляем в него строчку указанную выше и также закидываем этот файл на телефон в туже директорию
adb push ruim_to_nv.sql /data/local/tmp


3. Далее нам надо автоматизировать все эти процедуры для работы с ADB строкой.
adb shell su -c "/data/local/tmp/sqlite3 /data/data/com.android.providers.settings/databases/settings.db < /data/local/tmp/ruim_to_nv.sql"


Итоговый bat-файл получается такой

adb push sqlite3 /data/local/tmp/
adb push ruim_to_nv.sql /data/local/tmp/
adb shell su -c "chmod 777 /data/local/tmp/sqlite3"
adb shell su -c "/data/local/tmp/sqlite3 /data/data/com.android.providers.settings/databases/settings.db < /data/local/tmp/ruim_to_nv.sql"


Пример: Для включения в верхнем меню значка быстрого включения/отключения "Мобильные данные" на SPH-L720 запрос в базу данных выглядит так:

UPDATE system SET value=(SELECT value || 'MobileData;' FROM system WHERE name = 'notification_panel_active_app_list') WHERE name = 'notification_panel_active_app_list';

UPDATE system SET value=(SELECT value || 'MobileData;' FROM system WHERE name = 'notification_panel_active_app_list_for_reset') WHERE name = 'notification_panel_active_app_list_for_reset';
скачать dle 10.4фильмы бесплатно

sql, sqlite3, adb, ruim, motorola xt907, droid razr m
1597 29.11.15
Информация! Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.