Google, ó náš pán

Poslední dobou velmi často slyším kdejakého pitomce brečet nad nařízeními velké zlé Evropské komise, která omezuje bezmocné malé rodinné firmy jako Apple a Google v jejich právu chovat se jako svině, a jak je to cesta ke komunismu a zániku volného trhu obecně. A víte, co si o tom myslím? Mají pravdu, EK je opravdu zlá. Zlá, protože je omezuje málo. Neboť jak se zdá, vládcem svého kapesního počítače, který jsem si zakoupil, a jsem tudíž jeho právoplatným majitelem, stále nejsem, nařízení či ne, já, nýbrž Google.

Zážitek z dneška: koupil jsem si na Googlovském obchodě s aplikacemi hru, které budeme říkat jednoduše Hra. Hru jsem hrál kdysi dávno, když jsem byl příruční, na iPhonu a tabletu, kde jsem ji ale měl staženou z pokoutných zdrojů (světě div se, i na Applu totiž jde pirátit), no, ale jelikož příruční už bohužel nejsem, řekl jsem si, že přeci není důvod si ji nekoupit. Onu Hru jsem ve svých příručních dobách pařil docela intenzivně, a tak jsem měl na obou zařízeních svého mládí uložená data, o která bych nerad přišel. Přirozeně jsem si je tedy chtěl překopírovat do nového telefonu.

Z iPhonu to nešlo, poněvadž tomu se už před léty, drtíc obrazovku nad sebou, nafoukla baterie, takže jsem chtěl využít synchronizace herních dat přes cloud (funkce Hry, nikoli iCloudu/Google služeb) z tabletu, což ale nešlo taky, hádám protože hra na tabletu byla již velmi stará verze, a tak se nekamarádila se servery. (budiž to varováním, že cloud opravdu není navěky)

A nyní otázka za zlatého bludišťáka – co bych v takovémhle případě udělal se hrou na počítači nebo třeba na PlayStationu?

Možností je asi více, ale v obou případech můžu jednoduše do počítače/konzole zapojit USB disk, překopírovat do něj uložená data, a obnovit je na druhém zařízení. To je, co? A teď tedy, jak jsem s tím musel naložit na Androidu. Na tom údajně „děravém“ a „nekontrolovaném“ operačním systému.

Data samozřejmě nejde rovnou vykopírovat ze složky aplikace. Protože to se přece nesmí, ne? Uživatelé Androidu jsou přeci moc neopatrní a naivní, než abychom jim takové právo dali, usmyslel si asi Google, a spálili by si prsty, takže to zkrátka nejde. Nepřekvapuje mě to, nikdy tomu nebylo jinak, dokonce tomu nebylo jinak ani na Nokiích z dob předandroidových, jenže tam člověk, který věděl, co dělá, mohl odemknout přístup ke kompletnímu souborovému systému a nést rizika sám. Na Androidu to kdysi šlo taky. A na iPhonu, když jsem ho ještě před 5 lety měl, taky, ale teď už oběma tak nějak zazvonil zvonec. Naštěstí tu ale máme cloudové služby výrobců obou platforem, které nám s tím (v případě že se s nimi vývojáři domluví a tak dále a tak podobně) pomohou. To je ale skvělá věc a vůbec ne úspěšný pokus o monopolizaci správy našich dat, že ne?

Ale naštěstí to tím nekončí, neboť Android obsahuje nepříliš známé API pro kompletní zálohu aplikací, ke kterému se lze dostat před ADB. Ono to tedy není tak jednoduché, neboť z mé zkušenosti je často nutné dohledat nějakou konkrétní verzi ADB, ve které není rozbité. To se mi ale podařilo, a tak jsem data z tabletu měl vzápětí hezky u sebe v počítači. To nebylo tak těžké!

Ovšem nyní to muselo jít i opačným směrem. A už předem jsem tušil, že to bude problém, protože ten trik s ADB byl moc jednoduchý a užitečný na to, aby fungoval pořádně i na novém Androidu. A taky že jo.

V Androidu 12 se totiž stalo tohle. Jelikož nepředpokládám, že se to někomu bude chtít celé číst, vložím sem přeložený výtažek:

RESTRICT_ADB_BACKUP

Výchozí stav: Povoleno pro aplikace zacílené na Android 12 (úroveň API 31) a vyšší.

Pro aplikace zacílené na Android 12 (úroveň API 31) a vyšší je adb backup automaticky povoleno pro aplikace běžící v ladicím režimu (android:debuggable nastaveno na true) a zakázáno pro všechny ostatní aplikace.

Co to znamená? No, jednoduše, že 99.99% aplikací, jejichž nejnovější verze vyšla po vydání Androidu 12, lokálně zálohovat prostě nejde. A těch devítek je asi málo. V ladicím režimu běží totiž de facto jen aplikace, které si sám naprogramuju a pustím z Android Studia, nebo jejichž APK si „hacknu“, aby ladit šly. Na Google Play se takové z docela rozumného odůvodnění vyskytovat nesmí, neboť pokud něco vydáváte v obchodě s aplikacemi, mělo by se jednat o konečnou a ne ladicí verzi (ne že by tomu tak vždycky nutně bylo).

Co už ale rozumné není, je, že i v případě, že mají aplikace ve svém manifestu od vývojáře povolené zálohy, na novém Androidu zálohovat prostě nejdou. Proč? No, protože Google řekl, a tak to bude! A protože, jaká to náhoda, by přece vývojáři měli zálohy řešit podle pravidel, aneb nahrávat je přes API Googlu na Googlí cloudové služby.

Nedokážu najít JEDINÝ rozumný důvod, proč se tahle změna stala, než že Google prostě chce jak vývojáře, tak uživatele, stále víc a víc zavázat do své ohrazené zahrádky.

Jen abych to zdůraznil – tyhle zálohy nepředstavují žádnou, ale naprosto žádnou bezpečnostní hrozbu. Nejsou povolené pro všechny aplikace a třeba data mobilního bankovnictví vám tak přes ADB nikdo ukrást nemůže. To, zda lze data zálohovat lokálně, bylo odjakživa v režii vývojáře, který by přeci svou aplikaci a její účely měl znát nejlépe. Ne že by se mi to úplně líbilo, stále si stojím za tím, že moje zařízení přece patří mně, a pokud bych si opravdu chtěl udělat lokální zálohu dat mobilního bankovnictví, tak bych to měl být schopný udělat; ostatně, to by šlo zabezpečit třeba tak, že si to řekne kupříkladu o otisk prstu při každé záloze – přeci jen, kdyby mi někdo ukradl otisk prstu, pak se do mého MB dostane tak jako tak a paseku tam dokáže udělat i bez „bezpečnostní díry“.

Ale samozřejmě každému s trochou povědomí o Googlu a podobných firmách dojde, že tady o žádnou bezpečnost neběží.

Jenže od obcházení nástrah těchhle nenažraných firem tu přeci jsem já, a tak jsem i tuto nástrahu obešel. Hra má totiž několik verzí, z nichž ta starší necílí na API >= 31. Z pirátského serveru jsem si tudíž stáhnul APK starší verze (dalo docela práci najít nějaké se shodujícím se digitálním podpisem, poněvadž do nich piráti rádi schovávají viry), které jsem nainstaloval a data do něj z počítače obnovil bez překážek, neboť takovým to i nový Android dovoluje. A pak, jelikož to díky shodnému podpisu jde i podle Googlích pravidel, jsem přes Google Play Hru aktualizoval na nejnovější verzi.

Tadá, všechna svá Herní data od roku 2015 mám hezky v novém mobilu! A byly to jen dvě hodiny práce s něčím, co bych normálně, aneb s přístupem k souborovému systému jako mám na počítači, měl hotové za minutu.

Samozřejmě se nabízí otázka, když mě ten Android tolik štve, proč si tedy nevezmu jeho zdrojové kódy, neupravím si je ke své libosti a nestěžuju si? To je totiž velmi dobrá otázka a zrovna tak dobrý nápad. Jenže:

  1. Drtivá většina moderních telefonů nedovoluje vyměnit nainstalovaný OS. Protože to tak musí být, když mají výrobci smlouvy s Facebookem, že budou mít všude předinstalované jejich otravné aplikace, a přece kdybych si mohl OS vyměnit za svůj (pomiňme že 99% uživatelů by to neudělalo), pak by ta smlouva neměla smysl.
  2. I ty, kde se systém vyměnit dá, ať už oficiálně, či nějakým exploitem, pak často nemají veřejné zdrojové kódy ovladačů periferií, a k čemu je mi mobil, co neumí volat, no ne?
  3. Pokud mám to štěstí a můj mobil nespadá ani do jedné z těchto škatulí (což moje XPERIA nespadá, ostatně i proto jsem si koupil právě ji), výrobce má často napsáno ve všelijakých svých podmínkách, že v případě výměny softwaru si začne účtovat nesmyslné prémie i za záruční hardwarové opravy. Jo. Představte si třeba, že byste si upgradovali počítač z Windows 10 na Windows 11 a záhy by po vás nějaký Asus nebo Lenovo chtěli peníze za záruční opravu základní desky. Takové to je. Žijeme to ale v absurdním světě!
  4. Pokud přesto operační systém vyměním (včetně toho, že si dám práci s kompilací 200GB zdrojových kódů, což je spousta práce a mj. elektřiny, ergo uhlí), přestanou mi fungovat mobilní bankovnictví a podobně, kterým se takové věci nelíbí a jimž pro detekci upraveného OS právě Google šikovně podstrčil API, které jim takovou skutečnost nabonzuje. Něco z toho bych asi další úpravou OS mohl umlčet (lidé s rootnutými zařízeními to dělají), ale o tom nejsem dostatečně vzdělaný vykládat.
  5. A pokud i to nějak obejdu, budu ve výsledku mít zařízení, které je sice svobodné od tenat Googlu, ale funkčně podstatně ochromené, neboť mu budou chybět DRM klíče a všelijaké jiné vychytávky, které jsou součástí pouze původního SW.

Takže ve výsledku jednoduše nemá smysl pro normálního člověka něco takového dělat. Vím, že se určitě najdou takoví, kteří to udělají, ale na to já opravdu nemám čas ani energii, zejména když bych to s každým novým mobilem musel dělat nanovo.

A proto když si čtu o obřích nadnárodních firmách jako Spotify nebo Epic Games, jak vehementně podporují nařízení Evropské komise a oslavují to jako druhý příchod Ježíše Krista, je mi z toho jednoduše blbě. Je mi z toho blbě, protože je zjevné, že ono nařízení, tak jako většina našich zákonů obecně, je ušito ve prospěch právě takových velkých a nenažraných firem, a jediné, co mění, je, že některé jiné firmy budou moci být o něco méně nenažrané a tyto více. Pak se nedivme, že to oslavují!

A že si mezitím bude Google vesele zavírat čím dál více vrátek kolem své rozkošné zahrádky, po tom se žádný komisař ani neohlédne. Budeme těmhle firmám všichni patřit, protože to je legální. Protože zákon na to, aby si úplně normální člověk mohl dělat se svými daty, co chce, nikdy nebude. A protože stále existují pitomci, kteří jsou ochotni Googlu kouřit péro a namítat „tak když se ti to nelíbí, tak neměj mobil“.

Zákon totiž může zakázat ledacos, ale svaté právo chovat se jako svině, to nikdy nikomu neodepře. Ne když má roční obrat 300 miliard dolarů.