Google opravuje noční můru Androidu, která bránila uživateli volat tísňové linky

Google opravuje noční můru Androidu, která bránila uživateli volat tísňové linky

Nyní byla vydána lednová oprava zabezpečení Androidu, která opravuje jednu z nejotravnějších chyb systému Android, která se může za chvíli vyskytnout: některé aplikace vám mohou bránit v kontaktování tísňových linek 911 nebo jiných tísňových linek po celém světě.

Začátkem prosince se na subredditu GooglePixel objevil otřesný příběh od uživatele, kterému selhal Pixel 3, když to nejvíc potřeboval: když vytáčel tísňovou linku 911 pro svou babičku, která „vypadala, jako by měla mrtvici“. Celý telefonní subsystém se zhroutil. okamžitě po zavolání tísňových služeb a uživatel KitchenPicture5849 řekl, že nemůže přijmout hovor, aby se spojil, nebo zavěsit, aby hovor opakoval. Naštěstí byla nedaleká pevná linka dostupná poté, co se jejich telefon s Androidem pokazil a byly kontaktovány záchranné služby.

Po skončení krize uživatel ze svého smartphonu znovu zavolal na tísňovou linku a Android znovu havaroval, což naznačuje, že se nejedná o jednorázovou chybu. Kontrola jejich telefonního účtu také odhalila, že KitchenPicture5849 se ve skutečnosti nikdy nepřipojil ke službě 911. Říkají, že také obdrželi několik dalších soukromých zpráv od uživatelů, kteří uvedli, že zaznamenali stejnou chybu.

Google kontaktoval uživatele a veřejně odpověděl na zprávu 8. prosince:

Na základě našeho výzkumu jsme byli schopni problém reprodukovat za omezeného souboru okolností. Domníváme se, že problém se vyskytuje pouze na malém počtu zařízení s nainstalovanou aplikací Microsoft Teams, když uživatel není přihlášen, a v současné době jsme si vědomi pouze jednoho hlášení uživatele o výskytu této chyby. Zjistili jsme, že problém byl způsoben nechtěnou interakcí mezi aplikací Microsoft Teams a základním operačním systémem Android. Microsoft úzce spolupracuje se společností Google na vyřešení této nezamýšlené interakce.

Google uvedl, že Microsoft vydá aktualizaci aplikace co nejdříve a že uživatelé by měli zkontrolovat aktualizace v Obchodě Play. Společnost také zmínila, že patch na úrovni operačního systému bude vydán o měsíc později, začátkem ledna (to je dnes). V té době společnost Google neposkytla žádné další komentáře k této záležitosti.

Proč aplikace mohou přerušit službu 911

Zpoždění. Microsoft Teams rozbil službu 911? Mohou náhodné aplikace pro Android narušit nouzové služby? Jak? Proč by aplikace třetích stran byly tisíce stop od tak důležité funkce? Narušují službu 911 nějaké další aplikace nebo jen Microsoft Teams? Zatímco Teams byly opraveny, bylo v pořádku nechat uživatele Androidu pobýt s touto chybou na úrovni operačního systému po dobu jednoho měsíce, zvláště když nevíme, zda to dělají jiné aplikace? Android je Android, takže mnoho telefonů stejně nikdy nebude opraveno. Jak mohou uživatelé vědět, že pohotovostní služby budou fungovat? Až na to, že Google nedal jinou odpověď, než čekat měsíc na opravu.

Naštěstí někteří velmi chytří lidé v komunitě Android byli schopni poskytnout odpovědi, které Google nesdílel. Mishaal Rahman, hlavní technický redaktor společnosti Esper, napsal neuvěřitelný příspěvek na médium , v němž podrobně popisuje, jak chyba funguje a proč k ní dochází. Aplikace pro Android s funkcí telefonního hovoru mohou do systému zaregistrovat „Telefonní účet“, což znamená, že mají možnost volat. S PhoneAccount lze nainstalovat několik aplikací, včetně jedné s názvem „CAPABILITY_PLACE_EMERGENCY_CALLS“. Když přijde čas zavolat na linku 911, Android protřídí seznam registrovaných telefonních účtů a vybere jeden. Zatím je vše dobré.

Jednou z několika chyb identifikovaných v Rahmanově příspěvku je, že Microsoft Teams zaregistruje další PhoneAccount v systému pokaždé, když se Teams spustí, pokud nejste přihlášeni. Upozorňujeme, že není neobvyklé nainstalovat Microsoft Teams a poté je nikdy nepoužívat – a běžnou stížností na aplikaci Android Teams je, že často automaticky odhlašuje uživatele.

Pokud jste odhlášeni, desetinásobné spuštění Microsoft Teams zasype váš telefon 10 duplicitními telefonními účty z Teams. Týmy by to neměly dělat a aktualizace Microsoftu v tom zabránila týmům, ale spousta duplicitních telefonních účtů by také neměla stačit k tomu, aby srazila systém telefonu Android na kolena.

Další chyba: Při výběru telefonního účtu pro tísňové volání prochází Android složitým procesem třídění, aby určil, který účet použít. Posledním krokem v tomto procesu třídění, řešením konfliktů, je třídění hashcode. Porovnání hashcode jednoduše odečte jeden hashcode od druhého.

Ale stejně jako ta hloupá chyba Microsoft Exchange 2000, která se onehdy stala, by to mohlo vést k přetečení nebo podtečení celého čísla a nyní dojde k selhání telefonního subsystému. Kód Google je chybný, ale protože je to poslední způsob, jak vyřešit problémy s řazením po vyzkoušení zjevnějších věcí, jako je název balíčku, měl by být volán pouze ve velmi specifické instanci aplikace, která generuje duplicitní telefonní účty. Takže děkuji Microsoftu!

Oprava této chyby od Googlu je zde s názvem „Oprava přetečení/podtečení celého čísla způsobeného tříděním duplicitního telefonního účtu během volání na číslo tísňového volání. Namísto odečítání jednoho hashkódu od druhého a potenciálně práce s opravdu velkým nebo velmi malým číslem, které způsobí zhroucení systému, Google nyní zpracovává tato dvě čísla prostřednictvím Java funkce „Integer.compare“. Vrátí pouze -1, 0 nebo 1, což znamená menší, stejný nebo vyšší výsledek porovnání.

Pokud jste zpočátku jako já a divíte se, proč Android vůbec třídí telefonní účty a nepoužívá pouze výchozí účet na SIM, udělám bláznivý odhad a řeknu, že šlo o pokus zprovoznit službu 911 bez ohledu na to. Který. Pro případ, že by hlavní účet nefungoval, Android potřebuje seznam všech možných telefonních účtů, které může vyzkoušet, a chce to udělat automaticky, aby se mohl připojit k 911 všemi nezbytnými prostředky. Tento systém třídění existuje pouze pro kontaktování tísňových služeb, takže běžné telefonní hovory pro postižené uživatele stále fungují.

Třetí chybou v tomto nepořádku je, že Microsoft Teams se ani neregistruje jako obslužný program pro tísňové volání. Týmy vytvořily milion telefonních účtů a nepoužily příznak CAPABILITY_PLACE_EMERGENCY_CALLS, ale přesto překonaly 911. Proces třídění společnosti Google začíná žádostí o všechny telefonní účty, zatímco nejlepším prvním krokem by bylo začít se všemi telefonními účty, které podporují nouzové situace. hovory.

Google před touto nejnovější chybou přijímá ještě drastičtější rozhodnutí a odstraňuje každý „samoobslužný“ telefonní účet z postupu tísňové služby 911. „Samoobslužné“ telefonní účty Android, jako je Microsoft Teams, získají přímější přístup k zásobníku telefonování Android a mohou používat své vlastní funkce. Systém tísňového volání Android nyní vezme v úvahu pouze jednodušší poskytovatele telefonie, kteří se připojují k výchozí telefonní aplikaci, jako je váš účet operátora.

Všechny tyto další VoIP aplikace lze pravděpodobně stále používat k samovolnému volání na číslo 911 (v mnoha zemích je funkce 911 vyžadována zákonem). Pokud ale otevřete výchozí číselník a stisknete 911, Android si vybere pouze ze standardních, systémem spravovaných telefonních účtů.

Kdo bude opraven a jak můžete zkontrolovat chybu služby 911

Rahman říká, že chyba společnosti Google v tomto případě je CVE-2021-39659, kterou měsíční bezpečnostní bulletin klasifikuje jako vysoce závažnou zranitelnost spočívající v odmítnutí služby s opravami pro zařízení se systémem Android 10, 11 a 12. V kódové základně Android je Google Ve skutečnosti je tato oprava plně zpětně portována na Android 8.0, který již není technicky podporován. To je většinou čistě teoretické, protože nuloví dodavatelé ve skutečnosti netlačí bezpečnostní aktualizace do takových starších zařízení. Ale ten kód tam je, kdyby ho někdo potřeboval.

Zásobník telefonování pro Android (zatím?) není snadno upgradovatelný modul Project Mainline, takže jediný způsob, jak získat opravu, je měsíční aktualizace zabezpečení Android z ledna 2022. Samsung by měl od tohoto týdne aktualizovat každý telefon na tomto seznamu , zatímco Google vydává opravy pro Pixel 3a, 4, 4a, 5 a 5a. Aktualizace: Aktualizace tísňového volání se očekává také pro nefunkční Pixel 3.

Aktualizace pro Pixel 6 zatím nepřichází. Nejnovější vlajková loď Google je aktuálně v krizi aktualizací. Aktualizace z prosince 2021 byla zrušena kvůli problémům s nemobilním připojením (nefungující telefonní hovory). Protože se Google snaží věci napravit, další aktualizace Pixel 6 s touto opravou 911 by měla být „na konci ledna“. Mezitím je v pořádku být na listopadovém patchi. Oba grafy Google: „začátek ledna“ a „konec ledna“ se zdají neuvěřitelně pomalé kvůli chybě, která může vést k doslovné smrti uživatelů.

Udělám další bláznivý odhad a řeknu, že Pixel 6 je zvláštní telefon, protože je to úplně jiný SoC a modem (jak z divize Exynos společnosti Samsung, tak všechny ostatní Pixely používají Qualcomm). Vytvoření vánoční nákupní sezóny nedalo společnosti Google žádný manévrovací prostor v případě zpoždění spuštění. To neznamená, že telefon se spoustou výhod při prvním použití není o nic menším zklamáním, ale doufejme, že jde o dočasný problém.

Jsem překvapen, že je to jen „vysoká“ (místo „kritické“) chyba a že nasazení trvá jeden až dva měsíce. Zpoždění sanitky může být fatální, takže by bylo hezké, kdyby to všechno dorazilo rychleji, ne tak, jak se Google rozhodl tento problém vyřešit.

Dosud jsme slyšeli pouze o tom, že Microsoft Teams spouští tuto chybu duplicitních telefonních účtů, ale není známo, zda podobnou chybu dělají i jiné aplikace. Pokud na tomto seznamu vidíte aplikaci, která generuje mnoho duplicitních účtů, je pravděpodobné, že vám brání v připojení k tísňovým službám. Doporučuji aplikaci odinstalovat, kontaktovat vývojáře a dát vědět ostatním na Twitteru nebo kdekoli jinde.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *