Google a Apple zjevně vytrvale investují mnoho energie do zabezpečení operačních systému Android a iOS. A to zejména do zabezpečení přístupu uživatele do operačního systému s oprávněním administrátor (root). Na vašem počítači / notebooku si uživatelské oprávnění řídíte samy. Že v počítači jakýsi admin existuje možná vůbec nevíte. Pokud ano, účet administrátora zaheslujete, používáte neadmin účet a pokud potřebujete v operačním systému WIndows 10 cosi instalovat, zadáte heslo a úkon provedete.
V operačních systémech mobilních zařízeních je to trochu jinak. A to do té míry, že se již nelze rozhodnout ani zda-li nějakou aplikaci v telefonu jako uživatel chcete nebo ne. Odsud již není daleko k různorodě vtipným řešením.
Obsah
Archivace GPS poloha mobilního telefonu
O samovolném logování GPS polohy do .txt souboru v telefonech Android / iOS toho bylo napsáno hodně. Důvodem byl údajně plynulejší chod aplikací, které potřebují znát vaší polohu – kupříkladu navigace. Proč ale konkrétně Android uchovával i starší záznamy nikdo neví. Ok, navigaci nepoužíváte k čemu ještě telefon potřebuje znát vaší polohu? Další unikátní důvod se jmenuje přesné vyhledávání. To kdyby jste nevěděli kde na návsi najdete hospodu. Na dovolené se rovněž nezeptáte na recepci ale použijete vyhledávač.
Přístup prohlížeče k poloze telefonu povolený nemáte. Nenavigujete, nehledáte hospodu za rohem a nakupujete na e-shopu. Pomáhají vám i nadále? Ano i nadále se pracuje s IP adresou přípojky k internetu. Mimochodem tuto informaci vidíte na konci každého výsledku vyhledávání bez ohledu na to jak přesně budete svůj dotaz formulovat. Ve zkratce i když do vyhledávače dáte konkrétní poštovní adresu Google použije vaši IP adresu k tomu aby ji co nejpřesněji našel. Zní to divně? Dost možná ano.
VPN
Použití VPN nepomůže. Existuje totiž unikátní vychytávka, která ma na starosti „přihlášení“ k free wifi nebo placenému hotspotu. Pro případ, že by jste chtěli surfovat na benzínce a firma která hotspot na onem místě instalovala, nebyla sama schopna nasměrovat vás na přihlašovací stránku. Tato nenápadná funkce telefonu se jmenuje kontrola připojení (connectivity check). Je integrována ve všech telefonech (Android/iOS). U Apple mimo ajfoun vlastně všude pokud používáte integrovaný prohlížeč Safari.
Kontrola připojení
Jak connectivy check v Android telefonu funguje? Pokud používáte prohlížeč Chrome, možná jste si všimli, že tento instalační soubor má v porovnání s Bromite, Samsung Internet, Operou či Firefoxem minimální velikost. Menší než 1MB. Není to úplně tak jak to vypadá, Chrome pouze v Playstore distribuuje zvlášť rozhraní prohlížeče (GUI) a zvlášť WebView (tedy samotný zobrazovač webu). I když Chrome nepoužíváte, bez WebView vám v Androidu nebude fungovat nic co potřebuje vykreslit – třeba navigace. Proč ta odbočka? WebView používá právě i zmiňovaný connectivity check. Jak?
Po připojení k libovolné wifi sítí, mobil s androidem bez upozornění na pozadí otevře spojení a pokusí se načíst přednastavenou „webovou stránku“. Konkrétně url
https://connectivitycheck.google.com/204.php
Ta obsahuje pouze stavový kód (číslo), ale.. Pokud znáte kupříkladu webovou statistiku pak víte, že se mimo datum, čas, verzi prohlížeče, verzi operačního systému, loguje i IP adresa přípojky. Správce sítě v každém zařízení pracuje s MAC adresou, názvem sítě, sílou signálu – u spojení funkčnosti správce sítě a WebView se jako první nabízí nekomplikovaného předání (třeba) název wifi sítě či MAC adresy a jejich odeslání společně s IP adresou na protokolovací server Google. I když obratem použijete VPN tunel informace o původním připojení jsou již odeslány a uloženy. Tuto funkci lze vypnout nebo upravit.
Úprava connectivity check Android
Kontrolu připojení lze zcela vypnout pomocí příkazu
settings put global captive_portal_detection_enabled 0
Nebude vám ale fungovat kupříkladu Spotify. Tuto vychytávku používají i další aplikace, třeba česká aplikace DVTC. Lepší řešení je tedy použití self hosted souboru… Na vlastním webovém serveru (s podporou PHP) vytvoříme .php soubor 204.php s obsahem:
<?php http_response_code(204); exit(); ?>
Pomoci ADB nebo Termux terminálu v Android telefonu provedeme úpravu globálního nastavení
settings put global captive_portal_http_url "http://100.200.100.200/204.php" settings put global captive_portal_https_url "https://mojedomena.cz/204.php"
Přístup pod kontrolou a logování
Po úpravě captive portal url v globálním nastavení operačního systému android jsme se podívali do logu přístupu serveru.

Úprava je zdá se funkční. Počet připojení telefonu víc než častý. A to až do te míry, že ochrana serveru na kterém jsme toto řešení testovali, zablokovala IP adresu ze které se telefon připojil. Konkrétně z důvodu překročení limitu spojení kde se telefon v rozmezí méně než deseti minut připojil ke „captive portálu“ 18x.
Jak tedy lze pomocí captive portal url určit polohu telefonu i bez GPS? Mobil u kontroly připojení automaticky a opakovaně odesílá IP adresu internetového připojení na server Google. Android obsluhuje mimo TCP/IP stack i LTE modem a bluetooth modem mobilního telefonu. Pevné internetové přípojky v posledních 5 letech masivně zužují lokaci IP adres. Pokud byla v roce 2010 na konci Google stránky s výsledkem vyhledávání uvedena lokalita Česká republika, v roce 2015 již zúžená na město (třeba Praha).
Dnes pak běžně vidíte na stejné stránce městskou část (třeba Praha 10). LTE modem (mobilní data) pracuje s MCC, MNC, LAC, CellID (CID) kde zejména CID je další unikátní identifikátor a ve větším městě může být dokonce přesnější než GPS. Chytré hodinky neustále připojené k telefonu pomocí Bluetooth s aktivní GPS.
Užitečné
Text o technologii Google FLoC
Info zdroj fairphone.
Deaktivace kontroly popsána na stackexchange.com.