Google, 사용자가 응급 서비스에 전화하지 못하게 하는 악몽 Android 버그 수정

Google, 사용자가 응급 서비스에 전화하지 못하게 하는 악몽 Android 버그 수정

1월 Android 보안 패치가 출시되었으며 한동안 발생할 수 있는 가장 성가신 Android 버그 중 하나를 수정합니다. 특정 앱은 911 또는 전 세계의 다른 긴급 전화에 연락하지 못하도록 차단할 수 있습니다.

12월 초, GooglePixel 하위 레딧에 가장 필요할 때 Pixel 3가 충돌한 사용자의 끔찍한 이야기가 나타났습니다. 긴급 서비스에 전화한 직후 사용자 KitchenPicture5849는 전화를 다시 걸기 위해 전화를 연결하거나 끊을 수 없다고 말했습니다. 다행스럽게도 Android 휴대전화가 고장나 응급 서비스에 연락한 후 근처 유선 전화를 사용할 수 있었습니다.

위기가 끝난 후 사용자는 스마트폰에서 긴급 전화번호로 다시 전화를 걸었고 Android는 다시 충돌하여 이것이 일회성 오류가 아님을 나타냅니다. 전화 청구서를 확인한 결과 KitchenPicture5849가 실제로 911 서비스에 연결되지 않은 것으로 나타났습니다. 그들은 또한 동일한 오류가 발생했다고 말하는 사용자로부터 다른 여러 개인 메시지를 받았다고 말합니다.

Google은 사용자에게 연락하여 12월 8일 메시지에 공개적으로 응답했습니다.

연구 결과를 바탕으로 제한된 상황에서 문제를 재현할 수 있었습니다. 사용자가 로그인하지 않은 상태에서 Microsoft Teams 앱이 설치된 소수의 장치에서만 문제가 발생하는 것으로 보이며 현재 이 오류가 발생한 사용자 보고는 단 한 건뿐입니다. Microsoft Teams 앱과 기본 Android 운영 체제 간의 의도하지 않은 상호 작용으로 인해 문제가 발생한 것으로 확인되었습니다. Microsoft는 이 의도하지 않은 상호 작용을 해결하기 위해 Google과 긴밀히 협력하고 있습니다.

구글은 마이크로소프트가 가능한 한 빨리 앱 업데이트를 출시할 것이며 사용자는 플레이 스토어에서 업데이트를 확인해야 한다고 말했다. 회사는 또한 OS 수준의 패치가 한 달 후인 1월 초(오늘)에 출시될 것이라고 언급했습니다. 당시 Google은 이 문제에 대해 더 이상 언급하지 않았습니다.

앱이 911 서비스를 중단시킬 수 있는 이유

지연. Microsoft Teams가 911 서비스를 중단했습니까? 임의의 Android 앱이 응급 서비스를 방해할 수 있습니까? 어떻게? 타사 앱이 왜 그렇게 중요한 기능에서 수천 피트 떨어져 있습니까? 911 서비스를 방해하는 다른 앱이 있습니까, 아니면 Microsoft Teams만 방해합니까? Teams가 수정되는 동안 특히 다른 앱이 버그를 수행하는지 알 수 없는 경우 Android 사용자가 이 OS 수준 버그와 한 달 동안 지내도록 허용해도 괜찮을까요? Android는 Android이므로 어쨌든 많은 전화가 수리되지 않습니다. 응급 서비스가 실행될 것임을 사용자가 어떻게 알 수 있습니까? 수정을 위해 한 달을 기다리는 것 외에는 Google이 답변을 제공하지 않은 것을 제외하고.

고맙게도 Android 커뮤니티의 일부 매우 똑똑한 사람들이 Google이 공유하지 않은 답변을 제공할 수 있었습니다. Esper의 수석 기술 편집자인 Mishaal Rahman은 Medium에 오류가 발생하는 방식과 발생 이유를 설명하는 놀라운 게시물을 작성했습니다 . 전화 통화 기능이 있는 Android 앱은 전화를 걸 수 있음을 나타내는 “PhoneAccount”를 시스템에 등록할 수 있습니다. “CAPABILITY_PLACE_EMERGENCY_CALLS”라는 앱을 포함하여 PhoneAccount로 설치할 수 있는 여러 앱이 있습니다. 911에 전화할 시간이 되면 Android는 등록된 전화 계정 목록을 정렬하여 하나를 선택합니다. 여태까지는 그런대로 잘됐다.

Rahman의 게시물에서 확인된 몇 가지 버그 중 하나는 Microsoft Teams가 로그인하지 않은 경우 Teams가 시작될 때마다 시스템에 추가 PhoneAccount를 등록한다는 것입니다. Microsoft Teams를 설치한 다음 사용하지 않는 것은 드문 일이 아닙니다 . Android Teams 앱에 대한 일반적인 불만은 종종 사용자가 자동으로 로그아웃된다는 것입니다.

로그아웃한 경우 Microsoft Teams를 10번 실행하면 Teams의 중복된 PhoneAccounts 10개로 전화기가 엉망이 됩니다. Teams는 이 작업을 수행해서는 안 되며 Microsoft 업데이트는 Teams의 작업을 중단했지만 많은 중복 PhoneAccounts가 Android 전화 시스템을 무릎 꿇게 하기에는 충분하지 않아야 합니다.

다음 버그: 긴급 통화를 위해 PhoneAccount를 선택할 때 Android는 복잡한 정렬 프로세스를 거쳐 사용할 계정을 결정합니다. 이 정렬 프로세스의 마지막 단계인 충돌 해결 프로그램은 해시 코드 정렬입니다. 해시코드 비교는 단순히 하나의 해시코드를 다른 해시코드에서 뺍니다.

하지만 저번에 발생한 멍청한 Microsoft Exchange 2000 버그와 마찬가지로 정수 오버플로 또는 언더플로가 발생할 수 있으며 이제 전화 하위 시스템이 중단됩니다. Google의 코드는 버그가 있지만 패키지 이름과 같은 보다 명확한 항목을 시도한 후 정렬 문제를 해결하는 마지막 방법이므로 중복 PhoneAccounts를 생성하는 애플리케이션의 매우 특정한 인스턴스에서만 호출해야 합니다. Microsoft에 감사드립니다!

이 오류에 대한 Google의 해결 방법은 ‘긴급 전화 통화 중 중복된 전화 계정을 정렬하여 발생한 정수 오버플로/언더플로 수정’ 입니다 . 하나의 해시코드를 다른 해시코드에서 빼서 잠재적으로 시스템을 충돌시키는 매우 크거나 매우 작은 숫자로 작업하는 대신 이제 Google은 Java “Integer.compare” 기능을 통해 두 숫자를 처리합니다. -1, 0 또는 1만 반환하여 비교 결과가 작거나 동일하거나 더 큼을 나타냅니다.

당신이 처음에 나처럼 안드로이드가 SIM의 기본 계정을 사용하는 것이 아니라 전화 계정을 정렬하는 이유가 궁금하다면 911 서비스를 상관없이 작동시키려는 시도라고 미친 추측을 할 것입니다. 어느. 기본 계정이 작동하지 않는 경우를 대비하여 Android는 시도할 수 있는 모든 전화 계정 목록이 필요하며 필요한 모든 수단을 통해 911에 연결하기 위해 자동으로 연결하려고 합니다. 이 분류 시스템은 응급 서비스에 연락하기 위해서만 존재하므로 영향을 받는 사용자는 일반 전화 통화를 계속 사용할 수 있습니다.

이 혼란의 세 번째 버그는 Microsoft Teams가 긴급 통화 처리기로 등록조차 하지 않는다는 것입니다. 팀은 백만 개의 PhoneAccounts를 만들었고 CAPABILITY_PLACE_EMERGENCY_CALLS 플래그를 사용하지 않았지만 여전히 911을 깨뜨렸습니다. Google의 정렬 프로세스는 모든 전화 계정을 요청하는 것으로 시작하지만 가장 좋은 첫 번째 단계는 응급 상황을 지원하는 모든 전화 계정으로 시작하는 것입니다. 전화.

Google은 이 최신 버그 이전에 훨씬 더 과감한 결정을 내리고 911 응급 서비스 절차에서 모든 “자체 관리” 전화 계정을 제거하고 있습니다. Microsoft Teams와 같은 “자체 관리” Android 전화 계정은 Android 전화 통신 스택에 더 직접적으로 액세스하고 자체 기능을 사용할 수 있습니다. Android 긴급 통화 시스템은 이제 이동통신사 계정과 같이 기본 전화 앱에 연결하는 단순한 전화 통신 공급자만 고려합니다.

이러한 다른 모든 VoIP 응용 프로그램은 여전히 ​​911에 직접 전화를 거는 데 사용할 수 있습니다(많은 국가에서 911 기능은 법으로 요구됨 ). 그러나 기본 다이얼러를 열고 911을 누르면 Android는 표준 시스템 관리 전화 계정에서만 선택합니다.

수리 대상 및 911 서비스 오류를 확인하는 방법

Rahman에 따르면 이에 대한 Google의 버그는 CVE-2021-39659이며, 월간 보안 게시판은 Android 10, 11 및 12를 실행하는 기기용 패치를 통해 심각도가 높은 서비스 거부 취약점으로 분류합니다. Android 코드베이스에서 Google은 실제로 이 수정 사항은 기술적으로 더 이상 지원되지 않는 Android 8.0으로 완전히 백포팅됩니다. 제로 벤더가 실제로 이러한 오래된 장치에 보안 업데이트를 푸시하지 않기 때문에 이것은 대부분 순전히 이론적인 것입니다. 그러나 필요한 사람이 있으면 코드가 있습니다.

Android 전화 통신 스택은 (아직?) 쉽게 업그레이드할 수 있는 Project Mainline 모듈이 아니므로 문제를 해결할 수 있는 유일한 방법은 2022년 1월 Android 보안 월간 업데이트입니다. 삼성은 이번 주부터 이 목록 에 있는 모든 전화기를 업데이트해야 하며 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와 모뎀(둘 다 삼성의 Exynos 사업부에서 제공하고 다른 모든 Pixel은 Qualcomm을 사용함)이기 때문에 이상한 전화라고 또 다른 추측을 해 보겠습니다. 연휴 쇼핑 시즌을 만들면서 Google은 출시가 지연될 경우 대처할 여지가 없습니다. 그렇다고 해서 최초의 이점이 많은 전화기에 대한 실망감이 덜하지는 않지만 일시적인 문제이기를 바랍니다.

저는 이것이 “심각한”(“치명적인” 대신) 버그일 뿐이며 배포하는 데 1~2개월이 걸린다는 사실에 놀랐습니다. 구급차를 지연시키는 것은 치명적일 수 있으므로 Google이 이 문제를 해결하기로 결정한 방식이 아니라 모든 것이 더 빨리 도착하면 좋을 것입니다.

지금까지 이 중복 전화 계정 오류를 유발하는 Microsoft Teams에 대해서만 들었지만 다른 앱에서 유사한 오류가 발생하는지 여부는 알려지지 않았습니다. 이 목록에 중복 계정을 많이 생성하는 앱이 표시되면 긴급 서비스에 연결하지 못할 가능성이 있습니다. 앱을 제거하고 개발자에게 연락하고 Twitter 또는 다른 곳에서 다른 사람들에게 알리는 것이 좋습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다