Ос андроид структура системы. Из чего состоит смартфон. Подключение к Wi-Fi

В этой серии статей я расскажу о внутреннем устройстве Android  -  о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.


Статьи серии:

  • Как работает Android, часть 1

Немного фактов

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


Android  -  свободный и открытый проект. Большинство исходного кода (который можно найти на ) распространяется под свободной лицензией Apache 2.0.


Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия -  в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android  -  7.1.2 Nougat.


Android is Linux

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


Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.


Как и в других Linux-системах, ядро Linux обеспечивает такие низкоуровневые вещи, как управление памятью, защиту данных, поддержку мультипроцессности и многопоточности. Но  -  за несколькими исключениями  -  вы не найдёте в Android других привычных компонентов GNU/Linux-систем: здесь нет ничего от проекта GNU, не используется X.Org, ни даже systemd. Все эти компоненты заменены аналогами, более приспособленными для использования в условиях ограниченной памяти, низкой скорости процессора и минимального потребления энергии  - таким образом, Android больше похож на встраиваемую (embedded) Linux-систему, чем на GNU/Linux.


Другая причина того, что в Android не используется софт от GNU  -  известная политика «no GPL in userspace»:


We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.

Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.

Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.


В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием , оптимизированная для встраиваемых (embedded) систем  -  она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.


В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox , реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox . Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто  -  достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android , Material Terminal , Termux). Во многих «продвинутых» дистрибутивах Android  -  таких, как LineageOS (бывший CyanogenMod)  -  эмулятор терминала предустановлен.



Второй вариант  -  подключиться к Android-устройству с компьютера через Android Debug Bridge (adb). Это очень похоже на подключение через SSH:


user@desktop-linux$ adb shell android$ uname Linux

Из других знакомых компонентов в Android используются библиотека FreeType (для отображения текста), графические API OpenGL ES , EGL и Vulkan , а также легковесная СУБД SQLite .


Кроме того, раньше для реализации WebView использовался браузерный движок WebKit , но начиная с версии 7.0 вместо этого используется установленное приложение Chrome (или другое; список приложений, которым разрешено выступать в качестве WebView provider, конфигурируется на этапе компиляции системы). Внутри себя Chrome тоже использует основанный на WebKit движок Blink , но в отличие от системной библиотеки, Chrome обновляется через Play Store  -  таким образом, все приложения, использующие WebView, автоматически получают последние улучшения и исправления уязвимостей.


It’s all about apps

Как легко заметить, использование Android принципиально отличается от использования «обычного Linux» -  вам не нужно открывать и закрывать приложения, вы просто переключаетесь между ними, как будто все приложения запущены всегда. Действительно, одна из уникальных особенностей Android - в том, что приложения не контролируют напрямую процесс, в котором они запущены. Давайте поговорим об этом подробнее.


Основная единица в Unix-подобных системах  -  процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения  -  это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы  -  другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).


Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части  -  на уровне Unix  -  оперируют понятием процесса, на более высоком уровне  -  уровне Android Framework  -  основной единицей является приложение . Приложение  -  не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.


У приложений Android нет функции main() , нет одной точки входа. Вообще, Android максимально абстрагирует понятие приложение запущено как от пользователя, так и от разработчика. Конечно, процесс приложения нужно запускать и останавливать, но Android делает это автоматически (подробнее я расскажу об этом в следующих статьях). Разработчику предлагается реализовать несколько отдельных компонентов, каждый из которых обладает своим собственным жизненным циклом.


In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.

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


Этот механизм  -  Binder.

Binder

Binder  -  это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.


Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.


Binder работает не поверх System V IPC (которое даже не поддерживается в bionic), а использует свой небольшой модуль ядра, взаимодействие с которым из userspace происходит через системные вызовы (в основном ioctl) на «виртуальном устройстве» /dev/binder . Со стороны userspace низкоуровневая работа с Binder, в том числе взаимодействие с /dev/binder и marshalling/unmarshalling данных, реализована в библиотеке .


Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.


Высокоуровневые части Binder работают в терминах интерфейсов, сервисов и прокси-объектов. Описание интерфейса, предоставляемого программой другим программам, записывается на специальном языке AIDL (Android Interface Definition Language), внешне очень похожем на объявление интерфейсов в Java. По этому описанию автоматически генерируется настоящий Java-интерфейс, который потом может использоваться и клиентами, и самим сервисом. Кроме того, по.aidl -файлу автоматически генерируются два специальных класса: Proxy (для использования со стороны клиента) и Stub (со стороны сервиса), реализующие этот интерфейс.


Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.

По умолчанию Google не оснащает девайсы под управлением Android полноценным файловым менеджером, поскольку это противоречит политике компании. Доступ к различным файлам осуществляется с помощью соответствующих приложений – фото, видео, текстовый редактор и т. д. Но рано или поздно необходимость доступа непосредственно к файлам всё же возникает.

Работа со структурой папок и файлов в Android.

В какой папке находятся контакты и другие данные на Android? Формат файловой системы Android не похож на . Вот как организована внутренняя память здесь:

  1. Память устройства – это память, с которой вы будете работать. Здесь вы сможете использовать и изменять любые файлы. Как проводник Windows или Mac. Здесь хранятся данные некоторых приложений – фотографии, видео, кэш игр или интернет-браузера и т. д.
  2. SD-карта – на многих устройствах Android также есть слоты для SD-карт. Вы можете подключить SD-карту к компьютеру или другому устройству, загрузить на неё файлы и затем вставить в смартфон. Если вы используете устройство на Marshmallow и SD-карту, отформатированную для использования в качестве внутреннего накопителя, она не будет отображаться в файловом менеджере отдельно, а вместо этого станет частью вашего устройства.
  3. Root – в Android есть специальная корневая папка, в которой хранятся данные , конфиденциальная информация и т. д. Большинство файловых менеджеров не могут вносить здесь изменения из соображений безопасности. Если только у вас нет доступа root и файлового менеджера, способного его использовать. Получение root и доступ к системным данным требуют знаний об устройстве системы и назначении её компонентов, поэтому новичкам лучше не рисковать.

  • Все фотографии с камеры телефона сохраняются в этой папке, как и на других цифровых камерах. Они отображаются в утилитах «Галерея» или «Фото», но физически находятся здесь. Это касается и хранения видеофайлов.
  • Bluetooth – говорит само за себя;
  • Download. Здесь располагаются загрузки браузера. Их можно свободно изменять, удалять или перемещать. Скачанные файлы можно экспортировать на любой накопитель.
  • Movies, Music, Pictures, Ringtones, Video. Это папки, предназначенные для хранения ваших личных медиафайлов. Необходимы для быстрого доступа и синхронизации Android-смартфона с ПК.
  • папка System хранит все системные настройки и данные всех приложений смартфона.

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

Как управлять файлами и использовать файловую систему на Android

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

Как получить доступ к встроенному файловому менеджеру Android

В устройствах Android 6.x (Marshmallow) или новее есть встроенный файловый менеджер, он просто скрыт в настройках. Откройте Настройки-Память-Другое, и вы получите полный список всех файлов и папок в памяти смартфона. Приложение также можно вывести отдельным ярлыком на рабочий экран. В версии Nougat Android 7 файловый менеджер является частью приложения «Загрузки», но по сути это одно и то же. Здесь отображаются определённые типы файлов, такие как изображения, видео, музыка и загрузки. Чтобы получить доступ к полной файловой системе телефона, зайдите в Настройки-Память-Другое.

Сторонний менеджер

Но встроенный менеджер довольно слаб по сравнению с некоторыми вариантами, доступными в Google Play. Для более эффективного управления файлами установите один из доступных файловых менеджеров. Solid Explorer – один из самых популярных файловых менеджеров в Play Market. Он имеет мощные встроенные функции, такие как доступ к облачной учётной записи и двух окон в ландшафтном режиме (на любом устройстве!). Хорошо работает поддержка клиентов и часто выходят обновления. Через 2 недели бесплатная пробная версия закончится, и за дальнейшее использование придётся заплатить 2 доллара.

ES File Explorer – один из лучших root-файл менеджеров, доступных в Google Play Store. Одной из основных особенностей утилиты является использование Корзины, где хранятся недавно удалённые данные. Это бесплатное приложение не только содержит все основные функции управления файлами, но также имеет возможность управлять любыми приложениями на рутированном смартфоне. Возможности утилиты:

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

Root Browser File Manager – мощный и эффективный проводник с внушительным функционалом. Особенности:

  • Измените возможности доступа на смартфоне или других устройствах;
  • отправляйте файлы по отдельности или партиями;
  • создавайте папки и изменяйте их на своё усмотрение;
  • сделайте полную копию, удалите, переименуйте и даже переместите данные на другое устройство;
  • сохраните файлы в любом месте на устройстве.

File Manager + позволяет управлять файлами и папками на устройстве, NAS и в облачном сервисе. Управляйте файлами как в локальной папке, так и в облачном хранилище. Поддерживает все действия проводника, такие как просмотр, поиск, навигация по структуре папок, копировать/вставить, вырезать/удалить, переименовать, распаковывать и сортировать. Полный контроль над файлами мультимедиа, документами и APK. Доступ к удалённому или совместному хранилищу, например, к NAS и FTP-серверу. Проанализируйте локальное хранилище, чтобы удалить ненужные файлы.

Если вам необходим доступ к записям календаря или заметкам, необходимо отталкиваться от используемого приложения. Все файлы данных утилит находятся в папке /data/. В File Explorer от NextApp есть новые способы передачи файлов между Android и компьютером, встроена поддержка нескольких Windows, что позволяет одновременно просматривать два окна, а также поддержка большинства форматов файлов и документов, в которых хранятся приложения. Доступ к сетевому компьютеру, включая FTP, WebDAV и SMB. Просмотр аудиоконтента, плейлистов, альбомов и исполнителей.

Как добавить свои собственные мелодии и звуки уведомлений

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

Для начала вам нужно скачать мелодию звонка или звук уведомления прямо на ваше устройство Android или перенести её с компьютера на внутреннее хранилище. Android поддерживаются форматы MP3, M4A, WAV и OGG, поэтому практически любой аудиофайл, который вы можете скачать, будет работать.

Шаг 2. Скопируйте звуковые файлы в соответствующую папку

После того, как вы загрузили звуковой файл, вам нужно переместить его в нужную папку. Здесь необходимо использовать сторонний файловый менеджер. Рассмотрим процедуру на примере ES File Explorer. После установки проводника откройте его и перейдите в папку «Download» во внутренней памяти или на SD-карте (в зависимости от настроек девайса). Выделите файл длинным нажатием, затем в меню нажмите Вырезать. Нажмите кнопку «Назад» один раз, чтобы вернуться в предыдущий каталог. Здесь откройте папку Ringtones, затем нажмите «Вставить». Если на вашем устройстве нет папки «Ringtones», просто создайте её.

Шаг 3. Перезагрузите смартфон

После переноса рингтона в нужную папку перезагрузите телефон или планшет, чтобы Android мог увидеть файл. Откройте «Настройки» и перейдите к «Звук и уведомление». Выберите «Рингтон» или «Мелодия уведомления по умолчанию», найдите в списке стандартных сигналов свой и установите его в качестве мелодии звонка. Если вы используете SD-карту, получить доступ к каталогу Android можно также и через cardreader и ПК. При этом могут обнаружиться новые каталоги, которые не отображаются в проводнике Android. Тем более в том случае, если вы используете одну и ту же SD-карту на нескольких устройствах.

В какой папке находятся контакты и другие данные

Доступ к этим документам можно получить только и стороннего файлового менеджера. Файл с контактами называется contacts.db или contacts2.db, и располагается по пути:

/data/data/com.android.providers.contacts/databases/

Это файл базы данных, поэтому углубляться в его редактирование не стоит. Чтобы экспортировать контакты в файл и сохранить его на карте памяти или ПК, воспользуйтесь встроенными инструментами. Откройте «Контакты», затем «Меню», выберите «Экспорт» и отметьте нужные контакты, затем выберите «Экспорт на карту памяти» и нажмите ОК. В папке storage/sdcard1 появится документ с расширением.vcf. перенесите его на другое устройство или ПК. Чтобы восстановить контакты, зайдите в меню «Контакты», выберите «Импорт из внутренней памяти». Укажите путь, по которому хранятся контакты на вашем Android и дождитесь окончания копирования.

Текстовые сообщения и MMS также хранятся в паке data:

/data/data/com.android.providers.telephony/ databases/mmssms.db

Для их сохранения или переноса на другой девайс понадобится специальное ПО. Например, SMS Backup & Restore или другое подобное. Такой софт работает по одному принципу – запустите утилиту – Backup SMS – укажите путь для сохранения и дождитесь окончания операции. После этого скопируйте файл на ПК или другое устройство. Восстановить SMS можно с помощью той же утилиты. Выберите Restore SMS, укажите путь где хранятся смс и дождитесь окончания восстановления.

Управление данными и файлами в Android напоминает навигацию по каталогам Windows или Linux. Только здесь необходимо получить специальные разрешения на изменение системных данных – root-права.

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

Андроид, что это такое – для чайников

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

Разнообразие приложений позволит получить дополнительные возможности для пользователя и заменить базовый функционал. По сей день проводятся регулярные обновления, которые значительно расширяют возможности пользователей, повышают производительность и экономичность. Последняя версия ОС разработана в 2017 году и называется Android 8.0 Oreo. Андроид – современная платформа, которая позволяет преобразить смартфон и планшет в настоящий карманный компьютер. Кроме этого, ОС Андроид проста в управлении.

Часть первая. Первый запуск

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

Мастер первого запуска

Изначально система предложит пользователю выбрать язык интерфейса, а также подключиться к сети Wi-Fi или мобильного оператора. В каждом устройстве может быть представлено разное количество языков. В европейский моделях Андроид-устройств обязательно присутствует украинский, русский и английский языки.

В современных Андроид-устройствах предусмотрено использование интернета. Использовать основной функционал смартфона можно и без него. Если поблизости нет WiFi, можно воспользоваться мобильным интернетом. У каждого оператора сотовой связи свои тарифы, которые различаются стоимостью и параметрами. Однако, доступ к полезным опциям и интересным возможностям будет затруднён.

При первом включении мобильного телефона не рекомендуют вставлять Sim – карту, поскольку в ОС установлено по умолчанию использование мобильных данных. Эти действия позволят избежать нецелесообразного использования трафика. Сделав выбор необходимого языка меню следует нажать кнопку „Далее“, чтобы приступить к следующему этапу настроек.

Затем предстоит привязать используемое устройство к аккаунту Google. Данные действия можно пропустить и выполнить немного позже. Однако, рекомендуют сделать это сразу, потому что так вы сможете без лишних действий загрузить необходимые приложения, пользоваться электронным ящиком, магазином приложений и другими полезными сервисами компании в режиме онлайн. Пользователь может использовать уже существующий аккаунт. Если такового нет, то для регистрации в Google нажмите кнопку „Нет“, потом на „Создать аккаунт“.

Созданный аккаунт навсегда остается с пользователем, а также ранее купленные приложения и некоторые настройки. Даже если захотите поменять старый смартфон на новый. Стоит заметить, что в распоряжении пользователя будет 16 Gb „облачного пространства“, что позволит настроить синхронизацию с облачным хранилищем Google. После входа в аккаунт система задаст несколько вопросов относительно настройки смартфона. Для того чтобы никогда не потерять контакты, следует подтвердить свое согласие относительно резервного копирования данных.

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

Далее нужно указать email. После регистрации изменить его будет невозможно. Затем заполните поле с паролем и логином. Настоятельно рекомендуем их записать или запомнить. Пользователю предложат произвести настройку процедуры восстановления пароля. При этом потребуется ввести номер мобильного телефона.

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

Система задаст вопрос о согласии с правилами Google. Нажмите кнопку „Принять“. Затем введите капчу. Предоставляется дополнительная возможность привязки к аккаунту карты VISA, Paypal и других. Данная опция удобна при покупке в магазине приложений игр, музыки и программ.

В завершении процедуры настройки понадобится ввести часовой пояс, дату и текущее время. Если планируете в дальнейшем использовать Google Карты, то оставьте отметку в соответствующем пункте.

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

Перенос контактов со старого аппарата

Перенести контакты с одного Андроид-устройства на другой можно несколькими способами. Самый простой способ – синхронизация с Google. Если у вас не первый смартфон с ОС Андроид, то все записи могут быть сохранены в „облаке“ Google. Это возможно если пользователь не отключил синхронизацию контактов на старом устройстве.

Проверить, сохранились ли контакты можно следующим образом:

  1. Со старого устройства зайдите в настройки и нажмите пункт „Аккаунты“.
  2. Когда учетная запись Google привязана к устройству, то под указанным выше пунктом будет находиться надпись „Google“. В противном случае, ее необходимо подключить. Для этого выберите „Добавить аккаунт“, введите логин и пароль.
  3. Нажмите на e-mail, чтобы попасть в настройки синхронизации.
  4. Для сохранения записей с Андроид в системе сервисов Google нажмите „Контакты“. Произойдет процесс синхронизации.
  5. Затем понадобится подключить новый смартфон или планшет с Google, с той же учетной записью к которой был привязан старый аппарат.
  6. Для того, чтобы перенести контакты на новое устройстве проведите процедуру, описанную выше до пункта Gmail.

Другой способ – использование vcf-файл. Пользователю понадобится произвести экспорт данных в файл. Для этого необходимо:

  • Зайдите в телефонную книгу старого устройства.
  • Нажмите на кнопку в виде трех точек, расположенную в правом верхнем углу экрана.
  • Выберите пункт „Импорт/экспорт“. Затем нажмите „Экспорт“. В многих Андроид-устройствах данная опция может быть представлена раздельными пунктами. В этом случае пользователю нужно нажать на „Экспорт“.
  • Затем выберите путь копирования для перемещения контактов: память устройства или SD-карту.
  • Поставьте отметку напротив тех контактов, которые нужно перебросить. Если нужны все записи нажмите „Выделить все“.
  • Далее нажмите „ОК“.

Использование опции Bluetooth. Для этого активируйте данную опцию на новом и старом смартфоне. Затем включите систему обнаружения устройств, поскольку на некоторых устройствах она отключена. Зайдите в „Настройки“, затем „Bluetooth“. Поставьте отметку напротив пункта „Видно всем“ на обоих аппаратах. Потом включаем на одном поиск устройств. В открывшемся списке выберите необходимое и нажмите для соединения и передачи данных. Переходим в настройки телефонной книги. Выбираем раздел „Отметить все“ или „Отметить несколько“. После чего нажимаем „Отправить“. На другом устройстве нажимаем „Принять“.

Можно сначала перенести контакты на карту памяти, затем вставить ее в планшет или смартфон. Многие пользователи предпочитают переносить контакты с Sim-карты. Единственный минус такого метода – ограниченное количество контактов для хранения. Он подходит для тех пользователей, у которых в списке номеров не более 220 штук. Для этого необходимо, чтобы все контакты были на ней сохранены.

Зайдите в приложение телефонной книги. Выберите опцию „Экспорт/Импорт“, далее „Экспорт“. Путь копирования определяем как “Sim-карта”. Вставляем карту с номерами в новый аппарат и переносим. Заходим в телефонную книгу. Нажимаем на кнопку в верхнем правом углу. Выбираем опцию „Импорт с Sim-карты“.

Еще один способ – перенести контакты с компьютера через USB-кабель. Для этого подключаем старый аппарат к ПК и кабелю. Переносим vcf-файл с номерами телефона на компьютер. Затем таким же образом подключаем новый смартфон или планшет и переносим на него данные с ПК.

Настройка почты

Переходим к настройкам почты. Если пользователь не планирует пользоваться электронной почтой через смартфон, этот этап можно пропустить. Когда используется электронный ящик Gmail, то он автоматически настраиваться после ввода логина и пароля Google аккаунта. В том случае, когда электронная почта находится на другом ресурсе, ее придется настраивать вручную. Для этого выполните следующие действия:

  1. Запустите на устройстве встроенное приложение „Электронная почта“.
  2. Зайдите в „Настройки“.
  3. Нажмите „Добавить учетную запись“.
  4. Заполните форму: имя пользователя и пароль.
  5. Нажмите „Далее“.
  6. Система предложит выбрать протокол, по которому будет производиться связь с почтой. Как правило, почтовые сервера работают по двум протоколам: POP3 и IMAP. Выберите, тот который для вас более удобный, затем нажмите „Вход“.

Если электронный ящик находится на одном из популярных почтовых серверов, то система попытается самостоятельно определить остальные настройки и установить соединение. В ином случае для ввода имени серверов и прочих настроек нажмите кнопку „Вручную“ и введите необходимые данные почтового сервиса.

Экранная клавиатура

В работе со смартфоном часто приходится использовать клавиатуру. Для того, чтобы на Андроид вызвать клавиатуру достаточно нажать на окно для написания текста. Чтобы ее убрать, нажмите на кнопку „Назад“. Процедура ввода текста схожа с набором на ПК. Для изменения языка ввода нажмите кнопку в виде глобуса. В настройках клавиатуры можно задать в переключатель три часто используемых языка. Новое предложение в автоматическом режиме начинается с заглавной буквы.

Чтобы слово начиналось с заглавной буквы нажмите на стрелочку “Вверх”. Для введения нескольких заглавных букв подряд удержите кнопку в течении двух секунд. Для удаления текста или слова воспользуйтесь кнопкой в виде квадратика с крестиком посередине. Помимо основной клавиатуры есть несколько дополнительных со значками и смайлами. Для переключения между ними нажмите кнопку, расположенную в нижнем углу. В процессе набора текста, на экране будут выводиться подсказки слов. Если выбрать одно из них, то буквы преобразятся в готовые слова.

Чтобы сэкономить время на печати, можно скопировать слово и вставить в текст. Чтобы выделить нужное слово, тапните по нему и удержите несколько секунд. Для увеличения границ копирования потяните за маркеры по его краям. Вверху клавиатуры появится панель с функциями „Копировать“, „Вырезать“ и „Вставить“.

Подключение к Wi-Fi

Для подключения к новой сети через Wi-Fi необходимо зайти в настройки устройства, затем в раздел „Wi-Fi“. Появится список доступных в данный момент сетей. Замочек, расположенный возле значка Wi-Fi означает, что вход в эту сеть защищен паролем. Если ввести пароль один раз, то повторное подключение к такой сети Андроид-устройством происходит в автоматическом режиме, вводить пароль снова уже не потребуется.

В некоторых случаях нужная сеть может не отображаться в списке доступных. Администратор любой сети может ее сделать закрытой (невидимой) для других пользователей. Чтобы к ней подключиться, нажмите кнопку „Меню“ в верхнем углу экрана телефона, затем „Добавить сеть“. С помощью кнопки „Меню“ также можно перейти к дополнительным настройкам сети: работа сети в режиме сна и включение уведомлений о доступных и открытых сетях.

Часть вторая. Интерфейс смартфона

Интерфейс Андроид-устройства зависит от версии операционной системы и от фирменной оболочки, которую установил производитель. Однако, логика работы ОС остается неизменной.

Жесты

Управление устройством на базе ОС Андроид производится на основе жестов. К основным из них относятся:

  1. Тап – однократное касание пальцем руки по экрану.
  2. Двойной тап – аналог двойного клика мышкой. Двойное касание по сенсорному экрану смартфона.
  3. Долгий тап – касание по экрану продолжительностью в несколько секунд.
  4. Свайп – скользящее касание по экрану. Предполагает проведение пальцем по экрану смартфона слева направо, сверху вниз, либо снизу вверх.
  5. Щипок – подразумевает касание по экрану большого и указательного пальца, затем их сведение вместе.

Рабочий стол и иконки док-бара

Рабочих столов на Андроид-устройстве может быть несколько. Перелистывание их осуществляется с помощью свайпа слева направо и наоборот. Иконки док-бара расположены внизу экрана. Как правило здесь находится значок телефонной книги, браузера и программа для создания смс сообщений. Центральную кнопку используют для вызова меню со всеми установленными программами.

Строка состояния

Она расположена в верхней части экрана Андроид-устройства. Здесь отображается информация о текущем времени, заряде аккумулятора и активных уведомлениях. Некоторые пользователи называют ее „шторкой“. Чтобы ее открыть, необходимо произвести свайп сверху вниз. В строке состояния находится доступ к основным переключателям: мобильные данные, геоданные, экономия энергии, звук, книжный экран, авиарежим, фонарик, Bluetooth и Wi-Fi.

Обои, виджеты, иконки

На рабочем столе устройства находятся иконки приложений и виджеты. Последние позволяют вывести на экран необходимую информацию, что не требует повторного запуска программы. За время существования ОС Андроид были выпущены виджеты самых различных назначений. К ним относятся виджет часов, погоды, заметки, покупки и прочее. Большинство способны работать на любой прошивке. Однако, есть виджеты, которые установить на другую ОС невозможно.

Установка мелодии вызова

Для установки мелодии звонка перейдите в „Настройки“ устройства, затем в раздел „Звук“ и „Мелодия звонка“. С перечня стандартных мелодий выберите понравившуюся. Пользователю предоставляется возможность установки на вызов мелодий, загруженных с интернета. Для этого скачайте на устройство любимую композицию и установите ее на звонок. В том же разделе, где находятся стандартные мелодии нажмите на значок “Плюс” в верхнем правом углу. Таким образом добавьте загруженную мелодию в список доступных.

Часть третья. Установка приложений

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

Google Play

Для доступа к официальному магазину приложений необходим аккаунт в Google. Значок Play Market расположен на рабочем столе. Тапните по нему, чтобы запустить приложение. В верхней части экрана находится строка поиска. Если пользователю необходимо загрузить конкретное приложение, введите его название для поиска. В Google Play есть разделы: игры, приложения, музыка, книги и журналы. Внизу экрана представлен список новинок кино и самых популярных приложений.

Защита от случайных покупок

В современных играх и приложениях могут быть предусмотрены внутренние покупки, которые могут стать неприятным сюрпризом для владельца смартфона. Зачастую родители дают смартфон детям для игры. Чтобы защититься от случайной покупки необходимо установить на нее пароль. Для этого запустите Play Market и перейдите в „Настройки“. Войдите в раздел „Запрашивать пароль при покупке“ и поставьте отметку напротив пункта „Для всех покупок в Google Play на этом устройстве“.

Скидки и распродажи

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

Подобных приложений много. Самое популярное среди пользователей – AppSales. Можно использовать систему фильтров, чтобы очистить список предложений от ненужных программ. Пользователь может выбрать интересующую категорию приложений, либо конкретную программу.

Выбор программ по умолчанию

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

Если вы случайно выбрали не ту программу, какую хотели, вернуть её в диалоговое окно можно так:

  1. Зайдите в пункт меню „Настройки“.
  2. Затем в „Приложения“.
  3. Найдите необходимую программу.
  4. Нажмите „Удалить программу по умолчанию“.

Удаление программ

Для удаления программ с Андроид-устройства существует несколько способов. Первый метод:

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

Второй способ – в меню приложений найти программу, перетянуть ярлык в корзину. В некоторых смартфонах с чистым Андроидом такой возможности нет.

Третий способ – удаление через Play Market. Запустите приложение. В меню выберите раздел „Мои приложения“. Тапните по нужному приложению и выберите функцию „Удалить“.

Установка приложений из сторонних источников

Необходимые программы можно скачивать не только с официального магазина приложений, но и со сторонних сайтов. Для этого пользователю необходимо активировать соответствующую функцию на устройстве, поскольку она отключена по умолчанию. В настройках найдите вкладку „Безопасность“. Возле пункта „Неизвестные источники“ и „Проверять приложения“ поставьте галочку. Затем можно скачать установочный файл программы с расширением APK.

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

Сторонние магазины приложений

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

  1. Используйте надежные источники.
  2. Перед покупкой программы убедитесь, что ее действие распространяется на страну вашего пребывания.
  3. При покупке приложений права пользователя могут быть не защищены.

    В определенных моделях планшетов на базе платформы Android могут отсутствовать некоторые компоненты из вышеприведенного списка.

    Все «андроидные» планшеты управляются одной из версий мобильной операционной системы от компании Google. При этом, более старые версии могут не поддерживать некоторые из современных приложений.

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

    Итак, на самом нижнем уровне находятся сами аппаратные компоненты: процессоры, сенсоры, провода и печатные платы. Следующим слоем является ядро операционной системы. Ядро иногда еще называют встроенным (или фирменным) программным обеспечением. Более известно англоязычное определение «firmware». Это программное обеспечение осуществляет контроль над аппаратными ресурсами устройства, управление ими и их распределением.

    Эта часть операционной системы «переводит» на язык аппаратных компонентов те команды, которые отдает пользователь посредством удобного графического интерфейса. Образцом ядра для Android стала операционная система с открытым кодом Linux 2.6.

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

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

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

    На следующем уровне располагается инфраструктура приложений (application framework). Она является основой для всех приложений «андроидного» девайса. Инфраструктура приложений является связующим звеном между приложениями и остальными частями операционной системы.

    Google рекомендует разработчикам создавать такие приложения, которые взаимодействуют с этим слоем в рамках интерфейса прикладного программирования () разработанной поисковым гигантом операционной системы. Разработчикам остается только ознакомиться с этими правилами, имеющими отношение к API. Им не нужно задумываться о технических характеристиках каждого «андроидного» планшета.

    Самый верхний уровень программного стека содержит интерфейс пользователя и все приложения «андроидного» планшета. Именно эту часть операционной системы постоянно видит перед собой пользователь. Но за этим привлекательным и красочным слоем скрывается масса скучного, и интересного только специалистам кода.

    Как и любая другая операционная система, и другие аппаратные ресурсы планшета.

    По материалам computer.howstuffworks.com

Те, кто использует iPhone давно, знают, как работали ранние версии iOS. Фактически это была однозадачная операционка, которая позволяла работать в фоне или прерывать работу текущего приложения только предустановленным приложениям: вы читаете книжку, вам звонят - книгочиталка сворачивается, и на экране появляется окно звонка. А вот обратная операция невозможна: книгочиталка не только не может прервать работу других приложений, но и будет убита сразу после сворачивания.

Смысл существования такой системы, конечно же, в том, чтобы сэкономить процессор, оперативную память, а также ресурс батареи. Благодаря ей (но не только) iPhone мог работать быстро в условиях ограниченных ресурсов и очень бережно относился к батарее.

Как устроена операционная система Андроид

Android всегда работал иначе. Здесь можно запустить множество различных приложений и все они будут оставаться в памяти и даже смогут работать в фоне. Вы открываете браузер, вводите адрес и, пока загружается страница, запускаете почтовый клиент и читаете письма. Все как на десктопе, с тем исключением, что вам не нужно заботиться о закрытии приложений, система сделает это сама, когда оперативная память подойдет к концу или ее не хватит для размещения запускаемого приложения (само собой, в первую очередь в расход пойдут редко используемые приложения). Этот механизм называется lowmemorykiller .

Имея права root, настройки lowmemorykiller можно регулировать напрямую или с помощью специальных приложений

Важным элементом системы многозадачности были службы (service). Это особые компоненты приложений, которые могли работать в фоне абсолютно в любых условиях: включен экран или выключен, свернуто приложение или развернуто, службам плевать даже на то, запущено ли родительское приложение вообще. Оно просто говорило: «Эй, Android, мне нужны ресурсы процессора, я хочу сделать некоторые расчеты» - и получало эти ресурсы. В терминологии Android такой запрос к системе называется wakelock (а если точнее - процессорный wakelock).

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

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

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

Сама Google также предпринимала определенные действия для борьбы с «ядовитыми» службами. Большой шаг в этом направлении был сделан в Android 4.4, где появился интеллектуальный механизм, который определял, не работает ли служба слишком много времени и не сильно ли она грузит процессор, и, если это оказывалось так, прибивал ее на месте и не давал запуститься. Даже на поверхностный взгляд эта версия системы жила на батарейке заметно дольше предыдущих.

В Android 6.0 Google пошла еще дальше и оснастила ее механизмом Doze , который после определенного времени неактивности смартфона (около одного часа) переводил его в специальный энергосберегающий режим. Одна из особенностей этого режима - запрет на wakelock, то есть ни приложения, ни службы просто не могут разбудить смартфон, чтобы выполнить какую-либо работу. На глаз Android 6.0 не стал жить дольше, так что неизвестно, сработал ли этот механизм вообще.


Шкала работы Doze

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

Приложение в некоторых случаях, например когда оно находится на экране, может запускать службы, но Android прибьет их после ухода приложения в сон.
Видимые пользователю службы до сих пор разрешены. Это так называемый foreground service , служба, которая видна в панели уведомлений и имеет иконку в статусбаре.

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

На самом деле нет. Google шла к запрету служб еще с версии 5.0, где появился так называемый JobScheduler . Это специальная подсистема, которая позволяет приложениям попросить Android выполнить ту или иную работу в такое-то время или при возникновении такого-то события (подключение к интернету, например). И да, JobScheduler сильно напоминает аналогичную функцию из iOS.

Binder

Вопреки расхожему мнению, Android с самых первых версий использовал песочницы для изоляции приложений. И реализованы они были весьма интересным образом. Каждое приложение запускалось от имени отдельного пользователя Linux и, таким образом, имело доступ только к своему каталогу внутри /data/data .

Друг с другом и с операционной системой приложения могли общаться только через IPC-механизм Binder , который требовал авторизации на выполнение того или иного действия. Этот же механизм использовался и для несколько других целей: с его помощью система оповещала приложения о системных событиях, таких как входящий вызов, пришедшее СМС, втыкание зарядки и так далее. Приложения получали сообщения и могли на них отреагировать.


Работу Binder обеспечивают драйвер в ядре Linux и Service Manager

Эта особенность дала Android очень широкие возможности автоматизации, о которых мы знаем благодаря таким приложениям, как Tasker, Automate или Locale. Все эти приложения доступны и для Android 8, разве что некоторые опасные возможности, такие как включение/выключение режима полета, теперь запрещены для использования обычными приложениями.

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

К сожалению, как и службы, интенты стали проблемой для Google и пользователей Android. Дело в том, что широковещательные интенты, используемые для уведомления приложений о событиях, приходят сразу ко всем приложениям, которые заявили, что способны на них реагировать. А чтобы приложение смогло среагировать на интент, его надо запустить. Картина получается такая: на смартфоне есть двадцать приложений, которые могут реагировать на интент android.net.conn.CONNECTIVITY_CHANGE, и при каждом подключении к сети и отключении от нее система запускает эти приложения, чтобы они смогли среагировать на интент. Как это сказывается на энергопотреблении - представьте сами.

Google исправила это недоразумение опять же в Android 8.0. Теперь приложения могут регистрировать обработчики широковещательных интентов только во время своей работы (за небольшими исключениями).

Сервисы Google

Google любит бравировать тем, что Android - операционная система с открытым исходным кодом. Это, конечно же, не совсем так. С одной стороны, код Android действительно открыт, и именно поэтому мы имеем доступ к такому количеству разнообразных кастомных прошивок. С другой стороны, собрав Android из официальных исходников, вы получите систему без нескольких важных компонентов: 1) отдельных драйверов, исходники которых производитель прячет, как коммерческую тайну, 2) сервисов Google, которые нужны в первую очередь для получения доступа к аккаунту, запуска Google Play и облачного бэкапа.

Сервисы Google (Google Mobile Services) также отвечают за многие другие вещи, включая поддержку push-уведомлений, Instant Apps, Google Maps, доступ к календарю, определение местоположения по сотовым вышкам и Wi-Fi-роутерам, механизм Smart Lock, позволяющий разблокировать устройство в зависимости от некоторых условий.

В современных версиях Android сервисы Google взяли на себя настолько большую часть работы, что жить без них оказывается хоть и возможно, но очень проблематично. А с ними тоже невесело: минимальный вариант пакета GApps (который содержит только сервисы Google и Google Play) весит больше 120 Мбайт, а сами сервисы славятся своей любовью к оперативке и заряду батареи. А еще они закрыты, то есть о том, что они могут делать, знает только сама Google.


Скачать пакет с сервисами и приложениями Google для кастомной прошивки можно с сайта opengapps.org (слово open не означает, что они открыты)

Именно поэтому на свет появился проект microG, задача которого - воссоздать самую важную функциональность сервисов Google в открытом коде. Уже сейчас microG позволяет получить доступ к своему аккаунту, активировать push-уведомления, доступ к картам Google и определению местоположения по сотовым вышкам. И все это при размере в четыре мега и почти полном отсутствии требований к оперативке и ресурсу батареи.

У проекта есть собственная сборка прошивки LineageOS, которая из коробки включает в себя microG и все необходимые для его работы модификации.

Ядро Linux и рантайм

Android основан на ядре Linux. Ядро управляет ресурсами смартфона, в том числе доступом к железу, управлением оперативной и постоянной памятью, запуском, остановкой и переносом процессов между ядрами процессора и многими другими задачами. Как и в любой другой ОС, ядро - это сердце Android, центральная часть, без которой все остальное развалится.


Слоеный пирог Android

Наличие ядра Linux, а также частично совместимой со стандартом POSIX среды исполнения (в первую очередь это библиотека bionic, основанная на реализации стандартной библиотеки языка С из OpenBSD) делает Android совместимым с приложениями для Linux. Например, система аутентификации wpa_supplicant, применяемая для подключения к Wi-Fi-сетям, здесь точно такая же, как в любом дистрибутиве Linux. В ранних версиях Android использовался стандартный bluetooth-стек Linux под названием bluez (позже его заменили реализацией от Qualcomm под названием Bluedroid). Здесь даже есть своя консоль с набором стандартных UNIX/Linux-команд, реализованных в наборе Toybox, изначально созданном для встраиваемых Linux-систем.

Большинство консольных приложений, написанных для Linux, можно портировать в Android простой перекомпиляцией с помощью кросс-компилятора (главное - использовать статическую компиляцию, чтобы не получить конфликт библиотек), а имея права root, на Android-девайсе можно без всяких проблем запустить полноценный . Один нюанс - доступ к нему можно будет получить либо только через консоль, либо используя VNC-соединение. Также существует проект Maru OS, позволяющий использовать смартфон в качестве ПК на базе Debian при подключении к монитору. Ту же функцию обещает при подключении своих смартфонов к монитору с помощью дока DeX.


Старый добрый mc, запущенный в Android

Начиная с версии 4.4 Android умеет использовать систему принудительного контроля доступа SELinux для защиты от взлома и получения прав root. SELinux разработана Агентством национальной безопасности США и, если не вдаваться в детали, позволяет ограничить приложения (в том числе системные низкоуровневые компоненты) в возможностях. И речь вовсе не о полномочиях, которые юзер предоставляет приложениям, а о таких вещах, как системные вызовы и доступ к тем или иным файлам, невзирая на стандартные права доступа UNIX.

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

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

Сегодня SELinux используется для защиты почти всех системных компонентов Android. И это стало причиной резкого снижения количества найденных багов в Android. Но привело к фокусировке взломщиков на ядре, а точнее тех самых закрытых драйверах, аудит кода которых никто не проводил и безопасность которых не гарантирована (а она, как оказалось, находится в плачевном состоянии).

(1 оценок, среднее: 5,00 из 5)




Top