Skip to content

ARM Reference

SongSungKuk edited this page Jul 24, 2017 · 5 revisions

용어정리

필수 용어 설명 비고
P-APK ARM이 적용되지 않은 일반 APK 파일 Plain APK
S-APK ARM 암호화를 적용한 APK Secure-APK
SS-APK S-APK를 배포가 가능하도록 private key signing 한 APK Signed Secure-APK

ARM Reference

ARM 구성요소

2세대 ARM 이 적용된 APK(SS-APK)가 실행되면 해당 단말에 설치되어 있는 ARM Client Service 모듈과 연동을 통해서 사용자의 Application 실행 권한 여부를 체크하고, 적합한 권한을 보유한 경우 해당 Application의 실행을 허가하고 실행 가능하도록 암호화된 코드의 복호화를 수행한다. Device에서 2세대 ARM 처리를 위한 구성요소는 크게 다음과 같다.

  • 원스토어 개발자센터 ARM Client Loader
    • Application 내 ARM 적용 시 추가되는 ARM Module
    • ARM Service 와 연동하여 권한 체크 및 실행 여부에 따른 처리를 수행.
  • 원스토어 개발자센터 ARM Service v3.0
    • 권한에 따른 실행 제어를 관리하는 Android Service 형태의 Contents Provider
    • 2세대 ARM 이 적용된 Application 실행 시 Application 내 적용된 Client Loader 와 연동하여 권한 체크 및 실행 여부 판별.

원스토어 2세대 ARM 동작 방식


ARM 테스트 체크리스트

  • Application 을 실행하여 정상 작동하는지 확인
  • Application 최초 실행 시(1회)에는 Network 접속이 가능해야 한다.
  • SS-APK 를 생성한 개발자 계정의 “ARM Test 단말 관리”에 포함된 단말일 경우에만 정상 작동한다.
  • 정상적으로 실행 되지 않는 경우
    • ARM Test 단말 관리에 번호가 등록되었는지 확인
    • ARM 적용 및 서명 작업까지 수행한 APK가 맞는지 확인
    • 상품 등록되어 “판매 중” 상품 인지, 단말 관리 번호가 “상용” 인지 확인
    • 이외 가이드 문서에 따라 수행되지 않은 작업이 있는지 확인 하여 이상이 없을 시 Q&A를 통해 문의
  • 검증 시 주의사항.
    • 개발자는 ARM Test 단말 번호 등록, 저장 후 설치한 Application 의 정상 동작 여부만 확인하면 된다. (성공 여부만 확인, 실패 Case 검증 불필요)
    • ARM Test 번호로 등록된 단말에서는 SS-APK 실행 시 매번 라이선스를 발급한다.
    • ARM Test 번호로 등록된 정보는 검증 용도로만 사용하며 누출되거나 오남용 되지 않도록 주의한다.

ARM 요구 권장사항 및 제한사항

  1. Application 내 암호화/복호화 기반의 보안 솔루션 적용 시 원스토어 개발자센터 2세대 ARM 이 호환되지 않을 수 있다. (ex. HoseDex2Jar)
  2. 개발자가 Signing 을 직접 수행하는 경우, SS-APK 를 등록하는 과정에서 signing & zipalign 외 추가적인 APK 변경은 권장하지 않는다.
  3. ARM 적용 시 APK 내부 암호화 적용으로 인하여 APK 파일 정보변경이 발생하므로 상품 내 위/변조 방지를 위한 APK 물리적인 파일 정보를 확인하는 기능이 적용된 경우 오동작 할 수 있다. (파일 사이즈, CRC, Code-Signing 체크 등)
  4. Code-Signing 을 체크하는 로직이 Shared-Library(SO) 에 구현된 경우 아래와 같은 방식으로 적용 가능
  • P-APK 개발 시 체크로직을 SO 에 구현
  • P-APK 에 ARM 을 적용하여 S-APK 다운로드
  • S-APK 를 Code-Signing, Zip-Align 하여 SS-APK 제작
  • Code-Signing 체크 로직을 수정하여 SO 재빌드
  • SS-APK 내에 있던 SO 파일을 재빌드된 SO 파일로 교체
  • 수정한 SS-APK 를 다시 Code-Signing, Zip-Align
  • 최종 작업이 완료된 SS-APK 를 원스토어 개발자센터에 상품 등록
Clone this wiki locally