Подробная история популярной ОС Google Android: от маленького стартапа до захвата мира
На сегодняшний день Android — это уже не просто операционная система для смартфона, а целая инфраструктура. На «зелёном роботе» работают телефоны, планшеты, телевизоры, умные часы, и другие гаджеты, а скоро и автомобили будут управляться с помощью Android. C чего начиналась история одной из самых известных ОС, а также какие взлёты и падения были у этого необычного проекта корпорации Google. Об этом и многом другом расскажем в этом материале.
На сегодняшний день последняя версия Android имеет порядковый номер 5 и кодовое название Lollipop. Система получила значительные обновления в дизайне, функциональности, в общем, это практически заново созданный продукт. Сейчас уже смартфоны Google Nexus 5 начали обновляться до этой версии ОС, а скоро и все современные смартфоны получат актуальное обновление. Однако про новый 5.0 мы расскажем отдельно, а начать хочется всё же ещё с тех времён, когда проект Android даже не принадлежал Google…
А ТЫ ЗНАЛ ?! Для чего это ПРИЛОЖЕНИЕ в твоем ТЕЛЕФОНЕ? Зачем оно нужно на ANDROID.
AndroidStand
Android: Начало
Многие считают, что история Android началась в 2008 году, когда была выпущена первая версия Android 1.0. Но на самом деле всё закрутилось на 5 лет раньше, в 2003 году, когда Энди Рубин с товарищами (Ник Сирс, Крис Уайт и Рич Майнер) решил создать мобильную операционную систему и зарегистрировал компанию Android Inc. Разработчики сначала сосредоточились на устройствах, которые могли бы постоянно находиться у пользователей, определять местоположение по GPS и автоматически подстраиваться под нужды человека.
4797e132c9
Энди Рубин, создатель Android Источник: technobuffalo.com
Для инвесторов того времени вряд ли вообще было что-то понятно. Ну а кто захочет вкладывать деньги в непонятный стартап, который пока что никаких денег не приносит… Так и случилось, что к 2005 году Энди и друзья потратили все средства, но по счастливой случайности к ним присмотрелись из Google и 17 августа 2005 года корпорация стала полноправным владельцем маленькой Android Inc. Стоит отметить, что Google на тот момент не имела каких-то особых планов на гаджеты, а была больше сосредоточена на улучшении собственного ПО и алгоритмов поиска. Страшно сказать, но на тот момент у Google не было никакого Adsense и даже YouTube (его приобрели только в 2007 году).
6a66de6bcb
Логотип Google в 2005 году В этом же году на фоне судебных разбирательств Oracle и Google решается, что Android будет свободной операционной системой и, конечно же, в первую очередь ориентироваться на внедрение сервисов Google. Так как Энди Рубин изначально занимался проектом, связанным с GPS, а у корпорации уже были Карты, предполагалось внедрение карт в телефоны.
Причём тогда ещё не было никаких смартфонов, поэтому карты могли появиться на обычной раскладушке с кнопками. Первые изображения также указывают на то, что Google ориентировался на опыт RIM с их Blackberry, так что если бы не стечение обстоятельств, то сенсорные телефоны могли бы и не появиться. Но, к сожалению или к счастью, в 2007 выходит iPhone и в Google резко пересматривают стратегию.
Тем не менее, к выпуску в 2008 готовится первая сборка Android 1.0. Однако в начале 2007 года у Google нет партнёра, который выпустил бы телефон на новой ОС. Nokia — слишком крупная компания, с которой будет конфликт интересов, Motorola ещё не отошла от взлёта продаж моделей Razr. В Google выбирают между LG и HTC.
Корейской LG интересен рынок США, однако она боится сотрудничества с неизвестным партнёром и использует договорённости с Google только для того, чтобы заключить контракты с Microsoft по созданию смартфонов с Windows Mobile. А вот HTC была готова к совместной работе, да к тому же тайваньская компания могла быстро создавать рабочие образцы. Первым известным прототипом стал Google Sooner. Тут, правда, пришлось отказаться от сенсорного экрана, эта модель создана по первоначальным спецификациям, когда Google опиралась на опыт Blackberry.
92c60af11b
Возможно первый прототип телефона на Android — Google Sooner
Источники сообщают, что первая рабочая версия датируется 15.05.2007 и называлась она тогда M3. Операционка очень напоминает интерфейс Blackberry, главную позицию занимает поисковая строка Google. В общем, если бы не появление iPhone и курса на сенсорные экраны, возможно, мы бы сейчас видели Android вот таким.
2d7db9eb72
Скриншот Android M3, возможно первой рабочей версии ОС Источник: 9to5google.com
Android: официальный старт
В Google отчетливо понимали, что с релизом Apple iPhone наличие сенсорного экрана просто необходимость, и поэтому ранние разработки пришлось отложить. Этому способствовало и общение с операторами, летом 2007 года их мнение о будущем Android были пессимистичны. В августе 2007 года в WSJ появляется статья, в которой говорится об усилиях Google относительно своего телефона и платформы.
В этом материале упоминается, что у компании два прототипа – один похож на Palm Treo с QWERTY-клавиатурой под экраном, а второй чем-то напоминает вариант Nokia. Внутри команды Android идет соревнование со временем, так как все предыдущее планы никуда не годятся и от них решили отказаться. Команда меняет сроки, и во вторую половину 2007 года выпускается М3. В версии М5, она появляется в начале 2008 года, в ней появляется статусная строка, хотя эксперименты с UI заметны невооруженным взглядом. Посмотрите видео, чтобы понять различие между этими версиями.
Источник: www.ferra.ru
Что такое Андроид и для чего он нужен
Андроид — представляет собой бесплатную операционную систему на основе которой работают смартфоны, планшеты, игровые приставки, наручные часы, телевизоры, мультимедийные проигрыватели, электронные книги и очки Google. Зачастую производители современных устройств изменяют стандартные элементы ОС фирменными приложениями, по другому группируют пункты меню и формулируют их название. Однако суть работы системы в большинстве фирменных оболочек является идентичной.
Разнообразие приложений позволит получить дополнительные возможности для пользователя и заменить базовый функционал. По сей день проводятся регулярные обновления, которые значительно расширяют возможности пользователей, повышают производительность и экономичность. Последняя версия ОС разработана в 2017 году и называется Android 8.0 Oreo. Андроид – современная платформа, которая позволяет преобразить смартфон и планшет в настоящий карманный компьютер. Кроме этого, ОС Андроид проста в управлении.
В 86 % смартфонов, проданных во всём мире во втором квартале 2014 года, была установлена операционная система Android[8]. На конференции для разработчиков в мае 2017 года Google объявила, что за всю историю Android было активировано более 2 млрд Android-устройств.
Что представляет собой Android
Сумасшедшую популярность база Андроид стала приобретать в 2008-2009 годах, вытесняя устаревшие Windows Mobile и Symbian и представляя серьезную конкуренцию соседствующему реноватору — продукции Apple. Ее появление произвело невероятный фурор на рынке умных гаджетов — Android моментально стал безукоризненным, бесспорным лидером в своей сфере.
Согласно статистике, к середине второго десятилетия 21 века на основе Андроида работало более 80% всех мобильных девайсов, в то время как продукция Эппл отошла на задний план. Android представляет собой операционную систему, которая позиционируется на условии многозадачности, и имеет современную базу Linux. Ее несомненными плюсами являются конкурентоспособная производительность и открытый, личный код. Первая версия программы была представлена еще в 2008 году. С того момента автоматические обновления появляются несколько раз в году — так, к концу 2017 году устройства уже работали на Android 8.0 Oreo.
С каждой новой версией в программе появляется все больше полезных возможностей, отмечаются лучшие показатели производительности и экономичного потребления энергии гаджета. На данный момент на Андроиде работают не только смартфоны, но также и планшетные персональные компьютеры, “умные” системы и другие устройства десятков европейских, американских и азиатских компаний.
Основные достоинства Android OS:
Режим приема/осуществления голосовых вызовов;
Работа с mailами;
Поддержка множества беспроводных модулей, которые обеспечивают круглосуточный, непрерывный выход в сеть и не только (3G, 4G, GPS/ГЛОНАСС, Wi-Fi, NFC и т. д.);
Легкость в использовании благодаря многообразию сенсорных поверхностей, чувствительных тачпадов, электронных клавиатур и т.д.;
Поддержка видеозвонков для общения с близкими на расстоянии;
Съемка видео в высоком разрешении, а также способность создавать качественные, практически профессиональные фотоснимки;
Широкая база возможностей защиты и сохранения конфиденциальности личных данных (например, верификация по отпечатку пальца или голосу);
Удобная работа с внешними устройствами и накопителями.
В некоторых Android-устройствах есть сервисы Google, обеспечивающие возможность передачи идентификационной информации на серверы компании, например, информации о перемещении пользователя в реальном времени.
В версии Android 1.6 разработчики добавили Native Development Kit, который позволяет писать собственные низкоуровневые модули для системы на языках C/С++, опираясь на стандартные Linux-библиотеки. Хотя, например, стандартная библиотека языка Си на платформе Android, известная как Bionic, как раз не является стандартной и полностью совместимой с libc.
Для доступа к Google Play и другим сервисам от Google необходимо использовать проприетарные приложения, которые производитель телефона имеет право устанавливать на телефон только после заключения контракта с Google.
Конкуренты Android выступили с критикой платформы, обвиняя её в чрезмерной фрагментации, создающей препятствия разработчикам. Но Google отвергла все обвинения, заявив, что никаких подобных проблем нет.
Подверглось критике решение Google не размещать в широком доступе код Android 3.0 Honeycomb, доступный только для участников Open Handset Alliance или по индивидуальному запросу после подписания соглашения. Google мотивирует это неготовностью платформы и мерой предупреждения небрежной её реализации. Ричард Столлман заявлял, что «всё просто и ясно: за исключением ядра Linux, Android 3 представляет собой несвободный софт» и «несмотря на то, что телефоны с Android на сегодняшний день не так плохи, как смартфоны Apple или Windows, нельзя сказать, что они уважают вашу свободу». В настоящий момент Google открыл исходный код для всех версий Android вплоть до 8.1.0, а также отправил в Linux все изменения, в соответствии с GPL.
По данным Lookout Security Mobile, за 2011 год у пользователей Android-смартфонов было украдено около миллиона долларов США (напр., отправка СМС без ведома владельца телефона).
Android (как и IOS) не поддерживает атрибут download, используемый в HTML для загрузки файлов из интернета.
Однако основным преимуществом Андроид можно считать неограниченную возможность установки абсолютно любых приложений на усмотрение пользователя. Поскольку современные разработчики не останавливаются не достигнутом и постоянно выпускают интересные, занимательные игры, полезные штучки и другой, крутой контент, возможность загрузки его в любое время (при наличии достаточного количества свободной памяти устройства) является огромным плюсом для пользователей, которые держат руку на пульсе событий. Сейчас в телефонах на базе Андроид буквально содержится целая жизнь: с их помощью можно общаться в социальных сетях, изучать необходимую информацию, просматривать новинки кинематографа, наслаждаться новыми песнями любимых исполнителей и многое другое.
Возможности Андроид
Простой и доступный интерфейс — одно из несомненных преимуществ Android. Даже начинающие пользователи, которые впервые держат в руках смартфон, смогут быстро разобраться в легком менют и стать продвинутыми пользователями без особых усилий. Приложения структурировано размещаются в устройства, а для их загрузки достаточно использовать один-единственный магазин — PlayMarket. В нем собран абсолютно весь софт для Андроид, который представлен в виде иллюстрированного, подробного каталога. С его помощью отпадает необходимость в длительном и нудном поиске нужного контента на просторах Всемирной Сети — достаточно зайти в виртуальный магазин и следовать подсказкам.
Какие приложения можно установить на устройство с Android?
Android Market позволяет загрузить множество полезных приложений и интересных игр.
Платформа Андроид позволяет скачивать и устанавливать всевозможные игры, начиная с логических и заканчивая стратегиями и шутерами. Ведь пользователи мобильных устройств частенько коротают время за играми. Поэтому разработчики стараются угодить всем.
Есть еще кто-то, кто не играл в гонки на Андроид устройстве? Наверное, таких нет. Игры можно скачать как на платной, так и на бесплатной основе в Play Маркете. Спектр игр очень велик и не оставит равнодушным ни одного пользователя
Существуют специальные приложения для камеры, которые позволяют делать снимки с использованием различных фильтров и эффектов.
Приложения по обработке фотографий превратят каждое ваше фото в настоящий шедевр. Теперь фотографировать стало гораздо проще и на Андроид-устройстве можно создавать настоящие художественные произведения искусства
Так, ваши фотографии будут не хуже, а может даже и лучше, чем у настоящего профессионального фотографа.
Огромный сенсорный дисплей позволяет установить в качестве обоев любое изображение из интернета или самостоятельно сделанный снимок.
Android поддерживает экранные виджеты. Они позволяют получить доступ к различным функциям и настройкам вашего смартфона. Для большего удобства вы можете создать собственную систему меню и ярлыков.
Виджеты облегчают использование смартфона или планшета для пользователей. Таким образом, с гаджетом справится даже ребенок.
Сменить в Андроиде на собственный вкус можно практически все, начиная от мелодии звонка и заканчивая заставками рабочих столов (кстати, для удобства пользователей их предусмотрено несколько). Вы можете слушать музыку с помощью плеера, который посоветовал вам коллега, или поменять скучный шрифт на интересные, разноцветные буквы.
Кроме того, в PlayMarket можно скачать следующие вещи:
Приложения для доступа в соцсети:
Мессенджеры, работающие от интернет-трафика;
WebMoney и похожие онлайн-кошельки;
Игры, требующие подключения к интернету и независимые от него;
“Женские” и “мужские” приложения и многое другое.
Кстати, чтобы воспользоваться некоторыми функциями, совершенно необязательно их открывать. Например, загруженные программы для демонстрации погоды обычно автоматически обновляют данные на рабочем столе, что очень удобно в течение дня.
Операционная система Android стремительно развивается. На данный момент на ее базе работают не только стандартные смартфоны, но и множественные планшеты, смарт-устройства, системы для умных домов, электронные книги, популярные в последнее время наручные часы и многое другое. Начните свое знакомство в Андроид уже сегодня, и будьте уверены в том, что вам понравится!
Что значит Андроид? Для чего нужен Андроид? Что такое Андроид в телефоне?
Сколько стоят обновления Android?
Обновления для платформы Android абсолютно бесплатны. Новые версии операционной системы обеспечивают гаджетам новые функционал и изменения, как правило, только в лучшую сторону. В первую очередь обновления получают топовые модели Андроид.
Возможность бесплатного обновления делает использование смартфона или планшета еще более желаемым. Не стоит игнорировать появление обновлений, так как это только сделает ваше устройство еще более функциональным и удобным в использовании.
Выводы
Так что же такое Андроид? Это операционная система, которая на сегодняшний день является самой популярной платформой, пользующаяся огромной популярностью среди обладателей телефонов и планшетов.
Источник: www.prorobot.ru
Android System Webview что это за программа и как её включить?
Перейдите в меню вашего устройства Андроид и найдите программу Play Market, с помощью которой выполняется поиск необходимых утилит. Для установки приложения вам необходимо иметь работающее интернет-соединение, которое может быть осуществлено как при помощи Wi-Fi, так и через точку доступа мобильного оператора.
В появившемся окне выберите категорию приложения, которое вы ищете. Если вы хотите установить какую-либо конкретную программу, воспользуйтесь строкой поиска в верхней части окна и введите туда соответствующий запрос.
После выбора программы нажмите кнопку «Установить» и дождитесь окончания процедуры. Программа будет загружена при помощи вашего интернет-соединения и автоматически будет установлена на устройство.
После появления уведомления о завершении операции перейдите на рабочий стол Андроид и нажмите пальцем на ярлыке только что установленной утилиты. После этого произойдет ее запуск.
Если вы хотите установить утилиту с расширением .apk, скачанную из интернета при помощи компьютера, необходимо предварительно настроить параметры вашего устройства. Перейдите в пункт «Настройки» — «Безопасность». На появившемся экране поставьте галочку напротив строчки «Установка из неизвестных источников».
Подключите устройство к компьютеру при помощи USB-кабеля. На экране аппарата выберите подключение в режиме хранения данных или съемного диска. Дождитесь определения устройства в операционной системе и выберите пункт «Открыть папку для просмотра файлов».
Перенесите .apk в отдельную директорию при помощи левой клавиши мыши. Дождитесь окончания операции копирования, после чего вы можете отключить ваш аппарат от компьютера.
Запустите Play Market и в поисковой строке введите запрос «файловый менеджер». Среди появившихся результатов установите наиболее понравившуюся вам программу, после чего запустите ее при помощи созданного на рабочем столе устройства ярлыка.
В списке файлов и папок найдите .apk, который вы скопировали с компьютера, и запустите его. Нажмите клавишу «Разрешить», а затем дождитесь окончания установки утилиты. После операции ярлык программы появится на рабочем столе устройства и в главном меню. Для запуска приложения достаточно будет лишь нажать на него.
Почему не запускаются приложения
Если на Android-устройстве не включается приложение, причин может быть несколько. Среди них:
- недостаток ОЗУ;
- устаревшая версия ОС;
- сбои в работе приложения или операционной системы.
Последняя обычно проявляется при длительном использовании приложения. Первая и вторая — сразу после установки.
Недостаток оперативной памяти
Главным признаком является чёрный экран после установки и запуска приложения. Решением станет восстановление части ОЗУ закрытием лишних работающих программ. Сделать это можно вручную в настройках смартфона или с помощью специального ПО, например, CCLeaner или Clean Master.
Если первый способ не помог, потребуется установить специальные утилиты ROEHSOFT SWAPit RAM EXPANDER или SWAPPER. Они используют часть пространства на карте памяти для расширения объёма ОЗУ. Такая возможность поддерживается немногими смартфонами. Чтобы определить, поддерживает ли телефон опцию swap, можно установить утилиту Memoryinfo «Восстановление и сброс» -> выбрать «Сброс настроек».
Смотрите также — Android — Общее
Источник: getikea-spb.ru
Как устроена операционная система Андроид
Те, кто использует iPhone давно, знают, как работали ранние версии iOS. Фактически это была однозадачная операционка, которая позволяла работать в фоне или прерывать работу текущего приложения только предустановленным приложениям: вы читаете книжку, вам звонят — книгочиталка сворачивается, и на экране появляется окно звонка. А вот обратная операция невозможна: книгочиталка не только не может прервать работу других приложений, но и будет убита сразу после сворачивания.
Смысл существования такой системы, конечно же, в том, чтобы сэкономить процессор, оперативную память, а также ресурс батареи. Благодаря ей (но не только) iPhone мог работать быстро в условиях ограниченных ресурсов и очень бережно относился к батарее.
Как устроена операционная система Андроид
Android всегда работал иначе. Здесь можно запустить множество различных приложений и все они будут оставаться в памяти и даже смогут работать в фоне. Вы открываете браузер, вводите адрес и, пока загружается страница, запускаете почтовый клиент и читаете письма. Все как на десктопе, с тем исключением, что вам не нужно заботиться о закрытии приложений, система сделает это сама, когда оперативная память подойдет к концу или ее не хватит для размещения запускаемого приложения (само собой, в первую очередь в расход пойдут редко используемые приложения). Этот механизм называется 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 не стал жить дольше, так что неизвестно, сработал ли этот механизм вообще.
И наконец, в Android 8.0 Google пошла на радикальный шаг — запретила работу фоновых служб. Но с двумя исключениями:
Приложение в некоторых случаях, например когда оно находится на экране, может запускать службы, но Android прибьет их после ухода приложения в сон.
Видимые пользователю службы до сих пор разрешены. Это так называемый foreground service, служба, которая видна в панели уведомлений и имеет иконку в статусбаре.
Казалось бы, да, службы — это зло, но как теперь быть таким приложениям, как противоугонное, которое должно работать незаметно в фоне? Или тот же почтовый клиент? Из-за необходимости периодически проверять почту он должен висеть в панели уведомлений?
На самом деле нет. Google шла к запрету служб еще с версии 5.0, где появился так называемый JobScheduler. Это специальная подсистема, которая позволяет приложениям попросить Android выполнить ту или иную работу в такое-то время или при возникновении такого-то события (подключение к интернету, например). И да, JobScheduler сильно напоминает аналогичную функцию из iOS.
Binder
Вопреки расхожему мнению, Android с самых первых версий использовал песочницы для изоляции приложений. И реализованы они были весьма интересным образом. Каждое приложение запускалось от имени отдельного пользователя Linux и, таким образом, имело доступ только к своему каталогу внутри / data / data .
Друг с другом и с операционной системой приложения могли общаться только через IPC-механизм Binder, который требовал авторизации на выполнение того или иного действия. Этот же механизм использовался и для несколько других целей: с его помощью система оповещала приложения о системных событиях, таких как входящий вызов, пришедшее СМС, втыкание зарядки и так далее. Приложения получали сообщения и могли на них отреагировать.
Эта особенность дала 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.
Именно поэтому на свет появился проект microG, задача которого — воссоздать самую важную функциональность сервисов Google в открытом коде. Уже сейчас microG позволяет получить доступ к своему аккаунту, активировать push-уведомления, доступ к картам Google и определению местоположения по сотовым вышкам. И все это при размере в четыре мега и почти полном отсутствии требований к оперативке и ресурсу батареи.
У проекта есть собственная сборка прошивки LineageOS, которая из коробки включает в себя microG и все необходимые для его работы модификации.
Ядро Linux и рантайм
Android основан на ядре Linux. Ядро управляет ресурсами смартфона, в том числе доступом к железу, управлением оперативной и постоянной памятью, запуском, остановкой и переносом процессов между ядрами процессора и многими другими задачами. Как и в любой другой ОС, ядро — это сердце 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-девайсе можно без всяких проблем запустить полноценный Linux-дистрибутив. Один нюанс — доступ к нему можно будет получить либо только через консоль, либо используя VNC-соединение. Также существует проект Maru OS, позволяющий использовать смартфон в качестве ПК на базе Debian при подключении к монитору. Ту же функцию обещает Samsung при подключении своих смартфонов к монитору с помощью дока DeX.
Начиная с версии 4.4 Android умеет использовать систему принудительного контроля доступа SELinux для защиты от взлома и получения прав root. SELinux разработана Агентством национальной безопасности США и, если не вдаваться в детали, позволяет ограничить приложения (в том числе системные низкоуровневые компоненты) в возможностях. И речь вовсе не о полномочиях, которые юзер предоставляет приложениям, а о таких вещах, как системные вызовы и доступ к тем или иным файлам, невзирая на стандартные права доступа UNIX.
Серия уязвимостей Stagefright, поразивших Android несколько лет назад, позволяла получить контроль над устройством, просто заставив юзера открыть пришедшую MMS или специальный файл в браузере. Проблема состояла в мультимедиафреймворке Stagefright, содержащем сразу несколько уязвимостей переполнения буфера. При открытии специальным образом подготовленного мультимедиафайла эксплоит использовал уязвимость и запускал на устройстве код от имени Stagefright (который работал под рутом).
Все эти баги Google благополучно закрыла, а также поработала над модуляризацией кода фреймворка и его запуском в специальных доменах SELinux. Эти домены запрещают компонентам, ответственным за обработку мультимедиа, использовать большую часть системных вызовов Linux, включая системные вызовы группы execve, которые как раз и были причастны к запуску зловредного кода.
Сегодня SELinux используется для защиты почти всех системных компонентов Android. И это стало причиной резкого снижения количества найденных багов в Android. Но привело к фокусировке взломщиков на ядре, а точнее тех самых закрытых драйверах, аудит кода которых никто не проводил и безопасность которых не гарантирована (а она, как оказалось, находится в плачевном состоянии).
Выводы
Android определенно не самая стандартная ОС. Многие свои черты она позаимствовала из операционной системы Inferno, к созданию которой приложили руку разработчики языка С, UNIX и Plan 9. А эти ребята явно знали, что делали.
Источник: tech-geek.ru