Google、ユーザーが緊急サービスに電話できなくなる悪夢のような Android のバグを修正

Google、ユーザーが緊急サービスに電話できなくなる悪夢のような Android のバグを修正

1 月の Android セキュリティ パッチがリリースされました。これにより、しばらくの間発生する可能性のある Android の最も迷惑なバグの 1 つが修正されます。特定のアプリによって、911 や世界中の緊急電話番号への連絡が妨げられる可能性があります。

12 月初旬、GooglePixel のサブレディットで、最も必要なときに Pixel 3 がクラッシュしたというユーザーからの悲惨な話が浮上しました。祖母が「脳卒中を起こしたようだった」ので、祖母のために 119 番通報した際でした。電話サブシステム全体がクラッシュしました。緊急サービスに電話した直後、ユーザーのKitchenPicture5849さんは、電話がつながらなかった、または電話を切って再度電話をかけることができなかったと述べた。幸いなことに、Android スマートフォンが故障し、緊急サービスに連絡した後、近くの固定電話が利用可能でした。

危機が終わった後、ユーザーがスマートフォンから再度緊急電話番号に電話をかけたところ、Android が再びクラッシュしました。これは、これが 1 回限りのエラーではないことを示しています。電話請求書を確認すると、KitchenPicture5849 が実際には 911 サービスに接続していないことも判明しました。彼らは、同じエラーが発生しているというユーザーからのプライベート メッセージを他にもいくつか受け取ったと述べています。

Google はユーザーに連絡し、12 月 8 日にメッセージに対して公的に返答しました。

私たちの調査に基づいて、限られた状況下で問題を再現することができました。この問題は、ユーザーがサインインしていないときに Microsoft Teams アプリがインストールされている少数のデバイスでのみ発生すると考えられており、現時点でこのエラーが発生したというユーザーの報告は 1 件のみ確認しています。この問題は、Microsoft Teams アプリと基盤となる Android オペレーティング システムの間の意図しない対話によって引き起こされたものであると判断しました。Microsoft は、この意図しないインタラクションを解決するために Google と緊密に連携しています。

Googleは、Microsoftはできるだけ早くアプリのアップデートをリリースする予定であり、ユーザーはPlayストアでアップデートをチェックする必要があると述べた。同社はまた、OSレベルのパッチが1か月後の1月初旬(つまり今日)にリリースされる予定であるとも述べた。当時、Googleはこの件に関してそれ以上のコメントを出さなかった。

アプリが 911 サービスを妨害する可能性がある理由

遅れ。Microsoft Teams が 911 サービスを中断しましたか? ランダムな Android アプリによって緊急サービスが中断される可能性がありますか? どうやって?なぜサードパーティのアプリがそのような重要な機能から何千フィートも離れたところにあるのでしょうか? 911 サービスを妨害する他のアプリはありますか? それとも Microsoft Teams だけですか? Teams は修正されましたが、特に他のアプリで問題が発生しているかどうかわからない場合、Android ユーザーをこの OS レベルのバグに 1 か月間放置し続けても大丈夫でしょうか? Android は Android なので、多くの携帯電話はいずれにせよ修正されることはありません。緊急サービスが開始されることをユーザーはどのようにして知ることができますか? ただし、Google は修正まで 1 か月待つという以外の回答をしませんでした。

ありがたいことに、Android コミュニティの非常に賢い人たちが、Google が共有していない答えを提供してくれました。Esper のシニア テクニカル エディターである Mishaal Rahman は、エラーの仕組みと発生理由を詳しく説明した素晴らしい投稿を Medium に書きました。通話機能のある Android アプリは、通話機能があることを示す「PhoneAccount」をシステムに登録できます。「CAPABILITY_PLACE_EMERGENCY_CALLS」と呼ばれるアプリを含め、PhoneAccount でインストールできるアプリがいくつかあります。911 に電話するとき、Android は登録されている電話アカウントのリストを並べ替えて 1 つを選択します。ここまでは順調ですね。

Rahman 氏の投稿で特定されたいくつかのバグのうちの 1 つは、サインインしていない場合、Microsoft Teams が Teams を起動するたびにシステムに追加の PhoneAccount を登録するというものです。Microsoft Teams をインストールした後、まったく使用しないことは珍しいことではないことに注意してください Android Teams アプリに関する一般的な不満は、ユーザーが頻繁に自動的にログアウトされることです。

サインアウトしている場合、Microsoft Teams を 10 回実行すると、Teams からの 10 個の重複した PhoneAccount が携帯電話に散らばることになります。Teams はこれを行うべきではなく、Microsoft のアップデートにより Teams の実行は停止されましたが、多数の重複した PhoneAccount が Android 電話システムを崩壊させるほどではないはずです。

次のバグ: 緊急通報用に PhoneAccount を選択するとき、Android は複雑な並べ替えプロセスを経て、使用するアカウントを決定します。この並べ替えプロセスの最後のステップである競合リゾルバーは、ハッシュコードの並べ替えです。ハッシュコードの比較は、あるハッシュコードを別のハッシュコードから単純に減算します。

しかし、先日発生した Microsoft Exchange 2000 の愚かなバグと同様に、これにより整数のオーバーフローまたはアンダーフローが発生し、電話サブシステムがクラッシュする可能性があります。Google のコードにはバグがありますが、これはパッケージ名などのより明らかなことを試した後に並べ替えの問題を解決する最後の方法であるため、重複した PhoneAccount を生成しているアプリケーションの非常に特定のインスタンスでのみ呼び出す必要があります。それではマイクロソフトに感謝します!

このエラーに対する Google の修正は、 「緊急電話番号の通話中に重複する電話アカウントを並べ替えることによって引き起こされる整数のオーバーフロー/アンダーフローを修正する」というタイトルでここにあります。あるハッシュコードから別のハッシュコードを減算して、システムをクラッシュさせる可能性のある非常に大きな数値または非常に小さな数値を処理する代わりに、Google は Java の「Integer.compare」関数を通じて 2 つの数値を処理するようになりました。これは、-1、0、または 1 のみを返し、比較の結果が小さい、同一、または大きいことを示します。

もしあなたが私と同じで、なぜ Android が SIM 上のデフォルト アカウントを使用するだけでなく電話アカウントを分類するのか疑問に思っているなら、私はおかしな推測をして、それは関係なく 911 サービスを機能させるための試みだったと言うでしょう。どれの。メイン アカウントが機能しない場合に備えて、Android は試行できるすべての電話アカウントのリストを必要とし、必要な手段で 911 に接続するためにそれを自動的に実行したいと考えています。このトリアージ システムは緊急サービスに連絡するためにのみ存在するため、影響を受けるユーザーは通常の電話で引き続き対応できます。

この混乱の 3 つ目のバグは、Microsoft Teams が自身を緊急通報ハンドラーとして登録さえしていないことです。チームは 100 万個の PhoneAccount を作成し、CAPABILITY_PLACE_EMERGENCY_CALLS フラグを使用していませんでしたが、それでも 911 を突破しました。Google の並べ替えプロセスは、すべての電話アカウントを尋ねることから始まりますが、最善の最初のステップは、緊急事態をサポートするすべての電話アカウントから始めることです。呼び出します。

Google は、この最新のバグの前にさらに大胆な決定を下し、すべての「自己管理」電話アカウントを 911 緊急サービス手順から削除しています。Microsoft Teams などの「自己管理」Android 電話アカウントは、Android テレフォニー スタックに直接アクセスし、独自の機能を使用できます。Android 緊急通報システムは、キャリア アカウントなど、デフォルトの電話アプリに接続するより単純なテレフォニー プロバイダーのみを考慮するようになりました。

これらの他の VoIP アプリケーションはすべて、おそらく引き続き 911 へのセルフコールに使用できます (多くの国では、911機能は法律で義務付けられています)。ただし、デフォルトのダイヤラーを開いて 911 を押すと、Android は標準のシステム管理の電話アカウントのみを選択します。

911 サービス エラーの解決対象者とその確認方法

ラーマン氏によると、これに対する Google のバグは CVE-2021-39659 であり、月例セキュリティ情報では、 Android 10、11、12 を実行しているデバイス向けのパッチが適用される高重大度のサービス拒否の脆弱性として分類されています。Android のコードベースでは、Google は実際、この修正は技術的にサポートされなくなった Android 8.0 に完全にバックポートされます。ゼロベンダーは実際にはそのような古いデバイスにセキュリティ更新プログラムをプッシュしていないため、これはほとんど純粋に理論的なものです。しかし、コードは必要な人がいればそこにあります。

Android テレフォニー スタックは (まだ?) 簡単にアップグレードできる Project Mainline モジュールではないため、修正を入手する唯一の方法は、2022 年 1 月の Android セキュリティ マンスリー アップデートを使用することです。Samsungは今週からこのリストにあるすべての携帯電話をアップデートする必要があり 、GoogleはPixel 3a、4、4a、5、5aの修正をリリースする予定です。アップデート:サービス停止中の Pixel 3についても、緊急通報のアップデートが予定されています。

Pixel 6 のアップデートはまだ提供されていません。Google の最新フラッグシップは現在、アップデートの危機にあります。2021 年 12 月のアップデートは、モバイル以外の接続の問題 (電話が機能しない) のためキャンセルされました。Google が問題の修正に苦戦しているため、この 911 修正を含む次の Pixel 6 アップデートは「1 月末」になるはずです。それまでの間は、11 月のパッチであっても大丈夫です。Google のグラフ「1 月の初め」と「1 月末」はどちらも、ユーザーの文字通りの死につながる可能性のあるバグのせいで、信じられないほど遅く見えます。

私はまたおかしな推測をして、Pixel 6 はまったく異なる SoC とモデム (どちらも Samsung の Exynos 部門のものであり、他のすべての Pixel は Qualcomm を使用している) であるため、奇妙な携帯電話であると言います。ホリデーショッピングシーズンを設けることで、Googleには発売が遅れた場合に対処する余地がなくなった。初回特典がたくさんある携帯電話としてはそれほど残念ではありませんが、一時的な問題であることを祈ります。

これが (「重大」ではなく) 単なる「高レベル」のバグであり、展開に 1 ~ 2 か月かかることに驚きました。救急車の遅れは致命的となる可能性があるため、Google がこの問題を解決するために決定した方法ではなく、すべてがより早く到着することができれば良いのにと思います。

これまでのところ、Microsoft Teams がこの電話アカウントの重複エラーを引き起こすという話しか聞いていませんが、他のアプリでも同様のエラーが発生するかどうかは不明です。このリストに重複アカウントを大量に生成しているアプリがある場合は、そのアプリが緊急サービスへの接続を妨げている可能性があります。アプリをアンインストールし、開発者に連絡し、Twitter などで他の人に知らせることをお勧めします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です