включить редактирование

Android shell

Создан:

Если Вы знакомы с Linux, то прекрасно понимаете насколько эффективна консоль для решения задач самого разного спектра. С помощью консоли получаем контроль над системой итд. Так, вооружившись консолью и правами root, мы сможем очистить смартфон от ненужных приложений, изменить анимацию загрузки, установить новые шрифты, сделать приложения системными, найти приложения, которые грузят ось, перенести приложения на карту памяти и сделать многое другое.
Конечно лучше вбивать команды с компа, чем вводить на экране смартфона.
Тем не менее все то же самое можно сделать, установив Android Terminal на смартфон и воспользовавшись USB-или Bluetooth-клавиатурой.

ADB (Android Debug Bridge)

И так, для того чтобы получить доступ к консоли Android с компа, Google придумал замечательный инструмент ADB, предназначенный для выполнения разного рода сервисных задач, а также для отладки приложений и операционной системы. ADB состоит из двух компонент: сервера, работающего на смартфоне, и клиента, который запускается на компе, предварительно подключив смартфон с помощью USB-кабеля.
Сам клиент ADB — это небольшая консольная утилита, которая поставляется в комплекте с Android SDK. Её можно найти в каталоге platform-tools внутри корневого каталога SDK. Например, C://Android SDK/platform-tools/adb в Windows или /home/user/android-sdk-linux/platfrom-tools/adb в Linux.
Запускаем ADB из командной строки DOS в Windows или эмулятора терминала в Linux. Все управление естественно через команды:

$ adb devices список доступных для управления устройств с помощью ADB. Подключаем смартфон/ планшет через USB-кабель, включаем режим отладки в Android: «Настройки —» Для разработчиков» и включаем опцию «Отладка по USB».
Получаем доступ к консоли:

$ adb shell
$ adb shell pm list packages список установленных пакетов с помощью pm

Кратко рассмотрим наиболее интересные функции ADB:
возможность установки/удаления приложений прямо с компа и копирование файлов туда-обратно:

$ adb install /путь до приложения.apk

для загрузки фотографий с карты памяти такую:

$ adb pull /sdcard/DCIM/Camera

Чтобы положить файл на карту памяти, достаточно сделать
так:

$ adb /каталог/фильм.avi /sdcard/Video

Более того, совместив возможности ADB со знанием Linux-систем, можно делать и вовсе неожиданные вещи. Например, снять скриншот:

$ adb pull /dev/graphics/fb0

Правда, файл fb0 еще придется преобразовать в нормальное изображение с помощью ffmpeg (Linux):

$ ffmpeg -vframes 1 -f rawvideo -pix_fmt rgb32 -s 720x1280 -i fb0 fb0.png

Итак, команда adb shell открывает консоль Android. Это вполне стандартная Linux-консоль, но с не полным набором команд. Теперь для нас доступны все стандартные unix-команды. Например, копировать, перемещать и удалять файлы с помощью команд ср, mv и rm. Ходить по каталогам с помощью cd. Узнать версию ядра Linux, используя uname:

$ uname -а

Узнать, сколько прошло времени с последней перезагрузки:

$ uptime

Команда top как обычно покажет много интересного, в том числе, какое приложение грузит ось , df – отобразит кол-во свободного пространства на внутренней памяти и SD-карте. Доступны также стандартные Linux-инструменты для работы с сетевыми интерфейсами, такие как ifconfig, netcfg, netstat и iftop (показывающий используемые интерфейсы и количество прошедшего по ним трафика). Удаленные серверы можно попинговать с помощью стандартного ping, убить приложение — с помощью kill (предварительно посмотрев список запущенных процессов, используя команду ps). Отмечаю особенно полезность команд nice и renice, которые позволяют назначить низ¬кий приоритет исполнения для особо прожорливых приложе¬ний. Установим, например, для телефона низкий приоритет исполнения:

$ ps | grep phone
radio 726 129 539044 40908 ffffffff 401d7830 S com.android.phone
$ renice 5 726

Полный список доступных команд достаточно обширен, его можно увидеть так:

$ Is /system/bin /system/xbin

Кроме стандартных Linux-команд, о которых можно узнать из любого справочника, в Android есть несколько своих специализированных инструментов. Но, чтобы использовать их, придется получить на смартфоне права root и, что немаловажно, перед запуском консоли заставить сервер ADB перезапуститься с правами root с помощью такой команды:

$ adb root

Команды pm и am

Две наиболее важных и полезных Android-команды — это pm (package manager) и am (activity manager). Предназначены они для управления установленными пакетами и активностями запущенными приложениями.
pm — это полноценный консольный менеджер пакетов по типу линуксовых rpm или deb. Он имеет простой синтаксис и с его помощью можно сделать следующее:

$ pm list packages

Указав флаг -s, мы увидим только системные приложения, а -3 вывод сторонних:

$ pm list packages -3

Смотрим пути установки пакетов:

$ pm list packages –f

Смотрим список разрешений всех приложений: $ pm list permissions
Список поддерживаемых смартфоном функций (GPS, Wi-Fi и прочие):

$ pm list features

Управлять пользователями (пока бессмысленно из-за неполной реализации функционала в текущих версиях Android):

$pm list users
$pm create-user name_user
$pm remove-user name_user

6. Устанавливать и удалять приложения, а также очищать их данные:

$ pm install /sdcard/porno.apk
$ pm uninstall com.drweb
$ pm clear com.drweb

Несколько команд для демонстрации, того, что обычный shell без проблем позволяет сделать то, что мы привыкли делать в unix:
Установить все приложения из каталога /sdcard/apk, да так, чтобы они были установлены на карту памяти:

$ for р in /sdcard/apk/*; do pm install -s $p; done

Или, может быть, удалить все приложения сразу:

$ for р in `pm list packages -s`; do pm uninstall $p; done

Сделаем бэкап всех приложений на карту памяти:

$ FILES=`pm list packages -f | cut -d ':' -f 2 | cut -d '=' -f 1`
$ for f in $FILES; do cp $f /sdcard/backup; done

В случае использования команды cut понадобится BusyBox, который можно установить из маркета.
Любую из этих операций можно автоматизировать, поместив нужные строки в текстовый файл, а затем вызывать его одной простой командой:

$ sh /sdcard/backup

Теперь о команде am.
am-это инструмент для запуска и остановки приложений. Однако настоящая его мощь в том, что он позволяет слать приложениям различные системные сообщения. А так как Android опирается на сообщения практически во всей своей работе, am превращается в единый инструмент управления ОС. Основные функции am:
1. Запускать приложения. В этом случае надо знать как имя приложения, так и имя окна приложения, которую мы желаем активировать. Запускаем настройки и браузер:

$ am start -n com.android.settings/.Settings
$ am start -n com.android.browser/. BrowserActivity

А вот еще интересный пример. Запуск номеронабирателя с указанным номером (останется только нажать кнопку «звонок»):

$ am start tel:012-345-6789

2. Завершать приложения. В этот раз понадобится только полное имя пакета (которое можно получить с помощью pm):

$ am kill com.drweb

Чтобы убить все приложения, можно использовать такую команду (вот он, простейший таск-киллер):

$ am kill-all

3.Посылать широковещательные сообщения, которые будут приняты всеми приложениями:

$ am broadcast -a android, intent .act ion. ACTI0N_P0WER_C0NNECTED

4.Изменять DPI. Очень интересная функция, которая позволяет общесистемно изменить масштаб элементов экрана и текста. Например, если стандартный DPI смартфона составляет 320, следующая команда сделает текст и элементы более крупными:

$ am display-density 400

А такая — наоборот:

$ am display-density 240

Вернуть все обратно можно так:

$ am display-density reset

5. Переключаться между пользователями. Команда pm позволяет создать нового пользователя, а для переключения на него можно использовать am:

$ am switch-user 1

Здесь 1 — ID пользователя, который выводится на экран при его создании.
Давайте обманем приложения, заставив думать, что событие действительно произошло и приложение вызвала система, хотя это не так. В качестве примеров можно привести следующие:
1. Была нажата хардварная кнопка «Камера» (приводит к запуску камеры):

$ am broadcast -a android, intent .action.CAMERA BUTTON

2. Смартфон переведен в режим полета (и он действительно будет в него переведен):

$ am broadcast -a android, intent .action. AIRPLANE MODE --ez state true

3. Была подключена карта памяти (приводит к запуску сканера медиа):

$ am broadcast -a android.intent.action.MEDIA MOUNTED -d file:///sdcard

Из других интересных применений am можно назвать принудительный перезапуск домашнего экрана:

$ am start -a android.intent.action.MAIN -с android.intent.category.HOME

И открытие указанной ссылки в браузере:

$ am start -a android.intent.action.VIEW * -n com.android.browser/.BrowserActivity
'http://info-linux.ru’

Разумеется, все эти возможности можно использовать в скриптах. А сами скрипты можно автоматически запускать с помощью Tasker.
Бэкап приложений на жесткий диск с помощью ADB

$ adb pull /data/арр

Рассмотрим еще одну небольшую утилиту –svc. В Android она позволяет управлять состоянием различных интерфейсов и питанием системы. С помощью svc можно сделать следующее: 1. Включить/выключить Wi-Fi:

$ svc wifi enable
$ svc wifi disable

2. Включить/выключить передачу данных по мобильным сетям: $ svc data enable

$ svc data disable

3.Включить/выключить отладку no USB (ADB):

$ svc usb setFunction adb

4.Заставить смартфон оставаться включенным при подключении к USB-nopтy/зарядке/Wi-Fi-сети или всегда:

$ svc power stayon usb
$ svc power stayon ac
$ svc power stayon wireless
$ svc power stayon true

продолжение следует полезные команды для Android

Автор: xvzL Просмотров: 28359


Рейтинг статьи: 724

Общий рейтинг по отношению ко всем статьям автора :
{10 [724]}[max] [ * * * * * * * * * * ]

Общий рейтинг из всех статей на сайте :
{8 [888]} [ * * * * * * * * * * ]

[?]
Комментарии 12

cyberxndr

Отличная статья. Весьма удобно. Вместе с удаленным доступом получается полностью управлять устройством издалека.

24
Статистика комментария: Голосов: 15 Пользователей +/-: 1/0 Гостей +/-: 14/0

user

Интересный подход, беру на заметку.

4
Статистика комментария: Голосов: 4 Пользователей +/-: 0/0 Гостей +/-: 4/0

xvzL

спасиб за комменты )) рад стараться

3
Статистика комментария: Голосов: 3 Пользователей +/-: 0/0 Гостей +/-: 3/0

atlant

Cool article !!!

Thank you :)

 

4
Статистика комментария: Голосов: 4 Пользователей +/-: 0/0 Гостей +/-: 4/0

xvzL

>atlant thank you for your message. Welcome to the site :)

0
Статистика комментария: Голосов: 0 Пользователей +/-: 0/0 Гостей +/-: 0/0

saro

Спасибо за полезную статью )
а не подскажете, возможно ли консольно устанавливать приложения из google play? предварительно(тоже консольно) логинясь к аккаунту гугла или как решить такую задачу?

0
Статистика комментария: Голосов: 0 Пользователей +/-: 0/0 Гостей +/-: 0/0

vj0R

консольно устанавливать приложения из google play
пока никак unhappy

0
Статистика комментария: Голосов: 0 Пользователей +/-: 0/0 Гостей +/-: 0/0

saro

пока никак 
вы уверены? на эмуляторы же ставятся приложения из маркета, значит они отправляют какие-то запросы на установку в гугл плэй

0
Статистика комментария: Голосов: 0 Пользователей +/-: 0/0 Гостей +/-: 0/0

vj0R

они отправляют какие-то запросы

Да отправляют, но консольного решения нет (по крайней мере, я пока не встречал), так как в графафической оболочке при установке используются как минимум токены итд, если у Вас появится информация, буду рад с ней ознакомиться

13
Статистика комментария: Голосов: 13 Пользователей +/-: 0/0 Гостей +/-: 13/0

saro

vj0R - как с вами связаться? и ТС - лочена регистрация

0
Статистика комментария: Голосов: 0 Пользователей +/-: 0/0 Гостей +/-: 0/0

vj0R

vj0R - как с вами связаться? и ТС - лочена регистрация
сам жду, хочу зарегаться, надеюсь здесь и свяжемся  wink

0
Статистика комментария: Голосов: 2 Пользователей +/-: 0/0 Гостей +/-: 1/1

maxim

Устанавливаете LBStrail из аккаунта гугл, а далее уже программа позволяет удаленно выполнять любые shell команды, и дергать любые интенты..

1
Статистика комментария: Голосов: 1 Пользователей +/-: 0/0 Гостей +/-: 1/0

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


Ctrl+Enter

Для активации кнопки, введите символы, которые Вы видите на картинки.

новая

тема

Заметки на тему IT

Монитор поиска
[x]
Новое сообщение

Сообщения в чате

Вы спрашиваете у гостей/у зарегистрированных/ У Вас спрашивают
всем Ctrl+Enter
зарегистрированным Ctrl+Enter
Ctrl+Enter

Краткая инструкция по работе с чатом

  • Вы должны ввести имя, которое будет запомнено и применяться для чата и комментариев на сайте.
  • Выбрать одну из возможностей
    "Вы спрашиваете у гостей/
    у зарегистрированных/
    У Вас спрашивают"
  • Кликните на один из способов и появиться дополнительная информация