Adb для android, основные команды adb андроид
Содержание:
- Conclusion
- Основы работы с ADB
- Fastboot waiting for device: причины и что делать?
- Установка ADB
- Лучшая статистика батареи
- Проверка работоспособности adb и fastboot
- Command
- Command
- Преимущества Adb Run
- Решение проблемы
- Дополнительные драйверы и условия для использования ADB
- Для устройств Sony
- WiFi
- ** ADB RUN 4 **
- Скачать программу ADB RUN (Win 7 — 10)
- Что умеет ADB RUN?
- Обзор инструкция ADB RUN
- Send File to Your Device
- fota
- Команды ADB
- Naptime
- Scripting commands
- Most Commonly Used Fastboot Commands
Conclusion
These are the most common ADB commands that all Android users should know. These commands allow you to install applications, extract files from your Android device, and push files to your smartphone or tablet using a single command. This can save you a considerable amount of time and effort.
ADB commands are also essential if you have any plans to root, hack, or customize your Android device at any point in the future. You may also want to learn how to back up Android data using ADB on Ubuntu or how to uninstall system apps or bloatware without root in Android.
Jessica Thornsby
Jessica Thornsby is a technical writer based in Derbyshire, UK. When she isn’t obsessing over all things tech, she enjoys researching her family tree, and spending far too much time with her house rabbits.
Основы работы с 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 ничем не отличается.
Fastboot waiting for device: причины и что делать?
Появление указанного сообщения указывает на то, что Андроид не замечается компьютером или остаётся неподключенным. В подобных ситуациях рекомендуется:
- убедиться в целостности кабеля и попытаться отключить и подключить его повторно;
- удостовериться, что утилита для работы с телефоном скачана и установлена (перед этим следует уточнить, как установить fastboot);
- перевести аппарат в bootloader, если подобное не делалось раньше;
- избавиться от дополнительных USB-хабов, поскольку они мешают стабильному соединению и увеличивают вероятность некорректной работы сервиса;
- попытаться поменять USB-порт (не рекомендуется подключение к USB0).
Кроме того, иногда помогает банальная перезагрузка и запуск командной строки от имени администратора, а в отдельных ситуациях на выручку приходит смен кабеля, поскольку иногда даже отсутствие видимых повреждений не гарантирует его целостность.
Установка ADB
На устройствах под управлением Windows, установите драйвер для вашего Android-устройства.
Если драйвера для вашего устройства не нашлось на указанных страницах, попробуйте поискать его на сайте производителя.
Для MacOS и Linux установка драйверов не требуется.
Далее потребуется установить Android SDK Platform Tools. Если вы используете , скорее всего SDK Platform Tools у вас уже установлен.
Установка ADB в Windows
Скачайте и распакуйте папку platform-tools на диск (рекомендуется в С:\platform-tools).
В системную переменную Path добавьте путь к распакованной папке, для этого:
- перейдите в Панель управления – Система и безопасность – Система;
- выберите пункт Дополнительные параметры системы;
- нажмите кнопку Переменные среды;
- в поле Системные переменные выберите значение Path и нажмите кнопку Изменить, чтобы добавить новое значение;
- укажите путь к папке platform-tools содержащую adb;
- перезагрузите компьютер.
Установка ADB в Linux
Чтобы установить SDK Platform Tools в Ubuntu выполните следующую команду.
или
Либо вручную скачать , распаковать на диск и добавить путь к распакованной папке с platform-tools в переменную среды $PATH.
Установка ADB в MacOS
Самый простой способ установить SDK Platform Tools на MacOS, используя Homebrew.
Либо установить вручную.
Сперва удалите предыдущую версию android-platform-tools, если такая имеется.
Затем скачайте .
Перейдите в папку с загрузками, распакуйте скачанный архив и переместите файлы программы в удобное для вас место, например в домашнюю директорию.
Добавить путь к platform-tools в переменную среды $PATH.
Обновите bash профиль или перезапустите терминал.
Проверка ADB
Зайдите в консоль и введите следующую команду:
Если все сделали верно, в ответ в консоль будет выведена информация о версии ADB.
Лучшая статистика батареи
Поиск приложений, вызывающих разрядку аккумулятора телефона, – загадка. Откуда вы знаете, что конкретное приложение переходит в состояние сна, когда вы выходите из него? И как вы можете измерить эффективность приложений для экономии заряда аккумулятора, таких как Naptime?
Better Battery Stats извлекает подробные данные о вашей батарее. Он показывает приложения, которые выводят ваше устройство из состояния глубокого сна, обнаруживает необычные изменения в поведении и происходящем за кулисами, а также собирает информацию об использовании приложений и блокировках пробуждения. Данные отображаются в разных категориях – начиная с загрузки, отключения, отключения экрана и т. Д.
Настройка ADB
Ранее это приложение было доступно только для рутованных устройств. Но с АБР любой может начать использовать его. Вставьте и выполните эти команды по порядку:
. adb -d shell pm grant com.asksven.betterbatterystats android.permission.BATTERY_STATS . adb -d shell pm grant com.asksven.betterbatterystats android.permission.DUMP . adb -d shell pm grant com.asksven.betterbatterystats android.permission.PACKAGE_USAGE_STATS
Уникальные черты
- Показывает экран по отношению к бодрствующему. В идеале время экрана должно быть равно времени пробуждения.
- Найдите изменения в профиле пробуждения / сна и быстро определите мошеннические приложения.
- Статистика заряда батареи показывает вам подробные метрики Doze, чтобы вы могли проверить, насколько эффективны приложения по экономии заряда батареи.
- Он может выбирать приложения, которые приводят к частичным wakelocks или приложениям, которые используют CPU в wakelocks ядра.
Скачать: Лучшая Статистика Батареи (2 $)
Проверка работоспособности adb и fastboot
Для начала нужно убедиться, что приложение распознает подключенный девайс. Соединяем телефон с РС по USB-проводу и запускаем утилиту. Не забываем, что перед этим нужно включить отладку по ЮСБ.
В программе кликаем по большой кнопке «Deblоater». Произойдет распознавание подключенного девайса. Если синхронизация успешная, появится информация о модели. Надпись «No dеvice found» сообщает об отсутствии нужных нам драйверов. Установите универсальные драйвера adb и fastbоot, и повторите попытку.
Еще сопряжение можно проверить, перезагрузив мобильный гаджет через вкладку «Rebоot into system» (в пунктах «ADB Toоls» и «Fastboot Toоls»). Если девайс откликнулся на команду и перезагрузился, значит, подключение успещно установлено.
Command
Start an specified by .
Options are:
- : Enable debugging.
- : Wait for launch to complete.
- : Start profiler and send results to .
- : Like , but profiling stops when the app goes idle.
- : Repeat the activity launch times. Prior to each repeat, the top activity will be finished.
- : Force stop the target app before starting the activity.
- : Enable tracing of OpenGL functions.
- : Specify which user to run as; if not specified, then run as the current user.
Start the specified by .
Options are:
—user user_id | current: Specify which user to run as; if not specified, then run as the current user.
Force stop everything associated with (the app’s package name).
Kill all processes associated with (the app’s package name). This command kills only processes that are safe to kill and that will not impact the user experience.
Options are:
—user user_id | all | current: Specify user whose processes to kill; all users if not specified.
Kill all background processes.
Issue a broadcast intent.
Options are:
: Specify which user to send to; if not specified then send to all users.
Start monitoring with an instance. Typically the target is the form .
Options are:
- : Print raw results (otherwise decode ). Use with to generate raw output for performance measurements.
- : Set argument to …]`.
- : Write profiling data to .
- : Wait for instrumentation to finish before returning. Required for test runners.
- : Turn off window animations while running.
- : Specify which user instrumentation runs in; current user if not specified.
Start profiler on , write results to .
Stop profiler on .
Dump the heap of , write to .
Options are:
- : When supplying a process name, specify user of process to dump; uses current user if not specified.
- : Dump native heap instead of managed heap.
Set app to debug.
Options are:
- : Wait for debugger when app starts.
- : Retain this value.
Clear the package previous set for debugging with .
Start monitoring for crashes or ANRs.
Options are:
—gdb: Start gdbserv on the given port at crash/ANR.
Control screen compatibility mode of .
Override device display size. This command is helpful for testing your app across different screen sizes by mimicking a small screen resolution using a device with a large screen, and vice versa.
Example:
am display-size 1280×800
Override device display density. This command is helpful for testing your app across different screen densities on high-density screen environment using a low density screen, and vice versa.
Example:
am display-density 480
Print the given intent specification as a URI.
Print the given intent specification as an URI.
Command
Prints all packages, optionally only those whose package name contains the text in .
Options:
- : See their associated file.
- : Filter to only show disabled packages.
- : Filter to only show enabled packages.
- : Filter to only show system packages.
- : Filter to only show third party packages.
- : See the installer for the packages.
- : Also include uninstalled packages.
- : The user space to query.
Prints all known permission groups.
Prints all known permissions, optionally only those in .
Options:
- : Organize by group.
- : Print all information.
- : Short summary.
- : Only list dangerous permissions.
- : List only the permissions users will see.
List all test packages.
Options:
- : List the APK file for the test package.
- : List test packages for only this app.
Prints all features of the system.
Prints all the libraries supported by the current device.
Prints all users on the system.
Print the path to the APK of the given .
Installs a package (specified by ) to the system.
Options:
- : Install the package with forward lock.
- : Reinstall an existing app, keeping its data.
- : Allow test APKs to be installed. Gradle generates a test APK when you have only run or debugged your app or have used the Android Studio Build > Build APK command. 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 command if you are installing a test APK.
- : Specify the installer package name.
- : Install package on the shared mass storage (such as sdcard).
- : Install package on the internal system memory.
- : Allow version code downgrade.
- : Grant all permissions listed in the app manifest.
Removes a package from the system.
Options:
-k: Keep the data and cache directories around after package removal.
Deletes all data associated with a package.
Enable the given package or component (written as «package/class»).
Disable the given package or component (written as «package/class»).
Options:
—user user_id: The user to disable.
Grant a permission to an app. On devices running Android 6.0 (API level 23) and higher, the permission can be any permission declared in the app manifest. On devices running Android 5.1 (API level 22) and lower, must be an optional permission defined by the app.
Revoke a permission from an app. On devices running Android 6.0 (API level 23) and higher, the permission can be any permission declared in the app manifest. On devices running Android 5.1 (API level 22) and lower, must be an optional permission defined by the app.
Changes the default install location. Location values:
- : Auto: Let system decide the best location.
- : Internal: install on internal device storage.
- : External: on external media.
Note: This is only intended for debugging; using this can cause apps to break and other undesireable behavior.
Returns the current install location. Return values:
- : Lets system decide the best location
- : Installs on internal device storage
- : Installs on external media
Specifies whether the given permission should be enforced.
Trim cache files to reach the given free space.
Create a new user with the given , printing the new user identifier of the user.
Remove the user with the given , deleting all data associated with that user
Prints the maximum number of users supported by the device.
Преимущества Adb Run
Сложность в использовании Android Debug Bridge заключается в ручном вводе длинных команд. Все команды не очень просто запоминаются, поэтому ошибиться, вводя команду – стандартное дело. Adb Run не требует ввода дополнительных параметров и вспомогательных команд.Перемещаясь по меню и выполняя необходимые операции, вы переключитесь в ручной режим, если захотите вводить «руками».Создатель приложения сделал ручной ввод для опытных пользователей операционной системы Android. Ввод команд вручную подойдёт для пользователей, которым стандартных команд мало. Приложение устанавливается на старые и новые версии Windows и автоматически обновляется в режиме.
Скачать Adb на компьютер для Андроид. С помощью данного установщика можно быстро установить утилиту для отладки Android — ADB, без необходимости инсталлировать весь пакет разработки .
(старая версия)
(новая версия)
установка происходит в корень диска С:\ (С:\adb)
Также возможно воспользоваться программой Adb Run (рекомендуется для всех новичков), облегчающая взаимодействие с ADB.
Инструкция по командам ADB
Видеоинструкция как установить ADB на компьютер (ADB + Fastboot)
Ручная установка ADB и Fastboot на компьютер
Если вы хотите использовать самую свежую версию ADB или Fastboot на вашем компьютере Windows, тогда воспользуйтесь следующей инструкцией, чтобы скачать ADB:
Перейдите на сайт разработчиков (для XP) и скачайте архив SDK Platform-Tools для ОС Windows, содержащие утилиты adb и fastboot
2. Извлечь из архива папку platform-tools на диск C:\
3. Перейти в Windows «Панель управления\Система и безопасность\Система» и выбрать Дополнительные параметры системы
4. Перейти в «Переменные среды» Windows
5. Выбрать «Системные переменные» значение Path и изменить, чтобы добавить новое значение
6. Указать путь к папке platform-tools содержащую adb и fastboot
7. Перезагрузите компьютер, после чего запустить командую строку и написать команду adb version, если у вас появлялась текстовая информация с версией ADB, то вы все сделали правильно. Теперь можете пользоваться ADB для Android в тех целях, что вы задумывали.
Установка на MAC OS и Linux
- установить ADB и Fastboot на MacOS
- установить ADB и Fastboot на Linux
Следует признать, что многие производители Android-устройств сознательно ограничивают владельцев планшетов и смартфонов в функционале. Фактически обычный пользователь использует потенциал Android лишь на 70%. Но если вам недостаточно стоковых возможностей смартфонов, рекомендуем узнать, как прошить Android через ADB. Данная утилита позволяет раскрыть полный функционал гаджета.
Решение проблемы
Когда появляется ошибка команды нет android что делать, в такой ситуации пользователю? Необходимости в том, чтобы узнать точную причину, повлекшую за собой столь неприятные последствия — нет. Достаточно лишь или, в некоторых случаях, перепрошить телефон.
Процедура сброса довольно простая и очень похоже реализована во всех современных устройствах. Для её выполнения следует:
- При включении смартфона зажать кнопку громкости, после чего откроется меню
- В нем выбрать пункт WIPE data factory, после чего произойдет сброс.
- Иногда, во время процедуры, смартфон может «спросить», что делать с данными пользователя. В большинстве случаев, их следует удалить для корректной работы девайса.
Процесс перепрошивки несколько проще, чем сброса, однако, в нем также есть свои подводные камни. К ним можно отнести необходимость полной зарядки смартфона, чтобы избежать выключения во время манипуляций. Как правило, обновление прошивки выполняется стандартными средствами, поставляемыми или вместе с товаром на диске, или же представленными на сайте изготовителя девайса.
Если вы хоть раз пробовали самостоятельно прошить или или планшет на Android, то наверняка сталкивались с понятием «Recovery». Сегодня мы подробно поговорим о том, что это за штука, зачем она вообще нужна, и конечно, как туда войти.
Что такое Recovery
Recovery mode — это специальный режим загрузки android-устройств, позволяющий сделать полный сброс настроек операционной системы, перепрошить аппарат, сделать резервную копию всей системы или отдельных её разделов (ровно как и восстановить эти разделы затем) и некоторые другие вещи. При этом, для работы этом режиме работоспособность самой операционный системы совсем необязательна. Именно по этому к меню recovery зачастую обращаются когда в нормальном режиме аппарат уже не работает. И именно по этому этот режим и называется «recovery» (с англ. «восстановление»).
Как войти в Recovery
Для загрузки recovery обычно используются аппаратные кнопки устройства. Наиболее частые комбинации это:
Тем не менее, некоторые производители могут придумать «что-нибудь эдакое», так что придётся искать и экспериментировать.
Если все сделано правильно, на экране устройства появится лежащий робот, поверх которого будет меню с командами.
Дополнительные драйверы и условия для использования ADB
Даже для первого использования команды adb devices и всех ее возможных комбинаций необходимо убедиться, что мобильном устройстве включен так называемый режим отладки по USB. Если он деактивирован или такого пункта вообще нет в меню девайса, сначала в настройках необходимо найти раздел «О телефоне» или «О планшете», тапунть по пункту 10-15 раз, после чего будет сообщено, что вы стали разработчиком.
Войдя в соответствующее меню «Для разработчиков» и можно включить необходимый режим.
Что касается драйверов, достаточно часто с программным обеспечением от Google можно наблюдать серьезные проблемы, поскольку драйвер может попросту не работать. В этом случае настоятельно рекомендуется инсталлировать ПО, максимально подходящее для вашей модели, загрузив его с интернет-ресурса производителя оборудования. Иногда помогает и установка универсальных драйверов. Например, в последнее время весьма широкое распространение получил универсальный драйвер от Intel, но его инсталлировать необходимо только в том случае, если ваш девайс работает на процессоре именно этого производителя.
Для устройств Sony
Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено:
fastboot.exe -i 0x0fce getvar version
Разблокировка bootloader Sony
fastboot.exe -i 0x0fce oem unlock 0xПолученый_Ключ
Более детальная информация по разблокировке Bootloader Sony — Как разблокировать Bootloader Sony.
Ошибка Waiting for Device
Если у вас долгое время в командном окне горит надпись waiting for device — значит:
- Не установлен или некорректно установлен драйвер — переустановить или установить
- Устройство Android не в режиме Bootloader — перевести
- Некорректное подключение к USB порту — использовать задние порты USB 2.0 компьютера, не использовать USB хабы
Более подробно о данной ошибке «Waiting for Device» читайте в специальной посвященной этому статье Waiting for Device.
WiFi
WiFi в моем телефоне работает через модуль ядра. WiFi включен — модуль загружен. WiFi выключен — модуль выгружен. Если подменить модуль на свой, то при включении WiFi должен загрузиться подставной модуль. На моё счастье цифровая подпись модулей не проверялась. Первое, что я попробовал, это собрать и загрузить модуль, который отключает SELinux путем замены памяти ядра на Amazon Fire Phone: https://github.com/chaosmaster/ford_selinux_permissive
Чтобы собрать модуль, требуется более-менее соответствующие исходники ядра и файл Module.symvers. Если исходники точно соответствуют тому ядру, что используется на телефоне, то , сгенерированный автоматически при сборке ядра должен подойти.
Если при загрузке модуля ядро будет ругаться (disagrees about version of symbol module_layout), то потребуется извлечь из раздела. Это можно сделать, используя скрипт https://github.com/glandium/extract-symvers:
Нельзя просто так взять и собрать свой модуль для телефона Kyocera.
Помните доступных для загрузки модулей? Модуль должен называться wlan и никак иначе. Решается это просто:
- создаю symlink на исходник модуля
- правлю Makefile
Модуль на удивление загрузился (память, которую занимает модуль wlan сократилась, проверяется командой lsmod), но SELinux не отключился.
В dmesg не было никакой информации от подставного модуля. А всё потому, что у ядра есть еще один параметр: , который фильтрует INFO логи, в том числе модулей. Я понизил порог всех логов: . Перезагрузил модуль и увидел, что модуль просто не нашел требуемой маски, потому отключить SELinux не удалось.
Единственное, что я не уяснил, как программно вызвать отключение и включение WiFi. Мне приходится выключать/включать WiFi вручную через интерфейс Android.
** ADB RUN 4 **
Буду благодарен всем за донат, а также это будет отличным стимулом, развивать программу дальше!
Скачать программу ADB RUN (Win 7 — 10)
ADB RUN
версия v.4.16.19.27
Что нового в программе ADB_RUN_v.4.16.19.27
Новое:—Удалено:—Исправлено:Несколько правок в меню connect Wi-Fi, небольшая чистка кодаОбновлено:Создание резервной копии в adb backup, скрипт массовой установки apk, при отправке файла на android (adb push) теперь отображается процент выполненной операции
Пример работы с программой версий 3.X.
Что умеет ADB RUN?
- Раздавать интернет с компьютера на Android
- Управлять Android с компьютера
- Прошивать в Fastboot
- Прошивать в Sideload
- Восстанавливать работу Xiaomi находящиеся в «в вечной загрузке»
- Снятие образа с разделов Android
- Удалять графический ключ
- Снимать скриншоты и записывать видео
- Объединять внутреннюю память с SD
и многое другое…
Обзор инструкция ADB RUN
В чем заключается суть программы ADB RUN? В чем так сказать плюсы, от обычного использования adb в командной строке?
Программа ADB RUN имеет псведо-графический интерфейс, куда забито множество различных команд, разбитых на категории, которые вы используете каждый день.
В этой программе гораздо быстрей и проще перезагрузить Android, а после прошить телефон в fastboot, сделать скриншот, выполнить бекап, выполнить сброс графического ключа.
Привыкли использовать командную строку? Одно нажатие и вы переключаетесь с ADB RUN в командную строку или adb shell, а можно вообще написать свой скрипт для автоматизации действий и скормить программе.
Примеры как работать с программой ADB RUN
За каждым пунктом в меню программы закреплена цифра. Нажимаем на клавиатуре необходимую цифру и кнопку ENTER, попадаем в необходимое меню, снова нажимаем необходимую цифру, чтобы выполнить действие.
Сейчас коротко изучим все пункты меню в программе Adb Run.
adb devices, fastboot decices — подключен ли телефон
Узнать видит ли ADB или Fastboot ваш телефон, проще простого. Все отображено в главном окне, вверху.
Меню Reboot Android — ADB RUN быстро перезагружает Android в выбранный режим — Download, EDL, Recovery, Bootloader.
Прошивка Fastboot в ADB RUN
ADB RUN позволяет прошивать в fastboot
Меню Fastboot позволяет стереть разделы, а также прошить их. Другими словами вы можете здесь установить прошивку на Android с помощью Fastboot в пару кликов.
ADB Sideload
Если у вас есть прошивка «по воздуху», то установить ее возможно с режима ADB Sideload. В ADB RUN, все сделано так, чтобы прошивка прошла как можно проще.
Скачать и отправить файлы на Android с помощью ADB Run
Перемещение файлов в adb run
Необходимо перемещать файлы? Тогда вам необходимо воспользоваться меню Move (Pull / Push).
Unlock Gesture Key
Меню Unlock Gesture Key — многим любимый раздел, все потому, что позволяет разблокировать графический ключ Android и появилась возможность разблокировать Pin-коды и фейс коды.
Unlock Bootloader
Если вам необходимо разблокировать Bootloader на Android, а возиться c adb не охота, то ADB Run упростит этот процесс, что разберется каждый.
Memory and Partition позволяет узнать все о существующих блоках и разделах Android.
Backup
Необходимо создать Backup? ADB RUN позволяет создать резервную копию с помощью adb, так и снять img образ с необходимого раздела. Читайте подробней создание резервной копии с Android девайса.
Install / Unistall Android App (APK)
Меню отвечающее за установку приложений, в том числе и массовую, либо же здесь вы сможете удалить системные apk Android.
Screenshot / Record
Необходимо создать скриншот экрана в программе или в режиме Recovery? А может записать скринкаст? Это также возможно!
Update ADB and Drivers
ADB Run работает благодаря утилите adb, которую периодически надо обновлять, сделать это можно прямо из программы. Также можно скачать новые драйвера Google Driver.
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.
fota
В некоторых случаях полезно игнорировать обновления прошивки.
FOTA — firmware over the air. В отличие от boot и recovery, fota — это неофициальный режим загрузки Android. Задача fota — обновить прошивку. В Kyocera для этого используется решение от компании Red Bend, которое в 35Mb умещает обновление не только ядра но и раздела . Потому запись в раздел запрещена, иначе наложение патча на неправильные данные может окирпичить телефон.
На мой телефон имелось обновление. Отважиться на него я мог потому, что я уже имел возможность писать в и прервать обновление в любой момент.
Изучив исходники отвечающего за обновление Java приложения, мне стало ясно как оно происходит:
- Java приложение скачивает специальный файл , создает файл , подтверждающий успешную загрузку файла, и другие файлы с header’ами.
- При подтверждении обновления еще раз проверяется наличие этих файлов.
- Если файлы на месте, то через библиотеку происходит модификация раздела .
- Происходит перезагрузка.
Перезагрузка происходит не моментально, значит у меня есть возможность удалить файл перед перезагрузкой и посмотреть что происходит с разделом fotamng.
Пишу команду, которая непрерывно делает дамп раздела и переименовывает . Запускаю её сразу после соглашения о перезагрузки телефона. Телефон перезагружается в режим FOTA, рапортует об отсутствии обновления и перезагружается в обычный режим.
Начинаю изучать данные, которые сдампил. В разделе бонусом получаю логи fota, в которых даже есть логи dmseg! Сама перезагрузка в fota инициализируется байтами «1» в разделе fotamng:
После перезагрузки они обнуляются
В dmesg я обратил внимание на наличие параметра ядра kcdroidboot.mode=f-ksg. Вот оно! Т.е
загрузчик снимает защиту для fota. И чисто теоретически, если я запишу раздел boot в fota и перезагружу телефон в этот режим, то я получу ядро с отключенной защитой Kyocera. Но писать в системные разделы я всё еще не могу.
Команды ADB
Перед выполнением команд adb полезно знать, какие экземпляры устройств подключены к серверу adb. Список подключенных устройств можно посмотреть следующей командой.
В ответ adb выведет серийный номер, состояние и описание (параметр -l) подключенных устройств.
В примере ниже показаны три устройства. Первые два — эмуляторы, третье — аппаратное устройство, подключенное к компьютеру.
Если запущен только один эмулятор или подключено только одно устройство, команда adb отправится на это устройство по умолчанию. Если же запущено несколько эмуляторов и / или устройств, необходимо использовать параметры -d, -e или -s, чтобы указать устройство, на которое должна быть направлена команда.
Нижеприведенная команда отправится на устройство с указанным серийным номером.
Команда отправится только на устройство подключенное через USB. Выдаст ошибку, если подключено больше одного устройства.
Команда отправится на устройство в эмуляторе. Выдаст ошибку, если подключено больше одного эмулятора.
Подсоединиться к андроид хосту по протоколу TCP/IP (по умолчанию порт 5555, если не указан другой).
Отсоединиться от андроид подключенного через TCP/IP (по умолчанию порт 5555). Если не задан ни один параметр, отключиться от всех активных соединений.
Перезапуск демона с правами root.
В некоторых случаях может потребоваться остановить сервер adb, и перезапустить его, чтобы решить проблему (например, если adb не отвечает на команды).
Остановить сервер.
Запустить сервер.
Копировать файл или папку на устройство.
Например,
Копировать файл или папку с устройства на компьютер.
Копировать с компьютера на устройство только новые файлы. С ключом -l не копировать, только создать список.
Установить приложение на устройство.
Например,
Ключи:-l блокировка приложения;-r переустановить приложение, с сохранением данных;-s установить приложение на карту памяти.
Чтобы удалить приложение с устройства используйте следующую команду.
Ключ -k означает, не удалять сохраненные данные приложения и пользователя.
Сделать скриншот экрана устройства.
Полученный скриншот можно сразу забрать на компьютер.
Для записи видео с экрана устройства используйте команду screenrecord.
или с параметрами
Чтобы остановить запись используйте комбинацию клавиш Control + C (Command + C на Mac). По умолчанию максимальный лимит для видео составляет 3 минуты.
С полным списком команд adb можно ознакомиться на сайте .
Naptime
Doze — удивительная особенность Android. Он снижает потребление заряда батареи, приостанавливая фоновую загрузку ЦП и сети, когда экран вашего устройства выключен, отключен от сети и находится в стационарном состоянии. Он был представлен в Android 6, в то время как Android 7 принес дальнейшие улучшения.
Эта функция блокирует блокировку (если есть), временно останавливает механизмы синхронизации и предотвращает сканирование Wi-Fi и GPS. Naptime улучшает реализацию Doze с большим количеством функций. Он навязывает агрессивную Doze и пинает через несколько минут после выключения экрана.
Настройка ADB
Вставьте эту команду:
Далее введите эту команду:
После получения доступа, белый список Naptime от оптимизации батареи Android (Настройки> Приложения и уведомления> Показать все приложения X> Naptime> Дополнительно> Батарея> Оптимизация батареи) чтобы он мог нормально работать.
Уникальные черты
- Приложение простое в использовании без каких-либо сложных меню или настройки. Просто переключите параметры, перечисленные в приложении.
- Он дает вам подробную статистику Doze и историю, чтобы узнать, когда Doze начался или остановился.
- Если вы используете Tasker или MacroDroid, вы можете включить или отключить Doze по требованию.
Скачать: Naptime (бесплатно)
Scripting commands
Wait for the device to be in the specified state.
- : Values can be , , , or .
- : Values can be , , or .
Print the adb state of a device. The adb state can be , , or .
Print the adb device serial number string.
Print the adb device path.
Remount the , , and partitions in read-write mode.
Reboot the device. This command defaults to booting the system image, but also supports and .
- The option reboots into bootloader.
- The option reboots into recovery.
- The option reboots into recovery and starts mode.
- The option is the same as , but reboots after side loading completes.
Side load (install in APK format) the specified full OTA package onto the device.
Restart adbd with root permissions.
Restart adbd without root permissions.
Restart the adb server listening on USB.
Restart the adb server listening on TCP at the specified port.
Most Commonly Used Fastboot Commands
Here are some of the most commonly used Fastboot Commands.
Verify the ADB Connection
Once your device is booted to fastboot mode, enter the below command to check whether the connection is successful or not. If you see an alphanumeric code and the word fastboot written next to it (see screenshot below), it means your device is successfully connected to fastboot mode. Now you may try out other fastboot commands.
Unlock Bootloader via Fastboot
To unlock the bootloader of your device, type in any of the two codes (make sure ‘OEM Unlocking’ is enabled from the ‘Developer Options’). For most of the devices, the first code works well and fine. However, if that is not the case with you, then go for the second one. Also, note that both of these codes will wipe all your data. Make sure to create a backup before proceeding. Do Read: How to Unlock Bootloader of Any Android Device
Boot to TWRP via Fastboot
To boot a recovery file on your device, enter the below code: Don’t Miss: How to Boot into TWRP Recovery
On Redmi devices, you may also use the fastboot reboot command and at the same time, press and hold the Volume Up key. Your device will straightaway boot to TWRP.
Don’t Miss: TWRP: fastboot flash vs fastboot boot: Which command to use
Install File to Boot Partition
To flash (install) a boot file from the command shell, such as flashing magisk patched boot.img, type in the below code:
Check Current Active Slot
If you have a dual A/B Partition device, then you could check the current active partition via the following command:
fastboot getvar all
After executing this command, refer to the (bootloader) current-slot: section.
Change Active Partition
If your device is A/B Partition, and you want to switch slots, say from A to B, type the below command: For all the A/B partition Commands, refer to this guide: How to Check and Change Current Active Slot on Android.
To reboot your device to Android OS, enter the below code: