Google novērš murgu Android kļūdu, kas neļāva lietotājam zvanīt neatliekamās palīdzības dienestiem
Janvāra Android drošības ielāps tagad ir izlaists, un tas novērš vienu no kaitinošākajām Android kļūdām, kas var rasties pēc kāda laika: noteiktas lietotnes var neļaut sazināties ar 911 vai citiem ārkārtas palīdzības numuriem visā pasaulē.
Decembra sākumā GooglePixel subredditā parādījās satraucošs stāsts no lietotāja, kuram Pixel 3 avarēja brīdī, kad viņam tas visvairāk bija nepieciešams: zvanot ārkārtas palīdzības dienestam 911 savai vecmāmiņai, kura “šķita, ka viņai ir insults”. Avarēja visa tālruņa apakšsistēma. uzreiz pēc zvanīšanas neatliekamās palīdzības dienestiem, un lietotājs KitchenPicture5849 teica, ka nevar saņemt zvanu, lai izveidotu savienojumu vai noliktu klausuli, lai atkārtotu zvanu. Par laimi, tuvumā esošais fiksētais tālrunis bija pieejams pēc tam, kad viņu Android tālrunis bija sabojājies un tika sazināti ārkārtas dienesti.
Pēc krīzes beigām lietotājs atkārtoti zvanīja uz neatliekamās palīdzības numuru no sava viedtālruņa, un Android atkal avarēja, norādot, ka tā nebija vienreizēja kļūda. Pārbaudot viņu telefona rēķinu, arī atklājās, ka KitchenPicture5849 nekad nav izveidojis savienojumu ar 911 pakalpojumu. Viņi saka, ka ir saņēmuši arī vairākus citus privātus ziņojumus no lietotājiem, kuri teica, ka viņiem ir tāda pati kļūda.
Google sazinājās ar lietotāju un publiski atbildēja uz ziņojumu 8. decembrī:
Pamatojoties uz mūsu pētījumu, mēs varējām atkārtot problēmu ierobežotos apstākļos. Mēs uzskatām, ka problēma pastāv tikai nedaudzās ierīcēs, kurās ir instalēta Microsoft Teams lietotne, kad lietotājs nav pierakstījies, un pašlaik mums ir zināms tikai viens lietotāja ziņojums par šo kļūdu. Mēs konstatējām, ka problēmu izraisīja neparedzēta mijiedarbība starp lietotni Microsoft Teams un pamatā esošo Android operētājsistēmu. Microsoft cieši sadarbojas ar Google, lai atrisinātu šo neparedzēto mijiedarbību.
Google paziņoja, ka Microsoft izlaidīs lietotnes atjauninājumu, cik drīz vien iespējams, un lietotājiem ir jāpārbauda Play veikalā, lai iegūtu atjauninājumus. Uzņēmums arī minēja, ka OS līmeņa ielāps tiks izlaists mēnesi vēlāk, janvāra sākumā (tas ir šodien). Toreiz Google plašākus komentārus par šo lietu nesniedza.
Kāpēc lietotnes var sabojāt 911 pakalpojumu
Kavēšanās. Microsoft Teams pārtrauca 911 pakalpojumu? Vai nejaušas Android lietotnes var traucēt neatliekamās palīdzības dienestiem? Kā? Kāpēc trešo pušu lietotnes būtu tūkstošiem pēdu attālumā no tik svarīgas funkcijas? Vai kādas citas lietotnes traucē 911 pakalpojuma darbību vai tikai Microsoft Teams? Kamēr Teams tika labots, vai bija pareizi ļaut Android lietotājiem mēnesi pavadīt laiku ar šo OS līmeņa kļūdu, it īpaši, ja mēs nezinām, vai citas lietotnes to dara? Android ir Android, tāpēc daudzi tālruņi nekad netiks salaboti. Kā lietotāji var zināt, ka neatliekamās palīdzības dienesti darbosies? Izņemot to, ka Google nesniedza nekādas citas atbildes, kā vien gaidīt mēnesi, lai labotu.
Par laimi, daži ļoti gudri cilvēki Android kopienā varēja sniegt atbildes, kuras Google nesniedza. Mišāls Rahmans, Esper vecākais tehniskais redaktors, vietnē Medium uzrakstīja neticamu ziņu , kurā sīki izklāstīja, kā kļūda darbojas un kāpēc tā rodas. Android lietotnes ar tālruņa zvanu funkciju var reģistrēt “PhoneAccount” sistēmā, norādot, ka tām ir iespēja veikt zvanus. Izmantojot PhoneAccount, var instalēt vairākas lietotnes, tostarp vienu ar nosaukumu “CAPABILITY_PLACE_EMERGENCY_CALLS”. Kad pienācis laiks zvanīt 911, Android sakārto reģistrēto tālruņu kontu sarakstu un atlasa vienu. Tik tālu, labi.
Viena no vairākām kļūdām, kas identificētas Rahmana ziņojumā, ir tāda, ka Microsoft Teams reģistrēs papildu PhoneAccount sistēmā katru reizi, kad Teams startē, ja neesat pierakstījies. Ņemiet vērā, ka nav nekas neparasts, ka instalējiet Microsoft Teams un pēc tam to nekad neizmantojiet . izplatīta sūdzība par lietotni Android Teams ir tāda, ka tā bieži automātiski izlogo lietotājus.
Ja esat izrakstījies, 10 reizes palaižot Microsoft Teams, tālrunis tiks piesēts ar 10 Teams Phone Accounts dublikātiem. Teams nedrīkst to darīt, un Microsoft atjauninājums neļāva Teams to darīt, taču arī ar daudzām Phone Accounts dublikātiem nevajadzētu pietikt, lai Android tālruņu sistēma tiktu nospiesta uz ceļiem.
Nākamā kļūda. Izvēloties tālruņa kontu ārkārtas zvanam, Android veic sarežģītu kārtošanas procesu, lai noteiktu, kuru kontu izmantot. Pēdējais solis šajā šķirošanas procesā, konfliktu risinātājs, ir hashcode šķirošana. Hashkoda salīdzinājums vienkārši atņem vienu jaucējkodu no cita.
Bet, tāpat kā šī muļķīgā Microsoft Exchange 2000 kļūda, kas notika iepriekšējā dienā, tas var izraisīt veselu skaitļu pārpildīšanu vai nepietiekamību, un tagad tālruņa apakšsistēma avarēs. Google kods ir kļūdains, taču, tā kā šis ir pēdējais veids, kā atrisināt kārtošanas problēmas pēc tam, kad ir izmēģinātas skaidrākas lietas, piemēram, pakotnes nosaukums, tas ir jāizsauc tikai ļoti specifiskā lietojumprogrammas instancē, kas ģenerē tālruņa kontu dublikātus. Tāpēc paldies Microsoft!
Google labojums šai kļūdai ir šeit , ar nosaukumu “Novērst veselu skaitļu pārpildīšanu/nepietiekamību, ko izraisa dublikāta tālruņa konta šķirošana ārkārtas numura zvana laikā. Tā vietā, lai atņemtu vienu jaucējkodu no cita un, iespējams, strādātu ar patiešām lielu vai ļoti mazu skaitli, kas izraisa sistēmas avāriju, Google tagad apstrādā abus skaitļus, izmantojot Java funkciju “Integer.compare”. Tas atgriež tikai -1, 0 vai 1, norādot uz mazāku, identisku vai lielāku salīdzinājuma rezultātu.
Ja sākumā esat līdzīgs man un domājat, kāpēc Android vispār kārto tālruņu kontus, nevis tikai izmanto SIM kartes noklusējuma kontu, es izdarīšu traku minējumu un teikšu, ka tas bija mēģinājums panākt, lai 911 pakalpojums darbotos neatkarīgi no tā. Kuras. Gadījumā, ja galvenais konts nedarbojas, Android ir nepieciešams saraksts ar visiem iespējamiem tālruņu kontiem, kurus tā var mēģināt darīt, un tā vēlas to darīt automātiski, lai ar jebkādiem līdzekļiem izveidotu savienojumu ar 911. Šī šķirošanas sistēma pastāv tikai saziņai ar neatliekamās palīdzības dienestiem, tāpēc regulārie tālruņa zvani joprojām darbojas skartajiem lietotājiem.
Trešā kļūda šajā nekārtībā ir tāda, ka Microsoft Teams pat nereģistrējas kā ārkārtas zvanu apstrādātājs. Komandas izveidoja miljonu Phone Accounts, un tajā netika izmantots karodziņš CAPABILITY_PLACE_EMERGENCY_CALLS, taču tas joprojām pārtrauca tālruņa numuru 911. Google kārtošanas process sākas, pieprasot visus tālruņu kontus, bet labākais pirmais solis būtu sākt ar visiem tālruņu kontiem, kas atbalsta ārkārtas situāciju. zvani.
Google pieņem vēl drastiskāku lēmumu pirms šīs jaunākās kļūdas un no 911 neatliekamās palīdzības dienesta procedūras noņem katru “pašpārvaldīto” tālruņa kontu. “Pašpārvaldītie” Android tālruņu konti, piemēram, Microsoft Teams, iegūst tiešāku piekļuvi Android telefonijas stekam un var izmantot savas funkcijas. Android avārijas zvanu sistēma tagad ņems vērā tikai vienkāršākus telefonijas pakalpojumu sniedzējus, kas izveido savienojumu ar noklusējuma tālruņa lietotni, piemēram, jūsu mobilo sakaru operatora kontu.
Visas šīs pārējās VoIP lietojumprogrammas, iespējams, joprojām var izmantot, lai pašam piezvanītu 911 (daudzās valstīs 911 funkcija ir nepieciešama likumā). Bet, ja atverat noklusējuma numuru sastādītāju un nospiežat 911, Android izvēlēsies tikai no standarta, sistēmas pārvaldītiem tālruņu kontiem.
Kas tiek labots un kā jūs varat pārbaudīt 911 pakalpojuma kļūdu
Rahmans saka, ka Google šī kļūda ir CVE-2021-39659, kas ikmēneša drošības biļetenā tiek klasificēta kā ļoti nopietna pakalpojuma atteikuma ievainojamība ar ielāpu ierīcēm, kurās darbojas operētājsistēma Android 10, 11 un 12. Android kodu bāzē Google ir Faktiski šis labojums ir pilnībā pārsūtīts uz Android 8.0, kas tehniski vairs netiek atbalstīts. Tas galvenokārt ir tīri teorētisks, jo neviens pārdevējs faktiski neveic drošības atjauninājumus šādām vecākām ierīcēm. Bet kods ir, ja kādam tas ir vajadzīgs.
Android telefonijas steks (pagaidām?) nav viegli jaunināms Project Mainline modulis, tāpēc vienīgais veids, kā iegūt labojumu, ir 2022. gada janvāra Android drošības ikmēneša atjauninājums. Samsung, sākot ar šo nedēļu, ir jāatjaunina katrs šajā sarakstā iekļautais tālrunis , savukārt Google izlaiž labojumus Pixel 3a, 4, 4a, 5 un 5a. Atjauninājums: ārkārtas izsaukuma atjauninājums ir gaidāms arī tālrunim Pixel 3, kas netiek izmantots.
Atjauninājums vēl nav pieejams Pixel 6. Google jaunākais flagmanis pašlaik ir atjaunināšanas krīzē. 2021. gada decembra atjauninājums tika atcelts ar mobilo savienojumu nesaistītu problēmu dēļ (tālruņa zvani nedarbojas). Tā kā Google cenšas labot lietas, nākamajam Pixel 6 atjauninājumam ar šo 911 labojumu vajadzētu būt “janvāra beigās”. Tikmēr ir labi, ja ir pieejams novembra ielāps. Abas Google diagrammas: “janvāra sākums” un “janvāra beigas” šķiet neticami lēnas kļūdas dēļ, kas var izraisīt lietotāju burtisku nāvi.
Es izdarīšu vēl vienu traku minējumu un teikšu, ka Pixel 6 ir dīvains tālrunis, jo tas ir pilnīgi atšķirīgs SoC un modems (gan no Samsung Exynos nodaļas, gan visi pārējie pikseļi izmanto Qualcomm). Brīvdienu iepirkšanās sezonas izveide nav devusi uzņēmumam Google manevrēšanas iespējas palaišanas aizkavēšanās gadījumā. Tas nepadara to mazāk sarūgtinošu tālrunim, kuram ir lielas priekšrocības pirmo reizi, taču cerams, ka tā ir īslaicīga problēma.
Esmu pārsteigts, ka tā ir tikai “augsta” (nevis “kritiska”) kļūda, un tā izvietošana aizņem vienu līdz divus mēnešus. Ātrās palīdzības aizkavēšana var būt liktenīga, tāpēc būtu jauki, ja tas viss ierastos ātrāk, nevis tā, kā Google nolemj atrisināt šo problēmu.
Līdz šim esam dzirdējuši tikai par to, ka Microsoft Teams aktivizē šo dublēto tālruņa kontu kļūdu, taču nav zināms, vai kāda cita lietotne rada līdzīgu kļūdu. Ja šajā sarakstā redzat kādu lietotni, kas ģenerē daudz kontu dublikātu, iespējams, tas neļauj jums izveidot savienojumu ar neatliekamās palīdzības dienestiem. Iesaku atinstalēt lietotni, sazināties ar izstrādātāju un informēt citus par to Twitter vai citur.
Atbildēt