Как пользоваться терминалом Андроид
Как пользоваться терминалом Андроид. Приложение Эмулятор Терминала для Аndroid предоставляет возможность использования определённых команд для управления операционной системой, а так же, внесения в неё различных изменений. Для того, чтобы понять, что такое Terminal Emulator Android, как пользоваться им, нужно понимать, на чём основан механизм работы с терминалом.
Содержание:
Что такое Terminal Emulator for Android
Как известно, открытая OS Android не создавалась, что называется, «с нуля» — прообразом этой популярной операционной системы является Linux (общее название для всех Unix-подобных ОС), ядро которой стало фундаментом для разработки ОС Андроид. Ядро Линукс многими используется из-за широкого спектра функциональных возможностей, а поскольку в Android включено ядро linux, то на нём и базируется механизм работы терминала.
Программа позволяет пользователю работать в ОС Android, используя командную строку Linux. На ПК через командную строку и специальные утилиты можно выполнять настройку системы и подключать дополнительные модули. Похожие возможности стали доступны и на Андроиде с Terminal Emulator for Android.
То есть, имеются двоичные (или бинарные файлы), которые взаимодействуют непосредственно с «железом» смартфона. Через эмулятор терминала запускается текстовая команда, соответствующая каждому такому файлу.
Как пользоваться эмулятором терминала
Перед началом работы с командной строкой, нужно отдельно подчеркнуть, что наибольшую свободу в модификациях можно достигнуть, получив права «Суперпользователя» (ROOT).
Кроме того, потребуется установка BusyBox – набора Unix-утилит командной строки.
Теперь устанавливаем терминал на свой аппарат Андроид и приступаем к работе с ним.
Открываем Terminal Emulator, после чего мы увидим приглашение для ввода текста, которое должно выглядеть вот так: «u0_a106@android:/$»:
Теперь нам нужно ввести команду, например, «ls» и нажать «enter». После этого появится список файлов, находящихся в корневой директории:
Выполнение других команд может занять некоторое время, при этом будет высвечиваться белый курсор. Если вы допустили ошибку при написании, то должна появиться вот такая надпись: «/system/bin/sh: kv: not found», говорящая о том, что среди имеющихся не найдена команда kv, а затем появится приглашение для ввода.
Чтобы закрыть терминал, в правом верхнем углу нажимаем крестик, а в следующем окне, нажимаем «ОК».
Основные команды эмулятора терминала
На самом деле, команд очень много, для их просмотра пишем busybox. Теперь, чтобы посмотреть описание существующих команд непосредственно в терминале, вводим команду, сведения о которой хотим получить, и «—help». После этого должна появиться информация, но нужно учитывать, что она будет на английском языке.
Во время работы с терминалом необходимо учитывать некоторые нюансы:
- Путь к папкам и файлам пишем полностью после команд (пример: rm /storage/sdcard0/download/file).
- Нельзя допускать каких-либо ошибок или лишних пробелов.
- После ввода, команду запускаем кнопкой «enter».
- reboot recovery – перезагрузка смартфона в режиме рекавери
- date — вывести текущие дату и время
- free — использовать память и swap
- ls — вывести содержимое текущей папки
- cd — выполнить переход к нужной директории
- du — печатать объем файла
- pwd — показать полный путь к используемой папке
- service list — вывести список работающих процессов
- pm install —установка программы из apk файла
- df — показать размер объектов в указанной папке
- pm list packages — показ пакетов-файлов установленных приложений
После перечисленных ниже команд, нужно будет ввести путь к месту или объекту:
- cat – читать содержимое
- cp — копировать
- rm — удалить файл
- rmdir — удалить папку
- touch — создать файл
- mkdir — создать папку
Для следующих команд сначала пишем путь к папке (файлу), а затем, к новому месту:
- mv — переместить
- cp — копировать
pm uninstall — удалить приложение — здесь нужно указать путь /data/app/ и название файла без пробела (при необходимости название файла узнаём командой pm list packages)
ln — создать символьную ссылку на файл, причём, синтаксис в этом случае такой же, как у «cp«.
chown – смена владельца, chgrp – группы, которые нужно указать после команды, после чего, нужно написать название файла.
chmod — утилита для смены прав файла, причём, синтаксис такой же, как у предыдущей (т.е. в первую очередь права, затем файл).
insmod и rmmod — первая – подключение модулей к ядру, вторая – удаление (указанные команды могут использоваться исключительно продвинутыми пользователями).
kill — остановка процесса по его идентификатору (его можно узнать, используя утилиту ps, выводящую информацию о всех активностях).
mount, umount — используются в целях монтирования и размонтирования файловых разделов и систем (возможно использование только после тщательного изучения собственно системы).
su — полный доступ к системе на аппаратах с ROOT-доступом, после ввода команды, строка приглашения должна выглядеть вот так «root@android:/#».
Особые команды:
reboot — используется в целях перезагрузки аппарата после команды su.
exit — закрыть терминал (через эту команду можно также выйти из администратора).
В данном случае команда su используется нами для утилит, которые требуют права «суперпользователя», а дальше, чтобы что-либо не поменять случайно, нужно ввести exit, обратите внимание: приглашение снова выглядит вот так: «u0_a106@android:/ $».
Ещё об одной необычной утилите dd – она используется для копирования одного файла или раздела в другой. Её синтаксис: ddif=/dev/block/platform/mmcblk0p1 of=/storage/external_SD/image, где «if=» будет устройством, с которого копируем, а «of=» файлом, куда копируем.
Данная команда создаёт образ раздела mmcblk0p1. Она имеет ещё два параметра, это «count=» — фрагмент, записывающий новый файл, и , «bs=» — объем фрагмента в байтах. Пример: команда dd if=/storage/sdcard0/file1 of=/storage/external_SD/file2 bs=500 count=7 выполнит копирование из file1 в file2 в общей сложности семь кусков по 500 байт.
Это, пожалуй, всё, о чём мы хотели рассказать сегодня.
Источник
Программирование на телефоне используя эмулятор терминала Termux
Приветствую читателей! В этой статье я расскажу о том, как можно, имея android телефон, писать программы. Говорю сразу — root права не нужны.
Что нам понадобится?
Первое, что нам понадобится — андроид телефон со установленным на него приложением Termux (есть в Google Play). Для полноценной работы с терминалом, нам нужно достаточно памяти. У меня с десятками установленных пакетов приложение занимает 1.5 ГБ памяти.
Так же, для комфортного кодинга желательно, чтобы телефон был с поддержкой OTG, и у вас была клавиатура с подключением по USB, чтобы писать код на клавиатуре (куда удобнее). Если уж нет этого, то качаем клавиатуру Hacker’s Keyboard. В ней есть клавиша Ctrl, что нам важно.
Почему именно Termux?
Termux имеет в арсенале достаточно пакетов для работы с языками программирования: C/C++, Python, Golang, PHP, Lua.
Так же присутствуют базы данных, я знаю только о mariadb и postgresql.
Начало
При каждом запуске приложения мы видим приветствие, в котором указаны основные команды для работы с терминалом:
- pkg search — команда для поиска пакетов. Пример: pkg search vim
- pkg install — команда для установки пакета. Пример: pkg install vim
Для кодинга нам понадобится текстовой редактор. Здесь есть разные варианты, я выбирал Vim и вкратце расскажу, как с ним работать.
Установка vim:
Для примера работы с vim напишем «Hello World» на С.
После этого запустится Vim. Чтобы начать писать код, нужно нажать на клавишу «i».
Пишем код:
После этого нажимаем на клавишу «Esc», ставим двоеточие и пишем wq («:wq»). Это сохранит наш файл и изменения в нём (w — write) и закроет его (q — quit).
Важно знать!
w — сохранить изменения в файле
wa — сохранить изменения во всех файлах
q — закрыть файл
qa — закрыть все файлы
wq — сохранить изменения и закрыть файл
Теперь нам нужно скомпилировать этот код. Для начала установим компилятор:
Далее пишем следуюющее:
main.c — файл с нашим кодом
program — наша програмка.
Теперь можем запустить нашу програмку и посмотреть, работает ли она:
Источник
Установка тем через терминал android
Platform-tools: r31.0.3
ADB: 1.0.41 (31.0.3-7562133)
Fastboot: 31.0.3-7562133
Make_f2fs: 1.14.0 (2020-08-24)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 01.08.2021
ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Официальная страница
ADB позволяет:
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s Команда посылается на устройство с указанным серийным номером:
adb -p Команда посылается на устройство с указанным именем:
Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb devices Список всех подсоединенных устройств.
adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
Если не задан ни один параметр, отключиться от всех активных соединений.
adb push Копировать файл/папку PC->девайс.
adb pull [ ] Копировать файл/папку девайс->PC.
adb sync [ ] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] Удаление приложения с устройства.
Ключи:
-k Не удалять сохраненные данные приложения и пользователя.
adb wait-for-device Ждать подключения устройства.
adb start-server Запустить службу/демон.
adb kill-server Остановить службу/демон.
adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.
adb get-serialno Получить серийный номер.
adb status-window Непрерывный опрос состояния.
adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.
adb reboot bootloader Перезагрузка в режим bootloader.
adb reboot recovery Перезагрузка в режим recovery.
adb root Перезапуск демона с правами root
adb usb Перезапуск демона, прослушивающего USB.
adb tcpip Перезапуск демона, прослушивающего порт TCP.
adb ppp [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
Параметры:
defaultroute debug dump local notty usepeerdns
FastBoot — консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash Прошивает файл .img в раздел устройства.
fastboot erase Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot [ ] Скачать и загрузить kernel.
fastboot flash:raw boot [ ] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s Указать серийный номер устройства.
-p
Указать название устройства.
-c Переопределить kernel commandline.
-i Указать вручную USB vendor id.
-b Указать в ручную базовый адрес kernel.
-n
Указать размер страниц nand. по умолчанию 2048.
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V — Verbose (Низший приоритет).
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
adb logcat *:W
Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»
Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Источник