Какво е отворен код? Софтуерът с отворен код е софтуер, който прави изходния код свободно достъпен, за да може всеки да го види и използва. Фирми, физически лица, университети и много други образувания изграждат цели проекти и използват лиценз с отворен код, след което дават кода на всеки, който иска да го използва. Използваният лиценз определя как другите, които използват този код, споделят своите модификации.
Има различни лицензи с отворен код, които имат различни условия за използване, от GPL (GNU General Public License) - което позволява "безплатно разпространение при условие, че по-нататъшните разработки и приложения са поставени под същия лиценз" - до по-либерални лицензи като Apache License, който не изисква модификации да бъдат отворени и да разполагат с изходния код. Android използва и двата лиценза и ние ще ги разгледаме на свой ред.
Ядрото на Linux, което се използва в Android, е обхванато от GPL. Това означава, че всички промени, направени в изходния код, трябва да бъдат предоставени, когато двоичен файл (geek-говори за компилиран, изпълним част от софтуера) е пуснат на обществеността. Това означава, че производители като HTC, Samsung, Motorola и останалите трябва да пуснат изходния код на ядрото за всички устройства, които продават, в същото време, когато започнат да ги продават. Разбира се, това рядко се случва и в крайна сметка чакаме екип да премахне бележки, коментари на източници и други полезни неща, преди да стигне до нас. Това са кодовите версии, които ще видите споменати в интернет и се състоят от източника на ядрото и други "битове" с отворен код, които са обхванати от GPL.
Изходният код за самия Android се пуска предимно под лиценза на Apache. На всеки е позволено да изтегля изходния код и да го променя, колкото му харесва, но от тях не се изисква да предоставят своите промени под формата на изходен код за обществото. Ето защо не можем лесно да модифицираме Touchwiz на Samsung (например) - промените, които направиха в основния изходен код на Android, не са достъпни за нас. Въпреки че много хора (включително и аз) не харесват много тази ситуация, това има смисъл от бизнес гледна точка. Ако производителите трябваше да споделят всичките си тайни, нямаше да има толкова паричен стимул за иновации, така че източникът беше предложен с далеч по-либерален лиценз. Със сигурност работи, тъй като виждаме устройства от много основни играчи в света на електрониката.
Другият основен потребителски продукт на Google - Chrome OS - е написан от източника на Chromium. Писмените от Google части на Chromium са с отворен код, под лиценза BSD. Други участници използват различни лицензи с отворен код като лиценз MIT или GPL.
Важно нещо, което трябва да запомните, е, че Android и Chromium са с отворен код, но операционните системи, използвани за Nexus устройства и Chromebook, не са. Те са изградени от проекти с отворен код, но могат да съдържат собствени части за подобряване на софтуера за всяко конкретно устройство. За Nexus телефони тези собствени битове се пускат на сайта за разработчици на Android и са готови да попаднат на всичко, което може да изградите от AOSP, за да получите същото преживяване. Chromebook ще работи на напълно отворена версия на Chromium, но няма да има някои затворени API на Google или пълния набор от видео и аудио кодеци.
Google също така пуска приложения, които не са лицензирани с отворен код. Gmail, Карти и много други приложения на Google, които идват на нашите телефони, не са част от AOSP и са разработени независимо за Android, Chrome, iOS и мрежата. Когато чуете, че в интернет спорове за Android да не са "отворени", това говорят. Android и всичко необходимо за инсталиране и стартиране на приложения за Android е напълно с отворен код, но популярните приложения, които го правят по-добре, не са. Това вероятно няма да се промени.