Play Store 정책 리서치 · 실제 사례 기반

Google Play CALL_LOG / SMS 권한 승인 — Rinda Calls 리서치 리포트

통화기록·SMS를 서버로 업로드하는 세일즈 CRM 앱(ai.grinda.telinfo)의 승인 가능성 판정
작성 2026-07-03 · 대상 Rinda Calls · 정책 근거는 Google 공식 문서 + 실제 개발자 사례 · 각 주장에 출처 링크
목차 · 판정1 정책 기준2 승인 사례3 거절 사례 4 서버 업로드5 대체 API6 전략·문구출처
핵심 판정 — 현행 스펙 승인 불가

“통화기록 + SMS 본문을 읽어 CRM 서버로 업로드” 는 작성된 그대로는 승인되지 않는다

세 가지가 겹친다: ① 세일즈/CRM 분석은 Google이 허용하는 핵심 기능 버킷에 없음(소셜 프로파일링·마케팅 용도로 읽힘) ② SMS 본문의 오프디바이스 업로드는 스파이웨어/사용자데이터 정책이 지목하는 전형적 exfiltration 예시 ③ 통화 녹음은 기본 전화앱이 아니면 2022-05 이후 별도 금지.

현실적 승인 경로는 하나뿐 — 앱을 기본 전화(dialer) 핸들러로 재설계하고, SMS는 본문 읽기 대신 OTP용 SMS Retriever API로 축소, 서버 동기화는 dialer 자체 기능에 바인딩. 그 외에는 심사 반려를 예상해야 한다.

1정책 기준 (2026)

지배 정책은 “Use of SMS or Call Log permission groups”(answer/10208820)이며, 신설 민감권한 페이지(16558241, 16909972)가 이를 강화한다. 업계 마감 신호: 2026-10-28부터 Android 17+ 타겟 앱은 정책 준수 의무화.

누적 3-게이트 (모두 통과해야 함)

  1. 기본 핸들러 게이트 — SMS/전화/어시스턴트 권한을 요청하기 전에 앱이 기본 핸들러로 실제 등록돼 있어야 하고, 기본 지위를 잃으면 즉시 권한 사용 중단.
  2. 핵심 기능 게이트 — 권한과 그 파생 데이터는 앱 설명에 명시·홍보된 핵심 기능 제공에만 사용.
  3. 대체수단 부재 게이트 — 더 좁은 API(예: SMS Retriever)로 같은 결과가 가능하면 제한 권한은 거부.

허용 버킷 — SMS 권한군

  • 기본 SMS 핸들러(핵심 메시징)
  • 기본 어시스턴트의 SMS 처리
  • 백업 & 복원
  • SMS 피싱 방지 (보안 실적 문서 필요)
  • 교차기기/연결기기 동기화

허용 버킷 — Call Log 권한군

  • 기본 전화 핸들러(통화 기능)
  • 기본 어시스턴트
  • 발신자 ID & 스팸 탐지
  • 계정/금융거래 전화 인증
  • 차량 핸즈프리 · 기업 기기관리 · 기기 자동화

명시 금지 기본핸들러 아닌 연락처 우선순위, 통화 녹음, 기기 최적화, 소셜 프로파일링/데이팅, 데이터 판매. 계정 SMS 인증·초대는 안전한 대안이 있어 불가.

임시 예외: “매우 드물게, 대단히 중요한 기능이면서 대안이 전혀 없는 경우”에만 프라이버시 영향을 저울질해 재량 부여 — 표준 권리가 아님.

2실제 승인 사례

공개 소스에서 이름이 확인된 승인 사례는 희소하고, 가장 확실한 건 CRM이 아니라 자동화 앱이다.

정직한 공백: 축자 인용 가능한 승인은 Tasker(카테고리 화이트리스트) 하나뿐. 나머지는 정책 카테고리·앱 자기설명에서 추론한 것이지 Google 결정 인용이 아님.

3실제 거절 사례

거절 논리는 이름+축자 인용으로 잘 문서화돼 있다(모두 2019 롤아웃 시점이나 정책 문구는 이후 불변).

Tasker: “The declared feature, ‘Initiate a text message, Initiate a phone call, and Automation…’ are ineligible for these permissions.” — 핵심 기능에 불필요, 기본핸들러 프롬프트 부재.
EasyJoin Pro: “The declared feature {Caller ID, Connected device companion apps} is allowed; however we determined it to be unnecessary for the core functionality. The declared feature {Initiate a text message} is not allowed.”

현재(2023–2026) 개발자 포럼 반려 스레드 다수 존재(“10회+ 반려”, “does not match core functionality”) — 다만 Google 포럼이 JS-게이트라 본문·앱명은 로그인해야 열림: 426041131, 312675092, 288938705.

4서버 업로드 · 오프디바이스 사용

서버 업로드가 전면 금지는 아니지만 강하게 게이트된다 — 그리고 “raw SMS 본문 + 통화기록 → CRM 서버”는 최악 프레이밍에 가깝다.

5최소 범위 대체 API

대안권한 제거?비고
ROLE_DIALER 기본 전화앱아니오CALL_LOG를 선언 가능하게만 함. 여전히 declaration form 필요 — 지위는 전제조건이지 면제 아님
CallScreeningService부분실시간 통화 메타(번호·방향·시각)를 CALL_LOG 조회 없이 제공. 단 통화 이력은 불가
SMS Retriever API완전권한 0. 단 발신자를 통제(앱 해시)해야 — OTP 전용
SMS User Consent API완전매니페스트 권한 0. 임의 OTP 포맷, 메시지당 1회 탭 필요
CallLog 시스템 인텐트대체 불가CallLog.Calls.CONTENT_URI는 보호됨 — 우회 인텐트 없음
SAF / 공유-투-앱파일만사용자가 수동 export한 파일만. 라이브 provider 접근 없음

요지: SMS OTP는 Retriever/User-Consent로 권한을 완전 제거 가능. 실시간 착신 메타는 CallScreeningService로 CALL_LOG 회피. 그러나 프로그램적 통화 이력 + 전체 SMS 본문(CRM 인사이트가 필요로 하는 것)은 대체 불가 — 기본 핸들러가 되거나, 아니면 데이터를 갖지 못한다.

6승인 전략 · 선언 문구

가장 방어적인 경로

프로세스: declaration은 Console에서 심사, 다회차 반려 흔함(“10회+”). 재제출로 이의 가능하나 기준은 동일 3-게이트 — 승인은 논쟁이 아니라 앱/프레이밍을 버킷에 맞추는 것으로만 통과.

결론: 기본 dialer 통화관리 앱이 자기가 정당히 보유한 데이터에 대해 CRM 분석을 부수적 기능으로 두고, SMS는 OTP-Retriever로 축소, SMS 본문 업로드 없음 — 이 형태는 방어 가능. 문자 그대로의 스펙(“통화기록+SMS 읽어 서버로, 세일즈 CRM”)은 작성된 그대로는 승인 불가이며 심사 실패를 예상해야 한다.

출처

  1. answer/10208820 — Use of SMS or Call Log permission groups
  2. answer/16558241 — Permissions/APIs Accessing Sensitive Info
  3. answer/16909972 — 핵심기능·예외 기준
  4. answer/10144311 — User Data policy
  5. answer/10787469 — Data Safety
  6. XDA — Tasker/EasyJoin/ACR 축자 반려 인용(2019-01)
  7. ProAndroidDev — 금지 use case·대안
  8. Engadget — 통화녹음 금지(2022-05-11)
  9. TechCrunch — 2019 대량 삭제
  10. Android — Default handlers
  11. Android — CallScreeningService
  12. Google — SMS Retriever vs User Consent
  13. 포럼(로그인 필요): thread/426041131 · 312675092 · 288938705 · 281313846 · 279935655
Rinda Calls (ai.grinda.telinfo) 내부 검토용 · 정책 문구는 2026-07 기준 · 축자 승인/반려 인용은 2019 롤아웃 시점이나 정책 불변 · 개인정보처리방침·Data Safety 답안·권한선언 초안은 별도 문서로 준비됨.