Основные команды adb и fastboot

Custom ROMs/Android Forks

Существуют мобильные операционные системы, пытающиеся стать альтернативой Android, и существуют пользовательские ПЗУ на базе Android. Вам должно быть интересно, почему мы размещаем пользовательские ПЗУ в качестве альтернативы Android.

Недавнее прошлое породило различные пользовательские ПЗУ и компании, которые создают свои собственные ОС на основе кода Android. Операционные системы, разработанные с использованием базового кода Android, называются Forked Android Operating Systems.

Пользовательские ПЗУ и разветвленные ОС Android пытались заменить сервисы Google другими различными альтернативами, чтобы сделать их уникальными. Что ж, давайте посмотрим на лучшие пользовательские ПЗУ и разветвленные операционные системы Android:

2. Установка android tools

Если вы не планируете делать разработку на андроид устройстве, вам не нужно устанавливать полный SDK. Два андроид-инструмента теперь доступны для Ubuntu и Debian в виде пакетов. Они обеспечивают минимальный набор инструментов, таких как adb и fastboot.

Эти инструменты нужны именно для того что бы получить полный доступ к вашему телефону (права root) , прошить ROM, или установить стороннее ПО.

2.1. Установка минимального пакета для работы
Добавляем репозиторий в систему для установки утилит:

# sudo add-apt-repository ppa:nilarimogard/webupd8

Если «чистая ОС», то можно получить ошибку:

add-apt-repository: command not found

Решение:

# apt-get install python-software-properties && apt-get install software-properties-common

После чего все хорошо добавилось!

Обновим систему для того чтобы «подхватил» только что добавленный репозиторий:

# sudo apt-get update

Устанавливаем adb и fastboot:

# sudo apt-get install android-tools-adb android-tools-fastboot

Инструменты теперь доступны в командной строке.

2.2. Установка компилятора,  android SDK

Если вам действительно нужно установить полный Android SDK, вот шаги.

Я проверил это только процесс установки под Ubuntu и Debian, все работало!

2.2.1.Установка ORACLE JAVA 7

Чтобы установить полный Android SDK,  нужно для начала установить последнюю версию Oracle Java. Мы также должны предварительно удалить OpenJDK. Oracle Java не доступен в официальных репозиториях Ubuntu потому что это не разрешено в новой лицензии Java.

Пакет в PPA автоматически загружает (и устанавливает) Oracle Java JDK 7 с официального сайта и устанавливает его на компьютере:

Удаляем для начала openSDK, можно сделать следующим образом:

# sudo apt-get purge openjdk*

Добавляем нужный репозиторий и обновляем ОС:

# sudo add-apt-repository ppa:webupd8team/java & sudo apt-get update

Устанавливаем  Oracle Java JDK 7:

# sudo apt-get install oracle-java7-installer

2.2.2. Установка  IA32-LIBS

Android SDK все еще нуждается в пакетах 32 бит совместимости  для запуска. Так что, если вы работаете в распределение AMD64, необходимо установить пакет с a32-libs:

# sudo apt-get install ia32-libs

Эта библиотека скачает много пакетов, на некоторые нужно будет подтверждение.

2.2.3. Установка android SDK
Скачайте Android SDK. Извлеките его в одну папку и из этой папки запустите следующие команды:

# cd ./tools
# ./android sdk

iOS

Android и iOS конкурируют друг с другом, уже кажется — вечность. Android и iOS оба пользуются большой пользовательской базой. У Google есть объемы, у Apple есть прибыль. И хотя Apple никогда не поделится iOS с какой-либо другой компанией, в настоящее время она является крупнейшим конкурентом Android на рынке.

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

iOS имеет единый интерфейс для всех приложений и в отличие от Android, плавную анимацию, эксклюзивные приложения и регулярные обновления. Также отсутствие вирусов и, возможно, лучшее качества сторонних приложений. На iOS вы также получаете полный набор приложений Google, в то время как вы не найдете большинство приложений Apple на Android.

Плюсы:

  • Красивый интерфейс
  • Плавная работа
  • Регулярные обновления
  • Отличное качество приложений

Минусы:

  • Закрытая ОС
  • Устройства стоят дорого

Почему нам нужна альтернатива Android?

Мы, безусловно, любим Android, как показывает доля рынка, и Google действительно усердно работает над тем, чтобы поддерживать динамику Android. Но, как и в большинстве вещей в жизни, у нас должны быть варианты.

Есть ряд причин, по которым нам нужна альтернатива Android. Google подвергается критике по всему миру за то, что он не делает Android по-настоящему безопасным, и в отчетах утверждается, что Android наиболее подвержен вредоносным программам и вирусам.

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

Например, последняя версия Android, Android Oreo, работает только на 10% устройств, Google пытается решить эту проблему, используя Project Treble, который был представлен в Android Nougat. И хотя ситуация улучшилась, этого далеко не достаточно.

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

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

Недавно, Google запретил Huawei использовать Android, это стало большим разочарованием для всех нас. Я понимаю, что решения Google были основаны по приказу правительства США, но это все еще показывает, что может означать слишком большая власть в руках одной компании.

Миллионы пользователей смартфонов Huawei и Honor перестанут получать обновления ОС и системы безопасности в будущем. Huawei работает над своей операционной системой HongMeng, которую планируют выпустить этой осенью, чтобы противостоять этим последствиям.

В чем разница между Linux и Android

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

Девайсы с Ubuntu for Android

Мало кто знает, но есть у них и много общего. Мобильная платформа создана на ядре Linux и использует собственную реализацию Java Virtual Machine от компании Google. Это их объединяющая черта, которая связывает системы по многих параметрам. Так, например, права суперпользователя на мобильных девайсах появились вследствие создания учетной записи администратора (root) на Unix-подобных системах.

Андроид — очень многофункциональная система, что объясняется наличием поддержки Java-модулей. Чистый линукс можно представить как ОС, которая идеально подходит для устройств с ограниченными функциям: тостеров, холодильников, стиральных машин и т. д. Она позволяет этим приборам использовать всю мощь и оптимизацию Unix, которая может быть дополнена огромным количеством программ и функций для работы с периферией и датчиками.

К сведению! Смартфоны не являются однофункциональными гаджетами и часто искажают традиционные представления о линукс. Однако андроид позволяет производителям и пользователям использовать собственные схемы его использования для обновления, корректировки ОС под себя и т. д.

Поставить линукс на телефон сегодня вполне возможно

Можно ли установить линукс на планшет или телефон вместо андроида

Установить вместо андроид линукс вполне возможно. Обычно это делают на планшетный ПК, так как их экран достаточно большой, чтобы отображать командную строку или графический интерфейс в полном объеме.

Мобильных аппаратов (смартфонов), которые бы поддерживали операционную систему линукс в стоковом состоянии, практически не существует. На сегодня есть всего одна единственная модель смартфона, которая работает на Ubuntu — ОС, также основанной на Linux и Debian GNU. Найти и приобрести такой девайс достаточно сложно, так как есть он в свободном доступе не в каждой стране.

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

Обратите внимание! По данному направлению ведут активные разработки, и многие программисты пытаются создать Linux-Android совместимую прошивку, но реальность такова, что до сих пор приходится изрядно постараться, чтобы запустить даже урезанную версию юникс на своем телефоне или планшете

Некоторые фирмы уже начинают производить телефоны с предустановленной линукс

The Prerequisites to Executing ADB and Fastboot Commands

Before you could execute any of the ADB and Fastboot Commands, you will first have to checkmark a few prerequisites listed below.

STEP 1: Download Android SDK Platform Tools

First and foremost, you will have to download the Android SDK Platform Tools on your PC. This is the official ADB and Fastboot binary provided by Google and is the only recommended one. So download it and then extract it to any convenient location on your PC. Doing so will give you the platform-tools folder, which will be used throughout this guide.

STEP 2: Enable USB Debugging

Next up, you will have to enable USB Debugging on your device so as to make it recognizable by the PC in ADB mode. So head over to Settings > About Phone > Tap on Build Number 7 times > Go back to Settings > System > Advanced > Developer Options > Enable USB Debugging.

STEP 3: Open CMD inside Platform Tools

  1. Head over to the platform-tools folder, type in CMD in the address bar, and hit Enter.
  2. This will launch the CMD window with the platform-tools folder directory.
  3. You should execute all the ADB and Fastboot commands only in this CMD window.

Tizen OS

Среди всех будущих мобильных операционных систем Tizen получила наибольшую известность благодаря поддержке Samsung. Tizen родился после того, как Nokia решила прекратить разработку Meego, операционную систему, разработанную Nokia и Intel. Intel перешли в Samsung, и стали партнерами, чтобы вернуть Meego к жизни в качестве ОС Tizen.

Хотя Tizen похож на Android-скин Samsung TouchWiz, он сильно отличается. Операционная система работает в основном как Android, но для интуитивного взаимодействия существует множество жестов. Tizen OS — это операционная система HTML5, которая должна облегчить разработчикам разработку приложений.

Хотя Tizen не удалось привлечь много внимания разработчиков и пользователей, участие Samsung привлекло внимание людей. Samsung уже выпустила довольно много устройств с ОС, включая смартфоны и различные устройства Gear, поэтому мы знаем, что южнокорейский гигант действительно серьезно относится к этому

По факту, все его флагманские часы, включая Gear S4 и Galaxy Watch работают на операционной системе Tizen. Увидев тяжелое положение Huawei, я не сомневаюсь, что Samsung станет более серьезно относиться к Tizen OS, и мы скоро увидим что-то хорошее. Это одна из многообещающих альтернатив Android.

Плюсы:

  • Отличная поддержка HTML5
  • Интуитивные жесты

Минусы:

Незначительная поддержка сторонних приложений.

Windows Phone. Плиточный дизайн и минимум сторонних приложений

2010-2015 годы

На смену утратившей популярность мобильной операционной системе от Microsoft представили новую написанную с нуля Windows Phone. Хоть система и являлась приемником версии Mobile, они были абсолютно несовместимы.

В компании сделали ставку на новый плиточный интерфейс и интеграцию с собственными сервисами Xbox Live и Zune. Сама система выступала в более широкой потребительской нише без замашек на корпоративный сегмент. Привыкшие к Windows Mobile пользователи были вынуждены сменить не только любимые гаджеты, но и выбрать другую операционную систему для работы.

Разработки новой ОС велись еще с 2004 года, а релиз изначально намечался на 2009 год.

Плиточный интерфейс Metro для главного экрана Windows Phone

Основным элементом системы стал Metro-интерфейс с “живыми” интерактивными плитками. Квадратные и прямоугольные элементы меню могли выводить разную информацию или просто являться крупными ярлыками для запуска установленных приложений.

Новая ОС стала достаточно популярной, в ней было большинство привычных сегодня элементов управления и приложений.

За следующие несколько лет на данной платформе выпускались смартфоны компаний Acer, Dell, Fujitsu, Highscreen, HTC, LG, Microsoft, Nokia, Samsung, Toshiba, ZTE и другие.

Изначально пользователи с энтузиазмом восприняли новую мобильную ОС от Microsoft, но затем смартфоны на Windows Phone начали продаваться все хуже и хуже. На пике популярности в 2013 году лишь 5% продаваемых смартфонов работали на Windows Phone, в следующие годы показатель сильно просел.

Удобство и производительность системы не смогли конкурировать с уже достаточно крупными игроками iOS и Android. Главным недостатком Windows Phone многие считают плохую интеграцию с настольной ОС от Microsoft, отсутствие эксклюзивных фишек в экосистеме и медленно развивающийся магазин приложений.

MeeGo OS. Она должна была стать самой универсальной мобильной ОС

2010-2012

Интерфейс ранних версий MeeGo OS

Энтузиастам и гикам очень понравилась идея Maemo, которая базировалась на ядре Linux. После закрытия проекта Nokia образовалась независимая группа разработчиков, которая создала более совершенный клон Maemo с учетом предложений и пожеланий простых пользователей.

Главной идеей MeeGo была масштабируемость системы и большое количество потенциально поддерживаемых устройств. Так существовали специальные сборки мобильной ОС для смартфонов, планшетов, более мощная и функциональная система для нетбуков, специальные облегченные версии для умных телевизоров и приставок.

Первую официальную версию MeeGo продемонстрировали общественности в рамках конференции MWC в начале 2010 года. Идеей заинтересовались многие крупные компании, к группе разработчиков примкнули подразделения Nokia, Samsung, Intel, Pioneer, Cisco. К концу года сформированному вокруг системы сообществу удалось получить крупные инвестиции от автомобильных производителей BMW, GM, Peugeot, Citroën, Renault и Hyundai.

Смартфон Nokia N9

Изначально все выглядело очень многообещающе. Первые версии системы демонстрировали хорошую производительность на среднем железе, работали стабильно, а пользователь получал хорошую многозадачность и большое количество удобных жестов управления, которых на тот момент не было в “молодых” iOS и Android.

К сожалению, такой масштабный амбициозный проект ждал крах и забвение. Виной всему решение совета директоров Nokia, которая в то время переживала не лучшие времена. В компании всячески пытались удержаться на рынке смартфонов, а менеджеры видели спасение не в новой MeeGo ОС, а в Windows Phone от Microsoft. На перспективной разработке был поставлен крест, а остальные вложившиеся в идею компании просто не имели возможностей для развития и совершенствования системы.

Так под управлением MeeGo было выпущено всего три смартфона: Nokia N9, Nokia N900 и Nokia N950. В 2012 году разработка операционной системы прекратилась.

Usage

Connect device

Tip:

  • For some devices, you may have to enable MTP on the device, before ADB will work. Some other devices require enable PTP mode to work.
  • Many devices’ udev rules are included in , so if you have this installed, the following steps may not be necessary.
  • Make sure your USB cable is capable of both charge and data. Many USB cables bundled with mobile devices do not include the USB data pin.

To connect to a real device or phone via ADB under Arch, you must:

  1. You might want to install if you wish to connect the device to the proper entries.
  2. plug in your android device via USB.
  3. Enable USB Debugging on your phone or device:
    • Jelly Bean (4.2) and newer: Go to Settings > About Phone tap Build Number 7 times until you get a popup that you have become a developer. Build number may be under a menu called Software info on newer Android OS versions. Then go to Settings > Developer > USB debugging and enable it. The device will ask to allow the computer with its fingerprint to connect. Check allowing it permanently option will copy to the target phone’s location.
    • Older versions: This is usually done from Settings > Applications > Development > USB debugging. Reboot the phone after checking this option to make sure USB debugging is enabled.

If ( shows it as , or it is visible and accessible in IDE), you are done. Otherwise see the instructions below.

Figure out device IDs

Each Android device has a USB vendor/product ID. An example for HTC Evo is:

vendor id: 0bb4
product id: 0c8d

Plug in your device and execute:

$ lsusb
...
Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.
...

Adding udev rules

If your device is not included in (or AUR), use the following template to create a custom udev rule by replacing and with .

/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="", MODE="0660", GROUP="adbusers", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="", SYMLINK+="android_adb"
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="", SYMLINK+="android_fastboot"

Then .

Detect the device

After you have setup the udev rules, unplug your device and replug it.

After running:

$ adb devices
List of devices attached 
HT07VHL00676    device

If adb still does not detect the device after plugging your device back in, kill and restart the adb server as root and check devices again:

# adb kill-server
# adb start-server
$ adb devices

If adb devices still shows unauthorized next to your device, make sure that that device has debugging permission allowed on the device itself. A Allow USB Debugging? dialog should be presented when you physically connect the device. Select Always Allow…, then tap OK. If the dialog was never presented, try Settings > Developer Options > Revoke USB Debugging Authorizations, then tap OK, and repeat the steps in this section. If you still do not see the Allow USB Debugging? dialog, and the device is listed as unauthorized, then enter the Developer Options on the device and first uncheck USB Debugging and then check it again.

Transferring files

You can now use adb to transfer files between the device and your computer. To transfer files to the device, use:

$ adb push what-to-copy where-to-place

To transfer files from the device, use:

$ adb pull what-to-pull where-to-place

Also see .

Backup and restore

You can also backup and restore your device with adb. Moreover, no root is required to follow the process. The commands below led to backup your device to a single file which can also be successively restored.

The command to create a backup is:

$ adb backup -apk -shared -all -f backupFileName.ab

The command parameters list is:

adb backup      

Then confirm the process on your device’s display and provide a password whether a backup password has been set before.

The command to restore a previous backup is:

$ adb restore backupFileName.ab

Note: Remember that restoring operation will replaces your device contents with the backup contents.

Отладка Android по Wi-Fi

Для начала разрешите на Android устройстве отладку по USB, как описано в предыдущем разделе.

Устройство и компьютер должны быть в одной Wi-Fi сети. Убедитесь, что ваш брандмауэр или антивирусное не блокирует adb соединения.

Подключите устройство к компьютеру с помощью USB кабеля.

Разрешите устройству принимать соединения TCP/IP через порт 5555. Для этого выполните в командной строке следующую команду.

adb -d tcpip 5555

Параметр -d отправит команду только на устройство подключенное через USB.

В ответ должно появиться сообщение restarting in TCP mode port: 5555.

Если подключенных устройств несколько, возможно придется дополнительно указать серийный номер устройства.

adb -s 9A301FFAZ00DQT tcpip 5555

Узнать серийный номер и получить информацию о подключенных устройствах можно следующей командой.

adb devices -l

После того, как разрешите устройству принимать соединения TCP/IP через порт 5555, отсоедините кабель USB от компьютера.

Далее понадобится узнать ip-адрес вашего Android-устройства.

Например, для устройств Nexus, ip-адрес можно посмотреть в разделе Настройки — О телефоне (О планшете) – Статус – IP-адрес. Иногда ip-адрес указан в настройках Wi-Fi.

Подключитесь к устройству по его ip-адресу.

adb connect device_ip_address

Убедитесь, что устройство появилось в списке.

adb devices

Теперь можно выполнять отладку по Wi-Fi, без использования кабеля.

Если соединение ADB потеряно. Убедитесь, что устройство и компьютер все еще подключены к одной Wi-Fi сети. Переподключитесь, выполнив adb connect снова. Или, если не поможет, перезагрузите хост adb:

adb kill-server

Затем повторите попытку.

После проделанных шагов вы сможете подключаться к устройству без использования USB-кабеля.

Popular adb commands

Among the most popular among CyanogenMod include the following, which can be typed from a Terminal program on the attached computer:

adb shell — this command establishes a shell interface for establishing a command-line session with the device. In practical purposes, this allows a person to type “into” their devices, much as one would use a terminal program on Linux or Mac OS X computers. Individual shell commands can be sent to the device by typing adb shell

adb push — this command pushes a local file on the computer to a remote file on the device. You can include the full path to either the local or remote file.

adb pull [] — this command will pull a remote file on the device (you can include the path) to either a specified location on the computer or, if no destination is specified, to the current directory where the command was issued.

adb logcat — this command allows you to view the device log in real time. It is also very useful for discovering and reporting bugs. On newer versions of android, you can add -C (that is, adb logcat -C) to get the text to display in color.

adb install — this is used to “side-load” apps (in their .apk format) to the device.

There are many more useful commands. Check out the full instruction list here.

All Fastboot commands list

Commands WORKS
Fastboot Devices Check your device properly connected or not
Fastboot reboot Reboot your device back to normal mode
Fastboot reboot recovery Reboot your device in to the recovery mode
Fastboot OEM relock Help to relock the bootloader version of your phone
Fastboot OEM unlock Help to unlock bootloader version of your phone
Fastboot OEM device-info check the bootloader lock-unlock status
Fastboot flash recovery To flash custom recovery file in fastboot mode
Fastboot boot Help to boot directly into recovery mode without installing it
Fastboot flash file To flash any flashable zip file through fastboot mode
Fastboot getver cid Display CID version of your phone

DOWNLOAD ADB & FASTBOOT
DOWNLOAD MINIMAL ADB & FASTBOOT TOOL

Windows Mobile. Операционная система для бизнеса и гиков

2000-2010 годы

Данная система была разработана компанией Microsoft для установки в модели КПК (карманных компьютеров). Релиз системы состоялся в 2000 году, за время создания мобильная ОС сменила несколько названий и кодовых имен, ее еще называли Windows CE или Windows Pocket PC Edition.

За основу интерфейса были взяты гайдлайны операционной настольной системы Windows, оттуда же перекочевали и некоторые элементы интерфейса. Ключевой особенностью Windows Mobile был набор предустановленного софта от Microsoft, куда входили основные утилиты из офисного пакета и браузер Internet Explorer. Разумеется, приложения имели ограниченный функционал, о чем свидетельствовала пометка “Pocket” в названии каждой программы.

Система неплохо распознавала рукописный текст, который нужно было писать специальным стилусом. Пользователей подкупали функциональный почтовый клиент и доступ к файловой системе, схожий с управлением данными на ПК.

Разработчики не ставили целью сделать систему удобной для использования или простой для освоения. Программисты старались максимально перенести опыт использования полноценного компьютера на небольшой карманный гаджет. Так привыкшие ко всем особенностям и проблемам настольной “винды” пользователи КПК на Windows Mobile чувствовали себя как дома. На рабочем столе присутствовали знакомые элементы вроде кнопки Пуск и панели задач.

Позднее развитие системы разделилось на две глобальные ветви: для КПК (Windows Mobile Professional и Windows Mobile Classic) и для смартфонов (Windows Mobile Standard).

В первом случае система развивалась в изначально заданном направлении и была ориентирована на большие для своего времени “наладонники” с обязательным применением стилуса. Этим обусловлено большое количество мелких элементов и не самая удобная экранная клавиатура для ввода текста.

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

Хоть ядро у операционных систем было одинаковое, библиотеки и модули использовались разные, что часто делало невозможным запуск приложений для Professional версии на версии Standard и наоборот.

Первое время Windows Mobile уверенно чувствовала себя в бизнес сегменте, но ситуация начала меняться в конце 2000-х. Солидную долю рынка отвоевала операционная система Palm OS, часть пользователей заинтересовались смартфонами BlackBerry под управлением одноименной системы, начали свое развитие iOS (iPhone OS) и Android в 2007 и 2008 годах, соответственно. Так одна из самых популярных в сфере бизнеса операционных систем эры развития смартфонов сначала вылетела из тройки лидеров, затем из пятерки, а уже через 10 лет после своего запуска занималась скромные 4-5% бизнес ниши.

В начале 2010 года компания Microsoft анонсировала приемника Windows Mobile – новую мобильную систему Windows Phone, а через несколько месяцев прекратила выпуск обновлений старой системы.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Союз-Маркет
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: