안드로이드 14
2023년 11월 20일
2. 장치 유형
개정판 보기
휴대기기 구현이 64비트 ABI 지원을 선언하는 경우(32비트 ABI 포함 또는 제외):
개정판 보기
- [ 7.5 /H-1-13] RGB 후면 카메라가 1개 이상인 경우 기본 후면 카메라에 대한
LOGICAL_MULTI_CAMERA
기능을 지원해야 합니다(MUST).
- [ 7.5 /H-1-13] RGB 후면 카메라가 1개 이상인 경우 기본 후면 카메라에 대한
개정판 보기
[ 5.8 /T-0-1] HDMI 출력 모드를 외부 디스플레이의 50Hz 또는 60Hz 새로 고침 빈도와 함께 작동하는 선택한 SDR 또는 HDR 형식의 최고 해상도로 설정해야 합니다(MUST).
50Hz 또는 60Hz 새로 고침 빈도로 지원될 수 있는 최대 해상도를 선택하려면 HDMI 출력 모드를 설정해야 합니다.
개정판 보기
- [9/W-0-1]
android.hardware.security.model.compatible feature
선언해야 합니다(MUST).
- [9/W-0-1]
6. 개발자 도구 및 옵션 호환성
개정판 보기
- [C-0-12]
LMK_KILL_OCCURRED_FIELD_NUMBER
Atom을 작성해야 합니다(MUST).
개정판 보기
- [C-0-13] 표시하려면 셸 명령어
dumpsys gpu --gpuwork
구현해야 합니다.
- [C-0-12]
9. 보안 모델 호환성
개정판 보기
SELinux를 지원할 수 있는 Linux 커널을 사용하는 기기 구현은 다음을 충족해야 합니다.
개정판 보기
SELinux 없이 Linux 또는 Linux 이외의 커널을 사용하는 기기 구현은 다음을 충족해야 합니다.
2023년 10월 4일
2. 장치 유형
개정판 보기
Android 기기 구현은 다음 기준을 모두 충족하는 경우 휴대기기로 분류됩니다.
- 실제 대각선 화면 크기는 4인치
~3.3인치(또는 API 레벨 29 이하에서 출시된 기기 구현의 경우 2.5인치)~8인치 범위입니다.
새로운 요구 사항 시작
- 터치스크린 입력 인터페이스가 있습니다.
- 실제 대각선 화면 크기는 4인치
개정판 보기
휴대용 장치 구현:
- [ 7.1 .1.1/H-0-1]
이 문서에 설명된 모든 요구 사항을 충족하는 Android 호환 디스플레이가 하나 이상 있어야 합니다(MUST).짧은 가장자리가 최소 2.2인치, 긴 가장자리가 3.4인치인 디스플레이입니다.
소프트웨어 화면 회전을 지원하는 휴대기기 구현은 다음을 충족해야 합니다.
- [ 7.1 .1.1/H-1-1]* 타사 애플리케이션에 사용할 수 있는 논리 화면을 짧은 가장자리가 최소 2인치, 긴 가장자리가 2.7인치가 되도록 만들어야 합니다. Android API 레벨 29 이하에서 출시된 기기는 이 요구 사항에서 면제될 수 있습니다.
소프트웨어 화면 회전을 지원하지 않는 휴대기기 구현은 다음을 충족해야 합니다.
- [ 7.1 .1.1/H-2-1]* 타사 애플리케이션에 사용할 수 있는 논리 화면의 짧은 가장자리가 최소 2.7인치가 되도록 해야 합니다. Android API 레벨 29 이하에서 출시된 기기는 이 요구 사항에서 면제될 수 있습니다.
새로운 요구 사항 시작
휴대기기 구현이
android.hardware.audio.output
및android.hardware.microphone
선언하는 경우 다음을 충족해야 합니다.[ 5.6 /H-1-1] '스피커에서 마이크까지', 3.5mm의 데이터 경로에서 평균 절대 편차가 30ms 미만이고 5회 측정에 대한 평균 연속 왕복 지연 시간이 300 밀리초 이하여야 합니다(MUST). 루프백 어댑터(지원되는 경우), USB 루프백(지원되는 경우).
[ 5.6 /H-1-2] 스피커-마이크 데이터 경로에 대한 최소 5회 측정에서 평균 탭-톤 지연 시간이 300 밀리초 이하여야 합니다(MUST).
하나 이상의 햅틱 액추에이터를 포함하는 휴대기기 구현은 다음을 충족해야 합니다.
- [ 7.10 /H]* ERM(편심 회전 질량) 햅틱 액츄에이터(진동기)를 사용하면 안 됩니다.
- [ 7.10 /H]* android.view.HapticFeedbackConstants 에서 명확한 햅틱을 위한 모든 공개 상수, 즉 CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT를 구현해야 합니다. , GESTURE_START 및 GESTURE_END).
- [ 7.10 /H]* android.os.VibrationEffect 에서 명확한 햅틱을 위한 모든 공개 상수(EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK 및 EFFECT_DOUBLE_CLICK)와 android.os.VibrationEffect.Composition 의 풍부한 햅틱 을 위한 모든 가능한 공개
PRIMITIVE_*
상수( 클릭, 틱, LOW_TICK, QUICK_FALL, QUICK_RISE, SLOW_RISE, 스핀, THUD). LOW_TICK 및 SPIN과 같은 일부 기본 요소는 진동기가 상대적으로 낮은 주파수를 지원할 수 있는 경우에만 실행 가능합니다. - [7.10/H]* android.view.HapticFeedbackConstants 의 공개 상수를 해당 진폭 관계를 사용하여 권장 android.os.VibrationEffect 상수에 매핑하기 위한 지침을 따라야 합니다.
- [ 7.10 /H]* createOneShot() 및 createWaveform() API에 대한 품질 평가를 따라야 합니다.
- [ 7.10 /H]* 공개 android.os.Vibrator.hasAmplitudeControl() API의 결과가 진동기의 기능을 올바르게 반영하는지 확인해야 합니다.
- [ 7.10 /H]* 일반적으로 장치를 손으로 잡거나 만지는 위치 근처에 액추에이터 배치를 배치해야 합니다.
범용 7.10 선형 공진 액추에이터를 하나 이상 포함하는 휴대기기 구현은 다음을 충족해야 합니다.
- [ 7.10 /H] 일반적으로 장치를 손으로 잡거나 만지는 위치 근처에 액추에이터 배치를 배치해야 합니다(SHOULD).
- [ 7.10 /H] 기기의 자연스러운
세로방향의 X축(왼쪽-오른쪽)에서 햅틱 액츄에이터를 이동해야 합니다(SHOULD).
X축 선형 공진 액추에이터(LRA)인 범용 촉각 액추에이터가 있는 휴대기기 구현은 다음을 충족해야 합니다.
- [ 7.10 /H] X축 LRA의 공진 주파수가 200Hz 미만이어야 합니다(SHOULD).
- [ 7.1 .1.1/H-0-1]
개정판 보기
휴대기기 구현은 다음과 같은 동영상 인코딩 형식을 지원하고 이를 타사 애플리케이션에서 사용할 수 있도록 해야 합니다(MUST).
- [ 5.2 /H-0-3] AV1
휴대기기 구현은 다음과 같은 동영상 디코딩 형식을 지원하고 이를 타사 애플리케이션에서 사용할 수 있도록 해야 합니다(MUST).
- [ 5.3 /H-0-6] AV1
개정판 보기
섹션 7.2.3 에 설명된 최근 기능 탐색 키를 포함하는 기기 구현이 인터페이스를 변경하는 경우 다음을 충족해야 합니다.
- [ 3.8 .3/H-1-1] 화면 고정 동작을 구현하고 사용자에게 기능을 전환할 수 있는 설정 메뉴를 제공해야 합니다(MUST).
ControlsProviderService
및Control
API에 대한 지원을 포함하고 타사 애플리케이션이 기기 컨트롤을 게시하도록 허용하는 휴대기기 구현은 다음을 충족해야 합니다.- [ 3.8 .16/H-1-6] 기기 구현은 다음과 같이 사용자 어포던스를 정확하게 렌더링해야 합니다(MUST).
- 기기가
config_supportsMultiWindow=true
설정하고 앱이 유효한 활동(API에서 정의한 대로)의 ComponentName을 포함하여ControlsProviderService
선언에서 메타데이터META_DATA_PANEL_ACTIVITY
선언하는 경우 앱은 해당 활동을 이 사용자 어포던스에 포함해야 합니다. - 앱이 메타데이터
META_DATA_PANEL_ACTIVITY
선언하지 않는 경우ControlsProviderService
API에서 제공하는 지정된 필드와 Control API에서 제공하는 지정된 필드를 렌더링해야 합니다.
- 기기가
- [ 3.8 .16/H-1-7] 앱이 메타데이터
META_DATA_PANEL_ACTIVITY
를 선언하는 경우 내장된 활동을 시작할 때EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
를 사용하여 [3.8.16/H-1-5]에 정의된 설정 값을 전달해야 합니다(MUST).
개정판 보기
휴대용 장치 구현:
- [ 8.5 /H-0-1] SDK 문서 에 설명된 대로 시작된 이후 각 서비스의 기간을 포함하여 활성 포그라운드 서비스 또는 사용자 시작 작업이 있는 모든 앱을 보려면 설정 메뉴에서
사용자어포던스를 제공해야 합니다(MUST). .포그라운드 서비스나 사용자가 시작한 작업을 실행 중인 앱을 중지하는 기능도 있습니다.SDK 문서 에 설명된 대로 포그라운드 서비스를 실행 중인 앱을 중지하고 활성 포그라운드 서비스가 있는 모든 앱과 각 서비스가 시작된 이후의 기간을 표시하는 기능이 있습니다.- 일부 앱은 SDK 문서 에 설명된 대로 사용자 어포던스에 나열되거나 중지되지 않을 수 있습니다.
- [ 8.5 /H-0-1] SDK 문서 에 설명된 대로 시작된 이후 각 서비스의 기간을 포함하여 활성 포그라운드 서비스 또는 사용자 시작 작업이 있는 모든 앱을 보려면 설정 메뉴에서
- [ 8.5 /H-0-2] 포그라운드 서비스 또는 사용자 시작 작업을 실행 중인 앱을 중지하기 위한 사용자 어포던스를 제공해야 합니다(MUST).
개정판 보기
android.hardware.telephony
지원을 선언하는 기기 구현은 다음을 충족해야 합니다.
- [ 9.5 /H-1-1]
UserManager.isHeadlessSystemUserMode
true
로 설정하면 안 됩니다.
보안 잠금 화면이 있고 TrustAgentService
시스템 API를 구현하는 하나 이상의 Trust Agent를 포함하는 기기 구현은 다음을 충족해야 합니다.
- [ 9.11.1 /H-1-1] 72시간마다 한 번 이상 권장되는 기본 인증 방법(예: PIN, 패턴, 비밀번호) 중 하나를 사용자에게 요청해야 합니다(MUST).
휴대기기 구현이 UserManager.isHeadlessSystemUserMode
true
로 설정하면
시스템 API HotwordDetectionService
또는 마이크 액세스 표시 없이 핫워드 감지를 위한 다른 메커니즘을 지원하는 휴대기기 구현은 다음을 충족해야 합니다.
- [9.8/H-1-1] 핫워드 감지 서비스가 시스템,
ContentCaptureService
또는SpeechRecognizer#createOnDeviceSpeechRecognizer()
에 의해 생성된 기기 내 음성 인식 서비스로만 데이터를 전송할 수 있는지 확인해야 합니다(MUST). - [9.8/H-1-6] 성공적인 각 핫워드 결과에 대해 핫워드 감지 서비스 외부로 100바이트를 초과하는 데이터 (오디오 스트림 제외) 가 전송되도록 허용하면 안 됩니다(MUST NOT).
- [9.8/H-1-15] 성공적인 핫워드 결과에 제공된 오디오 스트림이 핫워드 감지 서비스에서 음성 상호작용 서비스로 단방향으로 전송되는지 확인해야 합니다(MUST).
시스템 API HotwordDetectionService
사용하는 애플리케이션이나 마이크 사용 표시 없이 핫워드 감지를 위한 유사한 메커니즘을 포함하는 기기 구현의 경우 애플리케이션은 다음을 충족해야 합니다.
- [9.8/H-2-3] 핫워드 감지 서비스, 오디오 데이터, 오디오를 재구성하는 데 사용할 수 있는 데이터(전체 또는 부분), 핫워드 자체와 관련 없는 오디오 콘텐츠(
ContentCaptureService
또는 제외)를 전송하면 안 됩니다(MUST NOT ) . 온디바이스 음성인식 서비스.
시스템 API VisualQueryDetectionService
또는 마이크 및/또는 카메라 액세스 표시 없이 쿼리 감지를 위한 다른 메커니즘을 지원하는 휴대기기 구현은 다음을 충족해야 합니다.
- [9.8/H-3-1] 쿼리 감지 서비스가 시스템,
ContentCaptureService
또는 기기 내 음성 인식 서비스(SpeechRecognizer#createOnDeviceSpeechRecognizer()
에 의해 생성됨)로만 데이터를 전송할 수 있는지 확인해야 합니다(MUST). - [9.8/H-3-2]
ContentCaptureService
또는 기기 내 음성 인식 서비스를 제외하고VisualQueryDetectionService
외부로 전송되는 오디오 또는 동영상 정보를 허용하면 안 됩니다(MUST NOT). - [9.8/H-3-3] 기기가 디지털 어시스턴트 애플리케이션에 참여하려는 사용자 의도를 감지하면(예: 카메라를 통해 사용자 존재 감지) 시스템 UI에 사용자 알림을 표시해야 합니다(MUST).
- [9.8/H-3-4] 사용자 쿼리가 감지된 직후 마이크 표시기를 표시하고 감지된 사용자 쿼리를 UI에 표시해야 합니다(MUST).
- [9.8/H-3-5] 사용자 설치 가능 애플리케이션이 시각적 쿼리 감지 서비스를 제공하도록 허용하면 안 됩니다(MUST NOT).
개정판 보기
휴대기기 구현이 android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.T
반환하는 경우 다음을 충족해야 합니다.
- Android 13 CDD 섹션 2.2.7.1 에 나열된 미디어 요구사항을 충족해야 합니다(MUST).
새로운 요구 사항 시작
휴대기기 구현이android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.U
반환하는 경우 다음을 충족해야 합니다.- [5.1/H-1-1]
CodecCapabilities.getMaxSupportedInstances()
및VideoCapabilities.getSupportedPerformancePoints()
메서드를 통해 모든 코덱 조합에서 동시에 실행될 수 있는 최대 하드웨어 비디오 디코더 세션 수를 광고해야 합니다(MUST). - [5.1/H-1-2] 1080p 해상도@30fps에서 3개 세션과 동시에 실행되는 모든 코덱 조합에서 8비트(SDR) 하드웨어 비디오 디코더 세션(AVC, HEVC, VP9, AV1 이상)의 6개 인스턴스를 지원해야 합니다(MUST). AV1을 제외하고 4k 해상도@30fps에서 3개 세션. AV1 코덱은 1080p 해상도만 지원해야 하지만 여전히 1080p30fps에서 6개의 인스턴스를 지원해야 합니다.
- [5.1/H-1-3]
CodecCapabilities.getMaxSupportedInstances()
및VideoCapabilities.getSupportedPerformancePoints()
메서드를 통해 모든 코덱 조합에서 동시에 실행될 수 있는 최대 하드웨어 비디오 인코더 세션 수를 알려야 합니다(MUST). - [5.1/H-1-4] 1080p 해상도@30fps에서 4개 세션과 동시에 실행되는 모든 코덱 조합에서 8비트(SDR) 하드웨어 비디오 인코더 세션(AVC, HEVC, VP9, AV1 이상)의 6개 인스턴스를 지원해야 합니다(MUST). AV1을 제외하고 4k 해상도@30fps에서 2개의 세션. AV1 코덱은 1080p 해상도만 지원해야 하지만 여전히 1080p30fps에서 6개의 인스턴스를 지원해야 합니다.
- [5.1/H-1-5]
CodecCapabilities.getMaxSupportedInstances()
및VideoCapabilities.getSupportedPerformancePoints()
메서드를 통해 모든 코덱 조합에서 동시에 실행될 수 있는 최대 하드웨어 동영상 인코더 및 디코더 세션 수를 알려야 합니다(MUST). - [5.1/H-1-6] 4K에서 3개 세션과 동시에 실행되는 모든 코덱 조합에서 8비트(SDR) 하드웨어 비디오 디코더 및 하드웨어 비디오 인코더 세션(AVC, HEVC, VP9, AV1 이상)의 6개 인스턴스를 지원해야 합니다(MUST). @30fps 해상도(AV1 제외). 이 중 최대 2개는 인코더 세션이고 3개는 1080p 해상도입니다. AV1 코덱은 1080p 해상도만 지원해야 하지만 여전히 1080p30fps에서 6개의 인스턴스를 지원해야 합니다.
- [5.1/H-1-19] 4K@30fps 해상도에서 동시에 실행되는 모든 코덱 조합에서 10비트(HDR) 하드웨어 비디오 디코더 및 하드웨어 비디오 인코더 세션(AVC, HEVC, VP9, AV1 이상)의 인스턴스 3개를 지원해야 합니다(MUST). (AV1 제외) 그 중 최대 1개는 GL 표면을 통해 RGBA_1010102 입력 형식으로 구성될 수 있는 인코더 세션입니다. GL 표면에서 인코딩하는 경우 인코더에 의한 HDR 메타데이터 생성이 필요하지 않습니다. AV1 코덱 세션은 이 요구 사항에 4K가 필요한 경우에도 1080p 해상도만 지원하면 됩니다.
- [5.1/H-1-7] 로드 중인 모든 하드웨어 동영상 인코더에 대한 1080p 이하의 동영상 인코딩 세션에 대해 코덱 초기화 지연 시간이 40ms 이하여야 합니다(MUST). 여기서 로드는 1080p 오디오-비디오 녹화 초기화와 함께 하드웨어 비디오 코덱을 사용하는 동시 1080p ~ 720p 비디오 전용 트랜스코딩 세션으로 정의됩니다. Dolby Vision 코덱의 경우 코덱 초기화 지연 시간은 50ms 이하여야 합니다.
- [5.1/H-1-8] 로드 중인 모든 오디오 인코더에 대한 128kbps 이하의 낮은 비트 전송률 오디오 인코딩 세션에 대해 코덱 초기화 지연 시간이 30ms 이하여야 합니다(MUST). 여기서 로드는 1080p 오디오-비디오 녹화 초기화와 함께 하드웨어 비디오 코덱을 사용하는 동시 1080p ~ 720p 비디오 전용 트랜스코딩 세션으로 정의됩니다.
- [5.1/H-1-9] 8-2 프레임 모두에 대해 4k 해상도@30fps(AV1 제외)에서 동시에 실행되는 모든 코덱 조합에서 보안 하드웨어 비디오 디코더 세션(AVC, HEVC, VP9, AV1 이상)의 인스턴스 2개를 지원해야 합니다(MUST). 비트(SDR) 및 10비트 HDR 콘텐츠. AV1 코덱 세션은 이 요구 사항에 4K가 필요한 경우에도 1080p 해상도만 지원하면 됩니다.
- [5.1/H-1-10] 모든 코덱에서 보안 하드웨어 비디오 디코더 세션 인스턴스 1개(총 4개 인스턴스)(AVC, HEVC, VP9, AV1 이상)와 함께 비보안 하드웨어 비디오 디코더 세션 인스턴스 3개를 지원해야 합니다(MUST). 4K 해상도@30fps(AV1 제외)에서 3개 세션을 동시에 실행하는 조합입니다. 여기에는 하나의 보안 디코더 세션과 1080p 해상도@30fps에서 최대 2개의 세션이 10비트 HDR에 있을 수 있는 1개의 nn 보안 세션이 포함됩니다. AV1 코덱 세션은 이 요구 사항에 4K가 필요한 경우에도 1080p 해상도만 지원하면 됩니다.
- [5.1/H-1-11] 기기의 모든 하드웨어 AVC, HEVC, VP9 또는 AV1 디코더에 대한 보안 디코더를 지원해야 합니다(MUST).
- [5.1/H-1-12] 로드 중인 모든 하드웨어 비디오 디코더에 대한 1080p 이하의 비디오 디코딩 세션에 대해 코덱 초기화 지연 시간이 40ms 이하여야 합니다(MUST). 여기서 로드는 1080p 오디오-비디오 재생 초기화와 함께 하드웨어 비디오 코덱을 사용하는 동시 1080p ~ 720p 비디오 전용 트랜스코딩 세션으로 정의됩니다. Dolby Vision 코덱의 경우 코덱 초기화 지연 시간은 50ms 이하여야 합니다.
- [5.1/H-1-13] 로드 중인 모든 오디오 디코더에 대한 128kbps 이하의 낮은 비트 전송률 오디오 디코딩 세션에 대해 코덱 초기화 지연 시간이 30ms 이하여야 합니다(MUST). 여기서 로드는 1080p 오디오-비디오 재생 초기화와 함께 하드웨어 비디오 코덱을 사용하는 동시 1080p ~ 720p 비디오 전용 트랜스코딩 세션으로 정의됩니다.
- [5.1/H-1-14] AV1 하드웨어 디코더 Main 10, 레벨 4.1 및 필름 그레인을 지원해야 합니다(MUST).
- [5.1/H-1-15] 4K60을 지원하는 하드웨어 비디오 디코더가 1개 이상 있어야 합니다(MUST).
- [5.1/H-1-16] 4K60을 지원하는 하드웨어 동영상 인코더가 1개 이상 있어야 합니다(MUST).
- [5.3/H-1-1] 로드 중인 4K 60fps 비디오 세션에 대해 10초에 1프레임 이상 삭제(즉, 0.167% 프레임 삭제 미만)하면 안 됩니다(MUST NOT).
- [5.3/H-1-2] 4K 세션에 대해 로드 중인 60fps 비디오 세션에서 비디오 해상도가 변경되는 동안 10초에 1프레임 이상 삭제하면 안 됩니다(MUST NOT).
- [5.6/H-1-1] CTS 인증기 탭-톤 테스트를 사용하여 탭-톤 지연 시간이 80밀리초 이하여야 합니다(MUST).
- [5.6/H-1-2] 지원되는 데이터 경로 하나 이상에서 왕복 오디오 지연 시간이 80밀리초 이하여야 합니다(MUST).
- [5.6/H-1-3] 3.5mm 오디오 잭이 있는 경우 스테레오 출력을 위해 24비트 이상의 오디오를 지원해야 하며, 짧은 지연 시간 및 스트리밍 구성을 위해 전체 데이터 경로를 통해 지원되는 경우 USB 오디오를 통해 오디오를 지원해야 합니다(MUST). 짧은 지연 시간 구성의 경우 AAudio는 짧은 지연 시간 콜백 모드의 앱에서 사용해야 합니다. 스트리밍 구성의 경우 앱에서 Java AudioTrack을 사용해야 합니다. 낮은 지연 시간과 스트리밍 구성 모두에서 HAL 출력 싱크는 대상 출력 형식으로
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
또는AUDIO_FORMAT_PCM_FLOAT
허용해야 합니다. - [5.6/H-1-4] 4채널 이상의 USB 오디오 장치를 지원해야 합니다(MUST)(이는 노래 미리보기를 위해 DJ 컨트롤러에서 사용됩니다.)
- [5.6/H-1-5] 클래스 호환 MIDI 장치를 지원하고 MIDI 기능 플래그를 선언해야 합니다(MUST).
- [5.6/H-1-9] 최소 12개 채널 믹싱을 지원해야 합니다(MUST). 이는 7.1.4 채널 마스크가 있는 AudioTrack을 열고 모든 채널을 스테레오로 적절하게 공간화하거나 다운믹스하는 기능을 의미합니다.
- [5.6/H-SR] 최소한 9.1.6 및 22.2 채널 마스크를 지원하여 24채널 믹싱을 지원할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- [5.7/H-1-2] 아래 콘텐츠 복호화 기능을 사용하여
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
지원해야 합니다.
최소 샘플 크기 | 4MiB |
최소 서브샘플 수 - H264 또는 HEVC | 32 |
최소 하위 샘플 수 - VP9 | 9 |
최소 하위 샘플 수 - AV1 | 288 |
최소 하위 샘플 버퍼 크기 | 1MiB |
최소 일반 암호화 버퍼 크기 | 500KiB |
최소 동시 세션 수 | 30 |
세션당 최소 키 수 | 20 |
최소 총 키 수(모든 세션) | 80 |
최소 총 DRM 키 수(모든 세션) | 6 |
메시지 크기 | 16KiB |
초당 복호화된 프레임 | 60fps |
- [5.1/H-1-17] AVIF 기준 프로필을 지원하는 하드웨어 이미지 디코더가 1개 이상 있어야 합니다(MUST).
- [5.1/H-1-18] 30fps 및 1Mbps에서 최대 480p 해상도를 인코딩할 수 있는 AV1 인코더를 지원해야 합니다(MUST).
-
[5.12/H-1-1] MUST[5.12/H-SR] 기기에 있는 모든 하드웨어 AV1 및 HEVC 인코더에 대한Feature_HdrEditing
기능 지원을 강력히 권장합니다. - [5.12/H-1-2] 기기에 있는 모든 하드웨어 AV1 및 HEVC 인코더에 대해 RGBA_1010102 색상 형식을 지원해야 합니다(MUST).
- [5.12/H-1-3] 8비트와 10비트 모두의 YUV 텍스처에서 샘플링하려면 EXT_YUV_target 확장에 대한 지원을 광고해야 합니다(MUST).
- [7.1.4/H-1-1] 데이터 처리 장치(DPU) 하드웨어 작성기(HWC)에 최소 6개의 하드웨어 오버레이가 있어야 하며, 그 중 최소 2개는 10비트 비디오 콘텐츠를 표시할 수 있습니다.
휴대기기 구현이 android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.U
반환하고 하드웨어 AVC 또는 HEVC 인코더에 대한 지원을 포함하는 경우 다음을 충족해야 합니다.
- [5.2/H-2-1] 향후 문서에 정의된 대로 하드웨어 AVC 및 HEVC 코덱에 대한 동영상 인코더 속도 왜곡 곡선으로 정의된 최소 품질 목표를 충족해야 합니다(MUST).
개정판 보기
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.U
반환하는 경우 다음을 충족해야 합니다.- [ 7.5 /H-1-1] 4k@30fps에서 동영상 캡처를 지원하는 최소 12메가픽셀의 해상도를 갖춘 기본 후면 카메라가 있어야 합니다(MUST). 기본 후면 카메라는 카메라 ID가 가장 낮은 후면 카메라입니다.
- [ 7.5 /H-1-2] 해상도가 6메가픽셀 이상이고 1080p@30fps에서 동영상 캡처를 지원하는 기본 전면 카메라가 있어야 합니다. 기본 전면 카메라는 카메라 ID가 가장 낮은 전면 카메라입니다.
- [ 7.5 /H-1-3] 두 기본 카메라 모두에 대해
android.info.supportedHardwareLevel
속성을 FULL 이상으로 지원해야 합니다(MUST). - [ 7.5 /H-1-4] 두 기본 카메라 모두에 대해
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
지원해야 합니다. - [ 7.5 /H-1-5] 두 기본 카메라 모두에 대해 ITS 조명 조건(3000K)에서 CTS 카메라 PerformanceTest로 측정한 대로 1080p 해상도에 대해 Camera2 JPEG 캡처 지연 시간이 1000
900ms미만이어야 합니다(MUST). - [ 7.5 /H-1-6] 두 기본 카메라 모두에 대해 ITS 조명 조건(3000K)에서 CTS 카메라 성능 테스트로 측정한 대로 카메라 2 시작 지연 시간(첫 번째 미리보기 프레임으로 카메라 열기)이 500ms 미만이어야 합니다.
- [ 7.5 /H-1-8] 기본 후면 카메라에 대해
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
및android.graphics.ImageFormat.RAW_SENSOR
지원해야 합니다(MUST). - [ 7.5 /H-1-9] 720p 또는 1080p @ 240fps를 지원하는 후면 기본 카메라가 있어야 합니다(MUST).
- [ 7.5 /H-1-10] 동일한 방향을 향하는 초광각 RGB 카메라가 있는 경우 기본 카메라에 대한 최소 ZOOM_RATIO가 1.0 미만이어야 합니다.
- [ 7.5 /H-1-11] 기본 카메라에서 동시 전후방 스트리밍을 구현해야 합니다(MUST).
- [ 7.5 /H-1-12] 기본 전면 카메라와 기본 후면 카메라 모두에 대해
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
지원해야 합니다. - [ 7.5 /H-1-13] 동일한 방향을 향하는 RGB 카메라가 1개 이상인 경우 기본 카메라에 대해
LOGICAL_MULTI_CAMERA
기능을 지원해야 합니다(MUST). - [ 7.5 /H-1-14] 기본 전면 카메라와 기본 후면 카메라 모두에 대해
STREAM_USE_CASE
기능을 지원해야 합니다(MUST). - [ 7.5 /H-1-15] 기본 카메라의 CameraX 및 Camera2 확장을 통해
Bokeh 및야간 모드 확장을 지원해야 합니다(MUST). - [ 7.5 /H-1-16] 기본 카메라에 대해 DYNAMIC_RANGE_TEN_BIT 기능을 지원해야 합니다(MUST).
- [ 7.5 /H-1-17] 기본 카메라에 대해 CONTROL_SCENE_MODE_FACE_PRIORITY 및 얼굴 감지( STATISTICS_FACE_DETECT_MODE_SIMPLE 또는 STATISTICS_FACE_DETECT_MODE_FULL )를 지원해야 합니다.
개정판 보기
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.U
반환하는 경우 다음을 충족해야 합니다.- [7.1.1.1/H-2-1] 화면 해상도가 1080p 이상이어야 합니다(MUST).
- [7.1.1.3/H-2-1] 화면 밀도가 400dpi 이상이어야 합니다(MUST).
- [7.1.1.3/H-3-1] 평균 1000니트 이상을 지원하는 HDR 디스플레이가 있어야 합니다(MUST).
- [7.6.1/H-2-1] 실제 메모리가 8GB 이상이어야 합니다(MUST).
개정판 보기
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
에 대해 android.os.Build.VERSION_CODES.U
반환하는 경우 다음을 충족해야 합니다.- [8.2/H-1-1] 최소 150MB/s의 순차 쓰기 성능을 보장해야 합니다(MUST).
- [8.2/H-1-2] 최소 10MB/s의 무작위 쓰기 성능을 보장해야 합니다(MUST).
- [8.2/H-1-3] 최소 250MB/s의 순차 읽기 성능을 보장해야 합니다(MUST).
- [8.2/H-1-4] 최소 100MB/s의 무작위 읽기 성능을 보장해야 합니다(MUST).
- [8.2/H-1-5] 최소 50MB/s의 2배 읽기 및 1배 쓰기 성능으로 병렬 순차 읽기 및 쓰기 성능을 보장해야 합니다(MUST).
개정판 보기
텔레비전 기기 구현은 다음과 같은 동영상 인코딩 형식을 지원하고 이를 타사 애플리케이션에서 사용할 수 있도록 해야 합니다(MUST).
- [ 5.2 /T-0-3] AV1
텔레비전 기기 구현은 다음과 같은 동영상 디코딩 형식을 지원하고 이를 타사 애플리케이션에서 사용할 수 있도록 해야 합니다(MUST).
- [ 5.3.2 /T-0-7] AV1
개정판 보기
보안 잠금 화면이 있고 TrustAgentService
시스템 API를 구현하는 하나 이상의 Trust Agent를 포함하는 기기 구현은 다음을 충족해야 합니다.
- [ 9.11.1 /W-1-1] 72시간마다 한 번 이상 권장되는 기본 인증 방법(예: PIN, 패턴, 비밀번호) 중 하나를 사용자에게 요청해야 합니다(MUST).
개정판 보기
AM/FM 방송 라디오에 대한 지원을 포함하고 해당 기능을 애플리케이션에 노출하는 기기 구현은 다음을 충족해야 합니다.
- [ 7.4
.10/A-0-1]FEATURE_BROADCAST_RADIO
에 대한 지원을 선언해야 합니다.
외부 뷰 카메라는 후방 카메라와 같이 기기 구현 외부의 장면을 이미지화하는 카메라입니다.
자동차 장치 구현:
- 하나 이상의 외부 뷰 카메라를 포함해야 합니다(SHOULD).
외부 뷰 카메라를 포함하는 자동차 기기 구현은 다음을 충족해야 합니다.
- [ 7.5 /A-1-1] 카메라 핵심 요구사항을 준수하지 않는 한 Android 카메라 API 를 통해 액세스할 수 있는 외부 뷰 카메라를 보유하면 안 됩니다(MUST NOT).
- [ 7.5 /A-SR-1] 카메라 미리보기를 회전하거나 수평으로 미러링하지 않을 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- [ 7.5 /A-SR-2] 최소 1.3메가픽셀의 해상도를 가질 것을 적극 권장합니다.
- 고정 초점 또는 EDOF(확장 심도) 하드웨어가 있어야 합니다(SHOULD).
- 카메라 드라이버에 하드웨어 자동 초점이나 소프트웨어 자동 초점이 구현되어 있을 수 있습니다(MAY).
자동차 기기 구현이 하나 이상의 외부 뷰 카메라를 포함하고 EVS(외부 뷰 시스템) 서비스를 로드하는 경우 해당 카메라는 다음을 충족해야 합니다.
- [ 7.5 /A-2-1] 카메라 미리보기를 회전하거나 수평으로 미러링하면 안 됩니다.
자동차 장치 구현:
- 타사 애플리케이션에서 사용할 수 있는 하나 이상의 카메라를 포함할 수 있습니다.
자동차 기기 구현에 하나 이상의 카메라가 포함되어 있고 이를 제3자 애플리케이션에서 사용할 수 있도록 하는 경우 다음을 충족해야 합니다.
후방 카메라는 차량의 어느 위치에나 위치할 수 있고 차량 실내 외부를 향하는 전면 카메라를 의미합니다. 즉, 후방 카메라처럼 차체 반대편의 장면을 촬영합니다.
전면 카메라는 차량의 어느 위치에나 위치할 수 있고 차량 실내 내부를 향하는 사용자 지향 카메라를 의미합니다. 즉, 화상 회의 및 유사한 응용 프로그램과 같이 사용자를 이미지화합니다.
자동차 장치 구현:
- [7.5/A-SR-1] 하나 이상의 세계 방향 카메라를 포함할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- 하나 이상의 사용자 지향 카메라를 포함할 수 있습니다.
- [7.5/A-SR-2] 여러 카메라의 동시 스트리밍을 지원할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
자동차 기기 구현에 세계를 향한 카메라가 하나 이상 포함된 경우 해당 카메라는 다음을 충족해야 합니다.
- [7.5/A-1-1] 카메라의 긴 치수가 Android 자동차 센서 축의 XY 평면과 정렬되도록 방향을 조정해야 합니다(MUST).
- [7.5/A-SR-3] 고정 초점 또는 EDOF(확장 심도) 하드웨어를 보유할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- [7.5/A-1-2] 카메라 ID가 가장 낮은 세계 방향 카메라로서 기본 세계 방향 카메라가 있어야 합니다(MUST).
자동차 기기 구현에 사용자를 향하는 카메라가 하나 이상 포함되어 있는 경우 해당 카메라는 다음을 충족해야 합니다.
- [7.5/A-2-1] 기본 사용자 방향 카메라는 카메라 ID가 가장 낮은 사용자 방향 카메라여야 합니다(MUST).
- 카메라의 긴 치수가 Android 자동차 센서 축의 XY 평면과 정렬되도록 방향을 지정할 수 있습니다(MAY).
android.hardware.Camera
또는 android.hardware.camera2
API를 통해 액세스할 수 있는 카메라를 포함하는 자동차 기기 구현은 다음을 충족해야 합니다.
- [7.5/A-3-1] 섹션 7.5의 핵심 카메라 요구사항을 준수해야 합니다(MUST).
android.hardware.Camera
또는 android.hardware.camera2
API를 통해 액세스할 수 없는 카메라를 포함하는 자동차 기기 구현은 다음을 충족해야 합니다.
- [7.5/A-4-1] 확장된 보기 시스템 서비스를 통해 액세스할 수 있어야 합니다.
확장된 뷰 시스템 서비스를 통해 액세스할 수 있는 하나 이상의 카메라를 포함하는 자동차 기기 구현은 다음을 충족해야 합니다.
- [7.5/A-5-1] 카메라 미리보기를 회전하거나 수평으로 미러링하면 안 됩니다(MUST NOT).
- [7.5/A-SR-4] 최소 1.3메가픽셀의 해상도를 가질 것을 적극 권장합니다(STRONGLY RECOMMENDED).
확장된 뷰 시스템 서비스와 android.hardware.Camera
또는 android.hardware.Camera2
API를 통해 액세스할 수 있는 하나 이상의 카메라를 포함하는 자동차 기기 구현은 다음을 충족해야 합니다.
- [7.5/A-6-1] 동일한 카메라 ID를 보고해야 합니다(MUST).
자동차 기기 구현이 독점 카메라 API를 제공하는 경우 다음을 충족해야 합니다.
- [7.5/A-7-1]
android.hardware.camera2
API 또는 확장 보기 시스템 API를 사용하여 이러한 카메라 API를 구현해야 합니다(MUST).
개정판 보기
자동차 장치 구현:
- [ 3.8 /A-0-1] 현재 포그라운드 사용자가 아닌 전체 보조 사용자가 활동을 시작하고 모든 디스플레이에서 UI에 액세스하도록 허용하면 안 됩니다(MUST NOT).
개정판 보기
자동차 기기 구현이 android.hardware.microphone
선언하는 경우 다음을 충족해야 합니다.
- [ 9.8.2 /A-1-1] 앱이 마이크의 오디오 데이터에 액세스할 때 마이크 표시기를 표시해야 합니다(MUST). 그러나 마이크가
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
또는 섹션 에서 호출된 역할을 보유한 앱에 의해서만 액세스되는 경우에는 표시되지 않습니다. 9.1 CDD 식별자 [C-4-X] 포함. - [ 9.8.2 /A-1-2] 가시적인 사용자 인터페이스나 직접적인 사용자 상호작용이 있는 시스템 앱의 마이크 표시기를 숨겨서는 안 됩니다(MUST).
- [ 9.8.2 /A-1-3] 설정 앱에서 마이크를 전환하기 위한 사용자 어포던스를 제공해야 합니다(MUST).
자동차 기기 구현이 android.hardware.camera.any
선언하는 경우 다음을 충족해야 합니다.
- [ 9.8.2 /A-2-1] 앱이 라이브 카메라 데이터에 액세스할 때 카메라 표시기를 표시해야 합니다(MUST). 그러나 섹션 9.1 권한 에 정의된 역할을 수행
하는앱에 의해서만 카메라에 액세스할 때는 그렇지 않습니다. CDD 식별자 [C-4-X][C-3-X].
보안 잠금 화면이 있고 TrustAgentService
시스템 API를 구현하는 하나 이상의 Trust Agent를 포함하는 기기 구현은 다음을 충족해야 합니다.
- [ 9.11.1 /A-1-1] 336시간마다 한 번 이상 권장되는 기본 인증 방법(예: PIN, 패턴, 비밀번호) 중 하나를 사용자에게 요청해야 합니다(MUST).
3. 소프트웨어
개정판 보기
장치 구현:
- [C-0-8] 23 미만의 API 레벨을 대상으로 하는 애플리케이션 설치를 지원하면 안 됩니다(MUST NOT).
개정판 보기
android.hardware.nfc.uicc
또는android.hardware.nfc.ese
보고하는 기기 구현은 다음을 충족해야 합니다.- [C-19-1] NfcAdapter.ACTION_TRANSACTION_DETECTED 인텐트 API( GSM 협회 기술 사양 TS.26 - NFC 핸드셋 요구 사항에 정의된 'EVT_TRANSACTION')를 구현해야 합니다.
개정판 보기
장치 구현:
- [C-0-12]
libvulkan.so
라이브러리를 통해VK_KHR_surface
,VK_KHR_android_surface
,VK_KHR_swapchain
,VK_KHR_maintenance1
및VK_KHR_get_physical_device_properties2
확장뿐만 아니라 핵심Vulkan 1.0Vulkan 1.1 함수 기호에 대한 함수 기호를 내보내야 합니다(MUST). 모든 기호가 있어야 하지만 섹션 7.1.4.2에서는 각 해당 기능의 전체 구현이 예상되는 시기에 대한 요구 사항을 더 자세히 설명합니다.
- [C-0-12]
개정판 보기
화면 또는 동영상 출력을 포함하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-5]
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
문서(android.theme.customization.theme_styles
참조)에 열거된 색상 테마 스타일, 즉TONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
및MONOCHROMATIC
을 사용하여 동적 색상 색조 팔레트를 생성해야 합니다(MUST). .
- [C-1-5]
개정판 보기
섹션 7.2.3 에 설명된 최근 기능 탐색 키를 포함하는 기기 구현이 인터페이스를 변경하는 경우 다음을 충족해야 합니다.
- [C-1-2] 화면 고정 동작을 구현하고 사용자에게 기능을 전환할 수 있는 설정 메뉴를 제공해야 합니다(MUST).
개정판 보기
android.software.managed_users
선언하는 기기 구현은 다음을 충족해야 합니다.- [C-1-10] 포커스가 있고(모든 활동 중 사용자가 마지막으로 상호 작용한 창) 직장 프로필에 속하는
topActivity
창으로 스크린샷을 캡처하는 경우 스크린샷 데이터가 직장 프로필 저장소에 저장되도록 해야 합니다(MUST). 앱 . - [C-1-11] 직장 프로필에 스크린샷을 저장할 때 직장 프로필 애플리케이션 창을 제외한 다른 화면 콘텐츠(시스템 표시줄, 알림 또는 개인 프로필 콘텐츠)를 캡처하면 안 됩니다(MUST NOT). 직장 프로필에 저장되지 않음)
- [C-1-10] 포커스가 있고(모든 활동 중 사용자가 마지막으로 상호 작용한 창) 직장 프로필에 속하는
3.9.5 장치 정책 확인 프레임워크 : 새 섹션
개정판 보기
android.software.device_admin
또는android.software.managed_users
보고하는 기기 구현은 다음을 충족해야 합니다.- [C-1-1] AOSP 문서에 설명된 대로 기기 정책 충돌을 해결해야 합니다(MUST).
5. 멀티미디어 호환성
개정판 보기
기기 구현은 다음 이미지 인코딩 인코딩을 지원해야 합니다(MUST).
- [C-0-4] AVIF
- 장치는
BITRATE_MODE_CQ
및 기준 프로필을 지원해야 합니다.
- 장치는
- [C-0-4] AVIF
개정판 보기
기기 구현은 다음 이미지 인코딩의 디코딩을 지원해야 합니다(MUST).
[C-0-7] AVIF(기준 프로필)
개정판 보기
형식/코덱 세부 지원되는 파일 유형/컨테이너 형식 JPEG 기본+프로그레시브 JPEG(.jpg) GIF GIF(.gif) PNG PNG(.png) BMP BMP(.bmp) 웹P WebP(.webp) 날것의 ARW(.arw), CR2(.cr2), DNG(.dng), NEF(.nef), NRW(.nrw), ORF(.orf), PEF(.pef), RAF(.raf), RW2( .rw2), SRW(.srw) 하이프 이미지, 이미지 수집, 이미지 시퀀스 HEIF(.heif), HEIC(.heic) AVIF(기준 프로필) 이미지, 이미지 수집, 이미지 시퀀스 기준 프로필 HEIF 컨테이너(.avif) 개정판 보기
형식/코덱 세부 지원되는 파일 유형/컨테이너 형식 H.263 - 3GPP(.3gp)
- MPEG-4(.mp4)
- Matroska(.mkv, 디코드 전용)
H.264 AVC 자세한 내용은 섹션 5.2 및 5.3을 참조하세요. - 3GPP(.3gp)
- MPEG-4(.mp4)
- MPEG-2 TS(.ts, 검색 불가능)
- Matroska(.mkv, 디코드 전용)
H.265 HEVC 자세한 내용은 섹션 5.3을 참조하세요. - MPEG-4(.mp4)
- Matroska(.mkv, 디코드 전용)
MPEG-2 주요 프로필 - MPEG2-TS(.ts, 검색 불가)
- MPEG-4(.mp4, 디코드 전용)
- Matroska(.mkv, 디코드 전용)
MPEG-4 SP - 3GPP(.3gp)
- MPEG-4(.mp4)
- Matroska(.mkv, 디코드 전용)
VP8 자세한 내용은 섹션 5.2 및 5.3을 참조하세요. - WebM(.webm)
- 마트로스카(.mkv)
VP9 자세한 내용은 섹션 5.3을 참조하세요. - WebM(.webm)
- 마트로스카(.mkv)
AV1 자세한 내용은 섹션 5.2 및 섹션 5.3을 참조하세요. - MPEG-4(.mp4)
- Matroska(.mkv, 디코드 전용)
개정판 보기
기기 구현이 동영상 코덱을 지원하는 경우:
- [C-2-1] 모든 비디오 코덱은 코덱에서 지원하는 경우 다음 크기에 대해 달성 가능한 프레임 속도 데이터를 게시해야 합니다(MUST).
SD(낮은 화질) SD(고화질) HD 720p HD 1080p UHD 비디오 해상도 - 176 x 144픽셀(H263, MPEG2, MPEG4)
- 352 x 288px(MPEG4 인코더, H263, MPEG2)
- 320x180픽셀(VP8, VP8)
- 320 x 240픽셀(기타)
- 704x576픽셀(H263)
- 640x360픽셀(VP8, VP9)
- 640 x 480px(MPEG4 인코더)
- 720 x 480픽셀(기타, AV1 )
- 1408x1152픽셀(H263)
- 1280 x 720픽셀(기타, AV1 )
1920 x 1080px(MPEG4, AV1 제외) 3840x2160px(HEVC, VP9, AV1 ) 개정판 보기
모든 동영상 인코더를 지원하고 이를 타사 앱에서 사용할 수 있도록 하는 기기 구현은 다음을 충족해야 합니다.- 두 개의 슬라이딩 윈도우에 걸쳐 인트라프레임(I-프레임) 간격 간의 비트 전송률이 15%를 초과하면 안 됩니다.
- 1초 슬라이딩 윈도우 동안 비트 전송률을 100% 초과하면 안 됩니다.
기기 구현이 모든 동영상 인코더를 지원하고 이를 타사 앱에서 사용할 수 있도록 설정한 경우
MediaFormat.KEY_BITRATE_MODE
BITRATE_MODE_VBR
로 변경하여 인코더가 가변 비트 전송률 모드에서 작동하도록 하고, 최소 품질 수준에 영향을 주지 않는 한 인코딩된 비트 전송률은 다음과 같습니다.-
[C-5-1]하나의 슬라이딩 윈도우에 걸쳐 인트라프레임(I-프레임) 간격 간의 비트 전송률이 15%를 초과하면 안 됩니다 (MUST NOT). -
[C-5-2] 1초 슬라이딩 윈도우 동안 비트 전송률을 100% 초과하면 안 됩니다(MUST NOT).
기기 구현이 모든 동영상 인코더를 지원하고 이를 타사 앱에서 사용할 수 있도록 하고 인코더가 고정 비트 전송률 모드에서 작동하도록
MediaFormat.KEY_BITRATE_MODE
BITRATE_MODE_CBR
로 설정하는 경우 인코딩된 비트 전송률은 다음과 같습니다.-
[C-6-1] MUST[C-SR-2]는 1초의 슬라이딩 윈도우 동안 목표 비트 전송률보다 15%를 초과하지 않을 것을 적극 권장합니다(STRONGLY RECOMMENDED) .
개정판 보기
H.263 인코더를 지원하고 이를 타사 앱에서 사용할 수 있도록 하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1] 기준 프로필 레벨 45를 사용하여 QCIF 해상도(176 x 144)를 지원해야 합니다(MUST ). SQCIF 해상도는 선택사항입니다.
-
지원되는 인코더에 대해 동적으로 구성 가능한 비트 전송률을 지원해야 합니다(SHOULD).
개정판 보기
H.265 코덱을 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1] 기본 프로필 레벨 3을 최대 512x512 해상도까지 지원해야 합니다(MUST).
-
다음 표에 표시된 대로 HD 인코딩 프로필을 지원해야 합니다(SHOULD). - [C-SR-1] 하드웨어 인코더가 있는 경우 다음 표에 표시된 대로 720 x 480 SD 프로필과 HD 인코딩 프로필을 지원할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
5.2.6. AV1 : 새 섹션
개정판 보기
AV1 코덱을 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1] 8비트 및 10비트 콘텐츠를 포함한 기본 프로필을 지원해야 합니다(MUST).
[C-1-2] 성능 데이터를 게시해야 합니다(MUST). 즉, 아래 표에서 지원되는 해상도에 대해
getSupportedFrameRatesFor()
또는getSupportedPerformancePoints()
API를 통해 성능 데이터를 보고해야 합니다.[C-1-3] HDR 메타데이터를 수락하고 이를 비트스트림으로 출력해야 합니다(MUST).
AV1 인코더가 하드웨어 가속인 경우 다음과 같습니다.
- [C-2-1] 아래 표의 HD1080p 인코딩 프로필을 포함하여 최대 지원해야 합니다(MUST).
SD HD 720p HD 1080p UHD 비디오 해상도 720x480픽셀 1280x720픽셀 1920x1080픽셀 3840x2160픽셀 비디오 프레임 속도 30fps 30fps 30fps 30fps 비디오 비트레이트 5Mbps 8Mbps 16Mbps 50Mbps 개정판 보기
H.263 디코더를 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1] 기준 프로필 레벨 30 (CIF, QCIF 및 SQCIF 해상도 @ 30fps 384kbps) 및 레벨 45 (QCIF 및 SQCIF 해상도 @ 30fps 128kbps)를 지원해야 합니다(MUST).
개정판 보기
AV1 코덱을 지원하는 기기 구현은 다음을 충족해야 합니다.- [C-1-1] 10비트 콘텐츠를 포함하여 프로필 0을 지원해야 합니다(MUST).
AV1 코덱을 지원하고 이를 타사 애플리케이션에서 사용할 수 있도록 하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1] 8비트 및 10비트 콘텐츠를 포함한 기본 프로필을 지원해야 합니다(MUST).
하드웨어 가속 디코더를 사용하여 AV1 코덱을 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-2-1]
Display.getSupportedModes()
메서드에서 보고된 높이가 720p 이상인 경우 아래 표에서 HD 720p 이상의 동영상 디코딩 프로필을 디코딩할 수 있어야 합니다(MUST). - [C-2-2]
Display.getSupportedModes()
메서드에서 보고된 높이가 1080p 이상인 경우 아래 표에서 HD 1080p 이상의 동영상 디코딩 프로필을 디코딩할 수 있어야 합니다(MUST).
SD HD 720p HD 1080p UHD 비디오 해상도 720x480픽셀 1280x720픽셀 1920x1080픽셀 3840x2160픽셀 비디오 프레임 속도 30fps 30fps 30fps 30fps 비디오 비트레이트 5Mbps 8Mbps 16Mbps 50Mbps 미디어 API를 통해 HDR 프로필을 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-3-1] 비트스트림 및/또는 컨테이너에서 HDR 메타데이터 추출 및 출력을 지원해야 합니다(MUST).
- [C-3-2] 기기 화면이나 표준 동영상 출력 포트(예: HDMI)에 HDR 콘텐츠를 올바르게 표시해야 합니다(MUST).
개정판 보기
android.hardware.microphone
선언하는 기기 구현은 다음을 충족해야 합니다.- 90dB 음압 레벨(SPL)(마이크 옆에서
30cm 거리에서측정)에서 재생되는 1000Hz 정현파 톤 소스가 1770 및 1770 범위 내에서 RMS 2500의 이상적인 응답을 생성하도록 오디오 입력 감도를 설정해야 합니다(SHOULD). 음성 인식 오디오 소스를 녹음하는 데 사용되는 모든 마이크에 대해 16비트 샘플의 경우 3530(또는 부동 소수점/이중 정밀도 샘플의 경우 -22.35db ±3dB 풀 스케일)입니다.
- 90dB 음압 레벨(SPL)(마이크 옆에서
개정판 보기
android.hardware.audio.output
기능을 선언하는 기기 구현은 다음을 충족해야 합니다.- [C-1-4] 부동 소수점 입력 및 출력으로 오디오 효과를 지원해야 합니다(MUST).
- [C-1-5] 오디오 효과가 FCC_LIMIT라고도 알려진 믹서 채널 수까지 여러 채널을 지원하는지 확인해야 합니다(MUST).
개정판 보기
기기 구현이
android.hardware.audio.output
선언하는 경우 다음 요구 사항을 충족하거나 초과할 것을 적극 권장합니다(STRONGLY RECOMMENDED).- [C-SR-4] AudioTrack.getTimestamp 및
AAudioStream_getTimestamp
에서 반환된 출력 타임스탬프의 정확도는 +/- 1ms입니다.
- [C-SR-4]
AAudioStream_getTimestamp
에서 반환된 입력 및 출력 타임스탬프를 기반으로 계산된 왕복 지연 시간은 스피커, 유무선 헤드셋의AAUDIO_PERFORMANCE_MODE_NONE
및AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
에 대해 측정된 왕복 지연 시간의 30밀리초 이내일 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- [C-SR-4] AudioTrack.getTimestamp 및
7. 하드웨어 호환성
개정판 보기
Android에는 타사 애플리케이션이
다양한 하드웨어 구성 에서 잘 실행되도록 기기에 맞게 애플리케이션 자산과 UI 레이아웃을 자동으로 조정하는 기능이 포함되어 있습니다.다양한 하드웨어 디스플레이 및 구성. Android 호환 디스플레이는 Android 개발자 - 화면 호환성 개요 , 이 섹션(7.1) 및 해당 하위 섹션에 설명된 모든 동작 및 API와 함께 섹션 2 에 설명된 추가 기기 유형별 동작을 구현하는 디스플레이 화면입니다. 이 CDD.모든 타사 Android 호환 애플리케이션을 실행할 수 있는 Android 호환 디스플레이에서 기기 구현은 이 섹션에 자세히 설명된 대로 이러한 API 및 동작을 올바르게 구현해야 합니다(MUST).새로운 요구 사항 시작
장치 구현:
- [C-0-1] 기본적으로 타사 애플리케이션을 Android 호환 디스플레이에만 렌더링해야 합니다(MUST).
이 섹션의 요구 사항에서 참조되는 단위는 다음과 같이 정의됩니다.
- 물리적 대각선 크기 . 디스플레이 조명 부분의 반대쪽 두 모서리 사이의 거리(인치)입니다.
-
인치당 도트 수(dpi)밀도 . 1인치의 선형 가로 또는 세로 범위로 둘러싸인 픽셀 수로 , 인치당 픽셀(ppi 또는 dpi)로 표시됩니다 .dpippi 및 dpi 값이 나열되는 경우 가로 및 세로 dpi가 모두 나열된 범위 내에 속해야 합니다. - 종횡비 . 화면의 긴 픽셀과 짧은 픽셀의 비율입니다. 예를 들어, 480x854 픽셀의 디스플레이는 854/480 = 1.779 또는 대략 "16:9"입니다.
- 밀도 독립적 픽셀(dp) .
A가상 픽셀 단위는160dpi화면 밀도 160으로 정규화되었습니다. 일부 밀도 d와 픽셀 수 p의 경우 밀도 독립적 픽셀 수 dp는 다음과 같이 계산됩니다. 픽셀= dps * (밀도/160)dp = (160 / d) * p .
개정판 보기
UI_MODE_TYPE_NORMAL
크기 구성이 가능한 화면을 지원하고 이러한 화면을 렌더링하기 위해 모서리가 둥근Android 호환실제 디스플레이를 사용하는 것을 포함하는 기기 구현은 다음을 충족해야 합니다.- [C-1-1] 각 디스플레이에 대해 다음 요구사항 중 하나 이상이 충족되는지 확인해야 합니다(MUST).
- 둥근 모서리의 반경은 38dp보다 작거나 같습니다.
15dp x 15dp 상자가 논리 디스플레이의 각 모서리에 고정되면 각 상자의 최소 한 픽셀이 화면에 표시됩니다.
직사각형 모서리가 있는 디스플레이 모드로 전환하려면 사용자 어포던스를 포함해야 합니다(SHOULD).
새로운 요구 사항 시작
NO_KEYS
키보드 구성만 가능하고UI_MODE_TYPE_NORMAL
UI 모드 구성 지원을 보고하려는 기기 구현은 다음을 충족해야 합니다.- [C-4-1] 디스플레이 컷아웃을 제외한 레이아웃 크기가 최소 596dp x 384dp 이상이어야 합니다(MUST).
접이식 Android 호환 디스플레이를 포함하거나 여러 디스플레이 패널 사이에 접이식 힌지를 포함하고 이러한 디스플레이를 타사 앱 렌더링에 사용할 수 있도록 하는 기기 구현은 다음을 충족해야 합니다.
- [C-2-1] Window Manager Jetpack 라이브러리에서 사용할 확장 API 의 최신 안정 버전 또는 사이드카 API 의 안정 버전을 구현해야 합니다(MUST).
접이식 Android 호환 디스플레이를 포함하거나 여러 디스플레이 패널 사이에 접이식 힌지를 포함하고 힌지 또는 접힌 부분이 전체 화면 애플리케이션 창을 가로지르는 기기 구현은 다음을 충족해야 합니다.
- [C-3-1] 확장 프로그램이나 사이드카 API를 통해 힌지 또는 접기의 위치, 경계, 상태를 애플리케이션에 보고해야 합니다(MUST).
접을 수 있는 하나 이상의 Android 호환 디스플레이 영역을 포함하거나 여러 Android 호환 디스플레이 패널 영역 사이에 접이식 힌지를 포함하고 이러한 디스플레이 영역을 애플리케이션에 제공하는 기기 구현은 다음을 충족해야 합니다.
- [C-4-1] 향후 문서에 설명된 대로 올바른 버전의 창 관리자 확장 API 수준을 구현해야 합니다(MUST).
7.1.1.2. 화면 종횡비 : 제거됨
개정판 보기
장치 구현:
- [C-0-1]
기본적으로 기기 구현은DENSITY_DEVICE_STABLE
API 를 통해DisplayMetrics
에 나열된 Android 프레임워크 밀도 중하나만보고해야 하며(MUST) 이 값은 각 물리적 디스플레이의 정적 값이어야 하며언제든지 변경되어서는 안 됩니다(MUST NOT). 그러나장치는 초기 부팅 후 사용자가 설정한 디스플레이 구성 변경(예: 디스플레이 크기 )에 따라 다른임의 밀도DisplayMetrics.density
보고할 수 있습니다.
- 기기 구현은 논리적 밀도가 보고된 화면 크기를 지원되는 최소 크기 아래로 밀어넣지 않는 한 수치적으로 화면의 물리적 밀도에 가장 가까운 표준 Android 프레임워크 밀도를 정의해야 합니다(SHOULD). 숫자상으로 물리적 밀도에 가장 가까운 표준 Android 프레임워크 밀도로 인해 화면 크기가 지원되는 최소 호환 화면 크기(320dp 너비)보다 작은 경우 기기 구현은 다음으로 가장 낮은 표준 Android 프레임워크 밀도를 보고해야 합니다(SHOULD).
새로운 요구 사항 시작
- 수치적으로 화면의 물리적 밀도에 가장 가까운 표준 Android 프레임워크 밀도 또는 휴대기기의 동일한 동등한 각도 시야 측정값에 매핑되는 값을 정의해야 합니다(SHOULD).
기기 구현은 기기의 디스플레이 크기를 변경할 수 있는 어포던스를 제공하는 경우
다음을 충족해야 합니다.- [C-1-1]
디스플레이 크기를 확장하면 안 됩니다(MUST NOT).디스플레이를DENSITY_DEVICE_STABLE
기본 밀도의1.5배보다 크게 확장하거나 320dp(리소스 한정자 sw320dp와 동일)보다 작은 유효 최소 화면 크기를 생성하면 안 됩니다(둘 중 먼저 발생하는 기준). - [C-1-2]
디스플레이 크기를 조정하면 안 됩니다(MUSTNOT). 디스플레이를DENSITY_DEVICE_STABLE
기본 밀도의0.85배보다 작게 조정하면 안 됩니다(MUST NOT).
- [C-0-1]
개정판 보기
Vulkan
1.0 이상에 대한 지원을 포함하는 기기 구현은 다음을 충족해야 합니다.[C-1-3] 열거된 각
VkPhysicalDevice
에 대해Vulkan 1.0Vulkan 1.1 API를 완전히 구현해야 합니다(MUST).[C-1-5] 애플리케이션에
true
로 설정된android:debuggable
속성이 있거나com.android.graphics.injectLayers.enable
메타데이터가 있지 않는 한, 애플리케이션 패키지 외부의 라이브러리에서 제공하는 레이어를 열거하거나 Vulkan API를 추적하거나 가로채는 다른 방법을 제공하면 안 됩니다(MUST NOT).com.android.graphics.injectLayers.enable
true
로 설정합니다 .
-
VkPhysicalDeviceProtectedMemoryFeatures
및VK_EXT_global_priority
지원해야 합니다(SHOULD).
- [C-1-13] Android Baseline 2021 프로필 에 지정된 요구사항을 충족해야 합니다(MUST).
[C-SR-5]
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
및VK_EXT_global_priority
지원할 것을 적극 권장합니다(STRONGLY RECOMMENDED).[C-SR-6] HWUI와 함께
SkiaVk
사용할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
Vulkan 1.1에 대한 지원을 포함하고 여기에 설명된 Vulkan 기능 플래그를 선언하는 기기 구현은 다음을 충족해야 합니다.
- [C-SR-7]
VK_KHR_external_fence_fd
확장 프로그램을 타사 애플리케이션에서 사용할 수 있도록 하고 여기에 설명된 대로 애플리케이션이 울타리 페이로드를 POSIX 파일 설명자로 내보내거나 POSIX 파일 설명자에서 울타리 페이로드를 가져올 수 있도록 할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
개정판 보기
생체 인식 센서가 여러 개인 기기 구현은 다음을 충족해야 합니다.
[C-7-1] 생체 인식이 잠금 상태(즉, 사용자가 기본 인증으로 잠금을 해제할 때까지 생체 인식이 비활성화됨) 또는 시간 제한 잠금(즉, 사용자가 일정 시간 동안 기다릴 때까지 생체 인식이 일시적으로 비활성화됨)인 경우 필수입니다. 실패한 시도가 너무 많기 때문에 낮은 생체 인식 클래스의 다른 모든 생체 인식도 잠급니다. 시간 제한 잠금의 경우 생체 인식 확인을 위한 백오프 시간은 시간 제한 잠금의 모든 생체 인식에 대한 최대 백오프 시간이어야 합니다.
[C-SR-12] 생체 인식이 잠금 상태(즉, 사용자가 기본 인증으로 잠금을 해제할 때까지 생체 인식이 비활성화됨) 또는 시간 제한 잠금(즉, 사용자가 일정 시간을 기다릴 때까지 생체 인식이 일시적으로 비활성화됨)인 경우 적극 권장됩니다. 간격) 시도 실패 횟수가 너무 많기 때문에 동일한 생체 인식 클래스의 다른 모든 생체 인식도 잠급니다. 시간 제한이 있는 잠금의 경우 생체 인식 확인을 위한 백오프 시간은 시간 제한 잠금의 모든 생체 인식의 최대 백오프 시간이 될 것을 적극 권장합니다.
[C-7-2] 잠겨 있는 생체 인식에 대한 잠금 카운터를 재설정하려면 권장되는 기본 인증(예: PIN, 패턴, 비밀번호)을 사용자에게 요청해야 합니다(MUST). 클래스 3 생체 인식은 동일하거나 낮은 클래스의 잠긴 생체 인식에 대한 잠금 카운터를 재설정하도록 허용할 수 있습니다. 클래스 2 또는 클래스 1 생체 인식은 모든 생체 인식에 대한 재설정 잠금 작업을 완료하도록 허용해서는 안 됩니다.
생체 인식 센서를 클래스 1 (이전의 Convenience )로 처리하려는 기기 구현은 다음을 충족해야 합니다.
[C-1-12] Android 생체 인식 테스트 프로토콜 로 측정한 스푸핑 및 사기꾼 허용률이 프레젠테이션 공격 도구(PAI) 종당 40% 이하여야 합니다(MUST).
[C-SR-13] Android 생체 인식 테스트 프로토콜 에 따라 측정된 스푸핑 및 사기꾼 허용률은 PAI(프레젠테이션 공격 도구) 종당 30% 이하일 것을 적극 권장합니다(STRONGLY RECOMMENDED).
[C-SR-14] 생체 인식 센서의 생체 인식 클래스와 이를 활성화하는 데 따른 해당 위험을 공개할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
[C-SR-17] 새로운 AIDL 인터페이스(예:
IFace.aidl
및IFingerprint.aidl
)를 구현할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
생체 인식 센서를 클래스 2 (이전의 Weak )로 처리하려는 기기 구현은 다음을 충족해야 합니다.
- [C-SR-15] Android 생체 인식 테스트 프로토콜 에 따라 측정한 대로 PAI(프레젠테이션 공격 도구) 종당 스푸핑 및 임포스터 허용률이 20% 이하일 것을 적극 권장합니다(STRONGLY RECOMMENDED).
- [C-2-3] TEE(신뢰할 수 있는 실행 환경)와 같은 Android 사용자 또는 커널 공간 외부의 격리된 실행 환경
이나격리된 실행 환경에 대한 보안 채널이 있는 칩 또는 보호된 실행 환경에서 생체 인식 일치를 수행해야 합니다(MUST). 섹션 9.17의 요구 사항을 충족하는 가상 머신입니다 . - [C-2-4] 구현 가이드라인 에 문서화된 격리된 실행 환경 또는 격리된 실행 환경에 대한 보안 채널이 있는 칩 외부에서 획득, 읽기 또는 변경할 수 없도록 모든 식별 가능한 데이터를 암호화하고 암호화 방식으로 인증해야 합니다(MUST). Android 오픈소스 프로젝트 사이트 또는 섹션 9.17의 요구 사항을 충족하는 하이퍼바이저로 제어되는 보호된 가상 머신 .
- [C-2-5] 카메라 기반 생체 인식의 경우 생체 인식 기반 인증 또는 등록이 진행되는 동안:
- 격리된 실행 환경 또는 격리된 실행 환경에 대한 보안 채널이 있는 칩 또는 섹션 9.17의 요구 사항을 충족하는 하이퍼바이저에 의해 제어되는 보호된 가상 머신 외부에서 카메라 프레임을 읽거나 변경하는 것을 방지하는 모드에서 카메라를 작동해야 합니다.
- RGB 단일 카메라 솔루션의 경우 등록을 위한 미리 보기와 같은 작업을 지원하기 위해 격리된 실행 환경 외부에서 카메라 프레임을 읽을 수 있지만 여전히 변경할 수 있어서는 안 됩니다.
- [C-2-7] 섹션의 요구 사항을 충족하는 하이퍼바이저에 의해 제어되는 보호된 가상 머신 또는 TEE 컨텍스트 외부의 애플리케이션 프로세서에 대해 식별 가능한 생체 인식 데이터 또는 여기에서 파생된 모든 데이터(예: 임베딩)에 대한 암호화되지 않은 액세스를 허용하면 안 됩니다(MUST NOT). 9.17 . Android 버전 9 이하에서 출시된 업그레이드 기기는 C-2-7에서 면제되지 않습니다.
생체 인식 센서를 클래스 3 (이전의 Strong )으로 처리하려는 기기 구현은 다음을 충족해야 합니다.
- [C-SR-16] Android 생체 인식 테스트 프로토콜 에 따라 측정한 대로 PAI(프레젠테이션 공격 도구) 종당 스푸핑 및 임포스터 허용률이 7% 이하일 것을 적극 권장합니다(STRONGLY RECOMMENDED).
7.3.13. IEEE 802.1.15.4(UWB) :
개정판 보기
802.1.15.4 지원을 포함하고 해당 기능을 타사 애플리케이션에 노출하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-2] 하드웨어 기능 플래그
android.hardware.uwb
를 보고해야 합니다(MUST). - [C-1-3] AOSP 구현에 정의된 다음 구성 세트( FIRA UCI 매개변수의 사전 정의된 조합)를 모두 지원해야 합니다(MUST).
-
CONFIG_ID_1
: FiRa 정의 유니캐스트STATIC STS DS-TWR
범위, 지연 모드, 범위 간격 240ms. -
CONFIG_ID_2
: FiRa 정의 일대다STATIC STS DS-TWR
범위, 지연 모드, 범위 간격 200ms. 일반적인 사용 사례: 스마트폰은 다양한 스마트 장치와 상호 작용합니다. -
CONFIG_ID_3
: AoA(도착 각도) 데이터가 보고되지 않는다는 점을 제외하면CONFIG_ID_1
과 동일합니다. -
CONFIG_ID_4
: P-STS 보안 모드가 활성화된다는 점을 제외하면CONFIG_ID_1
과 동일합니다. -
CONFIG_ID_5
: P-STS 보안 모드가 활성화된다는 점을 제외하면CONFIG_ID_2
와 동일합니다. -
CONFIG_ID_6
: P-STS 보안 모드가 활성화된다는 점을 제외하면CONFIG_ID_3
과 동일합니다. -
CONFIG_ID_7
: P-STS 개별 제어 대상 키 모드가 활성화된다는 점을 제외하면CONFIG_ID_2
와 동일합니다.
-
- [C-1-4] 사용자가 UWB 라디오 켜기/끄기 상태를 전환할 수 있도록 사용자 어포던스를 제공해야 합니다(MUST).
- [C-1-5] UWB 무선을 사용하는 앱이
UWB_RANGING
권한(NEARBY_DEVICES
권한 그룹 아래)을 보유하도록 시행해야 합니다(MUST).
FIRA , CCC , CSA 등 표준 조직에서 정의한 관련 적합성 및 인증 테스트를 통과하면 802.1.15.4가 올바르게 작동하는지 확인할 수 있습니다.
- [C-1-2] 하드웨어 기능 플래그
개정판 보기
Android API 와이 문서에서 사용한 "전화"는 음성 통화를 배치하고 SMS 메시지를 보내 거나 모바일 (예 : GSM, CDMA, LTE, NR) GSM 또는 CDMA 네트워크를 통해 모바일 데이터를 설정하는 것과 관련된 하드웨어를 구체적으로 말합니다. "전화 통신"을 지원하는 장치는 제품에 맞는 통화, 메시징 및 데이터 서비스의 일부 또는 전부를 제공하도록 선택할 수 있습니다.
GSM 또는 CDMA 네트워크를 통해. 이러한 음성 통화는 패킷 전환 될 수도 있고 아닐 수도 있지만 동일한 네트워크를 사용하여 구현 될 수있는 데이터 연결과 무관하게 고려되는 Android의 목적입니다. 다시 말해, Android "Telephony"기능 및 API는 특히 음성 통화 및 SMS를 참조합니다. 예를 들어, 통화를 배치하거나 SMS 메시지를 보내거나받을 수없는 장치 구현은 데이터 연결을 위해 셀룰러 네트워크를 사용하는지 여부에 관계없이 전화 장치로 간주되지 않습니다.개정을 참조하십시오
장치 구현에 802.11에 대한 지원이 포함되고 기능을 타사 응용 프로그램에 노출시키는 경우 다음과 같습니다.
- [C-1-4]는 멀티 캐스트 DNS (MDNS)를 지원해야하며 , 화면이 활성 상태에 있지 않은 경우, 드롭 또는 떨어 뜨리거나 떨어지지 않는 한, 화면이 활성 상태에 있지 않은 경우, MDNS 패킷 (224.0.0.251 또는 FF02 :: FB )을 필터링해서는 안됩니다. 이러한 패킷을 필터링하는 것은 대상 시장에 적용 할 수있는 규제 요구 사항에 필요한 전력 소비 범위 내에서 유지되기 위해 필요합니다.
대기 전원 상태에있을 때에도 Android Television Device 구현의 경우.
- [C-1-4]는 멀티 캐스트 DNS (MDNS)를 지원해야하며 , 화면이 활성 상태에 있지 않은 경우, 드롭 또는 떨어 뜨리거나 떨어지지 않는 한, 화면이 활성 상태에 있지 않은 경우, MDNS 패킷 (224.0.0.251 또는 FF02 :: FB )을 필터링해서는 안됩니다. 이러한 패킷을 필터링하는 것은 대상 시장에 적용 할 수있는 규제 요구 사항에 필요한 전력 소비 범위 내에서 유지되기 위해 필요합니다.
개정을 참조하십시오
장치 구현이 feaction_bluetooth_le을 선언하는 경우 :
- [C-SR-2]는 RX 오프셋을 측정하고 보상하여 중간 rssi가
ADVERTISE_TX_POWER_HIGH
+/- 10 dB임을 보상하는 것이 좋습니다. 스크린이 같은 방향을 향한 '평행 평면'에서. - [C-SR-3]은 1m 거리에 위치한 기준 장치에서 스캔
ADVERTISE_TX_POWER_HIGH
때 중앙값 RSSI가 -60dBm +/- 10 dB인지 확인하기 위해 TX 오프셋을 측정하고 보상하는 것이 좋습니다. 스크린이 같은 방향을 향한 '평행 평면'에 있습니다.
- [C-10-3] 중앙값 rssi가
ADVERTISE_TX_POWER_HIGH
에서 전송하는 기준 장치로부터 1m 거리에서 -55dBm +/- 10 dB인지 확인하기 위해 RX 오프셋을 측정하고 보상해야합니다. - [C-10-4]는 1m 거리에 위치한 기준 장치에서 스캔하고
ADVERTISE_TX_POWER_HIGH
에서 전송할 때 중간 RSSI가 -55dBm +/- 10dB인지 확인하기 위해 TX 오프셋을 측정하고 보상해야합니다.
장치 구현이 Bluetooth 버전 5.0을 지원하는 경우 다음과 같습니다.
- [C-SR-4]는 다음을 지원하는 데 강력히 권장됩니다.
- LE 2M PHY
- Le Codec Phy
- 광고 확장
- 정기적 인 광고
- 최소 10 개의 광고 세트
- 최소 8 LE 동시 연결. 각 연결은 연결 토폴로지 역할 일 수 있습니다.
- LE Link Layer 개인 정보
- 최소 8 개의 항목의 "분해 목록"크기
- [C-SR-2]는 RX 오프셋을 측정하고 보상하여 중간 rssi가
개정을 참조하십시오
- [C-1-7]은 기준 장치에서 1m에서 거리 측정의 중앙값이 [0.75m, 1.25m] 내에 있는지 확인해야하며, 여기서지면 진실 거리는 DUT의 상단 가장자리에서 측정됩니다.
얼굴을 굽히고 45도 기울어졌다.
- [C-1-7]은 기준 장치에서 1m에서 거리 측정의 중앙값이 [0.75m, 1.25m] 내에 있는지 확인해야하며, 여기서지면 진실 거리는 DUT의 상단 가장자리에서 측정됩니다.
개정을 참조하십시오
후면 카메라는 디스플레이 맞은 편의 장치 측면에 위치한 카메라입니다. 즉, 전통적인 카메라와 같이 장치의 먼 쪽의 장면을 이미지화합니다.
후면 카메라는 전통적인 카메라와 같이 장치의 맨 위에 장면을 이미지화하는 세계적인 카메라입니다. 핸드 헬드 장치에서는 디스플레이 반대편 장치 측면에있는 카메라입니다.
개정을 참조하십시오
전면 카메라는 디스플레이와 장치의 동일한쪽에 위치한 카메라입니다. 즉, 화상 회의 및 유사한 응용 프로그램과 같은 사용자를 이미지화하는 데 일반적으로 사용되는 카메라입니다.
전면 카메라는 화상 회의 및 유사한 응용 프로그램과 같은 사용자를 이미지화하는 데 일반적으로 사용되는 사용자를 향한 카메라입니다. 핸드 헬드 장치에서는 디스플레이와 장치의 동일한쪽에있는 카메라입니다.
개정을 참조하십시오
외부 카메라는 언제든지 장치 구현에서 물리적으로 부착하거나 분리 될 수 있으며 방향을 향할 수있는 카메라입니다. USB 카메라와 같은.
개정을 참조하십시오
장치 구현은 사용 가능한 모든 카메라에 대해 카메라 관련 API에 대한 다음 동작을 구현해야합니다. 장치 구현 :
- [C-SR-1] 다중 RGB 카메라가 근접하고 동일한 방향으로 직면하는 장치의 경우 기능
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
데이터를 나열하는 논리적 카메라 장치를 지원하는 것이 좋습니다. 물리적 하위 장치로.
- [C-SR-1] 다중 RGB 카메라가 근접하고 동일한 방향으로 직면하는 장치의 경우 기능
개정을 참조하십시오
다음 기준을 모두 충족하는 장치는 위의 요구 사항에서 면제됩니다.
- 자동차 장치와 같이 사용자가 회전 할 수없는 장치 구현.
7.10. 햅틱 :
개정을 참조하십시오
휴대용 또는 마모하려는 장치에는 벨소리, 경보, 알림, 일반적인 터치 피드백을 통한주의를 기울이는 등의 목적으로 응용 프로그램에 사용할 수있는 범용 햅틱 액추에이터가 포함될 수 있습니다.
장치 구현에 그러한 범용 햅틱 액추에이터가 포함되어 있지 않으면 다음과 같습니다.
- [7.10/c]는
Vibrator.hasVibrator()
에 대해 false를 반환해야합니다.
장치 구현에 적어도 하나의 범용 햅틱 액추에이터가 포함 된 경우.
- [C-1-1]은
Vibrator.hasVibrator()
에 대해 true를 반환해야합니다. - 편심 회전 질량 (ERM) 햅틱 액추에이터 (진동기)를 사용해서는 안됩니다.
-
android.view.HapticFeedbackConstants
의 명확한 햅틱 에 대한 모든 공개 상수를 구현해야합니다 (CLOCK_TICK
,CONTEXT_CLICK
,KEYBOARD_PRESS
,KEYBOARD_RELEASE
,KEYBOARD_TAP
,LONG_PRESS
GESTURE_END
TEXT_HANDLE_MOVE
,VIRTUAL_KEY
,VIRTUAL_KEY_RELEASE
,CONFIRM
,REJECT
,GESTURE_START
) -
android.os.VibrationEffect
에서 명확한 햅틱 에 대한 모든 공개 상수를 구현해야합니다 (EFFECT_TICK
,EFFECT_CLICK
,EFFECT_HEAVY_CLICK
및EFFECT_DOUBLE_CLICK
) 및android.os.VibrationEffect.Composition
의 풍부한 haptics 에 대한 모든 실행 가능한 공개PRIMITIVE_*
상수 (CLICK
,TICK
,LOW_TICK
,QUICK_FALL
,QUICK_RISE
,SLOW_RISE
,SPIN
,THUD
).LOW_TICK
및SPIN
과 같은 일부 기본 요소는 진동기가 상대적으로 낮은 주파수를 지원할 수 있는 경우에만 실행 가능합니다. -
android.view.HapticFeedbackConstants
에서 공개 상수를 맵핑하기위한 지침을 추천 된android.os.VibrationEffect
상수에 해당 진폭 관계와 함께 제공해야합니다. - 이 연결된 햅틱 상수 매핑을 사용해야합니다.
-
createOneShot()
및createWaveform()
API에 대한 품질 평가를 따라야합니다. - public
android.os.Vibrator.hasAmplitudeControl()
API의 결과가 진동기의 기능을 올바르게 반영하는지 확인하십시오. -
android.os.Vibrator.hasAmplitudeControl()
실행하여 진폭 확장 성 기능을 확인해야합니다.
장치 구현이 햅틱 상수 매핑을 따르는 경우 :
-
android.os.Vibrator.areAllEffectsSupported()
및android.os.Vibrator.arePrimitivesSupported()
API를 실행하여 구현 상태를 확인해야합니다. - 햅틱 상수에 대한 품질 평가를 수행해야합니다.
- 상수에 대한 구현 안내서 에 설명 된대로 지원되지 않는 프리미티브에 대한 폴백 구성을 확인하고 업데이트해야합니다.
- 여기에 설명 된대로 실패의 위험을 완화하기 위해 폴백 지원을 제공해야합니다.
장치 별 요구 사항은 2.2.1 절을 참조하십시오.
- [7.10/c]는
9. 보안 모델 호환성
9.1. 권한 :
개정을 참조하십시오
장치 구현 :
- [C-0-4]에는 두 사용자 인터페이스의 하나만 구현해야합니다.
장치 구현이 시스템 UI 인텔리전스 , 시스템 앰비언트 오디오 인텔리전스 , 시스템 오디오 인텔리전스 , 시스템 알림 인텔리전스 , 시스템 텍스트 인텔리전스 또는 시스템 시각 정보 역할 (패키지)을 보유하는 패키지를 사전 설치하는 경우 :
- [C-4-1]
은 "9.8.6 컨텐츠 캡처""9.8.6 OS 레벨 및 주변 데이터 및 9.8.15 샌드 박스 API 구현 섹션에서 장치 구현에 대해 설명 된 모든 요구 사항을 충족해야합니다.
- [C-4-2]는 Android.permission.internet 권한이 없어야합니다. 이것은 섹션 9.8.6에 강력하게 권장되는 것보다 더 엄격합니다.
- [C-4-3]은 다음과 같은 시스템 앱을 제외하고는 다른 앱에 바인딩해서는 안됩니다 : Bluetooth, 연락처, 미디어, 전화, 시스템 및 인터넷 API를 제공하는 구성 요소. 이것은 섹션 9.8.6에 강력하게 권장되는 것보다 더 엄격합니다.
장치 구현에
VoiceInteractionService
를 지원하기위한 기본 응용 프로그램이 포함 된 경우- [C-5-1]은 해당 응용 프로그램의 기본값으로
ACCESS_FINE_LOCATION
부여해서는 안됩니다.
개정을 참조하십시오
장치 구현이 위에서 논의한 추가 사용자 프로필을 작성하면 다음과 같습니다.
- [C-4-5]는 아이콘을 사용자에게 제시 할 때 이중 인스턴스 응용 프로그램 아이콘을 시각적으로 구별해야합니다.
- [C-4-6]은 전체 클론 프로파일 데이터를 삭제하기위한 사용자 계수를 제공해야합니다.
- [C-4-7] 사용자가 전체 클론 프로필 데이터를 삭제하기로 선택한 경우 모든 복제 앱을 제거하고 개인 앱 데이터 디렉토리 및 해당 콘텐츠를 삭제하고 클론 프로필 데이터를 삭제해야합니다.
- 마지막 클론 앱이 삭제 될 때 사용자에게 전체 클론 프로파일 데이터를 삭제하라는 메시지를 표시해야합니다.
- [C-4-8]은 클론 애플리케이션이 제거 될 때 앱 데이터가 삭제 될 것이라고 사용자에게 알리거나 응용 프로그램이 장치에서 제거 될 때 앱 데이터를 유지하도록 사용자에게 옵션을 제공해야합니다.
- [C-4-9] 사용자가 제거 중에 데이터를 삭제하기로 선택한 경우 개인 앱 데이터 디렉토리 및 해당 컨텐츠를 삭제해야합니다.
[C-4-1]은 장치의 1 차 사용자의 응용 프로그램에 의해 추가 프로파일에서 유래 한 아래 의도를 처리 할 수 있어야합니다.
-
Intent.ACTION_VIEW
-
Intent.ACTION_SENDTO
-
Intent.ACTION_SEND
-
Intent.ACTION_EDIT
-
Intent.ACTION_INSERT
-
Intent.ACTION_INSERT_OR_EDIT
-
Intent.ACTION_SEND_MULTIPLE
-
Intent.ACTION_PICK
-
Intent.ACTION_GET_CONTENT
-
MediaStore.ACTION_IMAGE_CAPTURE
-
MediaStore.ACTION_VIDEO_CAPTURE
-
[C-4-2]는 모든 장치 정책 사용자 제한 사항 및 선택한 비 사용자 제한 (아래 목록)을 장치의 기본 사용자 에이 추가 사용자 프로필에 적용해야합니다.
[C-4-3]은 다음의 의도를 통해이 추가 프로파일에서 연락처를 작성해야합니다.
[C-4-4]이 추가 사용자 프로필에서 실행되는 응용 프로그램에 대해 연락처 동기화가 실행되지 않아야합니다.
- [C-4-14]이 추가 프로필에서 실행중인 응용 프로그램에 대해 별도의 권한 및 저장 관리가 있어야합니다.
- [C-4-5]는 런처 활동이있는 추가 프로파일에서 부모 사용자 프로필에 이미 액세스 할 수있는 연락처에 액세스 할 수있는 응용 프로그램 만 허용해야합니다.
개정을 참조하십시오
메모리 안전 기술은
android:memtagMode
Manifest 옵션을 사용하는 응용 프로그램에서 높은 (> 90%) 확률로 다음 클래스의 버그를 완화하는 기술입니다.- 힙 버퍼 오버 플로우
- 무료 후 사용하십시오
- 이중 무료
- Wild Free (Malloc Pointer가 아닌 무료)
장치 구현 :
- [C-SR-15]는
ro.arm64.memtag.bootctl_supported
설정하는 것이 좋습니다.
장치 구현이 시스템 속성을 설정하면
ro.arm64.memtag.bootctl_supported
가 true :[C-3-1]은 시스템 속성
arm64.memtag.bootctl
다음 값의 쉼표로 구분 된 목록을 수락 할 수 있도록해야하며, 다음 후속 재부팅에 원하는 효과가 적용되어야합니다.-
memtag
: 위에서 정의 된 메모리 안전 기술이 활성화되어 있습니다. -
memtag-once
: 위에서 정의 된 메모리 안전 기술이 일시적으로 활성화되어 있으며 다음 재부팅을 자동으로 비활성화합니다. -
memtag-off
: 위에서 정의 된 메모리 안전 기술이 비활성화되었습니다.
-
[C-3-2]는 쉘 사용자가
arm64.memtag.bootctl
설정하도록 허용해야합니다.[C-3-3]은 모든 프로세스에서
arm64.memtag.bootctl
읽도록 허용해야합니다.[C-3-4]는 부팅시 현재 요청 된 상태로
arm64.memtag.bootctl
설정해야합니다. 장치 구현이 시스템 속성을 변경하지 않고 상태를 수정할 수있는 경우 속성을 업데이트해야합니다.[C-SR-16]는 Memtag-Once를 설정하고 장치를 재부팅하는 개발자 설정을 표시하는 것이 좋습니다. 호환 가능한 부트 로더를 사용하여 Android 오픈 소스 프로젝트는 MTE Bootloader 프로토콜을 통해 위의 요구 사항을 충족합니다.
- [C-SR-17]은 사용자가
memtag
활성화 할 수있는 보안 설정 메뉴의 설정을 표시하는 것이 좋습니다.
개정을 참조하십시오
장치 구현 :
- [C-0-2] 는 사용자 경고를 표시하고 사용자의 화면에 표시되는 민감한 정보를 캡처 할 때마다
ASP와 정확히 동일한 메시지를 포함하여세션이 포함될때마다 세션을 캡처 할 때마다 화면캐스팅 또는 화면 녹화는MediaProjection.createVirtualDisplay()
,VirtualDeviceManager.createVirtualDisplay()
또는 독점 API를 통해 시작됩니다.사용자에게 사용자 동의의 향후 표시를 비활성화 할 수있는 여유를 제공해서는 안됩니다.
[C-SR-1]은 ASP에서 구현 된 것과 정확히 동일한 메시지 인 사용자 경고를 표시하는 것이 좋습니다. 그러나 메시지가 사용자에게 사용자 화면의 민감한 정보가 캡처된다는 것을 명확하게 경고하는 한 변경 될 수 있습니다.
[C-0-4]는 사용자가 Android.app와
associate()
수있는 시스템 앱에 의해 세션을 시작하지 않는 한, 사용자에게 화면을 캡처하려는 미래의 미래의 프롬프트를 비활성화 할 수있는 여유를 제공해서는 안됩니다android.app.role.COMPANION_DEVICE_APP_STREAMING
또는android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING
장치 프로필.
- [C-0-2] 는 사용자 경고를 표시하고 사용자의 화면에 표시되는 민감한 정보를 캡처 할 때마다
9.8.6. OS 수준 및 주변 데이터 :이 섹션은 컨텐츠 캡처 및 앱 검색 에서 OS 수준 및 주변 데이터 로 이름이 바뀌 었습니다.
개정을 참조하십시오
Android는 시스템 APIS
장치 구현을위한 메커니즘을 지원하여ContentCaptureService
,AugmentedAutofillService
,AppSearchGlobalManager.query
또는 기타 독점적 수단을 통해응용 프로그램과 사용자민감한 데이터 간의 다음 애플리케이션 데이터 상호 작용을 캡처 할 수있는 메커니즘을 지원합니다.-
AugmentedAutofillService
통해 시스템에 전송 된 모든 화면 또는 기타 데이터. -
Content Capture
API를 통해 액세스 할 수있는 모든 화면 또는 기타 데이터. -
FieldClassificationService
API를 통해 액세스 할 수있는 화면 또는 기타 데이터 -
AppSearchManager
API를 통해 시스템에 전달 된 모든 응용 프로그램 데이터는AppSearchGlobalManager.query
통해 액세스 할 수 있습니다.
-
Content Capture
API 또는AppSearchManager
API를 통해 응용 프로그램이 시스템에 제공하는 다른 이벤트와 유사한 유능한 Android 및 독점 API를 통해 API.
- Speech Recondizer 구현에 의해
SpeechRecognizer#onDeviceSpeechRecognizer()
사용한 결과로 얻은 오디오 데이터. -
AudioRecord
,SoundTrigger
또는 기타 오디오 API를 통해 백그라운드 (연속적으로)에서 얻은 오디오 데이터는 사용자가 가시적 인 표시기를 초래하지 않습니다. - 카메라마너 또는 기타 카메라 API를 통해 백그라운드 (연속적으로)에서 얻은 카메라 데이터는 사용자가 가시 지표를 초래하지 않습니다.
장치 구현이 위의 데이터를 캡처하면 다음과 같습니다.
[C-1-3] 은 데이터가 공유 될 때마다 명시 적 사용자 동의를 제외하고 개인 정보 보호 예방 메커니즘을 사용하여 모든 데이터
와 로그오프 만 보내야합니다. 개인 정보 보호 기술은“집계에서만 분석 할 수있는 것만 허용하고 로그인 이벤트 또는 파생 된 결과를 개별 사용자와 일치시키는 것을 방지하는 것”으로 정의되어 사용자 당 데이터 (예 : 예를 들어, 예를 들어, 구현, 구현)RAPPOR
).[C-1-5]는 현재 섹션에 요약 된 요구 사항을 따르지 않는 다른 OS 구성 요소와 이러한 데이터를 공유해서는 안됩니다 (9.8.6
컨텐츠 캡처OS 레벨 및 주변 데이터 ). 공유. 이러한 기능이 Android SDK API (AmbientContext
,HotwordDetectionService
)로 구축되지 않는 한.[C-1-6]은 데이터가 장치의 모든 형태로 저장 될
때구현 또는 독점 수단이 수집하는 데이터를 지우기 위해 사용자 여유를 제공해야합니다. 사용자가 데이터를 지우기로 선택한 경우 수집 된 모든 과거 데이터를 제거해야합니다.ContentCaptureService
- [C-SR-3]은 Android SDK API 또는 유사한 OEM 소유의 오픈 소스 리포지토리와 함께 구현하는 것이 좋습니다. 및 / 또는 샌드 박스 구현에서 수행됩니다 (9.8.15 샌드 박스 API 구현 참조).
Android,
SpeechRecognizer#onDeviceSpeechRecognizer()
통해 네트워크를 포함하지 않고 장치에서 음성 인식을 수행 할 수있는 기능을 제공합니다. 기기 음성 소설 구현은이 섹션에 요약 된 정책을 따라야합니다.-
개정을 참조하십시오
장치 구현이
android.hardware.telephony
기능 플래그를 선언하는 경우 :- [C-1-4]
BUGREPORT_MODE_TELEPHONY
사용하여 생성 된 보고서는 다음과 같은 정보를 포함해야합니다.-
SubscriptionManagerService
덤프
-
- [C-1-4]
9.8.14. 자격 증명 관리자 : 제거
9.8.15. 샌드 박스 API 구현 : 새 섹션
개정을 참조하십시오
Android는 대의원 API 세트를 통해 보안 OS 수준 및 주변 데이터를 처리하는 메커니즘을 제공합니다. 이러한 처리는 특권 액세스 및 샌드 박스 API 구현으로 알려진 통신 기능을 감소시키는 사전 설치된 APK로 위임 할 수 있습니다.
샌드 박스 API 구현 :
- [C-0-1]는 인터넷 권한을 요청해서는 안됩니다.
- [C-0-2]는 개인 정보 보호 예방 메커니즘을 사용하여 공개적으로 사용 가능한 오픈 소스 구현 또는 Android SDK API를 통해 간접적으로 구조화 된 API를 통해서만 인터넷에 액세스해야합니다. 개인 정보 보호 기술은 "집계에서만 분석 할 수 있고 로그인 이벤트 또는 파생 된 결과를 개별 사용자와 일치시키는 방지"로 정의되어 사용자 당 데이터 (예 : 예를 들어, 예를 들어, 구현, 구현) 래퍼 ).
- [C-0-3]은 다음을 제외하고 서비스를 다른 시스템 구성 요소와 분리하여 보관해야합니다.
- 전화, 연락처, 시스템 UI 및 미디어
- [C-0-4] 사용자는 사용자가 서비스를 사용자 설치 가능한 응용 프로그램 또는 서비스로 교체 할 수 없어야합니다.
- [C-0-5]는 사전 설치된 서비스가 그러한 데이터를 캡처 할 수 있도록 허용해야합니다. 교체 기능이 AOSP (예 : 디지털 어시스턴트 앱의 경우)에 내장되지 않는 한.
- [C-0-6] 사전 설치된 서비스 메커니즘 이외의 앱이 그러한 데이터를 캡처 할 수 있도록 허용해서는 안됩니다. 이러한 캡처 기능이 Android SDK API로 구현되지 않는 한.
- [C-0-7]는 서비스를 비활성화하기 위해 사용자 여유를 제공해야합니다.
- [C-0-8]는 서비스가 보유한 Android 권한을 관리하고 섹션 9.1에 설명 된 Android 권한 모델을 따르기 위해 사용자 여유를 생략해서는 안됩니다. 허가 .
9.8.16. 연속 오디오 및 카메라 데이터 : 새 섹션
개정을 참조하십시오
9.8.2 레코딩, 9.8.6 OS 수준 및 주변 데이터 및 9.8.15 샌드 박스 API 구현, Audiorecord, Soundtrigger 또는 기타 오디오 API를 통해 (연속적으로) (연속적으로)를 사용하는 구현 또는 카메라마너 또는 기타 카메라 API를 통해 백그라운드 (연속적으로)에서 얻은 카메라 데이터 :
- [C-0-1]은 다음과 같은 경우 해당 표시기 (섹션 9.8.2 기록에 따라 카메라 및/또는 마이크)를 시행해야합니다.
- 이 액세스는 샌드 박스 구현 (9.8.15 샌드 박스 API 구현 참조)에서 수행됩니다. 시스템 UI 인텔리전스 , 시스템 오디오 인텔리전스 , 시스템 오디오 인텔리전스 , 시스템 알림 인텔리전스 , 시스템 텍스트 인텔리전스 또는 시스템 시각 지능 .
- 액세스는 샌드 박스를 통해 수행되며 ASP (
HotwordDetectionService
,WearableSensingService
,VisualQueryDetector
)의 메커니즘을 통해 구현 및 시행됩니다. - 오디오 액세스는 Digital Assistant Application에 의해 보조 목적으로 수행되며
SOURCE_HOTWORD
오디오 소스로 제공합니다. - 액세스는 시스템에 의해 수행되며 오픈 소스 코드로 구현됩니다.
- [C-SR-1]은 이러한 데이터를 사용하는 모든 기능에 대해 사용자 동의를 요구하고 기본적으로 비활성화하는 것이 좋습니다.
- [C-SR-2] 동일한 처리를 적용하는 것이 좋습니다 (즉, 9.8.2 레코딩, 9.8.6 OS 레벨 및 주변 데이터, 9.8.15 샌드 박스 API 구현 및 9.8.16 연속 오디오 및 카메라 데이터) 원격 웨어러블 장치에서 나오는 카메라 데이터.
카메라 데이터가 원격 웨어러블 장치에서 제공되고 Android OS 외부에 암호화되지 않은 형태로 액세스하는 경우
WearableSensingManager
가 구축 한 샌드 박스 기능이 다음과 같습니다.- [C-1-1]은 추가 표시기를 표시하기 위해 원격 웨어러블 장치를 표시해야합니다.
장치가 할당 된 키워드없이 디지털 어시스턴트 애플리케이션에 참여할 수있는 기능을 제공하는 경우 (일반 사용자 쿼리를 처리하거나 카메라를 통한 사용자 존재 분석) :
- [C-2-1]은
android.app.role.ASSISTANT
역할을 보유한 패키지에서 그러한 구현을 제공해야합니다. - [C-2-2]는 이러한 구현이
HotwordDetectionService
및/또는VisualQueryDetectionService
Android API를 사용하도록해야합니다.
- [C-0-1]은 다음과 같은 경우 해당 표시기 (섹션 9.8.2 기록에 따라 카메라 및/또는 마이크)를 시행해야합니다.
9.8.17. 원격 측정 : 원격 측정 : 새로운 섹션. 새로운 섹션
개정을 참조하십시오
StatsLog API를 사용한 Android 상점 시스템 및 앱 로그. 이 로그는 권한이있는 시스템 응용 프로그램에서 사용할 수있는 Statmanager API를 통해 관리됩니다.
Statmanager는 또한 개인 정보 보호 메커니즘이있는 장치에서 개인 정보를 민감하게 분류하는 데이터를 수집하는 방법을 제공합니다. 특히
StatsManager::query
API는 StatsLog에 정의 된 제한된 메트릭 범주를 쿼리하는 기능을 제공합니다.Statmanager의 제한된 메트릭을 쿼리하고 수집하는 모든 구현 :
- [C-0-1]은 장치의 유일한 응용 프로그램/구현이어야하며
READ_RESTRICTED_STATS
권한을 고정해야합니다. - [C-0-2]는 개인 정보 보호 예방 메커니즘을 사용하여 원격 측정 데이터와 장치 로그 만 보내야합니다. 개인 정보 보호 기술은 "집계에서만 분석 할 수 있고 로그인 이벤트 또는 파생 된 결과를 개별 사용자와 일치시키는 방지"로 정의되어 사용자 당 데이터 (예 : 예를 들어, 예를 들어, 구현, 구현) 래퍼 ).
- [C-0-3] 그러한 데이터를 장치의 사용자 ID (예 : 계정 )와 연결해서는 안됩니다.
- [C-0-4]는 현재 섹션에 요약 된 요구 사항을 따르지 않는 다른 OS 구성 요소와 이러한 데이터를 공유해서는 안됩니다 (9.8.17 개인 정보 보호 원격 측정).
- [C-0-5]는 개인 정보 보호 원격 측정 컬렉션, 사용 및 공유를 가능하게/비활성화 할 수있는 사용자 여유를 제공해야합니다.
- [C-0-6]는 데이터가 장치의 모든 형태로 저장된 경우 구현이 수집하는 데이터를 지우기 위해 사용자 여유를 제공해야합니다. 사용자가 데이터를 지우기로 선택한 경우 현재 장치에 저장된 모든 데이터를 제거해야합니다.
- [C-0-7]은 오픈 소스 리포지토리에서 기본 개인 정보 보호 프로토콜 구현을 공개해야합니다.
- [C-0-8]이 섹션의 데이터 egress 정책을 StatsLog에 정의 된 제한된 메트릭 범주의 데이터 수집으로 시행해야합니다.
- [C-0-1]은 장치의 유일한 응용 프로그램/구현이어야하며
개정을 참조하십시오
장치 구현장치 구현이 PAGE 기준으로 파일 콘텐츠를 확인할 수있는 기능이 있으면 다음과 같습니다 .
[
C-0-3C-2-1 ] 전체 파일을 읽지 않고신뢰할 수있는 키에 대한암호화 적으로 파일 컨텐츠를 확인합니다.[
C-0-4C-2-2 ]신뢰할 수있는 키에 대해 검증되지 않은경우 위의 [C-2-1]에 따라 검증되지 않은 경우 보호 된 파일의 읽기 요청이 성공할 수 없어야합니다.
- [C-2-4] 활성화 된 파일의 경우 파일 체크섬을 O (1)로 반환해야합니다.
개정을 참조하십시오
Android Keystore 시스템을 통해 앱 개발자는 암호화 키를 컨테이너에 저장하고 Keychain API 또는 Keystore API를 통해 암호화 작업에 사용할 수 있습니다. 장치 구현 :
- [C-0-3]은 실패한 1 차 인증 시도의 수를 제한해야합니다.
- [C-SR-2]는 20 개의 실패한 1 차 인증 시도의 상한을 구현하는 것이 좋습니다. 사용자가 동의하고 기능을 옵트 인하면 실패한 기본 인증 시도의 한도를 초과 한 후 "공장 데이터 재설정"을 수행합니다.
장치 구현이 알려진 비밀을 기반으로 잠금 화면을 잠금 해제하기 위해 인증 메소드를 추가하거나 수정하고 새로운 인증 방법을 사용하여 화면을 잠그는 안전한 방법으로 처리합니다.
- [C-SR-3] 핀은 최소 6 자리 또는 동등하게 20 비트 엔트로피를 갖는 것이 좋습니다.
- [C-2-1] 6 자리 미만의 길이 핀은 핀 길이를 드러내지 않도록 사용자 상호 작용없이 자동 입력을 허용하지 않아야합니다.
9.11.1. 보안 잠금 화면, 인증 및 가상 장치 :
개정을 참조하십시오
장치 구현 :
- [C-0-1]는 실패한 기본 인증 시도의 수를 제한해야합니다.
- [C-SR-5]는 20 개의 실패한 1 차 인증 시도의 상한을 구현하는 것이 좋습니다. 사용자가 동의하고 기능을 옵트 인하면 실패한 기본 인증 시도의 한도를 초과 한 후 "공장 데이터 재설정"을 수행합니다.
장치 구현이 권장 기본 인증 방법으로 숫자 핀을 설정하면 :
- [C-SR-6] 핀은 최소 6 자리 또는 동등하게 20 비트 엔트로피를 갖는 것이 좋습니다.
- [C-SR-7] 6 자리 미만의 길이 핀은 핀 길이를 나타내지 않도록 사용자 상호 작용없이 자동 입력을 허용하지 않는 것이 좋습니다.
보안 잠금 화면이 있고
TrustAgentService
시스템 API를 구현하는 하나 이상의 Trust Agent를 포함하는 기기 구현은 다음을 충족해야 합니다.[C-7-8] 사용자는 권장되는 1 차 인증 중 하나 (예 : PIN, 패턴, 암호) 메소드가 사용자 (예 : 드라이버 산만)의 안전이없는 한 72 시간 이하로 한 번은 한 번에 한 번씩 도전해야합니다. 우려.장치 구현으로 응용 프로그램이 보조 가상 디스플레이를 생성하고 virtualdevicemanager 와 같은 관련 입력 이벤트를 지원하고 디스플레이에는 virtual_display_flag_secure가 표시되지 않습니다.
[C-13-10]은 가상 장치에서 시작된 앱 설치를 비활성화해야합니다.개정을 참조하십시오
장치가 Android Virtualization Framework API (
android.system.virtualmachine.*
)에 대한 지원을 구현하는 경우 Android 호스트 :- [C-1-1]은
android.system.virtualmachine
패키지에 의해 정의 된 모든 API를 지원해야합니다. - [C-1-2]는 보호 된 가상 머신 (PVM) 관리를위한 Android Selinux 및 권한 모델을 수정해서는 안됩니다.
- [C-1-3] 업스트림 안드로이드 오픈 소스 프로젝트 (ASP)에 제공된 시스템/sepolicy 내에 존재하는 Never Oxcer 규칙을 수정, 생략 또는 교체해서는 안되며 정책은 모든 Never Oxcer 규칙과 함께 컴파일해야합니다.
- [C-1-4] 는 플랫폼 서명 된 코드 및 권한이있는 앱 만 허용하지 않아야하며
신뢰할 수없는 코드 (예 : 3P 앱)가보호 된 가상 머신PVM을 생성하고 실행할 수 있도록 허용하지 않아야합니다. 참고 : 이것은 향후 Android 릴리스에서 변경 될 수 있습니다.
- [C-1-5]는 허용해서는 안됩니다
보호 된 가상 머신PVM 공장 이미지 또는 업데이트의 일부가 아닌 코드를 실행합니다.Android Verified Boot (예 : 인터넷에서 다운로드하거나 사이드로드 된 파일)로 덮여 있지 않은 것은 보호 된 가상 시스템에서 실행할 수 없습니다.
- [C-1-5]는 배출 불가능한 PVM이 공장 이미지 또는 특권 앱에 대한 업데이트가 포함 된 플랫폼 업데이트에서 코드를 실행하도록 허용해야합니다.
장치가 Android Virtualization Framework API (
android.system.virtualmachine.*
)에 대한 지원을 구현하는 경우보호 된 가상 머신PVM 인스턴스 :- [C-2-1]
은 보호 된 가상 머신PVM 에서 가상화 정점에서 사용 가능한 모든 운영 체제를 실행할 수 있어야합니다. - [C-2-2]는
보호 된 가상 머신PVM이 장치 구현 기 또는 OS 공급 업체가 서명하지 않은 운영 체제를 실행하도록 허용해서는 안됩니다. - [C-2-3]
보호 된 가상 머신PVM이 데이터를 코드로 실행하도록 허용해서는 안됩니다 (예 : Selinux Neveralow Execmem).
- [C-2-4]는 업스트림 안드로이드 오픈 소스 프로젝트 (APS)에 제공된 시스템/sepolicy/microdroid 내에 존재하는 Never Oxhael 규칙을 수정, 생략 또는 교체해서는 안됩니다.
- [C-2-5]는 비 마이크로 로이드 운영 체제의 경우에도
보호 된 가상 머신PVM 방어 방어 메커니즘 (예 : PVMS 용 Selinux)을 구현해야합니다. - [C-2-6] VM이 실행되는
초기 이미지를 확인할 수없는경우 PVM이펌웨어가 부팅을 거부하지 않도록해야합니다. 검증은 VM 내부에서 수행해야합니다. - [C-2-7] 인스턴스의 무결성이 손상되면 PVM이
펌웨어가 부팅을 거부하지 않도록해야합니다.
장치가 Android Virtualization Framework API (
android.system.virtualmachine.*
)에 대한 지원을 구현하면 하이퍼 바이저 :- [C-3-1]은 VM (PVM 또는 호스트 VM)이 독점적으로 소유 한 메모리 페이지가 가상 머신 자체 또는 다른 가상 머신이 아닌 하이퍼 바이저에만 액세스 할 수 있도록 보호 또는 보호되지 않도록해야합니다.
페이지 소유자가 명시 적으로 공유하지 않는 한 PVM이 다른 엔티티 (예 : 다른 PVM 또는 하이퍼 바이저)에 액세스 할 수 없도록 허용하지 않아야합니다. 여기에는 호스트 VM이 포함됩니다. 이것은 CPU 및 DMA 액세스에 모두 적용됩니다. - [C-3-2]는 PVM 에 의해 사용 된 후 및 호스트로 반환되기 전에 페이지를 닦아야합니다 (예 : PVM이 파괴 됨).
- [C-
3-3SR-1 ]은 PVM 펌웨어가 PVM의 코드 전에로드 및 실행되도록강력히권장됩니다 . - [C-3-4]는 각 VM
이 {BCC (Boot Certificate Chain) 및 PVM 인스턴스에 제공된 CDI (Comple Device Identifier)가해당 VM 인스턴스에 의해서만 파생 될 수 있는 VM Per-VM 비밀을 도출 해야합니다. 공장 재설정 및 OTA.
장치가 Android Virtualization Framework API에 대한 지원을 구현하는 경우 모든 영역에서
- [C-4-1]는 Android 보안 모델을 우회 할 수있는 PVM에 기능을 제공해서는 안됩니다.
장치가 Android Virtualization Framework API에 대한 지원을 구현하는 경우 :
- [C-5-1]는 분리 된 컴파일을 지원할 수 있어야 하지만
ART 런타임 업데이트의장치 배송에서 격리 된 컴파일 기능을 비활성화 할 수 있습니다 .
장치가 Android Virtualization Framework API에 대한 지원을 구현하는 경우 키 관리를 위해 :
- [C-6-1]은 잠금 해제 된 장치에서도 사용자가 수정할 수없는 시점에서 주사위 체인을 뿌려야합니다. (스푸핑 할 수 없는지 확인).
- [C- SR-2
6-2] 는 VM Per-VM 비밀 유도 메커니즘으로 주사위를 사용하는 것이 좋습니다.주사위를 올바르게 수행해야합니다. 즉, 올바른 값을 제공합니다.
- [C-1-1]은