Как сделать приложение системным через adb
Опытные пользователи Android знают, что для того чтобы сменить прошивку смартфона, установить на него кастомное рекавери, удалить устаовленные производителем приложения и пр., вам прежде всего понадобится ПК или другое Android устройство с программами ADB и Fastboot.
На Windows устройвах вам нужно будет также установить драйвер для ADB.
Те, кто не имеет компьютера, ноутбука или Windows планшета может воспользоваться Android устройством. Как это сделать описано в этой статье: ADB и Fastboot без компьютера, с помощью Android смартфона или планшета [Инструкция].
Чтобы произвести сопряжение вашего Android устройства с программами ADB и Fastboot вам нужно будет сделать следующее:
1. Включить в меню настроек вашего смартфона или планшета режим отладки через USB. Как его найти и включить описано в этом материале
3. В открывшемся окне командной строки выполните команду:
Существует множество инструментов для работы с подключенным с помощью USB-кабеля или Wi-Fi смартфоном. Особо развитые инструменты позволяют перемещать файлы, устанавливать и удалять софт, просматривать контакты, делать скриншоты экрана и даже отправлять СМС, однако ни один графический инструмент не сравнится с мощью, которую может дать консоль Android. В этой статье мы поговорим об ADB (Android Debug Bridge) — стандартном инструменте для отладки и работы с консолью Android с компа.
ОСНОВЫ РАБОТЫ С ADB
Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB.
Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:
Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления Система
Проверим наше подключение к телефону с помощью следующей команды (она должна вывести список подключенных устройств):
С ADB можно работать через Wi-Fi. Для этого нужны права root и приложение WiFi ADB. Запускаем приложение, жмем переключатель и подсоединяемся к смартфону с помощью команды connect и показанного приложением IP-адреса:
Далее работа с ADB ничем не отличается.
1. Установка программ
ADB можно использовать для установки приложений без необходимости копировать их на смартфон. Достаточно выполнить такую команду:
В команду также можно добавить дополнительные ключи. Полезными будут -е — переустановить приложение с сохранением данных и -d — установить версию меньше текущей.
Программы можно и удалять, но для этого нужно знать название пакета (как узнать, расскажу чуть позже). На примере игры Angry Birds Seasons команда будет выглядеть так:
2. БЭКАП ПРИЛОЖЕНИЙ
В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:
-f указывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл backup.ab в текущем каталоге;
-apk|-noapk указывает, включать ли в бэкап только данные приложения или сам .apk тоже (по умолчанию не включает);
-obb|-noobb указывает, включать ли в бэкап расширения .obb для приложений (по умолчанию не включает);
-shared|-noshared указывает, включать ли в бэкап содержимое приложения на SD-карте (по умолчанию не включает);
-all указывает на необходимость бэкапа всех установленных приложений; -system|-nosystem указывает, включать ли в бэкап системные приложения (по умолчанию включает);
— перечень пакетов для бэкапа.
Если мы хотим создать бэкап всех несистемных прог, включая сами .apk, в определенное место, то команда будет выглядеть так:
После ввода необходимо подтвердить начало выполнения бэкапа на самом устройстве. Для восстановления полученного бэкапа нужно выполнить соответствующую команду:
3. КОНСОЛЬ В КОНСОЛИ
Наряду с упомянутой консолью, которая является DOS-консолью под Windows, в Android существует и своя. Она вызывается через adb shell и представляет собой по сути стандартную Linux-консоль, но с неполным набором команд, расширить который можно, установив из маркета BusyBox. Использовать эту консоль можно двумя способами. В интерактивном режиме она запускается командой
В консоли появляется знак $ (далее по тексту этот знак будет означать необходимость ввода предварительной команды adb shell), и после этого можно вводить серию команд, получая после каждой отклик. Второй способ — если необходимо ввести только одну команду, можно писать ее подряд за adb shell.
В шелле работают стандартные команды для копирования, перемещения и удаления файлов: cp, mv и rm. Можно менять каталоги (cd) и смотреть их содержимое (ls). Кроме стандартных Linux-команд, о которых можно узнать из любого справочника, в Android есть несколько своих специализированных инструментов, но, чтобы использовать некоторые из них, придется получить на смартфоне права root, а после запуска консоли выполнять команду su:
Пример работы команды ls для вывода информации о разделах
Вывод свободного пространства на устройстве командой adb shell df
4. СОЗДАНИЕ СКРИНШОТА
Выполняется одной строчкой:
После этого картинку нужно выдернуть из устройства ко- мандой adb pull:
В recovery скриншот можно сделать следующей командой:
Затем необходимо преобразовать файл fb0 в нормальное изображение с помощью FFmpeg, который нужно скачать и положить в папку с adb. Расширение необходимо ставить своего устройства:
5. ЗАПИСЬ ВИДЕО, ПРОИСХОДЯЩЕГО НА ЭКРАНЕ УСТРОЙСТВА
Данная команда начнет записывать видео с разрешением 1280 x 720 (если не указать, то будет использовано нативное разрешение экрана устройства), с битрейтом 6 Мбит/с, длиной 20 с (если не указать, то будет выставлено мак- симальное значение 180 с), с показом логов в консоли. Записанное видео будет находиться в /sdcard (файл video.mp4).
6. УПРАВЛЕНИЕ ПРИЛОЖЕНИЯМИ
Для управления приложениями используются две команды: pm (package manager) — менеджер пакетов и am (activity manager) — менеджер активностей. У данных команд есть немало ключей, которые можно посмотреть на портале разработчиков. Остановимся на некоторых.
Для начала получим список установленных на устройстве приложений в виде названий пакетов, которые пригодятся позже:
Добавив в конец -s, ты увидишь только системные приложения, -3 — только сторонние, -f покажет пути установки пакетов, а -d — отключенные приложе- ния. Далее, зная названия пакетов, можно совершать над ними различные насильственные действия :). Например, отключить ненужный календарь:
Ну а совсем удалить можно так:
Для использования activity manager понадобятся более глубокие знания структуры Android и понимание того, что такое Avtivity и Intent. Это позволит тебе запускать различные приложения, например браузер или настройки:
Завершить работу приложения можно противоположной командой:
Ну а убить все запущенные приложения — такой командой:
Тот же activity manager поможет сделать звонок на нужный номер телефона:
А так можно открыть страницу в браузере:
Запуск браузера из консоли
В данной команде input keyevent эмулирует нажатие кнопок и может исполь- зоваться как для хардварных, так и для кнопок внутри приложения. В нашем примере 22 соответствует перевод фокуса вправо (джойстик вправо — dpad right), а 66 — Enter.
С помощью команды input можно, например, разблокировать телефон. Для этого необходимо ввести:
Но данная команда не сработает на последних версиях Android. Для управле- ния питанием и беспроводными коммуникациями там используется утилита svc. Например, включить передачу данных через мобильную сеть или управлять Wi-Fi можно через команды
Также можно заставить смартфон оставаться включенным при подключении к USB-порту/зарядке/Wi-Fi-сети или всегда:
Возвращаясь к команде input, стоит выделить еще одну команду для вставки текста в текущее поле. Кому-то это может показаться более привлекательным способом набора текста с компа, чем нажимать на кнопки небольшой области экрана. Выглядит команда так:
Кроме опции text, у команды input есть и другие. Полная форма команды такова:
В качестве источника можно указывать trackball, joystick, touchnavigation, mouse, keyboard, gamepad, touchpad, dpad, stylus, touchscreen. В качестве команд будут:
- text (Default: touchscreen) [delay]
- keyevent –longpress ( … (Default: keyboard)
- tap (Default: touchscreen)
- swipe duration(ms) ( (Default: touchscreen)
- press (Default: trackball)
- roll (Default: trackball)
Как видно из команд, можно, хотя и с трудом, управлять устройством через ко- манды input touch и input swipe при разбитом экране, если не поддерживается работа мышки через USB-OTG. Например, вытянуть шторку с уведомлениями получится так (отсчет координат идет от левого верхнего угла):
А так можно узнать разрешение экрана:
7. СИСТЕМНЫЕ УТИЛИТЫ
Кратко остановлюсь на нескольких полезных командах (работоспособность некоторых, однако, может зависеть от версии прошивки и модели телефона). Изменение DPI. Не требует root и работает на Android 5.0+. Стандартное значение для Nexus 5 — 480. При значении 420 на рабочем столе стокового лаунчера помещается пять иконок в ряд вместо четырех:
Подключение /system в режиме записи. Для части команд, которые меняют системные файлы, необходимо сначала перемонтировать раздел /system на запись. Это необходимо в том числе при удалении системных приложений. Перемонтирование выполняется следующей командой:
Мягкая перезагрузка:
$ setprop ctl.restart zygote
Перевод смартфона в режим энергосбережения Doze (Android M+): $ dumpsys battery unplug
…повторяем действия, пока не увидим idle. Батарейка в процентах (Android 4.4+):
8. СНЯТИЕ ЛОГОВ
После этого можно запускать проблемное приложение и смотреть, что именно вызывает ошибку. Также поддерживается вывод информации из альтернативных буферов. Этим способом можно посмотреть, что приложения делают в фоне и, например, какие события происходят после включения экрана:
Вывод команды adb logcat -b events
9. Продвинутый уровень
В одной из своих статей я показывал, как можно доставать информацию из баз данных различных приложений. Ну а теперь посмотрим, как проделать это прямо из консоли, не качая базы на комп и не устанавливая на устройство просмотрщики баз. Для этого используется команда sqlite3. Выведем на экран историю браузера Chrome:
Чтобы база читалась, необходимо выгрузить браузер из работающих приложений. Прервать выполнение скрипта sqlite можно, нажав Ctrl + Z, а выйти — командой .quit. Если в ответ на команду ты получишь ошибку /system/bin/sh: sqlite3: not found, значит, на смартфоне нет sqlite3 и ее придется скачать, заки- нуть в /system/bin и дать файлу все права. Я использую sqlite3, который выта- щил когда-то из Titanium Backup.
Также с помощью sqlite3 можно выдернуть все контакты с телефона. Для этого в консоли на компе должен использоваться шрифт Lucida Console и перед началом выполнения команд необходимо перевести кодировку на UTF-8. Иначе вместо русских букв будут отображаться непонятные символы. Сами команды выглядят так:
Если все сделано правильно, то в консоли ты увидишь таблицу с порядковым номером записи, номером телефона и контактами, отсортированными по имени. Для контактов с более одного номера будет несколько записей подряд.
Можно вывести данные не на экран, а сразу в текстовый файл. Для этого команды нужно изменить:
Альтернативный способ вывода контактов в файл — команда, требующая установленного BusyBox:
10. СНЯТИЕ ГРАФИЧЕСКОГО КЛЮЧА, PIN, FACELOCK
Допустим, ты забыл PIN или не совсем трезвым поставил графический ключ, ну или друзья пошутили и поставили распознавание по лицу… Так вот, если устройство по какой-то причине заблокировано, то блокировку можно снять (при условии включенной отладки по USB) через ту же консоль:
Команда удалит все пароли и графические ключи. Сами файлы в зависимости от прошивки и модели устройства могут быть: gesture.key, password.key, cm_ gesture.key, personalpattern.key, personalbackuppin.key. Также за блокировку от- вечают файлы locksettings.db, locksettings.db-shm, locksettings.db-wal.
После этого достаточно перегрузить устройство и ввести любой ключ, па- роль. Если это не помогает, можно попробовать следующее:
ВЫВОДЫ
Как видишь, с помощью ADB можно сделать много интересного. И чем больше пользуешься консолью, тем быстрее можно выполнить некоторые действия без установки дополнительного софта на устройство. Надеюсь, данная статья помогла разобраться с ADB и подтолкнула к чтению документации и поиску новых полезных команд.
Что такое ADB? Adb команды для Андроид. В данной статье вы узнаете что такое ADB для чего он нужен пользователям, а также как управлять им с помощью команд в Android терминале. Ну что же начнем изучать adb команды android…
Знакомимся с ADB
ADB (android debug bridge) это — средство отладки, выявление ошибок в приложениях, разблокировки девайсов на ОС Android и многое другое. Официальную документацию на английском языке можете прочитать на данном сайте .
Можно воспользоваться специальной программой Adb Run, облегчающая взаимодействие с ADB.
Также можете воспользоваться программой Android Терминал
Позаботьтесь чтобы на ПК были установлены драйвера, а на Android включена отладка по USB.
Adb команды android и Linux
Команды Adb можно разделить 3 типа, непосредственно для команды Adb, FastBoot (подробно о Fasboot) и команды Android.
Команды Adb
Чтобы убедиться, что все работает нормально и компьютер опознал Android необходимо ввести adb команду:
на данном скрине видно что Android подсоединен
2. Подключение Android по WI-FI
Для того чтобы подключить Android по WI-FI сети необходимо получить ip адрес и порт устройства, в этом вам поможет приложение ADB Wireless (необходим Root)
после этого ввести команду:
Например вот так:
Более подробно о том как подключить Android через WI-FI — Отладка по USB.
3. Установка приложений на Android
Для того чтобы установить какое либо приложение с компьютера на Android необходимо ввести команду:
Как использовать и пример:
Для того чтобы с помощью команды Adb установить приложение необходимо. Написать:
То есть написать команду adb install путь к приложению и название этого приложения.
Как использовать и пример
То есть написать adb команду путь к файлу, название файла и место где сохранить данный файл.
5. Принять файл c Android на ПК
Для того чтобы принять абсолютно любой файл с устройства Android на компьютер существует команда:
Как использовать и пример:
Для того чтобы с помощью команды Adb принять файл с Android на ПК необходимо. Написать:
То есть написать adb команду путь к файлу который находится на Android, название файла и место где сохранить данный файл на ПК.
6. Перезагрузка смартфона или планшета на Android
Для того чтобы перезагрузить Android после каких либо выполненных операций, либо перезагрузить в специальный режим, существует команда:
Команды перезагрузят Android в нормальный режим (обычная перезагрузка):
Команда перезагрузит Android в режим загрузки Bootloader
Команда перезагрузит Android в режим Recovery
7. Перейти в управление Android, после чего можно использовать команды ОС Android
Весь потенциал Android раскрывается после того когда вы переходите в управление Android где доступны многие команды linux. Для этого существует команда:
Команды в терминале Android
1. Команда стать суперпольвателем.
Суперпользователь или Root. Позволяет выполнять абсолютно все действия, от создания, модифицирования, изменения, до удаления конкретных системных файлов: Для этого введите команду:
До ввода команды
пользователь является Гостем в системе (многие действия заблокированы) и обозначается в начале терминала знаком доллар
после ввода команды
становится Админом и в терминале обозначается как американский номер
2. Команда перейти в папку (в дальнейшем и правильней будет называть каталог вместо папки)
Для того чтобы перемещаться между разделам и каталогами в Android, существует специальная команда:
Пример чтобы перейти с раздела /sdcard в раздел /sdcard/xxx/porno/hot_girl
Для того чтобы вернуться с раздела на каталог выше либо обратно в /sdcard
если находимся в каталоге /sdcard/xxx/porno/ hot_girl — hot_girl
окажемся в каталоге
если необходимо подняться в /sdcard то
3. Переместить/Переименовать файл либо каталог.
Перемещение и переименование файла, каталога осуществляется c только одной командой:
Пример Переименовать файл
Пример Переименовать папку:
Пример как Переместить файл:
Пример как Переместить папку:
4. Просмотреть что есть внутри каталога
Для того чтобы узнать какие каталоги и файлы содержаться от места где вы находитесь используют следующую linux команду:
5. Копировать файл или папку (каталог).
Для того чтобы скопировать какой либо файл или папку и переместить куда либо:
6. Подсоединить раздел (примонировать) и отсоединить.
Для того чтобы узнать какие разделы существуют в Android, подключить или отключить:
Узнать какие разделы примотированы в данный момент, введите
Для того чтобы присоединить раздел:
Для того чтобы отсоединить раздел:
7. Создать каталог (папку)
Для того чтобы создать где либо папку используйте команду:
8. Удалить каталог (папку) или файл
Если необходимо удалить какой либо файл или папку linux команда:
Пример как удалить файл:
Пример как удалить папку:
9. Вывести содержимое файла на экран (прочитать)
Если перед вами стоит задача вывести на экран содержимое текстового файла:
10. Вывести содержимое файла на экран (прочитать в обратном порядке)
Если перед вами стоит задача вывести на экран содержимое текстового файла, но с конца в начало:
11. Показать полный путь
Для того чтобы понять в каком разделе и каталоге находитесь:
Пример: если находимся в каком либо каталоге и надо узнать полный путь (например находимся в системном разделе, каталог app)
12. Создать пустой файл
Для того чтобы создать текстовый файл:
Например создадим файл 666.txt в каталоге /sdcrad
13. Создание Резервной копии с раздела и восстановление
Пример создания Резервной копии на Sd карту
Пример Восстановления раздела с резервной копии с Sd карты
14. Просмотр занимаемого места файлом
Для того чтобы понять сколько занимает что либо:
Выставление permission, прав файлам и директориям
Чтобы узнать какие права у файлов и директорий нужно написать такую команду
Права Доступа (permission)
Записывают их вот таком виде — RWX (буквенном) или 777 (цифирном)
Права доступа разделяют
1.Доступ к файлам
2.Доступ к директории
Буквенные атрибуты прав доступа
r — чтение данных файлов и директорий (read)
w — изменение содержимых файлов и директорий или запись в них, но не удаление (write)
x — выполнение файла или разрешение зайти в директорию
Бывает три группы польвателей
Владелец файла имеет право на чтение (r), запись(w) в него и исполнение(x), остальные только право на чтение.
Цифирные атрибуты прав доступа
Сумма их значений означает конечные права для пользователя и групп
7 (rwx) = 4 + 2 +1 полные права
5 (r-x)= 4 + 0 + 1 чтение и выполнение
6 (rw-) = 4 + 2 + 0 чтение и запись
4 (r—) =4 + 0 + 0 только чтение
Для новичков возможно пригодится калькулятор онлайн — ссылка .
Задавать права нужно командой
chmod 777 * — задаст права на чтение и запись и выполнение всем файлам и папкам
chmod 755 file.avi
Жесткие и символические ссылки
- Жесткие ссылки
- Символические ссылки или симлинки
В чем различия жестких и символических ссылок?
Жесткие ссылки — создают точную копию или текущий снимок файла или папки. Это очень похоже на копирование, но это все же не копирование.
Символические ссылки — создают ярлык которые указывают точное место файла или папки куда ярлык ссылается. Если файл или папку переместить, символическая ссылка будет битая. Чтобы наглядно понять что такое символическая ссылка — в Windows XP или Windows 7 есть ярлыки программ на рабочем столе, которые ссылаются в папку с программой, а точней exe-шник.
Содержание - ADB команды для Android:
ADB для Android — что это такое?
Вам наверняка известно, что операционная система Android основана на модифицированном ядре Linux. Поэтому и с ней возникает необходимость использовать командную строку. Именно программа adb помогает устанавливать связь между компьютером и Android. Она является составляющей среды разработки Android SDK, поэтому чтобы установить Android Debug Bridge, вам нужно скачать Android SDK с официального сайта . Есть версии для всех популярных операционных систем: Windows, Mac OS и Linux. То есть, проще говоря, adb позволяет при помощи компьютера управлять телефоном или планшетом.
ADB команды для Android
Подключите ваше устройство к ПК по USB. Убедитесь, что установлены все драйвера и включена отладка по USB .
adb devices
adb install
Благодаря этой команде вы можете устанавливать приложения на вашем смартфоне или планшете. Для этого нужно прописать путь, где находится APK файл:
adb intsall D:\papka_s_faylom\nazvanie_prilogeniya.apk
Чтобы не писать длинных путей, скопируйте файл в директорию android-tools. Тогда путь станет таким:
adb intsall nazvanie_prilogeniya.apk
adb uninstall
Вводить нужно аналогично предыдущей команде. При этом приложение удалится.
У этой команды есть интересная фишка. Если вы добавите ключ -k,то при удалении игры или программы их данные и кэш не удалятся, а останутся на Android устройстве.
adb push
Благодаря этой команде вы можете перекидывать файлы с компьютера на Android. Для этого вам нужно знать полный путь, где хранится файл и куда его перемещать.
adb push D:\papka_s_faylom\nazvanie_fayla/sdcard/Android
Чтобы не писать длинных путей, скопируйте файл в директорию android-tools. Тогда вводить нужно:
adb push nazvanie_fayla/sdcard/Android
adb pull
Эта команда копирует файлы с Android на компьютер. Вам нужно знать путь, где находится файл на смартфоне или планшете и указать место, где вы хотите сохранить файл. Если вы не укажете последнее, то файл сохранится в директории android-tools.
adb pull /sdcard/nazvanie_fayla\D:\papka_gde_sohranity
adb reboot
Эта команда перезагрузит ваш Android телефон или планшет.
adb reboot-bootloader
Благодаря этой команде вы можете напрямую загрузиться в режиме bootloader.
adb reboot recovery
Не все девайсы поддерживают данную команду. При помощи нее можно попасть в режим восстановления.
adb connect
При помощи этой команды можно подключить устройство к Wi-Fi сети. Для этого нужно знать ip адресс и порт устройства.
adb connect ip:port
adb shell
При помощи этой команды вы получаете полный доступ ко всем файлам на вашем устройстве.
Второй способ использования adb shell — это выполнение единичной команды Android shell с помощью такой конструкции:
fastboot devices
Если вы переведете ваш телефон или планшет под управлением Андроид в режим bootloader , то команды adb больше срабатывать не будут. Здесь нужно использовать команды fastboot.
Чтобы проверить, видят ли ПК и Android друг друга, используем команду:
После её ввода должен появится серийный номер вашего аппарата.
fastboot oem unlock
При вводе этой команды можно разблокировать загрузчик телефонов и планшетов Asus и HTC. Когда ваше устройство находится в режиме bootloader, введите:
fastboot oem unlock
Также все ваши установленные программы и персональные данные будут потеряны.
adb logcat
При помощи этой команды можно вывести содержимое log файла: изменения, ошибки и т.д. Данные будут слишком быстро прокручиваться, поэтому верным решением будет сохранить их в один TXT-файл. Для этого введите:
adb logcat > filename.txt
adb sideload
adb sideload name.zip
name.zip – это имя zip файла c прошивкой.
adb backup и adb restore
Команда adb backup создает бэкап, а adb restore проводит восстановление из бэкапа.
Читайте также: