Как это работает: смартфоны. Как устроен Android

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

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

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. При покупке приложений права пользователя могут быть не защищены.

По умолчанию 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-права.

В этой статье я попробую рассмотреть безопасность чуть-чуть повыше ядра, а именно: как работает безопасность в Native user space. Мы коснемся темы процесса загрузки операционной системы и рассмотрим структуру файловой системы Android. Как я уже говорил, я не очень силен в Linux, поэтому если заметите неточности, то исправляйте - меня научите и статью улучшите. Так как эта тема довольно обширная, я решил разбить её на две части. В первой части мы рассмотрим процесс загрузки операционной системы и особенности файловой системы. Всем кому интересно, добро пожаловать!

Список статей

Здесь собраны ссылки на мои статьи из этой темы:
  1. Основы безопасности операционной системы Android. Уровень ядра
  2. Основы безопасности операционной системы Android. Native user space, ч.1
  3. Основы безопасности операционной системы Android. Native user space, ч.2
  4. Основы безопасности операционной системы Android. Безопасность на уровне Application Framework. Binder IPC

Что подразумевается под Native user space

Под Native user space подразумеваются все компоненты пространства пользователя, которые выполняются вне Dalvik Virtual Machine, и которые не являются частью Linux kernel.

Файловая система Android

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

Adb shell ls -al
В моем терминале для эмулятора на Android 4.2 я вижу следующий результат:

Drwxr-xr-x root root 2013-04-10 08:13 acct drwxrwx--- system cache 2013-04-10 08:13 cache dr-x------ root root 2013-04-10 08:13 config lrwxrwxrwx root root 2013-04-10 08:13 d -> /sys/kernel/debug drwxrwx--x system system 2013-04-10 08:14 data -rw-r--r-- root root 116 1970-01-01 00:00 default.prop drwxr-xr-x root root 2013-04-10 08:13 dev lrwxrwxrwx root root 2013-04-10 08:13 etc -> /system/etc -rwxr-x--- root root 244536 1970-01-01 00:00 init -rwxr-x--- root root 2487 1970-01-01 00:00 init.goldfish.rc -rwxr-x--- root root 18247 1970-01-01 00:00 init.rc -rwxr-x--- root root 1795 1970-01-01 00:00 init.trace.rc -rwxr-x--- root root 3915 1970-01-01 00:00 init.usb.rc drwxrwxr-x root system 2013-04-10 08:13 mnt dr-xr-xr-x root root 2013-04-10 08:13 proc drwx------ root root 2012-11-15 05:31 root drwxr-x--- root root 1970-01-01 00:00 sbin lrwxrwxrwx root root 2013-04-10 08:13 sdcard -> /mnt/sdcard d---r-x--- root sdcard_r 2013-04-10 08:13 storage drwxr-xr-x root root 2013-04-10 08:13 sys drwxr-xr-x root root 2012-12-31 03:20 system -rw-r--r-- root root 272 1970-01-01 00:00 ueventd.goldfish.rc -rw-r--r-- root root 4024 1970-01-01 00:00 ueventd.rc lrwxrwxrwx root root 2013-04-10 08:13 vendor -> /system/vendor
Я отмечу здесь только главные директории и те, которые нам пригодятся в будущем. В Интернете можно найти описание и предназаначение других директорий. Можно заметить, что некоторые директории такие же, как и в Linux, например, /dev , /proc , /sys , /mnt , /etc И их предназначение в основном такое же, как и в Linux. Кстати, отметьте, что мы не видим /bin и /lib директорий. Где они скрылись, я расскажу чуть позже.

C другой стороны можно заметить директории, которых в Linux вообще нет. Среди них нас интересуют /data , /system , /cache , /init , /init.rc Давайте рассмотрим их назначение поподробнее.
/system Это главная директория, где хранятся неизменяемые компоненты Android системы. Если проводить аналогию, то эта папка похожа на папку C:\windows\ , доступную только для чтения. Т.е. изменять данные в этой директории мы не можем. Как раз здесь можно найти директории /bin и /lib , где хранятся различные исполняемые файлы и shared libraries. Кроме того, здесь же лежат системные приложения, которые встроены в операционку и которые, по умолчанию, нельзя удалить. Содержимое этой директории формируется во время компиляции операционной системы.
/data Т.к. /system у нас доступна только для чтения, то должна быть директория где хранятся изменяемые данные. /data как раз ею и является. Например, в эту директорию в /data/app сохраняются apk файлы устанавливаемых приложений, а в /data/data хранятся их данные (эту директорию мы подробно рассматривали в прошлой статье).
/cache Это просто временное хранилище. Также в эту директорию сохраняются, а потом из неё запускаются системные обновления.

Чтобы понять, что такое /init файл и для чего нужны непонятные файлы с расширением *.rc, рассмотрим процесс загрузки системы.

Процесс загрузки Android

Давайте рассмотрим несколько шагов процесса загрузки операционной системы Android. Эта картинка взята из книги «Embedded Android», там же можно найти и более детальное описание. Хотя в целом я и понимаю процесс, но для меня это больше магия:)

CPU. Когда вы нажимаете на кнопку включения, на процессор вашего устройства начинает подаваться напряжение. Так как до этого момента процессор был выключен, и так как он не способен сохранять свое состояние без подачи напряжения, то сразу после старта он находится в некотором неинициализированном состоянии. В данном случае процессор считывает из своего специального регистра некоторый жестко зашитый адрес и начинает выполнять инструкции начиная с него. Чаще всего, этот адрес указывает на чип, в который зашит bootloader (загрузчик).
Bootloader. Bootloader инициализирует RAM и загружает в неё Linux kernel. Кроме того Bootloader создает RAMdisk.
Linux kernel. Ядро инициализирует различные подсистемы, встроенные драйвера и монтирует root filesystem (корневую файловую систему). После этого ядро может запускать первую программу.
На этом магия заканчивается и дальше всё становится более-менее понятно.

Init

Первой программой в случае Android является init . Исполняемый файл находится в корневой директории (/init ). Именно эту программу стартует ядро после своей загрузки. Её исходники находятся в папке Давайте в них слегка покопаемся. Нас интересует :

Int main(int argc, char **argv) { ... /* clear the umask */ umask(0); /* Get the basic filesystem setup we need put * together in the initramdisk on / and then we will * let the rc file figure out the rest. */ mkdir("/dev", 0755); mkdir("/proc", 0755); mkdir("/sys", 0755); mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755"); mkdir("/dev/pts", 0755); mkdir("/dev/socket", 0755); mount("devpts", "/dev/pts", "devpts", 0, NULL); mount("proc", "/proc", "proc", 0, NULL); mount("sysfs", "/sys", "sysfs", 0, NULL); ... init_parse_config_file("/init.rc"); ... }
Вначале мы создаем и монтируем некоторые необходимые для работы директории, а потом парсим файл /init.rc и выполняем то, что распарсили. Формат /init.rc файла очень хорошо описан в , там же можно найти и пример. Если кратко, то этот файл представляет собой набор actions (секций - именнованная последовательность комманд). Каждая последовательность команд срабатывает по определенному trigger (триггеру). Например, следующая последовательно - это action, в которой trigger - это fs, а последовательность команд - это набор mount команд:


Исходный файл /init.rc находится в Давайте рассмотрим некоторые основные его части, хотя я вам очень советую просмотреть его полность. После этого многие вещи вам должны стать понятны. Итак, начинается наш файл следующими строками:

Import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc
Они означают, что кроме init.rc файла нужно также импортировать настройки из файлов init.usb.rc , init.trace.rc и из файла с непонятным именем init.${ro.hardware}.rc Впрочем, ${ro.hardware} - это просто переменная, значение которая определяет тип железа. В случае эмулятора, её значение, например, - goldfish . Далее определяются переменные окружения:

On init ... # setup the global environment export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin export LD_LIBRARY_PATH /vendor/lib:/system/lib export ANDROID_BOOTLOGO 1 export ANDROID_ROOT /system export ANDROID_ASSETS /system/app export ANDROID_DATA /data export ANDROID_STORAGE /storage export ASEC_MOUNTPOINT /mnt/asec export LOOP_MOUNTPOINT /mnt/obb export BOOTCLASSPATH /system/framework/core.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar ...
После этого происходит инициализация переменных, необходимых для работы устройства. Если вас заинтересует эта тема, то вы легко найдете информацию о той или иной комманде. Давайте подробно рассмотрим следующий блок (который я уже приводил в этой статье):

On fs # mount mtd partitions # Mount /system rw first to give the filesystem a chance to save a checkpoint mount yaffs2 mtd@system /system mount yaffs2 mtd@system /system ro remount mount yaffs2 mtd@userdata /data nosuid nodev mount yaffs2 mtd@cache /cache nosuid nodev
MTD - Memory Technology Devices. Если в общих чертах, то MTD - это специальный чип с энергонезависимой (т.е. данные на этом чипе сохраняются после перезагрузки или выключения) flash-памятью (типа NOR или NAND), на который сохраняются образы дисков. В этой статье более подробно рассказывается об этом типе устройств, а также об ограничениях. Специально для этих разновидностей flash-памяти были разработаны специальные файловые системы, например, YAFFS. Одно из самых важных ограничений этих типов памяти заключается в том, что для того чтобы записать данные в сектор, куда уже записаны какие-то данные, вам надо полностью сначала стереть весь сектор. Поэтому производители стали переходить на новый тип блочной flash-памяти (eMMC), на которые можно поставить обычную ext4 файловую систему и избавиться от указанного ограничения. Т.к. я показываю пример init.rc файла для эмулятора, где вся работа эмулируется, то в нем по умолчанию используется файловая система YAFFS2 (думаю, что это пережитки прошлого, т.к. YAFFS2 использовалась для всех устройств до Android 2.2). В реальном устройстве (это как раз один из примеров, когда необходимо использовать init.rc файл для определенного железа) эти комманды будут перезаписаны. Например, в случае устройства herring (Google Nexus S), в файле эта секция выглядит следующим образом:

On fs mkdir /efs 0775 radio radio mount yaffs2 mtd@efs /efs noatime nosuid nodev chmod 770 /efs/bluetooth chmod 770 /efs/imei mount_all /fstab.herring ...
Где fstab.herring - это , содержимое которого выглядит следующим образом:

... /dev/block/platform/s3c-sdhci.0/by-name/system /system ext4 ro wait /dev/block/platform/s3c-sdhci.0/by-name/userdata /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,encryptable=/efs/userdata_footer
Как вы могли заметить, /system , /data , /cache - это просто mounting points (точки монтирования файловой системы), которые указывают либо на MTD устройства (в случае эмулятора), либо на блочные устройства (в случае настоящего устройства), куда записаны соответствующие дисковые образы (system.img, userdata.img и cache.img). Я не уверен, но думаю, что внутри смартфона находится один единственный чип с flash-памятью, разделенный на partitions (тома), в каждый из которых записан соответствующий образ. Этот чип с flash-памятью - то, что мы знаем под именем Internal storage (внутренняя память), объем которой - один из основных параметров смартфона.

Следует заметить, что /system смонтирован read-only (только для чтения). Это означает, что содержимое данного раздела не изменяется в процессе работы устройства, а только когда вы, например, обновляете систему на вашем устройстве (используя системные обновления).

Продолжим рассматривать наш init.rc . По триггеру post-fs-data формируется базовая структура файловой системы /data раздела. Там, в общем всё понятно - набор mkdir , chown , chmod команд.

Далее init.rc запускает несколько демонов. Если вернуться к рисунку в начале статьи, то они перечислены в блоке Native daemons. На этом мы пока остановимся. Как вы могли заметить из рисунка, я не полностью рассмотрел процесс загрузки операционной системы. Некоторые непокрытые этапы я рассмотрю в следующих статья.

Заключение

В следующей части я расскажу, откуда берутся образы system.img, userdata.img и cache.img и рассмотрю безопасность на уровне Native user space. Как всегда приветствуются исправления, дополнения, а так же предложения, о чем написать. И хотя у меня уже есть некоторый план, о чем писать в следующих статья, я готов его подкорректировать.

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

Чем так хороша ОС Android

На рынке мобильных операционных систем сегодня главенствует, как многим известно, всего два представителя – iOS и Android. Этим двум противоборствующим ОС удалось попросту вытеснить всех остальных игроков, которым приходится довольствоваться ничтожным процентом.

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

В открытости и распространенности и заключаются преимущества Андроид. Систему в своих целях используют и производители смартфонов, планшетов, умных часов, и автоконцерны. Кроме того, продукция, выпускаемая на Android, как правило, дешевле конкурентов на других операционных системах.

Устройства Android: где только не используется система

Ну что ж, теперь непосредственно к устройствам на Android. Их огромное число, потому мы затронем самые распространенные.

Смартфоны и Android

Первым устройством, которому выпала честь опробовать на себе преимущества Андроид, стал, конечно же, смартфон. Случилось это не так уж и давно – осень 2008 года. Всего-то девять лет назад был выпущен первый девайс на этой системе! Первым смартфоном был HTC Dream, который имел выдвижную клавиатуру и простецкие характеристики, которые не идут ни в какое сравнение с нынешними флагманами.

Смартфон был построен на базе чипа Qualcomm MSM7201A – одно ядро и частота 528 МГц. Эту «мощь» дополнили 192 Мб оперативной и 256 Мб постоянной памяти, благо можно было установить карту памяти на 16 Гб. 3.2-дюймовый экран получил разрешение 320×480 точек. И, как ни крути, для того времени это был настоящий прорыв.

После HTC Dream потенциал Андроид рассмотрели многие компании, открыв новую эру мобильных ОС. В Россию первый смартфон на Android приехал только в 2009 году, и стал им ни какой-нибудь там Samsung или LG, а HIGHSCREEN PP5420. И аппарат выглядит интересно даже сейчас.

Он обзавелся двумя экранами (дополнительный OLED ), процессором Qualcomm MSM7201A, ОЗУ 128 МБ, ПЗУ 256 МБ.

Однако операционная система тогда считалась выбором гиков, а большинству пользователей было комфортно с мобильными телефонами от Nokia. Прыжок выше головы Android сделала, когда обновилась до версии 2.3 (2011 год). Десятки компаний стали выбирать эту систему, да и пользователи рассмотрели потенциал.

Что имеем сегодня? Все крупнейшие производители (сами знаете за исключением кого) используют в своих смартфонах Android, добавляя что-то свое в код системы, дабы сделать ее лучше. Каждый год система обновляется, получая приставку в названии. С выходом новых версий пополняется арсенал возможностей Android. И нет никаких предпосылок, чтобы рынок смартфонов отказался от системы в ближайшие годы.

Планшеты


Планшет

Одним из первых представителей планшетов на Android стал Samsung Galaxy Tab, который попал на полки магазинов в 2010 году. Корейская компания выпускала устройство, чтобы навязать конкуренцию iPad, который уже тогда был готов стать лидером продаж.

До Samsung уже были попытки выпустить планшет на Андроид, но они либо просто не увенчались успехом, либо прошли незамеченными. Первый Galaxy Tab работал на версии 2.2, которая была явно не лучшим выбором для подобного класса гаджетов – она просто не была приспособлена в то время для планшетов, что не скрывала и Google. Хотя Samsung и постаралась ее доработать.

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

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

Телевизоры, Mini PC, игровые приставки и TV Box на Android

Вслед за смартфонами, планшетами и некоторыми другими устройствами Андроид проник и в мультимедийные устройства. Еще летом 2012 года Nexus представила медиа-развлекательное устройство Q, которое подключалось к телевизору и воспроизводило различный контент. Работал гаджет на Android 4.0. Позже, в 2014 году, Google показала – ответвление, которое предназначалось для приставок и телевизоров. Android TV перенял всю функциональность основной системы, став более адаптированным к управлению пультом ДУ.

За широкие возможности ОС особенно приглянулась многим производителям , которые, подключаясь к телевизору, превращают его в некое подобие большого смартфона. Очень любимы эти устройства китайскими компаниями, выпускающими ТВ Боксы по 2000-3000 рублей. На Android TV выпускаются и некоторые модели телевизоров, но большинство крупных компаний имеет свои системы , от которых не желает отказываться.

Кроме того, с выходом Android 4.4 в интернет-магазинах появилось немало Mini PC на этой системе – небольшие устройства (часто в виде флешки), которые, по сути, представляют собой все те же TV Box. Главное их достоинство – компактность, позволяющая носить в кармане.

Многим пользователям интересна Android и как игровая система. Компании же стараются потворствовать желаниям покупателей. Уже сегодня на прилавках магазинов электроники можно найти игровую приставку на Android от , а также кучу портативных моделей от китайских компаний.

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

Носимая электроника и техника для дома

Относительно недавно новым трендом стала умная носимая электроника, в числе которой оказались . На волне популярности Android выпустила в 2014 году свою систему для умных часов – . Как и полноценную ОС, ее постарались сделать наиболее удобной и функциональной. Сегодня на Android Wear доступны часы от таких крупных брендов как Samsung, LG, Huawei, Sony и других.

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

Интересные приборы для кухни с операционной системой Андроид «на борту» представляют почти на каждой выставке. Кроме того, падает постепенно и цена на подобные устройства, что способствует их быстрому распространению.

Ноутбуки, камеры, проекторы, электронные книги

Есть ноутбуки, работающие на Android. Их относительно немного, но Google сегодня готова приложить все усилия, чтобы их продукт навязал конкуренцию системе уже десктопной – Windows. Кроме того, каждый пользователь может опробовать Андроид на своем компьютере или ноутбуке, причем совершенно бесплатно.

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

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

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

Устройства для автомобилей


Фото: Андроид-магнитола Shuttle SDVA-6950 v2

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

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

Заключение

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


Тебя никогда не интересовало, как работают fastboot или ADB? Или почему смартфон под управлением Android практически невозможно превратить в кирпич? Или, может быть, ты давно хотел узнать, где кроется магия фреймворка Xposed и зачем нужны загрузочные скрипты /system/etc/init.d? А как насчет консоли восстановления (recovery)? Это часть Android или вещь в себе и почему для установки сторонней прошивки обычный рекавери не подходит? Ответы на все эти и многие другие вопросы ты найдешь в данной статье.

Как работает Android

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

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

Шаг первый. ABOOT и таблица разделов

Все начинается с первичного загрузчика. После включения питания система исполняет код загрузчика, записанного в постоянную память устройства. Затем он передает управление загрузчику aboot со встроенной поддержкой протокола fastboot, но производитель мобильного чипа или смартфона/планшета имеет право выбрать и любой другой загрузчик на его вкус. Например, компания Rockchip использует собственный, несовместимый с fastboot загрузчик, для перепрограммирования и управления которым приходится использовать проприетарные инструменты.

Протокол fastboot, в свою очередь, представляет собой систему управления загрузчиком с ПК, которая позволяет выполнять такие действия, как разлочка загрузчика, прошивка нового ядра и recovery, установка прошивки и многие другие. Смысл существования fastboot в том, чтобы иметь возможность восстановить смартфон в начальное состояние в ситуации, когда все остальные средства не работают. Fastboot останется на месте, даже если в результате экспериментов ты сотрешь со смартфона все разделы NAND-памяти, содержащие Android и recovery.

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

  • boot - содержит ядро и RAM-диск, обычно имеет размер в районе 16 Мб;
  • recovery - консоль восстановления, состоит из ядра, набора консольных приложений и файла настроек, размер 16 Мб;
  • system - содержит Android, в современных девайсах имеет размер не менее 1 Гб;
  • cache - предназначен для хранения кешированных данных, также используется для сохранения прошивки в ходе OTA-обновления и поэтому имеет размер, сходный с размерами раздела system;
  • userdata - содержит настройки, приложения и данные пользователя, ему отводится все оставшееся пространство NAND-памяти;
  • misc - содержит флаг, определяющий, в каком режиме должна грузиться система: Android или recovery.

Кроме них, также могут существовать и другие разделы, однако общая разметка определяется еще на этапе проектирования смартфона и в случае aboot зашивается в код загрузчика. Это значит, что: 1) таблицу разделов нельзя убить, так как ее всегда можно восстановить с помощью команды fastboot oem format; 2) для изменения таблицы разделов придется разлочить и перепрошить загрузчик с новыми параметрами. Из этого правила, однако, бывают исключения. Например, загрузчик того же Rockchip хранит информацию о разделах в первом блоке NAND-памяти, так что для ее изменения перепрошивка загрузчика не нужна.

Особенно интересен раздел misc. Существует предположение, что изначально он был создан для хранения различных настроек независимо от основной системы, но в данный момент используется только для одной цели: указать загрузчику, из какого раздела нужно грузить систему - boot или recovery. Эту возможность, в частности, использует приложение ROM Manager для автоматической перезагрузки системы в recovery с автоматической же установкой прошивки. На ее же основе построен механизм двойной загрузки Ubuntu Touch, которая прошивает загрузчик Ubuntu в recovery и позволяет управлять тем, какую систему грузить в следующий раз. Стер раздел misc - загружается Android, заполнил данными - загружается recovery… то есть Ubuntu Touch.

Шаг второй. Раздел boot

Если в разделе misc не стоит флаг загрузки в recovery, aboot передает управление коду, расположенному в разделе boot. Это не что иное, как ядро Linux; оно находится в начале раздела, а сразу за ним следует упакованный с помощью архиваторов cpio и gzip образ RAM-диска, содержащий необходимые для работы Android каталоги, систему инициализации init и другие инструменты. Никакой файловой системы на разделе boot нет, ядро и RAM-диск просто следуют друг за другом. Содержимое RAM-диска такое:

  • data - каталог для монтирования одноименного раздела;
  • dev - файлы устройств;
  • proc - сюда монтируется procfs;
  • res - набор изображений для charger (см. ниже);
  • sbin - набор подсобных утилит и демонов (adbd, например);
  • sys - сюда монтируется sysfs;
  • system - каталог для монтирования системного раздела;
  • charger - приложение для отображения процесса зарядки;
  • build.prop - системные настройки;
  • init - система инициализации;
  • init.rc - настройки системы инициализации;
  • ueventd.rc - настройки демона uventd, входящего в состав init.

Это, если можно так выразиться, скелет системы: набор каталогов для подключения файловых систем из разделов NAND-памяти и система инициализации, которая займется всей остальной работой по загрузке системы. Центральный элемент здесь - приложение init и его конфиг init.rc, о которых во всех подробностях я расскажу позже. А пока хочу обратить внимание на файлы charger и ueventd.rc, а также каталоги sbin, proc и sys.

Файл charger - это небольшое приложение, единственная задача которого - вывести на экран значок батареи. Он не имеет никакого отношения к Android и используется тогда, когда устройство подключается к заряднику в выключенном состоянии. В этом случае загрузки Android не происходит, а система просто загружает ядро, подключает RAM-диск и запускает charger. Последний выводит на экран иконку батареи, изображение которой во всех возможных состояниях хранится в обычных PNG-файлах внутри каталога res.

Файл ueventd.rc представляет собой конфиг, определяющий, какие файлы устройств в каталоге sys должны быть созданы на этапе загрузки системы. В основанных на ядре Linux системах доступ к железу осуществляется через специальные файлы внутри каталога dev, а за их создание в Android отвечает демон ueventd, являющийся частью init. В нормальной ситуации он работает в автоматическом режиме, принимая команды на создание файлов от ядра, но некоторые файлы необходимо создавать самостоятельно. Они перечислены в ueventd.rc.

Каталог sbin в стоковом Android обычно не содержит ничего, кроме adbd, то есть демона ADB, который отвечает за отладку системы с ПК. Он запускается на раннем этапе загрузки ОС и позволяет выявить возможные проблемы на этапе инициализации ОС. В кастомных прошивках в этом каталоге можно найти кучу других файлов, например mke2fs, которая может потребоваться, если разделы необходимо переформатировать в ext3/4. Также модеры часто помещают туда BusyBox, с помощью которого можно вызвать сотни Linux-команд.

Каталог proc для Linux стандартен, на следующих этапах загрузки init подключит к нему procfs, виртуальную файловую систему, которая предоставляет доступ к информации обо всех процессах системы. К каталогу sys система подключит sysfs, открывающую доступ к информации о железе и его настройкам. С помощью sysfs можно, например, отправить устройство в сон или изменить используемый алгоритм энергосбережения.

Файл build.prop предназначен для хранения низкоуровневых настроек Android. Позже система обнулит эти настройки и перезапишет их значениями из недоступного пока файла system/build.prop.


Выносы из текста

  • Fastboot останется на месте, даже если в результате экспериментов ты сотрешь со смартфона содержимое всех разделов NAND-памяти
  • Раздел recovery полностью самодостаточен и содержит миниатюрную операционную систему, которая никак не связана с Android
  • Слегка изменив файл fstab, мы можем заставить init загрузить систему с карты памяти

Шаг второй, альтернативный. Раздел recovery

В том случае, если флаг загрузки recovery в разделе misc установлен или пользователь включил смартфон с зажатой клавишей уменьшения громкости, aboot передаст управление коду, расположенному в начале раздела recovery. Как и раздел boot, он содержит ядро и RAM-диск, который распаковывается в память и становится корнем файловой системы. Однако содержимое RAM-диска здесь несколько другое.

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

В стандартном (стоковом) recovery таких функций обычно всего три: установка подписанных ключом производителя смартфона прошивок, вайп и перезагрузка. В модифицированных сторонних recovery, таких как ClockworkMod и TWRP, функций гораздо больше. Они умеют форматировать файловые системы, устанавливать прошивки, подписанные любыми ключами (читай: кастомные), монтировать файловые системы на других разделах (в целях отладки ОС) и включают в себя поддержку скриптов, которая позволяет автоматизировать процесс прошивки и многие другие функции.

С помощью скриптов, например, можно сделать так, чтобы после загрузки recovery автоматически нашел на карте памяти нужные прошивки, установил их и перезагрузился в Android. Эта возможность используется инструментами ROM Manager, auto-flasher, а также механизмом автоматического обновления CyanogenMod и других прошивок.

Кастомные рекавери также поддерживают скрипты бэкапа, располагающиеся в каталоге /system/addon.d/. Перед прошивкой recovery проверяет наличие скриптов и выполняет их перед тем, как произвести прошивку. Благодаря таким скриптам gapps не исчезают после установки новой версии прошивки.

Команды fastboot

Чтобы получить доступ к fastboot, необходимо установить Android SDK, подключить смартфон к ПК с помощью кабеля и включить его, зажав обе кнопки громкости. После этого следует перейти в подкаталог platform-tools внутри SDK и запустить команду

Fastboot devices

На экран будет выведено имя устройства. Другие доступные команды:

  • fatsboot oem unlock - разлочка загрузчика на нексусах;
  • update файл.zip - установка прошивки;
  • flash boot boot.img - прошивка образа boot-раздела;
  • flash recovery recovery.img - прошивка образа раздела recovery;
  • flash system system.img - прошивка образа системы;
  • oem format - восстановление разрушенной таблицы разделов;

Шаг третий. Инициализация

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

Каждый блок определяет стадию загрузки или, выражаясь языком разработчиков Android, действие. Блоки отделены друг от друга директивой on, за которой следует имя действия, например on early-init или on post-fs. Блок команд будет выполнен только в том случае, если сработает одноименный триггер. По мере загрузки init будет по очереди активировать триггеры early-init, init, early-fs, fs, post-fs, early-boot и boot, запуская таким образом соответствующие блоки команд.


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

Наиболее примечательный из дополнительных конфигов носит имя initrc.имя_устройства.rc, где имя устройства определяется автоматически на основе содержимого системной переменной ro.hardware. Это платформенно-зависимый конфигурационный файл, который содержит блоки команд, специфичные для конкретного устройства. Кроме команд, отвечающих за тюнинг ядра, он также содержит примерно такую команду:

Mount_all ./fstab.имя_устройства

Она означает, что теперь init должен подключить все файловые системы, перечисленные в файле./fstab.имя_устройства, который имеет следующую структуру:

Имя_устройства_(раздела) точка_монтирования файловая_система опции_фс прочие опции

Обычно в нем содержатся инструкции по подключению файловых систем из внутренних NAND-разделов к каталогам /system (ОС), /data (настройки приложений) и /cache (кешированные данные). Однако слегка изменив этот файл, мы можем заставить init загрузить систему с карты памяти. Для этого достаточно разбить карту памяти на три 4 раздела: 1 Гб / ext4, 2 Гб / ext4, 1 Гб / ext4 и оставшееся пространство fat32. Далее необходимо определить имена разделов карты памяти в каталоге /dev (для разных устройств они отличаются) и заменить ими оригинальные имена устройств в файле fstab.


В конце блока boot init, скорее всего, встретит команду class_start default, которая сообщит, что далее следует запустить все перечисленные в конфиге службы, имеющие отношение к классу default. Описание служб начинается с директивы service, за которой следует имя службы и команда, которая должна быть выполнена для ее запуска. В отличие от команд, перечисленных в блоках, службы должны работать все время, поэтому на протяжении всей жизни смартфона init будет висеть в фоне и следить за этим.

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

Команды init.rc

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

  • exec /путь/до/команды - запустить внешнюю команду;
  • ifup интерфейс - поднять сетевой интерфейс;
  • class_start имя_класса - запустить службы, относящиеся к указанному классу;
  • class_stop имя_класса - остановить службы;
  • insmod /путь/до/модуля - загрузить модуль ядра;
  • mount ФС устройство каталог - подключить файловую систему;
  • setprop имя значение - установить системную переменную;
  • start имя_службы - запустить указанную службу;
  • trigger имя - включить триггер (выполнить указанный блок команд);
  • write /путь/до/файла строка - записать строку в файл.

Шаг четвертый. Zygote и app_process

На определенном этапе загрузки init встретит в конце конфига примерно такой блок:

Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class default socket zygote stream 660 root system onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart restart media onrestart restart netd

Это описание службы Zygote, ключевого компонента любой Android-системы, который ответственен за инициализацию, старт системных служб, запуск и остановку пользовательских приложений и многие другие задачи. Zygote запускается с помощью небольшого приложения /system/bin/app_process, что очень хорошо видно на приведенном выше куске конфига. Задача app_proccess - запустить виртуальную машину Dalvik, код которой располагается в разделяемой библиотеке /system/lib/libandroid_runtime.so, а затем поверх нее запустить Zygote.

Когда все это будет сделано и Zygote получит управление, он начинает формирование среды исполнения Java-приложений с помощью загрузки всех Java-классов фреймворка (сейчас их более 2000). Затем он запускает system_server, включающий в себя большинство высокоуровневых (написанных на Java) системных сервисов, в том числе Window Manager, Status Bar, Package Manager и, что самое важное, Activity Manager, который в будущем будет ответственен за получение сигналов о старте и завершении приложений.

После этого Zygote открывает сокет /dev/socket/zygote и уходит в сон, ожидая данные. В это время запущенный ранее Activity Manager посылает широковещательный интент Intent.CATEGORY_HOME, чтобы найти приложение, отвечающее за формирование рабочего стола, и отдает его имя Zygote через сокет. Последний, в свою очередь, форкается и запускает приложение поверх виртуальной машины. Вуаля, у нас на экране появляется рабочий стол, найденный Activity Manager и запущенный Zygote, и статусная строка, запущенная system_server в рамках службы Status Bar. После тапа по иконке рабочий стол пошлет интент с именем этого приложения, его примет Activity Manager и передаст команду на старт приложения демону Zygote

INFO

В терминологии Linux RAM-диск - это своего рода виртуальный жесткий диск, существующий только в оперативной памяти. На раннем этапе загрузки ядро извлекает содержимое диска из образа и подключает его как корневую файловую систему (rootfs).

В процессе загрузки Android отображает три разных загрузочных экрана: первый появляется сразу после нажатия кнопки питания и прошит в ядро Linux, второй отображается на ранних этапах инициализации и записан в файл /initlogo.rle (сегодня почти не используется), последний запускается с помощью приложения bootanimation и содержится в файле /system/media/bootanimation.zip.

Кроме стандартных триггеров, init позволяет определять собственные триггеры, которые могут срабатывать от самых разных событий: подключения устройства к USB, изменения состояния смартфона или изменения состояния системных переменных.

Кроме всего прочего, Activity Manager также занимается убийством фоновых приложений при нехватке памяти. Значения порогов свободной памяти содержатся в файле /sys/module/lowmemorykiller/parameters/minfree.

Все это может выглядеть несколько непонятно, но самое главное - запомнить три простые вещи:

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: