본문 바로가기
IT/Android

Android QUERY_ALL_PACKAGES를 사용하는 앱에 대한 선언 가이드

by TechTonic 2023. 2. 24.
반응형

Android 11 이상 기기에서 TargetSdkVersion='30' 이상을 타겟팅한 앱의 경우 QUERY_ALL_PACKAGES 권한을 사용하기 위해서는 권한 선언 양식을 제출해야 사용이 가능하다고 한다.

제출하지 않을 경우 앱 배포 및 업데이트가 불가하다.

 

자세한 내용은 Google Developer 사이트를 통해 확인할 수 있습니다.

https://support.google.com/googleplay/android-developer/answer/10158779?hl=ko 

 

폭넓은 패키지(앱) 가시성(QUERY_ALL_PACKAGES) 권한 사용 - Play Console 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

권한 허용 용도

허용되는 용도는 인식 또는 상호 운용성의 목적으로 기기에 설치된 모든 앱을 검색해야 하는 앱과 관련되며, 이 경우 권한 사용이 가능할 수 있습니다. 허용되는 용도에는 기기 검색, 바이러스 백신 앱, 파일 관리자, 브라우저가 포함됩니다. 
이 권한에 대한 액세스 권한이 부여된 앱은 명시적 공개 및 동의 요건을 포함한 사용자 데이터 정책 을 준수해야 하며, 공개되지 않았거나 잘못된 목적으로 확대해 사용할 수 없습니다.

 

예외 허용

Google Play에서는 위에 지정된 허용되는 용도에 해당하지 않는 다음의 앱에 일시적으로 예외를 허용할 수 있습니다.
  • 금융 거래 기능(예: 전용 은행, 전용 디지털 지갑)과 관련된 검증 가능한 핵심 목적을 가진 앱. 이러한 앱은 보안 관련 목적으로만 설치된 앱을 대상으로 폭넓은 가시성을 획득할 수 있습니다.
  • 핵심 목적이 실제 현금 도박이며 기존(2022년 8월 1일 기준)의 관련 지오펜싱 규정에서 요구하는 기술 표준을 준수하기 위해 폭넓은 패키지 가시성을 요구하는 실제 현금 도박 앱. 관련 실제 현금 도박 앱에 적용되는 이 예외 규정은 앱이 지오펜싱 규정을 충족하기 위해 더 안전한 개인 정보 보호 방법으로 전환해야 하는 2023년 5월 1일에 종료됩니다.

 

잘못된 용도

다음은 QUERY_ALL_PACKAGES 권한을 요청할 수 없는 사용 사례의 목록입니다.
  • 권한 사용이 앱의 핵심 목적과 직접적인 관련이 없는 경우
    • 여기에는 P2P 공유도 포함됩니다. 허용되는 용도로 앱을 사용할 수 있으려면 P2P가 앱의 핵심 목적이어야 합니다.
  • 판매 목적으로 데이터를 획득하는 경우
  • Play를 통해 배포된 앱에서 쿼리된 앱 인벤토리 데이터를 분석 또는 광고 수익 창출 목적으로 판매하거나 공유하려는 경우
  • 범위가 좁은 앱 가시성 방식으로도 필요한 작업을 처리할 수 있는 경우
참고: 이 목록에는 일부 사례만 나와 있습니다. 대체 옵션 및 권장사항에 관한 자세한 안내는 Android의 패키지 가시성 필터링을 참고하세요.

 

 

권한 선언 방법

아래 절차를 통해 권한 선언을 등록해주면 된다.

 

[Google 개발자 콘솔 > 앱 선택 > 앱 콘텐츠 > 민감한 권한 및 API > 시작] 메뉴를 통해 권한 선언 인터페이스 실행

 

민감한 권한 및 API 화면

 

'QUERY_ALL_PACKAGES' 권한이 필요한 핵심 내용 작성

권한이 필요한 용도

   - 앱의 핵심 기능 선택 ('QUERY_ALL_PACKAGES' 권한이 필요한 용도를 선택하면 된다.)

 

 

핵심 기능 동영상 공유

   - 핵심 기능을 동영상 촬영하여 Google에서 확인 할수 있도록 링크 제공 (네이버 MYBOX 사용)

 

이와 같이 작성 시 'QUERY_ALL_PACKAGES' 권한을 사용할 수 있다.

 

 

권한 사용 요청 실패 시 대응 방안

Google 에서 판단 시 'QUERY_ALL_PACKAGES' 권한이 필요 없는 앱이라고 지정할 경우 반려될 수 있다.

백신 또는 보안 앱이 아닌 이상 권한 획득이 상당히 어렵다.

 

방안으로는 아래 <queries> tag 를 통해 'QUERY_ALL_PACKAGES' 권한을 대체 할 수 있으니 참고하자.

<manifest package="com.my.app">
    <queries>
        <intent>
            <action android:name="*" />
        </intent>
    </queries>
    ...
</manifest>

조건내용 : intent를 사용하는 모든 앱을 조회

 

 

 

반응형

댓글