Google은 Play 스토어에서 접근성 서비스가 포함된 앱을 제거하겠다고 위협하고 있습니다.

click fraud protection

Google은 개발자에게 의도된 용도 외에 접근성 서비스를 사용하지 말라고 경고하는 이메일을 보내고 있습니다. 그렇지 않으면 해당 앱이 Play 스토어에서 삭제됩니다.

업데이트: LastPass가 방금 응답했다 이 뉴스에 대해 Android 앱에 "즉각적인 영향은 없을 것"이라고 명시합니다. 이것이 다른 응용 프로그램에 관대함을 부여할 것인지 여부는 아직 알 수 없습니다.

Play 스토어의 가장 혁신적인 애플리케이션 중 일부는 Google이 의도하지 않은 방식으로 API를 사용하여 구축되었습니다. 볼륨 키를 다시 매핑하여 음악 트랙을 건너뛰고 터치 입력을 녹음 및 재생할 수 있는 앱이 있습니다. 웹페이지 또는 게임을 제공하고 대체 탐색 키를 제공하여 장치의 전체 기능을 사용할 수 있습니다. 화면. 방금 언급한 모든 예는 Android의 접근성 API에 의존합니다. 하지만 곧 그럴 수도 있지 Google Play 스토어 팀이 개발자들에게 이메일을 보내서 변경할 수 있다고 알리고 있습니다. Google의 지침을 따르지 않는 한 더 이상 접근성 서비스를 구현하지 않습니다..


접근성 서비스란 무엇입니까?

이것이 왜 중요한지 이해하려면 먼저 Android와 관련된 접근성이 무엇인지 설명해야 합니다. 일반적으로 접근성이란 시각 장애가 있는 사람과 같은 특정 장애가 있는 사용자가 Android 앱에 더 쉽게 접근할 수 있도록 만드는 것을 의미합니다. 장애가 있는 사용자가 앱에 더 쉽게 접근할 수 있도록 만드는 것이 모든 개발자의 최선의 이익이지만, 다음을 가진 사용자를 위해 모든 Android 앱의 유용성을 향상시키도록 설계된 특수 클래스의 애플리케이션입니다. 장애. 이를 접근성 서비스라고 합니다.

일반적으로 a11y라고 하는 접근성 서비스는 시스템이 다음에 따라 특정 정보를 제공할 수 있는 앱입니다. 이벤트 접근성 서비스가 수신 대기하도록 등록합니다. 접근성 서비스를 구현하려는 앱은 다음을 추가해야 합니다. android.permission.BIND_ACCESSIBILITY_SERVICE AndroidManifest 파일에 대한 권한을 부여하여 시스템만 앱 서비스에 바인딩할 수 있도록 합니다.

예를 들어 접근성 서비스가 다음을 수신하도록 구축된 경우 TYPE_VIEW_CLICKED 이벤트가 발생하면 해당 서비스는 사용자가 누를 수 있는 버튼에 대한 정보를 시스템으로부터 수신합니다. 접근성 서비스는 다른 앱이 특정 동작과 KeyEvent를 수신하기 전에 이에 반응하고 사용할 수도 있습니다. 마지막으로 접근성 서비스는 뒤로, 분할 화면 또는 최근 앱 버튼과 같은 특정 KeyEvent를 삽입할 수도 있습니다.

따라서 접근성 서비스는 다음과 같습니다. 매우 강력하고 유용함. Google Play 스토어에서 가장 인기 있고 혁신적인 애플리케이션 중 일부는 a11y를 사용하여 업무를 수행합니다. 다음은 제가 머리 속에서 생각해낸 몇 가지 예입니다.

  • 자동입력 - KeyEvent를 가로채고 탭/스와이프 동작을 수행합니다.
  • 버튼 매퍼 - KeyEvent를 가로채서 다른 KeyEvent에 다시 매핑합니다.
  • 그리니파이 - 화면이 꺼지기 전에 앱을 강제 종료하여 자동으로 최대 절전 모드로 전환합니다.
  • 입력중+ - 플로팅 작업 버튼을 표시하기 위해 키보드 앱이 열려 있을 때를 감지합니다.
  • 라스트패스 - 사용자 이름/비밀번호 항목에 대한 페이지 스캔(Android Oreo 이전에 필요함)
  • 신속하게 전환 - 뒤로 버튼에 대한 KeyEvent를 보냅니다.
  • 태스커 - 앱이 열려 있는 시기를 감지하여 사용자 정의 작업을 수행할 수 있습니다.
  • 유형 기계 - 모든 텍스트 입력을 기록하여 텍스트 항목을 잃지 않도록 하세요.

이러한 애플리케이션 중 어느 것도 장애가 있는 사용자를 돕기 위해 Google이 의도한 방식으로 a11y를 사용하지 않습니다. 접근성 서비스를 구현하는 대부분의 애플리케이션은 Google 범위 밖의 기능에 대해 그렇게 할 것이라고 장담합니다. 하지만 이것이 Android와 접근성 같은 API의 장점입니다. Google은 일반적으로 개발자가 할 수 있는 것과 할 수 없는 것을 제한하지 않습니다. 그러나 접근성 서비스 사용에 대한 이러한 느슨한 접근 방식은 Google Play가 스토어 팀은 개발자에게 다음과 같은 정책의 향후 변경 사항을 경고하는 이메일을 보냈습니다. a11y.


Google은 정확히 무엇을 하고 있나요?

회사는 애플리케이션이 장애가 있는 사용자를 지원하는 것 이외의 이유로 접근성 서비스를 사용하는 경우 개발자에게 알립니다. 30일 이내에 이 권한 사용을 제거해야 합니다. 그렇지 않으면 해당 애플리케이션이 Play 스토어에서 제거됩니다.. 이 요구 사항을 준수하지 않으면 개발자의 Play 스토어 계정에 대한 위반이 발생할 수 있습니다. 결국 계정이 해지될 수 있습니다.

장애가 있는 사용자를 돕기 위해 a11y를 사용하는 소수의 앱에 대해 Google은 이러한 개발자가 앱에 허가. 그러나 앞서 언급했듯이 접근성 서비스는 이 새로운 정책을 위반하게 되는 앱에서 훨씬 더 자주 사용됩니다.

개발자에게 전체 이메일이 전송되었습니다.

안녕하세요 ****의 개발자 여러분,

귀하의 앱 ****(패키지 이름 ****)에서 'android.permission. BIND_ACCESSIBILITY_SERVICE.' 접근성 서비스를 요청하는 앱은 장애가 있는 사용자가 Android 기기 및 앱을 사용하도록 돕는 목적으로만 사용해야 합니다. 귀하의 앱은 당사의 규정을 준수해야 합니다. 권한 정책과 당사의 명시적 공개 요구 사항 사용자 데이터 정책.

조치 필요: 아직 그렇게 하고 있지 않다면 앱이 'android.permission. BIND_ACCESSIBILITY_SERVICE'장애가 있는 사용자가 Android 기기와 앱을 사용할 수 있도록 돕기 위해. 30일 이내에 이 요구 사항을 충족하지 못하는 앱은 Google Play에서 삭제될 수 있습니다. 또는 앱 내에서 접근성 서비스에 대한 요청을 제거할 수 있습니다. 앱 게시를 취소하도록 선택할 수도 있습니다.

앱을 변경해야 하는 경우 다음 단계를 따르세요.

  • 다음을 통해 읽어보세요. 권한 그리고 사용자 데이터 자세한 내용을 알아보고 앱이 다음에 나열된 모든 정책을 준수하는지 확인하세요. 개발자 프로그램 정책.
  • 앱에서 BIND_ACCESSIBILITY_SERVICE 권한이 필요하지 않거나 장애가 있는 사용자의 Android 기기 및 앱 사용을 돕는 것 이외의 용도로 권한이 사용되는 경우:
    1. 앱 매니페스트에서 이 권한에 대한 요청을 삭제하세요.
    2. Play Console에 로그인하세요. 정책을 준수하는 수정된 APK를 업로드하세요.
  • 또는 장애가 있는 사용자가 Android 기기 및 앱을 사용할 수 있도록 앱에 BIND_ACCESSIBILITY_SERVICE 권한이 필요한 경우:
    1. 앱의 스토어 등록정보 설명에 다음 스니펫을 포함하세요. '이 앱은 접근성 서비스를 사용합니다.'
    2. 사용자에게 앱 내에서 이 권한을 활성화하도록 요청하기 전에 이 사용법을 눈에 띄게 사용자에게 공개하세요. 귀하의 공개는 다음 요구 사항을 모두 충족해야 합니다.
      • 공개는 다음을 통해 제공되어야 합니다. 안드로이드: 요약 그리고 안드로이드: 설명 AccessibilityServiceInfo 클래스의 요소
      • 공개에는 접근성 서비스 권한이 앱에 대해 활성화하는 기능을 설명해야 합니다. 접근성 서비스 요청과 함께 사용되는 각 기능은 공개 시 정당한 사유와 함께 선언되어야 합니다.

또는 앱 게시를 취소하도록 선택할 수 있습니다.

모든 위반 사항이 추적됩니다. 어떤 성격이든 심각하거나 반복적으로 위반하는 경우 개발자 계정이 해지되고 관련 Google 계정이 조사되거나 해지될 수 있습니다.

정책을 검토한 후 오류가 있었다고 생각되면 당사에 문의해 주세요. 정책지원팀. 제 동료 중 한 명이 영업일 기준 2일 이내에 귀하에게 연락할 것입니다.

문안 인사,

Google Play 검토팀

더 읽어보세요


Google이 Play 스토어에서 접근성 서비스를 제거하는 이유는 무엇인가요?

접근성 서비스를 사용하는 동안 약간의 지연이 발생하는 것으로 알려져 있습니다., Google이 이러한 앱을 단속하기 시작한 실제 이유는 a11y를 활용하는 익스플로잇 문제가 증가하고 있기 때문일 가능성이 높습니다. 위에서 언급한 앱들은 a11y를 유익한 목적으로 사용하지만 악의적인 개발자가 악의적인 목적으로 쉽게 악용할 수 있습니다. 예를 들어 접근성 서비스 키로거, 랜섬웨어 공격 또는 피싱 공격을 구현하는 데 사용될 수 있습니다..

악의적인 접근성 서비스로부터 사용자를 보호하려는 Google의 노력은 대부분 공개를 중심으로 이루어졌습니다. 현재 다음과 같은 특정 이벤트에 등록하는 접근성 서비스를 활성화하고 있습니다. TYPE_VIEW_TEXT_CHANGED 앱이 비밀번호를 도용할 수 있다는 경고 대화상자가 표시됩니다. 이러한 메시지는 사용자가 무책임하게 앱에 a11y를 부여하는 것을 방지하는 데 효과적이라고 생각할 수 있습니다. 그러나 사용자를 속여 a11y를 부여하는 앱에 대한 문서화된 사례가 많이 있습니다. 일부 공격은 더 멀리까지 진행됩니다. 망토와 단검 악용 그리고 토스트 메시지 오버레이 공격 사용자가 화면에서 상호 작용하는 내용을 잘못 표현하여 사용자가 a11y를 허용하도록 사회적으로 설계합니다.

이와 같은 공격은 대다수의 Android 기기에 효과적입니다. Google은 오버레이 또는 토스트 메시지 공격을 방지하는 데 큰 진전을 이루었습니다(a11y를 검색하면 AOSP에서 볼 수 있음). 하지만 Google이 접근성 서비스 사용을 제한하는 것이 더 낫다고 결정하는 지점까지 이르렀습니다. 전적으로. 말이 되지만, 정말 짜증나 왜냐하면 이 움직임은 많은 혁신적인 앱의 기능을 죽일 것이기 때문입니다.


개발자는 무엇을 할 수 있나요?

불행하게도 거기에는 개발자가 할 수 있는 일은 많지 않다 이러한 변화에 대응하여. 개발자는 접근성 서비스를 제거하여 Google의 요구를 따르거나 앱이 제거되고 계정이 해지될 수 있다는 위협에 직면할 수 있습니다. 앱이 a11y를 사용하는 이유에 대한 공개를 추가하는 것만으로도 해당 앱이 장애가 있는 사용자를 지원하는 것을 합법적으로 목표로 하는 경우에만 작동합니다. 이는 현재 a11y를 사용하는 대부분의 앱을 설명하지 않습니다.

더 이상 접근성 서비스를 사용하지 않도록 앱을 리팩터링하는 것은 앞서 언급한 앱 중 전부는 아니지만 일부에서 가능합니다. LastPass와 같은 비밀번호 관리자는 자동 완성 프레임워크로 마이그레이션, 그러나 사용자가 Android 8.0 Oreo 이상을 실행하는 경우에만 해당됩니다. 앱이 a11y를 사용하여 다른 앱이 열려 있는 시기를 모니터링하는 경우 해당 앱은 대신 UsageStats API를 사용하는 폴링 서비스로 작성할 수 있습니다. Tasker와 같은 앱은 이러한 변화에도 살아남을 수 있습니다. Button Mapper 및 AutoInput과 같은 다른 제품은 운이 좋지 않습니다. 루트가 없으면 KeyEvents를 가로챌 수 있는 좋은 방법이 없습니다.

악성 앱이 접근성 API에 액세스하도록 허용하는 것이 위험하다는 점을 인식하고 있지만 Google이 실제로 유용한 일부 앱을 무력화하는 것은 유감스러운 일입니다. 우리는 구글이 제시한 정책이 뒤집히기를 바랍니다. 그렇지 않으면 그들은 단순히 그것이 잘못 해석되었다고 주장할 뿐입니다. 현재로서는 이메일의 문구가 매우 명확합니다. 가이드라인을 준수하거나 Play 스토어에서 나가라는 내용입니다. Google은 Play 스토어에 있는 앱에 대한 모든 권한을 갖고 있으며 언제든지 여러분 아래에서 깔개를 꺼낼 수 있다는 사실을 암울하게 상기시켜 줍니다.


업데이트 1: 혼란스러운 개발자 문서

Google의 개발자 문서 접근성 서비스 구축 Google Play 스토어 팀의 새로운 초점과 모순되는 것으로 보입니다. 이 글을 쓰는 시점에 이 페이지에는 다음과 같은 문구가 있습니다.

접근성 서비스는 장애가 있거나 일시적으로 장치와 완전히 상호 작용할 수 없는 사용자를 지원하기 위해 사용자 인터페이스 개선을 제공하는 애플리케이션입니다. 예를 들어, 운전 중이거나 어린 아이를 돌보고 있거나 매우 시끄러운 파티에 참석하는 사용자에게는 추가 또는 대체 인터페이스 피드백이 필요할 수 있습니다.

게다가, 페이지의 문구를 다음과 비교하면 7월 페이지의 보관된 버전, 장애가 있는 사용자를 지원하기 위한 접근성 서비스 구축에 대한 참고 사항이 존재하지 않는다는 것을 알게 될 것입니다.

이 정보를 알려 주신 João Dias에게 감사드립니다.