Adb shell commands

Удаление

Допустим вы сделали все что хотели, и ADB на вашем девайсе больше не нужен, вы хотите его удалить. Как же это сделать?

Если же вы не планируете в ближайшем будущем использовать Termux — вы можете просто удалить это приложение. При этом ADB будет полностью удален с вашего устройства.

Но если эта утилита заинтересовала вас, и вы хотите поэкспериментировать с функционалом — это повод все-таки оставить Termux и удалить только сам ADB. И тут у нас, как и в установке, существует два режима удаления — обычный и тихий. Чем они отличаются мы описывали выше. Если вы не уверены в своем выборе — выбирайте тихий режим.

Для обычного удаления выполните в Termux’е эту команду:

Ну, а для тихого — эту:

Вот и все! Больше статей и инструкций читайте в разделе Статьи и Хаки Android. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!

Как исправить ошибку No Command

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

Способ №1 – сброс до заводских настроек

При превращении телефона в «кирпич» можно попробовать восстановить настройки производителя. Есть много вариантов данных действий, но нам нужен вариант именно с мертвым смартфоном. Есть специальная команда, разработанная для удаления подобных багов.

  1. Посредством активных клавиш вызываем корневое меню. Выключаем девайс, после зажимаем кнопку “Включение”, потом “Громкость вниз”, держим пару секунд и отпускаем.
  2. Если есть физическая «HOME» – возможно потребуется жать и на неё одновременно с громкостью – проверьте это.
  3. Удерживая эти положения, через мгновение отобразятся команды Recovery. Выбираем «wipe data/factory reset». Среди множества No находим строку Yes. Кнопка выключения активирует процесс обнуления. Все перемещения происходят посредством громкости.

Способ №2 – Перепрошивка

Это хоть и крайнее, но действенное решение, когда вы видите, что ваш Андроид лежит с восклицательным знаком, а Hard Reset не помогает. Если вы ранее не делали подобные смены ОС, тогда доверьте перепрошивку телефона кому-то более опытному. Можно попробовать установить ОС последнего выпуска или наоборот сделать откат. Если после переустановки что-то пошло не так смените версию и источник вашего софта. Сейчас некачественного контента действительно много.

В мертвых телефонах файл прошивки закидывают в память телефона посредством USB кабеля через компьютер, с последующей активацией установки. В Сети достаточно информации по этому поводу.

Поломка

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

Еще решения

  • Проверка аппарата на вирусы. Современные смартфоны им подвержены очень хорошо, поэтому антивирусы становятся актуальными как никогда, после сброса следует сразу же провести проверку.
  • Попробуйте запустить девайс позже. Скажем, ставьте на зарядку и включите через пару часов;
  • Просушите или почистите смартфон. Разные сторонние элементы в корпусе легко приводят к замыканиям.

Репозиторий F-Droid

Как правило Google PlayMarket и подобные платформы распространения пакетов не позволяют сохранять установщики программ на диск, тем самым жестко привязывая пользователей к своим сервисам, навязывая себя и заставляя регистрироваться и предоставлять информацию о себе и своем устройстве.

Существует проект под названием F-Droid (Free Android Software) — это репозиторий со свободным программным обеспечением под Android, программы с открытыми исходными кодами (Open Source Software).

Рис. 1. Логотип проекта F-Droid (копилефт инсайд).

На момент написания статьи в репозитории насчитывается более 1800 пакетов, рассортированных по категориям и с удобным поиском.

Для использования F-Droid не обязательно регистрироваться, программы можно загружать и устанавливать:

  • при помощи установленного приложения-каталога F-Droid (на подобии пакета PlayMarket);
  • прямо с сайта;
  • из ранее скачанных с сайта APK-пакетов.

Конечно же можно использовать и другие сайты для получения APK-файлов, но прежде чем доверить доступ таким источникам к своему смартфону следует хорошенько задуматься, здесь уже действуйте на свой страх и риск.

Что такое ADB?

ADB представляет собой специальный пакет Android Debug Bridge, который является своеобразным мостом между компьютером и мобильным устройством в виде консольного приложения, работающего по типу командной строки, но использующего несколько другие команды.

Применение этой среды позволяет не только получить полный контроль над своим девайсом, но и устанавливать программы, производить отладку и разблокировку устройства, а также очень часто применяется на начальной стадии при получении root-прав, причем даже с установкой всевозможных сред восстановления вроде TWRP и CWM или контролирующего приложения SuperSU, что на «неразлоченном» девайсе сделать не получится никакими другими способами. Как уже можно было догадаться, команда adb devices для «Андроида» является основной, поскольку именно она позволяет установить связь между мобильным устройством и компьютером. Остальные команды строятся на ее основе. О них поговорим позже, а пока остановимся на некоторых нюансах установки и обязательных условиях для работы этой среды.

Основы работы с ADB

Для начала работы с ADB его следует активировать на устройстве и установить утилиту adb и драйверы на комп. Первая задача выполняется с помощью включения «Отладки по USB» в пункте настроек «Для разработчиков» (если этот пункт скрыт, нажми семь раз на номер сборки в меню «О телефоне»).

Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB.

Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:

cd \android

Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды», найти переменную Path и добавить в конец строки, через точку с запятой, путь до папки с adb. Теперь после запуска консоли можно сразу вводить необходимые команды.

Проверим наше подключение к телефону с помощью следующей команды (она должна вывести список подключенных устройств):

adb devices

С ADB можно работать через Wi-Fi. Для этого нужны права root и приложение WiFi ADB. Запускаем приложение, жмем переключатель и подсоединяемся к смартфону с помощью команды connect и показанного приложением IP-адреса:

adb connect IP-адрес

Далее работа с ADB ничем не отличается.

Снятие графического ключа, PIN, facelock

Допустим, ты забыл PIN или не совсем трезвым поставил графический ключ, ну или друзья пошутили и поставили распознавание по лицу… Так вот, если устройство по какой-то причине заблокировано, то блокировку можно снять (при условии включенной отладки по USB) через ту же консоль:

adb shell $ su # cd /data/system # rm *.key

Команда удалит все пароли и графические ключи. Сами файлы в зависимости от прошивки и модели устройства могут быть: gesture.key, password.key, cm_gesture.key, personalpattern.key, personalbackuppin.key. Также за блокировку отвечают файлы locksettings.db, locksettings.db-shm, locksettings.db-wal.

После этого достаточно перегрузить устройство и ввести любой ключ, пароль. Если это не помогает, можно попробовать следующее:

adb shell $ cd /data/data/com.android.providers.settings/databases $ sqlite3 settings.db > update system set value=0 where name=’lock_pattern_autolock’; > update system set value=0 where name=’lockscreen.lockedoutpermanently’;

What is ADB Shell?

ADB commands can be used to debug Android devices, installing or uninstalling apps, and getting information about a connected device. ADB works with the aid of three components called Client, Daemon, and Server. If you are curious about how these 3 components work together to make ADB and ADB shell commands functions, see below:

  • Client: It’s is very computer on which you use a command-line terminal to issue an ADB command. which sends commands.
  • Daemon: Or, ADBD is a background process that runs on both the connected devices. It’s responsible for running commands on a connected emulator or Android device.
  • Server: It runs in the background and works as a bridge between the Client and the Daemon and manages the communication. which manages communication between the client and the daemon.

ADB Shell commands provide access to a Unix Shell that runs a command directly on your Android device. As soon as you execute an ‘adb shell’ command on the command terminal, it sends a signal to your Android device and triggers the remote shell command console. Thus ADB shell commands let you control your Android device.

Using ADB commands, you can reboot your device, push and pull files, create a backup and restore it, sideload an update zip package, or an APK. ADB Shell commands, however, work on a much deeper level. They can be used to change the resolution of your device display, uninstall bloatware or system apps, enable and disable features, modify the system files, and change their configuration directly using commands from your computer.

Actually, there are more tasks you can perform using these commands, and below we’ll check them all with examples. Please note that there are three prerequisites before you can make use of ADB, Fastboot, and ADB shell commands.

  • Android SDK Platform-tools
  • USB Drivers for your Android device
  • Enable USB Debugging

Now you can use Web ADB in a web browser window to run ADB commands on an Android device or computer without installing ADB and Fastboot tools and USB drivers.

Finally, without any further ado, let’s proceed with our list of ADB Shell commands.

Warning: Don’t use the commands mentioned on this page unless you know how to use them and have some prior knowledge or experience.

Описание и установка программы

Аббревиатура ADB означает Android Debug Bridge – отладочный мост Андроид. Он принадлежит к среде разработки Android SDK, который необходимо скачать на официального разработчика. На главной странице приведены версии для всех ОС – Windows, Linux и Mac.

Перед установкой Android Debug Bridge потребуется установить пакет Java для разработчиков. Скачать его можно на сайте Oracle. На странице необходимо принять лицензионное соглашение Accept License Agreement и загрузить версию Windows x86 (для 32-разрядных систем) или Windows x64 (для 64-разрядных систем). После скачивания, следуя советам инсталлятора, установить пакет на компьютер.

Подключая смартфон к ПК, пользователь обычно преследует цель перебросить элементы, скинуть apk-файлы или оперативно почистить память устройства. АДБ, помимо этого, позволяет управлять андроид-устройством через компьютер – перепрошивать, устанавливать программы и многое другое.

Снятие логов

Очень часто, когда для решения проблемы пользователь обращается на форум устройства, там его просят скинуть логи работы телефона или приложения. Отвечают за это две утилиты: logcat и dmesg. Первая позволяет увидеть системные сообщения в реальном времени, а вторая постфактум покажет работу ядра, включая сообщения ошибок ввода-вывода, загрузку драйверов, подключение USB-устройств и так далее. Полный лог можно вывести сразу в файл следующей командой:

adb logcat > logcat.txt

Все события будут записываться непрерывно по мере работы устройства. Остановить запись можно стандартной комбинацией Ctrl + C. Однако в лог попадает вся информация, что сильно затрудняет поиск нужной. Поэтому для работы обычно используют набор ключей и фильтров, подходящих к конкретной ситуации. Существует семь приоритетов сообщений по мере возрастания: V — Verbose, D — Debug, I — Info, W — Warning, E — Error, F — Fatal, S — Silent. Например, для вывода всех сообщений с приоритетом Е и выше следует ввести:

adb logcat *:E

После этого можно запускать проблемное приложение и смотреть, что именно вызывает ошибку. Также поддерживается вывод информации из альтернативных буферов. Этим способом можно посмотреть, что приложения делают в фоне и, например, какие события происходят после включения экрана:

adb logcat -b events


Вывод команды adb logcat -b events

Naptime

Doze — удивительная особенность Android. Он снижает потребление заряда батареи, приостанавливая фоновую загрузку ЦП и сети, когда экран вашего устройства выключен, отключен от сети и находится в стационарном состоянии. Он был представлен в Android 6, в то время как Android 7 принес дальнейшие улучшения.

Эта функция блокирует блокировку (если есть), временно останавливает механизмы синхронизации и предотвращает сканирование Wi-Fi и GPS. Naptime улучшает реализацию Doze с большим количеством функций. Он навязывает агрессивную Doze и пинает через несколько минут после выключения экрана.

Настройка ADB

Вставьте эту команду:

Далее введите эту команду:

После получения доступа, белый список Naptime от оптимизации батареи Android (Настройки> Приложения и уведомления> Показать все приложения X> Naptime> Дополнительно> Батарея> Оптимизация батареи) чтобы он мог нормально работать.

Уникальные черты

  • Приложение простое в использовании без каких-либо сложных меню или настройки. Просто переключите параметры, перечисленные в приложении.
  • Он дает вам подробную статистику Doze и историю, чтобы узнать, когда Doze начался или остановился.
  • Если вы используете Tasker или MacroDroid, вы можете включить или отключить Doze по требованию.

Скачать: Naptime (бесплатно)

Что происходит при включении и запуске Android?

Что происходит при запуске Android

Перед нами выключенный смартфон под управлением Android. Давайте разберемся, что произойдет, если его включить.

Сначала произойдет запуск BIOS мобильного телефона. ВIOS (Basic Input/Output System ) в переводе с английского означает «Базовая система ввода / вывода». Она постоянно автосохраняется и обеспечивает работу входов и выходов. В частности, эта система также запускает загрузчик (Bootloader).

Как явствует из названия, загрузчик загружает другие части операционной системы, например, ядро. Ядро ​​операционной системы — это основная ее часть. По сути, это нижний уровень системы Android, который отвечает за ход основных процессов и организацию данных.

Затем запускается основная операционная система под названием «ПЗУ/ ROM». ROM означает «Read Only Memory», или «Постоянное запоминающее устройство», используемое для запоминания всего массива неизменяемых данных. Будучи обычным пользователем, вы ничего не можете в ней поменять.

Параллельно загрузчик запускает не только ядро, но и Recovery, или систему восстановления.
Если система Android вдруг оказывается повреждена, можно загрузить Recovery и из нее восстановить OS с нуля или с момента сохранения. Также в системе Recovery можно (и нужно) создавать резервные копии.

В свою очередь, загрузчик может находиться в трех разных состояниях: «Заблокировано», «Открыто» или «Зашифровано». Если загрузчик открыт, в систему могут быть внесены глубокие изменения, например, можно установить собственную операционную систему, также называемую «кастомной ПЗУ», вместо стандартной, то есть, «стоковой ПЗУ». Но и другие моменты, такие как изменение Recovery или получение root-прав на смартфон, можно проводить только с помощью открытого загрузчика.

Если загрузчик зашифрован, могут быть установлены лишь самые срочные обновления системы от изготовителя. То же самое относится и к заблокированному загрузчику, но, в отличие от зашифрованного, его можно разблокировать.

Android ADB shell command execution result

Useful Android terminal commands:

1. ADB reboot-bootloader and reboot recovery commands:

This command will let you can reboot your device in the bootloader. If due to some malware your device is stuck or if your device is not rebooting then you can connect your device to the computer and run this command to reboot. To run the command just type adb reboot-bootloader in the command line and to boot the device in recovery just type adb reboot recovery.

2. Fastboot device command:

Fastboot is a diagnostic and engineering protocol that you can boot your Android device into. ADB does not work in the bootloader. If you have to boot into Android and the debugging tools are not active to communicate then you can use the fastboot command. Type fastboot devices in the prompt and you get the serial number.

3. Fastboot unlock command

Fastboot flashing unlock command unlocks your bootloader. This command is not supported in many phones that support fastboot but you can check if your phone supports it. Just type fastboot flashing unlock in the command prompt and hit enter.

4. ADB sideload command:

You can download the update zip file in your phone instead of waiting for the update to be pushed into the phone. To do that just download the update to your computer and connect your device to the computer. Now reboot into recovery on your phone and using the volume buttons choose to apply update from ADB. then open command line and type ADB sideload Full-Path-to-the-file.zip and hit enter.

A lot of users create android shell commands root in a device in spite of security. The adb reboot-bootloader command allows you to boot directly to your phone’s bootloader. Once you’re in the bootloader, ADB shell commands won’t work anymore. That’s where Android ADB fastboot command comes into the picture. Fastboot allows you to send commands to your phone while in the boot loader.

App installation commands

Push packages to the device and install them. Possible options are the following:

  • : Forward lock app.
  • : Replace the existing app.
  • : Allow test packages. If the APK is built using a developer preview SDK (if the is a letter instead of a number), you must include the option with the install command if you are installing a test APK.
  • : Install the app on the SD card.
  • : Allow version code downgrade (debugging packages only).
  • : Grant all runtime permissions.

Same options as with the addition of the following:

-p: Partial app install.

Remove this app package from the device. Add the option to keep the data and cache directories.

Send File to Your Device

There are plenty of applications dedicated to helping you transfer files between your computer and your Android device, such as OpenMTP. However, if you just want to transfer the occasional file, then downloading an entire application may feel like overkill.

The command lets you send files to your Android device. You just need to specify the source location of the file and the destination where you want to send that file:

For example, you may have a file called “myapplication.apk” that’s stored on your Desktop that you want to push to your smartphone’s “downloads” folder. In this scenario, your ADB command may look something like this:

The file will now be pushed from your laptop or computer and into the “Downloads” folder of the attached smartphone or tablet.

Как разблокировать загрузчик

Установщик ADB & Fastboot

Большинство смартфонов Android имеют так называемый режим fastboot. Это своего рода «расширенный загрузчик». С помощью этого режима обычный загрузчик можно разблокировать. Базовым инструментом для этого является «Android Debug Bridge», или ADB. Он ориентирован, в первую очередь, для разработчиков приложений под Android, но и обычным пользователям дает много возможностей.

Для начала вам нужны драйвера для смартфона. Их можно легко установить автоматически из Windows 7, просто подключив смартфон к ПК.
Также нужны драйвера ADB и Fastboot. Для этого загрузите из интернета установщик и запустите скачанный файл в режиме администратора. Обязательно установите драйвера для всей системы. Установщик спросит вас, действительно ли вы хотите это сделать.

После того, как вы совершили эти шаги, необходимо подключить устройство к ПК в режиме fastboot. У многих смартфонов есть для этого специальная комбинация клавиш. В качестве альтернативы, однако, вы также можете подключить включенный смартфон к ПК и ввести команду «adb reboot bootloader» в командной строке. Однако сначала вы должны включить «Отладку по USB» в настройках смартфона. Если необходимо, вы также должны включить функцию «Разрешить OEM-разблокировку».

Теперь вы можете легко разблокировать загрузчик командой «fastboot flashing unlock». Затем снова загрузитесь в режим fastboot и введите «fastboot flashing unlock_critical», чтобы окончательно разблокировать загрузчик. Таким образом вы можете свести к минимуму риск того, что ваш смартфон превратится в «кирпич» при установке новой прошивки.

В качестве альтернативы на некоторых смартфонах разблокировка может быть выполнена с помощью команды «fastboot oem unlock».

Однако бывают исключения. Например, смартфоны Samsung не имеют реального режима fastboot. Вместо этого есть режим загрузки. Чтобы разблокировать загрузчик, необходимо использовать программу Odin, которая может устанавливать файлы, умеющие это делать. Для получения root-прав или установки кастомного ROM или Recovery на устройства Samsung это не обязательно.

О том, как инсталлировать кастомную систему восстановления данных, читайте в следующем материале.

Фото: Chip.de, pxhere.com

  • Root-права на Android: преимущества и недостатки
  • Как удалить лишние программы со смартфона на Android?

Бэкап приложений

В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:

  • -f указывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл backup.ab в текущем каталоге;
  • -apk|-noapk указывает, включать ли в бэкап только данные приложения или сам .apk тоже (по умолчанию не включает);
  • -obb|-noobb указывает, включать ли в бэкап расширения .obb для приложений (по умолчанию не включает);
  • -shared|-noshared указывает, включать ли в бэкап содержимое приложения на SD-карте (по умолчанию не включает);
  • -all указывает на необходимость бэкапа всех установленных приложений;
  • -system|-nosystem указывает, включать ли в бэкап системные приложения (по умолчанию включает);
  • <pack — перечень пакетов для бэкапа.

Если мы хотим создать бэкап всех несистемных прог, включая сами .apk, в определенное место, то команда будет выглядеть так:

После ввода необходимо подтвердить начало выполнения бэкапа на самом устройстве. Для восстановления полученного бэкапа нужно выполнить соответствующую команду:

Процесс бэкапа

Networking commands

Connect to a device over TCP/IP. If you do not specify a port, then the default port, , is used.

Disconnect from the specified TCP/IP device running on the specified port. If you do not specify a host or a port, then all devices are disconnected from all TCP/IP ports. If you specify a host, but not a port, the default port, , is used.

List all forwarded socket connections.

Forward socket connections from the specified local port to the specified remote port on the device. You can specify both local and remote ports in the following ways:

  • . To choose any open port, make the local value .
  • .
  • .
  • .
  • .
  • .

Remove the specified forwarded socket connection.

List all reverse socket connections from the device.

Reverse a socket connection. The option means the reversal fails if the specified socket is already bound through a previous command. You can specify the port for both local and remote arguments in the following ways:

  • . To choose any open port, make the remote value .
  • .
  • .
  • .

Remove the specified reverse socket connection from the device.

Remove all reverse socket connections from the device.

Пробуем отключить SELinux

На тот момент я думал, что все ошибки об отсутствии привилегий вызваны SELinux (я полностью забыл о том, что могут быть урезаны capabilities). Логов dmesg я не видел, logcat ничего релевантного не показывал. И я начал думать как отключить SELinux.

Первая зацепка, которую я смог найти:

говорят о том, что при изменении этой опции, init перезагружает политики SELinux из файла .

Т.е. я при помощи dirtycow могу перезаписать и командой загрузить обновленную политику.

Для начала нужно выяснить что из себя представляет . Изучить его можно с помощью команды (пакет setools в Debian).

В моём случае содержал только allow, что значит — при enforcing режиме SELinux в Android разрешено делать только то, что объявлено в политике. А процессу init разрешалось только загружать политику, но не отключать:

Моей задачей было — разрешить init контексту задать selinux->enforce в permissive (setenforce 0).

Первое, что я сделал — собрал стандартную политику стокового Android, подменил оригинальный , загрузил (под root пользователем ) и получил сообщение в статусной строке, что телефон находится в незащищенном режиме. После этого телефон отказывался запускать приложения, стал очень задумчив, задать permissive режим мне тоже не удалось и в конечном итоге телефон перезагрузился. Отрицательный результат тоже результат, замена сработала.

Первая же мысль: стоковая политика не подходит этому телефону и он при отсутствии прав начинает тупить.

Я собрал новую политику, в которой просто описал все существующие SELinux context и объявил их permissive. Тоже не помогло.

Потом я решил пересобрать политику и по возможности добавить привилегии для shell контекста.

Я нашел статью, в которой говорится как «декомпилировать» политику. Немного повозившись я смог собрать все зависимости и запустить утилиту . На выходе я получил текстовый файл, который я смог собрать обратно (для KitKat ) и даже получить файл с точно таким же размером что и оригинальный , но разным hex содержимым. Загрузка новой политики вызвала точно такие же результаты, что и ранее — телефон через какое-то время перезагружался.

Я решил собрать две политики: из , который я получил и из , в котором добавлены все привилегии для , в том числе и setenforce. Сравнить файлы в hex и по аналогии заменить байты в оригинальном .

Как выяснилось две пересобранные политики отличались всего парой байт. Я начал искать похожие совпадения в оригинальном sepolicy, но не нашёл. Затем я просто написал brute force скрипт, который в заданном диапазоне смещений заменяет два байта на «0xFF,0xFF», запускает . Таким образом я нашел необходимое смещение в оригинальной политике, заменил байты, подменил оригинальную политику и ничего. Отключить selinux опять не удалось.

Чуть позже я нашел утилиту sepolicy-inject, которая добавляет привилегии в уже скомпилированный файл. Если правило уже существует, то добавление максимальных привилегий не увеличивает конечный размер политики. К сожалению запуск утилиты добавляет всего одно правило за раз. Написал скрипт, который добавляет максимальные привилегии для каждого правила. Результатом был файл с политикой, в которой каждое правило содержало максимальные привилегии. Размер файла совпадал с оригинальным. И это опять не помогло.

Потом я узнал, что в Android есть команда , которая перезагружает политику по любому пути. Танцы с бубном оказались лишними.

Можно было добавить любой permissive домен, загрузить новую политику и работать в контексте этого домена (кстати, supersu от chainfire для новых версий Android ). Но даже это не дало возможности отключить SELinux. Я решил копать в другом направлении.

Описание и установка программы

Аббревиатура ADB означает Android Debug Bridge – отладочный мост Андроид. Он принадлежит к среде разработки Android SDK, который необходимо скачать на сайте официального разработчика. На главной странице приведены версии для всех ОС – Windows, Linux и Mac.

Перед установкой Android Debug Bridge потребуется установить пакет Java для разработчиков. Скачать его можно на сайте Oracle. На странице необходимо принять лицензионное соглашение Accept License Agreement и загрузить версию Windows x86 (для 32-разрядных систем) или Windows x64 (для 64-разрядных систем). После скачивания, следуя советам инсталлятора, установить пакет на компьютер.

Подключая смартфон к ПК, пользователь обычно преследует цель перебросить элементы, скинуть apk-файлы или оперативно почистить память устройства. АДБ, помимо этого, позволяет управлять андроид-устройством через компьютер – перепрошивать, устанавливать программы и многое другое.

Управление мобильным девайсом в режиме Fastboot

В режиме Fastboot, обычно запускаемым путем длинного нажатия и удержания кнопок питания и уменьшения громкости, на команды adb devices Android не реагирует. Это и понятно, ведь операционная система еще не загружена.

Если хотите, этот режим представляет что-то очень отдаленно напоминающее BIOS на компьютере и служит в основном для создания бэкапов или восстановления работоспособности девайса, если система не загружается вообще. Также в этом режиме можно устанавливать кастомные прошивки, менять среду восстановления Recovery и т. д. Применяемые команды очень похожи на те, что использовались в ADB, но с той разницей, что сначала вписывается не сокращение adb, а указывается режим fastboot (например, для распознавания девайса применяется строка fastboot devices). Кроме того, именно в таком режиме можно разблокировать загрузчик, если другим средствам это не под силу (fastboot oem unlock).

restart

Тоже интересный для изучения файл. В нем описываются возможные варианты загрузки телефона:

  • adb reboot bootloader — режим fastboot, в моём телефоне не доступен ( — hex метка 00556677 в разделе sbl1)
  • adb reboot recovery — режим recovery ( — hex метка 02556677 в разделе sbl1)
  • adb reboot rtc — так называемый ALARM_BOOT. Так и не понял для чего, метки в sbl1 нет. Возможно имеется в виду https://developer.android.com/reference/android/app/AlarmManager.html
  • adb reboot oem-X (в моём случае oem-1, — hex метка 016d656f в разделе sbl1). Что происходит во время этого режима устанавливается производителем. Судя по исходникам, в этот режим телефон перезагружается при ошибке аутентификации прошивок из раздела modem.
  • adb reboot edl — emergency download, переводит телефон в штатный qualcomm’овский download mode. Телефон определяется как QHSUSB__BULK COM port, по которому можно передать подписанный загрузчик (если не ошибаюсь, то каждый загрузчик предназначен для одного типа SoC и производителя телефонов) и выполнять низкоуровневые операции с телефоном, в том числе и прошить. Обычно используется вкупе с QPST. Для некоторых телефонов загрузчики утекают в сеть, например для Kyocera KYL22. Откуда они берутся — мне неизвестно.
  • Некий download mode, в который через adb reboot не зайти. Вот тут интересно… Но об этом позже.

Немного о том, как происходит загрузка на телефонах с процессором Qualcomm:

Встроенный ROM загрузчик Qualcomm (pbl — primary bootloader) загружает раздел sbl1 (secondary bootloader). sbl1 загружает tz (trust zone), затем aboot (android boot, little kernel, lk). Aboot в свою очередь загружает boot, recovery или fota.

Описание разделов, участвующих при загрузке:

  • tz — Qualcomm Trust Zone. Выполняет низкоуровневые операции, в том числе работает с QFuses (раздел rpmb).
  • rpm — Resource and Power Manager firmware. Прошивка для специализированного SoC, отвечающего за ресурсы и питание.
  • sdi — trust zone storage partition. Данные, которые используются Trust Zone.

Все эти разделы подписаны цепочкой сертификатов.

Использование кастомного Рекавери

Recovery — спасательный круг для пользователей смартфонов или планшетов. Это средство восстановления операционной системы в случае критических ошибок во время использования. Также в функционал программы входит ограничение действий пользователя в отношении внутренней системы гаджета.

Несмотря на это, пользователи, которые хотят поменять прошивку смартфона или установить операционную систему «со стороны» для устройства, заменяют заводской Recovery на кастомную версию.

Функционал пользовательской системы восстановления схож со стандартным аналогом. Хотя также существует несколько дополнительных возможностей кастомного Recovery, например, доступ к защищённым файлам и функциям. Чаще всего это используется как база для глобальных пользовательских изменений системы.

Наиболее надёжными пользовательскими система восстановления являются:

  • ClockworkMod Recovery.
  • Team Win Recovery Project (TWRP).

Bootloader — программа не позволяющая владельцу портативного устройства заменить прошивку на стороннюю. Однако существует несколько способов разблокировки ограничения от разработчиков.

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

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

Adblock
detector