To jsou hrozný bláboly, tady dneska. Snad se tu najde někdo, kdo do problému malinko vidí a dokáže mi vysvětlit, jak to v Androidu funguje a proč je takový problém dělat si aktualizace sám.
Pokud to chápu správně je architektura taková, že mám linuxové jádro, nad tím Android knihovny, potom UI. Další knihovny tvoří Google Services, bez kterých ale systém normálně funguje.
Chápu, že může být problém aktualizovat jádro, pokud výrobce nezveřejní zdrojový kódy (což hlavně Číňani odmítají a není páka donutit je GPL dodržet). Ale aktualizovat knihovny nad jádrem by přeci neměl být problém. Proč je tak strašný problém udělat neoficiální ROM a dočká se jí pouze pár velmi populárních modelů? Dokáže mi to někdo vysvětlit?
http://www.root.cz/clanky/derave-androidy-telefony-na-zaplaty-cekaji-dlouhe-mesice/nazory/559448/
Na rozdíl od MS win, kde je už od začátku odděleno jádro a proprietární drivery (a je vesměs dodržena API kompatibilita na binární úrovni - resp. snaží se), tak u android/linux tam takové oddělení není.
Nebylo (v principu, už od googlu) vytvořeno prostředí tak, aby bylo možno updateovat zvlášť jádro a základní google-android věci a odděleně ovladače pro HW (každý HW je jiný, není zde jednota či jen pár typů).
To znamená, že každou google záplatu androidu musí nejprve výrobce HW zabudovat do "jeho" verze, znovu, zvlášť, pro každý typ výrobku, a až tuto verzi (jako celek) pak může nabídnou zákazníkovi do zařízení - jako jediný možný update pro dané zařízení.
To znamená, že každou google záplatu androidu musí nejprve výrobce HW zabudovat do "jeho" verze, znovu, zvlášť, pro každý typ výrobku, a až tuto verzi (jako celek) pak může nabídnou zákazníkovi do zařízení - jako jediný možný update pro dané zařízení.
To mi ale príde ako veľmi nedomyslený upgrade model.
Google si mal vydupať niečo v štýle, že kto chce používať Android a robiť si na neho nadstavbu (HTC, Samsung, ...), potom musí okamžite vydávať záplaty napr. na kritické problémy po dobu 3 rokov a na nekritické po dobu 2 rokov. A vydávať ich do 48 hodín od času, kedy to zverejní Google.
Súčasný stav je potom taký, že tu behá miliarda nebezpečných "smart" prístrojov, ktoré napr. môžu na povel urobiť DDOS na vybrané ciele.
Tak blbej zase Google není. Spoustu věcí dokáže atkualizovat na dálku přes Google Play Services. Ale systémový knihovny ne.
Také má postavenou bezpečnostní architekturu tak, aby jedna chyba nemohla způsobit, že někdo ovládne celý systém. Zatím nejnebezpečnější chyba Stagefright tak umožní maximálně zapnout na dálku foťák nebo přečíst data na kartě. Rozhodně neumožňuje ovládnutí celýho telefonu/počítače, jako je to běžně vidět u Windows. Bezpečnostní architektura Androidu je o několik levelů lepší. Problém je ale distribuce aktualizací a záplat.
JeCh popisuje bezpecnostni architekturu Androidu > 5.0. Tam jsou aplikace v sandboxech, ktere vynucuje SELinux. Zadna chyba v SELinuxu zatim publikovana nebyla. V tomhle ohledu je Android skutecne bezpecnejsi nez Windows.
Samozrejme pokud je dira v systemu samotnem (napr. problem s lock screen), pak se utocnik do systemu dostane. Ale takovych chyb mnoho neni.
Otazka je, jestli takovy Lollipop jeste je Lollipop. Googli Lollipop (5.0 - 5.1) pouziva SELinux v enforcing modu. Jadro na bazi SELinuxu se do Androidu dostalo az ve verzi 4.3 (https://source.android.com/devices/tech/security/selinux/).
Jinak koncepce OTA updatu je popsana na https://source.android.com/devices/tech/ota/index.html . Tento web obsahuje i spoustu dalsich technickych informaci.
On je to spíš problém vývojového modelu. Google má AOSP (Android Open Source Project), což základ Androidu: kernel, Bionic libc (mimochodem nekompatibilní s glibc), Android Runtime a hromada knihoven. Nad tím stojí GMS (Google Mobile Services), tj. Google Play Store, lokační služby, vyhledávání, Gmail, Chrome, Google+, Google Maps atd.
AOSP je k dispozici ve formě zdrojáku. Výrobci si ho prostě stáhnou, koupí nebo napíší drivery pro daný HW, napatlají nějaký cool launcher, vyzkoušejí jestli to kompiluje a bootuje, a můžou telefon pustit do světa.
GMS má poměrně striktní licenční podmínky. Předepisuje které aplikace musejí být předinstalované, jak musí být vidět v GUI atd. Podpis licenční smlouvy je jednou z podmínek získání aktuální verze zdrojáků Androidu.
Problém je v tom, že díky open source povaze Androidu si výrobci upravují zdrojáky jak uznají za vhodné, a část odpovídající AOSP je čistě v jejich režii. Google tuto část Androidu opravuje jen na svých zařízeních (Nexus), o všechna ostatní zařízení se (ne)starají výrobci. GMS pak Google opravuje sám (možná ne celý?), a patche jdou přes OTA.
Řešením může být zavázat výrobce telefonů se smlouvě o užívání GMS k aktualizacím telefonů. Jenže to je pro výrobce spousta práce, navíc spousta výrobců v rozvojovém světě GMS nepoužívá, malí výrobci vznikají a zanikají... Alternativně je možné výrobcům zakázat úpravy, které by Android dojebaly.
Je možné se poučit z historie. MS měl platformu Pocket PC a později Windows Mobile. Výrobci si s ní mohli dělat prakticky co chtěli. Výsledek byl ten, že některé telefony fungovaly jak měly, a jiné byly už po úvodním setupu plné crapware (zvláště "launchery" byly lahůdka), pro uživatele zbývalo minimum storage, byly pomalé jako slimák a měly hromadu bugů. MS to vyřešil tak, že výrobcům telefonů s WP zakázal úpravy, které by mohly poškodit bezpečnost a stabilitu WP, případně značku.
Bionic libc (mimochodem nekompatibilní s glibc)
kompatibilitu resi https://en.wikipedia.org/wiki/Hybris_(software)
MS to vyřešil tak, že výrobcům telefonů s WP zakázal úpravy
tedy vsichni vyrobci maji moznost mit jedine stejne hnusne prostredi bez moznosti zmeny, no to je fakt hodne labilni pouceni :)