Открытый исходный код c телефон. Открыт ли Android? Как открыть исходный код страницы в браузере

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

Лучшие альтернативы Android с открытым исходным кодом

1. Kai OS

Вы знали, что Kai OS претендует на то, чтобы стать третьей крупнейшей мобильной операционной системой в мире? Скорее всего, нет.
Что ж, это неудивительно. KaiOS вышла на рынок не так давно - в 2017 году - но за неполные два года стала платформой для огромного количества мобильных телефонов.
В чем тут секрет? В отличие от других операционных систем, Kai OS «заточена» не под смартфоны, а под фичерфоны - классические сотовые телефоны, оснащенные продвинутыми опциями. Низкая цена в сочетании с функционалом, присущим «умным» телефонам, обеспечивает фичерфонам достаточно большую популярность.

Будучи форком канувшей в лету Firefox OS (см. ниже), Kai OS также базируется на ядре Linux.
Оценить потенциал Kai OS можно по тому факту, что недавно Google инвестировал в эту операционную систему 22 миллиона долларов.

2. Tizen

Опенсорсная мобильная операционная система Tizen поддерживается сообществом Linux Foundation, из-за чего ее часто называют официальной мобильной ОС Linux. Помимо Linux Foundation, Tizen также поддерживают такие техногиганты, как Samsung и Intel. Релиз первого смартфона с ОС Tizen, Samsung Z, состоялся в январе 2015 года (хотя изначально был запланирован на конец 2013-го) на южно-азиатском рынке. К сожалению, большого успеха на рынке Индии Samsung Z не снискал.

Несмотря на то, что операционная система Tizen базируется на ядре Linux, в ней не раз обнаруживали уязвимости. Честно говоря, в будущее данной ОС верится с трудом. Похоже, что рано или поздно Tizen себя изживет.

3. Plasma Mobile

В 2015 году разработчики рабочего стола KDE создали мобильную операционную систему с открытым исходным кодом Plasma Mobile. Приложение основано на ОС Kubuntu и по сути является мобильной версией десктопного пользовательского интерфейса Plasma. При этом Plasma Mobile совместима и с другими операционными системами.

Plasma Mobile работает на Nexus 5 и OnePlus One. Мобильная ОС поддерживает виджеты KDE Plasma и позволяет загружать настольные приложения на смартфоне.

4. postmarketOS

postmarketOS (сокращенно pmOS) - это предконфигурированная и оптимизированная для сенсорного управления операционная система на базе Alpine Linux с собственными программными пакетами, которые можно устанавливать на смартфоны.

Известно, что Android и iOS перестают выпускать обновления для моделей спустя несколько лет. В то же время Linux без проблем работает и на старых компьютерах. Цель postmarketOS - внедрить данный опыт и на мобильной платформе, обеспечив смартфонам 10-летний жизненный цикл.

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

5. Librem

Librem - это даже не мобильная операционная система, а безопасный зашифрованный мобильный телефон с открытым исходным кодом, который разработчики Linux-дистрибутива PureOS планируют вывести на рынок в ближайшее время.

Устройство получит оптимизированную для сенсорного управления версию PureOS, Debian, Ubuntu, SUSE, Fedora и даже Arch Linux.

Librem позиционируется как «телефон, по умолчанию ориентированный на безопасность и конфиденциальность». Смартфон работает на свободном и открытом программном обеспечении, на операционной системе GNU+Linux, и его миссия состоит в том, чтобы «создать утопию свободной разработки в противовес огороженным садам других телефонных провайдеров».
Будем наблюдать, удастся ли затея.

6. LineageOS

LineageOS - это дистрибутив Android, иначе говоря, - пользовательская прошивка. Операционная система пришла на смену гораздо более успешному Android-дистрибутиву CyanogenMod и является его форком.

Выпущенная в декабре 2016 года, на сегодняшний день LineageOS поддерживает 178 моделей смартфонов, а количество установок операционной системы, по словам разработчиков, достигло 1,7 миллионов.

7. /e/ (eelo)

/e/ (ранее eelo) - это Android-дистрибутив на основе LineageOS от разработчика Mandrake Linux. Цель проекта - создать не привязанную к Google мобильную операционную систему с открытым исходным кодом.
Предполагается, что у ОС будет собственное облако и email-сервис. Платформа /e/ должна появиться в стабильной версии в ближайшее время. Название проекта планируется снова изменить.

Sailfish OS [закрытый исходный код]

Когда компания Nokia отказалась от разработки мобильной ОС MeeGo, часть сотрудников решила спасти проект. Предполагалось, что MeeGo будет развивать сообщество Linux Foundation в рамках проекта Tizen, однако последний получил самостоятельное развитие и перестал ассоциироваться с MeeGo. Продолжением MeeGo считается Sailfish OS. В ее основу легла операционная система Mer, ставшая ответвлением MeeGo.

Первыми устройствами на базе Sailfish OS стали смартфоны Jolla, получившие горячую поддержку поклонников Nokia.
Сегодня данную операционную систему официально поддерживает более десяти мобильных устройств.
Хотя Sailfish OS имеет закрытый исходный код, ее вполне можно рассматривать, как альтернативу Android, iOS и Windows.

Firefox OS [продажи прекращены]

Несложно догадаться, что Firefox OS является опенсорс-проектом компании Mozilla, создателем интернет-браузера Mozilla Firefox. В свое время объявление о выпуске смартфонов на базе Firefox OS стоимостью всего 25$ наделало немало шума. Целевой аудиторией проекта были развивающиеся рынки вроде Бразилии и Индии. К сожалению, оказалось, что для повторения успеха Raspberry Pi одного лишь низкого ценника недостаточно. Как и в случае с Tizen, устройства ZTE на основе Firefox OS не обрели популярности и в конце 2015 года Mozilla прекратила их продажи. Однако эксперименты с Firefox OS продолжаются.

Ubuntu Touch [поддерживается сообществом]

В 2013 году король десктопных операционных систем Linux обзавелся мобильной версией - Ubuntu Touch. Компания Canonical запустила краудфандинговую кампанию, намереваясь собрать 32 миллиона долларов на разработку первого смартфона Ubuntu - Edge. Собрать удалось только 12 миллионов, но и эта сумма стала рекордной.

После провалившейся краудфандинговой кампании Canonical удалось выпустить Ubuntu Phone совместно с испанским производителем мобильных устройств bq и китайским - Meizu.
Впоследствии появилось и несколько других моделей на Ubuntu Touch. В 2017 году в Canonical приняли решение прекратить разработку своей мобильной ОС, но сообщество UBports до сих пор поддерживает Ubuntu Touch на плаву.

А что думаете вы?

Честно говоря, мы сильно сомневаемся, что какой-то из вышеперечисленных мобильных операционных систем удастся составить достойную конкуренцию Android. А что думаете вы?
Есть ли у мобильных ОС на базе Linux шанс потеснить Android на пьедестале? Или же им придется отчаянно сражаться за мало-мальски приемлемую долю на рынке, как десктопной ОС Linux? Поделитесь своим мнением в комментариях.

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

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

Если Вам когда-либо было интересно, что находится “под капотом” любимого приложения, и вы немного смыслите в программировании – эта статья для Вас. Мы расскажем, как посмотреть исходный код приложения Android прямо на вашем гаджете. Поехали!

Общие сведения

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

Как узнать исходный код приложений Android?

Для начала скачайте приложение, исходный код которого Вас заинтересовал. Затем зайдите в Play Market и скачайте утилиту под названием Show Java. Именно она будет заниматься декомпилированием. Установили? Отлично, а теперь перейдем к самому интересному – извлечению исходного кода Android программы. Запускаем Show Java.

Выберите нужное приложение из установленных, или найдите его на SD карте. Теперь нужно выбрать декомпилятор. Я обычно выбираю CRF. Если возникнут проблемы – пробуйте JaDX.

По завершению процесса вы получите список пакетов с исходниками Android приложения. Конечно, это не 100% копия кода, которую писали разработчики этого приложения. Но основная логика сохраняется, разобрать не сложно. Что делать с исходниками? Что угодно. Смотрите, разбирайте, возможно Вам будут интересны некоторые “фичи” или особенности реализации функционала программы.

Рубрика:

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

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

Сейчас такое переопределение случилось снова со словом "открытый".

Энди Рубин, Генеральный директора Мобильных платформ Google, курирующий
Android, дал новое понимание слову "открытый" в ответ
на критику Стива Джобса. Глава Apple разворошил осиное
гнездо разработчиков Android на прошлой неделе, когда упомянул, во время
длинной обличительной речи на мероприятии для прессы, что мобильная операционная
система Google на самом деле не такая уж и "открытая".

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

Но на самом деле вопрос квалификации Android-а как "открытой" операционной
системы так и остается не решенным, так как загрузка и компиляция кода сами по себе
не делают некий софт открытым. Брюс Перенс, придумавший термин "open source" и
работающий над его продвижением в течении долгих лет, с подозрением относится к определению
Рубина.

"Тот факт, что вы можете проверить какие-то коды и скомпилировать их не
означает, что у вас есть права на их использование", - говорит Перенс.

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

Android OS, в легальных определениях, open source
проект. Android выходит под лицензией
Apache 2.0 , которая позволяет любому использовать, модифицировать и
распространять код. Но хотя он и укладывается в букву закона, Android
проваливается по двум другим пунктам.

Это отсутствие общества, комюнити которое разрабатывает операционную систему
и критики, глядя на это, вполне могут говорить, что Android не более открыт, чем
закрытая Apple iOS. Перенс комментирует: "большинство
open source проектов дают мгновенный доступ к
изменениям, которые в них вносятся... и открыты для всех, кто хочет
присоединиться".

В отличии от крупных open source проектов типа
Firefox или ядра Linux, вы
как не можете видеть, что происходит с Android за сценой, так и не можете внести
сколько-нибудь значительный вклад в проект. Google
обычно объявляет о важных обновлениях Android на пресс-конференциях, совсем так,
как Apple презентует новые возможности
iPhone.

После выпуска кода интересующиеся Android-ом разработчики могу загрузить его и делать с ним что
пожелают, но они не могут видеть, что происходит с ним каждый день в недрах
компании. Если вы хотите знать как Firefox изменился за
прошлую ночь - какими бы непонятными или мизерными эти изменения не были - вы можете изучить
изменения на сайте Mozilla . То же самое справедливо
и в
отношении ядра Linux, OpenOffice
и практически каждого open source проекта с
сайтом.

Но эта правда не принадлежит Android. В то время как
Android может и имеет законное право именоваться
open source проектом, он абсолютно не такой в плане
прозрачности и комюнити.

Android просто дает вам две возможности: "Принять"
что дает Google, или полностью отказаться от
кода. Кроме возможности выпустить свою собственную версию
Android, эта ситуация на самом деле не отличается от модели
iOS, которая работает с подобной же моделью - "берите,
что Apple дает".

Джо Хьюитт из Facebook, один из создателей
Firefox, который по слухам сейчас работает над
Facebook-версией Android,
прокомментировал ситуацию в Twitter. Хьюитт сказал,
что недостаток прозрачности в разработке Android
делает эту ОС "ничем не отличающейся от iOS для меня",
добавив, что "открытый исходный код означает, что он должен контролироваться
сообществом, а не просто показываться и обсуждаться".

На следующий день Хьюитт расширил свое мнение в блоге.

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

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

К сожалению, даже если Google и захотела бы сделать
Android открытым, как Mozilla
сделала с Firefox, это скорее всего не поможет
Android быть более открытым.

В то время как подход Google и может быть
неискренним вариантом слова "открытый" - как говорит Хьюитт,
Google делает "лишь минимум для определения открытости" - есть и другая
проблема: сотовые операторы.

"Проблема во-первых в сотовых операторах и во-вторых в
Google", - говорит Перенс, "так как компания позволяет операторам
закрывать саму платформу Android от пользователей".
Другими словами, в то время как вы можете скопировать код из твиттера Рубина и
посмотреть на Android, то, что прибывает к вам вместе
с сотовым телефоном, ничуть не мене жестко контролируется, чем
iOS.

Так же как существую джейлбрейки для iPhone, так же
есть и эксплоиты для Android, дающие
root доступ и позволяющие конечным пользователям
получить хоть немного контроля над своей покупкой. То, что
Android меньше контролируется своим родителем - Android Market, например,
гораздо меньше цензурирован по сравнению с App Store -
это вторичное преимущество. Устройство не делает открытым тот факт, что
пользователь может настраивать его под свои нужды - добавление новых тем и обоев
не цель отрытого ПО.

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

Операторы объясняют, что открытые телефоны будут угрозой сети. Стив Джобс
объясняет, что открытые телефоны будут угрозой для пользователей.

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

Открытое программное обеспечение (open-source software ) предназначено для свободного доступа к исходному коду для всех желающих. Существуют разные лицензии с разными условиями использования от GPL (GNU General Public License ) и до более лояльной Apache License . Первая разрешает бесплатное распространение при условии использования этой же лицензии для последующей продукции. Вторая не требует обязательного распространения готового продукта и открытости исходного кода. Android использует обе. Внутри продолжение рассказал об открытом исходном коде и открытом ПО.

Ядро , которое используется в ОС, попадает под действие GPL . Это означает, что все изменения исходного кода должны быть доступны общественности после официального выхода софта. На практике это должно выглядеть следующим образом: такие производители как HTC , Samsung , Motorola , выпуская новое устройство, обязаны делать открытый доступ к исходному коду с моменты выпуска этого устройства. В большинстве своем производители железа немного затягивают с этим.

Исходный код для ОС Android как правило попадает под действие Apache License . Каждый может загрузить исходный код и изменить его, при этом нет необходимости делать код доступным для всех. По этой причине Android не могут изменить или усовершенствовать HTC Sense или MotoBlur. Несмотря на то, что подобная ситуация не нравится многим пользователям, она не может быть изменена в силу коммерческих причин. Если бы производители делали доступными все свои секреты, то отпала бы финансовая причина создавать различные инновации для опережения соперников в конкурентной борьбе. Таким образом, использование более лояльной лицензии является полностью оправданным. Выпуск новых устройств регулярно подтверждает это.

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

Но есть способы полностью или частично раскрыть код.

  • IDA Pro - самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
  • Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать "перевод" программы на другой язык, затереть имя фирмы и т.п.
  • Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать. Исходный код получить нельзя, но можно получить "номера строк и имена исходников", а так же имена/значения всех констант, локальных переменных, избежать "раздроблености функций" а так же получить классы с начинкой класса (почти все структуры кроме текста программы) что значительно упростит понимание работы программы. Для некоторых библиотек (dll) pdb-файлы можно скачать отдельно. Врядли уважающая себя фирма допустит утечку pdb своего стоящего продукта.
  • Debug info, существует DebugInfo-информация встроеная в exe. Если есть такая информация, и соответствующая утилита (Например на Borland Delphi собран, и он есть в наличии), то можно сделать аналогичное предыдущему пункту. Но врядли уважающая себя фирма допустит такую "глупую" ошибку (аналогично pdb).
  • Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы "подключают" в таблице импорта лишь mscorlib и всё). DisSharp плохо дизассемблирует некоторые части программы, но возможно его платная версия или платная версия подобных утилит раскрывает код лучше.
  • Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках - он раскрывается спец-утилитами (Refox например).
  • Утилита exescope.exe ResourceHacker.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
  • Если извесно чем создан код - думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).

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

P.S. Лично моё мнение - раскрывается-взламывается всё, но на это нужно потратить много-много времени. Возможно год и более (зависит от опыта и инструментов, в свободном доступе хороших инструментов нету).