타사 애플리케이션 in android. Android 개발 을 언급하는 동안 애플리케이션 레이어는 다음으로 구성되어 있다고합니다.
- 네이티브 앱
- 타사 앱
- 개발자 앱
제 3 자 애플리케이션은 자사 (운영 업체 제공 업체)가 개발하지 않은 애플리케이션이라는 것을 알고 있습니다. system) 타사 애플리케이션 에서 언급했습니다.하지만 Android 타사 앱과 개발자 앱의 경우 동일하다고 생각합니다. .
댓글
- 솔직히 ' 네이티브 앱과 타사 간의 분리를 이해할 수 없었습니다. 앱 및 애플리케이션 (모두 내 사전에있는 애플리케이션). 책에서 인용 한 것처럼 (구입하지 않으면 ' 접근 할 수 없었습니다), 둘 사이의 차이점을 설명합니까, 아니면 언급 만합니까? 그렇다면 질문에 인용하여 추가해 주시겠습니까?
- @AndrewT .: 죄송합니다. 정말 응용 프로그램 이 아닌 개발자 앱 이었습니다. 내가 게시 한 내용을 편집 한대로. 타사 앱 이 개발자 앱과 다른지 말씀해 주시겠습니까? Izzy가 언급 한 대답은 둘 다 OS 에서 개발하지 않았기 때문에 동일해야합니다. 제조업체 도 아닙니다.
- 이 맥락에서 " 개발자 앱 " " 시장 "에서 설치되지 않은 앱을 의미합니다.하지만 직접 작성하고 해당 개발 프레임 워크를 통해 테스트 설치하는 앱입니다. " 서명 " 컨텍스트에서 (아래 내 답변 참조) : AFAIK 해당 앱은 " 개발 키 ", 따라서 다시 일종의 " 특수 서명 ". 하지만 사용자의 관점과 '의 정확한 차이점을 알려면 이에 대해 더 자세히 조사해야합니다.
답변
짧은 버전
" OS 및 제조업체 앱을 제외한 모든 앱 "는 " 타사 앱 "을 의미합니다.
TL; DR
타사 앱은 a, hrm, 타사에서 제공하는 앱입니다. 다음 용어는 존재하지 않지만 다음과 같이 시각화 할 수 있습니다. 제 1자는 OS를 제공하는 자 (AOSP / Google), 제 2자는 제조업체 (자신의 앱 추가)입니다.
기본적으로 다음과 같이 읽을 수 있습니다. 사전 설치되지 않은 모든 것. 일반적으로 " 타사 "라는 용어가 사용됩니다. for 1 .
기술적 배경
Android의 권한 시스템에서 기술적 배경을 찾을 수 있습니다. Android 개발자에서 관련 페이지 를 탐색하거나 내 앱 권한 설명 을 참조하면 권한이있는 경우 " 타사 앱에서 사용할 수 없음 " (또는 유사) 문구가 표시됩니다. 시스템은 " 타사 앱 "을 만드는 요소를 어떻게 결정하나요? 서명 을보고이를 OS 및 제조업체의 서명과 비교합니다. 앱의 서명이 둘 중 어느 것과도 일치하지 않으면 " 타사 앱 ".
" 개발자 앱 "
귀하의 질문은 " 제 3 자 " 및 " 개발자 " 앱. 기본적으로 실제로 개발자 앱은 " 3 번째의 " 하위 그룹 "입니다. 파티 " 앱. 해당 개발자 페이지 에 나와 있듯이 개발 중에 앱을보다 쉽게 디버깅 할 수 있도록 3 서명 할 수 있습니다. " 디버그 모드 " :
디버그 또는 릴리스에서 앱에 서명 할 수 있습니다. 방법. 앱을 배포 할 준비가되면 개발 중 디버그 모드와 릴리스 모드에서 앱에 서명합니다. Android SDK는 디버그 모드에서 앱에 서명하기위한 인증서를 생성합니다. 릴리스 모드에서 앱에 서명하려면 자체 인증서를 생성해야합니다.
[…]
에뮬레이터 및 USB를 통해 개발 관리에 연결된 기기에서 디버그 모드로 로그인 된 앱을 실행하고 디버그 할 수 있지만 로그인 한 앱은 배포 할 수 없습니다. 디버그 모드.
따라서 " 개발자 앱 "은 알려진 " 디버그 인증서 "를 사용하여 알립니다. 인용 된 출처에서 언급했듯이 " 출시 된 앱 "에는이 기능을 사용해서는 안됩니다 (예 : 개발자가 서명 한 앱을 게시해서는 안 됨). 방법) 2 .
추가 자료
- 애플리케이션 서명 확인 : 작동 방식, Xposed를 사용하여 비활성화하는 방법 및하지 말아야하는 이유
- Android Fake ID 취약점으로 인해 맬웨어가 신뢰할 수있는 애플리케이션을 가장 할 수 있음 ( 모든 앱이 OS 또는 제조업체에서 서명 한 " "로 위장 할 수 있도록 서명 보호를 해결하기 위해 악용 된 버그를 설명합니다. Kitkat 포함)
- Android 서명 메커니즘 (" ROM 서명 메커니즘 " 및 " 타사 APK 서명 메커니즘 ")
- 디지털 서명 (디지털 서명의 정의와 작동 방식에 대한 일반적인 배경)
1 : 기술적으로는 완전히 정확하지 않을 수 있지만 (예 :이 컨텍스트에서 수동으로 설치 한 앱은 ROM 자체와 동일한 키로 서명했습니다. 즉, 제조업체에서 제공 했습니까?)
2 : 이것은 보안상의 이유입니다. 동일한 서명을 사용하면 앱이 다른 앱 리소스에 액세스 할 수 있습니다. 예를 들어 작성된 특정 앱에 대해 " 애드온 "에서 사용되는 사실 동일한 개발자에 의해 ( 이미 이름이 지정된 소스 예 : Android는 동일한 인증서로 서명 된 앱이 동일한 프로세스에서 실행되도록 허용합니다. 애플리케이션이 요청하므로 시스템이 단일 애플리케이션으로 처리합니다. 및 : Android는 서명 기반 권한 적용을 제공하므로 앱이 지정된 인증서로 서명 된 다른 앱에 기능을 노출 할 수 있습니다. 동일한 인증서로 여러 앱에 서명하고 서명 기반 권한 검사를 사용하면 앱에서 안전한 방식으로 코드와 데이터를 공유 할 수 있습니다 ). " 자신 만의 " 인증서는 " " 앱이 " 다른 deve lopers “앱 ".
3 : AFAIK는 " 서명되지 않은 앱 "을 설치할 수 없으므로 반드시 서명해야합니다. 앱에 " 서명 " 할 때 일반적으로 하나는 두 개의 암호를 제공해야합니다 (하나는 서명을 보관하는 키 저장 소용, 다른 하나는 서명용) 그 자체). " 디버그 모드 " 서명을 사용하면 개발팀에서 알고있는 비밀번호로 SDK의 내부 서명을 사용하므로이를 방지 할 수 있습니다. 도구. 이렇게하면 " 컴파일›테스트›컴파일›다시 테스트›.. " 프로세스.
댓글
- : 그 ' 좋은 정교한 답변이지만 디버그 모드 에서 앱에 서명 할 필요가 있는지 알 수 있습니다.
- 내 (다시 업데이트 된) 답변에 설명 된대로 " 개발 중 앱 디버깅을 더 쉽게 ". ' " 또 다른 업데이트 ". 그 후에 '에서 댓글을 정리 (삭제 답변에 대한 내 업데이트로 인해 쓸모 없게 된 것), 그럴까요?;)
- : 알겠습니다.하지만 앱의 서명 이 실제로 의미하는 바를 말씀해 주시겠습니까? 실제로 개발 한 사람 (' s OS, 제조업체) 또는 다른 의미가 있습니까?
- ' 기술적 인 부분에 대해 조금 더 깊이 들어가고 있습니다. 이에 대해서는 Wikipedia 를 참조 할 수 있습니다. 기본적으로 앱에 서명 한 사람을 의미하며 일반적으로 개발자입니다.(수기) 서명으로 서명 된 문서와 마찬가지로 디지털 서명은 서명 된 데이터의 진위를 보여줍니다 (여기서는
.apk
).