1. Giới thiệu
Tài liệu này liệt kê các yêu cầu mà bạn phải đáp ứng để thiết bị tương thích với Android 13.
Việc sử dụng "PHẢI", "KHÔNG ĐƯỢC", "BẮT BUỘC", "SÁNG", "KHÔNG ĐƯỢC", "NÊN", "KHÔNG NÊN", "NÊN DÙNG", "CÓ THỂ" và "KHÔNG BẮT BUỘC" phải tuân theo tiêu chuẩn IETF được xác định trong RFC2119.
Trong tài liệu này, "người triển khai thiết bị" hay "người triển khai" là một người hoặc tổ chức phát triển một giải pháp phần cứng/phần mềm chạy Android 13. "Triển khai thiết bị" hay "triển khai" là giải pháp phần cứng/phần mềm được phát triển như vậy.
Để được xem là tương thích với Android 13, các triển khai thiết bị PHẢI đáp ứng các yêu cầu được trình bày trong Định nghĩa tương thích này, bao gồm mọi tài liệu được kết hợp qua tham chiếu.
Trong trường hợp định nghĩa này hoặc các bài kiểm thử phần mềm được mô tả trong phần 10 là nội dung không hoạt động, không rõ ràng hoặc không đầy đủ, thì trình triển khai thiết bị có trách nhiệm đảm bảo khả năng tương thích với các cách triển khai hiện có.
Vì lý do này, Dự án nguồn mở Android vừa là phương thức tham chiếu vừa là cách triển khai ưu tiên của Android. Thiết bị triển khai thực là tôi tôi tôi tôi muốn mã hoá quảng cáo để giới thiệu cơ sở cho các cách triển khai của họ đến mức độ lớn nhất có thể có trên mã nguồn "upstream" available from the Android Open Source Project. Mặc dù một số thành phần có thể giả thuyết được thay thế bằng các cách triển khai thay thế, nó là Trình triển khai có trách nhiệm đảm bảo khả năng tương thích đầy đủ về hành vi với quy trình triển khai Android tiêu chuẩn, bao gồm và cả Bộ kiểm tra tính tương thích. Cuối cùng, xin lưu ý rằng tài liệu này nghiêm cấm rõ ràng một số thao tác thay thế và sửa đổi thành phần.
Nhiều tài nguyên được liên kết trong tài liệu này được lấy trực tiếp hoặc gián tiếp từ SDK Android và có chức năng giống với thông tin trong tài liệu của SDK đó. Trong mọi trường hợp mà Định nghĩa về khả năng tương thích này hoặc Bộ kiểm tra tính tương thích không đồng ý với tài liệu về SDK, thì tài liệu về SDK sẽ được coi là có căn cứ đáng tin. Mọi chi tiết kỹ thuật được cung cấp trong các tài nguyên được liên kết xuyên suốt tài liệu này đều được xem xét để đưa vào Định nghĩa về khả năng tương thích này.
1.1 Cấu trúc tài liệu
1.1.1. Yêu cầu theo loại thiết bị
Mục 2 chứa tất cả các yêu cầu áp dụng cho một loại thiết bị cụ thể. Mỗi tiểu mục của Phần 2 là dành riêng cho một loại thiết bị cụ thể.
Tất cả các yêu cầu khác, áp dụng trên toàn cầu cho mọi quá trình triển khai trên thiết bị Android, đều được liệt kê trong các phần sau Phần 2. Những yêu cầu này được gọi là "Yêu cầu chính" trong tài liệu này.
1.1.2. Mã yêu cầu
Mã yêu cầu được chỉ định cho các yêu cầu PHẢI.
- Mã nhận dạng này chỉ được chỉ định cho các yêu cầu PHẢI.
- Các yêu cầu được liệt kê là NÊN DÙNG được đánh dấu là [SR] nhưng mã nhận dạng lại không được chỉ định.
- Mã này bao gồm: Mã loại thiết bị – Mã điều kiện – Mã yêu cầu (ví dụ: C-0-1).
Mỗi mã nhận dạng được định nghĩa như sau:
- Mã loại thiết bị (xem thêm trong phần 2. Loại thiết bị)
- C: Lõi (Các yêu cầu áp dụng cho tất cả các hoạt động triển khai thiết bị Android)
- H: Thiết bị cầm tay Android
- T: Thiết bị Android TV
- Đáp: Triển khai Android Automotive
- W: Triển khai Android Watch
- Thẻ: Triển khai Android Tablet
- Condition ID (Mã điều kiện)
- Khi yêu cầu là vô điều kiện, mã nhận dạng này được đặt là 0.
- Khi yêu cầu có điều kiện, 1 được gán cho điều kiện đầu tiên và số tăng thêm 1 trong cùng một mục và cùng loại thiết bị.
- Mã yêu cầu
- Mã nhận dạng này bắt đầu từ 1 và tăng thêm 1 trong cùng một mục và cùng điều kiện.
1.1.3. Mã yêu cầu trong Phần 2
Mã yêu cầu trong Phần 2 gồm hai phần. Mã đầu tiên tương ứng với mã mục như mô tả ở trên. Phần thứ hai xác định hệ số hình dạng và yêu cầu cụ thể về hệ số hình dạng.
Mã mục, theo sau là Mã yêu cầu được mô tả ở trên.
- Mã nhận dạng trong Mục 2 bao gồm: Mã mục / Mã loại thiết bị – Mã điều kiện - Mã yêu cầu (ví dụ: 7.4.3/A-0-1).
2. Loại thiết bị
Dự án nguồn mở Android cung cấp một ngăn xếp phần mềm có thể sử dụng cho nhiều loại thiết bị và kiểu dáng. Để hỗ trợ bảo mật trên thiết bị, ngăn xếp phần mềm (bao gồm cả mọi hệ điều hành thay thế hoặc phương thức triển khai nhân hệ điều hành thay thế) dự kiến sẽ thực thi trong một môi trường bảo mật như mô tả trong mục 9 và những nơi khác trong CDD này. Có một vài loại thiết bị có hệ sinh thái phân phối ứng dụng được thiết lập tương đối tốt hơn.
Phần này mô tả các loại thiết bị đó, cũng như các yêu cầu và đề xuất bổ sung áp dụng cho từng loại thiết bị.
Tất cả các cách triển khai thiết bị Android mà không vừa với bất kỳ loại thiết bị nào được mô tả PHẢI vẫn đáp ứng tất cả các yêu cầu trong các phần khác của Định nghĩa về khả năng tương thích này.
2.1 Cấu hình thiết bị
Để biết những điểm khác biệt lớn về cấu hình phần cứng theo loại thiết bị, hãy xem các yêu cầu dành riêng cho thiết bị sau đây trong phần này.
2.2. Yêu cầu khi cầm tay
Thiết bị cầm tay Android là một cách triển khai cho thiết bị Android, thường dùng bằng cách cầm thiết bị trên tay, chẳng hạn như máy nghe nhạc mp3, điện thoại hoặc máy tính bảng.
Các hoạt động triển khai trên thiết bị Android được phân loại là Cầm tay nếu đáp ứng tất cả tiêu chí sau:
- Có nguồn điện giúp đảm bảo khả năng vận động, chẳng hạn như pin.
- Có kích thước màn hình theo đường chéo vật lý trong khoảng 3,3 inch (hoặc 2,5 inch đối với quá trình triển khai thiết bị được gửi trên API cấp 29 trở xuống) đến 8 inch.
Các yêu cầu bổ sung trong phần còn lại của phần này dành riêng cho việc triển khai thiết bị cầm tay Android.
2.2.1. Phần cứng
Triển khai thiết bị cầm tay:
- [7.1.1.1/H-0-1] PHẢI have at least one Android-compatible display that meet all required description on this document.
[7.1.1.3/H-SR-1] Are Internet Sử dụng để cung cấp cho người dùng một một thuộc tính tương tác để thay đổi kích thước màn hình (screenDensity).
[7.1.1.1/H-0-2] NOT support GPU Composition of graphic caches at least as large as the visible issue of any build-in display.
Nếu các phương thức triển khai Thiết bị cầm tay có hỗ trợ tính năng xoay màn hình bằng phần mềm, thì các phương thức triển khai đó:
- [7.1.1.1/H-1-1]* PHẢI làm cho màn hình logic that is made available for third party applications be at least 2 inches on the short cạnh(s) and 2.7 inches on the long cạnh(s). Các thiết bị xuất xưởng trên API Android cấp 29 trở xuống CÓ THỂ được miễn trách nhiệm đáp ứng yêu cầu này.
Nếu phương thức triển khai thiết bị cầm tay không hỗ trợ tính năng xoay màn hình phần mềm, thì các thiết bị đó sẽ:
- [7.1.1.1/H-2-1]* must make the logic screen that is made available for third party applications be at least 2.7 inches on the short cạnh(s). Các thiết bị xuất xưởng trên API Android cấp 29 trở xuống CÓ THỂ được miễn trách nhiệm đáp ứng yêu cầu này.
Nếu phương thức triển khai thiết bị cầm tay yêu cầu hỗ trợ cho dải động cao hiển thị thông qua Configuration.isScreenHdr()
, thì họ:
- [7.1.4.5/H-1-1] PHẢI quảng cáo hỗ trợ cho các tiện ích
EGL_EXT_gl_colorspace_bt2020_pq
,EGL_EXT_surface_SMPTE2086_metadata
,EGL_EXT_surface_CTA861_3_metadata
,VK_EXT_swapchain_colorspace
vàVK_EXT_hdr_metadata
.
Triển khai thiết bị cầm tay:
- [7.1.4.6/H-0-1] PHẢI báo cáo xem thiết bị có hỗ trợ khả năng lập hồ sơ GPU qua thuộc tính hệ thống
graphics.gpu.profiler.support
.
Nếu các phương thức triển khai Thiết bị cầm tay khai báo hỗ trợ qua thuộc tính hệ thống graphics.gpu.profiler.support
, thì các phương thức triển khai đó:
- [7.1.4.6/H-1-1] PHẢI báo cáo dưới dạng đầu ra một dấu vết protobuf tuân thủ giản đồ cho bộ đếm GPU và giai đoạn kết xuất GPU được xác định trong tài liệu về Perfetto.
- [7.1.4.6/H-1-2] PHẢI reportSử dụng các giá trị tuân thủ cho bộ đếm GPU của thiết bị theo sau gpucounter trace packageet proto.
- [7.1.4.6/H-1-3] PHẢI báo cáotheo giá trị cho phù hợp (đối với thiết bị) GPU RenderLocales sau the render giai process trace packageet proto.
- [7.1.4.6/H-1-4] PHẢI báo cáo a GPUfrequency tracepoint as chỉ định bởi định dạng: power/gpu_frequency.
Triển khai thiết bị cầm tay:
- [7.1.5/H-0-1] NOT include support for legacy application compatibility mode as specified by the upstream Android open source code. Tức là, các cách triển khai thiết bị KHÔNG ĐƯỢC thay đổi các yếu tố kích hoạt hoặc ngưỡng mà chế độ tương thích được kích hoạt, và KHÔNG được thay đổi hành vi của chính chế độ tương thích.
- [7.2.1/H-0-1] PHẢI include support for third-party Input Method Editor (IME) applications.
- [7.2.3/H-0-2] PHẢI gửi cả bình thường và lâu nhấn
event of the Back function (
KEYCODE_BACK
) to theforeground application. Những sự kiện này KHÔNG ĐƯỢC hệ thống tiêu thụ và có thể được kích hoạt bởi bên ngoài thiết bị Android (ví dụ: bàn phím phần cứng bên ngoài được kết nối với thiết bị Android). - [7.2.3/H-0-3] PHẢI cung cấp chức năng Home trên tất cả màn hình tương thích Android cung cấp màn hình chính.
- [7.2.3/H-0-4] PHẢI cung cấp hàm Quay lại trên tất cả các màn hình tương thích Android và chức năng gần đây trên ít nhất một trong các màn hình tương thích với Android.
- [7.2.4/H-0-1] PHẢI hỗ trợ đầu vào màn hình cảm ứng.
- [7.2.4/H-SR-1] AreĐể tôi đề xuất người dùng chạy ứng dụng hỗ trợ người dùng đã chọn, nói cách khác là ứng dụng đó triển khai Voicetương tác Service, hoặc một hoạt động xử lý
ACTION_ASSIST
khi nhấn và giữ củaKEYCODE_MEDIA_PLAY_PAUSE
hoặcKEYCODE_HEADSETHOOK
nếu hoạt động trên nền trước không xử lý các sự kiện nhấn và giữ đó. - [7.3.1/H-SR-1] Are Internet REVIEW to include a 3-axis accelerometer.
Nếu phương thức triển khai Thiết bị cầm tay bao gồm gia tốc kế 3 trục, thì các phương thức triển khai đó:
- [7.3.1/H-1-1] PHẢI be possible to report events up to a frequency of at least 100 Hz.
Nếu các phương thức triển khai Thiết bị cầm tay bao gồm bộ thu GPS/GNSS và báo cáo chức năng cho các ứng dụng thông qua cờ tính năng android.hardware.location.gps
, thì các ứng dụng đó:
- [7.3.3/H-2-1] NOT report GNSSmeasurement, as soon as they are found, coi đây là một vị trí được tính toán từ GPS/GNSS chưa được báo cáo.
- [7.3.3/H-2-2] NOT report GNSS pseudoranges and pseudorange rates, that, in open-sky conditions after take the location, while Văn phòng hoặc di chuyển với dưới 0.2 meter per seconds vuôngd of acceleration, are đủ to calculate location during 20meter, and Speed through 0.2meter per seconds, at least 95%
Nếu hoạt động triển khai Thiết bị cầm tay bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/H-3-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
- [7.3.4/H-3-2] PHẢI be compatibility of Measurement changes up to 1000degree per seconds.
Các phương thức triển khai thiết bị cầm tay có thể thực hiện cuộc gọi thoại và cho biết bất kỳ giá trị nào khác ngoài PHONE_TYPE_NONE
trong getPhoneType
:
- [7.3.8/H] PHẢI bao gồm cảm biến độ gần.
Triển khai thiết bị cầm tay:
- [7.3.11/H-SR-1] AreĐể các chiến dịch quảng cáo sưu tầm có tự do.
- [7.4.3/H] NÊN include support for Bluetooth and Bluetooth LE.
Nếu thiết bị hỗ trợ giao thức Mạng nhận biết mạng lân cận (NAN) bằng cách khai báo PackageManager.FEATURE_WIFI_AWARE
và Vị trí Wi-Fi (Thời gian trọn vòng của Wi-Fi — RTT) bằng cách khai báo PackageManager.FEATURE_WIFI_RTT
, thì chúng:
[7.4.2.5/H-1-1] truyền báo cáo phạm vi chính xác đến trong phạm vi +/-1 meter at 160 MHz MHz inches at the 68th.2.5/H-1-1 themeter at 80 MHz extensions at the 68th Chrome, , ",
[7.4.2.5/H-SR-1] Are hủy lựa chọn để báo cáo phạm vi chính xác đến trong phạm vi +/-1 meter at 160 MHz Band at the 90th percentile (as câning with the support Distribution Function), +/-2 meters at 80 MHz MHz at the 90thpercent, +/-4meter at the MHz MHz
It is AndroidX NÊN theo dõi các bước thiết lập đo lường được chỉ định trong Sự hiện diện Hiệu chỉnh.
Nếu phương thức triển khai thiết bị cầm tay bao gồm một thiết bị camera logic liệt kê các tính năng bằng cách sử dụng CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
, thì chúng:
- [7.5.4/H-1-1] NOT have Bình thường trường quan sát (FOV) theo mặc định và nó PHẢI nằm giữa 50 và 95 độ.
Triển khai thiết bị cầm tay:
- [7.6.1/H-0-1] PHẢI have at least 4 GB of non-volatile storage available for application private data (a.k.a. "/data" segments).
- [7.6.1/H-0-2] PHẢI Return “true” for
ActivityManager.isLowRamDevice()
when there is under than 1GB of bộ nhớ có sẵn cho nhân và không gian người dùng.
Nếu phương thức triển khai Thiết bị cầm tay khai báo chỉ hỗ trợ ABI 32 bit:
[7.6.1/H-1-1] The memory available to the kernel and userspace PHẢI be at least 416MB if the default display uses framebuffer Resolutions up to qHD (e.g. FWVGA).
[7.6.1/H-2-1] Bộ nhớ có sẵn cho nhân và không gian người dùng PHẢI tối thiểu là 592MB nếu màn hình mặc định sử dụng bộ đệm khung có độ phân giải lên đến HD+ (ví dụ: HD, WSVGA).
[7.6.1/H-3-1] Bộ nhớ có sẵn cho nhân và không gian người dùng PHẢI tối thiểu là 896 MB nếu màn hình mặc định sử dụng độ phân giải bộ đệm khung lên tới FHD (ví dụ: WSXGA+).
[7.6.1/H-4-1] The Memory available to the kernel and userspace PHẢI be at least 1344MB if the default display uses framebuffer terms up to QHD (e.g. QWXGA).
Nếu quá trình triển khai Thiết bị cầm tay khai báo khả năng hỗ trợ ABI 64 bit bất kỳ (có hoặc không có ABI 32 bit bất kỳ):
[7.6.1/H-5-1] The Memory available to the kernel and userspace PHẢI be at least 816MB if the default display using framebuffer terms up to qHD (e.g. FWVGA).
[7.6.1/H-6-1] The memory available to the kernel and userspace PHẢI be at least 944MB if the default display uses framebuffer problems up to HD+ (e.g. HD, WSVGA).
[7.6.1/H-7-1] The memory available to the kernel and userspace PHẢI is least 1280MB if the default display using framebuffer problems up to FHD (e.g. WSXGA+).
[7.6.1/H-8-1] The Memory available to the kernel and userspace PHẢI be at least 1824MB if the default display uses framebuffer creatives up to QHD (e.g. QWXGA).
Lưu ý rằng "bộ nhớ có sẵn cho nhân và không gian người dùng" ở trên đề cập đến dung lượng bộ nhớ được cung cấp ngoài mọi bộ nhớ dành riêng cho các thành phần phần cứng như đài, video, v.v. không thuộc sự kiểm soát của nhân hệ điều hành đối với quá trình triển khai thiết bị.
Nếu hoạt động triển khai Thiết bị cầm tay bao gồm ít hơn hoặc bằng 1 GB bộ nhớ cho nhân và không gian người dùng, thì chúng:
- [7.6.1/H-9-1] PHẢI Khai báo cờ tính năng
android.hardware.ram.low
. - [7.6.1/H-9-2] PHẢI have at least 1.1 GB of non-volatile storage for application private data (a.k.a. "/data" segments).
Nếu phương thức triển khai Thiết bị cầm tay bao gồm hơn 1 GB bộ nhớ có sẵn cho nhân hệ điều hành và không gian người dùng, thì chúng:
- [7.6.1/H-10-1] PHẢI have at least 4GB of non-volatile storage available for application private data (a.k.a. "/data" segments).
- NÊN khai báo cờ tính năng
android.hardware.ram.normal
.
Nếu phương thức triển khai Thiết bị cầm tay bao gồm lớn hơn hoặc bằng 2 GB và dưới 4 GB bộ nhớ có sẵn cho nhân hệ điều hành và không gian người dùng, thì chúng:
- [7.6.1/H-SR-1] Are Từ phút hạng sang 1
Nếu phương thức triển khai Thiết bị cầm tay bao gồm dưới 2 GB bộ nhớ còn trống cho nhân hệ điều hành và không gian người dùng, thì chúng:
- [7.6.1/H-1-1] PHẢI chỉ hỗ trợ ABI 32 bit.
Triển khai thiết bị cầm tay:
- [7.6.2/H-0-1] PHẢI NOT cung cấp một ứng dụng shared storage nhỏ hơn 1 GiB.
- [7.7.1/H] PHẢI bao gồm một cổng USB hỗ trợ chế độ thiết bị ngoại vi.
Nếu các phương thức triển khai thiết bị cầm tay có cổng USB hỗ trợ chế độ thiết bị ngoại vi, thì các phương thức triển khai đó:
- [7.7.1/H-1-1] PHẢI triển khai Android Open Accessory (AOA) API.
Nếu phương thức triển khai thiết bị cầm tay có cổng USB hỗ trợ chế độ máy chủ, thì các phương thức triển khai đó:
- [7.7.2/H-1-1] PHẢI triển khai USB audio class như được lập tài liệu trong tài liệu SDK Android.
Triển khai thiết bị cầm tay:
- [7.8.1/H-0-1] PHẢI bao gồm micrô.
- [7.8.2/H-0-1] PHẢI have an audio output and Khai báo
android.hardware.audio.output
.
Nếu các phương thức triển khai Thiết bị cầm tay có thể đáp ứng tất cả các yêu cầu về hiệu suất để hỗ trợ chế độ Thực tế ảo và có hỗ trợ chế độ này, thì các phương thức triển khai đó:
- [7.9.1/H-1-1] PHẢI khai báo cờ tính năng
android.hardware.vr.high_performance
. - [7.9.1/H-1-2] PHẢI include an application
implementationing
android.service.vr.VrListenerService
that can be enabled by VR applications viaandroid.app.Activity#setVrModeEnabled
.
Nếu các phương thức triển khai thiết bị cầm tay bao gồm một hoặc nhiều cổng USB-C ở chế độ máy chủ và triển khai (lớp âm thanh USB), thì ngoài các yêu cầu trong mục 7.7.2, thì ngoài các yêu cầu trong phần 7.7.2, các cổng đó còn:
- [7.8.2.2/H-1-1] PHẢI cung cấp tính năng ánh xạ phần mềm sau đây của mã HID:
Chức năng | Ánh xạ | Bối cảnh | Hành vi |
---|---|---|---|
Đáp | Trang sử dụng HID: 0x0C Mức sử dụng HID: 0x0CD Khoá Kernel: KEY_PLAYPAUSE Khoá Android: KEYCODE_MEDIA_PLAY_PAUSE |
Phát nội dung nghe nhìn | Đầu vào: Nhấn nhanh Đầu ra: Phát hoặc tạm dừng |
Đầu vào: Nhấn và giữ Đầu ra: Chạy lệnh thoại Gửi: android.speech.action.VOICE_SEARCH_HANDS_FREE nếu thiết bị
bị khoá hoặc màn hình đang tắt. Nếu không, gửi
android.speech.RecognizerIntent.ACTION_WEB_SEARCH |
|||
Cuộc gọi đến | Phương thức nhập: Nhấn nhanh Đầu ra: Chấp nhận cuộc gọi |
||
Đầu vào: Nhấn và giữ Đầu ra: Từ chối cuộc gọi |
|||
Cuộc gọi đang diễn ra | Đầu vào: Nhấn nhanh Đầu ra: Kết thúc cuộc gọi |
||
Đầu vào: Nhấn và giữ Đầu ra: Tắt tiếng hoặc bật tiếng micrô |
|||
B | Trang sử dụng HID: 0x0C Mức sử dụng HID: 0x0E9 Khoá Kernel: KEY_VOLUMEUP Khoá Android: VOLUME_UP |
Phát nội dung nghe nhìn, Cuộc gọi đang diễn ra | Đầu vào: Nhấn nhanh hoặc giữ Đầu ra: Tăng âm lượng của hệ thống hoặc tai nghe |
C | Trang sử dụng HID: 0x0C Cách sử dụng HID: 0x0EA Khoá Kernel: KEY_VOLUMEDOWN Khoá Android: VOLUME_DOWN |
Phát nội dung nghe nhìn, Cuộc gọi đang diễn ra | Đầu vào: Nhấn nhanh hoặc nhấn và giữ Đầu ra: Giảm âm lượng của hệ thống hoặc tai nghe |
D | Trang sử dụng HID: 0x0C Mức sử dụng HID: 0x0CF Khoá Kernel: KEY_VOICECOMMAND Khoá Android: KEYCODE_VOICE_ASSIST |
Tất cả. Có thể được kích hoạt trong bất cứ trường hợp nào. | Đầu vào: Nhấn nhanh hoặc giữ Đầu ra: Chạy lệnh thoại |
- [7.8.2.2/H-1-2] PHẢI kích hoạt ACTION_HEADSET_PLUG khi cắm sạc, nhưng chỉ sau khi giao diện âm thanh và điểm cuối USB đã được liệt kê đúng cách để xác định loại thiết bị đầu cuối được kết nối.
Khi phát hiện thấy thiết bị đầu cuối âm thanh USB loại 0x0302, thiết bị sẽ:
- [7.8.2.2/H-2-1] PHẢI broadcast Intent ACTION_HEADSET_PLUG with "Microphone" extra set to 0.
Khi phát hiện thấy thiết bị đầu cuối âm thanh USB loại 0x0402, thiết bị sẽ:
- [7.8.2.2/H-3-1] NOT broadcast Intent ACTION_HEADSET_PLUG with "Microphone" extra set to 1.
Khi API AudioManager.getDevices() được gọi trong khi thiết bị ngoại vi USB được kết nối, chúng:
[7.8.2.2/H-4-1] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_HEADSET and role isSink() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x0302.
[7.8.2.2/H-4-2] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_HEADSET và role isSink() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x0402.
[7.8.2.2/H-4-3] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_HEADSET và role isSource() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x0402.
[7.8.2.2/H-4-4] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_DEVICE và role isSink() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x603.
[7.8.2.2/H-4-5] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_DEVICE và role isSource() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x604.
[7.8.2.2/H-4-6] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_DEVICE và role isSink() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x400.
[7.8.2.2/H-4-7] PHẢI liệt kê một thiết bị thuộc loại AudioDeviceInfo.TYPE_USB_DEVICE và role isSource() nếu trường loại thiết bị đầu cuối âm thanh USB là 0x400.
[7.8.2.2/H-SR-1] Are trì hoãn quá trình kết nối của một USB-C audioexceptions, to perform enumeration of USB descriptionss, hlinal types and broadcast Intent ACTION_HEADSET_PLUG in under than 1000 la Mỹ.
Nếu các phương thức triển khai Thiết bị cầm tay khai báo android.hardware.audio.output
và android.hardware.microphone
, thì chúng:
[5.6/H-1-1] PHẢI have a Mean Liên tục Round-Trip latency of 500 milliseconds or under over 5measurement, with a Mean nhé Deviation under than 50 ms, over the following data default: "speaker to microphone", 3.5 mm loopback adapter (if supported), USB loopback (if supported).
[5.6/H-1-2] PHẢI have an trung bình Tap-to-tone latency of 500 milliseconds or under over at least 5measurement over the loa to micrô data path.
Nếu cấu hình triển khai Thiết bị cầm tay bao gồm ít nhất một bộ truyền động xúc giác, thì chúng:
- [7.10/H]* NÊN NOT use an eccentric rotating mall (ERM) htical actuator (vibrator).
- [7.10/H]* NÊN định vị vị trí của bộ truyền động gần vị trí nơi thiết bị thường được cầm hoặc chạm bằng tay.
- [7.10/H]* NÊN triển khai tất cả các hằng số công khai cho clear huctions trong android.view.HFeedbackConstants cụ thể là (CLOCK_TICK, CONTEXT_CLICK, KEY Chính PRESS, KEY kế nhạt, KEY ban_TAP, LONG_PRESS, TEXT_HANDLE_MOVEEST, VIRTU_COMMUNITY_release)
- [7.10/H]* NÊN triển khai tất cả các hằng số công khai cho
clear hPGs
in android.os.SemanticEffect
cụ thể (BRAND_TICK, Effect_CLICK, BRAND_HEAVY_CLICK and
DOUBLE_CLICK) and all available Public
PRIMITIVE_*
hằng số for rich hics in android.os.Virtual_Effect.Composition{/1) Một số dữ liệu gốc này, chẳng hạn như LOW_TICK và SPIN chỉ có thể thực hiện được nếu bộ rung có thể hỗ trợ tần số tương đối thấp. [7.10/H]* kích hoạt theo Thịnh hành cho các hằng số công khai trong ánh xạ trong android.view.H Vị trí
[7.10/H]* NÊN theo dõi đánh giá chất lượng cho các API createOneShot() và createWaveform().
[7.10/H]* NÊN xác minh rằng kết quả của công khai android.os.Vibrator.hasAmplitudeControl() API phản ánh chính xác khả năng của bộ rung của họ.
Bộ truyền động cộng hưởng tuyến tính (LRA) là một hệ thống lò xo khối lượng đơn có tần số cộng hưởng chiếm ưu thế, trong đó khối lượng dịch chuyển theo hướng chuyển động mong muốn.
Nếu việc triển khai Thiết bị cầm tay bao gồm ít nhất một bộ kích hoạt cộng hưởng tuyến tính, thì các hoạt động đó:
- [7.10/H]* màu di chuyển bộ truyền động xúc giác in the X-axis (left-right) of portrait direction.
Nếu các phương thức triển khai Thiết bị cầm tay có bộ truyền động xúc giác là bộ truyền động cộng hưởng tuyến tính (LRA) trục X, thì chúng:
- [7.10/H]* NÊN have the resonantfrequency of the X-axis LRA be under 200 Hz.
Nếu các quá trình triển khai thiết bị cầm tay tuân theo quá trình ánh xạ hằng số xúc giác, thì các quá trình đó sẽ:
- [7.10/H]* NÊN xác minh trạng thái triển khai bằng cách chạy các API android.os.Vibrator.areAllEffectsSupported() và android.os.Vibrator.arePrimitivesSupported().
[7.10/H]* should perform aquality evaluation (đánh giá chất lượng) đối với hằng số xúc giác.
[7.10/H]* kích hoạt xác minh và cập nhật nếu cần cấu hình dự phòng cho các nguyên thuỷ không được hỗ trợ như mô tả trong hướng dẫn triển khai cho hằng số.
2.2.2. Nội dung đa phương tiện
Cầm tay thiết bị triển khai PHẢI hỗ trợ các định dạng mã hoá và giải mã âm thanh sau đây và làm cho chúng có sẵn cho các ứng dụng của bên thứ ba:
- [5.1/H-0-1] AMR-NB
- [5.1/H-0-2] AMR-WB
- [5.1/H-0-3] Cấu hình MPEG-4 AAC (AAC LC)
- [5.1/H-0-4] Cấu hình MPEG-4 HE AAC (AAC+)
- [5.1/H-0-5] AAC ELD (AAC độ trễ thấp nâng cao)
Các phương thức triển khai thiết bị cầm tay PHẢI hỗ trợ các định dạng mã hoá video sau và cung cấp các định dạng đó cho các ứng dụng của bên thứ ba:
Cầm tay thiết bị triển khai PHẢI hỗ trợ các định dạng giải mã video sau đây và làm cho chúng có sẵn cho các ứng dụng của bên thứ ba:
2.2.3. Phần mềm
Triển khai thiết bị cầm tay:
- [3.2.3.1/H-0-1] PHẢI có ứng dụng xử lý
ACTION_GET_CONTENT
,ACTION_OPEN_DOCUMENT
,ACTION_OPEN_DOCUMENT_TREE
vàACTION_CREATE_DOCUMENT
như được mô tả trong tài liệu SDK, đồng thời cung cấp khả năng tương tác của người dùng để truy cập dữ liệu trình cung cấp tài liệu bằng cách sử dụng APIDocumentsProvider
. - [3.2.3.1/H-0-2]* PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ có trình xử lý ý định, cho tất cả các mẫu bộ lọc ý định công khai được xác định bởi ý định ứng dụng sau được liệt kê tại đây.
- [3.2.3.1/H-SR-1] Are Internet dải lọc để tải trước một ứng dụng email có thể xử lý ACTION_SENDTO hoặc ACTION_SEND hoặc ACTION_SEND_MULTIPLE intents to send an email.
- [3.4.1/H-0-1] NOT cung cấp a complete
implementation of the
android.webkit.Webview
API. - [3.4.2/H-0-1] PHẢI bao gồm một ứng dụng Trình duyệt độc lập dành cho trình duyệt web của người dùng chung.
- [3.8.1/H-SR-1] AreĐể triển khai trình chạy mặc định, hỗ trợ tính năng ghim trong ứng dụng của các lối tắt, tiện ích và tiện íchCác tính năng.
- [3.8.1/H-SR-2] Are Internet ĐỀ XUẤT NÊN triển khai trình chạy mặc định cung cấp quyền truy cập nhanh vào các lối tắt bổ sung do ứng dụng bên thứ ba cung cấp thông qua API shortcutManager.
- [3.8.1/H-SR-3] AreĐể các nhà phát triển sử dụng được các biểu tượng này,
- [3.8.2/H-SR-1] AreĐể nhà phát triển được hỗ trợ tiện ích ứng dụng bên thứ ba.
- [3.8.3/H-0-1] NOT allow third-party
apps to notify users of chậm events through the
Notification
vàNotificationManager
API classes. - [3.8.3/H-0-2] PHẢI support Rich Notifications.
- [3.8.3/H-0-3] PHẢI support headlines-up thông báo.
- [3.8.3/H-0-4] PHẢI include a notificationtrình bóng thông báo, cung cấp cho người dùng khả năng điều khiển trực tiếp (e.g. reply, reply, Dismiss, block) the notifications through usern are selected as action button or the control panel as specified in the AOSP.
- [3.8.3/H-0-5] PHẢI display the thoát lựa chọn được cung cấp thông qua
RemoteInput.Builder setChoices()
trong bóng thông báo. - [3.8.3/H-SR-1] AreĐể chỉ định vị trí kết nối, hãy hiển thị lựa chọn đầu tiên được cung cấp thông qua
RemoteInput.Builder setChoices()
trong bóng thông báo mà không cần tương tác người dùng bổ sung. - [3.8.3/H-SR-2] AreĐể chỉ định vị trí hiển thị các lựa chọn được cung cấp, bạn phải hiển thị tất cả các lựa chọn được cung cấp thông qua
RemoteInput.Builder setChoices()
trong ngăn thông báo khi người dùng mở rộng tất cả thông báo trong ngăn thông báo. - [3.8.3.1/H-SR-1] AreĐể các nhà phát triển đề xuất sử dụng các hành động cho điều gì
Notification.Action.Builder.setContextual
được đặt thànhtrue
trong-line với các câu trả lời được hiển thị bởiNotification.Remoteinput.Builder.setChoices
. - [3.8.4/H-SR-1] Are trì hoãn 2 danh sách phát được đề xuất để triển khai một trợ lý trên thiết bị để xử lý Assist action (hỗ trợ hành động).
Nếu các phương thức triển khai thiết bị cầm tay hỗ trợ thông báo MediaStyle, thì chúng:
- [3.8.3.1/H-SR-2] Are trì hoãn đề xuất cho phép người dùng cung cấp một thuộc tính tương tác (ví dụ, đầu ra chuyển đổi) đã truy cập từ giao diện người dùng hệ thống cho phép người dùng chuyển đổi giữa các tuyến đường đa phương tiện có sẵn thích hợp (ví dụ: các thiết bị Bluetooth và tuyến đường được cung cấp đến
MediaRouter2Manager
) khi một ứng dụng đăng mộtMediaStyle
thông báo với mộtMediaSession
mã thông báo.
Nếu các quá trình triển khai Thiết bị cầm tay hỗ trợ thao tác Hỗ trợ, thì các thiết bị đó:
- [3.8.4/H-SR-2] Are Internet ĐỀ XUẤT NÊN sử dụng long press on
HOME
key as the specified conversion to launch the Help app as descriptions in section 7.2.3. PHẢI khởi chạy ứng dụng hỗ trợ do người dùng chọn, nói cách khác là ứng dụng triển khaiVoiceInteractionService
hoặc hoạt động xử lý ý địnhACTION_ASSIST
.
Nếu các phương thức triển khai cho Thiết bị cầm tay hỗ trợ conversation notifications
và nhóm các thông báo đó vào một mục riêng biệt với thông báo cảnh báo và thông báo im lặng không phải cuộc trò chuyện, thì các thông báo đó sẽ:
- [3.8.4/H-1-1]* NOT display conversation notifications before of non conversations notifications with theexception of starting YouTube service notifications and importance:high Notifications.
Nếu các phương thức triển khai Thiết bị cầm tay Android hỗ trợ màn hình khoá, thì các phương thức triển khai đó:
- [3.8.10/H-1-1] PHẢI display the Lock screen Notifications bao gồm cả Media Notification Template.
Nếu các phương pháp triển khai Thiết bị cầm tay hỗ trợ màn hình khoá bảo mật, thì các phương thức triển khai đó:
- [3.9/H-1-1] PHẢI triển khai toàn bộ phạm vi của các chính sách quản trị thiết bị được xác định trong tài liệu SDK Android.
Nếu các phương thức triển khai Thiết bị cầm tay bao gồm tính năng hỗ trợ cho các API ControlsProviderService
và Control
, đồng thời cho phép các ứng dụng bên thứ ba phát hành chế độ kiểm soát thiết bị, thì các ứng dụng đó:
- [3.8.16/H-1-1] PHẢI khai báo cờ tính năng
android.software.controls
và đặt cờ này thànhtrue
. - [3.8.16/H-1-2] PHẢI cung cấp cho người dùng khả năng thêm, chỉnh sửa, chọn và vận hành các nút điều khiển thiết bị yêu thích của người dùng từ các nút điều khiển do các ứng dụng bên thứ ba đăng ký thông qua
ControlsProviderService
và APIControl
. - [3.8.16/H-1-3] PHẢI cung cấp quyền truy cập vào this người dùng trân trọng trong vòng ba tương tác từ một Trình chạy mặc định.
[3.8.16/H-1-4] PHẢI kết xuất chính xác trong thuộc tính người dùng này, tên và biểu tượng của mỗi ứng dụng bên thứ ba cung cấp các nút điều khiển thông qua
ControlsProviderService
API cũng như bất kỳ trường nào được cung cấp bởi các APIControl
.[3.8.16/H-1-5] PHẢI cung cấp một người dùng affordance to opt out of app specified auth-trivial device controls from the controls by the third-party applications through the
ControlsProviderService
and theControl
Control.isAuthRequired
API.
Ngược lại, nếu các phương thức triển khai thiết bị cầm tay không triển khai các chế độ điều khiển đó, thì các chế độ điều khiển đó sẽ:
- [3.8.16/H-2-1] PHẢI report
null
for theControlsProviderService
và các APIControl
. - [3.8.16/H-2-2] PHẢI kê khai cờ tính năng
android.software.controls
và đặt cờ này thànhfalse
.
Nếu các phương thức triển khai thiết bị cầm tay không chạy ở chế độ khoá tác vụ, thì khi nội dung được sao chép vào bảng nhớ tạm, chúng sẽ:
- [3.8.17/H-1-1] PHẢITrình bày xác nhận cho người dùng rằng dữ liệu đã được sao chép sang bảng nhớ tạm (e.g., athumbnail or alerts of “Content rác.”). Ngoài ra, bao gồm ở đây một chỉ báo nếu dữ liệu bảng nhớ tạm sẽ được đồng bộ hoá các thiết bị.
Triển khai thiết bị cầm tay:
- [3.10/H-0-1] PHẢI support third-party accessibilityservices.
- [3.10/H-SR-1] Are trì hoãn lại cải tiến để tải trước các dịch vụ hỗ trợ tiếp cận trên thiết bị so sánh với hoặc vượt mức chức năng của tính năng chuyển đổi truy cập và TalkBack (for languages supported by the installed) Text-to-speech engine) accessibility services as provided in the Talkback open source project.
- [3.11/H-0-1] NOT support installed of third-party TTSCông cụ.
- [3.11/H-SR-1] Are Internet REVIEW to include a TTS engine hỗ trợ các ngôn ngữ có sẵn trên thiết bị.
- [3.13/H-SR-1] AreĐể nhà phát triển khuyến khích dùng các thành phần giao diện người dùng cài đặt nhanh.
Nếu quá trình triển khai thiết bị cầm tay Android khai báo khả năng hỗ trợ FEATURE_BLUETOOTH
hoặc FEATURE_WIFI
, thì các phương thức triển khai đó sẽ:
- [3.16/H-1-1] PHẢI support the companion device pairingfeature.
Nếu chức năng điều hướng được cung cấp ở dạng một thao tác dựa trên cử chỉ trên màn hình:
- [7.2.3/H] TheNhận dạng vùng cho tính năng Home hàm nên be no higher than 32 dp in height from the bottom of the screen.
Nếu phương thức triển khai Thiết bị cầm tay cung cấp chức năng điều hướng dưới dạng một cử chỉ từ bất kỳ vị trí nào ở cạnh trái và phải của màn hình:
- [7.2.3/H-0-1] Khu vực cử chỉ của hàm điều hướng PHẢI có chiều rộng dưới 40 dp ở mỗi bên. Vùng cử chỉ NÊN là 24 dp in width theo mặc định.
Nếu các phương thức triển khai Thiết bị cầm tay hỗ trợ màn hình khoá bảo mật và có dung lượng bộ nhớ lớn hơn hoặc bằng 2 GB cho nhân hệ điều hành và không gian người dùng, thì chúng:
- [3.9/H-1-2] PHẢI khai báo hỗ trợ của hồ sơ được quản lý qua cờ tính năng
android.software.managed_users
.
Nếu các phương thức triển khai thiết bị cầm tay Android khai báo tính năng hỗ trợ máy ảnh qua android.hardware.camera.any
, thì chúng:
- [7.5.4/H-1-1] PHẢI thực hiện ý định
android.media.action.STILL_IMAGE_CAMERA
vàandroid.media.action.STILL_IMAGE_CAMERA_SECURE
rồi khởi chạy máy ảnh ở chế độ hình ảnh tĩnh như mô tả trong SDK. - [7.5.4/H-1-2] PHẢI tôn trọng ý định
android.media.action.VIDEO_CAMERA
để chạy máy ảnh ở chế độ video như mô tả trong SDK.
Nếu ứng dụng cài đặt trong quá trình triển khai thiết bị cầm tay triển khai chức năng phân tách bằng cách sử dụng tính năng nhúng hoạt động, thì ứng dụng đó sẽ:
- [3.2.3.1/ H-1-1]
PHẢI có một hoạt động xử lý ý định
Settings#ACTION_SETTINGS_ trước_DEEP_LINK_ACTIVITY khi bật chức năng phân tách. Hoạt động PHẢI được bảo vệ bằng
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
và hoạt động PHẢI bắt đầu hoạt động của Ý định được phân tích cú pháp từ Settings#EXTRA_INSTALL_ xen kẽDED_DEEP_LINK_INTENT_URI.
2.2.4. Hiệu suất và sức mạnh
- [8.1/H-0-1] Độ trễ khung hình nhất quán. Độ trễ khung không nhất quán hoặc độ trễ để kết xuất khung KHÔNG PHẢI xảy ra nhiều hơn 5 khung hình trong một giây và nên dưới 1 khung hình trong một giây.
- [8.1/H-0-2] Độ trễ giao diện người dùng. Thiết bị triển khai thiết bị PHẢI đảm bảo trải nghiệm người dùng có độ trễ thấp bằng cách cuộn danh sách các mục nhập danh sách 10K như đã xác định bởi Android Compatibility Test Suite (CTS) in dưới 36 giây.
- [8.1/H-0-3] Chuyển đổi tác vụ. Khi nhiều ứng dụng đã chạy, việc chạy lại một ứng dụng đã chạy sau khi ứng dụng đó PHẢI mất chưa đến 1 giây.
Triển khai thiết bị cầm tay:
- [8.2/H-0-1] PHẢI đảm bảo một tuần tự ghi hiệu suất của ít nhất 5 MB/s.
- [8.2/H-0-2] PHẢI đảm bảo hiệu suất ghi ngẫu nhiên của ít nhất 0,5 MB/s.
- [8.2/H-0-3] PHẢI đảm bảo hiệu suất đọc tuần tự của ít nhất 15 MB/s.
- [8.2/H-0-4] PHẢI đảm bảo hiệu suất đọc ngẫu nhiên của ít nhất 3.5 MB/s.
Nếu phương thức triển khai thiết bị cầm tay bao gồm các tính năng giúp cải thiện tính năng quản lý nguồn điện của thiết bị có trong AOSP hoặc mở rộng các tính năng được đưa vào AOSP, thì chúng:
- [8.3/H-1-1] PHẢI cung cấp thuộc tính tương tác người dùng để bật và tắt tính năng tiết kiệm pin.
- [8.3/H-1-2] PHẢI cung cấp thuộc tính tương tác người dùng để hiển thị tất cả các ứng dụng được miễn trừ từ Chế độ chờ ứng dụng và chế độ tiết kiệm năng lượng Doze.
Triển khai thiết bị cầm tay:
- [8.4/H-0-1] PHẢI cung cấp hồ sơ năng lượng mỗi thành phần mà xác định giá trị tiêu thụ hiện tại cho từng thành phần phần cứng và mức tiêu hao pin gần đúng do các thành phần theo thời gian như được ghi lại trên trang web Dự án nguồn mở Android.
- [8.4/H-0-2] PHẢI report all power consumption values in milliampere hours (mAh).
- [8.4/H-0-3] PHẢI report CPU power
consumption per mỗi process's UID. Dự án nguồn mở Android đáp ứng yêu cầu thông qua việc triển khai mô-đun nhân
uid_cputime
. - [8.4/H-0-4] PHẢI làm cho việc sử dụng năng lượng này có sẵn thông qua
adb shell dumpsys batterystats
lệnh shell cho nhà phát triển ứng dụng. - [8.4/H] NÊN beỔ to the hardware componentchính if possible to attribute hardware component power Usage to an application.
Nếu quá trình triển khai Thiết bị cầm tay bao gồm một màn hình hoặc đầu ra video, thì các phương thức triển khai đó:
- [8.4/H-1-1] PHẢI Honor the
android.intent.action.POWER_USAGE_SUMMARY
intent and display a settings menu that shows this power Usage.
Triển khai thiết bị cầm tay:
- [8.5/H-0-1] PHẢI cung cấp một thuộc tính tương tác người dùng trong trình đơn Cài đặt với khả năng dừng một ứng dụng đang chạy dịch vụ trên nền trước và hiển thị tất cả các ứng dụng có dịch vụ trên nền trước đang hoạt động và thời lượng của mỗi dịch vụ này kể từ khi bắt đầu như được mô tả trong tài liệu SDK.
- Một số ứng dụng CÓ THỂ được miễn trừ khỏi việc bị dừng hoặc được liệt kê trong một thuộc tính tương tác của người dùng như mô tả trong tài liệu SDK.
2.2.5. Mô hình bảo mật
Triển khai thiết bị cầm tay:
- [9.1/H-0-1] NOT allow third-party apps to access the
usage reports via the
android.permission.PACKAGE_USAGE_STATS
permission and Provide a user-access lặp touỷandroid.settings.ACTION_USAGE_ACCESS_SETTINGS
Triển khai thiết bị cầm tay:
- [9.11/H-0-2] PHẢI back up the kho thực hiện triển khai với một môi trường thực thi cách ly.
- [9.11/H-0-3] PHẢI havechẳng hạn như Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA. Dự án nguồn mở Android ngược dòng (AOSP) đáp ứng yêu cầu này bằng cách sử dụng phương thức triển khai Trusty, nhưng một giải pháp khác dựa trên ARM TrustZone hoặc một bên thứ ba đã xem xét phương thức triển khai an toàn của cách ly thích hợp dựa trên trình điều khiển ảo hoá là các phương án thay thế.
- [9.11/H-0-4]{4} perform the lock screen Authentication in the detected generated environment and only when successfully, allow the verification-bound keys to be used. Khóa màn hình credentials PHẢI được lưu trữ theo cách mà cho phép chỉ môi trường thực thi cách ly để thực hiện xác thực màn hình khóa. Dự án nguồn mở Android ngược dòng cung cấp Lớp trừu tượng phần cứng (HAL) cho người trực điện thoại và Trusty (Lớp trừu tượng phần cứng của người trực điện thoại), có thể được dùng để đáp ứng yêu cầu này.
- [9.11/H-0-5] PHẢI support key khỏe where the uỷ signing key isbảo vệ bởi bảo mật phần cứng và ký được thực hiện trong phần cứng bảo mật. The Certificate signed keys NOT be shared across largeSố lượng thiết bị nhằm ngăn chặn các khoá từ được sử dụng làm device identifier. Để đáp ứng yêu cầu này là chia sẻ cùng một khoá chứng thực,trừ phi có ít nhất 100.000 đơn vị của một SKU nhất định được tạo. Nếu có hơn 100.000 đơn vị SKU, thì CÓ THỂ sẽ sử dụng một khoá khác cho mỗi 100.000 đơn vị.
- [9/H-0-1] PHẢI khai báo tính năng ‘android.hardware.security.model.compatible’.
Xin lưu ý rằng nếu đã triển khai thiết bị trên một phiên bản Android trước đó, thì thiết bị đó sẽ được miễn trách nhiệm có kho khoá được hỗ trợ bởi một môi trường thực thi riêng biệt và hỗ trợ quy trình chứng thực khoá, trừ phi thiết bị đó khai báo tính năng android.hardware.fingerprint
đòi hỏi kho khoá được một môi trường thực thi riêng biệt hỗ trợ.
Khi các phương pháp triển khai cho Thiết bị cầm tay hỗ trợ màn hình khoá bảo mật, chúng:
- [9.11/H-1-1] NOT allow the user to choose the SMS timeout, that is a Transition time from theTìm khoá sang trạng thái khoá, as 15 seconds trở xuống.
- [9.11/H-1-2] PHẢI cung cấp user thuộc tính ẩn thông báo và tắt tất cả biểu mẫu xác thực ngoại trừ cho xác thực chính được mô tả trong 9.11.1 Secure Lock Screen. AOSP đáp ứng yêu cầu dưới dạng chế độ khoá.
Nếu hoạt động triển khai Thiết bị cầm tay bao gồm nhiều người dùng và không khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/H-2-1] NOT support restricted profiles, a feature that allowed device owner to manage additional users and their capabilities trên thiết bị. Với hồ sơ bị hạn chế, chủ sở hữu thiết bị có thể nhanh chóng thiết lập các môi trường riêng biệt cho những người dùng khác làm việc, nhờ khả năng quản lý các hạn chế chi tiết hơn trong các ứng dụng có trong các môi trường đó.
Nếu hoạt động triển khai Thiết bị cầm tay bao gồm nhiều người dùng và khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/H-3-1] PHẢI NOT support restricted profiles nhưng PHẢI căn chỉnh với AOSP triển khai của điều khiển to enable /disable other users from access the voice calls and SMS.
Android, thông qua API hệ thống Voice tương tác với dịch vụ hỗ trợ cơ chế phát hiện cụm từ kích hoạt luôn bật một cách bảo mật mà không cần chỉ báo quyền truy cập vào micrô
Nếu các phương thức triển khai Thiết bị cầm tay hỗ trợ API hệ thống HotwordDetectionService
hoặc một cơ chế khác để phát hiện cụm từ kích hoạt mà không chỉ báo quyền truy cập micrô, thì các phương thức triển khai đó:
- [9.8/H-1-1] PHẢI đảm bảo rằng dịch vụ phát hiện từ nóng có thể chỉ truyền dữ liệu đến System hoặc ContentCaptureService
- [9.8/H-1-2] PHẢI đảm bảo rằng dịch vụ phát hiện từ nóng có thể chỉ truyền dữ liệu âm thanh micrô hoặc dữ liệu nguồn gốc từ nó đến máy chủ hệ thống thông qua
HotwordDetectionService
API hoặc đếnContentCaptureService
thông qua APIContentCaptureManager
. - [9.8/H-1-3] KHÔNG ĐƯỢC cung cấp âm thanh micrô dài hơn 30 giây cho một yêu cầu được kích hoạt phần cứng riêng lẻ cho dịch vụ phát hiện từ nóng.
- [9.8/H-1-4] KHÔNG ĐƯỢC cung cấp đệm micrô âm thanh cũ hơn 8 giây cho một yêu cầu riêng lẻ đến dịch vụ phát hiện từ nóng.
- [9.8/H-1-5] PHẢI NOT cung cấp đệm micrô âm thanh cũ hơn 30 giây đến dịch vụ tương tác giọng nói hoặc thực thể tương tự.
- [9.8/H-1-6] KHÔNG ĐƯỢC cho phép hơn 100 byte dữ liệu non-audio được truyền ra khỏi dịch vụ phát hiện từ nóng trên mỗi kết quả từ nóng thành công.
- [9.8/H-1-7] KHÔNG ĐƯỢC cho phép hơn 5 bit dữ liệu được truyền ra khỏi dịch vụ phát hiện từ nóng trên mỗi kết quả từ nóng âm.
- [9.8/H-1-8] PHẢI chỉ cho phép truyền dữ liệu ra khỏi dịch vụ phát hiện từ nóng trên yêu cầu xác thực từ nóng từ máy chủ hệ thống.
- [9.8/H-1-9] PHẢI NOT allow a user-installable application to cung cấp dịch vụ phát hiện từ nóng.
- [9.8/H-1-10] KHÔNG ĐƯỢC hiển thị trong dữ liệu định lượng về giao diện người dùng về micrô theo dịch vụ phát hiện từ nóng.
- [9.8/H-1-11] PHẢI ghi số byte được bao gồm trong mỗi truyền từ nóng phát hiện dịch vụ để cho phép kiểm tra khả năng kiểm tra cho các nhà nghiên cứu bảo mật.
- [9.8/H-1-12] PHẢI hỗ trợ chế độ gỡ lỗi mà ghi lại nội dung thô của mọi nội dung truyền từ dịch vụ phát hiện từ nóng để cho phép khả năng kiểm tra cho các nhà nghiên cứu bảo mật.
- [9.8/H-1-14] PHẢI display the microphone only, as descriptions in section 9.8.2, when a a successfully keywords results isbroadcast to the voice compatibility service or chẳng hạn
- [9.8/H-SR-1] Are trì hoãn 24 để thông báo cho người dùng trước khi cài đặt một ứng dụng là nhà cung cấp của dịch vụ phát hiện từ nóng.
- [9.8/H-SR-2] Are trì hoãn phát hiện không cho phép để không cho phép truyền dữ liệu không có cấu trúc ra khỏi dịch vụ phát hiện từ nóng.
- [9.8/H-SR-3] Are trì hoãn việc khởi động lại quy trình lưu trữ các sự kiện phát hiện từ nóng ít nhất một lần mỗi giờ hoặc mỗi 30 sự kiện phần cứng-kích hoạt, tuỳ theo sự kiện nào đến trước.
Nếu quá trình triển khai thiết bị bao gồm một ứng dụng sử dụng API hệ thống HotwordDetectionService
hoặc cơ chế tương tự để phát hiện cụm từ kích hoạt mà không chỉ báo mức sử dụng micrô, thì ứng dụng đó sẽ:
- [9.8/H-2-1] PHẢI cung cấp thông báo rõ ràng cho người dùng đối với mỗi cụm từ từ nóng được hỗ trợ.
- [9.8/H-2-2] PHẢI NOT bảo vệ dữ liệu âm thanh thô, hoặc dữ liệu nguồn gốc từ nó, thông qua dịch vụ phát hiện từ nóng.
- [9.8/H-2-3] KHÔNG ĐƯỢC truyền từ dịch vụ phát hiện từ nóng, dữ liệu âm thanh, dữ liệu có thể được dùng để tạo lại (toàn bộ hoặc một phần) âm thanh, hoặc nội dung âm thanh không liên quan đến chính cụm từ kích hoạt, ngoại trừ
ContentCaptureService
.
Nếu các phương thức triển khai Thiết bị cầm tay khai báo android.hardware.microphone
, thì các phương thức triển khai đó:
- [9.8.2/H-4-1] PHẢI hiển thị chỉ báo micrô khi
một ứng dụng đang truy cập dữ liệu âm thanh từ micrô, nhưng không khi
micrô được truy cập bởi
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
hoặc các ứng dụng giữ vai trò được gọi ra trong phần 9.1 với mã nhận dạng CDD [C-4-X]. - [9.8.2/H-4-2] PHẢI display the list of Recent and Active
apps using microphone as return from
PermissionManager.getIndicatorAppOpUsageData()
, cùng với mọi thông báo phân bổ được liên kết với chúng.
Nếu các phương thức triển khai Thiết bị cầm tay khai báo android.hardware.camera.any
, thì các phương thức triển khai đó:
- [9.8.2/H-5-1] PHẢI hiển thị chỉ báo máy ảnh khi ứng dụng đang truy cập dữ liệu máy ảnh trực tiếp, nhưng không khi máy ảnh chỉ được truy cập bởi ứng dụng(các) giữ vai trò được gọi ra trong section 9.1 with CDD identifier [C-4-X].
- [9.8.2/H-5-2] NOT display Recent and Active apps using
camera as return from
PermissionManager.getIndicatorAppOpUsageData()
, along with any Attribution message linked with they.
2.2.6. Khả năng tương thích với công cụ và tuỳ chọn cho nhà phát triển
Triển khai thiết bị cầm tay (* Không áp dụng cho Máy tính bảng):
- [6.1/H-0-1]* PHẢI support the shell Command
cmd testharness
.
Triển khai thiết bị cầm tay (* Không áp dụng cho Máy tính bảng):
- Perfetto
- [6.1/H-0-2]*{4} khám phá một
/system/bin/perfetto
binary to the shell user mà cmdline tuân thủ tài liệu perfetto. - [6.1/H-0-3]* The perfetto binary PHẢI Accept as input a protobuf config thatcompliance with the schema specified in the perfetto documents.
- [6.1/H-0-4]* The perfetto binary PHẢI write as output a protobuf trace that instead with the schema specified in Tài liệu về perfetto.
- [6.1/H-0-5]* PHẢI cung cấp, thông qua nhị phân perfetto, ít nhất là các nguồn dữ liệu được mô tả trong tài liệu về perfetto.
- [6.1/H-0-6]* The perfetto traced daemon PHẢI be
enabled by mặc định (thuộc tính hệ thống
persist.traced.enable
).
- [6.1/H-0-2]*{4} khám phá một
2.2.7. Lớp học về hiệu suất nội dung nghe nhìn cầm tay
Xem Mục 7.11 để biết định nghĩa về lớp hiệu suất nội dung đa phương tiện.
2.2.7.1. Nội dung nghe nhìn
Nếu các phương thức triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.S
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:
- PHẢI đáp ứng các yêu cầu đa phương tiện được liệt kê trong android 12 CDD section 2.2.7.1.
Nếu các phương thức triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.T
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:
- [5.1/H-1-1] PHẢI quảng cáo số lượng tối đa của bộ giải mã video phần cứng
có thể được chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-2] PHẢI support 6Instance of hardware video pastedr session (AVC, HEVC, VP9, AV1 trở lên) in bất kỳ tổ hợp bộ mã hoá và giải mã chạy đồng thời nào ở độ phân giải 1080p resolve@30 fps.
- [5.1/H-1-3] PHẢI quảng cáo số lượng tối đa của bộ mã hoá video phần cứng
có thể được chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-4] PHẢI support 6Instance of hardware video Encodersessions (AVC, HEVC, VP9, AV1 trở lên) trong bất kỳ tổ hợp bộ mã hoá và giải mã nào chạy đồng thời ở độ phân giải 1080p issue@30fps.
- [5.1/H-1-5] PHẢI quảng cáo số lượng tối đa của bộ mã hoá video phần cứng và giải mã phiên có thể chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-6] PHẢI support 6Instance of hardware video solutionr and hardware video Encoder session (AVC, HEVC, VP9, AV1 or tức sau đó) trong bất kỳ bộ mã hoá và giải mã kết hợp nào chạy đồng thời ở độ phân giải 1080p@30fps.
- [5.1/H-1-7] NOT have a codec initialization latency of 40 ms or below for a 1080p or below video encryption session for all hardware video Encoders when under load. Quá trình tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video từ 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi động tính năng ghi âm thanh và video 1080p. Đối với bộ mã hoá và giải mã Dolby Vision, độ trễ khởi chạy bộ mã hoá (codec) PHẢI từ 50 mili giây trở xuống.
- [5.1/H-1-8] PHẢI have a codec restart latency of 30 ms or more for a 128 kb or lower web rates audio encryption session for all audio Encoders when under tải. Tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy ghi âm thanh và video 1080p.
- [5.1/H-1-9] NOT support 2Instance ofbảo mật video bộ giải mã video phiên (AVC, HEVC, VP9, AV1 trở lên) trong bất kỳ tổ hợp bộ mã hoá và giải mã nào đang chạy đồng thời ở độ phân giải 1080p issue@30 fps.
- [5.1/H-1-10] PHẢI support 3instance of non-secure video hardware formatr sessions together with 1Instance ofbảo mật video bộ giải mã phiên (4Instance total) (AVC, HEVC, VP9, AV1 or extra) in any codec combination Running concurrent at 1080p issue@30fps.
- [5.1/ H-1-11] PHẢI hỗ trợ bộ giải mã bảo mật cho mọi phần cứng AVC, HEVC, VP9 hoặc AV1 giải mã trên thiết bị.
- [5.1/H-1-12] PHẢI have a codec huỷ latency of 40 ms or removed for a 1080p or below video videos Kotlin session for all hardware video solutionrs when under load. Quá trình tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy phát âm thanh-video 1080p. Đối với bộ mã hoá và giải mã Dolby Vision, độ trễ khởi tạo bộ mã hoá (codec) PHẢI từ 50 mili giây trở xuống.
- [5.1/H-1-13] PHẢI have a Code existing latency of 30 ms or least for a 128 kb or lower rates audio® solution session for all audio solutionrs when under load. Tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy phát âm thanh video 1080p.
- [5.1/H-1-14] PHẢI hỗ trợ bộ giải mã phần cứng AV1 Main 10, Level 4.1.
- [5.1/H-SR-1] Are trì hoãn 1 danh sách sưu tầm các phim Grain for AV1 hardwaredecoder.
- [5.1/H-1-15] PHẢI có ít nhất 1 bộ giải mã video phần cứng hỗ trợ 4K60.
- [5.1/H-1-16] PHẢI có ít nhất 1 bộ mã hoá video phần cứng hỗ trợ 4K60.
- [5.3/H-1-1] PHẢI NOT drop more than 1 frame in 10 seconds (i.e least 0.167 percent framedrop) for a 1080p 60 fps video session underload. Tải được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng, cũng như phát âm thanh AAC 128 kb/giây.
- [5.3/H-1-2] KHÔNG ĐƯỢC thả hơn 1 khung hình trong 10 giây trong khi thay đổi độ phân giải video trong một phiên video 60 khung hình/giây khi tải. Tải được định nghĩa là một phiên chuyển mã chỉ dành cho video từ 1080p sang 720p đồng thời bằng cách sử dụng bộ mã hoá và giải mã video phần cứng, cũng như phát âm thanh AAC 128 kb/giây.
- [5.6/H-1-1] PHẢI có độ trễ nhấn-to-tone là 80 mili giây trở xuống bằng cách sử dụng kiểm thử nhấn để chỉnh sắc độ Oboe của Oboe hoặc kiểm thử nhấn để âm sắc của Trình xác minh CTS.
- [5.6/H-1-2] PHẢI have around-trip audio latency of 80 milliseconds or least over at least one supported data path.
- [5.6/H-1-3] PHẢI support >=24-bit audio for stereo output over 3.5 mm audio
jacks if current and over USB audio if supported through the
en lui data path for low latency and streaming configurations. Đối với cấu hình độ trễ thấp, ứng dụng nên sử dụng AAudio ở chế độ gọi lại độ trễ thấp. Đối với cấu hình truyền trực tuyến, ứng dụng nên sử dụng Java AudioTrack. Trong cả cấu hình độ trễ thấp và cấu hình truyền trực tuyến, bồn lưu trữ đầu ra HAL phải chấp nhận
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
hoặcAUDIO_FORMAT_PCM_FLOAT
cho định dạng đầu ra mục tiêu. - [5.6/H-1-4] PHẢI support >=4 channel USB audio devices (This is used by DJ controllers for PreviewBài hát).
- [5.6/H-1-5] PHẢI support class creatives MIDI devices and Khai báo cờ tính năng MIDI.
- [5.7/H-1-2] PHẢI support
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
with the below content Nhắm giải mã khả năng.
Kích thước mẫu tối thiểu | 4 MiB |
Số lượng mẫu phụ tối thiểu – H264 hoặc HEVC | 32 |
Số lượng mẫu con tối thiểu – VP9 | 9 |
Số lượng mẫu con tối thiểu – AV1 | 288 |
Dung lượng bộ nhớ đệm mẫu phụ tối thiểu | 1 MiB |
Dung lượng vùng đệm mã hoá chung tối thiểu | 500 KiB |
Số phiên đồng thời tối thiểu | 30 |
Số lượng khoá tối thiểu mỗi phiên | 20 |
Tổng số khoá tối thiểu (tất cả các phiên) | 80 |
Tổng số khoá DRM tối thiểu (tất cả các phiên) | 6 |
Kích thước thư | 16 KiB |
Khung hình được giải mã mỗi giây | 60 khung hình/giây |
2.2.7.2. Camera
Nếu các phương thức triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.S
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:
- PHẢI đáp ứng các yêu cầu của máy ảnh được liệt kê trong android 12 CDD section 2.2.7.2.
Nếu các phương thức triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.T
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:
- [7.5/H-1-1] NOT have a primary front surface camera with aHD of at least 12 megapixels supported video capture at 4k@30fps. Máy ảnh mặt sau chính là máy ảnh mặt sau có mã nhận dạng máy ảnh thấp nhất.
- [7.5/H-1-2] PHẢI have a primary pre surface camera with a segments of at least 5 megapixels and support video capture at 1080p@30fps. Máy ảnh mặt trước chính là máy ảnh mặt trước có mã nhận dạng máy ảnh thấp nhất.
- [7.5/H-1-3] PHẢI support
android.info.supportedHardwareLevel
property asFULL
or Màu video trở lại chính vàLIMITED
hoặc tốt hơn cho máy ảnh chính. - [7.5/H-1-4] PHẢI hỗ trợ
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
for cả primary cameras. - [7.5/H-1-5] PHẢI have camera2 JPEG xoá latency < 1000 ms for 1080pen issue as Measure by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for the primary characters (3000K) [7.5/H-1-5]
- [7.5/H-1-6] PHẢI have camera2 boot latency (open camera to first review frame) < 500 ms as Measure by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for all primary templates.
- [7.5/H-1-8] PHẢI support
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
andandroid.graphics.ImageFormat.RAW_SENSOR
for the primary back camera. - [7.5/H-1-9] PHẢI have a front-au camera primary camerasupport 720p or 1080p @ 240fps.
- [7.5/H-1-10] PHẢI have min ZOOM_RATIO < 1.0 for the primary camera if there là một camera siêu rộng RGB hướng về cùng một hướng.
- [7.5/H-1-11] PHẢI triển khai đồng thời front-back streaming trên máy ảnh chính.
- [7.5/H-1-12] PHẢI support
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
for the primary back camera. - [7.5/H-1-13] NOT support
LOGICAL_MULTI_CAMERA
Cách cho máy ảnh chính phía sau nếu có hơn 1 máy ảnh phía sau RGB. - [7.5/H-1-14] PHẢI support
STREAM_USE_CASE
feature for cả primary front and primary back camera.
2.2.7.3. Phần cứng
Nếu các hoạt động triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.S
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:
- PHẢI đáp ứng các yêu cầu phần cứng được liệt kê trong android 12 CDD section 2.2.7.3.
Nếu các hoạt động triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.T
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:
- [7.1.1.1/H-2-1] PHẢI có độ phân giải màn hình tối thiểu là 1080p.
- [7.1.1.3/H-2-1] PHẢI có mật độ màn hình ít nhất 400 dpi.
- [7.6.1/H-2-1] PHẢI có ít nhất 8 GB bộ nhớ vật lý.
2.2.7.4. Hiệu suất
Nếu các hoạt động triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.S
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:
- PHẢI đáp ứng các yêu cầu về hiệu suất được liệt kê trong android 12 CDD section 2.2.7.4.
Nếu các hoạt động triển khai Thiết bị cầm tay trả về android.os.Build.VERSION_CODES.T
cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:
- [8.2/H-1-1] PHẢI đảm bảo hiệu suất ghi tuần tự tối thiểu 125 MB/s.
- [8.2/H-1-2] PHẢI đảm bảo hiệu suất ghi ngẫu nhiên ít nhất 10 MB/s.
- [8.2/H-1-3] PHẢI đảm bảo hiệu suất đọc tuần tự tối thiểu 250 MB/s.
- [8.2/H-1-4] PHẢI đảm bảo hiệu suất đọc ngẫu nhiên ít nhất 40 MB/s.
2.3. Yêu cầu về truyền hình
Thiết bị Android TV tức là cách triển khai thiết bị Android là một giao diện giải trí để xem nội dung nghe nhìn kỹ thuật số, phim, trò chơi, ứng dụng và/hoặc truyền hình trực tuyến cho người dùng ngồi cách khoảng 3 mét (tức là "tựa lưng" hoặc "giao diện người dùng 3 mét").
Quá trình triển khai thiết bị Android được phân loại là TV nếu đáp ứng tất cả tiêu chí sau:
- Đã cung cấp một cơ chế để điều khiển từ xa giao diện người dùng được kết xuất trên màn hình có thể cách người dùng 10 mét.
- Có màn hình nhúng có chiều dài đường chéo lớn hơn 24 inch HOẶC có một cổng đầu ra video, chẳng hạn như VGA, HDMI, DisplayPort hoặc cổng không dây để hiển thị.
Các yêu cầu bổ sung trong phần còn lại của phần này dành riêng cho việc triển khai thiết bị Android TV.
2.3.1. Phần cứng
Triển khai thiết bị TV:
- [7.2.2/T-0-1] PHẢI hỗ trợ D-pad.
- [7.2.3/T-0-1] PHẢI cung cấp các hàm Home and Back
- [7.2.3/T-0-2] PHẢI send cả the regular and long press
event of the Back function (
KEYCODE_BACK
) to theforeground application. - [7.2.6.1/T-0-1] PHẢI include support for gamecontrollers và khai báo cờ tính năng
android.hardware.gamepad
. - [7.2.7/T] NÊN cung cấp điều khiển từ xa mà người dùng có thể truy cập non-Touch navigation và core navigation keys input.
Nếu hoạt động triển khai Thiết bị truyền hình bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/T-1-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
- [7.3.4/T-1-2] PHẢI be compatibility of Measurement changes up to 1000degree per seconds.
Triển khai thiết bị TV:
- [7.4.3/T-0-1] PHẢI support Bluetooth and Bluetooth LE.
- [7.6.1/T-0-1] PHẢI have at least 4 GB of non-volatile storage available for application private data (a.k.a. "/data" segments).
Nếu quá trình triển khai Thiết bị TV có một cổng USB hỗ trợ chế độ máy chủ, thì các phương thức triển khai đó:
- [7.5.3/T-1-1] PHẢI include support for an external camera that connections through this USB logo but is notnhất buộc luôn được kết nối.
Nếu quá trình triển khai thiết bị TV là 32 bit:
[7.6.1/T-1-1] The Memory available to the kernel and userspace PHẢI be at least 896MB if any of the following segments is used:
- 400dpi trở lên đối với màn hình nhỏ/bình thường
- xhdpi trở lên trên màn hình lớn
- tvdpi trở lên trên màn hình cực lớn
Nếu quá trình triển khai thiết bị TV là 64 bit:
[7.6.1/T-2-1] The Memory available to the kernel and userspace PHẢI be at least 1280MB if any of the following segments are used:
- 400dpi trở lên đối với màn hình nhỏ/bình thường
- xhdpi trở lên trên màn hình lớn
- tvdpi trở lên trên màn hình cực lớn
Lưu ý rằng "bộ nhớ có sẵn cho nhân và không gian người dùng" ở trên đề cập đến dung lượng bộ nhớ được cung cấp ngoài mọi bộ nhớ đã dành riêng cho các thành phần phần cứng như radio, video, v.v. không thuộc sự kiểm soát của nhân hệ điều hành trên các quá trình triển khai thiết bị.
Triển khai thiết bị TV:
- [7.8.1/T] PHẢI bao gồm micrô.
- [7.8.2/T-0-1] PHẢI have an audio output and Khai báo
android.hardware.audio.output
.
2.3.2. Nội dung đa phương tiện
truyền hình thiết bị triển khai PHẢI hỗ trợ âm thanh sau đây mã hoá và giải mã định dạng và làm cho chúng khả dụng cho các ứng dụng của bên thứ ba:
- [5.1/T-0-1] Cấu hình MPEG-4 AAC (AAC LC)
- [5.1/T-0-2] Cấu hình MPEG-4 HE AAC (AAC+)
- [5.1/T-0-3] AAC ELD (AAC độ trễ thấp nâng cao)
truyền hình thiết bị triển khai PHẢI hỗ trợ các định dạng mã hoá video sau và cung cấp chúng cho các ứng dụng của bên thứ ba:
Triển khai thiết bị TV:
- [5.2.2/T-SR-1] Arefaq Vui lòng để hỗ trợ H.264 encryption of 720p and 1080p issue at 30 frames per seconds.
truyền hình thiết bị triển khai PHẢI hỗ trợ các định dạng giải mã video sau và cung cấp chúng cho các ứng dụng của bên thứ ba:
- [5.3.3/T-0-1] MPEG-4 SP
- [5.3.4/T-0-2] H.264 AVC
- [5.3.5/T-0-3] H.265 HEVC
- [5.3.6/T-0-4] VP8
- [5.3.7/T-0-5] VP9
- [5.3.1/T-0-6] MPEG-2
truyền hình thiết bị triển khai phải hỗ trợ MPEG-2 giải mã, như chi tiết trong Mục 5.3.1, at standard video frame rates andResolution up to and bao gồm:
- [5.3.1/T-1-1] HD 1080p ở tốc độ 29,97 khung hình/giây với Main Profile High Level.
- [5.3.1/T-1-2] HD 1080i ở tốc độ 59,94 khung hình/giây với Main Profile High Level. Chúng PHẢI khử xen kẽ video MPEG-2 xen kẽ và cung cấp video đó cho các ứng dụng của bên thứ ba.
truyền hình thiết bị triển khai phải hỗ trợ H.264 giải mã, như chi tiết trong Mục 5.3.4, at standard video frame rates and problems up to and bao gồm:
- [5.3.4/T-1-1] HD 1080p ở tốc độ 60 khung hình/giây với Hồ sơ cơ sở
- [5.3.4/T-1-2] HD 1080p ở tốc độ 60 khung hình/giây với Cấu hình chính
- [5.3.4/T-1-3] HD 1080p ở tốc độ 60 khung hình/giây với Cấu hình cao cấp 4.2
truyền hình thiết bị triển khai với H.265 phần bộ giải mã PHẢI support H.265 giải mã, như chi tiết trong Mục 5.3.5, at tiêu chuẩn video tốc độ khung hình và độ phân giải lên đến và bao gồm:
- [5.3.5/T-1-1] HD 1080p ở tốc độ 60 khung hình/giây với cấu hình chính cấp 4.1
Nếu quá trình triển khai Thiết bị TV bằng bộ giải mã phần cứng H.265 hỗ trợ giải mã H.265 và cấu hình giải mã UHD, thì các quy trình đó:
- [5.3.5/T-2-1] PHẢI hỗ trợ hồ sơ giải mã UHD ở tốc độ 60 khung hình/giây với hồ sơ Main10 Level 5 Main Tier
truyền hình thiết bị triển khai PHẢI supportV8 giải mã, như chi tiết trong Mục 5.3.6, at standard video frame rates andResolution up to and bao gồm:
- [5.3.6/T-1-1] Cấu hình giải mã HD 1080p ở tốc độ 60 khung hình/giây
truyền hình thiết bị triển khai với VP9 phần cứng giải mã PHẢI support VP9 giải mã, như chi tiết trong Mục 5.3.7, ở tốc độ khung hình video tiêu chuẩn và độ phân giải lên đến và bao gồm:
- [5.3.7/T-1-1] HD 1080p ở tốc độ 60 khung hình/giây với cấu hình 0 (độ sâu màu 8 bit)
Nếu quá trình triển khai thiết bị TV với bộ giải mã phần cứng VP9 hỗ trợ giải mã VP9 và cấu hình giải mã UHD, thì các quy trình đó:
- [5.3.7/T-2-1] PHẢI hỗ trợ UHD giải mã hồ sơ ở tốc độ 60 khung hình/giây với cấu hình 0 (8 bit color depth).
- [5.3.7/T-SR1] Are Internet Sử dụng để hỗ trợ các UHD giải mã hồ sơ at 60 frames per seconds with profile 2 (10 bit color depth).
Triển khai thiết bị TV:
- [5.5/T-0-1] PHẢI include support for system Master Volume and digital audio output volume attenuation on supported Hủy, ngoại trừ đầu ra âm thanh được nén (nơi không giải mã âm thanh nào được thực hiện trên thiết bị).
Nếu các phương thức triển khai thiết bị TV không có màn hình tích hợp sẵn mà hỗ trợ màn hình ngoài được kết nối qua HDMI, thì các phương thức triển khai đó:
- [5.8/T-0-1] PHẢI set the HDMI output mode to select the đám chậm nhất độ phân giải có thể được hỗ trợ với hoặc a 50Hz or 60Hz refresh rate.
- [5.8/T-SR-1] Are trì hoãn 1 để cung cấp một người dùng có thể cấu hình HDMI Refresh rate launch (bộ chọn tốc độ làm mới HDMI).
- [5.8] NÊN set the HDMI output mode refresh rate thành 50Hz or 60Hz, Tùy thuộc vào tốc độ làm mới video cho vùng mà thiết bị được bán trong.
Nếu các phương thức triển khai thiết bị TV không có màn hình tích hợp sẵn mà hỗ trợ màn hình ngoài được kết nối qua HDMI, thì các phương thức triển khai đó:
- [5.8/T-1-1] PHẢI hỗ trợ HDCP 2.2.
Nếu các phương thức triển khai Thiết bị TV không hỗ trợ giải mã UHD mà hỗ trợ màn hình ngoài được kết nối qua HDMI, thì các thiết bị đó:
- [5.8/T-2-1] PHẢI hỗ trợ HDCP 1.4
2.3.3. Phần mềm
Triển khai thiết bị TV:
- [3/T-0-1] PHẢI khai báo các tính năng
android.software.leanback
vàandroid.hardware.type.television
. - [3.2.3.1/T-0-1] PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ có trình xử lý ý định, cho tất cả các mẫu bộ lọc ý định công khai được xác định bởi các ý định của ứng dụng sau được liệt kê tại đây.
- [3.4.1/T-0-1] NOT cung cấp a complete
implementation of the
android.webkit.Webview
API.
Nếu các hoạt động triển khai thiết bị Android TV hỗ trợ màn hình khoá,thì các thiết bị đó:
- [3.8.10/T-1-1] PHẢI display the Lock screen Notifications bao gồm cả Media Notification Template.
Triển khai thiết bị TV:
- [3.8.14/T-SR-1] AreĐể nhà phát triển được hỗ trợ chế độ hình ảnh-in-hình (PIP) nhiều cửa sổ.
- [3.10/T-0-1] PHẢI support third-party accessibilityservices.
- [3.10/T-SR-1] AreĐể nhà phát triển khuyến khích bạn tải trước các dịch vụ hỗ trợ tiếp cận trên thiết bị có thể so sánh với hoặc vượt quá chức năng của tính năng Tiếp cận chuyển đổi và TalkBack (cho các ngôn ngữ được hỗ trợ bởi các dịch vụ hỗ trợ tiếp cận văn bản được cài đặt sẵn) như được cung cấp trong dự án nguồn mở TalkBack.
Nếu các hoạt động triển khai thiết bị TV báo cáo tính năng android.hardware.audio.output
, thì tính năng này sẽ:
- [3.11/T-SR-1] Are Internet REVIEW to include a TTS engine hỗ trợ các ngôn ngữ có sẵn trên thiết bị.
- [3.11/T-1-1] PHẢI support installed of third-party TTSCông cụ.
Triển khai thiết bị TV:
- [3.12/T-0-1] PHẢI hỗ trợ TV Input Framework.
2.3.4. Hiệu suất và sức mạnh
- [8.1/T-0-1] Độ trễ khung hình nhất quán. Độ trễ khung không nhất quán hoặc độ trễ để kết xuất khung KHÔNG PHẢI xảy ra nhiều hơn 5 khung hình trong một giây và nên dưới 1 khung hình trong một giây.
- [8.2/T-0-1] PHẢI đảm bảo một tuần tự ghi hiệu suất của ít nhất 5MB/s.
- [8.2/T-0-2] PHẢI đảm bảo hiệu suất ghi ngẫu nhiên của ít nhất 0,5MB/s.
- [8.2/T-0-3] PHẢI đảm bảo một tuần tự đọc hiệu suất của ít nhất 15MB/s.
- [8.2/T-0-4] PHẢI đảm bảo hiệu suất đọc ngẫu nhiên của ít nhất 3.5MB/s.
Nếu phương thức triển khai thiết bị TV có các tính năng giúp cải thiện tính năng quản lý nguồn điện của thiết bị có trong AOSP hoặc mở rộng các tính năng có trong AOSP, thì chúng:
- [8.3/T-1-1] PHẢI cung cấp thuộc tính tương tác người dùng để bật và tắt tính năng tiết kiệm pin.
Nếu quá trình triển khai thiết bị TV không có pin, thì thiết bị đó sẽ:
- [8.3/T-1-2] PHẢI đăng ký thiết bị dưới dạng thiết bị không pin như mô tả trong Hỗ trợ thiết bị không pin.
Nếu quá trình triển khai thiết bị TV có pin, thì thiết bị đó:
- [8.3/T-1-3] PHẢI cung cấp thuộc tính tương tác người dùng để hiển thị tất cả các ứng dụng được miễn trừ từ Chế độ chờ ứng dụng và chế độ tiết kiệm năng lượng Doze.
Triển khai thiết bị TV:
- [8.4/T-0-1] PHẢI cung cấp một cấu hình năng lượng mỗi thành phần mà xác định giá trị tiêu thụ hiện tại cho từng thành phần phần cứng và mức tiêu hao pin gần đúng do các thành phần theo thời gian như được ghi lại trên trang web Dự án nguồn mở Android.
- [8.4/T-0-2] PHẢI report all power consumption values in milliampere hours (mAh).
- [8.4/T-0-3] PHẢI report CPU power
consumption per mỗi process's UID. Dự án nguồn mở Android đáp ứng yêu cầu thông qua việc triển khai mô-đun nhân
uid_cputime
. - [8.4/T] kích hoạt nên được quy cho chính thành phần phần cứng nếu không thể phân bổ mức sử dụng năng lượng thành phần phần cứng cho một ứng dụng.
- [8.4/T-0-4] PHẢI make this power Usage
available via the
adb shell dumpsys batterystats
shell Command to the app developer.
2.3.5. Mô hình bảo mật
Triển khai thiết bị TV:
- [9.11/T-0-1] PHẢI back up the kho thực hiện triển khai với một môi trường thực thi cách ly.
- [9.11/T-0-2] PHẢI havechẳng hạn như RSA, AES, ECDSA and HMAC Cryptographic libraries and MD5, SHA1, and SHA-2 family hash functions toQuáh support the Android Keystore system's supported Các thuật toán in an khu vực đó được cách ly an toàn từ mã chạy trên nhân hệ điều hành và ở trên. Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA. Dự án nguồn mở Android ngược dòng (AOSP) đáp ứng yêu cầu này bằng cách sử dụng phương thức triển khai Trusty, nhưng một giải pháp khác dựa trên ARM TrustZone hoặc một bên thứ ba đã xem xét phương thức triển khai an toàn của cách ly thích hợp dựa trên trình điều khiển ảo hoá là các phương án thay thế.
- [9.11/T-0-3]{4} perform the khoá màn hình xác thực trong môi trường thực thi cách ly và chỉ khi thành công, cho phép các khoá xác thực-giới hạn được sử dụng. Khóa màn hình credentials PHẢI được lưu trữ theo cách mà cho phép chỉ môi trường thực thi cách ly để thực hiện xác thực màn hình khóa. Dự án nguồn mở Android ngược dòng cung cấp Lớp trừu tượng phần cứng (HAL) cho người trực điện thoại và Trusty (Lớp trừu tượng phần cứng của người trực điện thoại), có thể được dùng để đáp ứng yêu cầu này.
- [9.11/T-0-4] PHẢI support key tròn where the certification key isBảo vệ phần cứng và ký được thực hiện trong bảo mật phần cứng. The Certificate signed keys NOT be shared across largeSố lượng thiết bị nhằm ngăn chặn các khoá từ được sử dụng làm device identifier. Để đáp ứng yêu cầu này là chia sẻ cùng một khoá chứng thực,trừ phi có ít nhất 100.000 đơn vị của một SKU nhất định được tạo. Nếu có hơn 100.000 đơn vị SKU, thì CÓ THỂ sẽ sử dụng một khoá khác cho mỗi 100.000 đơn vị.
- [9/T-0-1] PHẢI khai báo tính năng "android.hardware.security.model.compatible'.
Xin lưu ý rằng nếu đã triển khai thiết bị trên một phiên bản Android trước đó, thì thiết bị đó sẽ được miễn trách nhiệm có kho khoá được hỗ trợ bởi một môi trường thực thi riêng biệt và hỗ trợ quy trình chứng thực khoá, trừ phi thiết bị đó khai báo tính năng android.hardware.fingerprint
đòi hỏi kho khoá được một môi trường thực thi riêng biệt hỗ trợ.
Nếu các phương pháp triển khai Thiết bị TV hỗ trợ màn hình khoá an toàn, thì các phương pháp triển khai đó:
- [9.11/T-1-1] PHẢI allow the user to choose the Sleep timeout for Transition from theunlock to the Chrome state, with a least allowable timeout up to 15 seconds or least.
Nếu hoạt động triển khai Thiết bị TV bao gồm nhiều người dùng và không khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/T-2-1] NOT support limited profiles, a feature that allowed device owner to manage additional users and their capabilities trên thiết bị. Với hồ sơ bị hạn chế, chủ sở hữu thiết bị có thể nhanh chóng thiết lập các môi trường riêng biệt cho những người dùng khác làm việc, nhờ khả năng quản lý các hạn chế chi tiết hơn trong các ứng dụng có trong các môi trường đó.
Nếu quá trình triển khai Thiết bị TV bao gồm nhiều người dùng và khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/T-3-1] PHẢI NOT support restricted profiles nhưng PHẢI căn chỉnh với AOSP triển khai của điều khiển to enable /disable other users fromaccess the voice calls and SMS.
Nếu quá trình triển khai Thiết bị truyền hình khai báo android.hardware.microphone
, thì chúng:
- [9.8.2/T-4-1] PHẢI hiển thị chỉ báo micrô khi một ứng dụng đang truy cập dữ liệu âm thanh từ micrô, nhưng không phải khi micrô chỉ được truy cập bằng HotwordDetectionService, NGUỒN_AdSize, ContentCaptureService, hoặc các ứng dụng giữ vai trò được gọi ra trong Mục 9.1 Quyền có mã nhận dạng CDD C-3-X].
- [9.8.2/T-4-2] KHÔNG ĐƯỢC ẩn chỉ báo micrô cho các ứng dụng hệ thống có giao diện người dùng hiển thị hoặc tương tác trực tiếp người dùng.
Nếu quá trình triển khai Thiết bị truyền hình khai báo android.hardware.camera.any
, thì chúng:
- [9.8.2/T-5-1] PHẢI hiển thị chỉ báo máy ảnh khi một ứng dụng đang truy cập dữ liệu máy ảnh trực tiếp, nhưng không khi máy ảnh chỉ được truy cập bởi ứng dụng giữ vai trò được gọi ra trong Mục 9.1 Quyền với mã nhận dạng CDD [C-3-X].
- [9.8.2/T-5-2] KHÔNG ĐƯỢC ẩn chỉ báo máy ảnh cho các ứng dụng hệ thống có giao diện người dùng hiển thị hoặc tương tác trực tiếp của người dùng.
2.3.6. Khả năng tương thích với công cụ và tuỳ chọn cho nhà phát triển
Triển khai thiết bị TV:
- Perfetto
- [6.1/T-0-1] PHẢIlớp cạnh tính toán
/system/bin/perfetto
binary to the shell user mà cmdline tuân thủ theo the perfetto documents. - [6.1/T-0-2] Các perfetto binary PHẢI chấp nhận như input a protobuf config that tuân thủ lược đồ được xác định trong tài liệu perfetto.
- [6.1/T-0-3] The perfetto binary PHẢI write as output a protobuf trace that must with the schema specified in Tài liệu perfetto.
- [6.1/T-0-4] PHẢI cung cấp, thông qua nhị phân perfetto, ít nhất là nguồn dữ liệu được mô tả trong tài liệu về perfetto.
- [6.1/T-0-1] PHẢIlớp cạnh tính toán
2.4. Yêu cầu đối với đồng hồ
Thiết bị Android Watch đề cập đến một cách triển khai thiết bị Android để đeo trên cơ thể, có thể là trên cổ tay.
Các hoạt động triển khai trên thiết bị Android được phân loại là Đồng hồ nếu đáp ứng tất cả tiêu chí sau:
- Có một màn hình với chiều dài đường chéo vật lý trong khoảng từ 1,1 đến 2,5 inch.
- Có cơ chế đeo trên cơ thể.
Các yêu cầu bổ sung trong phần còn lại này dành riêng cho việc triển khai thiết bị Đồng hồ Android.
2.4.1. Phần cứng
Triển khai thiết bị đồng hồ:
[7.1.1.1/W-0-1] PHẢI có màn hình với kích thước đường chéo vật lý trong khoảng từ 1.1 đến 2.5 inch.
[7.2.3/W-0-1] PHẢI have the Home function available to the user, and the Back function except for when is in
UI_MODE_TYPE_WATCH
.[7.2.4/W-0-1] PHẢI hỗ trợ đầu vào màn hình cảm ứng.
[7.3.1/W-SR-1] Are mã hóa PRO mục tiêu để bao gồm một 3-axis accelerometer.
Nếu quá trình triển khai Thiết bị đồng hồ có cả bộ thu GPS/GNSS và báo cáo chức năng cho các ứng dụng thông qua cờ tính năng android.hardware.location.gps
, thì chúng:
- [7.3.3/W-1-1] NOT report GNSS metrics, as soon as they are found, coi đây là tính năng vị trí được tính toán từ GPS/GNSS chưa được báo cáo.
- [7.3.3/W-1-2] PHẢI báo cáo GNSS pseudoranges and pseudorangeRirate, that, in open-sky conditions sau khi xác định vị trí, trong khi cố định
Nếu quá trình triển khai Thiết bị đồng hồ bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/W-2-1] PHẢI be ít có khả năng đo lường các thay đổi về hướng (lên đến 1000 độ mỗi giây).
Triển khai thiết bị đồng hồ:
[7.4.3/W-0-1] PHẢI hỗ trợ Bluetooth.
[7.6.1/W-0-1] PHẢI have at least 1 GB of non-volatile storage available for application private data (a.k.a. "/data" segments).
[7.6.1/W-0-2] PHẢI have at least 416 MB memory available to the kernel and userspace.
[7.8.1/W-0-1] PHẢI bao gồm micrô.
[7.8.2/W] CÓ THỂ có đầu ra âm thanh.
2.4.2. Nội dung đa phương tiện
Không có yêu cầu bổ sung.
2.4.3. Phần mềm
Triển khai thiết bị đồng hồ:
- [3/W-0-1] PHẢI khai báo tính năng
android.hardware.type.watch
. - [3/W-0-2] PHẢI support uiMode = UI_MODE_TYPE_WATCH.
- [3.2.3.1/W-0-1] PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ có trình xử lý ý định, cho tất cả các mẫu bộ lọc ý định công khai được định nghĩa bởi các ý định sau đây được liệt kê tại đây.
Triển khai thiết bị đồng hồ:
- [3.8.4/W-SR-1] AreĐể triển khai một trợ lý trên thiết bị để xử lý Assistant action.
Các phương pháp triển khai thiết bị đồng hồ khai báo cờ tính năng android.hardware.audio.output
:
- [3.10/W-1-1] PHẢI support third-party accessibilityservices.
- [3.10/W-SR-1] Are trì hoãn lại và tải trước các dịch vụ hỗ trợ tiếp cận trên thiết bị có khả năng tương thích với hoặc vượt quá chức năng của tính năng chuyển đổi truy cập và TalkBack (for languages supported by the Windows)
Nếu quá trình triển khai thiết bị Đồng hồ báo cáo tính năng android.hardware.audio.output, thì thiết bị đó sẽ:
[3.11/W-SR-1] AreĐể các bạn có thể sử dụng công cụ này, hãy làm như vậy để bao gồm cả công cụ TTS hỗ trợ các ngôn ngữ có sẵn trên thiết bị.
[3.11/W-0-1] PHẢI support installed of third-party TTSCông cụ.
2.4.4. Hiệu suất và sức mạnh
Nếu các phương thức triển khai thiết bị Đồng hồ có các tính năng giúp cải thiện việc quản lý nguồn điện của thiết bị có trong AOSP hoặc mở rộng các tính năng có trong AOSP, thì các tính năng đó:
- [8.3/W-SR-1] AreĐể nhà phát triển sử dụng chế độ tiết kiệm năng lượng để cung cấp khả năng tương tác của người dùng để hiển thị tất cả các ứng dụng được miễn trừ khỏi Chế độ chờ ứng dụng và chế độ tiết kiệm năng lượng Doze.
- [8.3/W-SR-2] AreĐể nhà phát triển khuyến khích dùng tính năng tương tác của người dùng và vô hiệu hoá tính năng tiết kiệm pin.
Triển khai thiết bị đồng hồ:
- [8.4/W-0-1] PHẢI cung cấp một cấu hình năng lượng cho mỗi thành phần mà xác định giá trị tiêu thụ hiện tại cho từng thành phần phần cứng và mức tiêu hao pin gần đúng do các thành phần theo thời gian như được ghi lại trên trang web Dự án nguồn mở Android.
- [8.4/W-0-2] PHẢI report all power consumption values in milliampere hours (mAh).
- [8.4/W-0-3] NOT report CPU power
consumption per mỗi process's UID. Dự án nguồn mở Android đáp ứng yêu cầu thông qua việc triển khai mô-đun nhân
uid_cputime
. - [8.4/W-0-4] PHẢI làm cho việc sử dụng năng lượng này có sẵn thông qua
adb shell dumpsys batterystats
lệnh shell cho nhà phát triển ứng dụng. - [8.4/W] kích hoạt nên được quy cho chính thành phần phần cứng nếu không thể phân bổ mức sử dụng năng lượng thành phần phần cứng cho một ứng dụng.
2.4.5. Mô hình bảo mật
Triển khai thiết bị đồng hồ:
- [9/W-0-1] PHẢI khai báo tính năng
android.hardware.security.model.compatible
.
Nếu quá trình triển khai Thiết bị đồng hồ bao gồm nhiều người dùng và không khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/W-1-1] PHẢI support restricted profiles, một tính năng cho phép chủ sở hữu thiết bị quản lý các người dùng bổ sung và khả năng của họ trên thiết bị. Với hồ sơ bị hạn chế, chủ sở hữu thiết bị có thể nhanh chóng thiết lập các môi trường riêng biệt cho những người dùng khác làm việc, nhờ khả năng quản lý các hạn chế chi tiết hơn trong các ứng dụng có trong các môi trường đó.
Nếu quá trình triển khai Thiết bị đồng hồ bao gồm nhiều người dùng và khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/W-2-1] NOT support restricted profiles nhưng NOT support with the AOSP triển of controls to enable /disable other users from access the voice calls and SMS.
2.5. Yêu cầu về ô tô
Triển khai Android Automotive đề cập đến một đầu phát trung tâm của xe chạy Android dưới dạng hệ điều hành cho một phần hoặc toàn bộ hệ thống và/hoặc chức năng thông tin giải trí.
Các hoạt động triển khai trên thiết bị Android sẽ được phân loại là Automotive nếu các hoạt động đó khai báo tính năng android.hardware.type.automotive
hoặc đáp ứng tất cả tiêu chí sau.
- Được nhúng như một phần hoặc có thể cắm vào ô tô.
- Đang dùng một màn hình ở hàng ghế của người lái làm màn hình chính.
Các yêu cầu bổ sung trong phần còn lại này dành riêng cho hoạt động triển khai thiết bị Android Automotive.
2.5.1. Phần cứng
Triển khai thiết bị Automotive:
- [7.1.1.1/A-0-1] PHẢI have a screen at least 6 inches in physical landscape size.
[7.1.1.1/A-0-2] PHẢI có bố cục kích thước màn hình tối thiểu là 750 dp x 480 dp.
[7.2.3/A-0-1] PHẢI cung cấp hàm Home và CÓ THỂ cung cấp các hàm Quay lại và Gần đây.
[7.2.3/A-0-2] PHẢI gửi cả bình thường và long press event of the Back function (
KEYCODE_BACK
) to theforeground application.[7.3/A-0-1] PHẢI triển khai và báo cáo
GEAR_SELECTION
,NIGHT_MODE
,PERF_VEHICLE_SPEED
vàPARKING_BRAKE_ON
.[7.3/A-0-2] The value of the
NIGHT_MODE
flag PHẢI be TrueView with Dashboard day/night mode and NÊN be based on ambient ánh sáng cảm biến input. Cảm biến ánh sáng xung quanh bên dưới CÓ THỂ giống với Photometer.[7.3/A-0-3] PHẢI cung cấp trường thông tin bổ sung cảm biến
TYPE_SENSOR_PLACEMENT
như một phần của SensorAdditionalInfo for Thông tin chi tiết cho mỗi cảm biến được cung cấp.[7.3/A-SR1] MAY dead reckon Location bằng cách kết hợp GPS/GNSS với các cảm biến bổ sung. If Location is dead reckoned, it is phong phú ph để triển khai và báo cáo tương ứng Sensor các loại và/hoặc xe thuộc tính ID được sử dụng.
[7.3/A-0-4] Vị trí được yêu cầu qua LocationManager#requestLocationUpdates() KHÔNG ĐƯỢC so khớp bản đồ.
[7.3.1/A-0-4] NOTCompliance with the Android car sensor coordinate system.
[7.3/A-SR-1] AreĐể tôi bật quảng cáo cho bản thân mình, tôi muốn bao gồm gia tốc gia tốc 3 trục và con quay hồi chuyển 3 trục.
[7.3/A-SR-2] AreĐể nhà phát triển sử dụng và báo cáo
TYPE_HEADING
sensor.
Nếu quá trình triển khai thiết bị Automotive hỗ trợ OpenGL ES 3.1, thì các hoạt động triển khai đó:
- [7.1.4.1/A-0-1] PHẢI khai báo OpenGL ES 3.1 trở lên.
- [7.1.4.1/A-0-2] PHẢI hỗ trợ Vulkan 1.1.
- [7.1.4.1/A-0-3] PHẢI bao gồm trình tải Vulkan và xuất tất cả các biểu tượng.
Nếu quá trình triển khai thiết bị Automotive có bao gồm gia tốc kế, thì các ứng dụng đó sẽ:
- [7.3.1/A-1-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế 3 trục, thì các phương thức triển khai đó:
- [7.3.1/A-SR-1] AreĐể nhà phát triển khuyến khích dùng ứng dụng và triển khai cảm biến composite for limited axes accelerometer.
Nếu quá trình triển khai thiết bị Automotive bao gồm gia tốc kế có ít hơn 3 trục, thì chúng:
- [7.3.1/A-1-3] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES
. - [7.3.1/A-1-4] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
.
Nếu quá trình triển khai thiết bị Automotive bao gồm con quay hồi chuyển, thì chúng:
- [7.3.4/A-2-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
- [7.3.4/A-2-3] NOT be compatibility of Measurement changes up to 250degree per seconds.
- [7.3.4/A-SR-1] AreĐể nhà phát triển sử dụng chế độ đo lường hiệu quả nhất có thể, bạn có thể sử dụng các giải pháp đo lường khác.
Nếu hoạt động triển khai thiết bị Automotive bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/A-SR-2] AreĐể các nhà phát triển sử dụng được
Nếu quá trình triển khai thiết bị Automotive bao gồm một con quay hồi chuyển có ít hơn 3 trục, thì chúng:
- [7.3.4/A-4-1] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES
. - [7.3.4/A-4-2] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
.
Nếu nội dung triển khai thiết bị Automotive có cả bộ thu GPS/GNSS, nhưng không bao gồm kết nối dữ liệu dựa trên mạng di động, thì các cấu hình đó:
- [7.3.3/A-3-1] NOT verified location the rất first time the GPS/GNSS receiver is enabled on or after 4+ days below 60 seconds.
- [7.3.3/A-3-2] NOT meet the time-to-first-fix muộn nhất như mô tả trong 7.3.3/C-1-2 and 7.3.3/C-1-6 for all other location requests (i.e requests which are not the first time ever or after 4+ days). Yêu cầu 7.3.3/C-1-2 thường được đáp ứng trên xe không có kết nối dữ liệu dựa trên mạng di động, bằng cách sử dụng thông tin dự đoán quỹ đạo GNSS được tính toán trên bộ thu, hoặc sử dụng thông tin vị trí đã biết gần đây nhất của xe cùng với khả năng dừng trong ít nhất 60 giây với độ chính xác vị trí đáp ứng 7.3.3/C-1-3 hoặc kết hợp cả hai.
Nếu các mô-đun triển khai thiết bị trên ô tô có cảm biến TYPE_HEADING
, thì chúng:
- [7.3.4/A-4-3] NOT beable to report events up to a frequency of at least 1 Hz.
- [7.3.4/A-SR-3] EmailAddress_DOWNLOAD to report events up to a frequency of at least 10 Hz.
- PHẢI tham chiếu đến đúng hướng bắc.
- NÊN dùng được ngay cả khi xe đứng yên.
- PHẢI có độ phân giải ít nhất là 1 độ.
Triển khai thiết bị Automotive:
- [7.4.3/A-0-1] PHẢI support Bluetooth and Phải hỗ trợ Bluetooth LE.
- [7.4.3/A-0-2] Triển khai Android Automotive
PHẢI hỗ trợ các cấu hình Bluetooth sau đây:
- Gọi điện thoại qua Cấu hình rảnh tay (HFP).
- Phát nội dung nghe nhìn qua Cấu hình phân phối âm thanh (A2DP).
- Kiểm soát việc phát nội dung nghe nhìn qua Cấu hình điều khiển từ xa (AVRCP).
- Chia sẻ địa chỉ liên hệ bằng Cấu hình truy cập danh bạ điện thoại (PBAP).
[7.4.3/A-SR-1] Are Từ phút hạng sang 1
[7.4.5/A] ngắn include support forCellular network-based data connections.
[7.4.5/A] CÓ THỂ sử dụng hằng số API Hệ thống
NetworkCapabilities#NET_CAPABILITY_OEM_PAID
cho các mạng dành cho các ứng dụng hệ thống.
Camera quan sát bên ngoài là một camera ghi lại các cảnh bên ngoài quá trình triển khai thiết bị, chẳng hạn như camera chiếu sau.
Triển khai thiết bị Automotive:
- NÊN bao gồm một hoặc nhiều camera quan sát bên ngoài.
Nếu nội dung triển khai trên thiết bị Automotive bao gồm một máy ảnh có khung nhìn bên ngoài, đối với một máy ảnh như vậy, thì chúng:
- [7.5/A-1-1] PHẢI NOT have external view đáng Dấucủa các camera có thể truy cập thông qua Android Camera APIs,, trừ khi chúng tuân thủ với máy ảnh core yêu cầu.
[7.5/A-SR-1] Are trì hoãn quá trình thiết lập không chạy
[7.5/A-SR-2] Are trì hoãn 1 để có độ phân giải of at least 1.3 megapixels.
PHẢI có phần cứng có tiêu điểm cố định hoặc EDOF (độ sâu trường mở rộng).
CÓ THỂ triển khai tính năng tự động lấy nét phần cứng hoặc tự động lấy nét bằng phần mềm trong trình điều khiển máy ảnh.
Nếu phương thức triển khai thiết bị trên ô tô bao gồm một hoặc nhiều camera quan sát bên ngoài và tải dịch vụ Hệ thống hiển thị bên ngoài (EVS), thì đối với camera đó, chúng:
- [7.5/A-2-1] KHÔNG xoay hoặc phản chiếu theo chiều ngang của bản xem trước máy ảnh.
Triển khai thiết bị Automotive:
- CÓ THỂ bao gồm một hoặc nhiều máy ảnh dành cho các ứng dụng bên thứ ba.
Nếu các hoạt động triển khai thiết bị trên ô tô bao gồm ít nhất một máy ảnh và cung cấp cho các ứng dụng bên thứ ba, thì các máy ảnh đó sẽ:
- [7.5/A-3-1] PHẢI báo cáo cờ tính năng
android.hardware.camera.any
. - [7.5/A-3-2] PHẢI notDeclare the camera as a system camera.
- CÓ thể hỗ trợ các máy ảnh bên ngoài như mô tả trong mục 7.5.3.
- CÓ THỂ bao gồm các tính năng (chẳng hạn như tự động lấy nét, v.v.) dành cho máy ảnh mặt sau như mô tả trong section 7.5.1.
Triển khai thiết bị Automotive:
[7.6.1/A-0-1] PHẢI have at least 4 GB of non-volatile storage available for application private data (a.k.a. "/data" phân vùng).
[7.6.1/A] Cuộc gọi định dạng phân vùng dữ liệu để cải thiện hiệu suất và thời gian tồn tại trên bộ nhớ flash, ví dụ bằng cách sử dụng
f2fs
tệp-system.
Nếu các phương thức triển khai thiết bị Automotive cung cấp bộ nhớ ngoài dùng chung thông qua một phần bộ nhớ trong không thể tháo rời, thì các phương thức triển khai đó:
- [7.6.1/A-SR-1] Are trì hoãn lại và giảm chi phí I/O are perform on the external storage, for example byusing
SDCardFS
.
Nếu cấu hình triển khai thiết bị Automotive là 64 bit:
[7.6.1/A-2-1] The Memory available to the kernel and userspace PHẢI be at least 816MB if any of the following feature are used:
- 280dpi trở xuống đối với màn hình nhỏ/bình thường
- ldpi hoặc thấp hơn trên màn hình cực lớn
- mdpi hoặc thấp hơn trên màn hình lớn
[7.6.1/A-2-2] The Memory available to the kernel and userspace PHẢI be at least 944MB if any of the following individual is used:
- xhdpi trở lên trên màn hình nhỏ/bình thường
- hdpi trở lên trên màn hình lớn
- mdpi trở lên trên màn hình cực lớn
[7.6.1/A-2-3] The bộ nhớ có sẵn cho kernel and userspace PHẢI be at least 1280MB if any of the followingGA is used:
- 400dpi trở lên đối với màn hình nhỏ/bình thường
- xhdpi trở lên trên màn hình lớn
- tvdpi trở lên trên màn hình cực lớn
[7.6.1/A-2-4] The Memory available to the kernel and userspace PHẢI be at least 1824MB if any of the followingGA is used:
- 560dpi trở lên đối với màn hình nhỏ/bình thường
- 400dpi trở lên đối với màn hình lớn
- xhdpi trở lên trên màn hình cực lớn
Lưu ý rằng "bộ nhớ có sẵn cho nhân và không gian người dùng" ở trên đề cập đến dung lượng bộ nhớ được cung cấp ngoài mọi bộ nhớ dành riêng cho các thành phần phần cứng như đài, video, v.v. không thuộc sự kiểm soát của nhân hệ điều hành đối với quá trình triển khai thiết bị.
Triển khai thiết bị Automotive:
- [7.7.1/A] PHẢI bao gồm một cổng USB hỗ trợ chế độ thiết bị ngoại vi.
Triển khai thiết bị Automotive:
- [7.8.1/A-0-1] PHẢI bao gồm micrô.
Triển khai thiết bị Automotive:
- [7.8.2/A-0-1] NOT have an audio output and Khai báo
android.hardware.audio.output
.
2.5.2. Nội dung đa phương tiện
Automotive thiết bị triển khai PHẢI hỗ trợ các định dạng mã hoá và giải mã âm thanh sau đây, đồng thời cung cấp các định dạng đó cho các ứng dụng của bên thứ ba:
- [5.1/A-0-1] Cấu hình MPEG-4 AAC (AAC LC)
- [5.1/A-0-2] Cấu hình MPEG-4 HE AAC (AAC+)
- [5.1/A-0-3] AAC ELD (AAC độ trễ thấp nâng cao)
Automotive thiết bị triển khai PHẢI hỗ trợ các định dạng mã hoá video sau và cung cấp chúng cho các ứng dụng của bên thứ ba:
Automotive thiết bị triển khai PHẢI hỗ trợ các định dạng giải mã video sau đây và cung cấp chúng cho các ứng dụng của bên thứ ba:
Automotive thiết bị triển khai areRENDERED DOWNLOAD to support the following videoSố giải mã:
- [5.3/A-SR-1] H.265 HEVC
2.5.3. Phần mềm
Triển khai thiết bị Automotive:
[3/A-0-1] PHẢI khai báo tính năng
android.hardware.type.automotive
.[3/A-0-2] PHẢI hỗ trợ uiMode =
UI_MODE_TYPE_CAR
.[3/A-0-3] PHẢI hỗ trợ tất cả API công khai trong không gian tên
android.car.*
.
Nếu hoạt động triển khai thiết bị Automotive cung cấp một API độc quyền bằng cách sử dụng android.car.CarPropertyManager
với android.car.VehiclePropertyIds
, thì chúng:
- [3/A-1-1] PHẢI NOT Attach tai nạn đặc biệt để hệ thống ứng dụng sử dụng các thuộc tính, hoặc ngăn các ứng dụng của bên thứ ba sử dụng các thuộc tính này.
- [3/A-1-2] KHÔNG CẦN Sao chép thuộc tính xe đã tồn tại trong SDK.
Triển khai thiết bị Automotive:
[3.2.1/A-0-1] PHẢI hỗ trợ và thực thi tất cả các hằng số quyền như được ghi lại bởi trang tham khảo Quyền Automotive.
[3.2.3.1/A-0-1] PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ có trình xử lý ý định, cho tất cả các mẫu bộ lọc ý định công khai được xác định bởi các ý định của ứng dụng sau được liệt kê tại đây.
[3.4.1/A-0-1] NOT cung cấp a complete implementation of the
android.webkit.Webview
API.[3.8.3/A-0-1] PHẢI display Notifications that use the
Notification.CarExtender
API when requested by third-party applications.[3.8.4/A-SR-1] Bạn nên triển khai một trợ lý trên thiết bị để xử lý thao tác Hỗ trợ.
Nếu quá trình triển khai thiết bị Automotive bao gồm nút nhấn để nói, thì các ứng dụng đó sẽ:
- [3.8.4/A-1-1] NOT use a short press of the push-to-Talk button as the specified compatibility to launch the user-selected Vàng supported app, nói cách khác là ứng dụng đã triển khai
VoiceInteractionService
.
Triển khai thiết bị Automotive:
- [3.8.3.1/A-0-1] PHẢI correct
render resources as description in the
Notifications on Automotive OS
Tài liệu SDK. - [3.8.3.1/A-0-2] PHẢI display
PLAY and MUTE for notification actions in the place of these provided through
Notification.Builder.addAction()
- [3.8.3.1/A] nên hạn chế việc sử dụng các tác vụ quản lý đa dạng như per-notification-channel controls. CÓ THỂ sử dụng thành phần tương tác trên giao diện người dùng cho mỗi ứng dụng để giảm bớt quyền kiểm soát.
Nếu quá trình triển khai thiết bị Automotive hỗ trợ thuộc tính HAL của người dùng, thì chúng sẽ:
- [3.9.3/A-1-1] PHẢI triển khai tất cả
Thuộc tính vòng đời của người dùng
INITIAL_USER_INFO
,SWITCH_USER
,CREATE_USER
,REMOVE_USER
.
Triển khai thiết bị Automotive:
- [3.14/A-0-1] PHẢI include a UI khung to support third-party apps using the media APIs as mô tả trong phần 3.14.
- [3.14/A-0-2] PHẢI cho phép người dùng tương tác an toàn với Ứng dụng phương tiện trong khi lái xe.
- [3.14/A-0-3] PHẢI support the
CAR_INTENT_ACTION_MEDIA_TEMPLATE
implicit Intent action with theCAR_EXTRA_MEDIA_PACKAGE
bổ sung. - [3.14/A-0-4] PHẢI cung cấp một thuộc tính tương tác để điều hướng vào a Media Application’s preference activity, nhưng PHẢI chỉ bật nó khi hạn chế xe trải nghiệm người dùng không có hiệu lực.
- [3.14/A-0-5] NOT display
error messages
set by Media Applications, and PHẢI support theoptional
ERROR_RESOLUTION_ACTION_LABEL
andERROR_RESOLUTION_ACTION_INTENT
. - [3.14/A-0-6] PHẢI support an in-app search must for apps that supporttìm kiếm.
- [3.14/A-0-7] PHẢI tôn trọng
CONTENT_STYLE_BROWSABLE_HINT
vàCONTENT_STYLE_PLAYABLE_HINT
định nghĩa khi hiển thị hệ phân cấp MediaBrowser.
Nếu hoạt động triển khai thiết bị Automotive bao gồm một ứng dụng trình chạy mặc định, thì các ứng dụng đó sẽ:
- [3.14/A-1-1] PHẢI include media services and open they
with the
CAR_INTENT_ACTION_MEDIA_TEMPLATE
intent.
Triển khai thiết bị Automotive:
- [3.8/A] Hành động hạn chế ứng dụng yêu cầu nhập chế độ toàn màn hình như mô tả trong
immersive documentation
. - [3.8/A] CÓ THỂ hiển thị thanh trạng thái và thanh điều hướng mọi lúc.
- [3.8/A] MAY hạn chế ứng dụng yêu cầu thay đổi màu sắc phía sau các thành phần trên giao diện người dùng hệ thống, nhằm đảm bảo các thành phần đó luôn hiển thị rõ ràng.
2.5.4. Hiệu suất và sức mạnh
Triển khai thiết bị Automotive:
- [8.2/A-0-1] PHẢI báo cáo số lượng byte đọc và ghi vào non-volatile storage per mỗi UID của quy trình để số liệu thống kê có sẵn cho nhà phát triển thông qua System API
android.car.storagemonitoring.CarStorageMonitoringManager
. Dự án nguồn mở Android đáp ứng yêu cầu này thông qua mô-đun nhânuid_sys_stats
. - [8.3/A-1-3] PHẢI hỗ trợ Garage Mode.
- [8.3/A] Phải be in Garage Mode for at least
15 minutes after cứ drive except:
- Pin đã hết.
- Không có lệnh nào ở trạng thái rảnh được lên lịch.
- Người lái xe thoát khỏi Chế độ nhà xe.
- [8.4/A-0-1] PHẢI cung cấp một cấu hình năng lượng mỗi thành phần mà xác định giá trị tiêu thụ hiện tại cho từng thành phần phần cứng và mức tiêu hao pin gần đúng do các thành phần theo thời gian như được ghi lại trên trang web Dự án nguồn mở Android.
- [8.4/A-0-2] PHẢI report all power consumption values in milliampere hours (mAh).
- [8.4/A-0-3] PHẢI report CPU power
consumption per mỗi process's UID. Dự án nguồn mở Android đáp ứng yêu cầu thông qua việc triển khai mô-đun nhân
uid_cputime
. - [8.4/A] kích hoạt nên được quy cho chính thành phần phần cứng nếu không thể phân bổ mức sử dụng năng lượng thành phần phần cứng cho một ứng dụng.
- [8.4/A-0-4] PHẢI make this power Usage
available via the
adb shell dumpsys batterystats
shell Command to the app developer.
2.5.5. Mô hình bảo mật
Nếu quá trình triển khai thiết bị Automotive hỗ trợ nhiều người dùng, họ sẽ:
- [9.5/A-1-1] PHẢI NOT cho phép người dùng tương tác với hoặc không chuyển vào Người dùng hệ thống không đầu, ngoại trừ cấp phép thiết bị.
- [9.5/A-1-2] NOT chuyển đổi thành Secondary User
before
BOOT_COMPLETED
. - [9.5/A-1-3] PHẢI support the compatibility to create a Guest User ngay cả khi đã đạt đến số lượng người dùng tối đa trên một thiết bị.
Nếu các hoạt động triển khai thiết bị Automotive khai báo android.hardware.camera.any
, thì chúng:
- [9.8.2/A-2-1] PHẢI hiển thị chỉ báo máy ảnh khi ứng dụng đang truy cập dữ liệu máy ảnh trực tiếp, nhưng không khi máy ảnh chỉ được truy cập bởi ứng dụng(các) giữ vai trò được gọi ra trong Section 9.1 Permissions with CDD identifier [C-3-X].
- [9.8.2/A-2-2] KHÔNG ĐƯỢC ẩn chỉ báo camera cho các ứng dụng hệ thống có giao diện người dùng hiển thị hoặc tương tác trực tiếp của người dùng.
Triển khai thiết bị Automotive:
- [9.11/A-0-1] PHẢI back up the kho thực hiện triển khai với một môi trường thực thi cách ly.
- [9.11/A-0-2] PHẢI have tủ lệnh không hoạt động cho RSA, AES, ECDSA and HMAC Cryptographic libraries and MD5, SHA1, and SHA-2 family hash functions toQuáh support the Android Keystore system's supported Các thuật toán in an area that is an toàn disabled from the code running on the kernel and above. Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA. Dự án nguồn mở Android ngược dòng (AOSP) đáp ứng yêu cầu này bằng cách sử dụng phương thức triển khai Trusty, nhưng một giải pháp khác dựa trên ARM TrustZone hoặc một bên thứ ba đã xem xét phương thức triển khai an toàn của cách ly thích hợp dựa trên trình điều khiển ảo hoá là các phương án thay thế.
- [9.11/A-0-3]{4} perform the khoá màn hình xác thực trong môi trường thực thi tách biệt và chỉ khi thành công, cho phép các khoá xác thực-giới hạn được sử dụng. Khóa màn hình credentials PHẢI được lưu trữ theo cách mà cho phép chỉ môi trường thực thi cách ly để thực hiện xác thực màn hình khóa. Dự án nguồn mở Android ngược dòng cung cấp Lớp trừu tượng phần cứng (HAL) cho người trực điện thoại và Trusty (Lớp trừu tượng phần cứng của người trực điện thoại), có thể được dùng để đáp ứng yêu cầu này.
- [9.11/A-0-4] NOT support keycertified where the certification key isBảo vệ phần cứng và ký được thực hiện trong bảo mật phần cứng. The Certificate signed keys NOT be shared across largeSố lượng thiết bị nhằm ngăn chặn các khoá từ được sử dụng làm device identifier. Để đáp ứng yêu cầu này là chia sẻ cùng một khoá chứng thực,trừ phi có ít nhất 100.000 đơn vị của một SKU nhất định được tạo. Nếu có hơn 100.000 đơn vị SKU, thì CÓ THỂ sẽ sử dụng một khoá khác cho mỗi 100.000 đơn vị.
- [9/A-0-1] PHẢI khai báo tính năng "android.hardware.security.model.compatible'.
Xin lưu ý rằng nếu đã triển khai thiết bị trên một phiên bản Android trước đó, thì thiết bị đó sẽ được miễn trách nhiệm có kho khoá được hỗ trợ bởi một môi trường thực thi riêng biệt và hỗ trợ quy trình chứng thực khoá, trừ phi thiết bị đó khai báo tính năng android.hardware.fingerprint
đòi hỏi kho khoá được một môi trường thực thi riêng biệt hỗ trợ.
Triển khai thiết bị Automotive:
- [9.14/A-0-1] NOT gatekeep messages from Android Chia sẻ hệ thống phụ xe, e.g., Palming allowed message types and message source.
- [9.14/A-0-2] PHẢI watchdog chống lại từ chối các cuộc tấn công dịch vụ từ khung Android hoặc các ứng dụng của bên thứ ba. Điều này giúp ngăn chặn phần mềm độc hại làm ngập lưu lượng truy cập vào mạng của xe, vốn có thể làm hỏng các hệ thống phụ của xe.
2.5.6. Khả năng tương thích với công cụ và tuỳ chọn cho nhà phát triển
Triển khai thiết bị Automotive:
- Perfetto
- [6.1/A-0-1] truyền phơi bày
/system/bin/perfetto
nhị phân đối với người dùng shell mà cmdline tuân thủ tài liệu về perfetto. - [6.1/A-0-2] The perfetto binary PHẢI chấp nhận as input a protobuf config that creatives with the schema specified in the perfetto documents.
- [6.1/A-0-3] The perfetto binary PHẢI write as đầu ra a protobuf trace that completed with the schema specified in Tài liệu về perfetto.
- [6.1/A-0-4] PHẢI cung cấp, thông qua nhị phân perfetto, ít nhất là nguồn dữ liệu được mô tả trong tài liệu về perfetto.
- [6.1/A-0-1] truyền phơi bày
2.6. Yêu cầu đối với máy tính bảng
Thiết bị máy tính bảng Android là cách triển khai thiết bị Android thường đáp ứng tất cả các tiêu chí sau:
- Dùng bằng cách cầm trên cả hai tay.
- Không có cấu hình vỏ sò hoặc có thể chuyển đổi.
- Các phương thức triển khai bàn phím thực được sử dụng với thiết bị được kết nối bằng phương thức kết nối tiêu chuẩn (ví dụ: USB, Bluetooth).
- Có nguồn điện giúp đảm bảo khả năng vận động, chẳng hạn như pin.
- Có kích thước màn hình lớn hơn 7 inch và nhỏ hơn 18 inch, đo theo đường chéo.
Quá trình triển khai thiết bị máy tính bảng có các yêu cầu tương tự như việc triển khai thiết bị cầm tay. Các trường hợp ngoại lệ được biểu thị bằng dấu * trong phần đó và được ghi chú để tham khảo trong phần này.
2.6.1. Phần cứng
Con quay hồi chuyển
Nếu quá trình triển khai thiết bị Máy tính bảng bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/Tab-1-1] PHẢI có khả năng đo lường các thay đổi về hướng lên đến 1000 độ mỗi giây.
Bộ nhớ và dung lượng lưu trữ tối thiểu (Mục 7.6.1)
Mật độ màn hình được liệt kê cho các màn hình nhỏ/bình thường trong yêu cầu về thiết bị cầm tay không áp dụng cho máy tính bảng.
Chế độ thiết bị ngoại vi USB (Mục 7.7.1)
Nếu quá trình triển khai thiết bị máy tính bảng có một cổng USB hỗ trợ chế độ thiết bị ngoại vi, thì các phương thức triển khai đó:
- [7.7.1/Tab] CÓ THỂ triển khai API phụ kiện mở Android (AOA).
Chế độ thực tế ảo (Mục 7.9.1)
Hiệu suất thực tế ảo cao (Phần 7.9.2)
Yêu cầu thực tế ảo không áp dụng cho máy tính bảng.
2.6.2. Mô hình bảo mật
Khoá và thông tin xác thực (Mục 9.11)
Tham khảo Mục [9.11].
Nếu quá trình triển khai thiết bị Máy tính bảng bao gồm nhiều người dùng và không khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/T-1-1] NOT support restricted profiles, a feature that allowed device owner to manage additional users and their capabilities trên thiết bị. Với hồ sơ bị hạn chế, chủ sở hữu thiết bị có thể nhanh chóng thiết lập các môi trường riêng biệt cho những người dùng khác làm việc, nhờ khả năng quản lý các hạn chế chi tiết hơn trong các ứng dụng có trong các môi trường đó.
Nếu quá trình triển khai thiết bị Máy tính bảng bao gồm nhiều người dùng và khai báo cờ tính năng android.hardware.telephony
, thì họ:
- [9.5/T-2-1] PHẢI NOT support restricted profiles nhưng PHẢI căn chỉnh với AOSP triển khai của điều khiển to enable /disable other users from access the voice calls and SMS.
2.6.2. Phần mềm
- [3.2.3.1/Tab-0-1] PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ có trình xử lý ý định, cho tất cả các mẫu bộ lọc ý định công khai được xác định bởi các ý định của ứng dụng sau được liệt kê tại đây.
3. Phần mềm
3.1. Khả năng tương thích của API được quản lý
Môi trường thực thi mã byte Dalvik được quản lý là phương tiện chính cho các ứng dụng Android. Giao diện lập trình ứng dụng (API) Android là tập hợp các giao diện trên nền tảng Android hiển thị với các ứng dụng chạy trong môi trường thời gian chạy được quản lý.
Triển khai thiết bị:
[C-0-1] PHẢI cung cấp đầy đủ các triển khai, bao gồm tất cả các hành vi được tài liệu, của bất kỳ API tài liệu được hiển thị bởi Android SDK hoặc bất kỳ API nào được trang trí bằng điểm đánh dấu “@SystemApi” trong mã nguồn Android ngược dòng.
[C-0-2] PHẢI support/preserve all classes, methods, and linked events marked by the TestApi callout (@TestApi).
[C-0-3] NOT FOR any managed APIs, replace API transactions orXem, deviate from the documented Behavior, or include no-ops, except where specified by this Compatibility Definition.
[C-0-4]{4} Still keep the APIs hiện and take and Behavior in a valid Way, nêu ngay cả khi một số tính năng phần cứng cho mà Android bao gồm các API bị bỏ qua. Hãy xem phần 7 để biết các yêu cầu cụ thể cho trường hợp này.
[C-0-5] PHẢI NOT allow third-party apps to use non-SDK transactions, that are specified as methods and fields in the Java language package that are in the boot classpath in AOSP, and that do not form part of the Public SDK. API này bao gồm các API được trang trí bằng chú thích
@hide
nhưng không được trang trí bằng@SystemAPI
, như mô tả trong tài liệu SDK cũng như các thành phần của lớp riêng tư và riêng tư trong gói.[C-0-6] PHẢI vận chuyển với mỗi và mỗi giao diện non-SDK trên cùng một hạn chế danh sách as cung cấp qua quyền cấp phép và từ chối cờ trong
prebuilts/runtime/appcompat/hiddenapi-flags.csv
đường dẫn cho nhánh API cấp thích hợp trong AOSP.[C-0-7] PHẢI support the signed config dynamic update configuration to remove non-SDK transactions from a limited list by by nhúng signed configuration in any APK, using the existing key key (Cơ chế cập nhật động hiện có trong AOSP).
Tuy nhiên, chúng:
- CÓ THỂ, if a hide API is existing API is under or hoá on the device triển khai, di chuyển API ẩn vào danh sách từ chối hoặc bỏ nó khỏi tất cả các danh sách bị hạn chế.
- CÓ THỂ, if a hide API does not already existing API in the AOSP (Dự án nguồn mở Android), hãy thêm API đã ẩn vào bất kỳ danh sách bị hạn chế nào.
3.1.1. Tiện ích Android
Android hỗ trợ mở rộng nền tảng API được quản lý của một cấp độ API cụ thể bằng cách cập nhật phiên bản tiện ích cho cấp độ API đó. API android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
trả về phiên bản tiện ích của apiLevel
được cung cấp, nếu có tiện ích cho cấp độ API đó.
Triển khai thiết bị Android:
[C-0-1] PHẢI tải trước việc triển khai AOSP (Dự án nguồn mở Android) của cả thư viện chia sẻ
ExtShared
và dịch vụExtServices
với các phiên bản lớn hơn hoặc bằng với các phiên bản tối thiểu được phép cho mỗi cấp độ API. Ví dụ: Android 7.0 thiết bị triển khai, chạy API cấp 24 PHẢI bao gồm ít nhất phiên bản 1.[C-0-2] PHẢI chỉ trả về số phiên bản mở rộng hợp lệ đã được xác định bởi AOSP.
[C-0-3] PHẢI support all the APIs specified by the extensions module rereturn by
android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
in the the same processes as other managed APIs are supported, following therequirements in section 3.1.
3.1.2. Thư viện Android
Do việc ngừng sử dụng ứng dụng HTTP HTTP, các hoạt động triển khai thiết bị:
- [C-0-1] KHÔNG ĐƯỢC đặt thư viện
org.apache.http.legacy
vào đường dẫn lớp khởi động. - [C-0-2] PHẢI add the
org.apache.http.legacy
library to the application classpath only when the app how the app Make one of the following conditions:- Nhắm đến API cấp 28 trở xuống.
- Khai báo trong tệp kê khai rằng ứng dụng cần thư viện bằng cách đặt thuộc tính
android:name
của<uses-library>
thànhorg.apache.http.legacy
.
Việc triển khai AOSP đáp ứng các yêu cầu này.
3.2. Khả năng tương thích với API mềm
Ngoài các API được quản lý trong phần 3.1, Android cũng bao gồm một API "mềm" chỉ dành cho thời gian chạy, dưới dạng ý định, quyền và những khía cạnh tương tự của ứng dụng Android mà không thể thực thi tại thời điểm biên dịch ứng dụng.
3.2.1. Quyền
- [C-0-1] Device triển khai PHẢI hỗ trợ và thực thi tất cả các hằng số quyền như được ghi lại bởi trang tham chiếu quyền. Xin lưu ý rằng mục 9 liệt kê các yêu cầu bổ sung liên quan đến mô hình bảo mật Android.
3.2.2. Tham số bản dựng
API Android bao gồm một số hằng số trên lớp android.os.Build để mô tả thiết bị hiện tại.
- [C-0-1] Để cung cấp các giá trị nhất quán, có ý nghĩa trên các triển khai thiết bị, bảng bên dưới bao gồm các hạn chế bổ sung về các định dạng của các giá trị này mà các triển khai thiết bị PHẢI tuân thủ.
Tham số | Thông tin chi tiết |
---|---|
VERSION.PHÁT HÀNH | Phiên bản của hệ thống Android đang thực thi, ở định dạng mà con người có thể đọc được. Trường này PHẢI có một trong các giá trị chuỗi được xác định trong Licensing Version Strings for Android 13. |
PHIÊN BẢN.SDK | Phiên bản của hệ thống Android đang thực thi, ở một định dạng mà mã xử lý ứng dụng của bên thứ ba có thể truy cập được. Đối với Android 13, trường này PHẢI có giá trị số nguyên 13_INT. |
VERSION.SDK_INT | Phiên bản của hệ thống Android đang thực thi, ở một định dạng mà mã xử lý ứng dụng của bên thứ ba có thể truy cập được. Đối với Android 13, trường này PHẢI có giá trị số nguyên 13_INT. |
VERSION.INCREMENTAL | Một giá trị do trình triển khai thiết bị chọn để chỉ định bản dựng cụ thể của hệ thống Android đang thực thi, ở định dạng mà con người có thể đọc được. Giá trị này KHÔNG ĐƯỢC sử dụng lại cho các bản dựng khác nhau được cung cấp cho người dùng cuối. Trường này thường dùng để cho biết số bản dựng hoặc giá trị nhận dạng thay đổi về quyền kiểm soát nguồn được dùng để tạo bản dựng. Giá trị của trường này PHẢI be encodable as printable 7-bit ASCII và khớp với biểu thức chính quy “^[^ :\/~]+$”. |
BẢNG | Một giá trị do trình triển khai thiết bị chọn để xác định phần cứng bên trong cụ thể mà thiết bị sử dụng, ở định dạng mà con người có thể đọc được. Bạn có thể sử dụng trường này để cho biết bản sửa đổi cụ thể của bảng cấp nguồn cho thiết bị. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9_-]+$”. |
THƯƠNG HIỆU | Một giá trị phản ánh tên thương hiệu liên kết với thiết bị mà người dùng cuối đã biết. PHẢI be in people-Read format and Để đại diện cho nhà sản xuất của thiết bị hoặc thương hiệu công ty dưới mà thiết bị được tiếp thị. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9_-]+$”. |
HỖ TRỢ_ABIS | Tên của tập lệnh (loại CPU + quy ước ABI) của mã gốc. Xem mục 3.3. Khả năng tương thích của API gốc. |
HỖ TRỢ_32_BIT_ABIS | Tên của tập lệnh (loại CPU + quy ước ABI) của mã gốc. Xem mục 3.3. Khả năng tương thích của API gốc. |
HỖ TRỢ_64_BIT_ABIS | Tên của tập lệnh thứ hai (loại CPU + quy ước ABI) của mã gốc. Xem mục 3.3. Khả năng tương thích với API gốc. |
CPU_ABI | Tên của tập lệnh (loại CPU + quy ước ABI) của mã gốc. Xem mục 3.3. Khả năng tương thích của API gốc. |
CPU_ABI2 | Tên của tập lệnh thứ hai (loại CPU + quy ước ABI) của mã gốc. Xem mục 3.3. Khả năng tương thích với API gốc. |
THIẾT BỊ | Một giá trị do trình triển khai thiết bị chọn, có chứa tên quá trình phát triển hoặc tên mã giúp xác định cấu hình của các tính năng phần cứng và kiểu dáng công nghiệp của thiết bị. The value of this field PHẢI be encodable as 7-bit ASCII and match the regularbiểu thức “^[a-zA-Z0-9_-]+$”. This device name PHẢI NOT thay đổi trong suốt vòng đời của sản phẩm. |
IN HOA | Một chuỗi xác định duy nhất bản dựng này. Giá trị này phải là hợp lý mà con người có thể đọc được. Ứng dụng PHẢI tuân theo mẫu sau:
$(BRAND)/$(PRODUCT)/ Ví dụ: acme/myproduct/ Vân tay KHÔNG ĐƯỢC bao gồm các ký tự khoảng trắng. Giá trị của trường này PHẢI be encodable as 7-bit ASCII. |
PHẦN CỨNG | Tên của phần cứng (từ dòng lệnh kernel hoặc /proc). Giá trị này phải là con người có thể đọc được. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9_-]+$”. |
NGƯỜI DẪN CHƯƠNG TRÌNH | Một chuỗi xác định duy nhất máy chủ lưu trữ mà bản dựng được xây dựng, ở định dạng mà con người có thể đọc được. Không có yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ trường này KHÔNG PHẢI là rỗng hoặc chuỗi trống (""). |
ID | Giá trị nhận dạng do trình triển khai thiết bị chọn để tham chiếu đến một bản phát hành cụ thể, ở định dạng mà con người có thể đọc được. Trường này có thể giống như android.os.Build.VERSION.INCREMENTAL, nhưng NÊN be a value up to Đủ ý nghĩa cho người dùng cuối để phân biệt giữa các bản dựng phần mềm. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9._-]+$”. |
NHÀ SẢN XUẤT | Tên thương mại của Nhà sản xuất thiết bị gốc (OEM) của sản phẩm. Không có yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ rằng nó KHÔNG PHẢI là rỗng hoặc chuỗi trống (""). Trường này KHÔNG ĐƯỢC thay đổi trong suốt thời gian tồn tại của sản phẩm. |
SOC_MANUfactURER (nhà sản xuất trực tuyến) | Tên thương mại của nhà sản xuất hệ thống chính trên chip (SOC) dùng trong sản phẩm. Các thiết bị có cùng nhà sản xuất SOC phải sử dụng cùng một giá trị không đổi. Vui lòng hỏi nhà sản xuất SOC để sử dụng hằng số chính xác. The value of thisfield NOT be encodable as 7-bit ASCII, PHẢI match the regular forms “^([0-9A-Za-z ]+)”, PHẢI NOT start or end with khoảng trắng, and PHẢI NOT be equals to “unknown”. This field PHẢI NOT change during the lifecycle of the product. |
SOC_MODEL | Tên kiểu máy của hệ thống chính trên chip (SOC) dùng trong sản phẩm. Các thiết bị có cùng mô hình SOC phải sử dụng cùng một giá trị hằng số. Vui lòng hỏi nhà sản xuất SOC để sử dụng hằng số chính xác. The value of this case PHẢI be encodable as 7-bit ASCII and match the regular TK “^([0-9A-Za-z ._/+-]+)$”, NOT start or end with empty, and NOT be equals to “unknown”. This field PHẢI NOT thay đổi trong suốt thời gian của sản phẩm. |
KIỂU MÁY | Một giá trị do trình triển khai thiết bị chọn, có chứa tên của thiết bị mà người dùng cuối đã biết. This nên be the same name under that the device is marketed and sell to end users (Người dùng cuối cùng được tiếp thị và bán cho người dùng cuối). Không có yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ đó KHÔNG PHẢI là rỗng hoặc chuỗi trống (""). Trường này KHÔNG thay đổi trong suốt thời gian tồn tại của sản phẩm. |
SẢN PHẨM | A value selected by the device shareder contains the Development name or code name of the specific product (SKU) that PHẢI be duy nhất trong phạm vi cùng thương hiệu. Phải là con người có thể đọc được, nhưng không nhất thiết là dành cho chế độ xem by end users. The value of this field PHẢI be encodable as 7-bit ASCII and match the regular TK “^[a-zA-Z0-9_-]+$”. This product name PHẢI NOT thay đổi trong suốt vòng đời của sản phẩm. |
Mã số ODM_SKU | Một giá trị không bắt buộc do trình triển khai thiết bị lựa chọn, có chứa SKU (Bộ lưu kho) dùng để theo dõi các cấu hình cụ thể của thiết bị, ví dụ: mọi thiết bị ngoại vi đi kèm thiết bị khi bán. The value of this field PHẢI be encodable as 7-bit ASCII and match the regular variable “[0-9A-Za-z.,_-])" |
SÊ-RI | PHẢI trả về giá trị "UNKNOWN" (KHÔNG XÁC ĐỊNH). |
THẺ TỪ KHOÁ | Danh sách các thẻ được phân tách bằng dấu phẩy do trình triển khai thiết bị chọn để giúp phân biệt rõ hơn bản dựng. Các thẻ PHẢI be encodable as 7-bit ASCII và khớp biểu thức chính quy “^[a-zA-Z0-9._-]+” and PHẢI have one of the valuestương ứng với ba cấu hình nền tảng Android thông thường: release-keys, dev-keys, and test-keys. |
THỜI GIAN | Một giá trị biểu thị dấu thời gian khi quá trình tạo bản dựng diễn ra. |
LOẠI | Một giá trị do trình triển khai thiết bị chọn để chỉ định cấu hình thời gian chạy của bản dựng. Trường này PHẢI có một trong các giá trị tương ứng với ba cấu hình thời gian chạy Android điển hình: user, userdebug, or eng. |
NGƯỜI DÙNG | Tên hoặc mã nhận dạng người dùng của người dùng (hoặc người dùng tự động) tạo ra bản dựng. Không có yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ rằng nó KHÔNG PHẢI là rỗng hoặc chuỗi trống (""). |
BẢO MẬT_PATCH | Một giá trị cho biết cấp bản vá bảo mật của một bản dựng. It PHẢI signify that the build is not in bất kỳ cách nào dễ bị tổn thương đến bất kỳ vấn đề nào được mô tả thông qua bản tin an ninh công cộng Android được chỉ định. Thông báo đó PHẢI ở định dạng [YYYY-MM-DD], khớp với chuỗi xác định được ghi trong Android Public Security Logs or in the Android Security Advice, for example "2015-11-01". |
BASE_OS (Hệ điều hành cơ sở) | Một giá trị biểu thị tham số FINGERprint của bản dựng giống hệt với bản dựng này, ngoại trừ các bản vá được cung cấp trong Bản tin về an ninh công cộng Android. It PHẢI báo cáo giá trị đúng và nếu bản dựng như vậy không tồn tại, hãy báo cáo chuỗi trống (""). |
TRÌNH TẢI TĂNG | Một giá trị do trình triển khai thiết bị chọn để xác định phiên bản trình tải khởi động nội bộ cụ thể dùng trong thiết bị, ở định dạng mà con người có thể đọc được. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9._-]+$”. |
getRadioVersion() | PHẢI (be or Return) a value selected by the device Trẻ triển khai xác định cụ thể nội bộ radio/modem phiên bản được sử dụng trong thiết bị, ở định dạng con người có thể đọc được. Nếu một thiết bị không có bất kỳ radio/modem nội bộ nào, thì thiết bị PHẢI trả về NULL. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9._-,]+$”. |
getSerial() | PHẢI (be or Return) a hardware sê-ri number, mà PHẢI be available and duy nhất trên các thiết bị with the cùng MODEL and MANUfactURER. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp biểu thức chính quy “^[a-zA-Z0-9]+$”. |
3.2.3. Khả năng tương thích về ý định
3.2.3.1. Ý định phổ biến của ứng dụng
Ý định trên Android cho phép các thành phần ứng dụng yêu cầu chức năng từ các thành phần Android khác. Dự án Android ngược dòng bao gồm một danh sách ứng dụng triển khai một số mẫu ý định để thực hiện các thao tác phổ biến.
Triển khai thiết bị:
- [C-SR-1] AreĐể nhà phát triển đề xuất tải trước một hoặc nhiều ứng dụng hoặc các thành phần dịch vụ với một trình xử lý ý định, cho tất cả các ý định công khai bộ lọc mẫu xác định bởi các ý định sau đây được liệt kê here và cung cấp các ý định thực hiện ứng dụng phổ biến như được mô tả trong SDK.
Vui lòng tham khảo Phần 2 để biết các ý định bắt buộc liên quan đến ứng dụng đối với từng loại thiết bị.
3.2.3.2. Giải quyết ý định
[C-0-1] As Android is an extensible platform, device events PHẢI allow allow have their intent based in section 3.2.3.1 , except for Settings, to be override by third-party applications. Việc triển khai nguồn mở Android ngược dòng cho phép điều này theo mặc định.
[C-0-2] DeviceNgười triển khai KHÔNG PHẢI Đính kèm đặc quyền đặc biệt cho các ứng dụng hệ thống sử dụng các mẫu ý định này, hoặc ngăn các ứng dụng của bên thứ ba từ liên kết đến và giả định kiểm soát các mẫu này. Lệnh cấm này cụ thể bao gồm nhưng không giới hạn ở việc tắt giao diện người dùng "Chooser" (Bộ chọn), cho phép người dùng chọn trong số nhiều ứng dụng mà tất cả đều xử lý cùng một mẫu ý định.
[C-0-3] Device devices PHẢI cung cấp giao diện người dùng cho người dùng để sửa đổi hoạt động mặc định cho ý định.
Tuy nhiên, phương thức triển khai thiết bị CÓ THỂ cung cấp hoạt động mặc định cho các mẫu URI cụ thể (ví dụ: http://play.google.com) khi hoạt động mặc định cung cấp một thuộc tính cụ thể hơn cho URI dữ liệu. Ví dụ: mẫu bộ lọc ý định chỉ định URI dữ liệu “http://www.android.com” cụ thể hơn mẫu ý định cốt lõi của trình duyệt cho “http://”.
Android cũng có một cơ chế để các ứng dụng bên thứ ba khai báo một hành vi liên kết ứng dụng mặc định đáng tin cậy cho một số loại ý định URI web nhất định. Khi những nội dung khai báo có căn cứ như vậy được xác định trong các mẫu bộ lọc ý định của ứng dụng, việc triển khai thiết bị:
- [C-0-4] PHẢI cố gắng xác thực mọi bộ lọc ý định bằng cách thực hiện các bước xác thực được xác định trong Digital Asset Links specifications (Thông số kỹ thuật về đường liên kết đến tài sản kỹ thuật số) do Package Manager (Trình quản lý gói) triển khai trong dự án nguồn mở Android ngược dòng.
- [C-0-5] PHẢI cố gắng xác thực các bộ lọc ý định trong quá trình cài đặt ứng dụng và đặt tất cả các bộ lọc ý định URI được xác thực thành công làm trình xử lý ứng dụng mặc định cho URI của chúng.
- CÓ THỂ đặt các bộ lọc ý định URI cụ thể làm trình xử lý ứng dụng mặc định cho URI của chúng, nếu chúng được xác minh thành công nhưng các bộ lọc URI ứng viên khác không xác minh được. Nếu quá trình triển khai thiết bị thực hiện việc này, thì phương thức đó PHẢI cung cấp chế độ ghi đè mẫu cho mỗi URI thích hợp trong trình đơn cài đặt.
- PHẢI cung cấp cho người dùng các điều khiển Đường liên kết trong ứng dụng mỗi ứng dụng trong Cài đặt as
follows:
- [C-0-6] Người dùng PHẢI có thể ghi đè toàn diện hành vi liên kết ứng dụng mặc định cho một ứng dụng là: luôn mở, luôn hỏi hoặc không bao giờ mở, phải áp dụng như nhau cho tất cả các bộ lọc ý định URI đề xuất.
- [C-0-7] The user PHẢI can to see a list of the header URI intent filter.
- Việc triển khai thiết bị CÓ THỂ cung cấp cho người dùng khả năng ghi đè các bộ lọc ý định URI đề xuất cụ thể đã được xác minh thành công, trên cơ sở bộ lọc theo ý định.
- [C-0-8] Việc triển khai thiết bị PHẢI cung cấp cho người dùng khả năng xem và ghi đè bộ lọc ý định URI ứng viên cụ thể nếu triển khai thiết bị cho phép một số bộ lọc ý định URI đề xuất xác minh thành công trong khi một số khác có thể không thành công.
3.2.3.3. Không gian tên ý định
- [C-0-1] Device triển khai KHÔNG ĐƯỢC bao gồm bất kỳ thành phần Android nào tôn vinh bất kỳ ý định mới hoặc mẫu ý định truyền tin nào bằng cách sử dụng ACTION, CATEGORY hoặc chuỗi khóa khác trong không gian tên android.* hoặc com.android.*.
- [C-0-2] Device triển khai KHÔNG PHẢI bao gồm bất kỳ thành phần Android nào tôn vinh bất kỳ ý định mới hoặc mẫu ý định truyền tin nào bằng cách sử dụng ACTION, CATEGORY hoặc chuỗi khóa khác trong không gian gói thuộc về một tổ chức khác.
- [C-0-3] Device triển khai KHÔNG PHẢI thay đổi hoặc mở rộng bất kỳ mẫu ý định nào được liệt kê trong section 3.2.3.1.
- Quá trình triển khai thiết bị CÓ THỂ bao gồm các mẫu ý định sử dụng không gian tên rõ ràng và được liên kết rõ ràng với tổ chức của chính chúng. Quy định cấm này tương tự như quy định được chỉ định cho các lớp ngôn ngữ Java trong mục 3.6.
3.2.3.4. Ý định truyền tin
Các ứng dụng bên thứ ba dựa vào nền tảng để truyền phát một số ý định nhất định nhằm thông báo cho chúng về những thay đổi trong môi trường phần cứng hoặc phần mềm.
Triển khai thiết bị:
- [C-0-1] NOT broadcast the Public broadcast intent listed here in response to compatibility system events as description in the SDK documents. Lưu ý rằng yêu cầu này không xung đột với mục 3.5 vì giới hạn đối với ứng dụng ở chế độ nền cũng được mô tả trong tài liệu SDK. Ngoài ra, một số ý định truyền tin có điều kiện dựa trên khả năng hỗ trợ phần cứng, nếu thiết bị hỗ trợ phần cứng cần thiết, thì chúng PHẢI truyền phát ý định và cung cấp hành vi cùng dòng kèm theo tài liệu về SDK.
3.2.3.5. Ý định của ứng dụng có điều kiện
Android có các chế độ cài đặt giúp người dùng dễ dàng chọn các ứng dụng mặc định, chẳng hạn như Màn hình chính hoặc SMS.
Trong trường hợp ý nghĩa, thiết bị triển khai PHẢI cung cấp trình đơn cài đặt tương tự và tương thích với mô hình bộ lọc ý định và phương thức API được mô tả trong tài liệu SDK như bên dưới.
Nếu quá trình triển khai thiết bị báo cáo android.software.home_screen
, họ sẽ:
- [C-1-1] NOT Hãy tôn trọng ý định
android.settings.HOME_SETTINGS
để hiện trình đơn cài đặt ứng dụng mặc định cho Màn hình chính.
Nếu quá trình triển khai thiết bị báo cáo android.hardware.telephony.promotional, thì họ sẽ:
[C-2-1] PHẢI cung cấp trình đơn cài đặt sẽ gọi ý định
android.provider.Telephony.ACTION_CHANGE_DEFAULT
để hiển thị hộp thoại để thay đổi ứng dụng SMS mặc định.[C-2-2] PHẢI Sử dụng ý định
android.telecom.action.CHANGE_DEFAULT_DIALER
để hiện hộp thoại cho phép người dùng thay đổi ứng dụng Điện thoại mặc định.- PHẢI sử dụng giao diện người dùng của ứng dụng điện thoại mặc định do người dùng chọn cho các cuộc gọi đến và đi, ngoại trừ các cuộc gọi khẩn cấp, mà sẽ sử dụng ứng dụng Điện thoại được cài đặt sẵn.
[C-2-3] Hãy tôn trọng ý định android.telecom.action.CHANGE_PHONE_ACCOUNTS để cung cấp khả năng tương tác của người dùng để định cấu hình
ConnectionServices
liên kết vớiPhoneAccounts
, cũng như một PhoneAccount mặc định mà nhà cung cấp dịch vụ viễn thông sẽ sử dụng để thực hiện các cuộc gọi đi. Việc triển khai AOSP đáp ứng yêu cầu này bằng cách bổ sung trình đơn " tuỳ chọn tài khoản gọi điện" trong trình đơn cài đặt "Cuộc gọi".[C-2-4] PHẢI allow
android.telecom.CallRedirectionService
cho một ứng dụng nắm giữ vai tròandroid.app.role.CALL_REDIRECTION
.[C-2-5] PHẢI cung cấp khả năng tương tác của người dùng để chọn một ứng dụng giữ vai trò
android.app.role.CALL_REDIRECTION
.[C-2-6] PHẢI Sử dụng ý định của android.intent.action.SENDTO và android.intent.action.VIEW và cung cấp hoạt động để gửi/hiển thị tin nhắn SMS.
[C-SR-1] AreĐể tôi đề xuất các ý định tôn trọng android.intent.action.ANSWER, android.intent.action.CALL, android.intent.action.CALL_NÚT, android.intent.action.VIEW & android.intent.action.DIAL intents with a with a above Quayer application that canhandles these ideas and
Nếu quá trình triển khai thiết bị báo cáo android.hardware.nfc.hce
, họ sẽ:
- [C-3-1] PHẢI tôn trọng ý định android.settings.NFC_PAYMENT_SETTINGS để hiện một trình đơn cài đặt ứng dụng mặc định cho phương thức thanh toán không tiếp xúc.
- [C-3-2] PHẢI Hãy vinh danh android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT ý định hiển thị hoạt động mở ra hộp thoại yêu cầu người dùng thay đổi dịch vụ mô phỏng thẻ mặc định cho một danh mục nhất định như được mô tả trong SDK.
Nếu quá trình triển khai thiết bị báo cáo android.hardware.nfc
, họ sẽ:
Nếu quá trình triển khai thiết bị báo cáo android.hardware.bluetooth
, họ sẽ:
- [C-5-1] PHẢI tôn trọng ý định 'android.bluetooth.adapter.action.REQUEST_ENABLE' và hiển thị hoạt động hệ thống để cho phép người dùng bật Bluetooth.
- [C-5-2] PHẢI tôn trọng ý định "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE" và hiện một hoạt động hệ thống yêu cầu chế độ có thể phát hiện.
Nếu các quá trình triển khai thiết bị hỗ trợ tính năng DND, thì các thiết bị đó sẽ:
- [C-6-1] PHẢI triển khai một hoạt động sẽ phản hồi ý định
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
, mà cho cách triển khai với UI_MODE_TYPE_NORMAL nó PHẢI là hoạt động trong đó người dùng có thể cấp hoặc từ chối quyền truy cập ứng dụng vào cấu hình chính sách DND.
Nếu quá trình triển khai thiết bị cho phép người dùng sử dụng các phương thức nhập của bên thứ ba trên thiết bị, thì họ:
- [C-7-1] PHẢI cung cấp một cơ chế người dùng có thể truy cập để thêm và cấu hình
phương thức nhập của bên thứ ba trong phản hồi cho
android.settings.INPUT_METHOD_SETTINGS
intent.
Nếu quá trình triển khai thiết bị có hỗ trợ dịch vụ hỗ trợ tiếp cận của bên thứ ba, thì họ:
- [C-8-1] FOR the
android.settings.ACCESSIBILITY_SETTINGS
intent to provide a user-access basic to enable and disabled thethird-party accessibility services visible the beta accessibility services.
Nếu các hoạt động triển khai thiết bị có hỗ trợ Wi-Fi Easy Connect và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì chúng:
- [C-9-1] PHẢI triển khai các API Settings#ACTION_Processes_WiFi_EASY_CONNECT_URI có ý định như mô tả trong tài liệu về SDK.
Nếu các hoạt động triển khai thiết bị cung cấp chế độ tiết kiệm dữ liệu, chúng sẽ:
- [C-10-1] PHẢI cung cấp giao diện người dùng trong các chế độ cài đặt, xử lý ý định
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
, cho phép người dùng thêm ứng dụng vào hoặc xoá ứng dụng khỏi danh sách cho phép.
Nếu các hoạt động triển khai thiết bị không cung cấp chế độ tiết kiệm dữ liệu, chúng sẽ:
- [C-11-1] NOT have an activity that handling the
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
intent but May perform nó as a no-op.
Nếu các quá trình triển khai thiết bị khai báo tính năng hỗ trợ cho máy ảnh qua android.hardware.camera.any
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-12-3] xử lý và PHẢI chỉ cho phép cài đặt trước ứng dụng Android để xử lý các ý định sau
MediaStore.ACTION_IMAGE_CAPTURE
,MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, andMediaStore.ACTION_VIDEO_CAPTURE
như mô tả trong tài liệu SDK.
Nếu quá trình triển khai thiết bị báo cáo android.software.device_admin
, họ sẽ:
[C-13-1] PHẢI tôn trọng ý định
android.app.action.ADD_DEVICE_ADMIN
to called a UI to Bring the user through add the device admin to the system (or allowed they to take the system for the system).[C-13-2] PHẢI tôn trọng ý định android.app.action.PROVISION_MANAGED_PROFILE, android.app.action.SET_NEW_PARENT_PROFILE_ MẬT, android.app.action.SET_NEW_CUSTOMER & android.app.action.START_ENCRYPTION và có hoạt động để cung cấp phương thức thực hiện cho các ý định này tại đây.
Nếu các hoạt động triển khai thiết bị khai báo cờ tính năng android.software.autofill
, thì các hoạt động đó:
- [C-14-1] PHẢI triển khai đầy đủ các API
AutofillService
vàAutofillManager
và tôn trọng ý định android.settings.REQUEST_SET_AutoFILL_SERVICE để hiện trình đơn cài đặt ứng dụng mặc định để bật và tắt tính năng tự động điền cũng như thay đổi dịch vụ tự động điền mặc định cho người dùng.
Nếu quá trình triển khai thiết bị bao gồm một ứng dụng được cài đặt sẵn hoặc muốn cho phép các ứng dụng bên thứ ba truy cập số liệu thống kê về việc sử dụng, thì ứng dụng đó:
- [C-SR-2] are liền dải lựa chọn để cung cấp cơ chế người dùng có thể truy cập để cấp hoặc thu hồi quyền truy cập vào số liệu thống kê sử dụng trong phản hồi cho ý định android.settings.ACTION_USAGE_ACCESS_SETTINGS cho các ứng dụng khai báo quyền
android.permission.PACKAGE_USAGE_STATS
.
Nếu quá trình triển khai thiết bị có ý định không cho phép bất kỳ ứng dụng nào (bao gồm cả ứng dụng được cài đặt sẵn) truy cập số liệu thống kê về việc sử dụng, thì các ứng dụng đó:
- [C-15-1] PHẢI vẫn có hoạt động xử lý mẫu ý định android.settings.ACTION_USAGE_ACCESS_SETTINGS nhưng PHẢI triển khai mẫu dưới dạng không hoạt động, tức là có một hành vi tương đương như khi người dùng bị từ chối để truy cập.
Nếu các hoạt động triển khai thiết bị hiển thị đường liên kết đến các hoạt động được chỉ định bởi autofillService_passwordsActivity trong phần Cài đặt hoặc liên kết đến mật khẩu của người dùng thông qua một cơ chế tương tự, thì các hoạt động đó:
[C-16-1] PHẢI hiển thị những đường liên kết như vậy cho tất cả dịch vụ tự động điền đã cài đặt.
[C-17-1] [Chuyển sang 2.2.3]
Nếu các hoạt động triển khai thiết bị hỗ trợ VoiceInteractionService
và có nhiều ứng dụng sử dụng API này được cài đặt cùng một lúc, thì chúng:
- [C-18-1] NOT Hãy tôn trọng ý định
android.settings.ACTION_VOICE_INPUT_SETTINGS
để hiển thị trình đơn cài đặt ứng dụng mặc định cho tính năng nhập bằng giọng nói và hỗ trợ.
Nếu các hoạt động triển khai thiết bị báo cáo tính năng android.hardware.audio.output
, thì chúng sẽ:
- [C-SR-3] Are trì hoãn đề xuất để tôn trọng android.intent.action.TTS_SERVICE, android.speech.tts.engine.INSTALL_TTS_DATA & android.speech.tts.engine.GET_SAMPLE_TEXT ý định có một hoạt động để cung cấp phương thức thực hiện cho các ý định này như mô tả trong SDK tại đây.
Android có hỗ trợ trình bảo vệ màn hình tương tác, trước đây gọi là Dreams (Giấc mơ). Trình bảo vệ màn hình cho phép người dùng tương tác với các ứng dụng khi thiết bị kết nối với nguồn điện ở trạng thái rảnh hoặc được gắn vào đế để bàn. Triển khai thiết bị:
- Cần bao gồm tính năng hỗ trợ trình bảo vệ màn hình và cung cấp tuỳ chọn cài đặt cho người dùng để định cấu hình trình bảo vệ màn hình nhằm phản hồi ý định
android.settings.DREAM_SETTINGS
.
3.2.4. Hoạt động trên màn hình phụ hoặc nhiều màn hình
Nếu các hoạt động triển khai thiết bị cho phép chạy các Hoạt động Android thông thường trên nhiều màn hình, thì chúng:
- [C-1-1] PHẢI đặt cờ tính năng
android.software.activities_on_secondary_displays
. - [C-1-2]{4} vận chuyển API tương thích tương tự như hoạt động đang chạy trên màn hình chính.
- [C-1-3] PHẢI land the new activity on the same display as the activity that
launched it, when the new activity isChỉ định mà không chỉ định một mục tiêu
display via the
ActivityOptions.setLaunchDisplayId()
API. - [C-1-4] PHẢI cancel all activities, when a display with the
Display.FLAG_PRIVATE
flag is removed. - [C-1-5]{4}secure hide content on all screens when the device is blocked
with a secure key screen,, trừ khi ứng dụng chọn trong để hiển thị trên đầu màn hình khoá
bằng cách sử dụng
Activity#setShowWhenLocked()
API. - Nên có
android.content.res.Configuration
tương ứng với màn hình đó để được hiển thị, hoạt động chính xác và duy trì khả năng tương thích nếu một hoạt động được khởi chạy trên màn hình phụ.
Nếu các hoạt động triển khai thiết bị cho phép chạy Hoạt động Android thông thường trên màn hình phụ và màn hình phụ sẽ có cờ android.view.Display.FLAG_PRIVATE:
- [C-3-1] Only the owner of that display, system, and activities that are already on that display PHẢI be possible to launch to it. Mọi người đều có thể chạy đến một màn hình có cờ android.view.Display.FLAG_PUBLIC.
3.3. Khả năng tương thích với API gốc
Khó tương thích với mã gốc. Vì lý do này, các trình triển khai thiết bị là:
- [C-SR-1] Cách Dẫn Quảng Cáo để sử dụng các triển khai của thư viện được liệt kê bên dưới từ Dự án nguồn mở Android ngược dòng.
3.3.1. Giao diện nhị phân của ứng dụng
Mã byte Dalvik được quản lý có thể gọi vào mã gốc được cung cấp trong tệp .apk
của ứng dụng dưới dạng tệp ELF .so
được biên dịch cho kiến trúc phần cứng thích hợp của thiết bị. Vì mã gốc phụ thuộc nhiều vào công nghệ bộ xử lý cơ bản, nên Android xác định một số Giao diện nhị phân của ứng dụng (ABI) trong Android NDK.
Triển khai thiết bị:
- [C-0-1] PHẢI tương thích với một hoặc nhiều ABI Android NDK đã xác định.
- [C-0-2] NOT include support for code running in the managed environment to call into native code, using the standard Java Native Interface (JNI) semantics.
- [C-0-3] NOT be source-compatible (i.e. header-compatible) and binary-compatible (for the ABI) with mỗi required library in the list dưới đây.
- [C-0-5] PHẢI báo cáo chính xác the native Application Binary Interface
(ABI) supported by the device, via the
android.os.Build.SUPPORTED_ABIS
,android.os.Build.SUPPORTED_32_BIT_ABIS
, andandroid.os.Build.SUPPORTED_64_BIT_ABIS
parameters, mỗi một dấu phẩy phân tách danh sách các ABIs order from the hầu hết đến ít nhất được ưa thích one. [C-0-6] PHẢI báo cáo, qua các thông số trên, một tập hợp con của danh sách ABI sau đây và KHÔNG ĐƯỢC báo cáo bất kỳ ABI nào không có trên danh sách.
armeabi
(không còn được NDK hỗ trợ làm mục tiêu)armeabi-v7a
arm64-v8a
x86
x86-64
[C-0-7] PHẢI make all the following libraries, cung cấp API gốc, có sẵn cho các ứng dụng bao gồm mã gốc:
- libaaudio.so (Hỗ trợ âm thanh gốc AAudio)
- libamidi.so (hỗ trợ MIDI gốc, nếu tính năng
android.software.midi
được xác nhận quyền sở hữu theo mô tả trong Mục 5.9) - libandroid.so (hỗ trợ hoạt động gốc trên Android)
- libc (thư viện C)
- libcamera2ndk.so
- libdl (trình liên kết động)
- libEGL.so (quản lý nền tảng OpenGL gốc)
- libGLESv1_CM.so (OpenGL ES 1.x)
- libGLESv2.so (OpenGL ES 2.0)
- libGLESv3.so (OpenGL ES 3.x)
- libicui18n.so
- libicuuc.so
- libjnigraphics.so
- liblog (ghi nhật ký Android)
- libmediandk.so (hỗ trợ các API nội dung nghe nhìn gốc)
- libm (thư viện toán học)
- libneuralnetworks.so (API Mạng Neural)
- libOpenMAXAL.so (Hỗ trợ OpenMAX AL 1.0.1)
- libOpenSLES.so (Hỗ trợ âm thanh OpenSL ES 1.0.1)
- libRS.so
- libstdc++ (Hỗ trợ tối thiểu cho C++)
- libvulkan.so (Vulkan)
- libz (nén Zlib)
- Giao diện JNI
[C-0-8] KHÔNG ĐƯỢC thêm hoặc xoá các hàm công khai cho các thư viện gốc được liệt kê ở trên.
[C-0-9] PHẢI list additional non-AOSP libraries directly to third-party apps in
/vendor/etc/public.libraries.txt
.[C-0-10] NOT showing any other native libraries, specified and provided in AOSP as system libraries, to third-party apps targeted API level 24 or higher as they are supported.
[C-0-11] NOT export all the OpenGL ES 3.1 and Android Extension Pack functionIcon (Biểu tượng hàm, như được định nghĩa trong NDK, thông qua thư viện
libGLESv3.so
). Lưu ý rằng trong khi tất cả các biểu tượng phải hiện diện, phần 7.1.4.1 mô tả chi tiết hơn các yêu cầu cho khi triển khai đầy đủ của từng hàm tương ứng được dự kiến.[C-0-12] export function forms for the Core Vulkan 1.0 function symbols, as well as the
VK_KHR_surface
,VK_KHR_android_surface
,VK_KHR_swapchain
,VK_KHR_maintenance1
, andVK_KHR_get_physical_device_properties2
extensions through thelibvulkan.so
library. Lưu ý rằng Mặc dù tất cả các biểu tượng PHẢI be Hiển thị, phần 7.1.4.2 mô tả chi tiết hơn các yêu cầu khi thực hiện đầy đủ các hàm tương ứng được dự kiến.NÊN được dựng bằng cách sử dụng mã nguồn và tệp tiêu đề có sẵn trong Dự án nguồn mở Android ngược dòng
Xin lưu ý rằng các bản phát hành Android trong tương lai có thể hỗ trợ các ABI khác.
3.3.2. Khả năng tương thích với mã gốc ARM 32 bit
Nếu các quá trình triển khai thiết bị báo cáo có hỗ trợ ABI armeabi
, thì chúng:
- [C-3-1] PHẢI cũng hỗ trợ
armeabi-v7a
và báo cáo hỗ trợ của nó, vìarmeabi
chỉ dành cho khả năng tương thích ngược với các ứng dụng cũ hơn.
Nếu các quá trình triển khai thiết bị báo cáo sự hỗ trợ của ABI armeabi-v7a
, thì đối với các ứng dụng dùng ABI này, chúng:
[C-2-1] PHẢI include the following rows in
/proc/cpuinfo
, and nên NOT thay đổi các giá trị trên cùng một thiết bị, ngay cả khi chúng được đọc bởi các ABI khác.Features:
, theo sau là danh sách mọi tính năng CPU ARMv7 không bắt buộc mà thiết bị hỗ trợ.CPU architecture:
, theo sau là một số nguyên mô tả kiến trúc ARM được hỗ trợ cao nhất của thiết bị (ví dụ: "8" đối với thiết bị ARMv8).
[C-2-2]{4} Always keep the following operations available, ngay cả in the case where the ABI is specified on an ARMv8Năng lượng, hoặc through native CPU support or through information emulation:
- Hướng dẫn về SWP và SWPB.
- Các vận hành rào cản CP15ISB, CP15DSB và CP15DMB.
[C-2-3] PHẢI include support for the Advanced SIMD (a.k.a. NEON) Extension.
3,4. Khả năng tương thích trên web
3.4.1. Khả năng tương thích với WebView
Nếu các hoạt động triển khai thiết bị cung cấp hoạt động triển khai hoàn chỉnh của API android.webkit.Webview
, thì chúng:
- [C-1-1] PHẢI báo cáo
android.software.webview
. - [C-1-2] PHẢI use the Chromium Project build
from the upstream Android Open Source Project on the Android
13 cành dành cho việc triển khai của
android.webkit.WebView
API. [C-1-3] Chuỗi tác nhân người dùng do WebView báo cáo PHẢI ở định dạng sau:
Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [Build/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile Safari/537.36
- Giá trị của chuỗi $(VERSION) PHẢI giống như giá trị của android.os.Build.VERSION.Release.
- Chuỗi $(MODEL) CÓ THỂ rỗng, nhưng nếu không trống thì nó PHẢI có cùng giá trị như android.os.Build.MODEL.
- "Build/$(BUILD)" CÓ THỂ bị bỏ qua, nhưng nếu nó hiện diện thì chuỗi $(BUILD) PHẢI giống như giá trị cho android.os.Build.ID.
- Giá trị của chuỗi $(CHROMIUM_VER) PHẢI là phiên bản của Chromium trong Dự án nguồn mở Android ngược dòng.
- Quá trình triển khai thiết bị CÓ THỂ bỏ qua Thiết bị di động trong chuỗi tác nhân người dùng.
The WebView component nên include support for as more HTML5 features as possible and if nó supported the feature right instead to the HTML5 specifications (Thông số kỹ thuật HTML5).
[C-1-4] PHẢI display the provided content or remote URL content in a process that is different from the application that GTGTs the WebView. Đặc biệt là the the private renderer Quá trình xử lý phải giữ đặc quyền thấp hơn, chạy dưới dạng một mã người dùng riêng biệt, không có quyền truy cập vào thư mục dữ liệu của ứng dụng, có không có quyền truy cập mạng trực tiếp, và chỉ có quyền truy cập vào các dịch vụ hệ thống tối thiểu-bắt buộc không thể vượt qua Binder. Việc triển khai AOSP của WebView đáp ứng yêu cầu này.
Xin lưu ý rằng nếu các hoạt động triển khai thiết bị là 32 bit hoặc khai báo cờ tính năng android.hardware.ram.low
, thì các hoạt động triển khai đó sẽ được miễn khỏi C-1-3.
3.4.2. Khả năng tương thích với trình duyệt
Nếu các hoạt động triển khai thiết bị bao gồm một ứng dụng Trình duyệt độc lập để duyệt web nói chung, thì các hoạt động đó:
- [C-1-1] PHẢI support từng of these API linked with HTML5:
- [C-1-2] PHẢI support the HTML5/W3C webstorage API and NÊN support the HTML5/W3C IndexedDB API. Xin lưu ý rằng vì các cơ quan tiêu chuẩn phát triển web đang chuyển sang ưu tiên IndexedDB thay vì lưu trữ web, IndexedDB dự kiến sẽ trở thành một thành phần bắt buộc trong phiên bản Android trong tương lai.
- CÓ THỂ gửi một chuỗi tác nhân người dùng tuỳ chỉnh trong ứng dụng Trình duyệt độc lập.
- nên triển khai hỗ trợ cho as much of HTML5 as possible on the cam Browser application (úc based on the upstream WebKit Browser application or aLựa chọn thứ ba thay thế).
Tuy nhiên, nếu các hoạt động triển khai thiết bị không bao gồm một ứng dụng Trình duyệt độc lập, thì các hoạt động triển khai đó:
- [C-2-1] PHẢI vẫn hỗ trợ các mẫu ý định công khai như mô tả trong section 3.2.3.1.
3.5. Khả năng tương thích về hành vi của API
Triển khai thiết bị:
- [C-0-9] PHẢI đảm bảo rằng API hành vi tương thích được áp dụng cho tất cả các ứng dụng đã cài đặt trừ khi chúng bị hạn chế như mô tả trong Mục 3.5.1.
- [C-0-10] KHÔNG PHẢI triển khai phương pháp danh sách cho phép đảm bảo khả năng tương thích hành vi của API chỉ dành cho các ứng dụng được chọn bởi người triển khai thiết bị.
Hành vi của từng loại API (được quản lý, mềm, gốc và web) phải phù hợp với cách triển khai ưu tiên của Dự án nguồn mở Android ở chế độ ngược dòng. Một số lĩnh vực tương thích cụ thể là:
- [C-0-1] Devices PHẢI NOT change the Behavior or semantics of a standard intent.
- [C-0-2] Devices PHẢI NOT changes the lifecycle or lifecycle semantics of a specific type of system component (such as Service, Activity, ContentProvider, v.v.).
- [C-0-3] Các thiết bị KHÔNG ĐƯỢC thay đổi ngữ nghĩa của quyền tiêu chuẩn.
- Thiết bị KHÔNG ĐƯỢC thay đổi các giới hạn được thực thi trên các ứng dụng nền.
Cụ thể hơn, đối với các ứng dụng nền:
- [C-0-4] they PHẢI dừng thực thi các lệnh gọi lại được đăng ký bởi ứng dụng để nhận dữ liệu đầu ra từ
GnssMeasurement
vàGnssNavigationMessage
. - [C-0-5] they PHẢI rate-limit the frequency of updates that are
Provide to the app through the
LocationManager
API class or theWifiManager.startScan()
method. - [C-0-6] if the app is targeted API level 25 trở lên, they PHẢI NOT
allow to register broadcast receivers for the implicit broadcast of tiêu chuẩn Android hòa in the app's manifest, except the broadcast
intent request a
"signature"
or"signatureOrSystem"
protectionLevel
permissions or are on the Danh sách miễn trừ. - [C-0-7] if the app is targeted API level 25 or higher, they PHẢI stops
the app's background services, just as if the app has called the
services'
stopSelf()
method, sâu phi ứng dụng được đặt trên một danh sách cho phép tạm thời để xử lý tác vụ đó's visible to the user. - [C-0-8] if the app istargeting API level 25 trở lên, they PHẢI phát hành các khóa chế độ thức ứng dụng giữ.
- [C-0-4] they PHẢI dừng thực thi các lệnh gọi lại được đăng ký bởi ứng dụng để nhận dữ liệu đầu ra từ
- [C-0-11] Devices PHẢI Return the following security provider as the first
7 array values from the
Security.getProviders()
method, in the given order and with the given to (as answers byProvider.getName()
) and classes, except the app has changed the list viainsertProviderAt()
orremoveProvider()
. Thiết bị CÓ THỂ trả về các nhà cung cấp bổ sung sau danh sách nhà cung cấp được chỉ định bên dưới.- AndroidNSSP –
android.security.net.config.NetworkSecurityConfigProvider
- AndroidOpenSSL –
com.android.org.conscrypt.OpenSSLProvider
- CertPathProvider –
sun.security.provider.CertPathProvider
- AndroidKeyStoreBCWorkChính –
android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
- BC –
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
- HarmonyJSSE –
com.android.org.conscrypt.JSSEProvider
- AndroidKeyStore –
android.security.keystore.AndroidKeyStoreProvider
- AndroidNSSP –
Danh sách bên trên chưa đầy đủ. Bộ kiểm tra tính tương thích (CTS) kiểm thử khả năng tương thích hành vi của các phần quan trọng của nền tảng, nhưng không phải tất cả. Trình triển khai có trách nhiệm đảm bảo khả năng tương thích về hành vi với Dự án nguồn mở Android. Vì lý do này, thiết bị triển khai NÊN sử dụng mã nguồn có sẵn thông qua Dự án nguồn mở Android nếu có thể, thay vì triển khai lại các phần quan trọng của hệ thống.
3.5.1. Hạn chế về ứng dụng
Nếu việc triển khai thiết bị triển khai một cơ chế độc quyền để hạn chế các ứng dụng (ví dụ: thay đổi hoặc hạn chế hành vi của API được mô tả trong SDK) và cơ chế đó hạn chế hơn Nhóm chế độ chờ ứng dụng bị hạn chế, thì chúng:
- [C-1-1] PHẢI cho phép người dùng xem danh sách các ứng dụng bị hạn chế.
- [C-1-2] PHẢI cung cấp thuộc tính tương tác của người dùng để bật / tắt tất cả các hạn chế thuộc quyền sở hữu này trên mỗi ứng dụng.
[C-1-3]{4} not automatic Đơn vị hạn chế độc quyền mà không có evidence ofBáo cáo tình trạng sức khoẻ kém hệ thống, nhưng CÓ THỂ áp dụng hạn chế trên các ứng dụng upon phát hiện của vấn đề sức khoẻ hệ thống, bị mắc kẹt Wlocks, long running services, và các tiêu chí khác. Tiêu chí CÓ THỂ được xác định bởi người triển khai thiết bị nhưng PHẢI liên quan đến tác động của ứng dụng đối với tình trạng hệ thống. Các tiêu chí khác không hoàn toàn liên quan đến tình trạng hệ thống, chẳng hạn như tình trạng thiếu mức độ phổ biến của ứng dụng trên thị trường, KHÔNG được dùng làm tiêu chí.
[C-1-4] PHẢI not tự động áp dụng các hạn chế độc quyền này cho các ứng dụng khi người dùng đã tắt các hạn chế ứng dụng theo cách thủ công và CÓ THỂ đề xuất người dùng để áp dụng các hạn chế độc quyền này.
[C-1-5] PHẢI thông báo cho người dùng nếu các hạn chế độc quyền này được áp dụng tự động cho một ứng dụng. Những thông tin đó PHẢI được cung cấp trong khoảng thời gian 24 giờ trước khi áp dụng các hạn chế về quyền sở hữu này.
[C-1-6] NOT return true cho phương thức ActivityManager.isBackgroundRestricted() cho mọi lệnh gọi API từ một ứng dụng.
[C-1-7] KHÔNG PHẢI hạn chế ứng dụng trên nền trước được sử dụng rõ ràng bởi người dùng.
[C-1-8]{4}Hãy tạm ngưng những hạn chế độc quyền này trên ứng dụng bất cứ khi nào người dùng bắt đầu sử dụng ứng dụng một cách rõ ràng, khiến ứng dụng đó trở thành ứng dụng trên nền trước.
[C-1-10] PHẢI cung cấp tài liệu hoặc trang web công khai và rõ ràng mô tả cách áp dụng các hạn chế về quyền sở hữu. Tài liệu hoặc trang web này PHẢI có thể liên kết từ các tài liệu SDK Android và PHẢI bao gồm:
- Điều kiện kích hoạt cho các quy định hạn chế về quyền sở hữu riêng.
- Nội dung và cách thức hạn chế ứng dụng.
- Cách để ứng dụng có thể được miễn các hạn chế đó.
- Cách một ứng dụng có thể yêu cầu miễn các hạn chế về quyền sở hữu riêng, nếu những ứng dụng đó hỗ trợ trường hợp miễn trừ như vậy cho ứng dụng mà người dùng có thể cài đặt.
Nếu một ứng dụng được cài đặt sẵn trên thiết bị và người dùng chưa từng sử dụng ứng dụng đó một cách rõ ràng trong hơn 30 ngày, thì [C-1-3] [C-1-5] sẽ được miễn trừ.
Nếu hoạt động triển khai thiết bị mở rộng các hạn chế đối với ứng dụng được triển khai trong AOSP, thì chúng:
- [C-2-1]PHẢI làm theo cách triển khai được mô tả trong tài liệu này.
3.5.2. Trạng thái ngủ đông của ứng dụng
Nếu các hoạt động triển khai thiết bị bao gồm Trạng thái ngủ đông của ứng dụng được đưa vào AOSP hoặc mở rộng tính năng có trong AOSP, thì chúng:
- [C-1-1] PHẢI đáp ứng tất cả các yêu cầu trong phần 3.5.1 ngoại trừ cho [C-1-6] and [C-1-3].
- [C-1-2] PHẢI chỉ áp dụng quy tắc hạn chế trên ứng dụng dành cho người dùng khi có bằng chứng mà người dùng chưa sử dụng ứng dụng trong một khoảng thời gian nào đó. này Thời lượng là "{ linh động đề xuất" để là một tháng hoặc lâu hơn. Cách sử dụng PHẢI được xác định bằng sự tương tác rõ ràng của người dùng qua API UsageStats#getLastTimeImpressions() hoặc bất kỳ điều gì có thể khiến ứng dụng rời khỏi trạng thái buộc dừng, bao gồm liên kết dịch vụ, liên kết nhà cung cấp nội dung, thông báo rõ ràng, v.v.
- [C-1-3] PHẢI only apply Restrictions affected all device users when there is proof that the package has not been used by Google mọi người dùng trong một khoảng thời gian. Khoảng thời gian này KHÔNG ĐƯỢC ĐỀ XUẤT là từ một tháng trở lên.
- [C-1-4] KHÔNG ĐƯỢC kết xuất ứng dụng không thể phản hồi ý định hoạt động, liên kết dịch vụ, yêu cầu nhà cung cấp nội dung hoặc thông báo rõ ràng.
Trạng thái ngủ đông của ứng dụng trong AOSP đáp ứng các yêu cầu trên.
3.6. Không gian tên API
Android tuân theo các quy ước không gian tên của gói và lớp được xác định bằng ngôn ngữ lập trình Java. Để đảm bảo khả năng tương thích với các ứng dụng bên thứ ba, trình triển khai thiết bị KHÔNG ĐƯỢC thực hiện bất kỳ sửa đổi bị cấm nào (xem bên dưới) đối với các không gian tên gói này:
java.*
javax.*
sun.*
android.*
androidx.*
com.android.*
Tức là chúng:
- [C-0-1]{4} NOT xóa the côngBộ API trên nền tảng Android bằng cách thay đổi bất kỳ phương thức hoặc chữ ký lớp, hoặc bằng cách xoá các lớp hoặc lớp.
- [C-0-2] PHẢI NOT add bất kỳ công khai phần tử nào (chẳng hạn như lớp học hoặc giao diện, hoặc trường hoặc phương thức đến lớp hoặc giao diện hiện tại) hoặc Test hoặc System API to the APIs in the above spaces. "Phần tử được hiển thị công khai" là bất kỳ cấu trúc nào không được trang trí bằng điểm đánh dấu "@ẩn" như được dùng trong mã nguồn Android ngược dòng.
Trình triển khai thiết bị CÓ THỂ sửa đổi cách triển khai cơ bản của các API, nhưng những sửa đổi như vậy:
- [C-0-3] PHẢI NOT huỷ ra hành vi đã chỉ định và chữ ký ngôn ngữ Java của bất kỳ API công khai nào.
- [C-0-4] KHÔNG ĐƯỢC quảng cáo hoặc cung cấp cho nhà phát triển.
Tuy nhiên, trình triển khai thiết bị CÓ THỂ thêm API tuỳ chỉnh bên ngoài không gian tên chuẩn của Android, ngoại trừ các API tuỳ chỉnh:
- [C-0-5] PHẢI NOT be in aLưu tên sở hữu bởi hoặc tham chiếu đến một tổ chức khác. Ví dụ: device triển khai KHÔNG ĐƯỢC thêm API vào
com.google.*
hoặc không gian tên tương tự: chỉ Google mới có thể do vậy. Tương tự, Google KHÔNG ĐƯỢC thêm API vào không gian tên của công ty khác. - [C-0-6] PHẢI be packaged in an Android shared library so that only apps that different use they (via the <uses-library> basic) are affected by the increased nhớ Usage of that APIs.
Trình triển khai thiết bị CÓ THỂ thêm API tuỳ chỉnh bằng ngôn ngữ gốc, bên ngoài API NDK, nhưng các API tuỳ chỉnh:
- [C-1-1] KHÔNG ĐƯỢC Ở trong thư viện NDK hoặc thư viện do tổ chức khác sở hữu như mô tả tại đây.
Nếu một trình triển khai thiết bị đề xuất cải thiện một trong các không gian tên gói ở trên (chẳng hạn như bằng cách thêm chức năng mới hữu ích vào API hiện có hoặc thêm API mới), trình triển khai NÊN truy cập source.android.com và bắt đầu quy trình đóng góp các thay đổi và mã, theo thông tin trên trang web đó.
Hãy lưu ý rằng các hạn chế ở trên tương ứng với quy ước tiêu chuẩn để đặt tên API bằng ngôn ngữ lập trình Java; phần này chỉ nhằm mục đích củng cố các quy ước đó và làm cho chúng liên kết bằng cách đưa vào Định nghĩa về khả năng tương thích này.
3,7. Khả năng tương thích trong thời gian chạy
Triển khai thiết bị:
[C-0-1] PHẢI hỗ trợ định dạng Dalvik Executable (DEX) đầy đủ và Dalvik was specifications and semantics (Thông số kỹ thuật và ngữ nghĩa cho mã Dalvik).
[C-0-2] PHẢI cấu hình thời gian chạy Dalvik để phân bổ bộ nhớ trong khả năng kết hợp với nền tảng Android ngược dòng, và như được chỉ định bởi bảng sau. (Xem mục 7.1.1 để biết định nghĩa về kích thước màn hình và mật độ màn hình.)
NÊN use Android RunTime (ART), the reference upstream implementation of the Dalvik Executable Format, and the reference implementation's package Management system.
NÊN chạy kiểm thử mờ trong nhiều chế độ thực thi và cấu trúc mục tiêu để đảm bảo tính ổn định của thời gian chạy. Tham khảo JFuzz và DexFuzz trên trang web Dự án nguồn mở Android.
Lưu ý rằng các giá trị bộ nhớ được chỉ định bên dưới được coi là giá trị tối thiểu và các triển khai thiết bị có thể phân bổ thêm bộ nhớ cho mỗi ứng dụng.
Bố cục màn hình | Mật độ màn hình | Bộ nhớ tối thiểu của ứng dụng |
---|---|---|
Đồng hồ Android | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | ||
160 dpi (mdpi) | ||
180 dpi (180dpi) | ||
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | 36MB | |
240 dpi (hdpi) | ||
280 dpi (280dpi) | ||
320 dpi (xhdpi) | 48MB | |
360 dpi (360dpi) | ||
400 dpi (400dpi) | 56MB | |
420 dpi (420dpi) | 64MB | |
480 dpi (xxhdpi) | 88MB | |
560 dpi (560dpi) | 112MB | |
640 dpi (xxxhdpi) | 154MB | |
nhỏ/bình thường | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | ||
160 dpi (mdpi) | ||
180 dpi (180dpi) | 48MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | ||
320 dpi (xhdpi) | 80MB | |
360 dpi (360dpi) | ||
400 dpi (400dpi) | 96MB | |
420 dpi (420dpi) | 112MB | |
480 dpi (xxhdpi) | 128MB | |
560 dpi (560dpi) | 192MB | |
640 dpi (xxxhdpi) | 256MB | |
lớn | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | 48MB | |
160 dpi (mdpi) | ||
180 dpi (180dpi) | 80MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | 96MB | |
320 dpi (xhdpi) | 128MB | |
360 dpi (360dpi) | 160MB | |
400 dpi (400dpi) | 192MB | |
420 dpi (420dpi) | 228MB | |
480 dpi (xxhdpi) | 256MB | |
560 dpi (560dpi) | 384MB | |
640 dpi (xxxhdpi) | 512 MB | |
xlarge | 120 dpi (ldpi) | 48MB |
140 dpi (140dpi) | 80MB | |
160 dpi (mdpi) | ||
180 dpi (180dpi) | 96MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | 144MB | |
320 dpi (xhdpi) | 192MB | |
360 dpi (360dpi) | 240MB | |
400 dpi (400dpi) | 288MB | |
420 dpi (420dpi) | 336MB | |
480 dpi (xxhdpi) | 384MB | |
560 dpi (560dpi) | 576MB | |
640 dpi (xxxhdpi) | 768MB |
3,8. Khả năng tương thích giao diện người dùng
3.8.1. Trình chạy (Màn hình chính)
Android bao gồm một ứng dụng trình chạy (màn hình chính) và tính năng hỗ trợ các ứng dụng bên thứ ba để thay thế trình chạy thiết bị (màn hình chính).
Nếu các quá trình triển khai thiết bị cho phép các ứng dụng bên thứ ba thay thế màn hình chính của thiết bị, thì các ứng dụng đó:
- [C-1-1] PHẢI khai báo tính năng nền tảng
android.software.home_screen
. - [C-1-2] PHẢI trả về đối tượng
AdaptiveIconDrawable
khi ứng dụng bên thứ ba sử dụng thẻ<adaptive-icon>
để cung cấp biểu tượng và phương thứcPackageManager
để truy xuất biểu tượng được gọi.
Nếu các phương thức triển khai thiết bị bao gồm một trình chạy mặc định có hỗ trợ tính năng ghim trong ứng dụng của lối tắt, thì các phương thức đó:
- [C-2-1] PHẢI báo cáo
true
choShortcutManager.isRequestPinShortcutSupported()
. - [C-2-2] PHẢI have user compatibility asking the user before add a shortcuts required
by apps via the
ShortcutManager.requestPinShortcut()
API method. - [C-2-3] PHẢI hỗ trợ các lối tắt được ghim cũng như các lối tắt động và tĩnh như được ghi lại trên trang Lối tắt ứng dụng.
Ngược lại, nếu các phương thức triển khai trên thiết bị không hỗ trợ tính năng ghim lối tắt trong ứng dụng, thì các lối tắt đó sẽ:
- [C-3-1] PHẢI báo cáo
false
choShortcutManager.isRequestPinShortcutSupported()
.
Nếu các hoạt động triển khai thiết bị triển khai một trình chạy mặc định giúp truy cập nhanh vào các lối tắt bổ sung do ứng dụng bên thứ ba cung cấp thông qua API shortcutManager, thì các lối tắt đó:
- [C-4-1] PHẢI support all documented shortcuts features (e.g. static and dynamic shortcuts, Hãy ghim lối tắt) và triển khai đầy đủ các API của lớp API
ShortcutManager
.
Nếu quá trình triển khai thiết bị bao gồm một ứng dụng trình chạy mặc định hiển thị huy hiệu cho các biểu tượng ứng dụng, thì chúng:
- [C-5-1] PHẢI tuân thủ phương thức API
NotificationChannel.setShowBadge()
. Nói cách khác, hãy hiển thị một thuộc tính tương tác trực quan được liên kết với biểu tượng ứng dụng nếu giá trị được đặt làtrue
, đồng thời không hiện bất kỳ lược đồ huy hiệu biểu tượng ứng dụng nào khi tất cả các kênh thông báo của ứng dụng đã đặt giá trị làfalse
. - CÓ
Notification.Builder.setNumber()
Notification.Builder.setBadgeIconType()
Nếu các quá trình triển khai thiết bị hỗ trợ biểu tượng đơn sắc, thì các biểu tượng sau:
- [C-6-1] PHẢI be used only when a user except enable they (e.g. via Settings orWallpaper xoá menu).
3.8.2. Tiện ích
Android hỗ trợ các tiện ích ứng dụng bên thứ ba bằng cách xác định một loại thành phần cũng như API và vòng đời tương ứng cho phép các ứng dụng hiển thị “AppWidget” cho người dùng cuối.
Nếu quá trình triển khai thiết bị có hỗ trợ tiện ích ứng dụng bên thứ ba, thì các thiết bị đó sẽ:
- [C-1-1] PHẢI kê khai hỗ trợ cho tính năng nền tảng
android.software.app_widgets
. - [C-1-2] PHẢI đưa vào tính năng hỗ trợ tích hợp sẵn cho AppWidgets và hiển thị giao diện người dùng tương tác để thêm, định cấu hình, xem và xoá AppWidgets.
- [C-1-3] PHẢI be compatibility of rendering widget that are 4 x 4 in the standardgrid size. Vui lòng xem App Widget DesignGuidelines (Nguyên tắc thiết kế tiện ích ứng dụng) trong tài liệu về SDK Android để biết thông tin chi tiết.
- CÓ THỂ hỗ trợ các tiện ích ứng dụng trên màn hình khoá.
Nếu quá trình triển khai thiết bị có hỗ trợ tiện ích ứng dụng bên thứ ba và tính năng ghim lối tắt trong ứng dụng, thì chúng:
- [C-2-1] PHẢI báo cáo
true
choAppWidgetManager.html.isRequestPinAppWidgetSupported()
. - [C-2-2] PHẢI have user compatibility asking the user before add a shortcuts required
by apps via the
AppWidgetManager.requestPinAppWidget()
API method.
3.8.3. Thông báo
Android bao gồm các API Notification
và NotificationManager
cho phép nhà phát triển ứng dụng bên thứ ba thông báo cho người dùng về các sự kiện đáng chú ý và thu hút sự chú ý của người dùng bằng các thành phần phần cứng (ví dụ: âm thanh, rung và ánh sáng) cũng như các tính năng phần mềm (ví dụ: ngăn thông báo, thanh hệ thống) của thiết bị.
3.8.3.1. Bản trình bày thông báo
Nếu quá trình triển khai thiết bị cho phép các ứng dụng bên thứ ba thông báo cho người dùng về các sự kiện đáng chú ý, họ:
- [C-1-1] PHẢI support notifications that use hardware features, as mô tả trong tài liệu SDK, and to the scope possible with the device installed hardware. Chẳng hạn, nếu cách triển khai thiết bị bao gồm bộ rung, thì thiết bị PHẢI triển khai chính xác các API rung. Nếu quá trình triển khai thiết bị thiếu phần cứng, thì các API tương ứng PHẢI được triển khai dưới dạng không hoạt động. Hành vi này được nêu chi tiết hơn trong phần 7.
- [C-1-2] NOT{/5} already visible all resources (icons, animation files,,v.) cung cấp cho in the APIs, or in the Status/System Bar icon style guide, dù they MAY provide an additional user experience for notifications
- [C-1-3] PHẢI
- [C-1-4] PHẢI cung cấp hành vi đầy đủ của API NotificationChannel được ghi lại trong SDK.
- [C-1-5] PHẢI cung cấp khả năng tương tác của người dùng để chặn và sửa đổi một số thông báo của ứng dụng bên thứ ba nhất định trên mỗi kênh và cấp gói ứng dụng.
- [C-1-6] PHẢI cũng cung cấp khả năng tương tác của người dùng để hiển thị kênh đã xoá thông báo.
- [C-1-7]{4} visible all resources (images, Stickers, biểu tượng, v.v.) được cung cấp thông qua Notification.MessagingStyle cùng với văn bản thông báo mà không cần tương tác bổ sung của người dùng. Ví dụ: PHẢI hiển thị tất cả tài nguyên, bao gồm cả các biểu tượng được cung cấp thông qua android.app.Person trong một cuộc trò chuyện nhóm được đặt thông qua setGroupconversation.
- [C-SR-1] Are trì hoãn lại Mức độ chi tiết PHẢI sao cho người dùng có thể kiểm soát từng trình nghe thông báo như vậy, những loại thông báo nào được cầu nối đến trình nghe này. Các loại PHẢI bao gồm các thông báo "conversations", "alerting", "silent" và "important đang diễn ra".
- [C-SR-2] Are liền dải trương cung cấp một thuộc tính tương tác cho người dùng để chỉ định ứng dụng để loại trừ từ thông báo bất kỳ trình nghe thông báo cụ thể nào.
- [C-SR-3] AreĐể các nhà phát triển tự động hiển thị một quảng cáo gợi ý người dùng để chặn một số thứ ba nhất định ứng dụng
- NÊN hỗ trợ các thông báo chi tiết.
- NÊN hiển thị một số thông báo có mức độ ưu tiên cao hơn dưới dạng thông báo quan trọng.
- NÊN có thuộc tính tương tác với người dùng để tạm ẩn thông báo.
- CÓ THỂ chỉ quản lý chế độ hiển thị và thời điểm mà các ứng dụng bên thứ ba có thể thông báo cho người dùng về các sự kiện đáng chú ý để giảm thiểu các vấn đề an toàn, chẳng hạn như sự phân tâm của người lái xe.
Android 11 hỗ trợ thông báo cuộc trò chuyện, cụ thể là thông báo sử dụng MessagingStyle và cung cấp Mã lối tắt People (Mọi người) đã phát hành.
Triển khai thiết bị:
- [C-SR-4] Are trì hoãn 1 danh sách cho các thành viên nhóm và hiển thị
conversation notifications
ahead of non conversations notifications with theexception of onntforeground service notifications andimportance:high
Notifications.
Nếu quá trình triển khai thiết bị hỗ trợ conversation notifications
và ứng dụng cung cấp dữ liệu bắt buộc cho bubbles
, thì chúng:
- [C-SR-5] Are trì hoãng động để hiển thị cuộc trò chuyện này dưới dạng bong bóng trò chuyện. Việc triển khai AOSP đáp ứng các yêu cầu này với Giao diện người dùng hệ thống, Cài đặt và Trình chạy mặc định.
Nếu các quá trình triển khai thiết bị có hỗ trợ thông báo đa dạng thức, thì chúng:
- [C-2-1] PHẢI sử dụng chính xác tài nguyên như được cung cấp thông qua lớp API
Notification.Style
và lớp con của nó cho các phần tử tài nguyên được trình bày. - NÊN trình bày mỗi và mọi phần tử tài nguyên (ví dụ: biểu tượng, tiêu đề và văn bản tóm tắt) được xác định trong lớp API
Notification.Style
và các lớp con của nó.
Thông báo quan trọng là các thông báo được hiển thị cho người dùng khi chúng xuất hiện độc lập với nền tảng mà người dùng đang truy cập. Nếu quá trình triển khai thiết bị có hỗ trợ thông báo quan trọng, thì họ:
- [C-3-1] PHẢI sử dụng chế độ xem thông báo và tài nguyên như mô tả trong lớp
Notification.Builder
API khi thông báo quan trọng được trình bày. - [C-3-2] NOT display the actions provided through
Notification.Builder.addAction()
Same with the notification content without additional user engagement as descriptions in the SDK.
3.8.3.2. Dịch vụ trình nghe thông báo
Android bao gồm các API NotificationListenerService
cho phép ứng dụng (sau khi người dùng cho phép rõ ràng) nhận một bản sao của tất cả thông báo khi chúng được đăng hoặc cập nhật.
Triển khai thiết bị:
- [C-0-1] PHẢI correct and time to update notifications in theircomplete to all that installed and user-enabled bồi services, bao gồm bất kỳ và tất cả siêu dữ liệu được đính kèm vào đối tượng Notification.
- [C-0-2] PHẢI tuân thủ lệnh gọi API
snoozeNotification()
và loại bỏ thông báo và thực hiện lệnh gọi lại sau thời lượng tạm ẩn được đặt trong lệnh gọi API.
Nếu các hoạt động triển khai trên thiết bị có khả năng tương tác với người dùng để tạm ẩn thông báo, thì các hoạt động triển khai trên thiết bị sẽ:
- [C-1-1] PHẢI phản ánh trạng thái thông báo tạm ngưng đúng cách thông qua các API chuẩn, chẳng hạn như
NotificationListenerService.getSnoozedNotifications()
. - [C-1-2] PHẢI làm cho thuộc tính tương tác này có sẵn để báo lại thông báo từ mỗi ứng dụng bên thứ ba đã cài đặt, trừ phi chúng là từ persistent/foreground dịch vụ.
3.8.3.3. Không làm phiền/Chế độ ưu tiên
Nếu các hoạt động triển khai thiết bị hỗ trợ tính năng DND (còn gọi là Chế độ ưu tiên), thì các hoạt động triển khai đó:
- [C-1-1] PHẢI, for when the device provider has cung cấp một phương tiện cho người dùng để cấp hoặc từ chối các ứng dụng bên thứ ba để truy cập vào cấu hình chính sách DND, display Automatic DND rules Search by applications across the user-generated and pre-defined rules.
- [C-1-3]{4} Hãy vinh danh
suppressedVisualEffects
values already through theNotificationManager.Policy
and if an app has set any of the sup_PRESSED_EDIT_SCREEN settings
3.8.4. API hỗ trợ
Android bao gồm API Hỗ trợ để cho phép các ứng dụng chọn lượng thông tin về ngữ cảnh hiện tại được chia sẻ với trợ lý trên thiết bị.
Nếu các quá trình triển khai thiết bị hỗ trợ hành động Hỗ trợ, chúng:
- [C-2-1]{4} manage clear to the end user when theContext is shared, by
partial:
- Mỗi khi ứng dụng trợ lý truy cập vào ngữ cảnh, hiển thị một đèn màu trắng xung quanh các cạnh của màn hình đáp ứng hoặc vượt quá thời lượng và độ sáng của quá trình triển khai Dự án nguồn mở Android.
- Đối với ứng dụng trợ lý được cài đặt trước, việc cung cấp cho người dùng tương tác trong phạm vi cách trình đơn cài đặt ứng dụng trợ lý và nhập bằng giọng nói mặc định, đồng thời chỉ chia sẻ ngữ cảnh khi người dùng gọi ứng dụng trợ lý một cách rõ ràng thông qua cụm từ kích hoạt hoặc phím điều hướng hỗ trợ.
- [C-2-2] The specified creatives to launch the Assist app as descriptions as mô tả
trong section 7.2.3 PHẢI launch the user-selected
assist app, nói cách khác là ứng dụng triển khai
VoiceInteractionService
, hoặc một hoạt động xử lý ý địnhACTION_ASSIST
.
3.8.5. Cảnh báo và thông báo ngắn
Các ứng dụng có thể dùng API Toast
để cho người dùng cuối thấy các chuỗi ngắn không theo phương thức. Các chuỗi này sẽ biến mất sau một khoảng thời gian ngắn, đồng thời sử dụng API loại cửa sổ TYPE_APPLICATION_OVERLAY
để hiện cửa sổ cảnh báo dưới dạng lớp phủ trên các ứng dụng khác.
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
[C-1-1] PHẢI cung cấp một user thuộc tính tương tác để chặn an ứng dụng hiển thị cảnh báo windows that use the
TYPE_APPLICATION_OVERLAY
. Phương thức triển khai AOSP đáp ứng yêu cầu này nhờ có các chế độ kiểm soát trong ngăn thông báo.[C-1-2] PHẢI Hãy vinh danh Toast API và hiển thị Toasts từ ứng dụng đến người dùng cuối theo cách thức hiển thị cao.
3.8.6. Chủ đề
Android cung cấp "giao diện" làm cơ chế để ứng dụng áp dụng kiểu trên toàn bộ Hoạt động hoặc ứng dụng.
Android bao gồm nhóm giao diện "Holo" và "Material" dưới dạng một tập hợp các kiểu đã xác định để nhà phát triển ứng dụng sử dụng nếu họ muốn phù hợp với giao diện chủ đề Holo do SDK Android xác định.
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
- [C-1-1] KHÔNG ĐƯỢC thay đổi bất kỳ thuộc tính chủ đề Holo nào được hiển thị cho ứng dụng.
- [C-1-2] PHẢI support the “Material” theme family and NOT changed any of the Material theme attribute or their assets targeted to applications.
[C-1-3] PHẢI đặt họ phông chữ "sans-serif" thành Roboto version 2.x for the languages mà Roboto hỗ trợ, hoặc cung cấp một user thuộc tính tương tác để thay đổi phông chữ được sử dụng for the "sans-serif" font family to Roboto version 2.x for the languages mà Roboto hỗ trợ.
[C-1-4]{4} generate dynamic color tonal palettes as specified in the AOSP documentation of
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(xemandroid.theme.customization.system_palette
vàandroid.theme.customization.theme_style
).[C-1-5] generate dynamic color tonal palettes using color theme styles enumerated in the
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
}} (xemandroid.theme.customization.theme_styles
), cụ thể làTONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
."Màu nguồn" dùng để tạo bảng sắc độ màu động khi được gửi bằng
android.theme.customization.system_palette
(như được ghi trongSettings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
).[C-1-6] PHẢI có giá trị sắc độ
CAM16
từ 5 trở lên.Phải chuyển từ hình nền qua
com.android.systemui.monet.ColorScheme#getSeedColors
, cung cấp nhiều màu nguồn hợp lệ để chọn một trong số đó.NÊN sử dụng giá trị
0xFF1B6EF3
, nếu không có màu nào đã cung cấp đáp ứng yêu cầu về màu sắc nguồn ở trên.
Android cũng bao gồm một nhóm giao diện "Thiết bị mặc định" dưới dạng một nhóm các kiểu đã xác định để nhà phát triển ứng dụng sử dụng nếu họ muốn phù hợp với giao diện của giao diện thiết bị do trình triển khai thiết bị xác định.
- Hoạt động triển khai thiết bị có thể sửa đổi các thuộc tính giao diện mặc định của thiết bị được hiển thị cho các ứng dụng.
Android hỗ trợ một giao diện biến thể có các thanh hệ thống trong suốt, cho phép nhà phát triển ứng dụng lấp đầy khu vực phía sau thanh trạng thái và điều hướng bằng nội dung ứng dụng của họ. Để mang lại trải nghiệm nhất quán cho nhà phát triển trong cấu hình này, điều quan trọng là kiểu biểu tượng thanh trạng thái được duy trì trên các cách triển khai thiết bị khác nhau.
Nếu quá trình triển khai thiết bị có thanh trạng thái hệ thống, thì quá trình triển khai thiết bị sẽ:
- [C-2-1] PHẢI use trắng for system status Chrome (chẳng hạn như tín hiệu sức mạnh và mức pin) và các thông báo do hệ thống phát hành, trừ khi biểu tượng đang hiển thị trạng thái có vấn đề hoặc ứng dụng yêu cầu thanh trạng thái ánh sáng bằng cờ WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS.
- [C-2-2] Android device events PHẢI thay đổi màu sắc của trạng thái hệ thống các biểu tượng thành màu đen (for details, reference to R.style) when an app requests alight status bar.
3.8.7. Hình nền động (Live Wallpaper)
Android xác định loại thành phần cũng như API và vòng đời tương ứng cho phép các ứng dụng hiển thị một hoặc nhiều “Hình nền động” cho người dùng cuối. Hình nền động là ảnh động, hình mở khoá hoặc hình ảnh tương tự, bị hạn chế về khả năng nhập, xuất hiện dưới dạng hình nền, phía sau các ứng dụng khác.
Phần cứng được xem là có khả năng chạy hình nền động một cách ổn định nếu có thể chạy tất cả hình nền động mà không bị giới hạn về chức năng, ở tốc độ khung hình hợp lý mà không gây ảnh hưởng xấu đến các ứng dụng khác. Nếu các hạn chế trong phần cứng khiến hình nền và/hoặc ứng dụng gặp sự cố, gặp sự cố, ngốn pin hoặc CPU quá mức hoặc chạy ở tốc độ khung hình thấp không thể chấp nhận được, thì phần cứng được coi là không thể chạy hình nền động. Ví dụ: một số hình nền động có thể sử dụng bối cảnh OpenGL 2.0 hoặc 3.x để kết xuất nội dung. Hình nền động sẽ không chạy ổn định trên phần cứng không hỗ trợ nhiều ngữ cảnh OpenGL vì việc sử dụng hình nền động của bối cảnh OpenGL có thể xung đột với các ứng dụng khác cũng sử dụng bối cảnh OpenGL.
- Thiết bị triển khai có khả năng chạy hình nền động một cách đáng tin cậy như được mô tả ở trên nên triển khai hình nền động.
Nếu quá trình triển khai trên thiết bị triển khai hình nền động, thì các quá trình đó sẽ:
- [C-1-1] PHẢI báo cáo cờ tính năng nền tảng android.software.live_wallpaper.
3.8.8. Chuyển đổi hoạt động
Mã nguồn Android ngược dòng bao gồm màn hình tổng quan, một giao diện người dùng cấp hệ thống để chuyển đổi tác vụ và hiển thị các hoạt động cũng như tác vụ đã truy cập gần đây bằng cách sử dụng hình thu nhỏ về trạng thái đồ hoạ của ứng dụng tại thời điểm người dùng rời khỏi ứng dụng lần cuối.
Thiết bị triển khai bao gồm phím điều hướng chức năng gần đây như chi tiết trong mục 7.2.3 có thể thay đổi giao diện.
Nếu các hoạt động triển khai thiết bị bao gồm phím điều hướng chức năng gần đây như được nêu chi tiết trong phần 7.2.3 làm thay đổi giao diện, thì chúng:
- [C-1-1] PHẢI hỗ trợ tối đa tối đa 7 hoạt động được hiển thị.
- NÊN hiển thị ít nhất tiêu đề của 4 hoạt động cùng lúc.
- [C-1-2] PHẢI triển khai màn hình ghim hành vi và cung cấp cho người dùng với trình đơn cài đặt để bật/tắt tính năng này.
- PHẢI hiển thị màu đánh dấu, biểu tượng, tiêu đề màn hình gần đây.
- NÊN hiển thị một thành phần đóng ("x") nhưng CÓ THỂ trì hoãn điều này cho đến khi người dùng tương tác với màn hình.
- NÊN triển khai một phím tắt để dễ dàng chuyển về hoạt động trước đó.
- NÊN kích hoạt thao tác chuyển đổi nhanh giữa hai ứng dụng được sử dụng gần đây nhất, khi phím chức năng gần đây được nhấn hai lần.
- NÊN kích hoạt chế độ chia màn hình nhiều cửa sổ (nếu được hỗ trợ) khi nhấn và giữ phím hàm gần đây.
- CÓ THỂ hiển thị các thành phần gần đây được liên kết dưới dạng một nhóm di chuyển cùng nhau.
- [C-SR-1] Are kinh DOWNLOAD to use the upstream Android user sư (giao diện người dùng tương tự trong hình thu nhỏ) cho màn hình tổng quan.
3.8.9. Quản lý dữ liệu đầu vào
Android có hỗ trợ Quản lý đầu vào và hỗ trợ trình chỉnh sửa phương thức nhập của bên thứ ba.
Nếu quá trình triển khai thiết bị cho phép người dùng sử dụng các phương thức nhập của bên thứ ba trên thiết bị, thì họ:
- [C-1-1] PHẢI khai báo tính năng nền tảng android.software.input_methods và hỗ trợ các API IME như được xác định trong tài liệu về SDK Android.
3.8.10. Điều khiển nội dung nghe nhìn trên màn hình khoá
API ứng dụng điều khiển từ xa không còn được dùng từ Android 5.0 và thay vào đó là Mẫu thông báo nội dung nghe nhìn. Mẫu này cho phép các ứng dụng đa phương tiện tích hợp với bộ điều khiển chế độ phát hiển thị trên màn hình khoá.
3.8.11. Trình bảo vệ màn hình (trước đây là Giấc mơ)
Xem phần 3.2.3.5 để biết ý định cài đặt nhằm đồng bộ hoá trình bảo vệ màn hình.
3.8.12. Vị trí
Nếu quá trình triển khai thiết bị bao gồm cảm biến phần cứng (ví dụ: GPS) có khả năng cung cấp toạ độ vị trí, thì chúng
- [C-1-2] PHẢI display the current status of location in the Location menu during Settings.
- [C-1-3] KHÔNG ĐƯỢC hiển thị chế độ vị trí trong trình đơn Vị trí trong Cài đặt.
3.8.13. Unicode và phông chữ
Android có hỗ trợ các ký tự biểu tượng cảm xúc được xác định trong Unicode 10.0.
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
- [C-1-1] PHẢI có khả năng kết xuất các ký tự biểu tượng cảm xúc này bằng ký tự màu.
- [C-1-2] PHẢI include support for:
- Phông chữ Roboto 2 có các độ đậm khác nhau – sans-serif-thin, Sans-serif-light, sans-serif-medium, Sans-serif-black, Sans-serif-condensed, sans-serif-condensed-light cho các ngôn ngữ có trên thiết bị.
- Mức độ phù hợp đầy đủ của Unicode 7.0 cho chữ Latinh, tiếng Hy Lạp và chữ Kirin, bao gồm các dải ô A, B, C và D mở rộng của chữ Latinh, cũng như tất cả ký tự trong khối ký hiệu tiền tệ của Unicode 7.0.
- [C-1-3] KHÔNG ĐƯỢC xoá hoặc sửa đổi NotoColorEmoji.tff trong hình ảnh hệ thống. (Bạn có thể thêm phông chữ biểu tượng cảm xúc mới để ghi đè biểu tượng cảm xúc trong NotoColorEmoji.tff)
- NÊN hỗ trợ tông màu da và biểu tượng cảm xúc gia đình đa dạng như được chỉ định trong Unicode Technical Report #51.
Nếu quá trình triển khai thiết bị có cả một IME, thì các quá trình đó:
- NÊN cung cấp phương thức nhập cho người dùng các ký tự biểu tượng cảm xúc này.
Android có hỗ trợ hiển thị phông chữ Myanmar. Myanmar có một số phông chữ không tuân thủ Unicode, thường được gọi là "Zawgyi", để hiển thị tiếng Myanmar.
Nếu quá trình triển khai thiết bị có hỗ trợ tiếng Miến Điện, thì họ:
- [C-2-1] PHẢI hiển thị văn bản với phông chữ tuân thủ Unicode làm mặc định; non-Unicode Accept NOT be set as default phông chữ trừ khi người dùng chọn nó trong bộ chọn ngôn ngữ.
- [C-2-2] PHẢI hỗ trợ phông chữ Unicode và phông chữ không tuân thủ Unicode nếu phông chữ tuân thủ không phải Unicode được hỗ trợ trên thiết bị. Phông chữ không tuân thủ Unicode KHÔNG ĐƯỢC xoá hoặc ghi đè phông chữ Unicode.
- [C-2-3] truyền hiển thị văn bản với phông chữ tuân thủ không phải của Unicode IF a language code with script code Qaag được chỉ định (e.g. my-Qaag). Không có mã ngôn ngữ hoặc mã vùng ISO nào khác (cho dù được chỉ định, chưa được chỉ định hoặc dành riêng) để tham chiếu đến phông chữ không tuân thủ Unicode cho Myanmar. Nhà phát triển ứng dụng và tác giả trang web có thể chỉ định my-Qaag làm mã ngôn ngữ được chỉ định như đối với bất kỳ ngôn ngữ nào khác.
3.8.14. Nhiều cửa sổ
Nếu các quá trình triển khai thiết bị có khả năng hiển thị nhiều hoạt động cùng lúc, thì chúng:
- [C-1-1] PHẢI triển khai như vậy chế độ nhiều cửa sổ theo đúng các hành vi ứng dụng và API được mô tả trong Android SDK tài liệu hỗ trợ chế độ nhiều cửa sổ và đáp ứng các yêu cầu sau:
- [C-1-2] PHẢI Hãy vinh danh
android:resizeableActivity
đó được đặt bởi một ứng dụng trong tệpAndroidManifest.xml
như mô tả trong SDK này. - [C-1-3] PHẢI NOT cung cấp chế độ chia màn hình hoặc tự do nếu chiều cao màn hình là dưới 440 dp và chiều rộng màn hình là nhỏ hơn 440 dp.
- [C-1-4] An activity NOT be updates to a sizesmall than 220dp in multi-window Configurations other than picture-in-picture.
- Device campaigns with screen size
xlarge
NÊN support freeform mode.
Nếu các hoạt động triển khai thiết bị hỗ trợ(các) chế độ nhiều cửa sổ và chế độ chia đôi màn hình, thì chúng:
- [C-2-2] PHẢI cắt hoạt động đã gắn vào đế sạc của một màn hình chia tách nhiều cửa sổ nhưng NÊN hiển thị một số nội dung của nó, nếu ứng dụng Trình chạy là cửa sổ được tập trung.
- [C-2-3] PHẢI Hãy vinh danh các giá trị đã khai báo
AndroidManifestLayout_minWidth
vàAndroidManifestLayout_minHeight
giá trị của ứng dụng trình chạy bên thứ ba và không ghi đè các giá trị này trong quá trình hiển thị một số nội dung của hoạt động đã gắn vào đế sạc.
Nếu các quá trình triển khai thiết bị hỗ trợ(các) chế độ nhiều cửa sổ và chế độ nhiều cửa sổ hình trong hình, thì các quá trình đó:
- [C-3-1] launch activities in picture-in-picture multi-window mode
when the app is:
*targeting API level 26 or higher and declared
android:supportsPictureInPicture
* Targeting API level 25 or lower and kê khai cảandroid:resizeableActivity
vàandroid:supportsPictureInPicture
. - [C-3-2] PHẢI visible the actions in their SystemUI as specified by the current PIP activity through the
setActions()
API. - [C-3-3] NOT support
AspectRatio higher than or equals to
1:2.39 and removed than or equals to 2.39:1, as specified by the PIP activity through the
setAspectRatio()
API. - [C-3-4] PHẢI use
KeyEvent.KEYCODE_WINDOW
to control the PIP window; if PIP mode is not specified, the key PHẢI be available to theforeground activity. - [C-3-5] PHẢI cung cấp khả năng tương tác của người dùng để chặn một ứng dụng hiển thị trong chế độ PIP; phương thức triển khai AOSP đáp ứng yêu cầu này bằng cách có các nút điều khiển trong ngăn thông báo.
[C-3-6]{4} Backfill the followingMinimum width and height for the PIP window when an application does not declared any value for
AndroidManifestLayout_minWidth
andAndroidManifestLayout_minHeight
:- Các thiết bị có Configuration.uiMode được đặt khác với
UI_MODE_TYPE_TELEVISION
PHẢI phân bổ chiều rộng và chiều cao tối thiểu là 108 dp. - Các thiết bị có Configuration.uiMode được đặt thành
UI_MODE_TYPE_TELEVISION
PHẢI phân bổ chiều rộng tối thiểu là 240 dp và chiều cao tối thiểu là 135 dp.
- Các thiết bị có Configuration.uiMode được đặt khác với
3.8.15. Vết cắt trên màn hình
Android hỗ trợ vết cắt trên màn hình như mô tả trong tài liệu SDK. API DisplayCutout
xác định một khu vực ở cạnh màn hình có thể không hoạt động đối với ứng dụng do vết cắt trên màn hình hoặc màn hình cong ở(các) cạnh.
Nếu quá trình triển khai thiết bị có chứa(các) vết cắt trên màn hình, thì chúng:
- [C-1-5] KHÔNG ĐƯỢC có(các) vết cắt nếu tỷ lệ khung hình của thiết bị là 1,0(1:1).
- [C-1-2] KHÔNG ĐƯỢC có nhiều hơn một vết cắt trên mỗi cạnh.
- [C-1-3] PHẢI Hãy vinh danh các cờ cắt bỏ màn hình được thiết lập bởi ứng dụng thông qua
WindowManager.LayoutParams
API như được mô tả trong SDK. - [C-1-4] PHẢI báo cáo đúng giá trị cho tất cả các chỉ số cắt bỏ được xác định trong API
DisplayCutout
.
3.8.16. Điều khiển thiết bị
Android bao gồm các API ControlsProviderService
và Control
để cho phép các ứng dụng bên thứ ba phát hành các chế độ điều khiển thiết bị nhằm cung cấp trạng thái và thao tác nhanh cho người dùng.
Xem Phần 2_2_3 để biết các yêu cầu dành riêng cho thiết bị.
3.8.17. Bảng nhớ tạm
Triển khai thiết bị:
- [C-0-1] NOT send Lưu dữ liệu bảng nhớ tạm đến bất kỳ thành phần, hoạt động, dịch vụ, hay trên bất kỳ kết nối mạng nào, mà không có hành động rõ ràng của người dùng (e.g., press a button on theoverlay), except for services mention in 9.8.6 Content Capture and App Search.
Nếu các hoạt động triển khai thiết bị tạo ra một bản xem trước hiển thị cho người dùng khi nội dung được sao chép vào bảng nhớ tạm cho bất kỳ mục ClipData
nào mà ClipData.getDescription().getExtras()
chứa android.content.extra.IS_SENSITIVE
, thì chúng:
- [C-1-1] PHẢI loại bỏ bản xem trước có thể nhìn thấy người dùng
Phương thức triển khai tham chiếu AOSP đáp ứng các yêu cầu về bảng nhớ tạm này.
3,9. Quản trị thiết bị
Android có các tính năng cho phép các ứng dụng nhận biết bảo mật thực hiện các chức năng quản trị thiết bị ở cấp hệ thống, chẳng hạn như thực thi các chính sách mật khẩu hoặc thực hiện xoá từ xa, thông qua API Quản trị thiết bị Android.
Nếu các hoạt động triển khai thiết bị triển khai toàn bộ các chính sách quản trị thiết bị được xác định trong tài liệu SDK Android, thì các chính sách đó sẽ:
- [C-1-1] PHẢI khai báo
android.software.device_admin
. - [C-1-2] NOT support device owner assigned as description as mô tả in section 3.9.1 và section 3.9.1.1.
3.9.1 Cấp phép thiết bị
3.9.1.1 Cấp phép cho chủ sở hữu thiết bị
Nếu các hoạt động triển khai thiết bị khai báo android.software.device_admin
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI supportenrollment a Device Policy Client (DPC) as a
DeviceOwner app
as descriptions below:
- Khi quá trình triển khai thiết bị chưa được định cấu hình người dùng lẫn dữ liệu người dùng, quá trình triển khai sẽ:
- [C-1-5] PHẢI đăng ký ứng dụng DPC làm ứng dụng Chủ sở hữu thiết bị hoặc bật ứng dụng DPC để chọn để trở thành chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ, nếu thiết bị khai báo giao tiếp trường gần (NFC) support via the tính năng cờ
android.hardware.nfc
và nhận thông báo NFC containing a record with MIME typeMIME_TYPE_PROVISIONING_NFC
. - [C-1-8] PHẢI gửi ý định ACTION_GET_PROVISIONING_MODE sau khi thiết bị cấp phép được kích hoạt để ứng dụng DPC có thể chọn trở thành Chủ sở hữu thiết bị hoặc Chủ sở hữu hồ sơ, tuỳ thuộc vào các giá trị của
android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES
, trừ khi có thể xác định từ ngữ cảnh đó có chỉ một tuỳ chọn hợp lệ. - [C-1-9] PHẢI gửi ý định ACTION_ADMIN_POLICY_COMPLIANCE đến ứng dụng DeviceOwner nếu Chủ sở hữu thiết bị được thiết lập trong quá trình cấp phép, bất kể có sử dụng phương thức cấp phép nào. Người dùng không thể tiếp tục trong Trình hướng dẫn thiết lập cho đến khi ứng dụng của Chủ sở hữu thiết bị hoàn tất.
- [C-1-5] PHẢI đăng ký ứng dụng DPC làm ứng dụng Chủ sở hữu thiết bị hoặc bật ứng dụng DPC để chọn để trở thành chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ, nếu thiết bị khai báo giao tiếp trường gần (NFC) support via the tính năng cờ
- Khi quá trình triển khai thiết bị có người dùng hoặc dữ liệu người dùng, quá trình triển khai sẽ:
- [C-1-7] truyền dẫn không đăng ký bất kỳ ứng dụng DPC nào như ứng dụng chủ sở hữu thiết bị bất kỳ hơn.
- Khi quá trình triển khai thiết bị chưa được định cấu hình người dùng lẫn dữ liệu người dùng, quá trình triển khai sẽ:
- [C-1-2] show anNhà cung cấp thông báo cho biết (chẳng hạn như như được tham chiếu trong AOSP) và lấy sự đồng ý rõ ràng từ người dùng cuối trước khi một ứng dụng được đặt làm Chủ sở hữu thiết bị, trừ khi thiết bị được lập trình cấu hình cho bán lẻ demo chế độ trước đó trên màn hình, tương tác người dùng cuối.
Nếu các hoạt động triển khai thiết bị khai báo android.software.device_admin
, nhưng cũng bao gồm một giải pháp quản lý thiết bị độc quyền và cung cấp cơ chế quảng bá một ứng dụng được định cấu hình trong giải pháp của họ dưới dạng "Chủ sở hữu thiết bị tương đương" với "Chủ sở hữu thiết bị" tiêu chuẩn mà API DevicePolicyManager tiêu chuẩn của Android công nhận, thì chúng:
- [C-2-1] PHẢI have a process in place to verify that the specific app được trù thuộc về một invalid enterprise device Management solution and has been configuration in the additional solution to have the rights điệp as a "DeviceOwner".
- [C-2-2] PHẢI show the same AOSP DeviceOwner ConsentÍCH as the
flow starting by
android.app.action.PROVISION_MANAGED_DEVICE
trước to Accept the DPC application as "Device Owners" (Chủ sở hữu thiết bị). - [C-2-3] NOT Hard code the Consent or prevent the use of other device owner apps.
3.9.1.2 Cấp phép hồ sơ được quản lý
Nếu các hoạt động triển khai thiết bị khai báo android.software.managed_users
, thì các quá trình triển khai thiết bị đó sẽ:
[C-1-1] PHẢI triển khai APIs cho phép ứng dụng Trình điều khiển thiết bị (DPC) trở thành chủ sở hữu của hồ sơ được quản lý mới.
[C-1-2] The Managed hồ sơ registration process (luồng khởi tạo do DPC khởi tạo bằng cách sử dụng android.app.action.PROVISION_MANAGED_PROFILE) hoặc by the platform), Consent screen and user experience PHẢI Vertex with the AOSP triển khai.
[C-1-3] PHẢI cung cấp khả năng tương tác sau đây của người dùng trong phần Cài đặt để chỉ báo cho người dùng khi một chức năng hệ thống cụ thể đã bị tắt bởi Trình điều khiển chính sách thiết bị (DPC):
- Một biểu tượng nhất quán hoặc thuộc tính tương tác khác của người dùng (ví dụ: biểu tượng thông tin AOSP ngược dòng) để thể hiện thời điểm một chế độ cài đặt cụ thể bị hạn chế bởi Quản trị viên thiết bị.
- Một thông báo giải thích ngắn gọn do Quản trị viên thiết bị cung cấp thông qua
setShortSupportMessage
. - Biểu tượng của ứng dụng DPC.
[C-1-4] PHẢI khởi chạy trình xử lý cho ý định ACTION_PROVISIONING_CITY trong hồ sơ công việc nếu một Chủ sở hữu hồ sơ được thiết lập khi cấp phép do ý định android.app.action.PROVISION_MANAGED_PROFILE và DPC triển khai trình xử lý.
[C-1-5] PHẢI gửi ACTION_PROFILE_PROVISIONING_complete phát sóng đến DPC hồ sơ công việc khi cấp phép được khởi tạo bởi ý định android.app.action.PROVISION_MANAGED_PROFILE.
[C-1-6] PHẢI gửi ý định ACTION_GET_PROVISIONING_MODE sau khi cấp phép chủ sở hữu hồ sơ được kích hoạt để ứng dụng DPC có thể chọn trở thành Chủ sở hữu thiết bị hoặc Chủ sở hữu hồ sơ trừ khi cấp phép được kích hoạt bởi ý định android.app.action.PROVISION_MANAGED_PROFILE.
[C-1-7] PHẢI gửi ý định ACTION_ADMIN_POLICY_COMPLIANCE đến hồ sơ công việc khi thiết lập Chủ sở hữu hồ sơ trong quá trình cấp phép, bất kể sử dụng phương thức cấp phép nào, trừ trường hợp cấp phép được kích hoạt bằng ý định android.app.action.PROVISION_MANAGED_PROFILE. Người dùng phải không thể tiếp tục trong Trình hướng dẫn thiết lập cho đến khi ứng dụng Chủ sở hữu hồ sơ hoàn tất.
[C-1-8] PHẢI gửi ACTION_MANAGED_PROFILE_PROVISIONED phát sóng đến DPC hồ sơ cá nhân khi thiết lập Chủ sở hữu hồ sơ, bất kể phương thức cấp phép được sử dụng là gì.
3.9.2 Hỗ trợ hồ sơ được quản lý
Nếu các hoạt động triển khai thiết bị khai báo android.software.managed_users
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI support managed profiles via the
android.app.admin.DevicePolicyManager
APIs. - [C-1-2] PHẢI cho phép một và chỉ một hồ sơ được quản lý được tạo.
- [C-1-3] PHẢI use an icon badge (Bắt đầu tương tự với AOSP upstream work badging) để đại diện cho các ứng dụng và tiện ích được quản lý và các thành phần giao diện người dùng khác có huy hiệu như Recents & Notifications.
- [C-1-4] PHẢI hiển thị biểu tượng thông báo (tương tự như huy hiệu công việc ngược dòng của AOSP) để cho biết khi nào người dùng ở trong ứng dụng hồ sơ được quản lý.
- [C-1-5] NOT display a toast shows that the user is in the managed profile if and when the deviceThiết lập
- [C-1-6] where a managed profile exists, PHẢI show a trực quan tiềm năng trong Intent 'Chooser' to allow the user to conversion the intent from the managed profile to the primary user or schema, if enabled by the Device Policy Controller.
- [C-1-7]] where a managed profile exists,,{4} visible the after user
affordances for cả the primary user and the managed profile:
- Có tính riêng đến mức sử dụng pin, vị trí, dữ liệu di động và bộ nhớ của người dùng chính và hồ sơ được quản lý.
- Quản lý độc lập các ứng dụng VPN được cài đặt trong người dùng chính hoặc hồ sơ được quản lý.
- Khả năng quản lý độc lập các ứng dụng được cài đặt trong người dùng chính hoặc hồ sơ được quản lý.
- Quản lý độc lập các tài khoản trong người dùng chính hoặc hồ sơ được quản lý.
- [C-1-8]{4}đảm bảo trình quay số cài đặt sẵn, danh bạ và ứng dụng nhắn tin có thể tìm kiếm và tra cứu thông tin người gọi từ hồ sơ được quản lý (nếu một tồn tại) cùng với những từ hồ sơ chính, nếu Device Policy Console cho phép nó.
- [C-1-9] PHẢI đảm bảo rằng nó đáp ứng tất cả các yêu cầu bảo mật áp dụng cho thiết bị có nhiều người dùng đã bật (xem section 9.5), mặc dù hồ sơ được quản lý không được tính là người dùng khác ngoài người dùng chính.
Nếu các hoạt động triển khai thiết bị khai báo android.software.managed_users
và android.software.secure_lock_screen
, thì chúng:
- [C-2-1] NOT support theCách chỉ định một màn hình khoá riêng biệt đáp ứng các yêu cầu sau đây để cấp quyền truy cập cho các ứng dụng đang chạy trong một hồ sơ được quản lý.
- Thiết bị triển khai PHẢI tôn trọng ý định
DevicePolicyManager.ACTION_SET_NEW_PASSWORD
và hiển thị giao diện để định cấu hình thông tin xác thực màn hình khóa riêng biệt cho hồ sơ được quản lý. - The key screen credentials of the managed profile PHẢI use the same credential storage and manage reports as the parent profile, as documented on the Android Open Source Project Site.
- Chính sách mật khẩu DPC chỉ áp dụng cho thông tin đăng nhập màn hình khoá của hồ sơ được quản lý, trừ phi yêu cầu thực thể
DevicePolicyManager
do getParentProfileInstance trả về.
- Thiết bị triển khai PHẢI tôn trọng ý định
- When contacts from the managed profile are display in the installed call log, in-call UI, in-progress and missing-call notifications, contacts and Messaging apps their NÊN be badged with the same badge used to managed profile applications.
3.9.3 Hỗ trợ người dùng được quản lý
Nếu các hoạt động triển khai thiết bị khai báo android.software.managed_users
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI cung cấp một thuộc tính tương tác người dùng để đăng xuất từ người dùng hiện tại và chuyển lại đến chính người dùng trong nhiều phiên khi
isLogoutEnabled
trả vềtrue
. The user must be access from the khoá screen mà không cần mở khoá thiết bị.
Nếu các hoạt động triển khai thiết bị khai báo android.software.device_admin
và cung cấp một thuộc tính tương tác với người dùng trên thiết bị để thêm Người dùng phụ khác, họ:
- [C-SR-1] AreĐể các tài khoản được đề xuất hiển thị cùng AOSP Device ownertôi đồng ý cho biết đã được hiển thị trong luồng khởi tạo bởi android.app.action.PROVISION_MANAGED_DEVICE, trước cho phép các tài khoản được thêm vào trong người dùng phụ mới, để người dùng hiểu rằng thiết bị được quản lý.
3.9.4 Yêu cầu về vai trò quản lý chính sách thiết bị
Nếu hoạt động triển khai thiết bị báo cáo android.software.device_admin
hoặc android.software.managed_users
, thì chúng:
- [C-1-1] PHẢI support the device policy Management role as specified in
section 9.1. Bạn có thể xác định ứng dụng giữ vai trò quản lý chính sách thiết bị bằng cách đặt
config_devicePolicyManagement
thành tên gói. Tên gói PHẢI đứng trước:
và chứng chỉ ký trừ phi tải trước ứng dụng.
Nếu tên gói không được xác định cho config_devicePolicyManagement
như mô tả ở trên:
- [C-2-1] DeviceCách triển khai thiết bị PHẢI hỗ trợ cấp phép mà không cần thiết bị policy quản lý vai trò chủ ứng dụng (AOSP cung cấp một tham chiếu triển khai).
Nếu tên gói được xác định cho config_devicePolicyManagement
như mô tả ở trên:
- [C-3-1] The application PHẢI be installed on all profiles for a user.
- [C-3-2] Device devices May Definition an application that updates the device policy manage role Manager before rủi ro (Cấp phép bằng cách thiết lập
config_devicePolicyManagementUpdater
).
Nếu tên gói được xác định cho config_devicePolicyManagementUpdater
như mô tả ở trên:
- [C-4-1] Ứng dụng PHẢI được cài đặt trước trên thiết bị.
- [C-4-2] The application PHẢI triển khai một bộ lọc ý định giúp phân giải
android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER
.
3,10. Hỗ trợ tiếp cận
Android cung cấp một lớp hỗ trợ tiếp cận giúp người dùng bị khuyết tật thao tác trên thiết bị dễ dàng hơn. Ngoài ra, Android cung cấp các API nền tảng cho phép triển khai dịch vụ hỗ trợ tiếp cận để nhận lệnh gọi lại đối với các sự kiện của người dùng và hệ thống, đồng thời tạo các cơ chế phản hồi thay thế, chẳng hạn như chuyển văn bản sang lời nói, phản hồi xúc giác và điều hướng bi xoay/d-pad.
Nếu quá trình triển khai thiết bị có hỗ trợ dịch vụ hỗ trợ tiếp cận của bên thứ ba, thì họ:
- [C-1-1] PHẢI cung cấp cách triển khai khung hỗ trợ tiếp cận của Android như mô tả trong tài liệu SDK accessibility API.
- [C-1-2] PHẢI tạo sự kiện hỗ trợ tiếp cận và phân phối
AccessibilityEvent
phù hợp cho tất cả các bản triển khai đã đăng kýAccessibilityService
dưới dạng tài liệu trong SDK. - [C-1-4] PHẢI cung cấp khả năng tương tác của người dùng để điều khiển các dịch vụ hỗ trợ tiếp cận khai báo AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_NÚT. Lưu ý rằng đối với các triển khai thiết bị với thanh điều hướng hệ thống, họ NÊN cho phép người dùng có tuỳ chọn cho một nút trong thanh điều hướng của hệ thống để điều khiển các dịch vụ này.
Nếu quá trình triển khai thiết bị có bao gồm các dịch vụ hỗ trợ tiếp cận được cài đặt trước, thì các dịch vụ đó:
- [C-2-1] PHẢI triển khai các dịch vụ hỗ trợ tiếp cận được cài đặt trước này như Direct Boot Aware apps when the data storage is encrypted with File based encryption (FBE).
- NÊN cung cấp cơ chế trong quy trình thiết lập ngoài hộp cho người dùng để bật các dịch vụ hỗ trợ tiếp cận có liên quan, cũng như các tùy chọn để điều chỉnh kích thước phông chữ, kích thước hiển thị và cử chỉ phóng to.
3,11. Chuyển văn bản sang lời nói
Android có những API cho phép các ứng dụng dùng dịch vụ chuyển văn bản sang lời nói (TTS), đồng thời cho phép nhà cung cấp dịch vụ cung cấp cách triển khai dịch vụ TTS.
Nếu các quá trình triển khai thiết bị báo cáo tính năng android.hardware.audio.output, thì họ:
- [C-1-1] PHẢI support the Android TTS frame APIs.
Nếu các quá trình triển khai thiết bị có hỗ trợ cài đặt công cụ TTS của bên thứ ba, thì các thiết bị đó sẽ:
- [C-2-1] PHẢI cung cấp thuộc tính tương tác người dùng để cho phép người dùng chọn công cụ TTS để sử dụng ở cấp hệ thống.
3,12. Khung đầu vào TV
Khung đầu vào cho TV Android (TIF) đơn giản hoá việc phân phối nội dung trực tiếp tới các thiết bị Android TV. TIF cung cấp một API tiêu chuẩn để tạo các mô-đun đầu vào điều khiển thiết bị Android TV.
Nếu quá trình triển khai thiết bị hỗ trợ TIF, thì các quy trình triển khai đó:
- [C-1-1] PHẢI khai báo tính năng nền tảng
android.software.live_tv
. - [C-1-2] PHẢI support all TIF APIs chẳng hạn như một ứng dụng mà sử dụng các API này và dịch vụ third-party TIF-based input (có thể được cài đặt và sử dụng trên thiết bị).
3,13. Cài đặt nhanh
Android cung cấp thành phần giao diện người dùng Cài đặt nhanh cho phép truy cập nhanh vào các thao tác thường dùng hoặc cần thiết.
Nếu hoạt động triển khai thiết bị bao gồm thành phần giao diện người dùng Cài đặt nhanh và hỗ trợ trình đơn Cài đặt nhanh của bên thứ ba, thì các hoạt động đó:
- [C-1-1] PHẢI cho phép người dùng thêm hoặc xoá các ô được cung cấp thông qua API
quicksettings
từ ứng dụng bên thứ ba. - [C-1-2] PHẢI NOT tự động thêm một ô từ ứng dụng thứ ba trực tiếp vào Cài đặt nhanh.
- [C-1-3] NOT display all the user-added tile from third-party apps opposite the system-provided quick settings tile.
3,14. Giao diện người dùng nội dung đa phương tiện
Nếu quá trình triển khai thiết bị bao gồm các ứng dụng không được kích hoạt bằng giọng nói (Ứng dụng) tương tác với các ứng dụng bên thứ ba thông qua MediaBrowser
hoặc MediaSession
, thì Ứng dụng:
[C-1-2]{4}{/5} clear display icon met via getIconBitmap() or getIconUri() and goals() and targets called via getTitle() as descriptions in
MediaDescription
. Có thể rút ngắn tiêu đề để tuân thủ các quy định về an toàn (ví dụ: sự phân tâm của người lái xe).[C-1-3] PHẢI show the third-party application icon chống lại bất cứ khi nào hiển thị nội dung được cung cấp bởi ứng dụng thứ ba này.
[C-1-4] PHẢI cho phép người dùng tương tác với toàn bộ hệ thống phân cấp
MediaBrowser
. mặc định hạn chế quyền truy cập vào một phần của hệ thống phân cấp để tuân thủ các quy định an toàn (e.g. drive distraction), nhưng NOT cung cấp ưu tiên xử lý dựa trên nội dung hoặc nhà cung cấp nội dung.[C-1-5] consider double tap of
KEYCODE_HEADSETHOOK
hoặcKEYCODE_MEDIA_PLAY_PAUSE
asKEYCODE_MEDIA_NEXT
forMediaSession.Callback#onMediaButtonEvent
.
3,15. Ứng dụng tức thì
Nếu thiết bị triển khai hỗ trợ Ứng dụng tức thì, họ PHẢI đáp ứng các yêu cầu sau:
- [C-1-1] Instant Apps NOT be assigned permissions that have the
android:protectionLevel
set to"instant"
. - [C-1-2] Instant Apps KHÔNG ĐƯỢC tương tác với các ứng dụng đã cài đặt thông qua implicitintent
trừ một trong những trường hợp sau là true:
- Bộ lọc mẫu ý định của thành phần bị hiển thị và có CATEGORY_BROWSABLE
- Hành động là một trong các hành động sau: ACTION_SEND, ACTION_SENDTO, ACTION_SEND_MULTIPLE
- Mục tiêu được hiển thị rõ ràng bằng android:visibleTo InstantApps
- [C-1-3] Instant Apps KHÔNG ĐƯỢC tương tác rõ ràng với các ứng dụng đã cài đặt trừ khi thành phần được hiển thị qua android:visibleTo InstantApps.
- [C-1-4] Installation Apps NOT see details about the Instant Apps on the device except the Instant App declared to the installed application.
Triển khai thiết bị PHẢI cung cấp các thuộc tính tương tác sau đây cho người dùng để tương tác với Ứng dụng tức thì. AOSP đáp ứng các yêu cầu với Giao diện người dùng hệ thống, Cài đặt và Trình chạy mặc định. Triển khai thiết bị:
- [C-1-5] PHẢI cung cấp khả năng tương tác của người dùng để xem và xoá Ứng dụng tức thì được lưu vào bộ nhớ đệm cục bộ cho từng gói ứng dụng riêng lẻ.
- [C-1-6] PHẢI cung cấp một thông báo người dùng liên tục có thể được thu gọn trong khi Ứng dụng tức thì đang chạy ở nền trước. Thông báo người dùng này PHẢI bao gồm cả việc Ứng dụng tức thì không yêu cầu cài đặt và cung cấp một thuộc tính tương tác người dùng hướng dẫn người dùng đến màn hình thông tin của ứng dụng trong phần Cài đặt. Đối với Ứng dụng tức thì khởi chạy thông qua ý định web, như được xác định bằng cách sử dụng ý định với hành động được đặt thành
Intent.ACTION_VIEW
và với lược đồ "http" hoặc "https", một thuộc tính người dùng bổ sung nên cho phép người dùng không khởi chạy Ứng dụng tức thì và khởi chạy liên kết được liên kết với trình duyệt web được định cấu hình, nếu trình duyệt có sẵn trên thiết bị. - [C-1-7] PHẢI cho phép chạy các ứng dụng tức thì được truy cập từ hàm gần đây nếu hàm gần đây có sẵn trên thiết bị.
[C-1-8] PHẢI tải trước một hoặc nhiều ứng dụng hoặc thành phần dịch vụ với trình xử lý ý định cho ý định được liệt kê trong SDK tại đây và hiển thị ý định hiển thị cho Ứng dụng tức thì.
3,16. Ghép nối thiết bị đồng hành
Android hỗ trợ tính năng ghép nối thiết bị đồng hành để quản lý việc liên kết với các thiết bị đồng hành một cách hiệu quả hơn, đồng thời cung cấp API CompanionDeviceManager
để các ứng dụng dùng tính năng này.
Nếu các quá trình triển khai thiết bị có hỗ trợ tính năng ghép nối thiết bị đồng hành, thì các quy trình triển khai đó:
- [C-1-1] PHẢIKhai báo cờ tính năng
FEATURE_COMPANION_DEVICE_SETUP
. - [C-1-2] PHẢI đảm bảo API trong gói
android.companion
được triển khai đầy đủ. - [C-1-3] PHẢI cung cấp thuộc tính tương tác của người dùng cho người dùng để chọn/xác nhận thiết bị đồng hành hiện tại và hoạt động.
3.17. Ứng dụng nặng
Nếu các quá trình triển khai thiết bị khai báo tính năng FEATURE_CANT_SAVE_STATE
, thì chúng:
- [C-1-1] PHẢI have only one installed app that specified
cantSaveState
running in the system at a time. Nếu người dùng rời khỏi một ứng dụng như vậy mà không thoát khỏi nó một cách rõ ràng (ví dụ: bằng cách nhấn phím home trong khi rời khỏi một hoạt động đang hoạt động hệ thống, thay vì nhấn quay lại với không còn hoạt động nào trong hệ thống), thì thiết bị triển khai phải ưu tiên ứng dụng đó trong RAM as they do for other các điều được dự kiến sẽ vẫn chạy, chẳng hạn như nền trước dịch vụ. Khi một ứng dụng như vậy chạy ở chế độ nền, hệ thống vẫn có thể áp dụng các tính năng quản lý nguồn điện cho ứng dụng đó, chẳng hạn như hạn chế quyền truy cập vào CPU và mạng. - [C-1-2] PHẢI cung cấp một UI thuộc tính tương tác để chọn ứng dụng mà sẽ không
tham gia vào cơ chế lưu/khôi phục trạng thái bình thường sau khi người dùng
khởi chạy ứng dụng thứ hai khai báo với thuộc tính
cantSaveState
. - [C-1-3] KHÔNG áp dụng các thay đổi khác trong chính sách cho các ứng dụng chỉ định
cantSaveState
, chẳng hạn như thay đổi hiệu suất CPU hoặc thay đổi mức độ ưu tiên lập lịch.
Nếu quá trình triển khai thiết bị không khai báo tính năng FEATURE_CANT_SAVE_STATE
, thì chúng:
- [C-1-1]{4} ignore the
cantSaveState
thuộc tính set by apps and PHẢI NOT thay đổi hành vi ứng dụng dựa trên thuộc tính đó.
3,18. Danh bạ
Android bao gồm các API Contacts
Provider
để cho phép các ứng dụng quản lý thông tin liên hệ được lưu trữ trên thiết bị.
Dữ liệu về người liên hệ được nhập trực tiếp vào thiết bị thường được đồng bộ hoá với một dịch vụ web, nhưng dữ liệu CÓ THỂ cũng chỉ nằm trên thiết bị.
Những người liên hệ chỉ lưu trữ trên thiết bị được gọi là người liên hệ trên máy.
RawContacts được "liên kết với" hoặc "lưu trữ trong" một Tài khoản khi ACCOUNT_NAME
và ACCOUNT_TYPE
khớp với các trường Account.name và Account.type tương ứng của tài khoản.
Tài khoản cục bộ mặc định: tài khoản dành cho các danh bạ thô chỉ được lưu trữ trên thiết bị và không liên kết với Tài khoản trong AccountManager, được tạo bằng các giá trị null cho cột ACCOUNT_NAME
và ACCOUNT_TYPE
.
Tài khoản cục bộ tuỳ chỉnh: tài khoản dành cho các danh bạ thô chỉ được lưu trữ trên thiết bị và không liên kết với một Tài khoản trong AccountManager, được tạo với ít nhất một giá trị không rỗng cho các cột ACCOUNT_NAME
và ACCOUNT_TYPE
.
Triển khai thiết bị:
- [C-SR-1] AreBạn lựa chọn không tự động để không tạo các tài khoản cục bộ tuỳ chỉnh.
Nếu hoạt động triển khai thiết bị sử dụng tài khoản cục bộ tuỳ chỉnh:
- [C-1-1] The
ACCOUNT_NAME
, of the custom local account PHẢI be trả về byContactsContract.RawContacts.getLocalAccountName
- [C-1-2] The
ACCOUNT_TYPE
, of the custom local account NOT be return byContactsContract.RawContacts.getLocalAccountType
- [C-1-3] Raw contacts that are insert by third party applications with the default local account (i.e. by setting null values for
ACCOUNT_NAME
andACCOUNT_TYPE
) PHẢI be insert to the custom local account. - [C-1-4] Raw contacts insert vào the custom local account PHẢI not be removed when accounts are added or removed.
- [C-1-5] Delete experiments approved with the custom local account
PHẢI đưa ra kết quả trong danh sách liên hệ thô đang được thanh lọc ngay lập tức (as if the
CALLER_IS_SYNCADAPTER
param was set to true), ngay cả khi paramCALLER\_IS\_SYNCADAPTER
được đặt thành false hoặc not chỉ định.
4. Khả năng tương thích đóng gói ứng dụng
Triển khai thiết bị:
[C-0-1]{4} be confirm of installed and running Android “.apk” files as generated by the “aapt” tool include in the chính thức SDK Android.
- Vì yêu cầu trên có thể gây khó khăn cho việc triển khai thiết bị, bạn nên NÊN sử dụng hệ thống quản lý gói của phương thức triển khai tham chiếu AOSP (Dự án nguồn mở Android).
[C-0-2] PHẢI support verified “.apk” files using the APK Signature Scheme v3.1, APK Signature Scheme v3, APK Signature Scheme v2 and JAR signing.
[C-0-3] PHẢI KHÔNG mở rộng mã .apk, Android Manifest, Dalvik mã byte hoặc định dạng mã byte RenderScript theo cách có thể ngăn các tệp đó cài đặt và chạy chính xác trên các thiết bị tương thích khác.
[C-0-4] PHẢI NOT cho phép các ứng dụng khác ngoài "người cài đặt bản ghi hiện tại" cho gói để tự động gỡ cài đặt ứng dụng mà không có bất kỳ xác nhận của người dùng nào, như được tài liệu trong SDK cho quyền
DELETE_PACKAGE
. Trường hợp ngoại lệ duy nhất là ý định xử lý ứng dụng trình xác minh gói hệ thống PACKAGE_NEEDS_VERIFICATION và ứng dụng trình quản lý bộ nhớ xử lý ý định ACTION_MANAGE_STORAGE.[C-0-5] PHẢI have an activity that handling the
android.settings.MANAGE_UNKNOWN_APP_SOURCES
intent.[C-0-6] PHẢI NOT install application bundle from unknown sources, except the app that requests the installed đáp ứng tất cả các yêu cầu sau:
- Ứng dụng PHẢI khai báo quyền
REQUEST_INSTALL_PACKAGES
hoặc đặtandroid:targetSdkVersion
ở mức 24 trở xuống. - nó PHẢI đã được người dùng cấp quyền để cài đặt các ứng dụng từ các nguồn không xác định.
- Ứng dụng PHẢI khai báo quyền
nên cung cấp một người dùng tiềm năng để cấp/thu hồi quyền cài đặt các ứng dụng từ nguồn không xác định cho mỗi ứng dụng, nhưng có thể chọn triển khai điều này dưới dạng không hoạt động và trả về
RESULT_CANCELED
chostartActivityForResult()
, nếu triển khai thiết bị không muốn cho phép người dùng có lựa chọn này. Tuy nhiên, ngay cả trong những trường hợp như vậy, chúng nên biểu thị cho người dùng biết lý do không có sự lựa chọn như vậy được trình bày.[C-0-7] truyền hiển thị hộp thoại cảnh báo với chuỗi cảnh báo được cung cấp thông qua API hệ thống
PackageManager.setHarmfulAppWarning
cho người dùng trước khi khởi chạy hoạt động trong ứng dụng đã được đánh dấu bằng cùng một hệ thống APIPackageManager.setHarmfulAppWarning
như có khả năng gây hại.nên cung cấp khả năng tương tác của người dùng để chọn gỡ cài đặt hoặc khởi chạy ứng dụng trên hộp thoại cảnh báo.
[C-0-8] PHẢI triển khai hỗ trợ cho Hệ thống tệp tăng dần dưới dạng tài liệu tại đây.
[C-0-9] PHẢI hỗ trợ xác minh các tệp .apk bằng cách sử dụng APK Signature Scheme v4 và APK Signature Scheme v4.1.
5. Khả năng tương thích đa phương tiện
Triển khai thiết bị:
- [C-0-1] PHẢI support the media định dạng, bộ mã hoá, giải mã, loại tệp,
và vùng chứa định dạng được xác định trong section 5.1
for mỗi và mọi bộ mã hoá và giải mã được khai báo bởi
MediaCodecList
. - [C-0-2] PHẢI kê khai và báo cáo hỗ trợ của bộ mã hoá, giải mã có sẵn cho các ứng dụng của bên thứ ba qua
MediaCodecList
. - [C-0-3] PHẢI be could to specificBộ mã hoá và cung cấp cho các ứng dụng của bên thứ ba tất cả các định dạng mà nó có thể mã hoá. Tệp này bao gồm tất cả các luồng bit mà bộ mã hoá tạo ra và các cấu hình được báo cáo trong
CamcorderProfile
.
Triển khai thiết bị:
- nên nhắm mục tiêu độ trễ bộ mã hoá tối thiểu, nói về các từ khác, chúng
- nên NOT sử dụng và lưu trữ bộ đệm đầu vào và chỉ trả về bộ đệm đầu vào khi được xử lý.
- NÊN NOT keep onGói bộ đệm giải mã trong thời gian dài hơn như được chỉ định bởi tiêu chuẩn (e.g. SPS).
- NÊN NOT keep on mã hoá bộ đệm dài hơn thời gian mà cấu trúc GOP yêu cầu.
Tất cả các bộ mã hoá và giải mã được liệt kê trong phần dưới đây đều được cung cấp dưới dạng phương thức triển khai phần mềm trong phương thức triển khai Android ưu tiên từ Dự án nguồn mở Android.
Xin lưu ý rằng cả Google và Open Handset Alliance đều không tuyên bố rằng các bộ mã hoá và giải mã này không có bằng sáng chế của bên thứ ba. Những nhà quảng cáo muốn sử dụng mã nguồn này trong các sản phẩm phần cứng hoặc phần mềm nên biết rằng việc triển khai mã này, kể cả trong phần mềm nguồn mở hoặc phần mềm chia sẻ, có thể yêu cầu giấy phép bằng sáng chế của chủ sở hữu bằng sáng chế có liên quan.
5.1. Bộ mã hoá và giải mã nội dung đa phương tiện
5.1.1. Mã hoá âm thanh
Xem thêm thông tin chi tiết trong 5.1.3. Thông tin chi tiết về bộ mã hoá và giải mã âm thanh.
Nếu thiết bị triển khai khai báo android.hardware.microphone
,
Chúng PHẢI hỗ trợ mã hoá các định dạng âm thanh sau đây và cung cấp chúng cho các ứng dụng của bên thứ ba:
- [C-1-1] PCM/WAVE
- [C-1-2] FLAC
- [C-1-3] Opus
Tất cả bộ mã hoá âm thanh PHẢI hỗ trợ:
- [C-3-1] Khung âm thanh theo thứ tự byte gốc 16 bit PCM qua API
android.media.MediaCodec
.
5.1.2. Giải mã âm thanh
Xem thêm thông tin chi tiết trong 5.1.3. Thông tin chi tiết về bộ mã hoá và giải mã âm thanh.
Nếu các quá trình triển khai thiết bị khai báo hỗ trợ cho tính năng android.hardware.audio.output
, thì các quá trình đó phải hỗ trợ giải mã các định dạng âm thanh sau:
- [C-1-1] Cấu hình MPEG-4 AAC (AAC LC)
- [C-1-2] Cấu hình MPEG-4 HE AAC (AAC+)
- [C-1-3] Cấu hình MPEG-4 HE AACv2 (AAC nâng cao)
- [C-1-4] AAC ELD (AAC độ trễ thấp nâng cao)
- [C-1-11] xHE-AAC (Cấu hình ISO/IEC 23003-3 Extended HE AAC, bao gồm Cấu hình cơ sở USAC và Cấu hình kiểm soát dải động ISO/IEC 23003-4)
- [C-1-5] FLAC
- [C-1-6] MP3
- [C-1-7] MIDI
- [C-1-8] Vorbis
- [C-1-9] PCM/WAVE bao gồm các định dạng âm thanh có độ phân giải cao lên tới 24 bit, tốc độ lấy mẫu 192 kHz và 8 kênh. Xin lưu ý rằng yêu cầu này chỉ dành cho việc giải mã và thiết bị được phép lấy mẫu và giảm độ phân giải trong giai đoạn phát.
- [C-1-10] Opus
Nếu thiết bị triển khai hỗ trợ giải mã bộ đệm đầu vào AAC của luồng đa kênh (i.e. more than Two channels) to PCM thông qua mặc định AAC audio hề giải mã trong android.media.MediaCodec
API, các sau PHẢI được hỗ trợ:
- [C-2-1] DeMã là giải mã phải được thực hiện mà không cần giảm độ phân giải (e.g. a 5.0 AAC stream must be giải mã to five channels of PCM, a 5.1 AAC stream must be solutiond to6 channels of PCM).
- [C-2-2] Dynamic Range Metadata PHẢI be as Definition in "Dynamic Range Control
(DRC)" in ISO/IEC 14496-3, and the
android.media.MediaFormat
DRC keys to configure the Dynamic Range-related activities of the audio solutionr. Các khoá AAC DRC được giới thiệu trong API 21 và là:KEY_AAC_DRC_ATTENUATION_FACTOR
,KEY_AAC_DRC_BOOST_FACTOR
,KEY_AAC_DRC_HEAVY_COMPRESSION
,KEY_AAC_DRC_TARGET_REFERENCE_LEVEL
vàKEY_AAC_ENCODED_TARGET_LEVEL
. - [C-SR-1] It is phong phú chim quảng cáo rằng yêu cầu C-2-1 and C-2-2 above are satisfied by all AAC audio codec.
Khi giải mã âm thanh USAC, MPEG-D (ISO/IEC 23003-4):
- [C-3-1] Loudness and DRC siêu dữ liệu PHẢI được thông dịch và áp dụng theo MPEG-D DRC Dynamic Range Control Profile Level 1.
- [C-3-2] TheBộ giải mã phải xử lý theo cấu hình đã đặt với các khoá
android.media.MediaFormat
sau:KEY_AAC_DRC_TARGET_REFERENCE_LEVEL
vàKEY_AAC_DRC_EFFECT_TYPE
.
Bộ giải mã cấu hình MPEG-4 AAC, HE AAC và HE AACv2:
- May support largeness and Dynamic Range control using ISO/IEC 23003-4 Dynamic Range Control Profile. (Hồ sơ điều khiển dải động động).
Nếu siêu dữ liệu ISO/IEC 23003-4 được hỗ trợ và nếu cả siêu dữ liệu ISO/IEC 23003-4 và ISO/IEC 14496-3 đều có trong luồng bit được giải mã, thì:
- Siêu dữ liệu ISO/IEC 23003-4 SẼ được ưu tiên.
Tất cả bộ giải mã âm thanh PHẢI hỗ trợ đầu ra:
- [C-6-1] Khung âm thanh theo thứ tự byte gốc 16 bit PCM qua API
android.media.MediaCodec
.
Nếu thiết bị triển khai hỗ trợ giải mã bộ đệm đầu vào AAC của luồng đa kênh (i.e. more than Two channels) to PCM thông qua bộ giải mã âm thanh AAC mặc định trong API android.media.MediaCodec
, thì sau đây PHẢI
được hỗ trợ:
- [C-7-1] NOT beable to be configuration by the application using theDanh sách giải mã with the key
KEY_MAX_OUTPUT_CHANNEL_COUNT
to control could the content is downmixed to stereo (when using a value of 2) or is output using the native number of channels (when using a value equals or largeer to that number). Ví dụ: giá trị từ 6 trở lên sẽ định cấu hình bộ giải mã để đầu ra 6 kênh khi được cấp nội dung 5.1. - [C-7-2] Whentooltip, the cuốiBộ giải mã phải quảng cáo mặt nạ kênh đang được sử dụng trên định dạng đầu ra với khoá
KEY_CHANNEL_MASK
, sử dụng các hằng sốandroid.media.AudioFormat
(ví dụ:CHANNEL_OUT_5POINT1
).
Nếu các phương thức triển khai thiết bị hỗ trợ bộ giải mã âm thanh không phải là bộ giải mã âm thanh AAC mặc định và có thể xuất âm thanh đa kênh (tức là nhiều hơn 2 kênh) khi được cung cấp nội dung đa kênh được nén, thì:
- [C-SR-2] The di#decoder is=\" Đừng thử lại để có thể được định cấu hình bởi
ứng dụng bằng cách sử dụng giải mã với khóa
KEY_MAX_OUTPUT_CHANNEL_COUNT
để kiểm soát xem nội dung có được giảm âm lượng xuống stereo (khi sử dụng một giá trị của 2) hoặc là đầu ra bằng cách sử dụng số gốc của kênh (khi sử dụng một giá trị bằng hoặc lớn hơn đến số đó). Ví dụ: giá trị từ 6 trở lên sẽ định cấu hình bộ giải mã để đầu ra 6 kênh khi được cấp nội dung 5.1. - [C-SR-3] Khi giải mã, bộ giải mã là lá chắn chần chừ để quảng cáo mặt nạ kênh đang được sử dụng trên định dạng đầu ra với khoá
KEY_CHANNEL_MASK
, sử dụng các hằng số android.media.AudioFormat (example:CHANNEL_OUT_5POINT1
).
5.1.3. Chi tiết về bộ mã hoá và giải mã âm thanh
Định dạng/Codec | Thông tin chi tiết | Loại tệp/Định dạng vùng chứa được hỗ trợ |
---|---|---|
Cấu hình MPEG-4 AAC (AAC LC) |
Hỗ trợ nội dung mono/stereo/5.0/5.1 với tốc độ lấy mẫu tiêu chuẩn từ 8 đến 48 kHz. |
|
Cấu hình MPEG-4 HE AAC (AAC+) | Hỗ trợ nội dung mono/stereo/5.0/5.1 với tốc độ lấy mẫu chuẩn từ 16 đến 48 kHz. |
|
MPEG-4 HE AACv2 Cấu hình (AAC nâng cao+) |
Hỗ trợ nội dung mono/stereo/5.0/5.1 với tốc độ lấy mẫu chuẩn từ 16 đến 48 kHz. |
|
AAC ELD (AAC độ trễ thấp nâng cao) | Hỗ trợ nội dung đơn âm/âm thanh nổi với tốc độ lấy mẫu tiêu chuẩn từ 16 đến 48 kHz. |
|
USAC (Hoa Kỳ) | Hỗ trợ nội dung đơn âm/âm thanh nổi với tốc độ lấy mẫu tiêu chuẩn từ 7,35 đến 48 kHz. | MPEG-4 (.mp4, .m4a) |
AMR-NB | 4,75 đến 12,2 kb/giây được lấy mẫu tại 8 kHz | 3GPP (.3gp) |
AMR-WB | 9 tốc độ từ 6,60 kbit/giây đến 23,85 kbit/giây được lấy mẫu ở tần số 16 kHz, như xác định tại AMR-WB, Đa tốc độ thích ứng – Bộ mã hoá lời nói băng tần rộng | 3GPP (.3gp) |
FLAC | For cả flow Encoder and Encoderr: at least Mono and sterTrong các chế độ âm thanh nổi phải được hỗ trợ. Sample rate up to 192 kHz NOT be supported; 16-bit and 24-bit issue PHẢI be supported. FLAC 24-bit audio data handling PHẢI be available withbao gồm cấu hình âm thanh dấu phẩy động. |
|
MP3 | Đơn âm/âm thanh nổi 8-320Kbps hằng số (CBR) hoặc tốc độ bit biến (VBR) |
|
MIDI | Loại MIDI 0 và 1. DLS Phiên bản 1 và 2. XMF và XMF trên thiết bị di động. Hỗ trợ các định dạng nhạc chuông RTTTL/RTX, OTA và iMelody |
|
Vorbis |
|
|
PCM/SÓNG | Bộ mã hoá và giải mã PCM PHẢI hỗ trợ PCM tuyến tính 16 bit và độ chính xác đơn 16 bit. Trình trích xuất WAVE phải hỗ trợ PCM tuyến tính 16 bit, 24 bit, 32 bit và độ chính xác đơn 32 bit (tốc độ lên đến giới hạn phần cứng). Tỷ lệ lấy mẫu PHẢI được hỗ trợ từ 8 kHz đến 192 kHz. | WAVE (.wav) |
Opus | Giải mã: Hỗ trợ nội dung đơn âm, âm thanh nổi, 5.0 và 5.1
với tốc độ lấy mẫu là 8000, 12000, 16000, 24000 và 48000 Hz.
Mã hoá: Hỗ trợ nội dung đơn âm và âm thanh nổi với tốc độ lấy mẫu là 8000, 1200, 40, 40 và 40 Hz |
|
5.1.4. Mã hoá hình ảnh
Xem thêm thông tin chi tiết trong 5.1.6. Thông tin chi tiết về bộ mã hoá và giải mã hình ảnh.
Các quá trình triển khai thiết bị PHẢI hỗ trợ mã hoá phương thức mã hoá hình ảnh sau đây:
- [C-0-1] JPEG
- [C-0-2] PNG
- [C-0-3] WebP
Nếu các hoạt động triển khai thiết bị hỗ trợ mã hoá HEIC qua android.media.MediaCodec
cho loại nội dung nghe nhìn MIMETYPE_IMAGE_ANDROID_HEIC
,
thì chúng:
- [C-1-1] PHẢI cung cấp bộ mã hoá bộ mã hoá HEVC phần cứng tăng tốc hỗ trợ
BITRATE_MODE_CQ
chế độ kiểm soát tốc độ bit,HEVCProfileMainStill
hồ sơ và kích thước khung hình 512 x 512 px.
5.1.5. Giải mã hình ảnh
Xem thêm thông tin chi tiết trong 5.1.6. Thông tin chi tiết về bộ mã hoá và giải mã hình ảnh.
Các quá trình triển khai thiết bị PHẢI hỗ trợ giải mã phương thức mã hoá hình ảnh sau:
- [C-0-1] JPEG
- Ảnh GIF [C-0-2]
- [C-0-3] PNG
- [C-0-4] BMP
- [C-0-5] WebP
- [C-0-6] Thô
Nếu thiết bị triển khai hỗ trợ giải mã video HEVC, chúng: * [C-1-1] PHẢI support HEIF (HEIC) image solution.
Bộ giải mã hình ảnh hỗ trợ định dạng độ sâu bit cao (9+ bit mỗi kênh):
- [C-2-1] PHẢI hỗ trợ xuất ra một định dạng tương đương 8-bit nếu được yêu cầu bởi ứng dụng, ví dụ, qua cấu hình
ARGB_8888
củaandroid.graphics.Bitmap
.
5.1.6. Chi tiết về bộ mã hoá và giải mã hình ảnh
Định dạng/Codec | Thông tin chi tiết | Loại tệp/Định dạng vùng chứa được hỗ trợ |
---|---|---|
JPEG | Cơ bản+lũy tiến | JPEG (.jpg) |
GIF | Ảnh GIF (.gif) | |
PNG | PNG (.png) | |
BMP | BMP (.bmp) | |
WebP | WebP (.webp) | |
Thô | ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf), PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw) | |
HEIF | Hình ảnh, Bộ sưu tập hình ảnh, Chuỗi hình ảnh | HEIF (.heif), HEIC (.heic) |
Bộ mã hoá và bộ giải mã hình ảnh được hiển thị thông qua API MediaCodec
[C-1-1] PHẢI support YUV420 8:8:8Chiến dịch màu sắc linh hoạt định dạng (
COLOR_FormatYUV420Flexible
) đếnCodecCapabilities
.[C-SR-1] Liên minh Dẫn hướng để hỗ trợ RGB888 màu định dạng cho đầu vào Surface Chế độ.
[C-1-3] PHẢI support at least one of a planar or bánplanar YUV420 8:8:8 color format:
COLOR_FormatYUV420PackedPlanar
(Equvalent toCOLOR_FormatYUV420Planar
) orCOLOR_FormatYUV420PackedSemiPlanar
(tương đương toCOLOR_FormatYUV420SemiPlanar
).
5.1.7. Bộ mã hoá và giải mã video
- Để chấp nhận được chất lượng của dịch vụ phát video trực tuyến và hội nghị video, thiết bị, các thiết bị triển khai nên sử dụng một bộ mã hoá và giải mã phần cứng VP8 đáp ứng các yêu cầu.
Nếu quá trình triển khai thiết bị có bao gồm bộ giải mã hoặc bộ mã hoá video:
[C-1-1] Video codecs PHẢI support output and input bytebufferKích thước that accommodate the large soạnvà khung nén and nén as deductionsd by the standard and configuration but cũng not overallocate.
[C-1-2] Video bộ mã hoá và giải mã video PHẢI hỗ trợ YUV420 8:8:8 linh hoạt màu định dạng (
COLOR_FormatYUV420Flexible
) đếnCodecCapabilities
.[C-1-3] Video bộ mã hoá và bộ giải mã PHẢI support at least one of a planar or semiplanar YUV420 8:8:8 color format:
COLOR_FormatYUV420PackedPlanar
(tương đương vớiCOLOR_FormatYUV420Planar
) hoặcCOLOR_FormatYUV420PackedSemiPlanar
(tương đương vớiCOLOR_FormatYUV420SemiPlanar
). Họ are Always Sử dụng để hỗ trợ cả hai.[C-SR-1] Video Các bộ mã hoá và bộ mã hoá
[C-1-5] Video giải mã hỗ trợ định dạng độ sâu bit cao (9+ bit mỗi kênh) PHẢI hỗ trợ đầu ra một định dạng tương đương 8 bit nếu ứng dụng yêu cầu. Điều này PHẢI được phản ánh bằng cách hỗ trợ định dạng màu YUV420 8:8:8 qua
android.media.MediaCodecInfo
.
Nếu các hoạt động triển khai thiết bị quảng cáo tính năng hỗ trợ hồ sơ HDR thông qua Display.HdrCapabilities
, thì chúng:
- [C-2-1] PHẢI hỗ trợ xử lý và phân tích cú pháp siêu dữ liệu tĩnh HDR.
Nếu các hoạt động triển khai thiết bị quảng cáo tính năng hỗ trợ làm mới nội bộ thông qua FEATURE_IntraRefresh
trong lớp MediaCodecInfo.CodecCapabilities
, thì chúng:
- [C-3-1] PHẢI support the refreshHoạt động trong phạm vi 10 - 60 frames and accuratelyactive below 20% of configuration Làm mới khoảng thời gian.
Trừ phi ứng dụng chỉ định khác bằng cách sử dụng khoá định dạng KEY_COLOR_FORMAT
, việc triển khai bộ giải mã video:
- [C-4-1] PHẢI mặc định to the color formatoptimize for hardware display if setting using Surface output.
- [C-4-2] PHẢI default to a YUV420 8:8:8 color format Optimize for CPU read if configuration to not use Surface output.
5.1.8. Danh sách bộ mã hoá và giải mã video
Định dạng/Codec | Thông tin chi tiết | Loại tệp/Định dạng vùng chứa được hỗ trợ |
---|---|---|
H.263 |
|
|
H.264 AVC | Xem mục 5.2 và 5.3 để biết chi tiết |
|
H.265 HEVC | Xem phần 5.3 để biết chi tiết |
|
MPEG-2 | Cấu hình chính |
|
MPEG-4 SP (Danh sách quảng cáo gốc) |
|
|
Văn bản ảo (VP8) | Xem mục 5.2 và 5.3 để biết chi tiết |
|
Văn bản 9 | Xem phần 5.3 để biết chi tiết |
|
5.1.9. Bảo mật bộ mã hoá và giải mã nội dung đa phương tiện
Triển khai thiết bị PHẢI đảm bảo tuân thủ các tính năng bảo mật của bộ mã hoá và giải mã đa phương tiện như mô tả bên dưới.
Android hỗ trợ OMX, một API tăng tốc đa phương tiện trên nhiều nền tảng, cũng như Codec 2.0, một API tăng tốc đa phương tiện với mức hao tổn thấp.
Nếu quá trình triển khai thiết bị hỗ trợ nội dung nghe nhìn, thì các ứng dụng đó:
- [C-1-1] PHẢI cung cấp hỗ trợ cho media codecs hoặc via OMX hoặc Codec 2.0 APIs (or cả hai) as in the Android Open Source Project and notdisable or scumvent the securitybảo vệ. Điều này cụ thể không có nghĩa là mỗi bộ mã hoá phải sử dụng OMX hoặc Codec 2.0 API, chỉ điều đó hỗ trợ cho ít nhất một trong những API này PHẢI khả dụng, và hỗ trợ cho các API có sẵn PHẢI bao gồm các biện pháp bảo vệ bảo mật hiện có.
- [C-SR-1] Are mã hóa NÊN bao gồm hỗ trợ cho Codec 2.0 API.
Nếu quá trình triển khai thiết bị không hỗ trợ API Codec 2.0, thì các thiết bị đó:
- [C-2-1] PHẢI bao gồm bộ mã hoá và giải mã phần mềm OMX tương ứng từ Android Mở Dự án nguồn mở (nếu có sẵn) cho từng định dạng và loại phương tiện (encoder or solutionr) supported by the device.
- [C-2-2] Bộ mã hoá và giải mã có tên bắt đầu bằng "OMX.google". PHẢI dựa trên mã nguồn Dự án nguồn mở Android của họ.
- [C-SR-2] Are trì hoãn phát triển
Nếu quá trình triển khai thiết bị hỗ trợ API Codec 2.0, thì các quá trình triển khai thiết bị đó:
- [C-3-1] PHẢI bao gồm bộ mã hoá và giải mã phần mềm Codec 2.0 tương ứng từ Dự án nguồn mở Android (nếu có) cho từng định dạng và loại phương tiện (encoder or giải mã) được hỗ trợ bởi thiết bị.
- [C-3-2] PHẢI House the Codec 2.0 software codecs in the software Codecs process as provided in the Android Open Source Project to make it possible to morely Grant access to software codecs.
- [C-3-3] Bộ mã hoá và giải mã có tên bắt đầu bằng "c2.android". PHẢI dựa trên mã nguồn Dự án nguồn mở Android của họ.
5.1.10. Đặc tính bộ mã hoá và giải mã nội dung đa phương tiện
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã nội dung đa phương tiện, thì các quy trình này:
- [C-1-1] PHẢI trả về giá trị đúng của bộ mã hoá và giải mã đa phương tiện thông qua API
MediaCodecInfo
.
Cụ thể:
- [C-1-2] Các bộ mã hoá và giải mã có tên bắt đầu bằng "OMX". PHẢI sử dụng các API OMX và có tên phù hợp với nguyên tắc đặt tên OMX IL.
- [C-1-3] Các bộ mã hoá và giải mã có tên bắt đầu bằng "c2". PHẢI sử dụng API Codec 2.0 và có tên tuân thủ nguyên tắc đặt tên của Codec 2.0 cho Android.
- [C-1-4] Bộ mã hoá và giải mã có tên bắt đầu bằng "OMX.google." hoặc "c2.android". KHÔNG ĐƯỢC mô tả là nhà cung cấp hoặc được tăng tốc phần cứng.
- [C-1-5] Codecs that run in a codec process (vendor or system) that have access to hardware conditions other than memory allocators and placements NOT beThuy to data only.
- [C-1-6] Codec not existing in the Android Open Source Project or not based on the source code in that project PHẢI bembd asvendor.
- [C-1-7] Codecs sử dụng phần cứng tăng tốc phải được đặc trưng dưới dạng được tăng tốc phần cứng.
- [C-1-8] Tên bộ mã hoá và giải mã KHÔNG ĐƯỢC gây hiểu lầm. Ví dụ: các bộ mã hoá và giải mã có tên "decoders" PHẢI support giải mã và các bộ mã hoá có tên "encoders" PHẢI support encryption. Những bộ mã hoá và giải mã có tên chứa định dạng nội dung nghe nhìn PHẢI hỗ trợ các định dạng đó.
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã video:
- [C-2-1] All video codecs PHẢI xuất bản dữ liệu tốc độ khung hình có thể đạt được cho các kích thước sau nếu được hỗ trợ bởi bộ mã hoá và giải mã:
SD (chất lượng thấp) | SD (chất lượng cao) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
Độ phân giải video |
|
|
|
1920 x 1080 pixel (trừ MPEG4) | 3840 x 2160 pixel (HEVC, VP9) |
- [C-2-2] Video Codec that are individuald as hardware Accelerated PHẢI xuất bản thông tin điểm hiệu suất. Các giá trị này PHẢI mỗi danh sách tất cả các điểm hiệu suất chuẩn được hỗ trợ (được liệt kê trong API
PerformancePoint
), trừ phi các điểm đó thuộc phạm vi điểm hiệu suất chuẩn được hỗ trợ khác. - Ngoài ra, các ứng dụng NÊN xuất bản các điểm hiệu suất mở rộng nếu hỗ trợ hiệu suất video được duy trì lâu dài khác với một trong các điểm hiệu suất chuẩn được liệt kê.
5.2. Mã hoá video
Nếu các hoạt động triển khai thiết bị hỗ trợ bất kỳ bộ mã hoá video nào và cung cấp cho các ứng dụng bên thứ ba, thì chúng:
- nên NOT be, over Two scroll windows, more than 15% over the xoá interstitial intraframe (I-frame) You.
- NÊN NOT be than 100% over the bit over a beta window of 1 seconds.
Nếu các phương thức triển khai thiết bị bao gồm một màn hình được nhúng có chiều dài đường chéo tối thiểu là 2,5 inch hoặc có cổng đầu ra video hay khai báo chức năng hỗ trợ của máy ảnh thông qua cờ tính năng android.hardware.camera.any
, thì các phương thức đó:
- [C-1-1] PHẢI include the support of at least one of the VP8 or H.264 videoencoders, and make it available for third-party applications.
- Phải hỗ trợ cả bộ mã hoá video VP8 và H.264 và cung cấp cho các ứng dụng bên thứ ba.
Nếu các quá trình triển khai thiết bị hỗ trợ bộ mã hoá video H.264, VP8, VP9 hoặc HEVC và cung cấp bộ mã hoá đó cho các ứng dụng bên thứ ba, thì các bộ mã hoá đó:
- [C-2-1] PHẢI hỗ trợ tốc độ bit có thể định cấu hình động.
- nên hỗ trợ biến khung tốc độ, trong đó video mã hoá NÊN xác định thời lượng khung hình tức thì dựa trên dấu thời gian của bộ đệm đầu vào và phân bổ bộ chứa bit dựa trên thời lượng khung hình đó.
Nếu các hoạt động triển khai thiết bị hỗ trợ bộ mã hoá video MPEG-4 SP và cung cấp cho các ứng dụng bên thứ ba, thì các hoạt động đó:
- NÊN hỗ trợ tốc độ bit có thể định cấu hình động cho bộ mã hoá được hỗ trợ.
Nếu các phương pháp triển khai thiết bị cung cấp bộ mã hoá video hoặc hình ảnh được tăng tốc phần cứng, đồng thời hỗ trợ một hoặc nhiều máy ảnh phần cứng gắn kèm hoặc có thể cắm được hiển thị thông qua các API android.camera
:
- [C-4-1] all hardware Tăng tốc video và hình ảnh bộ mã hoá PHẢI hỗ trợ mã hoá khung hình từ(các) máy ảnh phần cứng.
- nên hỗ trợ khung mã hoá từ máy ảnh phần cứng thông qua tất cả video hoặc bộ mã hoá hình ảnh.
Nếu các quá trình triển khai thiết bị có cung cấp phương thức mã hoá HDR thì các kết quả đó:
- [C-SR-1] areQuá trình Dẫn Quảng Cáo để cung cấp một trình bổ trợ cho việc chuyển mã liền mạch API để chuyển đổi từ định dạng HDR sang định dạng SDR.
5.2.1. H.263
Nếu các hoạt động triển khai thiết bị hỗ trợ bộ mã hoá H.263 và cung cấp bộ mã hoá cho các ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI hỗ trợ Hồ sơ cơ sở Cấp 45.
- NÊN hỗ trợ tốc độ bit có thể định cấu hình động cho bộ mã hoá được hỗ trợ.
5.2.2. H.264
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã H.264, thì chúng:
- [C-1-1] PHẢI hỗ trợ Hồ sơ cơ sở Cấp 3. Tuy nhiên, bạn không bắt buộc phải hỗ trợ ASO (Sắp xếp lát cắt tuỳ ý), FMO (Thứ tự khối macro linh hoạt) và RS (Lát cắt dự phòng). Ngoài ra, để duy trì khả năng tương thích với các thiết bị Android khác, bạn NÊN không dùng ASO, FMO và RS cho Hồ sơ cơ sở bằng bộ mã hoá.
- [C-1-2] NOT support the SD (Standard Definition) video encryption profiles in the following table.
- NÊN hỗ trợ Cấu hình chính cấp 4.
- nên hỗ trợ các hồ sơ mã hoá video HD (High Definition) như được biểu thị trong bảng sau.
Nếu các quá trình triển khai thiết bị báo cáo hỗ trợ phương thức mã hoá H.264 cho các video có độ phân giải 720p hoặc 1080p thông qua các API nội dung nghe nhìn, thì chúng:
- [C-2-1] PHẢI hỗ trợ các cấu hình mã hoá trong bảng sau.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | |
---|---|---|---|---|
Độ phân giải video | 320 x 240 pixel | 720 x 480 pixel | 1280 x 720 pixel | 1920 x 1080 pixel |
Tốc độ khung hình của video | 20 khung hình/giây | 30 fps | 30 fps | 30 fps |
Tốc độ bit của video | 384 Kb/giây | 2 Mb/giây | 4 Mb/giây | 10 Mb/giây |
5.2.3. Văn bản ảo (VP8)
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã VP8, thì các thiết bị đó:
- [C-1-1] PHẢI hỗ trợ các cấu hình mã hoá video SD.
- NÊN hỗ trợ các cấu hình mã hoá video HD (Độ nét cao) sau đây.
- [C-1-2] PHẢI hỗ trợ ghi tệp Matroska WebM.
- NÊN cung cấp bộ mã hoá và giải mã phần cứng VP8 đáp ứng các yêu cầu về mã hoá phần cứng RTC dự án WebM để đảm bảo chất lượng có thể chấp nhận được của các dịch vụ hội nghị video và phát video trực tuyến trên web.
Nếu các quá trình triển khai thiết bị báo cáo tính năng hỗ trợ mã hoá VP8 cho các video có độ phân giải 720p hoặc 1080p thông qua API nội dung nghe nhìn, thì chúng:
- [C-2-1] PHẢI hỗ trợ các cấu hình mã hoá trong bảng sau.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | |
---|---|---|---|---|
Độ phân giải video | 320 x 180 pixel | 640 x 360 pixel | 1280 x 720 pixel | 1920 x 1080 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 fps | 30 fps |
Tốc độ bit của video | 800 Kb/giây | 2 Mb/giây | 4 Mb/giây | 10 Mb/giây |
5.2.4. Văn bản 9
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã VP9, thì các thiết bị đó:
- [C-1-2] PHẢI hỗ trợ Profile 0 Level 3.
- [C-1-1] PHẢI hỗ trợ ghi tệp Matroska WebM.
- [C-1-3] PHẢI tạo dữ liệu CodecPrivate.
- NÊN hỗ trợ các cấu hình giải mã HD như được chỉ ra trong bảng sau.
- [C-SR-1] are Still Sử dụng bộ mã hoá phần cứng để hỗ trợ các hồ sơ giải mã HD như được chỉ định trong bảng sau nếu có một bộ mã hoá phần cứng.
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
Độ phân giải video | 720 x 480 pixel | 1280 x 720 pixel | 1920 x 1080 pixel | 3840 x 2160 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 fps | 30 fps |
Tốc độ bit của video | 1,6 Mb/giây | 4 Mb/giây | 5 Mb/giây | 20 Mb/giây |
Nếu các hoạt động triển khai thiết bị tuyên bố hỗ trợ Hồ sơ 2 hoặc Hồ sơ 3 thông qua API Phương tiện:
- Việc hỗ trợ định dạng 12 bit là KHÔNG BẮT BUỘC.
5.2.5. H.265
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã H.265, thì chúng:
- [C-1-1] PHẢI hỗ trợ Main Profile Level 3.
- NÊN hỗ trợ các cấu hình mã hoá HD như được chỉ ra trong bảng sau.
- [C-SR-1] are Still Sử dụng bộ mã hoá để hỗ trợ các hồ sơ mã hoá HD như chỉ định trong bảng sau nếu có một bộ mã hoá phần cứng.
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
Độ phân giải video | 720 x 480 pixel | 1280 x 720 pixel | 1920 x 1080 pixel | 3840 x 2160 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 fps | 30 fps |
Tốc độ bit của video | 1,6 Mb/giây | 4 Mb/giây | 5 Mb/giây | 20 Mb/giây |
5.3. Giải mã video
Nếu quá trình triển khai thiết bị hỗ trợ bộ mã hoá và giải mã VP8, VP9, H.264 hoặc H.265, thì các cấu hình đó:
- [C-1-1] PHẢI support dynamic video segments and frame rate sharing thông qua các API Android tiêu chuẩn trong cùng một luồng cho tất cả VP8, VP9, H.264, and H.265 codecs in Real time and up to the đám different Definition supported by từng bộ mã hoá và giải mã trên thiết bị.
5.3.1. MPEG-2
Nếu quá trình triển khai thiết bị hỗ trợ bộ giải mã MPEG-2, thì các thiết bị đó:
- [C-1-1] PHẢI hỗ trợ Main Profile High Level.
5.3.2. H.263
Nếu các quá trình triển khai thiết bị có hỗ trợ bộ giải mã H.263, thì các quá trình triển khai đó:
- [C-1-1] PHẢI hỗ trợ Hồ sơ cơ sở Cấp 30 và Cấp 45.
5.3.3. MPEG-4
Nếu triển khai thiết bị với bộ giải mã MPEG-4, chúng:
- [C-1-1] PHẢI hỗ trợ Simple Profile Level 3.
5.3.4. H.264
Nếu các quá trình triển khai thiết bị có hỗ trợ bộ giải mã H.264, thì chúng:
- [C-1-1] PHẢI hỗ trợ Main Profile Level 3.1 và Baseline Profile. Việc hỗ trợ cho ASO (Sắp xếp lát cắt tuỳ ý), FMO (Sắp xếp theo khối macro linh hoạt) và RS (Lát cắt dư thừa) là KHÔNG BẮT BUỘC.
- [C-1-2] PHẢI beCÓ khả năng giải mã video với SD (Độ phân giải chuẩn) hồ sơ được liệt kê trong bảng sau và mã hoá với Hồ sơ cơ sở và Hồ sơ chính cấp 3.1 (bao gồm cả 720p30).
- nên be CÓ khả năng giải mã video có các cấu hình HD (High Definition) như được chỉ định trong bảng sau.
Nếu chiều cao mà phương thức Display.getSupportedModes()
báo cáo bằng hoặc lớn hơn độ phân giải của video, thì các phương thức triển khai thiết bị:
- [C-2-1] PHẢI support the HD 720p video cánh profiles in the following table.
- [C-2-2] PHẢI support the HD 1080p video cánh profiles in the following table.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | |
---|---|---|---|---|
Độ phân giải video | 320 x 240 pixel | 720 x 480 pixel | 1280 x 720 pixel | 1920 x 1080 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 60 khung hình/giây | 30 khung hình/giây (60 khung hình/giâyTruyền hình) |
Tốc độ bit của video | 800 Kb/giây | 2 Mb/giây | 8 Mb/giây | 20 Mb/giây |
5.3.5. H.265 (HEVC)
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã H.265, thì chúng:
- [C-1-1] PHẢI support the Main Profile Level 3 Main Tier and the SD video giải mã hồ sơ như chỉ định trong bảng sau.
- NÊN hỗ trợ các cấu hình giải mã HD như được chỉ ra trong bảng sau.
- [C-1-2] PHẢI support the HDresolve profiles as specified in the following table if there is a hardware solutionr.
Nếu chiều cao mà phương thức Display.getSupportedModes()
báo cáo bằng hoặc lớn hơn độ phân giải của video, thì:
- [C-2-1] Device applications PHẢI support at least one of H.265 or VP9 de encrypted of 720, 1080 and UHD profiles.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
Độ phân giải video | 352 x 288 pixel | 720 x 480 pixel | 1280 x 720 pixel | 1920 x 1080 pixel | 3840 x 2160 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 fps | 30/60 khung hình/giây (60 khung hình/giâyTV có giải mã phần cứng H.265) | 60 khung hình/giây |
Tốc độ bit của video | 600 Kb/giây | 1,6 Mb/giây | 4 Mb/giây | 5 Mb/giây | 20 Mb/giây |
Nếu các hoạt động triển khai thiết bị tuyên bố hỗ trợ Hồ sơ HDR thông qua các API nội dung nghe nhìn:
- [C-3-1] Thiết bị triển khai PHẢI chấp nhận siêu dữ liệu HDR bắt buộc từ ứng dụng, cũng như hỗ trợ trích xuất và xuất siêu dữ liệu HDR bắt buộc từ bitstream và/hoặc vùng chứa.
- [C-3-2] Device to PHẢI hiển thị đúng nội dung HDR trên màn hình thiết bị hoặc trên cổng đầu ra video chuẩn (e.g., HDMI).
5.3.6. Văn bản ảo (VP8)
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã VP8, thì các thiết bị đó:
- [C-1-1] PHẢI hỗ trợ các cấu hình giải mã SD trong bảng sau.
- NÊN sử dụng bộ mã hoá và giải mã phần cứng VP8 đáp ứng các yêu cầu.
- NÊN hỗ trợ các cấu hình giải mã HD trong bảng sau.
Nếu chiều cao mà phương thức Display.getSupportedModes()
báo cáo là bằng hoặc lớn hơn độ phân giải của video, thì:
- [C-2-1] Device methods PHẢI support 720p profiles in the Sau table.
- [C-2-2] Device devices PHẢI support 1080p profiles in the Sau table.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | |
---|---|---|---|---|
Độ phân giải video | 320 x 180 pixel | 640 x 360 pixel | 1280 x 720 pixel | 1920 x 1080 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 khung hình/giây (60 khung hình/giâyTruyền hình) | 30 (60 khung hình/giâyTruyền hình) |
Tốc độ bit của video | 800 Kb/giây | 2 Mb/giây | 8 Mb/giây | 20 Mb/giây |
5.3.7. Văn bản 9
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã VP9, thì các thiết bị đó:
- [C-1-1] PHẢI support the SD video specific profiles as specified in the Sau table.
- NÊN hỗ trợ các cấu hình giải mã HD như được chỉ ra trong bảng sau.
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã phần cứng (VP9) và bộ giải mã phần cứng:
- [C-2-1] NOT support the HDresolve profiles as assigned in the following table.
Nếu chiều cao mà phương thức Display.getSupportedModes()
báo cáo bằng hoặc lớn hơn độ phân giải của video, thì:
- [C-3-1] Deviceimplementation PHẢI support at least one of VP9 or H.265 de encrypted of the 720, 1080 and UHD profiles.
SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
Độ phân giải video | 320 x 180 pixel | 640 x 360 pixel | 1280 x 720 pixel | 1920 x 1080 pixel | 3840 x 2160 pixel |
Tốc độ khung hình của video | 30 fps | 30 fps | 30 fps | 30 khung hình/giây (60 khung hình/giâyTV có giải mã phần cứng VP9) | 60 khung hình/giây |
Tốc độ bit của video | 600 Kb/giây | 1,6 Mb/giây | 4 Mb/giây | 5 Mb/giây | 20 Mb/giây |
Nếu các hoạt động triển khai thiết bị tuyên bố sẽ hỗ trợ VP9Profile2
hoặc VP9Profile3
thông qua API nội dung đa phương tiện "CodecProfilelevel":
- Việc hỗ trợ định dạng 12 bit là KHÔNG BẮT BUỘC.
Nếu các hoạt động triển khai thiết bị tuyên bố hỗ trợ Hồ sơ HDR (VP9Profile2HDR
, VP9Profile2HDR10Plus
, VP9Profile3HDR
, VP9Profile3HDR10Plus
) thông qua các API nội dung đa phương tiện:
- [C-4-1] DeviceCách triển khai thiết bị PHẢI chấp nhận siêu dữ liệu HDR bắt buộc
(
KEY_HDR_STATIC_INFO
for all HDR profiles, cũng như 'KEY_HDR10_PLUS_INFO' for HDR10Plus profiles) from the application. Các mô-đun này cũng PHẢI hỗ trợ trích xuất và xuất siêu dữ liệu HDR bắt buộc từ bitstream và/hoặc vùng chứa. - [C-4-2] Device information PHẢI true display HDR content on the thiết bị màn hình hoặc on a standard video output Port (e.g., HDMI).
5.3.8. Dolby Vision
Nếu các phương thức triển khai thiết bị khai báo hỗ trợ cho bộ giải mã Dolby Vision thông qua HDR_TYPE_DOLBY_VISION
, thì các thiết bị đó sẽ:
- [C-1-1] PHẢI cung cấp bộ trích xuất có khả năng Dolby Vision.
- [C-1-2]{4} correct display Dolby Vision content on the device screen or on a standard video outputport (e.g., HDMI).
- [C-1-3] PHẢI set the track ID of back-compatible base-layer(s) (if current) to be the same as the combined Dolby Vision layer's track ID.
5.3.9. AV1
Nếu quá trình triển khai thiết bị có hỗ trợ bộ mã hoá và giải mã AV1, thì chúng:
- [C-1-1] PHẢI hỗ trợ Profile 0 bao gồm cả nội dung 10-bit.
5,4. Ghi âm
Mặc dù một số yêu cầu được nêu trong phần này được liệt kê là NÊN kể từ Android 4.3, nhưng Định nghĩa về khả năng tương thích cho các phiên bản trong tương lai được lên kế hoạch để thay đổi những yêu cầu này thành PHẢI. Các thiết bị Android hiện có và mới được STRONGLY NÊN DÙNG để đáp ứng các yêu cầu này được liệt kê là NÊN, hoặc chúng sẽ không thể đạt được khả năng tương thích với Android khi được nâng cấp lên phiên bản trong tương lai.
5.4.1. Thông tin ghi âm và micrô thô
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:
[C-1-1] PHẢI cho phép chụp nội dung âm thanh thô cho mọi
AudioRecord
hoặcAAudio
INPUT luồng được mở thành công. Ở mức tối thiểu, các đặc điểm sau PHẢI được hỗ trợ:- Định dạng: PCM tuyến tính, 16 bit
- Tốc độ lấy mẫu: 8000, 11025, 16000, 44100, 48000 Hz
- Kênh: Đơn âm
- Nguồn âm thanh:
DEFAULT
,MIC
,CAMCORDER
,VOICE_RECOGNITION
,VOICE_COMMUNICATION
,UNPROCESSED
hoặcVOICE_PERFORMANCE
. Điều này cũng áp dụng cho các Giá trị đặt trước đầu vào tương đương trongAAudio
, ví dụ:AAUDIO_INPUT_PRESET_CAMCORDER
.
NÊN cho phép thu thập nội dung âm thanh thô có các đặc điểm sau:
- Định dạng: PCM tuyến tính, 16 bit và 24 bit
- Tốc độ lấy mẫu: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Kênh: Số lượng kênh bằng số lượng micrô trên thiết bị
[C-1-2] PHẢI chụp ở tốc độ lấy mẫu trên mà không tăng tần số lấy mẫu.
[C-1-3] PHẢI bao gồm một bộ lọc khử răng cưa thích hợp khi các tốc độ mẫu được đưa ra ở trên được chụp bằng phương thức giảm tần số lấy mẫu.
nên cho phép AM radio and DVD chất lượng ghi lại nội dung âm thanh thô, có nghĩa là các đặc điểm sau:
- Định dạng: PCM tuyến tính, 16 bit
- Tốc độ lấy mẫu: 22050, 48000 Hz
- Kênh: Âm thanh nổi
[C-1-4] Hãy tôn trọng API
MicrophoneInfo
và điền thông tin thích hợp cho các micrô hiện có trên thiết bị có thể truy cập vào các ứng dụng của bên thứ ba thông qua APIAudioManager.getMicrophones()
, để ghi lại âm thanh đang hoạt động bằng cách sử dụngMediaRecorder.AudioSources DEFAULT
,MIC
,CAMCORDER
,VOICE_RECOGNITION
,VOICE_COMMUNICATION
,UNPROCESSED
, hoặcVOICE_PERFORMANCE
.
Nếu các phương thức triển khai thiết bị cho phép ghi lại chất lượng đài AM và DVD của nội dung âm thanh thô, thì các phương thức đó:
- [C-2-1] PHẢI Capture without up-sampling at Bất kỳ tỷ lệ cao hơn nào so với 16000:22050 or 44100:48000.
- [C-2-2] PHẢI include an chậm triển khai bộ lọc cho bất kỳ tăng tốc độ lấy mẫu hoặc giảm tần số lấy mẫu.
5.4.2. Chụp để nhận dạng giọng nói
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI Capture
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
audio source at one of the sample rate, 44100 and 48000. - [C-1-2] PHẢI, theo mặc định, tắt mọi tính năng xử lý âm thanh giảm tiếng ồn khi ghi luồng âm thanh từ nguồn âm thanh
AudioSource.VOICE_RECOGNITION
. [C-1-3] PHẢI, by default, disable any automatic metric control when recording an audio stream from the
AudioSource.VOICE_RECOGNITION
audio source.nên exhibit coroutine flat amplitude-versus-frequency characters in the mid-frequency Range: Di chuyển đặc biệt ±3dB from 100 Hz to 4000 Hz for Quảng cáo từng và mỗi micrô được sử dụng để ghi âm thanh nhận dạng giọng nói nguồn.
[C-SR-1] are Liên minh Dẫn ra các mức độ trong exhibit amplitude levels in the low frequency Range: specific from ±20 dB from 30 Hz to 100 Hz so to the mid-frequency Range for mỗi và mỗi micrô được dùng để ghi lại voice recognition audio source.
[C-SR-2] areQuá trình phát triển
3
nên ghi lại luồng âm thanh nhận dạng giọng nói so that the PCM amplitude levels linearly track input SPL changes over at least a 30 dB Range from -18 dB to +12 dB re 90 dB SPL at the microphone.
NÊN ghi lại voice truyền âm thanh luồng với tổng mức distortion (THD) dưới 1% for 1 kHz at 90 dB SPL input level at the micrô.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
và công nghệ khử tiếng ồn (giảm) được điều chỉnh để nhận dạng lời nói, thì các công nghệ đó sẽ:
- [C-2-1] PHẢI cho phép hiệu ứng âm thanh này được điều khiển bằng API
android.media.audiofx.NoiseSuppressor
. - [C-2-2] PHẢI Accept unique audience longrier Bàng pháp triển khai công nghệ gây nhiễu thông qua trường
AudioEffect.Descriptor.uuid
.
5.4.3. Chụp để đổi tuyến đường phát lại
Lớp android.media.MediaRecorder.AudioSource
bao gồm nguồn âm thanh REMOTE_SUBMIX
.
Nếu các hoạt động triển khai thiết bị khai báo cả android.hardware.audio.output
và android.hardware.microphone
, thì chúng:
[C-1-1] PHẢI triển khai đúng nguồn âm thanh
REMOTE_SUBMIX
để khi một ứng dụng sử dụng APIandroid.media.AudioRecord
để ghi từ nguồn âm thanh này, ứng dụng đó sẽ ghi lại sự kết hợp của tất cả các luồng âm thanh, ngoại trừ những nội dung sau:AudioManager.STREAM_RING
AudioManager.STREAM_ALARM
AudioManager.STREAM_NOTIFICATION
5.4.4. Bộ khử tiếng vọng cách âm
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:
- NÊN triển khai một Acoustic Echo Canceler (AEC) Xe công nghệ đã điều chỉnh cho giao tiếp bằng giọng nói và áp dụng cho đường dẫn chụp khi chụp bằng
AudioSource.VOICE_COMMUNICATION
.
Nếu các hoạt động triển khai thiết bị cung cấp Trình huỷ phát âm thanh (Acoustic Echo Canceler) được chèn vào đường dẫn thu âm thanh khi chọn AudioSource.VOICE_COMMUNICATION
, thì chúng:
- [C-SR-1] arereal_DOWNLOAD để khai báo điều này qua AcousticEchoCanceler API method AcousticEchoCanceler.isAvailable()
- [C-SR-2] are liền_ kẹp đề xuất để cho phép này âm thanh hiệu ứng to be controllable with the AcousticEchoCanceler API.
- [C-SR-3] areQuá thức quảng cáo nhà phát triển để xác định duy nhất mỗi công nghệ AEC implementation via the AudioEffect.Descriptor.uuid.
5.4.5. Chụp đồng thời
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
,các thiết bị PHẢI
triển khai chụp đồng thời như mô tả trong tài liệu này. Cụ thể:
- [C-1-1] PHẢI cho phép truy cập đồng thời vào micrô bởi một dịch vụ hỗ trợ tiếp cận chụp bằng
AudioSource.VOICE_RECOGNITION
và ít nhất một ứng dụng chụp bằng bất kỳAudioSource
nào. - [C-1-2] PHẢI cho phép truy cập đồng thời vào micrô by a pre-installed application thatmb an Assistant role and at least one application
capturing with any
AudioSource
except forAudioSource.VOICE_COMMUNICATION
orAudioSource.CAMCORDER
. - [C-1-3] PHẢI tắt âm thanh ghi cho bất kỳ ứng dụng nào khác, ngoại trừ dịch vụ hỗ trợ tiếp cận, trong khi ứng dụng đang chụp bằng
AudioSource.VOICE_COMMUNICATION
hoặcAudioSource.CAMCORDER
. Tuy nhiên, khi một ứng dụng đang thu thập quaAudioSource.VOICE_COMMUNICATION
, thì một ứng dụng khác có thể ghi lại lệnh gọi thoại nếu đó là ứng dụng có đặc quyền (được cài đặt trước) có quyềnCAPTURE_AUDIO_OUTPUT
. - [C-1-4] Nếu hai hoặc nhiều ứng dụng đang thu thập đồng thời và nếu không có ứng dụng nào có giao diện người dùng ở trên cùng, thì ứng dụng bắt đầu ghi âm gần đây nhất sẽ nhận được âm thanh.
5.4.6. Mức tăng âm lượng của micrô [Đã chuyển sang mức 5.4.2]
5,5. Phát âm thanh
Android có tính năng hỗ trợ cho phép các ứng dụng phát âm thanh thông qua thiết bị ngoại vi đầu ra âm thanh như nêu trong mục 7.8.2.
5.5.1. Phát âm thanh thô
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.audio.output
, thì các quá trình triển khai thiết bị đó sẽ:
[C-1-1] PHẢI cho phép phát nội dung âm thanh thô với các đặc điểm sau:
- Định dạng nguồn: PCM tuyến tính, 16 bit, 8 bit, float
- Kênh: Cấu hình đơn âm, âm thanh nổi, cấu hình đa kênh hợp lệ với tối đa 8 kênh
- Tốc độ lấy mẫu (tính bằng Hz):
- 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 tại các cấu hình kênh nêu trên
- 96000 ở chế độ đơn âm và âm thanh nổi
5.5.2. Hiệu ứng âm thanh
Android cung cấp một API cho hiệu ứng âm thanh để triển khai thiết bị.
Nếu các quá trình triển khai thiết bị khai báo tính năng android.hardware.audio.output
, thì chúng:
- [C-1-1] PHẢI hỗ trợ các triển khai
EFFECT_TYPE_EQUALIZER
vàEFFECT_TYPE_LOUDNESS_ENHANCER
điều khiển được thông qua các lớp con AudioEffectEqualizer
vàLoudnessEnhancer
. - [C-1-2] PHẢI hỗ trợ triển khai API của trình hiển thị hình ảnh, điều khiển được thông qua lớp
Visualizer
. - [C-1-3] PHẢI hỗ trợ việc triển khai
EFFECT_TYPE_DYNAMICS_PROCESSING
điều khiển được thông qua lớp con AudioEffectDynamicsProcessing
. - NÊN hỗ trợ các cách triển khai
EFFECT_TYPE_BASS_BOOST
,EFFECT_TYPE_ENV_REVERB
,EFFECT_TYPE_PRESET_REVERB
vàEFFECT_TYPE_VIRTUALIZER
controllable through theAudioEffect
sub-classesBassBoost
,EnvironmentalReverb
,PresetReverb
vàVirtualizer
. - [C-SR-1] AreĐể đề xuất các hiệu ứng hỗ trợ trong dấu phẩy động và đa kênh.
5.5.3. Âm lượng đầu ra âm thanh
Triển khai thiết bị Automotive:
- Nên cho phép điều chỉnh âm lượng âm thanh
riêng biệt mỗi luồng âm thanh bằng cách sử dụng loại nội dung hoặc sử dụng như đã xác định
by
AudioAttributes
and car audio Usage as công khai được xác định trongandroid.car.CarAudioManager
.
5.5.4. Giảm tải âm thanh
Nếu các phương pháp triển khai cho thiết bị hỗ trợ tính năng phát giảm tải âm thanh, thì các phương thức đó:
5,6. Độ trễ âm thanh
Độ trễ âm thanh là độ trễ thời gian khi tín hiệu âm thanh truyền qua một hệ thống. Nhiều lớp ứng dụng dựa vào độ trễ ngắn để đạt được hiệu ứng âm thanh theo thời gian thực.
Trong phần này, hãy sử dụng các định nghĩa sau:
- độ trễ đầu ra. Khoảng thời gian từ khi một ứng dụng ghi một khung dữ liệu được mã hoá bằng PCM và âm thanh tương ứng hiện ra môi trường tại bộ chuyển đổi trên thiết bị hoặc khi tín hiệu rời khỏi thiết bị qua một cổng và có thể quan sát được bên ngoài.
- độ trễ đầu ra nguội. Khoảng thời gian từ khi bắt đầu luồng đầu ra đến thời điểm hiển thị của khung hình đầu tiên dựa trên dấu thời gian, khi hệ thống đầu ra âm thanh chuyển sang trạng thái rảnh và tắt nguồn trước khi yêu cầu.
- độ trễ đầu ra liên tục. Độ trễ đầu ra cho các khung hình tiếp theo, sau khi thiết bị phát âm thanh.
- độ trễ đầu vào. Khoảng thời gian giữa thời điểm môi trường truyền âm thanh đến thiết bị tại bộ chuyển đổi hoặc tín hiệu trên thiết bị đi vào thiết bị thông qua cổng đến khi ứng dụng đọc khung dữ liệu được mã hoá PCM tương ứng.
- bị mất dữ liệu đầu vào. Phần ban đầu của tín hiệu đầu vào không sử dụng được hoặc không sử dụng được.
- độ trễ đầu vào nguội. Khoảng thời gian từ khi bắt đầu luồng cho đến khi nhận được khung hình hợp lệ đầu tiên, khi hệ thống đầu vào âm thanh chuyển sang trạng thái rảnh và tắt nguồn trước khi yêu cầu.
- độ trễ đầu vào liên tục. Độ trễ đầu vào cho các khung hình tiếp theo trong khi thiết bị đang ghi âm.
- độ trễ trọn vòng liên tục. Tổng độ trễ đầu vào liên tục cộng với độ trễ đầu ra liên tục cộng với 1 khoảng thời gian đệm. Khoảng thời gian đệm cho phép ứng dụng có thời gian xử lý tín hiệu và thời gian để ứng dụng giảm thiểu sự chênh lệch về giai đoạn giữa luồng đầu vào và đầu ra.
- API hàng đợi bộ đệm PCM OpenSL ES. Tập hợp các API OpenSL ES liên quan đến PCM trong Android NDK.
- API âm thanh gốc AAudio. Bộ API AAudio trong Android NDK.
- Dấu thời gian. Một cặp bao gồm vị trí khung tương đối trong một luồng và thời gian ước tính khi khung đó đi vào hoặc rời khỏi quy trình xử lý âm thanh trên điểm cuối liên kết. Hãy xem thêm bài viết AudioTimestamp (Dấu thời gian cho âm thanh).
- sự cố. Tình trạng gián đoạn tạm thời hoặc giá trị mẫu không chính xác trong tín hiệu âm thanh, thường là do tình trạng chạy thiếu vùng đệm đối với đầu ra, tình trạng tràn bộ đệm đối với đầu vào hoặc bất kỳ nguồn gây nhiễu kỹ thuật số hoặc tương tự nào khác.
- có nghĩa là độ lệch tuyệt đối. Giá trị trung bình của giá trị tuyệt đối của các độ lệch so với giá trị trung bình của một tập hợp giá trị.
- độ trễ nhấn để âm. Khoảng thời gian từ khi người dùng nhấn vào màn hình cho đến khi có một âm báo do thao tác nhấn đó nghe thấy trên loa.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.audio.output
, thì các hoạt động đó PHẢI đáp ứng hoặc vượt quá các yêu cầu sau:
- [C-1-1] Dấu thời gian đầu ra do AudioTrack.getTimestamp và
AAudioStream_getTimestamp
trả về chính xác đến +/- 2 mili giây. [C-1-2] Độ trễ đầu ra nguội là 500 mili giây trở xuống.
[C-1-3] Chế độ mở luồng đầu ra bằng
AAudioStreamBuilder_openStream()
PHẢI mất ít hơn 1000 mili giây.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.audio.output
, thì các thành phần này ĐƯỢC ĐỀ XUẤT RÕ RÀNG để đáp ứng hoặc vượt quá các yêu cầu sau:
- [C-SR-1] Độ trễ đầu ra nguội từ 100 mili giây trở xuống trên đường dẫn dữ liệu loa.
[C-SR-2] Độ trễ nhấn theo âm sắc là 80 mili giây trở xuống.
[C-SR-4] Dấu thời gian đầu ra do AudioTrack.getTimestamp và
AAudioStream_getTimestamp
trả về chính xác đến +/- 1 mili giây.
Nếu các hoạt động triển khai thiết bị đáp ứng các yêu cầu trên, thì sau mọi hiệu chuẩn ban đầu (khi sử dụng API âm thanh gốc AAudio) để đảm bảo độ trễ đầu ra liên tục và độ trễ đầu ra nguội trên ít nhất một thiết bị đầu ra âm thanh được hỗ trợ, thì đó là:
- [C-SR-5] Nói Dẫn Quảng Cáo để báo cáo âm thanh độ trễ thấp bằng declaring
android.hardware.audio.low_latency
tính năng cờ. - [C-SR-6] Liên minh Dẫn đường để đáp ứng các yêu cầu đối với âm thanh có độ trễ thấp qua AAudio API.
- [C-SR-7]ôi[202011] hạng sang đảm bảo rằng cho những luồng trả về
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
từAAudioStream_getPerformanceMode()
, giá trị được trả về bởiAAudioStream_getFramesPerBurst()
là nhỏ hơn hoặc bằng với giá trị được trả về bởiandroid.media.AudioManager.getProperty(String)
cho khoá thuộc tínhAudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER
.
Nếu việc triển khai thiết bị không đáp ứng yêu cầu về âm thanh có độ trễ thấp thông qua API âm thanh gốc AAudio, thì họ sẽ:
- [C-2-1] KHÔNG ĐƯỢC báo cáo tính năng hỗ trợ âm thanh có độ trễ thấp.
Nếu các hoạt động triển khai thiết bị bao gồm android.hardware.microphone
, thì các phương thức đó PHẢI đáp ứng các yêu cầu về âm thanh đầu vào sau đây:
[C-3-1] Giới hạn lỗi trong dấu thời gian đầu vào, được AudioRecord.getTimestamp hoặc
AAudioStream_getTimestamp
trả về, với tốc độ +/- 2 mili giây. "Lỗi" ở đây có nghĩa là độ lệch so với giá trị chính xác.[C-3-2] Độ trễ đầu vào nguội từ 500 mili giây trở xuống.
[C-3-3] Chế độ mở luồng đầu vào bằng
AAudioStreamBuilder_openStream()
PHẢI mất ít hơn 1000 mili giây.
Nếu các hoạt động triển khai thiết bị bao gồm android.hardware.microphone
, thì bạn ĐƯỢC NÊN DÙNG để đáp ứng các yêu cầu sau đây về âm thanh đầu vào:
[C-SR-8] Độ trễ đầu vào nguội là 100 mili giây trở xuống trên đường dẫn dữ liệu micrô.
[C-SR-11] Giới hạn lỗi trong dấu thời gian đầu vào, được trả về bằng AudioRecord.getTimestamp hoặc
AAudioStream_getTimestamp
, thành +/- 1 mili giây.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.audio.output
và android.hardware.microphone
, thì chúng:
- [C-SR-12] Are trì hoãn 24 để có một trung bình mức độ trễ vòng (
5,7. Giao thức mạng
Thiết bị triển khai PHẢI hỗ trợ giao thức mạng truyền thông cho phát âm thanh và video như được chỉ định trong tài liệu SDK Android.
Đối với mỗi bộ mã hoá và giải mã và định dạng vùng chứa mà phương thức triển khai thiết bị bắt buộc phải hỗ trợ, phương thức triển khai thiết bị:
[C-1-1] PHẢI hỗ trợ bộ mã hoá và vùng chứa đó qua HTTP và HTTPS.
[C-1-2] PHẢI support the compatibility media segments formats as showing in the media segments formats table below over HTTP Live Streaming draft Protocol, Version 7.
[C-1-3] PHẢI support theau RTSP broadcast Format formats as showing in the RTSP bảng below. Để biết các trường hợp ngoại lệ, vui lòng xem phần chú thích cuối trang trong phần 5.1.
Định dạng phân đoạn nội dung nghe nhìn
Định dạng phân đoạn | (Các) tệp đối chiếu | Hỗ trợ bộ mã hoá và giải mã bắt buộc |
---|---|---|
Luồng truyền tải MPEG-2 | ISO 13818 |
Bộ mã hoá và giải mã video:
và MPEG-2. Bộ mã hoá và giải mã âm thanh:
|
AAC với tính năng lấy khung hình ADTS và thẻ ID3 | ISO 13818-7 | Xem phần 5.1.1 để biết chi tiết về AAC và các biến thể của AAC |
WebVTT | WebVTT |
RTSP (RTP, SDP)
Tên hồ sơ | (Các) tệp đối chiếu | Hỗ trợ bộ mã hoá và giải mã bắt buộc |
---|---|---|
H264 AVC | RFC 6184 | Xem phần 5.1.8 để biết thông tin chi tiết về H264 AVC |
MP4A – Mỹ La-tinh | RFC 6416 | Xem phần 5.1.3 để biết thông tin chi tiết về AAC và các biến thể của AAC |
H263 – 1998 |
RFC 3551 RFC 4629 RFC 2190 |
Xem phần 5.1.8 để biết thông tin chi tiết về H263 |
H263 – 2000 | RFC 4629 | Xem phần 5.1.8 để biết thông tin chi tiết về H263 |
AMR (giờ AMR) | RFC 4867 | Xem phần 5.1.3 để biết thông tin chi tiết về AMR-NB |
AMR-WB | RFC 4867 | Xem mục 5.1.3 để biết thông tin chi tiết về AMR-WB |
MP4V-ES | RFC 6416 | Xem phần 5.1.8 để biết thông tin chi tiết về MPEG-4 SP |
mpeg4 chung | RFC 3640 | Xem phần 5.1.3 để biết thông tin chi tiết về AAC và các biến thể của AAC |
MP2T | RFC 2250 | Xem Luồng truyền tải MPEG-2 bên dưới Phát trực tiếp HTTP để biết chi tiết |
5,8. Nội dung nghe nhìn bảo mật
Nếu các quá trình triển khai thiết bị hỗ trợ đầu ra video an toàn và có thể hỗ trợ các nền tảng bảo mật, thì chúng:
- [C-1-1] PHẢI khai báo khả năng hỗ trợ cho
Display.FLAG_SECURE
.
Nếu các quá trình triển khai thiết bị khai báo tính năng hỗ trợ cho Display.FLAG_SECURE
và hỗ trợ giao thức hiển thị không dây, thì các quá trình triển khai thiết bị đó sẽ:
- [C-2-1] PHẢI bảo mật đường liên kết bằng cơ chế mạnh mẽ mã hoá như HDCP 2.x trở lên cho các màn hình được kết nối thông qua các giao thức không dây, chẳng hạn như Miracast.
Nếu các quá trình triển khai thiết bị khai báo hỗ trợ cho Display.FLAG_SECURE
và hỗ trợ màn hình bên ngoài có dây, thì các quy trình đó:
- [C-3-1] PHẢI hỗ trợ HDCP 1.2 trở lên cho tất cả các màn hình bên ngoài được kết nối thông qua một cổng có dây mà người dùng có thể truy cập.
5,9. Giao diện kỹ thuật số nhạc cụ (MIDI)
Nếu quá trình triển khai thiết bị báo cáo hỗ trợ cho tính năng android.software.midi
thông qua lớp android.content.pm.PackageManager
, thì chúng:
[C-1-1] NOT support MIDI over all MIDI-là hardware transits cho họ cung cấp khả năng kết nối chung không phải MIDI, trong đó các phương tiện đó là:
[C-1-2] PHẢI support the Inter-app MIDI software delivery (virtual MIDI devices)
[C-1-3] PHẢI include libamidi.so (hỗ trợ MIDI gốc)
NÊN hỗ trợ MIDI qua chế độ thiết bị ngoại vi USB, mục 7.7
5,10. Âm thanh chuyên nghiệp
Nếu quá trình triển khai thiết bị hỗ trợ tính năng android.hardware.audio.pro
thông qua lớp android.content.pm.PackageManager, thì chúng:
- [C-1-1] PHẢI report support for feature
android.hardware.audio.low_latency
. - [C-1-2] NOT have the linking round-trip audio latency, as specified in section 5.6 Audio Latency of 25 milliseconds or below over at least one supported path.
- [C-1-3] PHẢI include a USB Port(s) supported USB host mode and USB peripheral mode.
- [C-1-4] PHẢI báo cáo hỗ trợ cho tính năng
android.software.midi
. - [C-1-5] PHẢI meet latencies and USB audio requests using the AAudio native audio API and
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
. - [C-1-6] PHẢI có độ trễ đầu ra Lạnh từ 200 mili giây trở xuống.
- [C-1-7] PHẢI có độ trễ đầu vào Lạnh từ 200 mili giây trở xuống.
- [C-1-8] PHẢI have an toàn Tap-to-tone latency of 80 milliseconds or least over at least 5 ranges over the loa to microphone data path.
- [C-SR-1] Are Internet REVIEW to meet latencies as Definition in section 5.6 Audio Latency, of 20 milliseconds or less, over 5 metrics with a Mean sum Deviation under than 5 milliseconds over thespeaker to micrô path.
- [C-SR-2] Are Internet hao gợi ý để đáp ứng các yêu cầu âm thanh Pro cho continuous Round-trip audio latency, Cold input latency and Cold output latency and USB audio requests using the AAudio native audio API qua đường dẫn MMAP.
[C-SR-3] AreĐể giới thiệu về mức độ nhất quán của hiệu suất CPU trong khi âm thanh đang hoạt động và tải CPU thay đổi được. Bạn nên kiểm thử điều này bằng ứng dụng Android SynthMark. SynthMark sử dụng trình tổng hợp phần mềm chạy trên khung âm thanh mô phỏng để đo lường hiệu suất của hệ thống. Vui lòng xem tài liệu về SynthMark để biết nội dung giải thích về các điểm chuẩn. Bạn cần chạy ứng dụng SynthMark bằng cách sử dụng tuỳ chọn “Kiểm thử tự động” và đạt được các kết quả sau:
- nhãn hiệu thoại.90 >= 32 giọng nói
- trễmark.fixed.little <= 15 mili giây
- trễmark.dynamic.little <= 50 mili giây
NÊN giảm thiểu độ không chính xác và độ lệch của đồng hồ âm thanh so với giờ chuẩn.
NÊN giảm thiểu độ trôi của xung nhịp âm thanh tương ứng với
CLOCK_MONOTONIC
CPU khi cả hai đều đang hoạt động.NÊN giảm thiểu độ trễ âm thanh trên bộ chuyển đổi trên thiết bị.
NÊN giảm thiểu độ trễ âm thanh đối với âm thanh kỹ thuật số USB.
NÊN ghi lại các phép đo độ trễ âm thanh trên tất cả đường dẫn.
NÊN giảm thiểu jitter trong thời gian nhập lệnh gọi lại hoàn thành bộ đệm âm thanh, vì điều này ảnh hưởng đến tỷ lệ phần trăm có thể sử dụng trong băng thông CPU đầy đủ bằng lệnh gọi lại.
NÊN cung cấp sự cố âm thanh bằng không trong điều kiện sử dụng bình thường với độ trễ được báo cáo.
PHẢI cung cấp mức chênh lệch về độ trễ liên kênh bằng 0.
NÊN giảm thiểu độ trễ trung bình MIDI trên tất cả truyền tải.
NÊN giảm thiểu sự biến đổi độ trễ MIDI trong quá trình tải (dao động) trên tất cả truyền tải.
NÊN cung cấp dấu thời gian MIDI chính xác trên mọi phương thức truyền tải.
Phải giảm thiểu tiếng ồn tín hiệu âm thanh trên bộ chuyển đổi trên thiết bị, bao gồm cả khoảng thời gian ngay sau khi khởi động nguội.
NÊN cung cấp sự khác biệt về đồng hồ âm thanh không giữa các mặt đầu vào và đầu ra của điểm cuối tương ứng, khi cả hai đều đang hoạt động. Ví dụ về các điểm cuối tương ứng bao gồm micrô và loa trên thiết bị, hoặc đầu vào và đầu ra của giắc âm thanh.
NÊN xử lý các lệnh gọi lại hoàn thành bộ đệm âm thanh cho phía đầu vào và đầu ra của các điểm cuối tương ứng trên cùng một luồng khi cả hai đều đang hoạt động và nhập lệnh gọi lại đầu ra ngay sau khi trả về từ lệnh gọi lại đầu vào. Hoặc nếu không thể xử lý các lệnh gọi lại trên cùng một luồng, hãy nhập lệnh gọi lại đầu ra ngay sau khi nhập lệnh gọi lại đầu vào để cho phép ứng dụng có thời gian nhất quán cho phía đầu vào và đầu ra.
Cần giảm thiểu sự khác biệt giai đoạn giữa HAL audiobuffer for the input and output side of compatibility end-points.
NÊN giảm thiểu độ trễ cảm ứng.
NÊN giảm thiểu sự biến đổi độ trễ cảm ứng trong quá trình tải (dao động).
Nếu quá trình triển khai thiết bị đáp ứng tất cả yêu cầu trên, thì họ sẽ:
- [C-SR-4] Liên minh Dẫn đường để báo cáo hỗ trợ tính năng
android.hardware.audio.pro
qua lớpandroid.content.pm.PackageManager
.
Nếu cách triển khai thiết bị bao gồm giắc cắm âm thanh 3,5 mm 4 dây dẫn, thì chúng:
- [C-2-1] PHẢI have a Mean solid Round-trip Audio Latency, asdefined in section 5.6 Audio Latency, of 20 milliseconds or least, over 5measurement with a Mean sum Deviation under 5 milliseconds over the audio jack path using an audio loopback dongle.
- [C-SR-5] EmailAddress Sử dụng để tuân thủ với phần Mobile device (jack) specifications of the Wired Audio Headset Specification (v1.1).
Nếu quá trình triển khai thiết bị bỏ qua giắc âm thanh 4 dây dẫn 3,5 mm và có(các) cổng USB hỗ trợ chế độ máy chủ USB, thì các cổng đó sẽ:
- [C-3-1] PHẢI triển khai lớp âm thanh USB.
- [C-3-2] PHẢI have a trung bình solid Round-trip Audio Latency of 25 milliseconds or below, over 5measurement with a Mean sum Deviationless than 5 milliseconds over the USB host mode cổng using USB audio class. (Bạn có thể đo lường mức độ này bằng bộ chuyển đổi USB-3, 5mm và Audio Loopback Dongle (một giao diện âm thanh USB có cáp nối kết nối đầu vào với đầu ra).
- [C-SR-6] Are trì hoãn 1 danh sách cho tất cả các kênh I/O D
- [C-SR-7] AreĐể đáp ứng nhóm yêu cầu này bằng cách sử dụng AAudio native audio API over the MMAP path.
Nếu quá trình triển khai thiết bị có bao gồm cả cổng HDMI, thì các quá trình triển khai thiết bị đó sẽ:
- NÊN support output in stereo and8 channels at 20-bit or 24-bit depth and 192 kHz without bit-depth loss or resampling, in at least one configuration.
5,11. Ghi lại để xử lý
Android có hỗ trợ tính năng ghi âm chưa xử lý thông qua nguồn âm thanh android.media.MediaRecorder.AudioSource.UNPROCESSED
. Trong OpenSL ES, bạn có thể truy cập vào tệp này bằng giá trị đặt trước của bản ghi SL_ANDROID_RECORDING_PRESET_UNPROCESSED
.
Nếu các hoạt động triển khai thiết bị có ý định hỗ trợ nguồn âm thanh chưa xử lý và cung cấp nguồn âm thanh đó cho các ứng dụng bên thứ ba, thì chúng:
[C-1-1] PHẢI báo cáo dịch vụ hỗ trợ thông qua thuộc tính
android.media.AudioManager
PROPERTY_DISPLAY_AUDIO_SOURCE_UN thạch.[C-1-2] PHẢI exhibit bởi flat amplitude-versus-frequency characteristics in the mid-frequency Range: specific ±10dB from 100 Hz to 7000 Hz for Thông tin mỗi âm thanh
[C-1-3] PHẢI exhibit amplitude levels in the low frequency range: specific from ±20 dB from 5 Hz to 100 Hz so to the mid-frequency Range for mỗi và mỗi micrô được dùng để ghi lại unprocessed audio source.
[C-1-4] PHẢI exhibit amplitude levels in the high frequency range: specific from ±30 dB from 7000 Hz to 22 KHz so to the mid-frequencyrange for mỗi và mỗi micrô được dùng để ghi lại unprocessed audio source.
[C-1-5]{4} set audio input storage chẳng hạn như a 1000 Hz sinusoidal tone source plays at 94 dB Sound ước Level (SPL)Yields a response with RMS of 520 for 16 bit-samples (or -36 dB Full Scale forfloat Point/double precision sample) for the running phẩy/double precision source used to record number.
[C-1-6] PHẢI have a Signal-to-noise khung (SNR) at 60 dB trở lên cho mỗi và mọi micrô được dùng để ghi lại nguồn âm thanh chưa được xử lý. (trong khi SNR được đo là mức chênh lệch giữa 94 dB SPL và SPL tương đương của độ nhiễu tự gây nhiễu, lấy trọng số A).
[C-1-7] PHẢI have a total Trên thiết bị gây biến dạng (THD) ít hơn be ít hơn 1% cho 1 kHZ at 90 dB SPL input level at Công cụ và mọi micrô được dùng để ghi lại nguồn âm thanh chưa được xử lý.
[C-1-8] PHẢI not have any other Signal handling (e.g. Automatic Gain Control, High Pass Filter, or Echo cancel) in the path other than a level ending to Nút of the level to Range. Hay nói cách khác:
- [C-1-9] Nếu bất kỳ xử lý tín hiệu nào hiện diện trong cấu trúc vì bất kỳ lý do nào, thì phải tắt và giới thiệu hiệu quả độ trễ bằng không hoặc độ trễ bổ sung cho đường dẫn tín hiệu.
- [C-1-10] The levelTạm biệt, trong khi được phép trên đường dẫn, PHẢI KHÔNG giới thiệu độ trễ hoặc độ trễ đến đường dẫn tín hiệu.
Tất cả các phép đo SPL được thực hiện ngay bên cạnh micrô đang được kiểm tra. Đối với nhiều cấu hình micrô, những yêu cầu này áp dụng cho từng micrô.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
nhưng không hỗ trợ nguồn âm thanh chưa xử lý, thì chúng:
- [C-2-1] PHẢI trả về
null
cho phương thức APIAudioManager.getProperty(PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED)
để cho biết chính xác việc thiếu hỗ trợ. - [C-SR-1] are Still Sử dụng bản cập nhật để đáp ứng nhiều yêu cầu cho tín hiệu đường dẫn cho nguồn ghi chưa xử lý.
5,12. HDR Video
Android 13 hỗ trợ các công nghệ HDR như mô tả trong một tài liệu sắp tới.
Định dạng pixel
Nếu bộ giải mã video quảng cáo hỗ trợ COLOR_FormatYUVP010, thì:
[C-1-1] PHẢI support the P010 format for CPU-read (ImageReader, MediaImage, ByteBuffer). Trong Android 13, P010 được nới lỏng để cho phép sải chân tuỳ ý đối với các mặt phẳng Y và UV.
[C-1-2] The P010 outputbuffer PHẢI be could to besamples by the GPU (when allocations with GPU_SAMPLING using). Điều này cho phép thành phần GPU và ánh xạ sắc độ tuỳ chỉnh theo ứng dụng.
Nếu bộ giải mã video quảng cáo khả năng hỗ trợ COLOR_Format32bitABGR2101010, thì trình đó:
- [C-2-1] PHẢI support the RGBA_1010102 format for output surface and CPU-reading (ByteBuffer output).
Nếu một bộ mã hoá video quảng cáo khả năng hỗ trợ COLOR_FormatYUVP010, thì bộ mã hoá đó sẽ:
- [C-3-1] PHẢI support the P010 format for input surface and CPU-writeable (ImageWriter, MediaImage, ByteBuffer) input.
Nếu một bộ mã hoá video quảng cáo hỗ trợ COLOR_Format32bitABGR2101010, thì bộ mã hoá đó:
- [C-4-1] PHẢI support RGBA_1010102 format for input surface and CPU-writeable (ImageWriter, ByteBuffer) input. Lưu ý: Bạn KHÔNG cần phải chuyển đổi giữa các đường cong truyền khác nhau đối với bộ mã hoá.
Yêu cầu chụp HDR
Đối với tất cả bộ mã hoá video có hỗ trợ hồ sơ HDR, cách triển khai thiết bị:
[C-5-1] KHÔNG ĐƯỢC giả định rằng siêu dữ liệu HDR là chính xác. Ví dụ: khung được mã hoá có thể có các pixel vượt quá độ chói cao nhất, hoặc biểu đồ có thể không đại diện cho khung.
NÊN tổng hợp siêu dữ liệu động HDR để tạo siêu dữ liệu tĩnh HDR thích hợp cho các luồng được mã hoá. Họ nên xuất siêu dữ liệu này vào cuối mỗi phiên mã hoá.
Nếu các hoạt động triển khai thiết bị hỗ trợ tính năng chụp HDR bằng API CamcorderProfile, thì chúng:
[C-6-1] cũng PHẢI hỗ trợ chụp HDR thông qua API Camera2.
[C-6-2] PHẢI support at least one hardware-Tăng tốc video mã hoá cho mỗi công nghệ HDR được hỗ trợ.
[C-6-3] PHẢI hỗ trợ (ở mức tối thiểu) chụp HLG.
[C-6-4] PHẢI hỗ trợ ghi siêu dữ liệu HDR (nếu áp dụng cho công nghệ HDR) vào tệp video đã chụp. Đối với AV1, HEVC và DolbyVision, điều này có nghĩa là đưa siêu dữ liệu vào luồng bit được mã hoá.
[C-6-5] PHẢI hỗ trợ P010 và COLOR_FormatYUVP010.
[C-6-6] PHẢI support HDR to SDR tone Mapping in the default-hardware- increasedNgười giải mã cho hồ sơ đã chụp. Nói cách khác, nếu một thiết bị có thể ghi hình HDR10+ HEVC, thì bộ giải mã HEVC mặc định PHẢI có thể giải mã luồng đã ghi trong SDR.
Yêu cầu về chỉnh sửa HDR
Nếu hoạt động triển khai trên thiết bị bao gồm bộ mã hoá video hỗ trợ chỉnh sửa HDR, thì chúng:
- nên sử dụng độ trễ tối thiểu cho việc tạo siêu dữ liệu HDR khi không hiện diện và NÊN xử lý một cách linh hoạt các tình huống trong đó siêu dữ liệu hiện có cho một số khung hình và không cho một số khung hình khác. Siêu dữ liệu này NÊN chính xác (ví dụ: đại diện cho độ chói và biểu đồ của khung hình thực tế).
Nếu quá trình triển khai thiết bị bao gồm các bộ mã hoá và giải mã hỗ trợ FEATURE_HdrAdjust, thì các bộ mã hoá và giải mã đó:
[C-7-1] PHẢI hỗ trợ ít nhất một cấu hình HDR.
[C-7-2] PHẢI support FEATURE_Hdr đội ngũ cho tất cả các hồ sơ HDR được quảng cáo bởi bộ mã hoá và giải mã đó. Nói cách khác, chúng phải hỗ trợ tạo siêu dữ liệu HDR khi không hiển thị đối với tất cả các hồ sơ HDR được hỗ trợ mà sử dụng siêu dữ liệu HDR.
[C-7-3] PHẢI support the following video Encoder input formats that full preserve the HDRNgười giải mã tín hiệu:
- RGBA_1010102 (đã ở đường cong mục tiêu chuyển đổi) cho cả bề mặt đầu vào và ByteBuffer và PHẢI quảng cáo hỗ trợ cho COLOR_Format32bitABGR2101010.
Nếu phương thức triển khai thiết bị bao gồm các bộ mã hoá và giải mã hỗ trợ FEATURE_Hdr đội chỉnh sửa, thì thiết bị:
- [C-7-4] PHẢI quảng cáo hỗ trợ cho tiện ích OpenGL EXT_YUV_target.
6. Khả năng tương thích với công cụ và tuỳ chọn cho nhà phát triển
6.1. Công cụ dành cho nhà phát triển
Triển khai thiết bị:
- [C-0-1] PHẢI hỗ trợ Công cụ dành cho nhà phát triển Android được cung cấp trong SDK Android.
-
- [C-0-2] PHẢI support adb as documented in the Android SDK and the shell
commands provided in the AOSP, that can be used by app developer,
Include
dumpsys
cmd stats
- [C-0-11] PHẢI hỗ trợ lệnh shell
cmd testharness
. Nâng cấp các phương thức triển khai thiết bị từ phiên bản Android cũ hơn mà không có khối dữ liệu ổn định CÓ THỂ được miễn trừ khỏi C-0-11. - [C-0-3] KHÔNG ĐƯỢC thay đổi định dạng hoặc nội dung của các sự kiện hệ thống thiết bị (batterystats , distats, ValueTrack, graphicsstats, netstats, thông báo, procstats) đã ghi qua lệnh dumpsys.
- [C-0-10] PHẢI record, without omission, and make the following events
access and available to the
cmd stats
shell Command and theStatsManager
System API class.- ActivityForegroundStateChanged
- Đã phát hiện hoạt động bất thường
- Đã báo cáo đường dẫn ứng dụng
- Đã xảy ra sự cố AppCrash
- Bắt đầu xuất hiện ứng dụng
- Đã thay đổi mức pin
- BatterySaverModeStateChanged
- Đã nhận được BlescanResultReceived
- BleScanStateChanged
- ChargeStateChanged
- DeviceIdleModeStateChanged
- ForegroundServiceStateChanged
- GpsScanStateChanged
- JobStateChanged
- Cắm trạng thái đã thay đổi
- Đã lên lịch JobStateChanged
- ScreenStateChanged
- SyncStateChanged
- Hệ thống đã trôi qua theo thời gian thực
- UidProcessStateChanged
- Trạng thái WakelockĐã thay đổi
- Báo thức
- WifiLockStateChanged
- Wi-FiMulticastLockStateChanged
- WifiQuétStateChanged
- [C-0-4] PHẢI have the device-side adb daemon be inactive by default and yes NOT be a user-access basic to bật on the Android Debug Brch.
- [C-0-5] PHẢI hỗ trợ adb an toàn. Android có hỗ trợ tính năng adb bảo mật. adb bảo mật bật adb trên các máy chủ đã xác thực đã biết.
- [C-0-6] PHẢI cung cấp cơ chế cho phép adb được kết nối từ máy chủ. Cụ thể:
Nếu các quá trình triển khai thiết bị không có cổng USB hỗ trợ chế độ ngoại vi, thì các quá trình triển khai thiết bị không hỗ trợ chế độ ngoại vi:
- [C-3-1] PHẢI triển khai adb qua mạng cục bộ (chẳng hạn như Ethernet hoặc Wi-Fi).
- [C-3-2] PHẢI cung cấp trình điều khiển cho Windows 7, 8 và 10, cho phép nhà phát triển kết nối với thiết bị bằng giao thức adb.
Nếu quá trình triển khai thiết bị hỗ trợ các kết nối adb với máy chủ lưu trữ qua Wi-Fi hoặc Ethernet, thì các quy trình đó:
- [C-4-1] PHẢI have the
AdbManager#isAdbWifiSupported()
method returntrue
.
Nếu các quá trình triển khai thiết bị hỗ trợ các kết nối adb với một máy chủ lưu trữ qua Wi-Fi hoặc Ethernet và có ít nhất một máy ảnh, thì các thiết bị đó:
- [C-5-1] PHẢI have the
AdbManager#isAdbWifiQrSupported()
method returntrue
.
- [C-0-2] PHẢI support adb as documented in the Android SDK and the shell
commands provided in the AOSP, that can be used by app developer,
Include
Dịch vụ theo dõi gỡ lỗi Dalvik (ddms)
- [C-0-7] PHẢI hỗ trợ tất cả các tính năng ddms như được ghi lại trong SDK Android. As ddms sử dụng adb, support for ddms should be inactive by default, but MUST be supported bất cứ khi nào người dùng đã kích hoạt Cầu gỡ lỗi Android, như trên.
-
- [C-0-9] PHẢI hỗ trợ công cụ systrace như được ghi trong SDK Android. Systrace phải không hoạt động theo mặc định và PHẢI có cơ chế mà người dùng có thể truy cập để bật Systrace.
-
- [C-SR-1] Are trì hoãn cải tiến để hiển thị một
/system/bin/perfetto
binary to the shell user mà cmdline tuân thủ với the perfetto documents. - [C-SR-2] The perfetto binary is Internetuy Ưu đãi để chấp nhận dữ liệu đầu vào a protobuf config thatcompliance with the schema specified in the perfetto documents.
- [C-SR-3] The perfetto binary is Internetuy dinh to write as output a protobuf trace thatcompliance with the schema specified in tài liệu perfetto.
- [C-SR-4] AreĐể nhà phát triển đề xuất cung cấp, thông qua nhị phân perfetto, ít nhất là các nguồn dữ liệu được mô tả trong tài liệu perfetto.
- [C-SR-1] Are trì hoãn cải tiến để hiển thị một
-
- [C-0-12] PHẢI ghi một Atom
LMK_KILL_OCCURRED_FIELD_NUMBER
vào nhật ký thống kê khi một ứng dụng bị chấm dứt bởi Low Memory Killer.
- [C-0-12] PHẢI ghi một Atom
Kiểm thử Chế độ khai thác Nếu các quy trình triển khai thiết bị hỗ trợ lệnh shell
cmd testharness
và chạycmd testharness enable
, thì các quy trình triển khai thiết bị sẽ:- [C-2-1] PHẢI Return
true
forActivityManager.isRunningInUserTestHarness()
- [C-2-2] PHẢI triển khai Test CPC Mode as description as mô tả trong Test CPC Mode resource.
- [C-2-1] PHẢI Return
Thông tin về hoạt động của GPU
Triển khai thiết bị:
- [C-0-13] PHẢI triển khai lệnh shell
dumpsys gpu --gpuwork
để hiển thị dữ liệu công việc GPU tổng hợp do điểm theo dõi nhânpower/gpu_work_period
trả về hoặc hiển thị không có dữ liệu nếu điểm theo dõi không được hỗ trợ. Hoạt động triển khai AOSP làframeworks/native/services/gpuservice/gpuwork/
.
- [C-0-13] PHẢI triển khai lệnh shell
Nếu các hoạt động triển khai thiết bị báo cáo khả năng hỗ trợ Vulkan 1.0 trở lên thông qua cờ tính năng android.hardware.vulkan.version
, thì chúng:
- [C-1-1] PHẢI cung cấp thuộc tính tương tác cho nhà phát triển ứng dụng để bật/tắt các lớp gỡ lỗi GPU.
- [C-1-2] PHẢI, khi bật các lớp gỡ lỗi GPU, liệt kê các lớp trong thư viện do các công cụ bên ngoài cung cấp (tức là không phải là một phần của nền tảng hoặc gói ứng dụng) đã tìm thấy trong thư mục cơ sở của ứng dụng có thể gỡ lỗi để hỗ trợ phương thức API vkEnumerateInstanceLayerProperties() và vkCreateInstance().
6.2. Tùy chọn cho nhà phát triển
Android có tính năng hỗ trợ nhà phát triển định cấu hình các chế độ cài đặt liên quan đến việc phát triển ứng dụng.
Hoạt động triển khai thiết bị PHẢI cung cấp trải nghiệm nhất quán cho Tuỳ chọn cho nhà phát triển, chúng:
- [C-0-1] PHẢI tôn trọng ý định android.settings.APPLICATION_DEVELOPMENT_SETTINGS để hiển thị các chế độ cài đặt liên quan đến việc phát triển ứng dụng. Theo mặc định, việc triển khai Android ngược dòng sẽ ẩn trình đơn Tuỳ chọn cho nhà phát triển và cho phép người dùng chạy Tuỳ chọn cho nhà phát triển sau khi nhấn bảy (7) lần trên mục trong trình đơn Cài đặt > Giới thiệu về thiết bị > Số bản dựng.
- [C-0-2] PHẢI ẩn Tuỳ chọn dành cho nhà phát triển theo mặc định.
- [C-0-3] PHẢI cung cấp cơ chế rõ ràng mà không đưa ra ưu tiên xử lý cho một ứng dụng bên thứ ba ngược lại với một ứng dụng khác để bật Tuỳ chọn cho nhà phát triển. PHẢI cung cấp tài liệu hoặc trang web hiển thị công khai mô tả cách bật Tuỳ chọn cho nhà phát triển. Tài liệu hoặc trang web này PHẢI có thể liên kết được từ các tài liệu SDK Android.
- NÊN có thông báo bằng hình ảnh liên tục cho người dùng khi Tuỳ chọn cho nhà phát triển được bật và sự an toàn của người dùng là mối quan tâm.
- CÓ THỂ tạm thời giới hạn quyền truy cập vào trình đơn Tuỳ chọn cho nhà phát triển, bằng cách ẩn hoặc tắt trình đơn một cách trực quan, để ngăn sự phân tâm trong các trường hợp cần quan tâm đến sự an toàn của người dùng.
7. Khả năng tương thích với phần cứng
Nếu thiết bị chứa một thành phần phần cứng cụ thể có API tương ứng dành cho nhà phát triển bên thứ ba:
- [C-0-1] Việc triển khai thiết bị PHẢI triển khai API đó như mô tả trong tài liệu SDK Android.
Nếu một API trong SDK tương tác với một thành phần phần cứng được quy định là không bắt buộc và quá trình triển khai thiết bị không sở hữu thành phần đó:
- [C-0-2] Toàn bộ định nghĩa lớp (như được ghi lại bởi SDK) cho các API thành phần PHẢI vẫn được trình bày.
- [C-0-3] The API's Behavior PHẢI beđược triển khai dưới dạng không-hoạt động trong một số thời trang hợp lý.
- [C-0-4] API method PHẢI trả về các giá trị rỗng ở nơi được phép theo tài liệu SDK.
- [C-0-5] API methods PHẢI trả về no-op tỷ lệ triển khai của các lớp trong đó giá trị rỗng không được phép theo tài liệu SDK.
- [C-0-6] API method PHẢI NOT throwexception not documented by the SDK accounts.
- [C-0-7] DeviceNgười triển khai phải báo cáo chính xác thông tin cấu hình phần cứng một cách nhất quán qua phương thức
getSystemAvailableFeatures()
vàhasSystemFeature(String)
trên lớp android.content.pm.PackageManager cho cùng một vân tay bản dựng.
Một ví dụ điển hình về trường hợp áp dụng các yêu cầu này là API điện thoại: Ngay cả trên các thiết bị không phải điện thoại, các API này vẫn phải được triển khai theo cách hợp lý không hoạt động.
7.1. Màn hình và đồ hoạ
Android có các tiện nghi tự động điều chỉnh thành phần ứng dụng và bố cục giao diện người dùng phù hợp với thiết bị để đảm bảo các ứng dụng bên thứ ba hoạt động tốt trên nhiều cấu hình phần cứng. Trên(các) màn hình tương thích với Android nơi tất cả các ứng dụng tương thích với Android của bên thứ ba có thể chạy, thiết bị triển khai phải đúng cách triển khai các API và hành vi này, như chi tiết trong phần này.
Các đơn vị được tham chiếu theo yêu cầu trong mục này được định nghĩa như sau:
- kích thước đường chéo thực tế. Khoảng cách tính bằng inch giữa hai góc đối diện của phần được chiếu sáng của màn hình.
- số điểm trên mỗi inch (dpi). Số pixel được bao gồm bởi khoảng cách theo chiều ngang hoặc chiều dọc là 1. Trong trường hợp này, các giá trị dpi được liệt kê, cả dpi ngang và dọc đều phải nằm trong phạm vi.
- tỷ lệ khung hình. Tỷ lệ pixel có kích thước dài hơn so với kích thước ngắn hơn của màn hình. Ví dụ: màn hình 480 x 854 pixel sẽ có kích thước 854/480 = 1,779 hoặc xấp xỉ "16:9".
- pixel không phụ thuộc vào mật độ (dp). Đơn vị pixel ảo được chuẩn hoá thành màn hình 160 dpi, được tính như sau: pixel = dps * (Mật độ/160).
7.1.1. Cấu hình màn hình
7.1.1.1. Kích thước và hình dạng màn hình
Khung giao diện người dùng Android hỗ trợ nhiều kích thước bố cục màn hình logic, đồng thời cho phép các ứng dụng truy vấn kích thước bố cục màn hình của cấu hình hiện tại thông qua Configuration.screenLayout
bằng SCREENLAYOUT_SIZE_MASK
và Configuration.smallestScreenWidthDp
.
Triển khai thiết bị:
[C-0-1] PHẢI báo cáo kích thước bố cục chính xác cho
Configuration.screenLayout
như đã xác định trong tài liệu về SDK Android. Cụ thể, các phương thức triển khai thiết bị PHẢI báo cáo kích thước màn hình không phụ thuộc vào mật độ logic (dp) chính xác như dưới đây:- Các thiết bị có
Configuration.uiMode
được đặt làm giá trị bất kỳ khác với UI_MODE_TYPE_WATCH và báo cáo kích thướcsmall
choConfiguration.screenLayout
, PHẢI có ít nhất 426 dp x 320 dp. - Các thiết bị báo cáo kích thước
normal
choConfiguration.screenLayout
phải có kích thước ít nhất là 480 dp x 320 dp. - Các thiết bị báo cáo kích thước
large
choConfiguration.screenLayout
phải có kích thước ít nhất là 640 dp x 480 dp. - Các thiết bị báo cáo kích thước
xlarge
choConfiguration.screenLayout
phải có kích thước ít nhất là 960 dp x 720 dp.
- Các thiết bị có
[C-0-2] PHẢI{/5}{/5}húc dựng ứng dụng" đã nêu hỗ trợ cho kích thước màn hình thông qua <
supports-screens
> thuộc tính trong AndroidManifest.xml, as mô tả trong tài liệu SDK Android.CÓ THỂ có(các) màn hình tương thích với Android với góc bo tròn.
Nếu các phương thức triển khai thiết bị hỗ trợ UI_MODE_TYPE_NORMAL
và bao gồm(các) màn hình có góc bo tròn tương thích với Android, thì chúng:
[C-1-1] PHẢI đảm bảo rằng ít nhất một trong các yêu cầu sau đây được đáp ứng:
- Bán kính của các góc bo tròn nhỏ hơn hoặc bằng 38 dp.
- Khi một hộp 15 dp x 15 dp được cố định ở mỗi góc của màn hình logic, ít nhất một pixel của mỗi hộp sẽ hiển thị trên màn hình.
nên include user Interop to chuyển to the display mode with the rectangular $.
Nếu các phương thức triển khai thiết bị bao gồm(các) màn hình tương thích với Android có thể gập lại hoặc có bản lề gập giữa nhiều bảng hiển thị và cung cấp(các) màn hình như vậy để kết xuất ứng dụng bên thứ ba, thì:
- [C-2-1] PHẢI triển khai phiên bản ổn định mới nhất có sẵn của extensions API hoặc phiên bản ổn định của sidecar API để được sử dụng bởi thư viện Window Manager Jetpack.
Nếu các phương thức triển khai thiết bị bao gồm(các) màn hình tương thích với Android có thể gập lại hoặc có bản lề gập giữa nhiều bảng hiển thị, và nếu bản lề hoặc đường ranh giới phần hiển thị vượt qua một cửa sổ ứng dụng toàn màn hình, thì thiết bị đó:
- [C-3-1] PHẢI report the location, about and state of directions of vinh or Fold through extensions or sidecar APIs to the application.
Để biết thông tin chi tiết về cách triển khai chính xác API tiện ích hoặc API trợ giúp, vui lòng tham khảo tài liệu công khai về Window Manager Jetpack (Trình quản lý cửa sổ Jetpack).
7.1.1.2. Tỷ lệ khung hình màn hình
Mặc dù không có hạn chế nào đối với tỷ lệ khung hình của màn hình vật lý cho(các) màn hình tương thích với Android, nhưng tỷ lệ khung hình của màn hình logic nơi ứng dụng bên thứ ba được hiển thị, có thể được lấy từ giá trị chiều cao và chiều rộng được báo cáo thông qua API view.Display
và API Cấu hình, PHẢI đáp ứng các yêu cầu sau:
[C-0-1] Deviceimplementation with
Configuration.uiMode
set toUI_MODE_TYPE_NORMAL
NOT have anAspect dưới value least than or equals to 1.86 (distance 16:9), trừ khi ứng dụng đáp ứng một trong các điều kiện sau:- Ứng dụng đã khai báo rằng ứng dụng hỗ trợ tỷ lệ khung hình của màn hình lớn hơn thông qua giá trị siêu dữ liệu
android.max_aspect
. - Ứng dụng khai báo rằng ứng dụng có thể đổi kích thước thông qua thuộc tính android:resizeableActivity.
- Ứng dụng nhắm đến API cấp 24 trở lên và không khai báo
android:maxAspectRatio
sẽ hạn chế tỷ lệ khung hình được phép.
- Ứng dụng đã khai báo rằng ứng dụng hỗ trợ tỷ lệ khung hình của màn hình lớn hơn thông qua giá trị siêu dữ liệu
[C-0-3] Deviceimplementation with the
Configuration.uiMode
set asUI_MODE_TYPE_WATCH
PHẢI have anmột tỷ lệ value set as 1.0 (1:1).
7.1.1.3. Mật độ màn hình
Khung giao diện người dùng Android xác định một tập hợp mật độ logic chuẩn để giúp nhà phát triển ứng dụng nhắm mục tiêu đến tài nguyên ứng dụng.
[C-0-1] Theo mặc định, thiết bị triển khai phải báo cáo chỉ một trong số các mật độ khung Android mà được liệt kê trên
DisplayMetrics
thông quaDENSITY_DEVICE_STABLE
API và giá trị này KHÔNG thay đổi bất kỳ lúc nào; tuy nhiên, thiết bị CÓ THỂ báo cáo khác mật độ tùy ý theo màn hình thay đổi được thực hiện bởi người dùng (ví dụ, kích thước hiển thị) thiết lập sau khởi động ban đầu.Device campaigns NÊN definition the standard Android frame violation that is numberly recent to the physical Pixel of the screen, except that Logiyvn push the reports screen size below the least supported. If the standard Android frame standard that is numbersly near to the physical password results in a screen size that is below than thesmall supportedMạng màn hình kích thước (320 dp width), device devices nạn NÊN report the next low standard Android khung Nhớ.
Nếu có một thuộc tính tương tác để thay đổi kích thước hiển thị của thiết bị:
- [C-1-1] The display size PHẢI NOT beScaling any large than 1.5 times the nativeMạng cung cấp hoặc tạo một kích thước màn hình tối thiểu hiệu quả nhỏ hơn 320dp (tương đương với bộ hạn định tài nguyên sw320dp), tuỳ theo điều kiện nào đến trước.
- [C-1-2] Kích thước hiển thị KHÔNG ĐƯỢC điều chỉnh theo tỷ lệ bất kỳ nhỏ hơn 0,85 lần mật độ gốc.
- Để đảm bảo khả năng hữu dụng và kích thước phông chữ nhất quán, bạn nên sử dụng tỷ lệ sau đây của các tuỳ chọn Hiển thị gốc (trong khi tuân thủ các giới hạn đã chỉ định ở trên)
- Nhỏ: 0,85x
- Mặc định: 1x (Tỷ lệ hiển thị gốc)
- Lớn: 1,15x
- Lớn hơn: 1,3x
- Lớn nhất 1,45x
7.1.2. Chỉ số hiển thị
Nếu các hoạt động triển khai thiết bị bao gồm(các) màn hình hoặc video đầu ra tương thích với Android, thì(các) màn hình hiển thị tương thích với Android, thì chúng:
- [C-1-1] PHẢI báo cáo đúng giá trị cho tất cả chỉ số hiển thị tương thích Android được định nghĩa trong API
android.util.DisplayMetrics
.
Nếu các hoạt động triển khai thiết bị không bao gồm màn hình hoặc đầu ra video được nhúng, thì chúng:
- [C-2-1] PHẢI báo cáo đúng giá trị của màn hình tương thích với Android như đã xác định trong API
android.util.DisplayMetrics
choview.Display
mặc định được mô phỏng.
7.1.3. Hướng màn hình
Triển khai thiết bị:
- [C-0-1]{4} report where screen directions they support
(
android.hardware.screen.portrait
and/orandroid.hardware.screen.landscape
) and NOT report at least one supported direction. Ví dụ, a device with a cố định hướng ngang màn hình, chẳng hạn như TV hoặc máy tính xách tay, NÊN chỉ báo cáoandroid.hardware.screen.landscape
. - [C-0-2] PHẢI report the correct value for the device’s current
directional, Châu Âu được truy vấn qua
android.content.res.Configuration.orientation
,android.view.Display.getOrientation()
, hoặc các API khác.
Nếu quá trình triển khai thiết bị hỗ trợ cả hai hướng màn hình, thì các thiết bị đó:
- [C-1-1] PHẢI support dynamic language by applications to partial or landscape screen hand. Tức là thiết bị phải tuân theo yêu cầu của ứng dụng về một hướng màn hình cụ thể.
- [C-1-2] KHÔNG ĐƯỢC thay đổi kích thước hoặc mật độ màn hình được báo cáo khi thay đổi hướng.
- CÓ THỂ chọn hướng dọc hoặc ngang làm hướng mặc định.
7.1.4. Tăng tốc đồ hoạ 2D và 3D
7.1.4.1 OpenGL ES
Triển khai thiết bị:
- [C-0-1]{4} correct the supported OpenGL ES hè (1.1, 2.0, 3.0, 3.1, 3.2) through the managed APIs (such as via the
GLES10.getString()
method) and the native APIs. - [C-0-2] PHẢI include the support for all thetương ứng Managed API và native API for mỗi OpenGL ES phiên bản họ đã xác định để hỗ trợ.
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
- [C-1-1] PHẢI support cả OpenGL ES 1.1 and 2.0, as embodied and chi tiết trong Android SDK resource.
- [C-SR-1] Are mã ĐỀ XUẤT NÊN hỗ trợ OpenGL ES 3.1.
- NÊN hỗ trợ OpenGL ES 3.2.
Các bài kiểm thử dEQP OpenGL ES được phân vùng thành một số danh sách kiểm thử, mỗi danh sách kèm theo một ngày/số phiên bản liên kết. Các dữ liệu này nằm trong cây nguồn Android tại external/deqp/android/cts/main/glesXX-main-YYYY-MM-DD.txt
. Một thiết bị hỗ trợ OpenGL ES ở cấp độ tự báo cáo cho biết thiết bị có thể vượt qua các bài kiểm thử dEQP trong tất cả danh sách kiểm thử từ cấp này trở xuống.
Nếu quá trình triển khai thiết bị hỗ trợ bất kỳ phiên bản OpenGL ES nào, thì các thiết bị đó:
- [C-2-1] PHẢI report via the OpenGL ES managed APIs and native APIs any other OpenGL ES extensions they have approved, and ngược PHẢI báo cáo chuỗi tiện ích mở rộng mà họ không hỗ trợ.
- [C-2-2] PHẢI support the
EGL_KHR_image
,EGL_KHR_image_base
,EGL_ANDROID_image_native_buffer
,EGL_ANDROID_get_native_client_buffer
,EGL_KHR_wait_sync
,EGL_KHR_get_all_proc_addresses
,EGL_ANDROID_presentation_time
,EGL_KHR_swap_buffers_with_damage
,EGL_ANDROID_recordable
vàEGL_ANDROID_GLES_layers
. - [C-2-3] PHẢI báo cáo phiên bản tối đa của thử nghiệm OpenGL ES dEQP được hỗ trợ thông qua cờ tính năng
android.software.opengles.deqp.level
. - [C-2-4] PHẢI at least support version 132383489 (from Mar 1st, 2020) as reports in the
android.software.opengles.deqp.level
featureflag. - [C-2-5] PHẢI vượt qua tất cả các bài kiểm thử OpenGL ES dEQP Tests in the test lists between version 132383489 and the version specified in the
android.software.opengles.deqp.level
featureflag, for khắp supported OpenGL ES version. - [C-SR-2] AreĐể hỗ trợ các tiện ích
EGL_KHR_partial_update
vàOES_EGL_image_external
. - NÊN báo cáo chính xác thông qua phương thức
getString()
, mọi định dạng nén kết cấu mà chúng hỗ trợ, thường dành riêng cho nhà cung cấp. - NÊN hỗ trợ các tiện ích
EGL_IMG_context_priority
vàEGL_EXT_protected_content
.
Nếu các quá trình triển khai thiết bị khai báo tính năng hỗ trợ OpenGL ES 3.0, 3.1 hoặc 3.2, thì chúng:
- [C-3-1]{4} export the compatibility function icon for these version in addition to the OpenGL ES 2.0 function variables in the libGLESv2.so library.
- [C-SR-3] Are trì hoãn 1 để hỗ trợ phần mở rộng
OES_EGL_image_external_essl3
.
Nếu các quá trình triển khai thiết bị hỗ trợ OpenGL ES 3.2, thì các quá trình triển khai đó:
- [C-4-1] PHẢI hỗ trợ toàn bộ Gói tiện ích Android OpenGL ES.
Nếu các hoạt động triển khai thiết bị hỗ trợ toàn bộ Gói tiện ích Android của OpenGL ES, thì chúng:
- [C-5-1] PHẢIdefined the support through the
android.hardware.opengles.aep
featureflag.
Nếu các quá trình triển khai thiết bị có hỗ trợ tiện ích EGL_KHR_mutable_render_buffer
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-6-1] PHẢI cũng hỗ trợ tiện ích
EGL_ANDROID_front_buffer_auto_refresh
.
7.1.4.2 Vulkan
Android hỗ trợ Vulkan, một API đa nền tảng và có mức hao tổn thấp dành cho đồ hoạ 3D hiệu suất cao.
Nếu các hoạt động triển khai thiết bị hỗ trợ OpenGL ES 3.1, thì các hoạt động triển khai trên thiết bị:
- [C-SR-1] Giới hạn định dạng giới thiệu để bao gồm tính năng hỗ trợ cho Vulkan 1.3.
- [C-4-1] NOT support a Vulkan variables version (i.e. thevariant part of the Vulkan Core version PHẢI be zero).
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
- [C-SR-2] Giới hạn định dạng giới thiệu để bao gồm tính năng hỗ trợ cho Vulkan 1.3.
Các hoạt động kiểm thử dEQP Vulkan được phân vùng thành một số danh sách kiểm thử, mỗi danh sách kèm theo một ngày/phiên bản liên quan. Các dữ liệu này nằm trong cây nguồn Android tại external/deqp/android/cts/main/vk-main-YYYY-MM-DD.txt
. Một thiết bị hỗ trợ Vulkan ở cấp độ tự báo cáo cho biết thiết bị này có thể vượt qua các bài kiểm thử dEQP trong tất cả danh sách kiểm thử từ cấp này trở xuống.
Nếu quá trình triển khai thiết bị có hỗ trợ Vulkan 1.0 trở lên, thì các quá trình triển khai đó:
- [C-1-1] PHẢI báo cáo giá trị số nguyên chính xác với cờ tính năng
android.hardware.vulkan.level
vàandroid.hardware.vulkan.version
. - [C-1-2] PHẢI enumerate, at least one
VkPhysicalDevice
for the Vulkan native APIvkEnumeratePhysicalDevices()
. - [C-1-3] truyền toàn bộ các API Vulkan 1.0 cho mỗi
VkPhysicalDevice
được liệt kê. - [C-1-4] NOT enumerate layers, contains in native libraries names as
libVkLayer*.so
in the application package’s native library library, through the Vulkan native APIsvkEnumerateInstanceLayerProperties()
vàvkEnumerateDeviceLayerProperties()
. - [C-1-5] PHẢI NOT enumerate layers cung cấp bởi libraries bên ngoài gói ứng dụng, hoặc cung cấp các cách khác để theo dõi hoặc chặn API Vulkan, trừ khi ứng dụng có thuộc tính
android:debuggable
được đặt làtrue
. - [C-1-6] PHẢI báo cáo tất cả các chuỗi mở rộng mà họ do hỗ trợ qua các API gốc Vulkan và ngược lại KHÔNG ĐƯỢC báo cáo chuỗi tiện ích mà họ không hỗ trợ chính xác.
- [C-1-7] PHẢI support the VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain, và các phần mở rộng VK_KHR_ tiến_present.
- [C-1-8] PHẢI báo cáo phiên bản tối đa của Vulkan dEQP Tests được hỗ trợ thông qua cờ tính năng
android.software.vulkan.deqp.level
. - [C-1-9] NOT at least support version
132317953
(from Mar 1st, 2019) as reports in theandroid.software.vulkan.deqp.level
featureflag. - [C-1-10] PHẢI vượt qua tất cả các bài kiểm thử Vulkan dEQP trong danh sách kiểm thử giữa
phiên bản
132317953
và phiên bản được chỉ định trong cờ tính năngandroid.software.vulkan.deqp.level
. - [C-1-11] NOT enumerate support for the VK_KHR_video_queue, VK_KHR_video_decode_queue or VK_KHR_video_encode_queue extensions.
- [C-SR-3] Are Internet ĐỀ XUẤT NÊN hỗ trợ các tiện ích
VK_KHR_driver_properties
vàVK_GOOGLE_display_timing
. - nên hỗ trợ
VkPhysicalDeviceProtectedMemoryFeatures
vàVK_EXT_global_priority
. - [C-1-12] KHÔNG ĐƯỢC liệt kê hỗ trợ cho phần mở rộng VK_KHR_performance_query.
- [C-SR-4] AreĐể các nhà xuất bản của Google đáp ứng các yêu cầu được chỉ định bởi the Android Baseline 2021 profile.
Nếu các hoạt động triển khai thiết bị không hỗ trợ Vulkan 1.0, thì các quá trình triển khai thiết bị đó sẽ:
- [C-2-1] KHÔNG PHẢI khai báo bất kỳ cờ tính năng nào trong Vulkan (ví dụ:
android.hardware.vulkan.level
,android.hardware.vulkan.version
). - [C-2-2] NOT enumerate any
VkPhysicalDevice
for the Vulkan native APIvkEnumeratePhysicalDevices()
.
Nếu quá trình triển khai thiết bị có hỗ trợ Vulkan 1.1 và khai báo bất kỳ cờ tính năng Vulkan nào, thì các cờ tính năng đó:
- [C-3-1] truyền support for the
SYNC_FD
external semaphore and xử lý loại và tiện íchVK_ANDROID_external_memory_android_hardware_buffer
.
7.1.4.3 RenderScript
- [C-0-1] Device devices PHẢI support Android RenderScript, as chi tiết trong tài liệu Android SDK.
7.1.4.4 Tăng tốc đồ hoạ 2D
Android có một cơ chế để các ứng dụng khai báo rằng ứng dụng muốn bật tính năng tăng tốc phần cứng cho đồ hoạ 2D ở cấp độ Ứng dụng, Hoạt động, Cửa sổ hoặc Chế độ xem thông qua việc sử dụng thẻ tệp kê khai android:hardwareAccelerated hoặc lệnh gọi API trực tiếp.
Triển khai thiết bị:
- [C-0-1] PHẢI enable hardware increased by default, and NOT vô hiệu hoá phần cứng tăng tốc if the developer so requests by setting android:hardwareAccelerated="false” ordisable hardware thuận on the Android View APIs.
- [C-0-2] PHẢI exhibitQuy trình nhất quán với tài liệu Android SDK trên hardware tăng tốc.
Android chứa một đối tượng TextureView cho phép nhà phát triển tích hợp trực tiếp các kết cấu OpenGL ES được tăng tốc phần cứng dưới dạng mục tiêu kết xuất trong hệ phân cấp giao diện người dùng.
Triển khai thiết bị:
- [C-0-3] PHẢI support the TextureView API, and NOT exhibit nhất dãy hành vi với the upstream Android triển khai.
7.1.4.5 Màn hình gam màu rộng
Nếu các hoạt động triển khai thiết bị tuyên bố hỗ trợ cho màn hình rộng-gamut thông qua
Configuration.isScreenWideColorGamut()
, thì chúng:
- [C-1-1] PHẢI có màn hình được hiệu chỉnh màu.
- [C-1-2] PHẢI have a display there gamut bao gồm the sRGB color gamut hoàn toàn trong CIE 1931 xyY space.
- [C-1-3] PHẢI có màn hình có gam màu có diện tích tối thiểu 90% của DCI-P3 in CIE 1931 xyY space.
- [C-1-4] PHẢI hỗ trợ OpenGL ES 3.1 hoặc 3.2 và báo cáo nó một cách chính xác.
- [C-1-5] truyền quảng cáo hỗ trợ cho
EGL_KHR_no_config_context
,EGL_EXT_pixel_format_float
,EGL_KHR_gl_colorspace
,EGL_EXT_gl_colorspace_scrgb
,EGL_EXT_gl_colorspace_scrgb_linear
,EGL_EXT_gl_colorspace_display_p3
,EGL_EXT_gl_colorspace_display_p3_linear
vàEGL_EXT_gl_colorspace_display_p3_passthrough
phần mở rộng. - [C-SR-1] Are Internet ĐỀ XUẤT NÊN hỗ trợ
GL_EXT_sRGB
.
Ngược lại, nếu các quá trình triển khai thiết bị không hỗ trợ màn hình gam màu rộng, thì các thiết bị đó sẽ:
- [C-2-1] kích hoạt 100% trở lên của sRGB trong CIE 1931 xyY space, mặc dù màn hình gam màu không được xác định.
7.1.5. Chế độ tương thích với ứng dụng cũ
Android chỉ định một "chế độ tương thích", trong đó khung hoạt động ở chế độ tương đương với kích thước màn hình "bình thường" (chiều rộng 320 dp) vì lợi ích của các ứng dụng cũ không được phát triển cho các phiên bản Android cũ có trước tính năng độc lập về kích thước màn hình.
7.1.6. Công nghệ màn hình
Nền tảng Android bao gồm các API cho phép ứng dụng kết xuất đồ hoạ phong phú lên màn hình tương thích với Android. Thiết bị PHẢI hỗ trợ tất cả các API này như được SDK Android xác định, trừ phi được cho phép cụ thể trong tài liệu này.
Tất cả màn hình tương thích với Android trong quy trình triển khai thiết bị:
- [C-0-1] PHẢI có khả năng kết xuất đồ hoạ màu 16 bit.
- NÊN hỗ trợ các màn hình có khả năng đồ hoạ màu 24 bit.
- [C-0-2] PHẢI có khả năng kết xuất ảnh động.
- [C-0-3] PHẢI have a pixelAspectRatio (PAR) giữa 0.9 và 1.15. Tức là, tỷ lệ khung hình pixel PHẢI be gần vuông (1.0) với dung sai 10 ~ 15%.
7.1.7. Màn hình phụ
Android hỗ trợ các màn hình phụ tương thích với Android để cho phép khả năng chia sẻ nội dung nghe nhìn và API dành cho nhà phát triển để truy cập vào màn hình bên ngoài.
Nếu quá trình triển khai thiết bị hỗ trợ màn hình bên ngoài thông qua kết nối có dây, không dây hoặc kết nối màn hình bổ sung được nhúng, thì các quá trình triển khai đó:
- [C-1-1] PHẢI triển khai dịch vụ hệ thống và API
DisplayManager
như mô tả trong tài liệu SDK Android.
7.2. Thiết bị Đầu vào
Triển khai thiết bị:
- [C-0-1] PHẢI bao gồm cơ chế đầu vào, chẳng hạn như màn hình cảm ứng hoặc điều hướng không chạm, để điều hướng giữa các phần tử trên giao diện người dùng.
7.2.1. Bàn phím
Nếu các phương thức triển khai thiết bị có hỗ trợ ứng dụng Trình chỉnh sửa phương thức nhập (IME) của bên thứ ba, thì các phương thức triển khai đó:
- [C-1-1] PHẢI khai báo cờ tính năng
android.software.input_methods
. - [C-1-2] PHẢI triển khai đầy đủ
Input Management Framework
- [C-1-3] PHẢI có bàn phím phần mềm được cài đặt trước.
Triển khai thiết bị:
- [C-0-1] PHẢI NOT include a hardware key that does not match one of the formats specified in android.content.res.Configuration.keyboard (QWERTY hoặc 12-key).
- NÊN bao gồm các cách triển khai bàn phím mềm khác.
- CÓ THỂ bao gồm bàn phím phần cứng.
7.2.2. Điều hướng không chạm
Android hỗ trợ d-pad, bi xoay và con lăn làm cơ chế điều hướng không chạm.
Triển khai thiết bị:
- [C-0-1] PHẢI báo cáo giá trị đúng cho android.content.res.Configuration.navigation.
Nếu quá trình triển khai thiết bị không có tính năng điều hướng không chạm, thì các quá trình triển khai thiết bị sẽ:
- [C-1-1] PHẢI cung cấp một cơ chế giao diện người dùng thay thế hợp lý cho sự lựa chọn và chỉnh sửa văn bản, tương thích với Công cụ quản lý đầu vào. Việc triển khai nguồn mở Android ngược dòng bao gồm một cơ chế lựa chọn phù hợp để sử dụng với các thiết bị thiếu đầu vào điều hướng không chạm.
7.2.3. Phím điều hướng
Các hàm Home (Màn hình chính), Recents (Gần đây) và Back (Quay lại) thường được cung cấp thông qua hoạt động tương tác với một nút vật lý chuyên dụng hoặc một phần riêng biệt của màn hình cảm ứng. Các hàm này rất cần thiết đối với mô hình điều hướng Android, từ đó giúp triển khai thiết bị:
- [C-0-1] PHẢI cung cấp một người dùng thuộc tính tương tác để khởi chạy các ứng dụng đã cài đặt
có một hoạt động với
<intent-filter>
được đặt vớiACTION=MAIN
vàCATEGORY=LAUNCHER
hoặcCATEGORY=LEANBACK_LAUNCHER
cho ti vi triển khai thiết bị. Hàm Home PHẢI là cơ chế cho thuộc tính tương tác của người dùng này. - NÊN cung cấp các nút cho hàm Recents (Gần đây) và Back (Quay lại).
Nếu bạn cung cấp các hàm Home (Trang chủ), Recents (Gần đây) hoặc Back (Quay lại), thì các hàm này:
- [C-1-1]{4} be remarketing with a single action (e.g. Tap, double-click or gesture) when any of they are accessibility.
- [C-1-2] PHẢI cung cấp chỉ báo rõ ràng về hành động đơn nào sẽ kích hoạt từng hàm. Ví dụ về chỉ báo này có thể là một biểu tượng rõ ràng được in trên nút, hiển thị biểu tượng phần mềm trên phần thanh điều hướng của màn hình hoặc hướng dẫn người dùng qua quy trình minh hoạ từng bước được hướng dẫn trong quá trình thiết lập ngay bên ngoài.
Triển khai thiết bị:
[C-SR-2] Are trì hoãn 1 để cung cấp tất cả các hàm điều hướng as cancellable. "Cancellable" được định nghĩa là khả năng của người dùng ngăn chặn việc thực thi chức năng điều hướng (ví dụ: quay lại màn hình chính, quay lại, v.v.) nếu thao tác vuốt không được thả ra qua một ngưỡng nhất định.
Nếu các hoạt động triển khai thiết bị cung cấp chức năng Trình đơn, thì chúng:
- [C-2-1] PHẢI display the action overflow nút bất cứ khi nào hành động overflow menu bật lên không trống và thanh hành động hiển thị.
- [C-2-2] KHÔNG ĐƯỢC sửa đổi vị trí của hành động overflow bật lên hiển thị bằng cách chọn nút tràn trong thanh tác vụ, nhưng có thể hiển thị hành động overflow bật lên tại vị trí đã sửa đổi trên màn hình khi nó được hiển thị bằng cách chọn hàm Trình đơn.
Nếu thiết bị triển khai không cung cấp hàm Trình đơn, cho khả năng tương thích ngược, chúng: * [C-3-1] PHẢI làm cho hàm Trình đơn có sẵn cho các ứng dụng khi
targetSdkVersion
nhỏ hơn 10, hoặc bởi nút vật lý, phím phần mềm, hoặc cử chỉ. Hàm Trình đơn này phải truy cập được, trừ phi hàm đó bị ẩn cùng với các hàm điều hướng khác.
Nếu các hoạt động triển khai thiết bị cung cấp Hàm hỗ trợ, thì chúng:
- [C-4-1] PHẢI làm cho chức năng Hỗ trợ có thể truy cập bằng một hành động đơn (e.g. nhấn, nhấp đúp hoặc cử chỉ) khi có thể truy cập các phím điều hướng khác.
- [C-SR-3] Nói Dẫn Quảng Cáo để sử dụng dài press on HOME function as this specified engagement.
Nếu các hoạt động triển khai thiết bị sử dụng một phần riêng biệt của màn hình để hiển thị các phím điều hướng, thì chúng:
- [C-5-1] Navigation keys PHẢI Sử dụng một phần của màn hình, không có sẵn cho các ứng dụng, và KHÔNG PHẢI che khuất hoặc khác can thiệp với phần của màn hình có sẵn cho các ứng dụng.
- [C-5-2] PHẢI make available a partial of the display to applications that meets the requests specified in section 7.1.1.
- [C-5-3] PHẢI Honor the Hà
View.setSystemUiVisibility()
Nếu chức năng điều hướng được cung cấp ở dạng một thao tác dựa trên cử chỉ trên màn hình:
- [C-6-1]
WindowInsets#getMandatorySystemGestureInsets()
Chỉ dùng để báo cáo khu vực nhận dạng cử chỉ Home. - [C-6-2] Các cử chỉ bắt đầu trong một hình chữ nhật loại trừ do ứng dụng nền trước cung cấp thông qua
View#setSystemGestureExclusionRects()
, nhưng bên ngoàiWindowInsets#getMandatorySystemGestureInsets()
, KHÔNG ĐƯỢC chặn đối với chức năng điều hướng, miễn là hình chữ nhật loại trừ được cho phép trong giới hạn loại trừ tối đa được chỉ định trong tài liệu choView#setSystemGestureExclusionRects()
. - [C-6-3] PHẢI send theforeground app a
MotionEvent.ACTION_CANCEL
event once touch start be blockinged for a system Chrome, if the previous app was sent anMotionEvent.ACTION_DOWN
- [C-6-4] PHẢI cung cấp khả năng tương tác của người dùng để chuyển sang một màn hình, điều hướng dựa trên nút (ví dụ: trong Cài đặt).
- NÊN cung cấp hàm Home dưới dạng vuốt lên từ cạnh dưới cùng của hướng hiện tại của màn hình.
- NÊN cung cấp chức năng Recents (Gần đây) dưới dạng vuốt lên và giữ trước khi phát hành, từ cùng một khu vực với cử chỉ Home.
- Cử chỉ bắt đầu trong phạm vi
WindowInsets#getMandatorySystemGestureInsets()
NÊN KHÔNG bị ảnh hưởng bởi loại trừ rects cung cấp bởi ứng dụng nền trước quaView#setSystemGestureExclusionRects()
.
Nếu một hàm điều hướng được cung cấp từ vị trí bất kỳ ở cạnh trái và cạnh phải của hướng hiện tại của màn hình:
- [C-7-1] The navigation function PHẢI be Back and cung cấp dưới dạng một thao tác vuốt từ cả hai cạnh trái và phải của hướng hiện tại của màn hình.
- [C-7-2] If customTùy vuốt hệ thống bảng được cung cấp trên bên trái hoặc bên phải cạnh, chúng PHẢI được đặt trong khoảng 1/3rd of the screen with a clear, cổng trực quan chỉ báo rằng kéo in sẽ gọi the afore cốtpanel, and do not Back. A system Panel CÓ THỂ be Configure by a user example that is lands below the top 1/3rd of the screen edge(s) but the system panel PHẢI use long than 1/3rd of the Edge(s).
- [C-7-3] khi ứng dụng trên nền trước có một trong hai phương thức
- .
Nếu chức năng điều hướng quay lại được cung cấp và người dùng huỷ thao tác Quay lại, thì:
- [C-8-1]
OnBackInvokedCallback.onBackCancelled()
PHẢI được gọi. - [C-8-2]
OnBackInvokedCallback.onBackInvoked()
KHÔNG ĐƯỢC gọi. - [C-8-3] Sự kiện KEYCODE_BACK KHÔNG ĐƯỢC gửi đi.
Nếu bạn cung cấp hàm điều hướng quay lại nhưng ứng dụng trên nền trước CHƯA đăng ký OnBackInvokedCallback
, thì:
- The system nên cung cấp ảnh động cho ứng dụng trên nền trước đề xuất rằng người dùng đang quay lại, như đã cung cấp trong AOSP.
Nếu các phương thức triển khai thiết bị hỗ trợ API hệ thống setNavBarMode
để cho phép mọi ứng dụng hệ thống có quyền android.permission.STATUS_BAR
đặt chế độ thanh điều hướng, thì chúng:
- [C-9-1] PHẢI cung cấp hỗ trợ cho các biểu tượng thân thiện với trẻ em hoặc điều hướng dựa trên nút như được cung cấp trong mã AOSP.
7.2.4. Nhập vào màn hình cảm ứng
Android có tính năng hỗ trợ nhiều hệ thống nhập bằng con trỏ, chẳng hạn như màn hình cảm ứng, bàn di chuột và thiết bị nhập bằng cách chạm giả. Các phương thức triển khai thiết bị dựa trên màn hình cảm ứng được liên kết với một màn hình để người dùng có cảm giác như đang thao tác trực tiếp với các mục trên màn hình. Vì người dùng đang trực tiếp chạm vào màn hình, nên hệ thống không yêu cầu bất kỳ thành phần tương tác nào khác để cho biết các đối tượng đang được thao tác.
Triển khai thiết bị:
- Phải có một hệ thống đầu vào con trỏ của một số loại ( kích chuột-thích hoặc chạm).
- NÊN hỗ trợ con trỏ được theo dõi hoàn toàn độc lập.
Nếu các phương thức triển khai thiết bị bao gồm màn hình cảm ứng (một lần chạm hoặc tốt hơn) trên màn hình chính tương thích với Android, thì các phương thức đó:
- [C-1-1] PHẢI báo cáo
TOUCHSCREEN_FINGER
cho trường APIConfiguration.touchscreen
. - [C-1-2] PHẢI báo cáo cờ tính năng
android.hardware.touchscreen
vàandroid.hardware.faketouch
.
Nếu các phương thức triển khai thiết bị bao gồm một màn hình cảm ứng có thể theo dõi nhiều lần chạm trên màn hình chính tương thích với Android, thì các phương thức đó:
- [C-2-1] PHẢI báo cáo tính năng thích hợp gắn cờ
android.hardware.touchscreen.multitouch
,android.hardware.touchscreen.multitouch.distinct
,android.hardware.touchscreen.multitouch.jazzhand
tương ứng với loại màn hình cảm ứng cụ thể trên thiết bị.
Nếu quá trình triển khai thiết bị dựa vào một thiết bị đầu vào bên ngoài như chuột hoặc bi xoay (tức là không chạm trực tiếp vào màn hình) để nhập trên màn hình chính tương thích với Android và đáp ứng các yêu cầu về thao tác chạm giả trong mục 7.2.5, thì chúng:
- [C-3-1] NOT report bất kỳ tính năng cờ bắt đầu bằng
android.hardware.touchscreen
. - [C-3-2] Chỉ báo cáo
android.hardware.faketouch
. - [C-3-3] PHẢI báo cáo
TOUCHSCREEN_NOTOUCH
cho trường APIConfiguration.touchscreen
.
7.2.5. Nhập bằng cách chạm giả
Giao diện cảm ứng giả cung cấp cho người dùng một hệ thống nhập gần đúng với một số chức năng của màn hình cảm ứng. Ví dụ: chuột hoặc điều khiển từ xa điều khiển con trỏ trên màn hình gần đúng với thao tác chạm, nhưng yêu cầu người dùng trỏ hoặc lấy nét trước rồi nhấp. Nhiều thiết bị đầu vào như chuột, bàn di chuột, chuột không khí dựa trên con quay hồi chuyển, con trỏ con quay hồi chuyển, cần điều khiển và bàn di chuột cảm ứng đa điểm có thể hỗ trợ các hoạt động tương tác cảm ứng giả. Android bao gồm hằng số tính năng android.hardware.fakeTouch, tương ứng với một thiết bị đầu vào không chạm (dựa trên con trỏ) có độ chân thực cao, chẳng hạn như chuột hoặc bàn di chuột có thể mô phỏng đầy đủ phương thức nhập dựa trên thao tác chạm (bao gồm cả hỗ trợ cử chỉ cơ bản) và cho biết rằng thiết bị hỗ trợ một tập hợp con mô phỏng chức năng màn hình cảm ứng.
Nếu các quá trình triển khai thiết bị không bao gồm màn hình cảm ứng nhưng có thêm một hệ thống nhập con trỏ khác mà họ muốn cung cấp, thì chúng:
- NÊN khai báo khả năng hỗ trợ cho cờ tính năng
android.hardware.faketouch
.
Nếu các hoạt động triển khai thiết bị khai báo dịch vụ hỗ trợ android.hardware.faketouch
, thì chúng:
- [C-1-1] PHẢI báo cáo tuyệt đối X và vị trí màn hình Y của vị trí con trỏ và hiển thị con trỏ trực quan trên màn hình.
- [C-1-2] PHẢI báo cáo sự kiện chạm với mã thao tác chỉ định sự thay đổi trạng thái xảy ra trên con trỏ bay theo hướng xuống hoặc lên trên màn hình.
- [C-1-3] PHẢI support pointer down and up on an object on the screen, cho phép người dùng mô phỏng thao tác nhấn vào một đối tượng trên màn hình.
- [C-1-4] PHẢI support pointer down, pointer up, pointer down then pointer up (Con trỏ lên cùng vị trí trên một đối tượng trên màn hình trong phạm vi thời gian), cho phép người dùng emulate double nhấn trên một đối tượng trên màn hình.
- [C-1-5] PHẢI hỗ trợ con trỏ xuống trên một điểm tuỳ ý trên màn hình, con trỏ di chuyển đến bất kỳ điểm tuỳ ý nào khác trên màn hình, theo sau là con trỏ lên, cho phép người dùng mô phỏng thao tác kéo bằng cách chạm.
- [C-1-6] PHẢI support pointer down then allow users to di chuyển nhanh đối tượng đến một vị trí khác trên màn hình và sau đó con trỏ lên trên màn hình, cho phép người dùng hất một đối tượng trên màn hình.
Nếu các quá trình triển khai thiết bị khai báo hỗ trợ android.hardware.faketouch.multitouch.distinct
, thì chúng:
- [C-2-1] PHẢI khai báo khả năng hỗ trợ cho
android.hardware.faketouch
. - [C-2-2] PHẢI supportSử dụng tính năng theo dõi khác biệt của hai hoặc nhiều con trỏ độc lập.
Nếu các quá trình triển khai thiết bị khai báo hỗ trợ android.hardware.faketouch.multitouch.jazzhand
, thì chúng:
- [C-3-1] PHẢI khai báo khả năng hỗ trợ cho
android.hardware.faketouch
. - [C-3-2] PHẢI supportSử dụng tính năng theo dõi khác biệt của 5 (tracking a bàn tay ngón tay) hoặc nhiều đầu vào con trỏ hoàn toàn độc lập.
7.2.6. Hỗ trợ tay điều khiển trò chơi
7.2.6.1. Ánh xạ nút
Triển khai thiết bị:
- [C-1-1] PHẢI có khả năng ánh xạ các sự kiện HID đến hằng số
InputEvent
tương ứng như được liệt kê trong bảng dưới đây. Việc triển khai Android ngược dòng đáp ứng yêu cầu này.
Nếu các quá trình triển khai thiết bị nhúng một bộ điều khiển hoặc đi kèm với một bộ điều khiển riêng trong hộp nhằm cung cấp phương tiện để nhập tất cả sự kiện được liệt kê trong bảng bên dưới, thì chúng:
- [C-2-1] PHẢI khai báo cờ tính năng
android.hardware.gamepad
Nút | Sử dụng HID2 | Nút Android |
---|---|---|
Đáp1 | Mã: 0x09 | KEYCODE_NÚT_A (96) |
T1 | Mã: 0x09 | KEYCODE_NÚT_B (97) |
X1 | Mã: 0x09 | KEYCODE_NÚT_X (99) |
N1 | Mã: 0x09 | KEYCODE_NÚT_Y (100) |
D-pad up1 D-pad xuống1 |
0x01 0x00393 | AXIS_HAT_Y4 |
D-pad bên trái1 D-pad bên phải1 |
0x01 0x00393 | AXIS_HAT_X4 |
Nút vai trái1 | Mã: 0x09 | KEYCODE_NÚT_L1 (102) |
Nút vai phải1 | Mã: 0x09 | KEYCODE_NÚT_R1 (103) |
Nhấp chuột trái1 | Mã: 0x09 | KEYCODE_NÚT_THUMBL (106) |
Nhấp chuột phải1 | 0x09 0x000F | KEYCODE_NÚT_THUMBR (107) |
Quay lại1 | 0x0c 0x0224 | KEYCODE_BACK (4) |
2 Bạn phải khai báo cách sử dụng HID ở trên trong CA của tay điều khiển trò chơi (0x01 0x0005).
3 Trường hợp sử dụng này phải có Giá trị logic tối thiểu là 0, Tối đa hợp lý là 7, Tối thiểu thực tế là 0, Tối đa vật lý là 315, Đơn vị tính theo độ và Kích thước báo cáo là 4. Giá trị logic được xác định là độ xoay theo chiều kim đồng hồ tính từ trục tung; ví dụ: giá trị logic 0 biểu thị việc không xoay và nhấn nút lên, trong khi giá trị logic 1 biểu thị góc xoay 45 độ và cả phím lên và trái đang được nhấn.
Nút điều khiển analog1 | Sử dụng HID | Nút Android |
---|---|---|
Trình kích hoạt bên trái | 0x02 0x00C5 | AXIS_L KÍCH HOẠT |
điều kiện kích hoạt bên phải | 0x02 0x00C4 | AXIS_R KÍCH HOẠT |
Cần điều khiển bên trái | 0x01 0x0030 0x01 0x0031 |
AXIS_X AXIS_Y |
Cần điều khiển bên phải | 0x01 0x0032 0x01 0x0035 |
AXIS_Z AXIS_RZ |
7.2.7. Điều khiển từ xa
Hãy xem Mục 2.3.1 để biết các yêu cầu dành riêng cho thiết bị.
7,3. Cảm biến
Nếu quá trình triển khai thiết bị bao gồm một loại cảm biến cụ thể có API tương ứng cho các nhà phát triển bên thứ ba, thì việc triển khai thiết bị PHẢI triển khai API đó như mô tả trong tài liệu SDK Android và tài liệu Nguồn mở Android về cảm biến.
Triển khai thiết bị:
- [C-0-1] PHẢI khôi phục chính xác sự hiện diện hoặc vắng mặt của cảm biến cho lớp
android.content.pm.PackageManager
. - [C-0-2] PHẢI trả về danh sách chính xác các cảm biến được hỗ trợ thông qua
SensorManager.getSensorList()
và các phương thức tương tự. - [C-0-3]{4}mức hợp lý cho tất cả các API cảm biến khác (for example, by
returning
true
orfalse
as phong khi ứng dụng cố gắng đăng ký trình nghe, không gọi cảm biến trình nghe khi các cảm biến tương ứng không hiện diện; v.v.).
Nếu quá trình triển khai thiết bị bao gồm một loại cảm biến cụ thể có API tương ứng dành cho nhà phát triển bên thứ ba, thì thiết bị đó sẽ:
- [C-1-1] PHẢI report all sensor đo bằng cách sử dụng các giá trị quốc tế có liên quan của đơn vị (metric) cho mỗi loại cảm biến như được xác định trong tài liệu SDK Android.
- [C-1-2] PHẢI báo cáo dữ liệu cảm biến với độ trễ tối đa 100 mili giây + 2 * sample_time for the case of a sensor stream with a optimize required latency of 0 ms when the application xử lý đang hoạt động. Độ trễ này không bao gồm bất kỳ độ trễ lọc nào.
- [C-1-3] PHẢI báo cáo mẫu cảm biến đầu tiên trong vòng 400 mili giây + 2 * sample_time of the cảm biến được kích hoạt. Mẫu này có thể có độ chính xác bằng 0.
- [C-1-4] For any API specified by the Android SDK resource to be a continuous sensor, device thámThiết liên tục cung cấp các mẫu dữ liệu định kỳ mà NÊN have a jitter below 3%, where jitter is definition as the standard deviation of the ChromeSự khác biệt của Báo cáo dấu thời gian giá trị giữa các sự kiện liên tiếp.
- [C-1-5]{4} đảm bảo rằng sự kiện cảm biến luồng PHẢI KHÔNG ngăn chặn thiết bị CPU từ vào trạng thái tạm ngưng hoặc thức dậy từ trạng thái tạm ngưng.
- [C-1-6] PHẢI report the event time in nanoseconds asNgười định nghĩa trong các tài liệu SDK Android, biểu thị thời gian sự kiện xảy ra và đồng bộ hoá với đồng hồ SystemWatch.elapsedRealtimeNano().
- [C-SR-1] Are trì hoãn quá trình đồng bộ hoá theo thời gian (
- Khi một số cảm biến được kích hoạt, mức tiêu thụ năng lượng NÊN KHÔNG vượt quá tổng số tiền của cảm biến cá nhân đã báo cáo mức tiêu thụ năng lượng.
Danh sách ở trên chưa đầy đủ; hành vi được ghi nhận của SDK Android và Tài liệu nguồn mở Android trên cảm biến sẽ được coi là đáng tin cậy.
Nếu quá trình triển khai thiết bị bao gồm một loại cảm biến cụ thể có API tương ứng dành cho nhà phát triển bên thứ ba, thì thiết bị đó sẽ:
- [C-1-6] PHẢI set a non-zero đột nhiên đến độ phân giải cho tất cả các cảm biến, và báo cáo giá trị thông qua các
Sensor.getResolution()
API phương thức.
Một số loại cảm biến là kết hợp, nghĩa là có thể lấy từ dữ liệu do một hoặc nhiều cảm biến khác cung cấp. (Ví dụ bao gồm cảm biến hướng và cảm biến gia tốc tuyến tính.)
Triển khai thiết bị:
- NÊN triển khai các loại cảm biến này, khi chúng bao gồm các cảm biến vật lý tiên quyết như được mô tả trong các loại cảm biến.
Nếu quá trình triển khai thiết bị bao gồm một cảm biến tổng hợp, thì các cấu hình đó:
- [C-2-1] PHẢI triển khai cảm biến như được mô tả trong tài liệu Nguồn mở Android trên composite cảm biến.
Nếu quá trình triển khai thiết bị bao gồm một loại cảm biến cụ thể có API tương ứng cho các nhà phát triển bên thứ ba và cảm biến chỉ báo cáo một giá trị, thì quá trình triển khai thiết bị:
- [C-3-1] PHẢI set the issue to 1 for the sensor and report the value
thông qua phương thức API
Sensor.getResolution()
.
Nếu quá trình triển khai thiết bị bao gồm một loại cảm biến cụ thể hỗ trợ SensorAdditionalInfo#TYPE_VEC3_CALIBRATION và cảm biến được hiển thị với nhà phát triển bên thứ ba, thì họ sẽ:
- [C-4-1] KHÔNG ĐƯỢC bao gồm bất kỳ thông số hiệu chỉnh cố định, được xác định nhà máy nào trong dữ liệu được cung cấp.
Nếu hoạt động triển khai thiết bị bao gồm tổ hợp gia tốc kế 3 trục, cảm biến con quay hồi chuyển 3 trục hoặc cảm biến từ kế, thì các cảm biến đó:
- [C-SR-2] Cách thử nghiệm được đề xuất nhằm đảm bảo gia tốc kế, con quay hồi chuyển và từ phương thức có vị trí tương đối cố định, chẳng hạn như nếu thiết bị có thể biến đổi (e.g. ngôn ngữ có thể gập lại), cảm biến axes vẫn được căn chỉnh và nhất quán với hệ thống toạ độ cảm biến trong suốt tất cả các trạng thái biến đổi thiết bị có thể.
7.3.1. Gia tốc kế
Triển khai thiết bị:
- [C-SR-1] Giới thiệu về gia tốc kế 3 trục.
Nếu quá trình triển khai thiết bị có bao gồm gia tốc kế, thì ứng dụng sẽ:
- [C-1-1] PHẢI có thể báo cáo các sự kiện lên đến tần số tối thiểu là 50 Hz.
- [C-1-3] PHẢICompliance with the Android sensor coordinate system as chi tiết in the Android APIs.
- [C-1-4] PHẢI be compatibility of Measurement from freefall up to4 times the weight(4g) or more on any axis.
- [C-1-5] PHẢI có độ phân giải ít nhất là 12 bit.
- [C-1-6] PHẢI have a standard deviation no large than 0.05 m/s^, where the standard deviation should be managed on a per axisCâu viết
- NÊN báo cáo các sự kiện tối thiểu là 200 Hz.
- PHẢI có độ phân giải tối thiểu là 16 bit.
- NÊN be adjustd while in use if the Đang thay đổi quá trình vòng đời và bù, và bảo tồn các thông số bù giữa thiết bị khởi động lại.
- PHẢI được bù nhiệt.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế 3 trục, thì các phương thức triển khai đó:
- [C-2-1] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER
. - [C-SR-4] Are được linh hoạt hóa để triển khai
TYPE_SIGNIFICANT_MOTION
composite sensor. - [C-SR-5] AreĐể nhà phát triển sử dụng phương thức triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_UNCALIBRATED
. Các thiết bị Android ĐƯỢC ĐỀ XUẤT ĐỂ đáp ứng yêu cầu này để có thể nâng cấp lên bản phát hành trên nền tảng trong tương lai khi thông tin này có thể trở thành BẮT BUỘC. - nên triển khai
TYPE_SIGNIFICANT_MOTION
,TYPE_TILT_DETECTOR
,TYPE_STEP_DETECTOR
,TYPE_STEP_COUNTER
cảm biến tổng hợp như được mô tả trong tài liệu SDK Android.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế có ít hơn 3 trục, thì chúng:
- [C-3-1] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES
. - [C-SR-6] AreĐể nhà phát triển sử dụng và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
.
Nếu hoạt động triển khai thiết bị bao gồm gia tốc kế 3 trục và bất kỳ cảm biến kết hợp TYPE_SIGNIFICANT_MOTION
, TYPE_TILT_DETECTOR
, TYPE_STEP_DETECTOR
, TYPE_STEP_COUNTER
nào cũng được triển khai:
- [C-4-1] Tổng công suất tiêu thụ của các thiết bị PHẢI luôn nhỏ hơn 4 mW.
- nên one be below 2 mW and 0.5 mW for when the device is in a dynamic or static condition.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục và cảm biến con quay hồi chuyển 3 trục, thì chúng:
- [C-5-1] PHẢI triển khai cảm biến tổng hợp
TYPE_GRAVITY
vàTYPE_LINEAR_ACCELERATION
. - [C-SR-7] AreĐể nhà phát triển khuyến khích dùng phương thức triển khai
TYPE_GAME_ROTATION_VECTOR
composite sensor.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục, cảm biến con quay hồi chuyển 3 trục và cảm biến từ kế, thì chúng:
- [C-6-1] PHẢI triển khai cảm biến tổng hợp
TYPE_ROTATION_VECTOR
.
7.3.2. Từ kế
Triển khai thiết bị:
- [C-SR-1] Giới hạn định dạng giới thiệu để bao gồm từ kế 3 trục (la bàn).
Nếu cách triển khai thiết bị bao gồm từ kế 3 trục, thì chúng:
- [C-1-1] PHẢI triển khai cảm biến
TYPE_MAGNETIC_FIELD
. - [C-1-2] PHẢI beable to report events up to afrequency of at least 10 Hz and NÊN report events up to at least 50 Hz.
- [C-1-3] PHẢICompliance with the Android sensor coordinate system asdetail in the Android APIs.
- [C-1-4]{4} be CÓ khả năng đo lường giữa -900 μT và +900 μT trên mỗi trục trước khi bão hoà.
- [C-1-5] PHẢI có giá trị bù trừ sắt cứng dưới 700 μT và NÊN có giá trị dưới 200 μT, bằng cách đặt từ kế xa từ động (current-induced) và từ trường tĩnh (magnet-induced).
- [C-1-6] PHẢI có độ phân giải bằng hoặc dày hơn 0,6 μT.
- [C-1-7] PHẢI support trực tuyếnKiểm soát và bồi thường của cứng iron bias, và bảo tồn các thông số đền bù giữa các thiết bị khởi động lại.
- [C-1-8] PHẢI have the soft iron appeal applied—the custom can be thực hiện một trong hai khi đang sử dụng hoặc trong quá trình sản xuất thiết bị.
- [C-1-9] PHẢI have a standard deviation, khung
- [C-1-10] PHẢI triển khai cảm biến
TYPE_MAGNETIC_FIELD_UNCALIBRATED
.
Nếu các phương thức triển khai thiết bị bao gồm từ kế 3 trục, cảm biến gia tốc kế và cảm biến con quay hồi chuyển 3 trục, thì chúng sẽ:
- [C-2-1] PHẢI triển khai cảm biến tổng hợp
TYPE_ROTATION_VECTOR
.
Nếu cách triển khai thiết bị bao gồm từ kế 3 trục, gia tốc kế, thì thiết bị đó sẽ:
- CÓ THỂ triển khai cảm biến
TYPE_GEOMAGNETIC_ROTATION_VECTOR
.
Nếu các phương thức triển khai thiết bị bao gồm từ kế 3 trục, gia tốc kế và cảm biến TYPE_GEOMAGNETIC_ROTATION_VECTOR
, thì chúng:
- [C-3-1] PHẢI tiêu thụ ít hơn 10 mW.
- Cần tiêu thụ ít hơn 3 mW khi cảm biến được đăng ký cho chế độ lô tại 10 Hz.
7.3.3. GPS
Triển khai thiết bị:
- [C-SR-1] Giới hạn định dạng giới thiệu để bao gồm bộ thu GPS/GNSS.
Nếu các hoạt động triển khai thiết bị bao gồm bộ thu GPS/GNSS và báo cáo chức năng cho các ứng dụng thông qua cờ tính năng android.hardware.location.gps
, thì chúng:
- [C-1-1] PHẢI support location output at a rate of at least 1 Hz when
requested via
LocationManager#requestLocationUpdate
. - [C-1-2]{4} be possible to confirm the location in open-sky conditions
(strong tín hiệu, negligible multipath, HDOP < 2) {/5}10 seconds (fast
time to first update), khi kết nối với a 0.5 Mbps hoặc tốc độ dữ liệu nhanh hơn
kết nối Internet. Yêu cầu này thường được đáp ứng bằng cách sử dụng một số dạng kỹ thuật GPS/GNSS được hỗ trợ hoặc dự đoán để giảm thiểu thời gian khoá GPS/GNSS (Dữ liệu hỗ trợ bao gồm Thời gian tham chiếu, Vị trí tham chiếu và Hiệu ứng vệ tinh/Đồng hồ).
- [C-1-6] After made that a locationcompute, device requests{4}defined their location, in open sky, below 5 seconds, when location requests are restart, up to an hours after the initial location Gemini
Ở điều kiện trời mở sau khi xác định vị trí, khi đang đứng yên hoặc đang di chuyển với gia tốc dưới 1 mét/giây:
- [C-1-3]{4} can toHãy xác định vị trí trong khoảng 20 mét, và tốc độ trong phạm vi 0.5 mét mỗi giây, at least 95% of the time.
- [C-1-4]{4} đồng thời theo dõi và báo cáo qua
GnssStatus.Callback
ít nhất 8 vệ tinh từ một chòm sao. - NÊN be be available to least 24 lifecycles, from multipleNHs (e.g. GPS + at least one of Glonass, Beidou, Galileo).
[C-SR-2] Are trì hoãn lại theo thời gian thực để tiếp tục cung cấp thông tin về GPS/GNSS Vị trí đầu ra thông thường thông qua GNSS Location Provider API's trong suốt cuộc gọi điện thoại khẩn cấp.
[C-SR-3] Are trì hoãn 24 để báo cáo GNSSUS
[C-SR-4] Are trì hoãn 24 để báo cáo AGC, andfrequency of GNSS Measurement.
[C-SR-5] Are Internet Sử dụng để báo cáo tất cả các ước tính chính xác (bao gồm Bearing, Speed, and Vertical) as part of9 GPS/GNSS location.
[C-SR-6] Are trì hoãn dải quảng cáo gốc để báo cáo GNSS đo, as soon as they are found, ngay cả khi một vị trí tính toán từ GPS/GNSS is notchưa báo cáo.
[C-SR-7] Are trì hoãn 14 để báo cáo GNSS pseudoranges and pseudorange rates, that, in open-sky conditions after take the location, when floorary or migrated with least 0.2 meter per second squared of acceleration, are Wi tocompute location below 20M, and Speed from 0.2meter per second, at least 95% of the time.
7.3.4. Con quay hồi chuyển
Triển khai thiết bị:
- [C-SR-1] Are trì hoãn việc sử dụng cảm biến con quay hồi chuyển.
Nếu quá trình triển khai thiết bị bao gồm con quay hồi chuyển, thì chúng:
- [C-1-1] PHẢI có thể báo cáo các sự kiện lên đến tần số tối thiểu là 50 Hz.
- [C-1-4] PHẢI có độ phân giải 12 bit trở lên.
- [C-1-5] PHẢI được bù nhiệt độ.
- [C-1-6] NOT be One Alignd and truyền while in use, and the com đềnation parameters giữa device restarts.
- [C-1-7]{4} have a variations no large than 1e-7 Rad^2 / s^2 per Hz (variance per Hz, or Rad^2 / s). Phương sai được phép thay đổi theo tốc độ lấy mẫu, nhưng PHẢI bị hạn chế bởi giá trị này. Nói cách khác, nếu bạn đo lường phương sai của con quay hồi chuyển ở tốc độ lấy mẫu 1 Hz, thì cần phải không lớn hơn 1e-7 rad^2/s^2.
- [C-SR-2] Calibration error is Hãy thử nghiệm về các đơn vị đo lường
- [C-SR-3] Are trì hoãn 1 để có độ phân giải từ 16-bit trở lên.
- NÊN báo cáo các sự kiện tối thiểu là 200 Hz.
Nếu quá trình triển khai thiết bị bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [C-2-1] PHẢI triển khai cảm biến
TYPE_GYROSCOPE
. - [C-SR-4] Bạn nên triển khai cảm biến
TYPE_GYROSCOPE_UNCALIBRATED
.
Nếu quá trình triển khai thiết bị bao gồm một con quay hồi chuyển có ít hơn 3 trục, thì chúng:
- [C-3-1] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES
. - [C-SR-5] Are liền_Đề xuất để triển khai và báo cáo
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
cảm biến.
Nếu các phương thức triển khai thiết bị bao gồm con quay hồi chuyển 3 trục, cảm biến gia tốc kế và cảm biến từ kế, thì chúng:
- [C-4-1] PHẢI triển khai cảm biến tổng hợp
TYPE_ROTATION_VECTOR
.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục và cảm biến con quay hồi chuyển 3 trục, thì chúng:
- [C-5-1] PHẢI triển khai cảm biến tổng hợp
TYPE_GRAVITY
vàTYPE_LINEAR_ACCELERATION
. - [C-SR-6] AreĐể nhà phát triển khuyến khích dùng phương thức triển khai
TYPE_GAME_ROTATION_VECTOR
composite sensor.
7.3.5. Khí áp kế
Triển khai thiết bị:
- [C-SR-1] Are Internet Sử dụng các cảm biến để bao gồm một khí áp kế (ambient khí áp lực).
Nếu hoạt động triển khai thiết bị bao gồm khí áp kế, thì chúng:
- [C-1-1] PHẢI triển khai và báo cáo cảm biến
TYPE_PRESSURE
. - [C-1-2] PHẢI có thể phân phối các sự kiện ở tần số 5 Hz trở lên.
- [C-1-3] PHẢI được bù nhiệt độ.
- [C-SR-2] Để các chỉ số được đề xuất có thể báo cáo đo áp lực trong phạm vi 300hPa đến 1100hPa.
- PHẢI có độ chính xác tuyệt đối là 1hPa.
- Cần có độ chính xác tương đối của 0.12hPa over 20hPa Range (tương đương với độ chính xác của ~1m độ chính xác hơn ~200m thay đổi ở mực nước biển).
7.3.6. Nhiệt kế
Nếu quá trình triển khai thiết bị có bao gồm nhiệt kế môi trường xung quanh (cảm biến nhiệt độ), thì thiết bị đó:
- [C-1-1]{4} definition
SENSOR_TYPE_AMBIENT_TEMPERATURE
for the environment amount sensor and the sensor PHẢI đo môi trường xung quanh (room/vehicle cabin) trừu tượng nhiệt độ từ nơi người dùng đang tương tác với thiết bị theo độ C.
Nếu quá trình triển khai thiết bị bao gồm cảm biến nhiệt kế đo một nhiệt độ không phải là nhiệt độ môi trường xung quanh (chẳng hạn như nhiệt độ CPU), thì thiết bị đó:
- [C-2-1] PHẢI NOTdefined
SENSOR_TYPE_AMBIENT_TEMPERATURE
for the heat sensor.
Nếu các hoạt động triển khai thiết bị bao gồm một cảm biến để theo dõi nhiệt độ trên da, thì chúng:
- [C-SR-1] AreĐể nhà phát triển sử dụng chế độ hỗ trợ nhằm thu hút người dùng khám phá PowerManager.getThermalHeadroom API.
7.3.7. Quang kế
- Quá trình triển khai thiết bị CÓ THỂ bao gồm một quang kế (cảm biến ánh sáng môi trường xung quanh).
7.3.8. Cảm biến độ gần
- Quá trình triển khai trên thiết bị CÓ THỂ bao gồm cả cảm biến độ gần.
Nếu các hoạt động triển khai thiết bị bao gồm cảm biến độ gần và chỉ báo cáo chỉ số nhị phân "gần" hoặc "xa", thì chúng:
- [C-1-1] PHẢI đo lường độ gần của một đối tượng trong cùng hướng như màn hình. Tức là cảm biến độ gần PHẢI được định hướng để phát hiện các đối tượng gần màn hình, vì mục đích chính của loại cảm biến này là phát hiện một điện thoại mà người dùng đang sử dụng. Nếu các phương thức triển khai thiết bị bao gồm cảm biến gần đúng với bất kỳ hướng nào khác, thì cảm biến KHÔNG ĐƯỢC PHÉP truy cập được thông qua API này.
- [C-1-2] PHẢI có độ chính xác từ 1 bit trở lên.
- [C-1-3] PHẢI use 0 centimeters as the near reading và 5 centimeters as the far reading.
- [C-1-4] PHẢI báo cáo phạm vi và độ phân giải tối đa là 5.
7.3.9. Cảm biến có độ chân thực cao
Nếu hoạt động triển khai thiết bị bao gồm một tập hợp cảm biến chất lượng cao hơn như được xác định trong phần này và cung cấp cho các ứng dụng bên thứ ba, thì những cảm biến đó sẽ:
- [C-1-1]{4}Identify the feature through the
android.hardware.sensor.hifi_sensors
Featureflag.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.sensor.hifi_sensors
, thì chúng:
[C-2-1] PHẢI có cảm biến
TYPE_ACCELEROMETER
:- PHẢI have a Measurement Range between at least -8g and +8g, and is STRONGLY ngưỡng for have a Measurement Range between at least -16g and +16g.
- PHẢI có độ phân giải đo ít nhất là 2048 LSB/g.
- PHẢI có tần số đo tối thiểu từ 12,5 Hz trở xuống.
- PHẢI have a max đofrequency of 400 Hz or higher; NÊN
support the SensorDirectChannel
RATE_VERY_FAST
. - PHẢI có độ nhiễu khi đo không được trên 400 μg/.
- PHẢI triển khai dạng không đánh thức của cảm biến này với khả năng lưu vào bộ đệm của ít nhất 3000 sự kiện cảm biến.
- PHẢI có mức tiêu thụ điện năng phân lô không thấp hơn 3 mW.
- [C-SR-1] là
- NÊN have an AVD random walk ít hơn 30 μg Dohz kiểm thử ở nhiệt độ phòng.
- NÊN có sự thay đổi độ lệch so với nhiệt độ ≤ +/- 1 mg/°C.
- NÊN have a Best-fit line non-linearity of ≤ 0.5%, and sensitive changes so.
- Nên có độ nhạy chéo trục của < 2.5 % and variations of cross-axisMạng nhạy < 0,2% in device activity scope.
[C-2-2] PHẢI có
TYPE_ACCELEROMETER_UNCALIBRATED
với cùng các yêu cầu về chất lượng nhưTYPE_ACCELEROMETER
.[C-2-3] PHẢI có cảm biến
TYPE_GYROSCOPE
:- PHẢI có phạm vi đo lường ít nhất từ -1000 đến +1000 dp.
- PHẢI có độ phân giải đo lường ít nhất là 16 LSB/dp.
- PHẢI có tần số đo tối thiểu từ 12,5 Hz trở xuống.
- PHẢI have a max đofrequency of 400 Hz or higher; NÊN
support the SensorDirectChannel
RATE_VERY_FAST
. - PHẢI có độ nhiễu khi đo không được lớn hơn 0,014°/s/.
- [C-SR-2] Is mã chuột ĐỀ XUẤT NÊN có 3dB đo băng thông of at least 80% of Nyquistfrequency, and whiteĐịa chấn truyền thông trong phạm vi băng thông này.
- NÊN have a rate random walk ít hơn 0.001 °/s RadHz testing at room Nhiệt độ.
- NÊN có sự thay đổi độ lệch so với nhiệt độ ≤ +/- 0,05 °/ s / °C.
- NÊN có sự thay đổi về độ nhạy so với nhiệt độ ≤ 0,02% / °C.
- Phải có độ không tuyến tính phù hợp nhất với đường kẻ từ ≤ 0,2%.
- NÊN có mật độ tiếng ồn ≤ 0,007 °/s/tài khoản.
- Phải có lỗi hiệu chỉnh dưới 0.002 Rad/s in Nhiệt độ phạm vi 10 ~ 40 °C khi thiết bị đứng yên.
- Phải có độ nhạy g dưới 0,1°/s/g.
- Phải có độ nhạy chéo trục của < 4.0 % and cross-axissensitive variation < 0.3% in device activity products.
[C-2-4] PHẢI có
TYPE_GYROSCOPE_UNCALIBRATED
với cùng yêu cầu về chất lượng nhưTYPE_GYROSCOPE
.[C-2-5] PHẢI có cảm biến
TYPE_GEOMAGNETIC_FIELD
:- Phạm vi đo phải có giá trị từ -900 đến +900 μT.
- PHẢI có độ phân giải đo ít nhất là 5 LSB/uT.
- PHẢI có tần số đo tối thiểu từ 5 Hz trở xuống.
- PHẢI có tần số đo tối đa từ 50 Hz trở lên.
- PHẢI có độ nhiễu đo không được lớn hơn 0,5 uT.
[C-2-6] PHẢI have a
TYPE_MAGNETIC_FIELD_UNCALIBRATED
with the same qualityrequirements asTYPE_GEOMAGNETIC_FIELD
and in thêm:- PHẢI triển khai dạng không đánh thức của cảm biến này với khả năng lưu vào bộ đệm của ít nhất 600 sự kiện cảm biến.
- [C-SR-3] Is liền mạch NÊN DÙNG để có phổ nhiễu trắng từ 1 Hz đến ít nhất 10 Hz khi tốc độ báo cáo là 50 Hz trở lên.
[C-2-7] PHẢI có cảm biến
TYPE_PRESSURE
:- Phải có phạm vi đo ít nhất từ 300 đến 1100 hPa.
- PHẢI có độ phân giải đo ít nhất là 80 LSB/hPa.
- PHẢI có tần số đo tối thiểu từ 1 Hz trở xuống.
- PHẢI có tần số đo tối đa từ 10 Hz trở lên.
- PHẢI có độ nhiễu đo không được trên 2 Pa/{4}Hz.
- PHẢI triển khai dạng không đánh thức của cảm biến này với khả năng lưu vào bộ đệm của ít nhất 300 sự kiện cảm biến.
- PHẢI có mức tiêu thụ điện năng phân lô không thấp hơn 2 mW.
[C-2-8] PHẢI có cảm biến
TYPE_GAME_ROTATION_VECTOR
.[C-2-9] PHẢI có cảm biến
TYPE_SIGNIFICANT_MOTION
:- PHẢI có mức tiêu thụ năng lượng không tệ hơn 0.5 mW khi thiết bị là tĩnh và 1.5 mW khi thiết bị đang di chuyển.
[C-2-10] PHẢI có cảm biến
TYPE_STEP_DETECTOR
:- PHẢI triển khai biểu mẫu non-wake-up của cảm biến này với khả năng lưu vào bộ đệm của ít nhất 100 sự kiện cảm biến.
- PHẢI có mức tiêu thụ năng lượng không tệ hơn 0.5 mW khi thiết bị là tĩnh và 1.5 mW khi thiết bị đang di chuyển.
- PHẢI có mức tiêu thụ điện năng phân lô không thấp hơn 4 mW.
[C-2-11] PHẢI có cảm biến
TYPE_STEP_COUNTER
:- PHẢI có mức tiêu thụ năng lượng không tệ hơn 0.5 mW khi thiết bị là tĩnh và 1.5 mW khi thiết bị đang di chuyển.
[C-2-12] PHẢI có cảm biến
TILT_DETECTOR
:- PHẢI có mức tiêu thụ năng lượng không tệ hơn 0.5 mW khi thiết bị là tĩnh và 1.5 mW khi thiết bị đang di chuyển.
[C-2-13] The event timestamp of the same physical event reports by the Accelerometer, Gyroscope, and Magiremeter PHẢI be Trong vòng 2,5 mili giây của nhau. The event timestamp of the cùng physical event reports by the Accelerometer and Gyroscope NÊN be during 0.25 milliseconds of mỗi người khác.
[C-2-14] PHẢI have Gyroscope sensor event timestamp on the same time base as the camera subsystem and across 1 milliseconds of error.
[C-2-15]{4} delivery sample to applications across 5 phus from the time when the data is available on any of the above physical SD (Cảm biến vật lý) đến ứng dụng.
[C-2-16] NOT have a powerConsumption higher than 0.5 mW when device is static and 2.0 mW when device is xoá Khi bất kỳ sự kết hợp nào của các cảm biến sau được bật:
SENSOR_TYPE_SIGNIFICANT_MOTION
SENSOR_TYPE_STEP_DETECTOR
SENSOR_TYPE_STEP_COUNTER
SENSOR_TILT_DETECTORS
[C-2-17] CÓ THỂ have a
TYPE_PROXIMITY
sensor, but if Chuyển Witt s et et cui Tiêu chuẩn của 100 cảm biến sự kiện.
Lưu ý rằng tất cả các yêu cầu về mức tiêu thụ điện năng trong phần này không bao gồm mức tiêu thụ điện năng của Bộ xử lý ứng dụng. Bộ nhớ này bao gồm năng lượng được vẽ bởi toàn bộ chuỗi cảm biến – cảm biến, mọi mạch hỗ trợ, bất kỳ hệ thống xử lý cảm biến chuyên dụng nào, v.v.
Nếu quá trình triển khai thiết bị có hỗ trợ cảm biến trực tiếp, thì chúng:
- [C-3-1]{4}chính xác hỗ trợ các loại kênh trực tiếp và báo cáo tỷ lệ trực tiếp thông qua
isDirectChannelTypeSupported
vàgetHighestDirectReportRateLevel
API. - [C-3-2] PHẢI support at least one of the Two sensor direct channel types for all values that reports support for sensor direct channel.
- NÊN support event reporting through sensor direct channel for primary
sensor (non-wakeup variables) of the following types:
TYPE_ACCELEROMETER
TYPE_ACCELEROMETER_UNCALIBRATED
TYPE_GYROSCOPE
TYPE_GYROSCOPE_UNCALIBRATED
TYPE_MAGNETIC_FIELD
TYPE_MAGNETIC_FIELD_UNCALIBRATED
7.3.10. Cảm biến sinh trắc học
Để biết thêm thông tin về cách đo lường mức độ bảo mật của tính năng Mở khoá bằng sinh trắc học, vui lòng xem tài liệu về Đo lường bảo mật bằng sinh trắc học.
Nếu các hoạt động triển khai thiết bị có bao gồm màn hình khoá bảo mật, thì chúng:
- PHẢI có cảm biến sinh trắc học
Cảm biến sinh trắc học có thể được phân loại thành Loại 3 (trước đây là Mạnh), Loại 2 (trước đây là Yếu) hoặc Loại 1 (trước đây là Thuận tiện) dựa trên tỷ lệ chấp nhận giả mạo và mạo danh cũng như tính bảo mật của đường ống sinh trắc học. Cách phân loại này xác định các khả năng mà cảm biến sinh trắc học có để tương tác với nền tảng và với các ứng dụng bên thứ ba. Các cảm biến cần đáp ứng các yêu cầu bổ sung như nêu chi tiết dưới đây nếu muốn được phân loại là Loại 1, Loại 2 hoặc Loại 3. Cả hệ thống nhận dạng sinh trắc học Lớp 2 và Lớp 3 đều có thêm các tính năng bổ sung như thông tin chi tiết dưới đây.
Nếu quá trình triển khai thiết bị cung cấp cảm biến sinh trắc học cho các ứng dụng bên thứ ba thông qua android.hardware.biometric.BiometricManager, android.hardware.biometric.BiometricPrompt và android.provider.Settings.ACTION_BIOMETRIC_ENROLL, thì họ:
- [C-4-1] PHẢI đáp ứng các yêu cầu đối với Class 3 or Class 2 Thông tin sinh trắc học như đã xác định trong tài liệu này.
- [C-4-2] PHẢIRecognition and Đền đáp từng tên thông số được xác định là hằng số trong lớp Authenticators và bất kỳ sự kết hợp nào ở đó. ngược lại, KHÔNG tôn trọng hoặc nhận biết hằng số số nguyên được truyền đến phương thức canauthenticator(int) và setAllowedAuthenticators(int) ngoại trừ những phương thức được ghi nhận dưới dạng công khai trong Authenticators và bất kỳ sự kết hợp nào ở đó.
- [C-4-3] PHẢI triển khai hành động ACTION_BIOMETRIC_ENROLL trên các thiết bị có hệ thống nhận dạng sinh trắc học Class 3 hoặc Class 2. Thao tác này PHẢI chỉ trình bày điểm truy cập đăng ký cho hệ thống nhận dạng sinh trắc học Class 3 hoặc Class 2.
Nếu quá trình triển khai thiết bị hỗ trợ tính năng nhận dạng sinh trắc học thụ động, thì các thiết bị đó sẽ:
- [C-5-1] PHẢI by mặc định yêu cầu một bước xác nhận bổ sung (e.g. a button press).
- [C-SR-1] AreĐể dãy thử nghiệm
- [C-SR-2] AreĐể các nhà phát triển sử dụng được hành động xác nhận an toàn chẳng hạn như một hệ điều hành hoặc hạt nhân không thể spoof nó. Ví dụ: điều này có nghĩa là thao tác xác nhận dựa trên nút vật lý được định tuyến thông qua một chân cắm đầu vào/đầu ra đa năng (GPIO) chỉ dành cho đầu vào của một phần tử bảo mật (SE) mà không thể điều khiển bằng bất kỳ phương tiện nào khác ngoài thao tác nhấn nút vật lý.
- [C-5-2] PHẢI additional perform an implicit Authentication flow (không có bước xác nhận) tương ứng với setConfirmationAvailable(boolean), mà ứng dụng có thể đặt để sử dụng cho luồng đăng nhập.
Nếu quá trình triển khai thiết bị có nhiều cảm biến sinh trắc học, thì các cảm biến đó:
- [C-SR-3] Are trì hoãn lại theo yêu cầu chỉ một sinh trắc học được xác nhận cho mỗi xác thực (e.g. if could audience and the events are available on the device, onAuthenticationSucceeded should be sent after any one of they is specified).
Để các quá trình triển khai thiết bị cho phép truy cập vào khoá kho khoá cho các ứng dụng bên thứ ba, chúng:
- [C-6-1] PHẢI đáp ứng các yêu cầu đối với Class 3 as specified in this section below.
- [C-6-2] onlyTrình bày dữ liệu sinh trắc học Class 3 khi xác thực yêu cầu BIOMETRIC_STRONG, hoặc xác thực được gọi bằng CryptoObject.
Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 1 (trước đây là Tiện lợi), thì các phương thức triển khai đó:
- [C-1-1] PHẢI có tỷ lệ chấp nhận sai nhỏ hơn 0,002%.
- [C-1-2]{4}disclosure that this mode may be under secure than a strong PIN, pattern, or password and clear enumerate the problems of enable it, if the spoof and imposterAccept rates are higher than 7% as Measure by the Android Biometric Test Protocols.
- [C-1-9] truyền thử thách người dùng cho phương thức xác thực chính được đề xuất (e.g. PIN, sample, password) after no more than false experiment and no less more{3/} Gemini backoff time - where a false trial is one with an eligible Capture quality (BIOMETRIC_ACQUIRED_GOOD) that do not match an loggeder.
- [C-SR-4] AreĐể các ứng dụng được dùng thử đáng chú ý hơn để giảm tổng số lượng các tính năng dùng thử sai cho quy trình xác minh sinh trắc học được chỉ định in [C-1-9] if the spoof and imposter accept rates are higher than 7% as Measure by the Android Biometric Test Protocols.
- [C-1-3] PHẢI rate limited try forAI verification - where a
false trial is one with an must capture quality
(
BIOMETRIC_ACQUIRED_GOOD
) that does not match an logged trúc sinh trắc học. - [C-SR-5] Are kinh dải trương DT DU DU DU DU DU DU DINH dOi cho ít nhất 30 seconds after five false forCông cụ xác minh sinh trắc học for the Minimum number of false trial per [C-1-9] - where a false trial is one with an eligible capture quality (BIOMETRIC_ACQUIRED_GOOD) that do not match an enrolleden.
- [C-SR-6] Are mã hóa NÊN DÙNG để có tất cả logic giới hạn tốc độ trong TEE.
- [C-1-10] NOT disabled RCSs once primary Authentication backoff has first trigger as descriptions in [C-0-2] of section 9.11.
- [C-1-11]{4} have a spoof and imposterAccept rate not higher than 30%, with (1) a spoof and imposterAccept rate for Level AThẻ thuyết trình attack tool (PAI)parameter not higher than 30%, and (2) a spoof and imposter verification rate of Level B PAI experiment rate not higher than 40% percent Tests.
- [C-1-4]{4} prevent added newervis that without the firstThiết lập một chuỗi tin cậy bằng cách có người dùng xác nhận hiện có hoặc thêm một thiết bị mới xác thực (PIN/pattern/password) that'sprotect by TEE; the Android Open Source Project sóng cung cấp cơ chế trong khung để do so.
- [C-1-5] PHẢI xoá hoàn toàn tất cả dữ liệu sinh trắc học nhận dạng được cho người dùng khi tài khoản của người dùng bị xoá (bao gồm cả thông qua tính năng đặt lại về trạng thái ban đầu).
- [C-1-6]
DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT
DevicePolicymanager.KEYGUARD_DISABLE_FACE
DevicePolicymanager.KEYGUARD_DISABLE_IRIS
- [C-1-7] truyền thử thách người dùng cho xác thực chính được đề xuất (e.g. PIN, sample, password) once per 24 hours or ít hơn. Lưu ý: Việc nâng cấp thiết bị chạy trên phiên bản Android 9 trở xuống PHẢI thử thách người dùng sử dụng phương thức xác thực chính được đề xuất (ví dụ: mã PIN, hình mở khoá, mật khẩu) mỗi 72 giờ một lần trở xuống.
- [C-1-8] PHẢIChallenge the user for the recommended primary
authentication (eg: PIN, sample, password) or Class 3 (STRONG) Thông số sinh trắc học sau một trong các thông tin sau:
- khoảng thời gian chờ 4 giờ ở trạng thái không hoạt động, HOẶC
- 3 lần xác thực bằng sinh trắc học không thành công.
- Khoảng thời gian chờ ở trạng thái không hoạt động và số lần xác thực không thành công sẽ được đặt lại sau khi có lần xác nhận thành công thông tin đăng nhập thiết bị. Lưu ý: Việc nâng cấp các thiết bị chạy trên Android phiên bản 9 trở xuống CÓ THỂ được miễn trừ khỏi C-1-8.
- [C-SR-7] Are Internet REVIEW to use the logic in the Framework cung cấp by the Android Open Source Project to THỰC HIỆNHạn chế được chỉ định trong [C-1-7] and [C-1-8] for new devices.
- [C-SR-8] Are trì hoãn phát triển để có tỷ lệ từ chối false của nhỏ hơn 10%, as Measure on the device.
- [C-SR-9] AreĐể các nhà phát triển sử dụng vị trí có độ trễ bên dưới 1 giây,
Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 2 (trước đây là Yếu), thì các phương thức triển khai đó sẽ:
[C-2-1] PHẢI đáp ứng tất cả các yêu cầu đối với Loại 1 ở trên.
[C-2-2] PHẢI have a spoof and imposterAccept rate not higher than 20%, with (1) a spoof and imposterAccept rate for Level AThẻ thuyết minh attackInstrument (PAI) not higher than 20%, and (2) a spoof and imposterAccept rate of Level B PAI CPCmeasures not higher than 30% Biometrics Tests
[C-2-3] PHẢI perform the sinh trắc học so khớp trong môi trường thực thi tách biệt bên ngoài người dùng hoặc không gian nhân hệ điều hành Android, chẳng hạn như Môi trường thực thi đáng tin cậy (TEE) hoặc trên chip có kênh bảo mật đến môi trường thực thi tách biệt.
[C-2-4] PHẢI have all identity data encryption and cryptographically confirmedd how that they could be changed, read or changed external of the individual applied environment or a chip with a secure channel to the isolated bidding environment as documented in the implementation guidelines on the Android Open Source Project site.
[C-2-5] Đối với hệ thống nhận dạng sinh trắc học dựa trên máy ảnh, trong khi quá trình xác thực hoặc đăng ký dựa trên sinh trắc học đang diễn ra:
- PHẢI vận hành máy ảnh ở chế độ ngăn không cho đọc hoặc thay đổi khung máy ảnh bên ngoài môi trường thực thi tách biệt hoặc chip có kênh bảo mật đến môi trường thực thi tách biệt.
- Đối với các giải pháp camera đơn RGB, các khung camera CAN có thể đọc được bên ngoài môi trường thực thi tách biệt để hỗ trợ các thao tác như xem trước để đăng ký, nhưng vẫn KHÔNG ĐƯỢC thay đổi.
[C-2-6] PHẢI NOT enable third-party applications to xen giữa các sinh trắc học cá nhân đăng ký.
[C-2-7] KHÔNG cho phép truy cập không mã hoá vào dữ liệu sinh trắc học có thể nhận dạng hoặc bất kỳ dữ liệu nào nguồn gốc từ dữ liệu đó (chẳng hạn như nhúng) cho Bộ xử lý ứng dụng bên ngoài ngữ cảnh của TEE. Việc nâng cấp các thiết bị phát hành trên Android phiên bản 9 trở xuống không được miễn trừ C-2-7.
[C-2-8] PHẢI have a secure handling Pipe that for an unmanaged system or kernelger failed (Không cho phép dữ liệu được chèn trực tiếp vào để xác thực sai dưới dạng người dùng). Lưu ý: Nếu các phương thức triển khai thiết bị đã được ra mắt trên Android phiên bản 9 trở xuống và không thể đáp ứng yêu cầu C-2-8 through a system software update, they NOT beExempted from the request.
[C-SR-10] Are trì hoãn phát hiện không thể phát hiện sống động cho tất cả các phương thức sinh trắc học và phát hiện chú ý cho sinh trắc học khuôn mặt.
[C-2-9] PHẢI làm cho cảm biến sinh trắc học có sẵn cho các ứng dụng của bên thứ ba.
Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 3 (trước đây là Mạnh), thì các phương thức triển khai đó sẽ:
- [C-3-1] PHẢI đáp ứng tất cả các yêu cầu của Lớp 2 ở trên, ngoại trừ cho [C-1-7] and [C-1-8].
- [C-3-2] PHẢI triển khai kho khoá dựa trên phần cứng.
- [C-3-3] have a spoof and impostAccept rate not higher than 7%, with (1) a spoof and imposter Accept rate for level ATrình bày tấn công cụ (PAI)hỉnh thoảng không cao hơn 7%, and (2) a spoof and imposter conversion rate of Level B PAI Máy not higher than 20%, as
- [C-3-4] truyền thử thách người dùng cho các lần xác thực chính được đề nghị (e.g. PIN, mẫu, mật khẩu) một lần mỗi 72 giờ hoặc ít hơn.
- [C-3-5] NOT re-generate Authenticator ID for all Class 3ritas supported on device if any of they is re-enrolled.
- [C-3-6] Phải bật các khoá kho khoá dựa trên sinh trắc học cho các ứng dụng của bên thứ ba.
Nếu các hoạt động triển khai thiết bị chứa cảm biến vân tay dưới màn hình (UDFPS), thì chúng:
- [C-SR-11] Are trì hoãn phát triển
7.3.11. Cảm biến tư thế
Triển khai thiết bị:
- CÓ THỂ hỗ trợ cảm biến tạo dáng với 6 mức tự do.
Nếu quá trình triển khai thiết bị hỗ trợ cảm biến tư thế với 6 mức tự do, thì thiết bị đó:
- [C-1-1] PHẢI triển khai và báo cáo
TYPE_POSE_6DOF
cảm biến. - [C-1-2] PHẢI chính xác hơn riêng vectơ xoay.
7.3.12. Cảm biến góc bản lề
Nếu quá trình triển khai thiết bị hỗ trợ cảm biến góc bản lề, thì chúng:
- [C-1-1] PHẢI triển khai và báo cáo
TYPE_HINGLE_ANGLE
. - [C-1-2] PHẢI support at least haiSố đọc giữa 0 và 360 độ (bao gồm i.e bao gồm 0 và 360 độ).
- [C-1-3] PHẢI Return a wakeup
sensor for
getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE)
.
7.3.13. IEEE 802.1.15.4 [Chuyển sang 7.4.9]
7,4. Khả năng kết nối dữ liệu
7.4.1. Điện thoại
“Điện thoại” do các API Android sử dụng và tài liệu này đề cập cụ thể đến phần cứng liên quan đến việc thực hiện cuộc gọi thoại và gửi tin nhắn SMS qua mạng GSM hoặc CDMA. Tuy các lệnh gọi thoại này có thể được chuyển đổi gói hoặc không, nhưng các lệnh gọi này vẫn phục vụ mục đích của Android được xem là độc lập với mọi kết nối dữ liệu có thể được triển khai bằng cùng một mạng. Nói cách khác, chức năng và API của "điện thoại" Android dành riêng cho cuộc gọi thoại và SMS. Ví dụ: các quá trình triển khai thiết bị không thể thực hiện cuộc gọi hoặc gửi/nhận tin nhắn SMS không được coi là thiết bị điện thoại, bất kể thiết bị này có sử dụng mạng di động để kết nối dữ liệu hay không.
- Android CÓ THỂ được sử dụng trên các thiết bị không có phần cứng điện thoại. Điều đó nghĩa là Android tương thích với các thiết bị không phải là điện thoại.
Nếu quá trình triển khai thiết bị bao gồm cả điện thoại GSM hoặc CDMA, thì các quá trình triển khai đó:
- [C-1-1] PHẢI khai báo cờ tính năng
android.hardware.telephony
và cờ tính năng phụ khác theo công nghệ. - [C-1-2] PHẢI triển khai hỗ trợ đầy đủ cho API cho công nghệ đó.
- Cần cho phép tất cả các loại dịch vụ di động có sẵn (2G, 3G, 4G, 5G, v.v.)
trong các cuộc gọi khẩn cấp (bất kể loại mạng được đặt bởi
SetAllowedNetworkTypeBitmap()
).
Nếu quá trình triển khai thiết bị không bao gồm phần cứng điện thoại, thì các quá trình này sẽ:
- [C-2-1] PHẢI triển khai các API đầy đủ dưới dạng không hoạt động.
Nếu quá trình triển khai thiết bị hỗ trợ eUICC hoặc eSIM/SIM được nhúng, đồng thời có một cơ chế độc quyền để cung cấp chức năng eSIM cho nhà phát triển bên thứ ba, thì họ:
- [C-3-1] PHẢI khai báo cờ tính năng
android.hardware.telephony.euicc
.
Nếu quá trình triển khai thiết bị không đặt thuộc tính hệ thống ro.telephony.iwlan\_operation\_mode
thành "cũ", thì họ sẽ:
- [C-4-1] KHÔNG ĐƯỢC báo cáo ‘NETWORK_TYPE_IWLAN’ qua NetworkRegistrationInfo#getAccessNetworkCreation() khi NetworkRegistrationInfo#getTransportType() được báo cáo là ‘TRANSPORT_TYPE_WWAN’ cho cùng một đối tượng NetworkRegistrationInfo.
Nếu quá trình triển khai thiết bị hỗ trợ một Hệ thống con đa phương tiện IP (IMS) duy nhất đăng ký cho cả tính năng dịch vụ điện thoại đa phương tiện (MMTEL) và dịch vụ giao tiếp đa dạng (RCS) và dự kiến sẽ tuân thủ các yêu cầu của nhà mạng di động về việc sử dụng một gói đăng ký IIMS duy nhất cho tất cả lưu lượng tín hiệu IMS, họ:
- [C-5-1] PHẢI khai báo cờ tính năng
android.hardware.telephony.ims
và cung cấp cách triển khai đầy đủ ImsService API cho cả MMTEL và RCS User uỷ Exchange API. - [C-5-2] PHẢI kê khai tính năng
android.hardware.telephony.ims.singlereg
cờ và cung cấp phương thức triển khai đầy đủ của SipTransport API, GbaService API,ấp dấu thời gian chịu đựng bằng cách sử dụng IRadio 1.6 HAL, và cấp phép qua Auto Configuration Server (ACS) hoặc cơ chế cấp phép khác sử dụng IMS Configuration API.
Nếu các hoạt động triển khai thiết bị báo cáo tính năng android.hardware.telephony
, thì:
- [C-6-1]
SmsManager#sendTextMessage
vàSmsManager#sendMultipartTextMessage
PHẢI dẫn đến các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin văn bản.SmsManager#sendMultimediaMessage
vàSmsManager#downloadMultimediaMessage
PHẢI đưa ra các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin đa phương tiện. - [C-6-2] Ứng dụng do
android.provider.Telephony.Sms#getDefaultSmsPackage
PHẢI sử dụng các API SmsManager khi gửi và nhận tin nhắn SMS và MMS. Việc triển khai tham chiếu AOSP (Dự án nguồn mở Android) trong các gói/ứng dụng/Nhắn tin đáp ứng yêu cầu này. - [C-6-3] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI hỗ trợ việc nhập các mã trình quay số tuỳ ý có định dạng là*#*#CODE#*#*
và kích hoạt thông báo truyền tinTelephonyManager#ACTION_SECRET_CODE
tương ứng. - [C-6-4] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI sử dụngVoicemailContract.Voicemails#TRANSCRIPTION
để hiển thị bản chép lời thư thoại kèm theo hình ảnh cho người dùng nếu ứng dụng đó hỗ trợ bản chép lời thư thoại kèm theo hình ảnh. - [C-6-5]{4} Mức độ danh sách cho tất cả SubscriptionInfo with tương đương
group UUIDs
as a single subscription in all user-visible}s that display and control SIM card information. Ví dụ về các thành phần như vậy bao gồm giao diện cài đặt phù hợp với
Settings#ACTION_MANAGE_ALL_SIM_PROFILES_SETTINGS
hoặcEuiccManager#ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS
. - [C-6-6] NOT display or allow control of any SubscriptionInfo with a non-null group UUID and opportunistic bit in any user-visible tiềms that allow configuration or control of SIM card settings.
Nếu các hoạt động triển khai thiết bị báo cáo tính năng android.hardware.telephony
và cung cấp thanh trạng thái hệ thống, thì:
- [C-7-1] PHẢI chọn a agent active subscription for a given group UUID to display to the user in anyCách cung cấp thông tin trạng thái SIM. Ví dụ về các thành phần như vậy bao gồm biểu tượng tín hiệu di động trên thanh trạng thái hoặc thẻ thông tin cài đặt nhanh.
- [C-SR-1] It is Internet REVIEW that the agent subscription is chosen to be the active data subscription trừ phi thiết bị is in a voice call, trong đó is
Nếu các hoạt động triển khai thiết bị báo cáo tính năng android.hardware.telephony
, thì:
- [C-6-7]{4} be CÓ khả năng mở và đồng thời sử dụng số lượng kênh logic tối đa (tổng cộng 20) cho mỗi UICC per ETSI TS 102 221.
- [C-6-8] KHÔNG áp dụng bất kỳ hành vi nào sau đây đến các ứng dụng nhà mạng đang hoạt động (as chỉ định bởi
TelephonyManager#getCarrierServicePackageName
) tự động hoặc không có xác nhận người dùng rõ ràng:- Thu hồi hoặc giới hạn quyền truy cập mạng
- Thu hồi quyền
- Hạn chế thực thi ứng dụng ở nền trước hoặc ở nền sau ngoài các tính năng quản lý nguồn hiện có trong AOSP (Dự án nguồn mở Android)
- Tắt hoặc gỡ cài đặt ứng dụng
Nếu các hoạt động triển khai thiết bị báo cáo tính năng android.hardware.telephony
và tất cả các gói thuê bao đang hoạt động, các gói thuê bao không cơ hội dùng chung một mã nhận dạng duy nhất (UUID) nhóm sẽ bị vô hiệu hoá, bị xoá về mặt vật lý khỏi thiết bị hoặc được đánh dấu là có cơ hội, thì thiết bị:
- [C-8-1] PHẢI tự động vô hiệu hoá tất cả các gói thuê bao còn lại đang hoạt động opportunistic trong cùng một nhóm.
Nếu các quá trình triển khai thiết bị bao gồm điện thoại GSM nhưng không bao gồm điện thoại CDMA, thì các quá trình triển khai đó:
- [C-9-1] KHÔNG ĐƯỢC khai báo
PackageManager#FEATURE_TELEPHONY_CDMA
. - [C-9-2] PHẢI throw an
IllegalArgumentException
possible to set any 3GPP2 network types in prefer or allowed network type bitmasks. - [C-9-3] PHẢI trả về một chuỗi rỗng từ
TelephonyManager#getMeid
.
Nếu các phương thức triển khai thiết bị hỗ trợ eUICC bằng nhiều cổng và cấu hình, thì các thiết bị đó:
- [C-10-1] PHẢI khai báo cờ tính năng
android.hardware.telephony.euicc.mep
.
7.4.1.1. Khả năng tương thích với tính năng chặn số
Nếu quá trình triển khai thiết bị báo cáo tính năng android.hardware.telephony.calling
, thì các quy trình triển khai trên thiết bị sẽ:
- [C-1-1] PHẢI bao gồm tính năng hỗ trợ chặn số
- [C-1-2] PHẢI toàn bộ triển khai
BlockedNumberContract
và API tương ứng như được mô tả trong tài liệu SDK. [C-1-3] PHẢI chặn tất cả cuộc gọi và tin nhắn từ một số điện thoại trong 'BlockedNumberProvider' mà không cần tương tác với ứng dụng. Trường hợp ngoại lệ duy nhất là khi tính năng chặn số tạm thời được gỡ bỏ như mô tả trong tài liệu SDK.
[C-1-4] NOT write to the platform call log provider for a blocked call and PHẢI filter calls with
BLOCKED_TYPE
out of the default call log view in the pre-installed Dialer app.[C-1-5] PHẢI NOT write to the Telephony provider for a blocked message.
[C-1-6] PHẢI triển khai giao diện người dùng quản lý số bị chặn, được mở bằng ý định được phương thức
TelecomManager.createManageBlockedNumbersIntent()
trả về.[C-1-7] KHÔNG PHẢI cho phép người dùng phụ xem hoặc chỉnh sửa các số bị chặn trên thiết bị dưới dạng nền tảng Android giả định người dùng chính có toàn quyền kiểm soát các dịch vụ điện thoại, một phiên bản duy nhất, trên thiết bị. Tất cả giao diện người dùng liên quan đến tính năng chặn PHẢI được ẩn cho người dùng phụ và danh sách bị chặn PHẢI vẫn được tuân thủ.
Cần di chuyển các số bị chặn vào nhà cung cấp khi thiết bị cập nhật lên Android 7.0.
nên cung cấp khả năng tương tác của người dùng để hiển thị các cuộc gọi bị chặn trong ứng dụng trình quay số được cài đặt sẵn.
7.4.1.2. API viễn thông
Nếu quá trình triển khai thiết bị báo cáo android.hardware.telephony.calling
, họ sẽ:
- [C-1-1] PHẢI hỗ trợ các API
ConnectionService
được mô tả trong SDK. - [C-1-2] NOT display a new Chế call and provide usertóm tắt để
chấp nhận hoặc từ chối cuộc gọi đến khi người dùng là trên một cuộc gọi đang diễn ra
mà được thực hiện bởi một ứng dụng bên thứ ba mà không hỗ trợ tính năng giữ
được chỉ định qua
CAPABILITY_SUPPORT_HOLD
. - [C-1-3] PHẢI có ứng dụng triển khai InCallService.
[C-SR-1] Are trì hoãn lại để thông báo cho người dùng biết, họ sẽ trả lời một cuộc gọi đến sẽ bỏ một cuộc gọi đang diễn ra.
Việc triển khai AOSP đáp ứng các yêu cầu này bằng một thông báo quan trọng cho người dùng biết rằng việc trả lời một cuộc gọi đến sẽ khiến cuộc gọi khác bị ngắt.
[C-SR-2] AreĐể các nhà phát triển sử dụng trước các ứng dụng quay số mặc định hiển thị một mục nhập nhật ký cuộc gọi và tên của ứng dụng bên thứ ba trong nhật ký cuộc gọi của nó khi ứng dụng bên thứ ba đặt các
EXTRA_LOG_SELF_MANAGED_CALLS
thêm khoá trênPhoneAccount
đếntrue
.[C-SR-3] AreĐể nhà phát triển sử dụng các sự kiện âm thanh có tên
KEYCODE_MEDIA_PLAY_PAUSE
andKEYCODE_HEADSETHOOK
events for theandroid.telecom
APIs as below:- Gọi
Connection.onDisconnect()
khi phát hiện thấy thao tác nhấn nhanh sự kiện chính trong một lệnh gọi đang diễn ra. - Gọi
Connection.onAnswer()
khi phát hiện thấy thao tác nhấn nhanh sự kiện chính trong cuộc gọi đến. - Gọi
Connection.onReject()
khi phát hiện thấy thao tác nhấn và giữ sự kiện chính trong cuộc gọi đến. - Bật/tắt trạng thái tắt tiếng của
CallAudioState
.
- Gọi
7.4.1.3. Giảm tải dữ liệu di động NAT-T
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ giảm tải duy trì kết nối mạng di động.
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ giảm tải cho tính năng giữ kết nối mạng di động và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các ứng dụng đó:
- [C-1-1] PHẢI hỗ trợ SocketKeepAlive API.
- [C-1-2] PHẢI hỗ trợ ít nhất một khe giữ kết nối đồng thời qua mạng di động.
- [C-1-3] PHẢI support as Quảng cáo đồng thời giữ lại các khe cắm điện thoại di động as are được hỗ trợ bởi the Cellular Radio HAL.
- [C-SR-1] AreĐể đề xuất hỗ trợ ít nhất ba màn hình di động keepalive slots per radioInstance.
Nếu các quá trình triển khai thiết bị không hỗ trợ tính năng giảm tải duy trì kết nối mạng di động, thì các thiết bị đó sẽ:
- [C-2-1] PHẢI trả về ERROR_UNSUPPORTED.
7.4.2. IEEE 802.11 (Wi-Fi)
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ cho một hoặc nhiều biểu mẫu 802.11.
Nếu các hoạt động triển khai thiết bị bao gồm dịch vụ hỗ trợ 802.11 và hiển thị chức năng này cho một ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI triển khai API Android tương ứng.
- [C-1-2] PHẢI báo cáo cờ tính năng phần cứng
android.hardware.wifi
. - [C-1-3] PHẢI triển khai multicast API như mô tả trong tài liệu SDK.
- [C-1-4] PHẢI support multicast DNS (mDNS) and PHẢI NOT filter mDNS nỗ lực gói
(224.0.0.251) at bất kỳ thời gian nào của hoạt động bao gồm:
- Ngay cả khi màn hình không ở trạng thái hoạt động.
- Đối với các hoạt động triển khai thiết bị Android TV, ngay cả khi ở trạng thái nguồn ở chế độ chờ.
- [C-1-5] KHÔNG ĐƯỢC coi lệnh gọi phương thức API
WifiManager.enableNetwork()
là chỉ báo đầy đủ để chuyển đổiNetwork
hiện đang hoạt động được dùng theo mặc định cho lưu lượng truy cập ứng dụng và được trả về bằng các phương thức APIConnectivityManager
nhưgetActiveNetwork
vàregisterDefaultNetworkCallback
. Nói cách khác, họ CÓ THỂ tắt quyền truy cập Internet do bất kỳ nhà cung cấp mạng nào khác cung cấp (ví dụ: dữ liệu di động) nếu xác thực thành công rằng mạng Wi-Fi đang cung cấp quyền truy cập Internet. - [C-1-6] Are trì hoãn 1 to, when the
ConnectivityManager.reportNetworkConnectivity()
API method is called, re-app the Internet access on theNetwork
and, #Network
- [C-1-7] truyền ngẫu nhiên địa chỉ MAC nguồn và số trình tự của thăm dò yêu cầu khung, một lần ở đầu mỗi quét, trong khi STA là ngắt kết nối.
- [C-1-8] PHẢI sử dụng một địa chỉ MAC nhất quán (nên NOT ngẫu nhiên địa chỉ MAC nửa chừng thông qua một quét).
- [C-1-9]{4} Văn thử nghiệm số trình tự yêu cầu bước vào bình thường (tuần tự) giữa các yêu cầu thăm dò trong một lần quét.
- [C-1-10] truyền ngẫu nhiên số thứ tự yêu cầu thăm dò giữa các yêu cầu thăm dò cuối cùng của một lần quét và yêu cầu thăm dò đầu tiên của lần quét tiếp theo.
- [C-SR-1] Are trì hoãn lại để phát ngẫu nhiên địa chỉ MAC đã được sử dụng cho tất cả các giao tiếp STA đến một điểm truy cập (AP) trong khi liên kết và kết hợp.
- Thiết bị PHẢI sử dụng địa chỉ MAC ngẫu nhiên khác nhau cho mỗi SSID (FQDN cho Passpoint) mà thiết bị giao tiếp với.
- The device PHẢI cung cấp cho người dùng một lựa chọn để kiểm soát việc ngẫu nhiên hoá mỗi SSID (FQDN for Passpoint) với các lựa chọn không ngẫu nhiên và ngẫu nhiên, đồng thời PHẢI đặt chế độ mặc định cho các cấu hình Wi-Fi mới được chọn ngẫu nhiên.
- [C-SR-2] Are trì hoãn 1 để sử dụng một BSSID ngẫu nhiên cho bất kỳ AP mà họ tạo ra.
- Địa chỉ MAC PHẢI được chọn ngẫu nhiên và bền vững theo mỗi SSID mà AP sử dụng.
- THIẾT BỊ CÓ THỂ cung cấp cho người dùng tuỳ chọn tắt tính năng này. Nếu bạn cung cấp một tuỳ chọn như vậy, thì tính năng sắp xếp ngẫu nhiên PHẢI được bật theo mặc định.
Nếu các phương thức triển khai thiết bị có hỗ trợ chế độ tiết kiệm điện Wi-Fi như đã xác định trong tiêu chuẩn IEEE 802.11, thì các thiết bị đó:
- nên tắt chế độ tiết kiệm năng lượng Wi-Fi bất cứ khi nào ứng dụng thu thập được
WIFI_MODE_FULL_HIGH_PERF
khoá hoặc khoáWIFI_MODE_FULL_LOW_LATENCY
quaWifiManager.createWifiLock()
vàWifiManager.WifiLock.acquire()
API và khoá đang hoạt động. - [C-3-2] The; round-trip latencyGiai đoạn giữa thiết bị và một điểm truy cập trong khi thiết bị đang ở chế độ Wi-Fi Low Latency Lock (
WIFI_MODE_FULL_LOW_LATENCY
) phải nhỏ hơn so với độ trễ khi dùng chế độ Wi-Fi High Perf Lock (WIFI_MODE_FULL_HIGH_PERF
). - [C-SR-3] Are trì hoãn phát triển để giảm thiểu Wi-Fi phiên bản trễ độ trễ khi bất kỳ mức độ trễ thấp (
WIFI_MODE_FULL_LOW_LATENCY
) được thu thập và có hiệu lực.
Nếu các quá trình triển khai thiết bị hỗ trợ Wi-Fi và sử dụng Wi-Fi để quét vị trí, thì các thiết bị đó:
- [C-2-1] PHẢI cung cấp một thuộc tính tương tác của người dùng để bật/tắt giá trị đọc thông qua phương thức API
WifiManager.isScanAlwaysAvailable
.
7.4.2.1. Wi-Fi Direct
Triển khai thiết bị:
- PHẢI bao gồm tính năng hỗ trợ Wi-Fi Direct (Wi-Fi ngang hàng).
Nếu các quá trình triển khai thiết bị có hỗ trợ Wi-Fi Direct, thì các quá trình triển khai đó:
- [C-1-1] PHẢI triển khai compatible Android API như mô tả trong tài liệu SDK.
- [C-1-2] PHẢI báo cáo tính năng phần cứng
android.hardware.wifi.direct
. - [C-1-3] PHẢI hỗ trợ hoạt động Wi-Fi thông thường.
- [C-1-4] PHẢI hỗ trợ đồng thời các hoạt động Wi-Fi và Wi-Fi Direct.
- [C-SR-1] Are Internet Sử dụng để ngẫu nhiên địa chỉ MAC nguồn cho tất cả các kết nối Wi-Fi Direct mới được tạo.
7.4.2.2. Thiết lập đường liên kết trực tiếp qua đường hầm Wi-Fi
Triển khai thiết bị:
- NÊN include support for Wi-Fi Tunneled Direct Link Setup (TDLS) as mô tả trong Tài liệu SDK Android.
Nếu quá trình triển khai thiết bị có hỗ trợ TDLS và TDLS bằng API WiFiManager, thì chúng:
- [C-1-1] PHẢI khai báo khả năng hỗ trợ TDLS đến
WifiManager.isTdlsSupported
. - NÊN sử dụng TDLS chỉ khi có thể VÀ có lợi.
- NÊN có một số phương pháp phỏng đoán và KHÔNG sử dụng TDLS khi hiệu suất của nó có thể kém hơn so với khi đi qua điểm truy cập Wi-Fi.
7.4.2.3. Nhận biết Wi-Fi
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ Nhận biết Wi-Fi.
Nếu các quá trình triển khai thiết bị có hỗ trợ tính năng Nhận biết Wi-Fi và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các hoạt động đó:
- [C-1-1] PHẢI triển khai các API
WifiAwareManager
như mô tả trong tài liệu SDK. - [C-1-2] PHẢI khai báo cờ tính năng
android.hardware.wifi.aware
. - [C-1-3] PHẢI hỗ trợ đồng thời các hoạt động nhận biết Wi-Fi và Wi-Fi.
- [C-1-4] truyền ngẫu nhiên địa chỉ giao diện quản lý Wi-Fi Aware tại khoảng thời gian không dài hơn 30 phút và bất cứ khi nào Wi-Fi Aware được bật trừ khi một hoạt động nhận biết phạm vi đang diễn ra hoặc một danh sách dữ liệu nhận biết đang hoạt động (ngẫu nhiên không được dự kiến cho long as the data-path is active).
Nếu quá trình triển khai thiết bị có hỗ trợ tính năng Nhận biết Wi-Fi và Vị trí Wi-Fi như mô tả trong Mục 7.4.2.5 và hiển thị những chức năng này cho các ứng dụng bên thứ ba, thì các chức năng này sẽ:
- [C-2-1] PHẢI triển khai các API khám phá vị trí: setRangingEnabled, setMinDistanceMm, setMaxDistanceMm, và onServiceDiscoveredhồi khoảng.
7.4.2.4. Điểm truy cập Wi-Fi
Nếu các quá trình triển khai thiết bị có hỗ trợ 802.11 (Wi-Fi), các thiết bị đó:
- [C-1-1] PHẢI include hỗ trợ cho Wi-Fi Passpoint.
- [C-1-2] PHẢI triển khai các API
WifiManager
liên quan đến Passpoint như mô tả trong tài liệu về SDK. - [C-1-3] NOT support IEEE 802.11u standard, specific relevant to Network Discovery and Selection, chẳng hạn như Generic Advertising Service (GAS) and Access Network Query Protocol (ANQP).
- [C-1-4] PHẢI khai báo cờ tính năng
android.hardware.wifi.passpoint
. - [C-1-5] PHẢI theo dõi AOSP triển khai để khám phá, khớp và liên kết với mạng Passpoint.
- [C-1-6] PHẢI support at least the after the after device licenses of deviceLicensing Passpoints as Definition in the Wi-Fi Alliance Passpoint R2: EAP-TTLS mẻ và SOAP-XML.
- [C-1-7] PHẢI xử lý chứng chỉ máy chủ AAA như mô tả trong thông số kỹ thuật của Điểm phát sóng 2.0 R3.
- [C-1-8] PHẢI hỗ trợ người dùng kiểm soát việc cấp phép thông qua bộ chọn Wi-Fi.
- [C-1-9] PHẢI giữ cho cấu hình Passpoint luôn ổn định qua các lần khởi động lại.
- [C-SR-1] Are trìI ĐỀ XUẤT bổ sung để hỗ trợ các điều khoản và điều kiện chấp nhận tính năng.
- [C-SR-2] Giới hạn định dạng khuyến nghị để hỗ trợ tính năng Thông tin về địa điểm.
Nếu bạn cung cấp nút chuyển chế độ kiểm soát người dùng để tắt Passpoint chung, thì các cách triển khai:
- [C-3-1] PHẢI bật Passpoint theo mặc định.
7.4.2.5. Vị trí Wi-Fi (Thời gian trọn vòng sử dụng Wi-Fi - RTT)
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ Vị trí Wi-Fi.
Nếu các hoạt động triển khai thiết bị bao gồm tính năng hỗ trợ Vị trí Wi-Fi và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các hoạt động đó:
- [C-1-1] PHẢI triển khai các API
WifiRttManager
như mô tả trong tài liệu SDK. - [C-1-2] PHẢI khai báo cờ tính năng
android.hardware.wifi.rtt
. - [C-1-3] PHẢI ngẫu nhiên địa chỉ MAC nguồn cho mỗi gói RTT được thực thi trong khi giao diện Wi-Fi mà RTT đang được thực thi không được liên kết với một Điểm truy cập.
- [C-1-4]{4} beSử dụng chính xác trong phạm vi 2 mét ở băng thông 80 MHz tại phân vị thứ 68 (như tính toán bằng hàm phân phối tích luỹ).
- [C-SR-1] Are trì kỹ lưỡng hơn D.
7.4.2.6. Giảm tải tính năng duy trì kết nối Wi-Fi
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ giảm tải cho duy trì kết nối Wi-Fi.
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ giảm tải Wi-Fi duy trì hoạt động và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các phương thức đó:
- [C-1-1] PHẢI hỗ trợ API SocketKeepAlive.
- [C-1-2] PHẢI hỗ trợ ít nhất ba khe giữ kết nối đồng thời qua Wi-Fi.
Nếu các hoạt động triển khai thiết bị không bao gồm tính năng hỗ trợ giảm tải Wi-Fi duy trì hoạt động, các thiết bị đó sẽ:
- [C-2-1] PHẢI trả về
ERROR_UNSUPPORTED
.
7.4.2.7. Wi-Fi Easy Connect (Giao thức cấp phép thiết bị)
Triển khai thiết bị:
- PHẢI bao gồm tính năng hỗ trợ Wi-Fi Easy Connect (DPP).
Nếu các hoạt động triển khai thiết bị có hỗ trợ Wi-Fi Easy Connect và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI có phương thức WifiManager#isEasyConnectSupported()
trả về
true
.
7.4.2.8. Xác thực chứng chỉ máy chủ Wi-Fi doanh nghiệp
Nếu chứng chỉ máy chủ Wi-Fi không được xác thực hoặc tên miền của máy chủ Wi-Fi chưa được đặt, thì các phương thức triển khai thiết bị:
- [C-SR-1] AreĐể nhà phát triển đề xuất không cung cấp cho người dùng một lựa chọn để thêm Enterprise Wi-Fi network theo cách thủ công, trong ứng dụng Settings (Cài đặt),
7.4.2.9. Tin cậy khi sử dụng lần đầu (TOFU)
Nếu quá trình triển khai thiết bị hỗ trợ tính năng Tin cậy lần sử dụng đầu tiên (TOFU) và cho phép người dùng xác định cấu hình WPA/WPA2/WPA3-Enterprise, thì họ:
- [C-4-1] PHẢI cung cấp cho người dùng một tuỳ chọn để chọn sử dụng TOFU.
7.4.3. Bluetooth
Nếu quá trình triển khai thiết bị hỗ trợ cấu hình Âm thanh Bluetooth, thì các quá trình triển khai thiết bị đó sẽ:
- NÊN support Advanced Audio Codecs and Bluetooth Audio Codecs (e.g. LDAC) with A2DP.
Nếu quá trình triển khai thiết bị hỗ trợ HFP, A2DP và AVRCP, thì các thiết bị đó:
- PHẢI hỗ trợ tổng cộng ít nhất 5 thiết bị.
Nếu các hoạt động triển khai thiết bị khai báo tính năng android.hardware.vr.high_performance
, thì chúng:
- [C-1-1] PHẢI hỗ trợ Bluetooth 4.2 và Bluetooth LE Data dài mở rộng.
Android có hỗ trợ Bluetooth và Bluetooth năng lượng thấp.
Nếu các phương thức triển khai thiết bị có hỗ trợ Bluetooth và Bluetooth năng lượng thấp, thì các phương thức triển khai đó:
- [C-2-1] PHẢI khai báo các tính năng nền tảng có liên quan (
android.hardware.bluetooth
vàandroid.hardware.bluetooth_le
tương ứng) và triển khai các API nền tảng. - nên triển khai các cấu hình Bluetooth có liên quan như A2DP, AVRCP, OBEX, HFP, v.v. khi thích hợp cho thiết bị.
Nếu quá trình triển khai thiết bị có hỗ trợ Bluetooth năng lượng thấp (BLE), thì các thiết bị đó sẽ:
- [C-3-1] PHẢI khai báo tính năng phần cứng
android.hardware.bluetooth_le
. - [C-3-2] PHẢI enable the GATT (generic attribute profile) based Bluetooth APIs as description in the SDK resource and android.bluetooth.
- [C-3-3] PHẢI báo cáo giá trị đúng cho
BluetoothAdapter.isOffloadedFilteringSupported()
để cho biết liệu logic lọc cho các lớp API scanFilter có được triển khai hay không. - [C-3-4] PHẢI báo cáo giá trị đúng cho
BluetoothAdapter.isMultipleAdvertisementSupported()
để cho biết liệu Low Energy Advertising có được hỗ trợ hay không. - [C-3-5] PHẢI triển khai a Resolvable Private Address (RPA) timeout noSử dụng hơn 15 phút và xoay địa chỉ thời gian chờ để bảo vệ quyền riêng tư của người dùng khi thiết bị đang chủ động sử dụng BLE cho quét hoặc quảng cáo. Để ngăn chặn các cuộc tấn công thời gian, khoảng thời gian chờ cũng phải được sắp xếp ngẫu nhiên trong khoảng từ 5 đến 15 phút.
- nên hỗ trợ giảm tải logic lọc cho chipset bluetooth khi triển khai ScanFilter API.
- NÊN hỗ trợ giảm tải quá trình quét theo lô sang chipset Bluetooth.
- NÊN hỗ trợ nhiều quảng cáo có ít nhất 4 vị trí.
Nếu quá trình triển khai thiết bị hỗ trợ Bluetooth LE và sử dụng Bluetooth LE để quét vị trí, thì các thiết bị đó:
- [C-4-1] PHẢI cung cấp khả năng tương tác của người dùng để bật/tắt giá trị đọc thông qua API Hệ thống
BluetoothAdapter.isBleScanAlwaysAvailable()
.
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ cho Bluetooth LE và Cấu hình thiết bị trợ thính, như mô tả trong phần Hearing Aid Audio Support Using Bluetooth LE (Hỗ trợ thiết bị trợ thính bằng Bluetooth LE), thì các thiết bị đó sẽ:
- [C-5-1] PHẢI Return
true
for BluetoothAdapter.getProfileProxy(context, Listen, BluetoothProfile.HEARING_AID).
Nếu các quá trình triển khai thiết bị có hỗ trợ Bluetooth hoặc Bluetooth năng lượng thấp, thì các thiết bị đó:
- [C-6-1] PHẢI hạn chế quyền truy cập vào bất kỳ siêu dữ liệu Bluetooth nào (chẳng hạn như quét kết quả) mà có thể được dùng để lấy vị trí của thiết bị, trừ khi ứng dụng yêu cầu thành công vượt qua kiểm tra quyền
android.permission.ACCESS_FINE_LOCATION
dựa trên trạng thái nền trước/nền trước hiện tại.
Nếu quá trình triển khai thiết bị có hỗ trợ Bluetooth hoặc Bluetooth năng lượng thấp và tệp kê khai ứng dụng không bao gồm nội dung khai báo của nhà phát triển nêu rõ rằng chúng không lấy thông tin vị trí qua Bluetooth, thì chúng:
- [C-6-2] PHẢI cổng truy cập Bluetooth phía sau
android.permission.ACCESS_FINE_LOCATION
.
Nếu các hoạt động triển khai thiết bị trả về true
cho API BluetoothAdapter.isLeAudioSupported()
, thì chúng:
- [C-7-1] PHẢI hỗ trợ máy khách unicast.
- [C-7-2] PHẢI hỗ trợ 2M PHY.
- [C-7-3] PHẢI hỗ trợ Quảng cáo mở rộng LE.
- [C-7-4] PHẢI hỗ trợ ít nhất 2 kết nối CIS trong một CIG.
- [C-7-5]{4} enable BAP unicast client, CSIP set coordinator, MCP server, VCP console, CCP server đồng thời.
- [C-SR-1] Are Để bật chế độ máy khách HAP unicast, bạn phải bật chế độ này.
Nếu các hoạt động triển khai thiết bị trả về true
cho API BluetoothAdapter.isLeAudioBroadcastSourceSupported()
, thì chúng:
- [C-8-1] PHẢI hỗ trợ ít nhất 2 liên kết BIS trong một BIG.
- [C-8-2]{4} enable BAP broadcast source, BAP broadcast assistant đồng thời.
- [C-8-3] PHẢI hỗ trợ Quảng cáo định kỳ LE.
Nếu các hoạt động triển khai thiết bị trả về true
cho API BluetoothAdapter.isLeAudioBroadcastAssistantSupported()
, thì chúng:
- [C-9-1] PHẢI hỗ trợ PAST (Định kỳ chuyển dữ liệu đồng bộ hoá quảng cáo).
- [C-9-2] PHẢI hỗ trợ Quảng cáo định kỳ LE.
Nếu các hoạt động triển khai thiết bị khai báo FEATURE_BLUETOOTH_LE
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-10-1]{4} have RSSI experiments beTrong +/-9dB for 95% of the Measurements at 1mdistance from a reference device truyền at
ADVERTISE_TX_POWER_HIGH
in line of vòng xoáy môi trường. - [C-10-2] PHẢI include Rx/Tx adjustments toreduce per-channel deviations so that the experiments on từng of the 3 channels, on mỗi of the safetys (if multiple are used), areTrong +/-3dB of one another for 95% of the Measurements.
- [C-SR-2] Are trì hoãn 24 để đo lường và bù cho Rx offset to
đảm bảo trung vị BLE RSSI là -60dBm +/-10 dBm khoảng cách từ một thiết bị tham chiếu truyền tại
ADVERTISE_TX_POWER_HIGH
, trong đó các thiết bị được định hướng như vậy - [C-SR-3] AreĐể các ứng dụng được đề xuất đo lường và bù đắp cho Tx offset to
đảm bảo trung vị BLE RSSI là -60dBm +/-10 dB with a reference
device setting at 1m xoay, thông tin trong đó các thiết bị được định hướng như vậy
ADVERTISE_TX_POWER_HIGH
It is AndroidX NÊN theo dõi các bước thiết lập đo lường được chỉ định trong Sự hiện diện Hiệu chỉnh.
Nếu quá trình triển khai thiết bị có hỗ trợ Bluetooth phiên bản 5.0, thì chúng:
- [C-SR-4] Are Để cung cấp support cho:
- 2 TRIỆU CƠ BẢN
- Codec LE PHY
- Phần mở rộng về quảng cáo LE
- Quảng cáo định kỳ
- Ít nhất 10 nhóm quảng cáo
- Có ít nhất 8 kết nối đồng thời LE. Mỗi mối kết nối có thể đóng vai trò trong cấu trúc liên kết kết nối.
- Quyền riêng tư của lớp liên kết năng lượng thấp
- Quy mô "danh sách giải quyết" gồm ít nhất 8 mục nhập
7.4.4. Giao tiếp phạm vi gần
Triển khai thiết bị:
- Nên bao gồm một bộ thu phát và phần cứng liên quan cho Giao tiếp phạm vi gần (NFC).
- [C-0-1] PHẢI triển khai API
android.nfc.NdefMessage
vàandroid.nfc.NdefRecord
ngay cả khi chúng không bao gồm hỗ trợ cho NFC hoặc khai báo tính năngandroid.hardware.nfc
vì các lớp đại diện cho định dạng biểu diễn dữ liệu không phụ thuộc vào giao thức.
Nếu hoạt động triển khai thiết bị có bao gồm phần cứng NFC và dự định cung cấp phần cứng này cho các ứng dụng bên thứ ba, thì họ:
- [C-1-1] PHẢI báo cáo tính năng
android.hardware.nfc
từ phương thứcandroid.content.pm.PackageManager.hasSystemFeature()
. - PHẢI có khả năng đọc và ghi thông báo NDEF qua các tiêu chuẩn NFC sau đây:
- [C-1-2]{4} be compatibility of as an NFC Forum access/writer
(asdefined by the NFC Forum Technical specifications
NFC Drive-TS-DigitalProtocol-1.0) via the following NFC Standards:
- NfcA (ISO14443-3A)
- NfcB (ISO14443-3B)
- NfcF (JIS X 6319-4)
- IsoDep (ISO 14443-4)
- Các loại thẻ diễn đàn NFC 1, 2, 3, 4, 5 (được định nghĩa bởi Diễn đàn NFC)
[C-SR-1] Nói Dẫn Quảng Cáo để có khả năng đọc và ghi NDEF cũng như dữ liệu thô qua các tiêu chuẩn NFC sau. Lưu ý rằng trong khi các tiêu chuẩn NFC là nêu như tôi bật quảng cáo đề xuất, Định nghĩa về khả năng tương thích cho một phiên bản tương lai được lên kế hoạch để thay đổi những thành phần này thành PHẢI. Các tiêu chuẩn này là không bắt buộc trong phiên bản này nhưng sẽ bắt buộc trong các phiên bản sau này. Các thiết bị mới và hiện có chạy phiên bản Android này rất nên đáp ứng những yêu cầu này ngay bây giờ để có thể nâng cấp lên các bản phát hành nền tảng trong tương lai.
[C-1-13]{4} poll for all supported creatives while in NFC discovery mode.
NÊN be in NFC discovery mode while the device is with the screen active (Màn hình đang hoạt động và đã mở khoá màn hình khoá).
nên khả năng đọc mã vạch và URL (nếu được mã hoá) của các sản phẩm Thinfilm NFC Barcode.
Lưu ý rằng các đường liên kết công khai không có sẵn cho các thông số của Diễn đàn JIS, ISO và NFC được nêu ở trên.
Android có hỗ trợ chế độ Giả lập thẻ máy chủ NFC (HCE).
Nếu quá trình triển khai thiết bị bao gồm bộ vi mạch điều khiển NFC có khả năng HCE (dành cho NFC và/hoặc NfcB) và hỗ trợ định tuyến Mã ứng dụng (AID), thì chúng:
- [C-2-1] PHẢI báo cáo hằng số tính năng
android.hardware.nfc.hce
. - [C-2-2] PHẢI support NFC HCE APIs asdefined in the Android SDK.
Nếu hoạt động triển khai thiết bị bao gồm một bộ vi mạch điều khiển NFC có khả năng HCE cho NfcF và triển khai tính năng này cho các ứng dụng bên thứ ba, thì các cấu hình đó:
- [C-3-1] PHẢI báo cáo hằng số tính năng
android.hardware.nfc.hcef
. - [C-3-2] PHẢI triển khai NfcF Card Emulation API như đã xác định trong SDK Android.
Nếu các phương thức triển khai thiết bị có hỗ trợ NFC chung như mô tả trong phần này và hỗ trợ các công nghệ MIFARE (MIFARE Classic, MIFARE Ultralight, NDEF trên MIFARE Classic) trong vai trò người đọc/người ghi, chúng:
- [C-4-1] PHẢI triển khai các API Android tương ứng như được lập tài liệu bởi SDK Android.
- [C-4-2] PHẢI báo cáo tính năng
com.nxp.mifare
từ phương thứcandroid.content.pm.PackageManager.hasSystemFeature
(). Lưu ý rằng đây không phải là một tính năng tiêu chuẩn của Android và do đó không xuất hiện dưới dạng hằng số trong lớpandroid.content.pm.PackageManager
.
7.4.5. Giao thức và API kết nối mạng
7.4.5.1. Khả năng mạng tối thiểu
Triển khai thiết bị:
- [C-0-1] PHẢI include support for one or more forms of data network. Cụ thể, thiết bị triển khai PHẢI bao gồm hỗ trợ cho ít nhất một chuẩn dữ liệu có khả năng 200 Kbit/sec trở lên. Ví dụ về các công nghệ đáp ứng yêu cầu này bao gồm EDGE, HSPA, EV-DO, 802.11g, Ethernet và Bluetooth PAN.
- nên cũng bao gồm hỗ trợ cho ít nhất một tiêu chuẩn dữ liệu không dây phổ biến, chẳng hạn như 802.11 (Wi-Fi), khi một tiêu chuẩn mạng vật lý (chẳng hạn như Ethernet) là kết nối dữ liệu chính.
- CÓ THỂ triển khai nhiều hình thức kết nối dữ liệu.
7.4.5.2. IPv6
Triển khai thiết bị:
- [C-0-2] PHẢI include an IPv6 network stack and support IPv6
communication bằng cách sử dụng các API được quản lý, chẳng hạn như
java.net.Socket
vàjava.net.URLConnection
, cũng như các API gốc, chẳng hạn nhưAF_INET6
ổ cắm. - [C-0-3] PHẢI bật IPv6 theo mặc định.
- PHẢI đảm bảo giao tiếp IPv6 is as Trusted as IPv4, for example:
- [C-0-4] PHẢI duy trì kết nối IPv6 ở chế độ doze.
- [C-0-5] Rate-limiting PHẢI NOT khiến thiết bị mất kết nối IPv6 trên bất kỳ mạng nào tuân thủ IPv6 sử dụng thời gian tồn tại RA tối thiểu là 180 giây.
- PHẢI đảm bảo giao tiếp IPv6 is as Trusted as IPv4, for example:
- [C-0-6] PHẢI cung cấp thứ ba ứng dụng với kết nối IPv6 trực tiếp cho mạng khi được kết nối với mạng IPv6, mà không có bất kỳ dạng địa chỉ hoặc dịch cổng diễn ra cục bộ trên thiết bị. Cả hai API được quản lý như
Socket#getLocalAddress
hoặcSocket#getLocalPort
) và API NDK, chẳng hạn nhưgetsockname()
hoặcIPV6_PKTINFO
PHẢI trả về địa chỉ IP và cổng thực sự được dùng để gửi và nhận các gói trên mạng và hiển thị dưới dạng ip nguồn và cổng đến máy chủ internet (web).
Mức độ hỗ trợ IPv6 cần thiết phụ thuộc vào loại mạng, như thể hiện trong các yêu cầu sau đây.
Nếu quá trình triển khai thiết bị có hỗ trợ Wi-Fi, thì các thiết bị đó:
- [C-1-1] PHẢI hỗ trợ thao tác Dual-stack và IPv6-only trên Wi-Fi.
Nếu quá trình triển khai thiết bị có hỗ trợ Ethernet, thì các quá trình triển khai thiết bị đó:
- [C-2-1] PHẢI support Dual-stack and IPv6-only Operations on Ethernet.
Nếu quá trình triển khai thiết bị có hỗ trợ Dữ liệu di động, thì các thiết bị đó:
- [C-3-1] PHẢI support IPv6 operations (IPv6-only and quarters Dual-stack) on cellular.
Nếu quá trình triển khai thiết bị hỗ trợ nhiều loại mạng (ví dụ: Wi-Fi và dữ liệu di động), chúng:
- [C-4-1]{4} đồng thời đáp ứng các yêu cầu trên trên mỗi mạng khi thiết bị đồng thời được kết nối với nhiều hơn một loại mạng.
7.4.5.3. Cổng cố định
Cổng cố định là một mạng yêu cầu đăng nhập để có được quyền truy cập Internet.
Nếu các hoạt động triển khai thiết bị cung cấp phương thức triển khai android.webkit.Webview API
đầy đủ, thì chúng:
- [C-1-1] PHẢI cung cấp một ứng dụng cổng bị khóa để xử lý ý định
ACTION_CAPTIVE_PORTAL_SIGN_IN
và hiển thị trang đăng nhập cổng bị khóa, bằng cách gửi ý định đó, trên gọi đến System APIConnectivityManager#startCaptivePortalApp(Network, Bundle)
. - [C-1-2]{4} perform of suspended ofNgành cổng và hỗ trợ đăng nhập thông qua ứng dụng cổng bị khóa khi thiết bị được kết nối với bất kỳ loại mạng nào, bao gồm di động/mạng di động, Wi-Fi, Ethernet hoặc Bluetooth.
- [C-1-3] PHẢI hỗ trợ đăng nhập vào cổng bị khóa bằng cách sử dụng xóa văn bản DNS khi thiết bị được định cấu hình để sử dụng chế độ nghiêm ngặt DNS riêng.
- [C-1-4] NOT use encrypted DNS as per the SDK documents for
android.net.LinkProperties.getPrivateDnsServerName
andandroid.net.LinkProperties.isPrivateDnsActive
for all network traffic that is not clear DNS with the captive portal. - [C-1-5] PHẢI đảm bảo rằng, trong khi người dùng đang đăng nhập vào một cổng bị khóa, mặc định mạng được sử dụng bởi các ứng dụng (như được trả về bởi
ConnectivityManager.getActiveNetwork
,ConnectivityManager.registerDefaultNetworkCallback
, and sử dụng bởi mặc định bởi các API mạng Java như java.net.Socket, và các API gốc như connect()) là bất kỳ mạng có sẵn nào khác cung cấp truy cập internet, nếu có.
7.4.6. Cài đặt cách đồng bộ hoá
Triển khai thiết bị:
- [C-0-1] PHẢI have the master auto-sync setting on by default để
phương thức
getMasterSyncAutomatically()
trả về “true”.
7.4.7. Tiết kiệm dữ liệu
Nếu quá trình triển khai thiết bị có bao gồm kết nối có đo lượng dữ liệu, thì các quá trình đó sẽ:
- [C-SR-1] Để cung cấp chế độ tiết kiệm dữ liệu, nhà phát triển được đề xuất DUY NHẤT.
Nếu các hoạt động triển khai thiết bị cung cấp chế độ tiết kiệm dữ liệu, chúng sẽ:
- [C-1-1] PHẢI support all the APIs in the
ConnectivityManager
class as description in the SDK documents
Nếu các hoạt động triển khai thiết bị không cung cấp chế độ tiết kiệm dữ liệu, chúng sẽ:
- [C-2-1] PHẢI trả về giá trị
RESTRICT_BACKGROUND_STATUS_DISABLED
choConnectivityManager.getRestrictBackgroundStatus()
- [C-2-2] NOT broadcast
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED
.
7.4.8. Phần tử bảo mật
Nếu các hoạt động triển khai thiết bị hỗ trợ các phần tử bảo mật có khả năng Open Mobile API và cung cấp các phần tử đó cho các ứng dụng bên thứ ba, thì chúng:
[C-1-1] PHẢI liệt kê các phần tử bảo mật có sẵn thông qua API
android.se.omapi.SEService.getReaders()
.[C-1-2] PHẢI kê khai đúng tính năng gắn cờ qua
android.hardware.se.omapi.uicc
cho thiết bị có các phần tử bảo mật dựa trên UICC,android.hardware.se.omapi.ese
cho thiết bị có các phần tử bảo mật dựa trên eSE vàandroid.hardware.se.omapi.sd
cho thiết bị có các phần tử bảo mật dựa trên SD.
7.4.9. UWB (băng tần siêu rộng)
Nếu các hoạt động triển khai thiết bị bao gồm tính năng hỗ trợ 802.1.15.4 và hiển thị chức năng này cho một ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI triển khai API Android tương ứng trong android.uwb.
- [C-1-2] PHẢI báo cáo cờ tính năng phần cứng android.hardware.uwb.
- [C-1-3] PHẢI support tất cả các hồ sơ UWB có liên quan được xác định trong cách triển khai Android.
- [C-1-4] PHẢI cung cấp khả năng tương tác của người dùng để cho phép người dùng bật/tắt trạng thái bật/tắt vô tuyến UWB.
- [C-1-5] PHẢI thực thi rằng các ứng dụng đó bằng cách sử dụng UWB radio keep UWB_RANGING permission (trong chó người ngật ngư nhóm quyền).
[C-SR-1] AreĐể các danh sách thực thi chính sách được xác định bởi các tổ chức tiêu chuẩn, bao gồm cả FIRA, CCC and CSA.
- [C-1-6] PHẢI đảm bảo khoảng cách đo lường là trong khoảng +/-15 cm for 95% of the metrics in the line of Cloud environment at 1m xoay in a non-reflective chamber.
- [C-1-7] PHẢI đảm bảo rằng trung vị của khoảng cách đo lường tại 1m từ thiết bị tham chiếu là trong phạm vi [0.75m, 1.25m], where where where could distance ismeasure from the top cạnh of the DUTNhân ban mặt lên và nghiêng 45 độ.
- [C-SR-2] Are trì hoãn 1 danh sách người dùng để theo dõi các bước thiết lập đo lường được chỉ định trong Sự hiện diện Calibration.
7,5. Camera
Nếu quá trình triển khai thiết bị có ít nhất một máy ảnh, thì chúng:
- [C-1-1] PHẢI khai báo cờ tính năng
android.hardware.camera.any
. - [C-1-2] PHẢI be possible for an application to đồng thời phân bổ 3 RGBA_8888 bitmaps equals the size of the images made by the largest-resolve camera sensor on the device, while camera is open for the the section of basic xem trước và vẫn chụp.
- [C-1-3] PHẢI đảm bảo rằng ứng dụng máy ảnh mặc định xử lý các ý định
MediaStore.ACTION_IMAGE_CAPTURE
,MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, hoặcMediaStore.ACTION_VIDEO_CAPTURE
, chịu trách nhiệm xoá vị trí người dùng trong siêu dữ liệu hình ảnh trước khi gửi nó đến ứng dụng nhận khi ứng dụng nhận không cóACCESS_FINE_LOCATION
.
Nếu quá trình triển khai thiết bị có hỗ trợ tính năng đầu ra HDR 10-bit, thì các quá trình triển khai thiết bị đó:
- [C-2-1] PHẢI support at least the HLG HDR profile for all camera device that supported 10-bit output.
- [C-2-2] PHẢI support 10-bit output for during the primary primary-surface or the primary front-quarter camera.
- [C-SR-1] Are Internet REVIEW to support 10-bit output for cả primary cameras.
- [C-2-3] PHẢI support the same HDR profiles for all BACKWARD_COMPATIBLE-ABILITY-CÓ-CÓ THỂ- chiếc camera phụ vật lý của một máy ảnh logic và chính máy ảnh logic.
Đối với các thiết bị máy ảnh logic hỗ trợ HDR 10 bit triển khai API android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
, họ:
- [C-3-1] PHẢI hỗ trợ chuyển đổi giữa tất cả các máy ảnh vật lý tương thích ngược qua tính năng điều khiển
CONTROL_ZOOM_RATIO
trên máy ảnh logic.
7.5.1. Camera mặt sau
Camera mặt sau là một camera nằm ở cạnh của thiết bị đối diện với màn hình; tức là camera này chụp các cảnh ở phía xa của thiết bị, giống như một camera truyền thống.
Triển khai thiết bị:
- NÊN có máy ảnh mặt sau.
Nếu quá trình triển khai thiết bị có ít nhất một máy ảnh mặt sau, thì các thiết bị đó:
- [C-1-1] PHẢI báo cáo cờ tính năng
android.hardware.camera
vàandroid.hardware.camera.any
. - [C-1-2] PHẢI có độ phân giải ít nhất là 2 megapixel.
- Nên có hoặc có phần cứng tự động lấy nét hoặc phần mềm tự động lấy nét được triển khai trong trình điều khiển máy ảnh (transparency to application software).
- CÓ THỂ dùng phần cứng lấy nét cố định hoặc EDOF (độ sâu trường ảnh mở rộng).
- CÓ THỂ bao gồm cả đèn flash.
Nếu máy ảnh có đèn flash:
- [C-2-1] the flash Trảng đèn PHẢI NOT be lit when an
android.hardware.Camera.PreviewCallback
instance has been registration on a Camera Preview surface, trừ khi ứng dụng đã bật đèn flash rõ ràng bằng cách bật các thuộc tínhFLASH_MODE_AUTO
hoặcFLASH_MODE_ON
của một đối tượngCamera.Parameters
. Xin lưu ý rằng quy tắc ràng buộc này không áp dụng cho ứng dụng máy ảnh hệ thống tích hợp sẵn của thiết bị, mà chỉ áp dụng cho các ứng dụng bên thứ ba sử dụngCamera.PreviewCallback
.
7.5.2. Máy ảnh mặt trước
Camera mặt trước là camera nằm ở cùng một phía của thiết bị với màn hình; tức là camera thường dùng để chụp ảnh người dùng, chẳng hạn như cho hội nghị truyền hình và các ứng dụng tương tự.
Triển khai thiết bị:
- CÓ THỂ bao gồm cả máy ảnh mặt trước.
Nếu quá trình triển khai thiết bị có ít nhất một máy ảnh mặt trước, thì các thiết bị đó:
- [C-1-1] PHẢI báo cáo cờ tính năng
android.hardware.camera.any
vàandroid.hardware.camera.front
. - [C-1-2] PHẢI có độ phân giải tối thiểu là VGA (640x480 pixel).
- [C-1-3] PHẢI NOT use a front-surface camera as the default for the Camera API and PHẢI NOT configuration the API to except a front-surface camera as the default after-ống camera, ngay cả khi đó là camera duy nhất trên thiết bị.
- [C-1-4] The camera Preview PHẢI beMirrored landscape to the
Orientation by the application when the current application has
explicitly requests that the Camera
display be xoá via a call to the
android.hardware.Camera.setDisplayOrientation()
method. Ngược lại, xem trước PHẢI beMirrored huỷ theo trục ngang mặc định của thiết bị khi ứng dụng hiện tại không yêu cầu rõ ràng rằng màn hình Camera được xoay qua một lệnh gọi đến phương thứcandroid.hardware.Camera.setDisplayOrientation()
. - [C-1-5] PHẢI NOT response the last capture image or video stream returned to the applicationcallback or vinh to media storage.
- [C-1-6] PHẢI phản chiếu hình ảnh được hiển thị bởi hậu kỳ theo cách tương tự như luồng hình ảnh xem trước của máy ảnh.
- CÓ THỂ bao gồm các tính năng (chẳng hạn như tự động lấy nét, đèn flash, v.v.) dành cho máy ảnh mặt sau như mô tả trong section 7.5.1.
Nếu các quá trình triển khai thiết bị có thể cho phép người dùng xoay (chẳng hạn như tự động qua gia tốc kế hoặc theo cách thủ công thông qua hoạt động đầu vào của người dùng):
- [C-2-1] The camera Dịch vụ xem trước phải được phản chiếu theo chiều ngang tương ứng với hướng hiện tại của thiết bị.
7.5.3. Camera bên ngoài
Triển khai thiết bị:
- CÓ THỂ bao gồm tính năng hỗ trợ cho máy ảnh bên ngoài không nhất thiết phải luôn kết nối.
Nếu quá trình triển khai thiết bị có hỗ trợ máy ảnh bên ngoài, thì các quá trình triển khai đó:
- [C-1-1] PHẢI khai báo cờ tính năng của nền tảng
android.hardware.camera.external
vàandroid.hardware camera.any
. - [C-1-2] PHẢI support USB Video Class (UVC 1.0 or higher) if the external camera connections through the USB host Port.
- [C-1-3]{4}pass camera CTS testing with a physical external camera device device (thiết bị máy ảnh bên ngoài vật lý) đã kết nối. Bạn có thể xem thông tin chi tiết về quy trình kiểm thử CTS của máy ảnh tại source.android.com.
- nên hỗ trợ các nén video như MJPEG để cho phép truyền tải các luồng không được mã hoá chất lượng cao (i.e. Raw hoặc xâm nhập hình ảnh độc lập).
- CÓ THỂ hỗ trợ nhiều máy ảnh.
- CÓ thể hỗ trợ phương thức mã hoá video dựa trên máy ảnh.
Nếu phương thức mã hoá video dựa trên camera được hỗ trợ:
- [C-2-1] A đồng un khẩn cấp / MJPEG Stream (QVGA or largeCH) PHẢI beaccess to the deviceimplementation.
7.5.4. Hành vi của API máy ảnh
Android bao gồm 2 gói API để truy cập vào máy ảnh, API android.hardware.camera2 mới hiển thị chức năng điều khiển máy ảnh ở cấp độ thấp hơn cho ứng dụng, bao gồm các luồng phát trực tuyến/loạt bản sao hiệu quả và các chế độ kiểm soát độ phơi sáng, mức tăng, tăng cân bằng trắng, chuyển đổi màu, khử nhiễu, làm sắc nét và nhiều tính năng khác.
Gói API cũ android.hardware.Camera
được đánh dấu là không dùng nữa trong Android 5.0 nhưng vẫn có sẵn để các ứng dụng dùng. Các hoạt động triển khai thiết bị Android PHẢI đảm bảo sự hỗ trợ liên tục của API như mô tả trong phần này và trong SDK Android.
Tất cả các tính năng phổ biến giữa lớp android.hardware.Camera không dùng nữa và gói android.hardware.camera2 mới hơn PHẢI có hiệu suất và chất lượng tương đương trong cả hai API. Ví dụ: với các chế độ cài đặt tương đương, tốc độ và độ chính xác tự động lấy nét phải giống hệt nhau, đồng thời chất lượng ảnh chụp phải giống nhau. Các tính năng phụ thuộc vào khác nhau ngữ nghĩa của hai API không bắt buộc phải có tốc độ hoặc chất lượng khớp, nhưng nên khớp càng gần càng tốt.
Thiết bị triển khai PHẢI triển khai các hành vi sau cho các API liên quan đến máy ảnh, cho tất cả máy ảnh có sẵn. Triển khai thiết bị:
- [C-0-1] PHẢI use
android.hardware.PixelFormat.YCbCr_420_SP
for Preview data cung cấp cho các lệnh gọi lại ứng dụng khi một ứng dụng chưa bao giờ được gọiandroid.hardware.Camera.Parameters.setPreviewFormat(int)
. - [C-0-2]{4} further be in the NV21 encryption format when an application
registers an
android.hardware.Camera.PreviewCallback
instance and the system called theonPreviewFrame()
method and the Preview format is YCbCr_420_SP, the data in the byte[] generated intoonPreviewFrame()
. Tức là NV21 PHẢI là giá trị mặc định. - [C-0-3] PHẢI support the YV12 format (as symbol by the
android.graphics.ImageFormat.YV12
hằng số) cho các bản xem trước máy ảnh cho cả máy ảnh mặt trước và mặt sau đối vớiandroid.hardware.Camera
. (Bộ mã hoá video phần cứng và máy ảnh có thể sử dụng bất kỳ định dạng pixel gốc nào, nhưng việc triển khai thiết bị PHẢI hỗ trợ chuyển đổi sang YV12.) - [C-0-4] PHẢI hỗ trợ các định dạng
android.hardware.ImageFormat.YUV_420_888
vàandroid.hardware.ImageFormat.JPEG
dưới dạng dữ liệu đầu ra thông qua APIandroid.media.ImageReader
cho các thiết bịandroid.hardware.camera2
quảng cáo chức năngREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
trongandroid.request.availableCapabilities
. - [C-0-5] PHẢI vẫn triển khai toàn bộ Camera API trong tài liệu SDK Android, bất kể thiết bị có bao gồm tính năng tự động lấy nét phần cứng hay các tính năng khác hay không. Ví dụ: máy ảnh thiếu tính năng tự động lấy nét PHẢI vẫn gọi mọi phiên bản
android.hardware.Camera.AutoFocusCallback
đã đăng ký (mặc dù máy ảnh này không liên quan đến máy ảnh không tự động lấy nét.) Xin lưu ý rằng điều này áp dụng cho máy ảnh mặt trước; ví dụ: mặc dù hầu hết các máy ảnh mặt trước không hỗ trợ tính năng tự động lấy nét, nhưng các lệnh gọi lại API vẫn phải được "giả mạo" như mô tả. - [C-0-6] PHẢI nhận dạng và yêu cầu mỗi tên thông số
được xác định là hằng số trong lớp
android.hardware.Camera.Parameters
và lớpandroid.hardware.camera2.CaptureRequest
. Ngược lại, các cách triển khai thiết bị KHÔNG được phép tôn trọng hoặc nhận dạng hằng số chuỗi được truyền đến phương thứcandroid.hardware.Camera.setParameters()
khác những phương thức được ghi nhận dưới dạng hằng số trênandroid.hardware.Camera.Parameters
. Tức là, các phương thức triển khai thiết bị PHẢI hỗ trợ tất cả các tham số Camera tiêu chuẩn nếu phần cứng cho phép và KHÔNG được hỗ trợ các loại tham số Camera tuỳ chỉnh. Ví dụ: các phương pháp triển khai thiết bị hỗ trợ chụp ảnh bằng cách sử dụng kỹ thuật chụp ảnh dải động cao (HDR) imaging PHẢI hỗ trợ tham số cameraCamera.SCENE_MODE_HDR
. - [C-0-7] PHẢI báo cáo mức độ hỗ trợ thích hợp bằng thuộc tính
android.info.supportedHardwareLevel
như mô tả trong SDK Android và báo cáo các cờ tính năng khung thích hợp. - [C-0-8] PHẢI cũng khai báo tính năng máy ảnh riêng lẻ của
android.hardware.camera2
qua thuộc tínhandroid.request.availableCapabilities
và khai báo tính năng cờ thích hợp; PHÚT xác định cờ tính năng nếu bất kỳ thiết bị máy ảnh đính kèm nào của nó hỗ trợ tính năng. - [C-0-9] PHẢI truyền phát ý định
Camera.ACTION_NEW_PICTURE
bất cứ khi nào máy ảnh chụp và mục nhập của hình ảnh đã được thêm vào kho nội dung nghe nhìn. - [C-0-10] PHẢI truyền phát ý định
Camera.ACTION_NEW_VIDEO
bất cứ khi nào video mới được máy ảnh ghi lại và mục nhập của hình ảnh đã được thêm vào kho nội dung nghe nhìn. - [C-0-11] PHẢI have all ban creatives via the deprecated
android.hardware.Camera
API cũng accessibility via theandroid.hardware.camera2
API. - [C-0-12] PHẢI đảm bảo rằng giao diện khuôn mặt là KHÔNG bị thay đổi, bao gồm nhưng không giới hạn đối với thay đổi hình học khuôn mặt, tông màu da mặt, hoặc làm mịn da mặt cho bất kỳ
android.hardware.camera2
hoặcandroid.hardware.Camera
API. - [C-SR-1] For devices with multiple RGB devices assigned in the the same direction,
areĐể các thiết bị theo hướng logic,
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
Nếu các hoạt động triển khai thiết bị cung cấp API máy ảnh độc quyền cho các ứng dụng bên thứ ba, thì các ứng dụng đó:
- [C-1-1] PHẢI triển khai như vậy API máy ảnh bằng cách sử dụng
android.hardware.camera2
API. - CÓ THỂ cung cấp các thẻ và/hoặc tiện ích của nhà cung cấp cho API
android.hardware.camera2
.
7.5.5. Hướng máy ảnh
Nếu quá trình triển khai thiết bị có máy ảnh mặt trước hoặc mặt sau, thì(các) máy ảnh đó:
- [C-1-1] PHẢI be Orientation để chiều dài của máy ảnh căn chỉnh với chiều dài của màn hình. Tức là khi thiết bị được giữ theo hướng ngang, máy ảnh PHẢI chụp ảnh theo hướng ngang. Điều này áp dụng cho bất kể hướng tự nhiên của thiết bị; tức là áp dụng cho các thiết bị chính ở chế độ ngang cũng như các thiết bị chính hướng dọc.
Những thiết bị đáp ứng tất cả những tiêu chí sau đây sẽ được miễn tuân theo yêu cầu nêu trên:
- Thiết bị triển khai các màn hình có dạng biến đổi được, chẳng hạn như màn hình có thể gập lại hoặc màn hình có bản lề.
- Khi trạng thái gập hoặc bản lề của thiết bị thay đổi, thiết bị sẽ chuyển đổi giữa hướng dọc-chính sang hướng ngang-chính (hoặc ngược lại).
7,6. Bộ nhớ và dung lượng lưu trữ
7.6.1. Bộ nhớ và dung lượng lưu trữ tối thiểu
Triển khai thiết bị:
- [C-0-1] PHẢI include a Download Manager that Những ứng dụng có thể sử dụng để tải các tệp dữ liệu và chúng CÓ khả năng tải các tệp riêng lẻ của ít nhất 100MB in size to the default "cache" location.
7.6.2. Bộ nhớ dùng chung của ứng dụng
Triển khai thiết bị:
- [C-0-1] PHẢI cung cấp bộ nhớ để được chia sẻ bởi các ứng dụng, cũng thường được gọi là "bộ nhớ ngoài được chia sẻ", "bộ nhớ được chia sẻ ứng dụng" hoặc theo đường dẫn Linux "/sdcard" nó được gắn kết trên.
- [C-0-2] PHẢI beConfigure with shared storage sticked by default, in other words "out of thebox", bất kể bộ lưu trữ có được triển khai trên an internal storage component hay a re ngũ storage medium (e.g. Secure Digital card slot).
- [C-0-3] PHẢI gắn kết ứng dụng lưu trữ chia sẻ trực tiếp trên đường dẫn Linux
sdcard
hoặc bao gồm một liên kết biểu tượng Linux từsdcard
đến điểm gắn thực tế. - [C-0-4] PHẢI enable
limited storage
theo mặc định cho tất cả
các ứng dụng nhắm mục tiêu API level 29 trở lên, ngoại trừ trong trường hợp sau:
- Khi ứng dụng yêu cầu
android:requestLegacyExternalStorage="true"
trong tệp kê khai.
- Khi ứng dụng yêu cầu
- [C-0-5] PHẢI loại bỏ siêu dữ liệu vị trí, chẳng hạn như thẻ GPS Exif, được lưu trữ trong các tệp nội dung nghe nhìn khi các tệp đó được truy cập thông qua
MediaStore
, ngoại trừ khi ứng dụng gọi giữ quyềnACCESS_MEDIA_LOCATION
.
Triển khai thiết bị CÓ THỂ đáp ứng các yêu cầu nêu trên bằng cách sử dụng một trong các cách sau:
- Bộ nhớ di động mà người dùng có thể truy cập, chẳng hạn như khe cắm thẻ Kỹ thuật số bảo mật (SD).
- Một phần bộ nhớ trong (không thể tháo rời) như được triển khai trong Dự án nguồn mở Android (AOSP).
Nếu quá trình triển khai thiết bị sử dụng bộ nhớ có thể tháo rời để đáp ứng các yêu cầu trên, thì chúng:
- [C-1-1] PHẢI triển khai thông báo ngắn hoặc giao diện người dùng bật lên cảnh báo người dùng khi không có phương tiện lưu trữ nào được chèn vào khe.
- [C-1-2] PHẢI include a FAT-formatted storage medium (e.g. SD card) or show on thebox and other material available at time of purchase that the storage medium has to be mua riêng.
Nếu các hoạt động triển khai thiết bị sử dụng một phần bộ nhớ không thể tháo rời để đáp ứng các yêu cầu trên, thì chúng:
- nên sử dụng phương thức triển khai AOSP của ứng dụng nội bộ được chia sẻ bộ nhớ.
- CÓ THỂ chia sẻ không gian lưu trữ với dữ liệu riêng tư của ứng dụng.
Nếu các quá trình triển khai thiết bị có cổng USB hỗ trợ chế độ thiết bị ngoại vi USB, thì thiết bị đó sẽ:
- [C-3-1] PHẢI cung cấp cơ chế truy cập dữ liệu trên bộ nhớ dùng chung của ứng dụng từ máy tính lưu trữ.
- NÊN hiển thị nội dung từ cả hai đường dẫn lưu trữ một cách minh bạch thông qua dịch vụ trình quét nội dung đa phương tiện của Android và
android.provider.MediaStore
. - CÓ THỂ sử dụng bộ nhớ khối lượng USB, nhưng NÊN sử dụng Giao thức truyền phương tiện để đáp ứng yêu cầu này.
Nếu các quá trình triển khai thiết bị có cổng USB có chế độ thiết bị ngoại vi USB và hỗ trợ Giao thức truyền nội dung nghe nhìn, thì các quá trình triển khai đó sẽ:
- nên tương thích với máy chủ Android MTP tham chiếu, Android File Transfer.
- NÊN báo cáo lớp thiết bị USB là 0x00.
- NÊN báo cáo tên giao diện USB là 'MTP'.
7.6.3. Bộ nhớ tích hợp
Nếu thiết bị dự kiến sẽ là thiết bị di động, không giống như TV, thì cách triển khai thiết bị sẽ:
- [C-SR-1] Nói "S chiến dịch quảng cáo" để triển khai dung lượng lưu trữ có thể sử dụng trong một vị trí ổn định lâu dài, kể từ khi vô tình ngắt kết nối chúng có thể gây ra mất dữ liệu/bị hỏng.
Nếu cổng thiết bị lưu trữ có thể tháo rời nằm ở một vị trí ổn định lâu dài, chẳng hạn như trong ngăn chứa pin hoặc nắp bảo vệ khác, thì cách triển khai thiết bị sẽ:
- [C-SR-2] Liên Minh Dẫn Quảng Cáo để triển khai adoptable storage.
7,7. USB
Nếu các quá trình triển khai thiết bị có cổng USB, thì các quá trình triển khai thiết bị đó sẽ:
- NÊN hỗ trợ chế độ thiết bị ngoại vi USB và PHẢI hỗ trợ chế độ máy chủ USB.
- NÊN hỗ trợ tắt tín hiệu dữ liệu qua USB.
7.7.1. Chế độ thiết bị ngoại vi USB
Nếu quá trình triển khai thiết bị có một cổng USB hỗ trợ chế độ thiết bị ngoại vi:
- [C-1-1] The cổng PHẢI be connectable to a USB host that has a standard type-A or type-C USB Port.
- [C-1-2] PHẢI báo cáo giá trị chính xác của
iSerialNumber
trong bộ mô tả thiết bị tiêu chuẩn USB thông quaandroid.os.Build.SERIAL
. - [C-1-3] phát hiện 1.5A và 3.0A bộ sạc mỗi điện trở Type-C tiêu chuẩn và PHẢI phát hiện thay đổi trong quảng cáo nếu chúng hỗ trợ USB Type-C.
- [C-SR-1] Cổng PHẢI sử dụng hệ số hình dạng USB micro-B, micro-AB hoặc Type-C. Các thiết bị Android mới và hiện có NÊN DÙNG để đáp ứng các yêu cầu này để có thể nâng cấp lên các bản phát hành nền tảng trong tương lai.
- [C-SR-2] The Port Nên be Định vị trên đáy của thiết bị ( theo hướng tự nhiên) hoặc bật phần mềm xoay màn hình cho tất cả các ứng dụng (bao gồm cả màn hình chính), để màn hình vẽ chính xác khi thiết bị được định hướng với cổng ở dưới. Các thiết bị Android mới và hiện có NÊN DÙNG để đáp ứng những yêu cầu này để có thể nâng cấp lên các bản phát hành nền tảng trong tương lai.
- [C-SR-3] NÊN triển khai hỗ trợ để vẽ 1.5 A current through HS chirp and traffic as specified in the USB Battery Charge specifications, updates 1.2. Các thiết bị Android mới và hiện có NÊN DÙNG để đáp ứng các yêu cầu này để có thể nâng cấp lên các bản phát hành nền tảng trong tương lai.
- [C-SR-4] Liên minh Dẫn Quảng cáo để không hỗ trợ phương thức sạc độc quyền mà sửa đổi Vbus voltage External levels, or changed sink/source role as as that can may in tộc issues with the chargeds or devices that support the standard USB Power Delivery methods. Mặc dù giá trị này được gọi là "ĐƯỢC NÊN DÙNG", nhưng trong các phiên bản Android trong tương lai, chúng tôi có thể YÊU CẦU tất cả thiết bị loại C để hỗ trợ khả năng tương tác đầy đủ với bộ sạc type-C tiêu chuẩn.
- [C-SR-5] Nói Dẫn Quảng Cáo để hỗ trợ Power Delivery for data and power role swapping when they support Type-C USB and USB host mode.
- NÊN support Power Delivery for high-voltage — support for Alternative Modes as display out.
- NÊN triển khai Android Open Accessory (AOA) API và thông số kỹ thuật như được ghi trong tài liệu SDK Android.
Nếu các hoạt động triển khai thiết bị bao gồm một cổng USB và triển khai thông số kỹ thuật AOA, thì các hoạt động triển khai đó:
- [C-2-1]{4} kê khai hỗ trợ cho tính năng phần cứng
android.hardware.usb.accessory
. - [C-2-2] The USB Bulk storage class PHẢI include the string "android" at the end of the Interface description
iInterface
string of the USB volume storage - NÊN NOT triển khai AOAv2 audio được ghi lại trong tài liệu Android Open Accessory Protocol 2.0. Kể từ phiên bản Android 8.0 (API cấp 26), âm thanh AOAv2 sẽ không được dùng nữa.
7.7.2. Chế độ hỗ trợ USB
Nếu quá trình triển khai thiết bị có một cổng USB hỗ trợ chế độ máy chủ lưu trữ, thì các quá trình triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI triển khai API máy chủ Android USB as documented in the Android SDK and PHẢI Thông báo hỗ trợ cho tính năng phần cứng
android.hardware.usb.host
. - [C-1-2] PHẢI triển khai hỗ trợ để kết nối thiết bị ngoại vi USB tiêu chuẩn, trong cách khác, họ PHẢI một trong hai:
- Có cổng loại C trên thiết bị hoặc đi kèm với(các) cáp điều chỉnh cổng độc quyền trên thiết bị thành cổng USB loại C tiêu chuẩn (thiết bị USB Type-C).
- Có loại A trên thiết bị hoặc đi kèm với(các) cáp điều chỉnh cổng độc quyền trên thiết bị thành cổng USB loại A tiêu chuẩn.
- Có cổng micro-AB trên thiết bị, mà nên tàu bằng cáp thích ứng với cổng loại A tiêu chuẩn.
- [C-1-3] PHẢI KHÔNG vận chuyển bằng bộ chuyển đổi chuyển đổi từ cổng USB loại A hoặc micro-AB cổng sang cổng loại C (receptacle).
- [C-SR-1] AreĐể nhà phát triển đề xuất nội dung trong phần USB audio class, như được lập tài liệu trong tài liệu SDK Android.
- nên hỗ trợ sạc thiết bị ngoại vi USB đã kết nối trong khi ở chế độ máy chủ; quảng cáo nguồn hiện tại của ít nhất 1.5A như quy định trong phần Chấm dứt thông số của USB Type-C Cáp và Trình kết nối SpecificationModified 1.2 for USB Type-C connectors or using Charge Downstream Port(CDP) output current Range as specified in the USB Battery Charge specifications, modifier 1.2.
- NÊN triển khai và hỗ trợ các tiêu chuẩn USB Type-C.
Nếu các quá trình triển khai thiết bị bao gồm một cổng USB hỗ trợ chế độ máy chủ và lớp âm thanh USB, thì các phương thức triển khai đó:
- [C-2-1] PHẢI hỗ trợ lớp USB HID.
- [C-2-2] PHẢI support the detected andmapping of the following HID datafields specified in the USB HID Usage Tables and the Voice Command Usage Request
to the
KeyEvent
Constants as below:- Mã nhận dạng sử dụng (0x0CD) của trang sử dụng (0xC):
KEYCODE_MEDIA_PLAY_PAUSE
- Mã nhận dạng sử dụng của trang sử dụng (0xC) (0x0E9):
KEYCODE_VOLUME_UP
- Mã nhận dạng sử dụng của trang sử dụng (0xC) (0x0EA):
KEYCODE_VOLUME_DOWN
- Mã nhận dạng sử dụng (0x0CF) của trang sử dụng (0xC) (0x0CF):
KEYCODE_VOICE_ASSIST
- Mã nhận dạng sử dụng (0x0CD) của trang sử dụng (0xC):
Nếu các hoạt động triển khai thiết bị bao gồm một cổng USB hỗ trợ chế độ máy chủ và Khung truy cập bộ nhớ (SAF), thì chúng:
- [C-3-1]{4}Recognition any remote connected MTP (Media Transfer Protocol)
devices and make their content access through the
ACTION_GET_CONTENT
,ACTION_OPEN_DOCUMENT
vàACTION_CREATE_DOCUMENT
ý định. [C-3-1] PHẢI nhận dạng thiết bị từ xa MTP (Media Transfer Protocol) .
Nếu quá trình triển khai thiết bị bao gồm một cổng USB hỗ trợ chế độ máy chủ và USB Type-C, thì các quá trình đó:
- [C-4-1] PHẢI triển khai chức năng Dual role Port as Definition by the USB Type-C specifications (section 4.5.1.3.3). Đối với Cổng vai trò kép, Trên các thiết bị bao gồm giắc cắm âm thanh 3.5mm, phát hiện bồn lưu trữ USB (chế độ máy chủ) CÓ THỂ tắt theo mặc định nhưng phải có thể cho người dùng bật tính năng này.
- [C-SR-2] Nói Dẫn Dối Dõi Dẫn Dẫn support DisplayPort, NÊN support USB SuperSpeed Data cuộn
- [C-SR-3] Nói Dẫn dùn để KHÔNG hỗ trợ Audio Adapter Accessory Mode as descriptions in the Dependencies A of the USB Type-C Cable and Connector Specification Beta 1.2.
- NÊN triển khai mô hình try.* phù hợp nhất với kiểu dáng thiết bị. Ví dụ: thiết bị cầm tay NÊN triển khai mô hình Try.SNK.
7,8. Âm thanh
7.8.1. Micrô
Nếu quá trình triển khai thiết bị có micrô, thì họ:
- [C-1-1] PHẢI báo cáo hằng số tính năng
android.hardware.microphone
. - [C-1-2] PHẢI đáp ứng các yêu cầu ghi âm trong section 5.4.
- [C-1-3] PHẢI đáp ứng yêu cầu về độ trễ âm thanh trong section 5.6.
- [C-SR-1] Are kinh REVIEW to support near-ultrasound recording as mô tả in section 7.8.3.
Nếu quá trình triển khai thiết bị không có micrô, thì các quá trình triển khai thiết bị sẽ:
- [C-2-1] KHÔNG ĐƯỢC báo cáo hằng số tính năng
android.hardware.microphone
. - [C-2-2] PHẢI triển khai the audio recording API at least as no-ops, per section 7.
7.8.2. Đầu ra âm thanh
Nếu các cách triển khai thiết bị bao gồm loa hoặc cổng đầu ra âm thanh/đa phương tiện cho thiết bị ngoại vi đầu ra âm thanh, chẳng hạn như giắc cắm âm thanh 4 dây dẫn 3,5 mm hoặc cổng chế độ máy chủ USB sử dụng lớp âm thanh USB, thì các thiết bị đó sẽ:
- [C-1-1] PHẢI báo cáo hằng số tính năng
android.hardware.audio.output
. - [C-1-2] PHẢI đáp ứng các yêu cầu phát âm thanh trong section 5.5.
- [C-1-3] PHẢI đáp ứng yêu cầu về độ trễ âm thanh trong section 5.6.
- [C-SR-1] Để các trang thông tin xuất hiện nổi bật, nhà phát triển không thể bỏ lỡ
Nếu quá trình triển khai thiết bị không bao gồm loa hoặc cổng đầu ra âm thanh, thì các quá trình triển khai đó:
- [C-2-1] KHÔNG ĐƯỢC báo cáo tính năng
android.hardware.audio.output
. - [C-2-2] PHẢI triển khai các API liên quan đến Đầu ra âm thanh ở mức tối thiểu là không hoạt động.
Trong mục này, "cổng đầu ra" là một giao diện thực, chẳng hạn như giắc âm thanh 3,5 mm, cổng HDMI hoặc cổng chế độ máy chủ USB có lớp âm thanh USB. Tính năng hỗ trợ đầu ra âm thanh qua các giao thức dựa trên sóng vô tuyến, chẳng hạn như Bluetooth, Wi-Fi hoặc mạng di động không đủ điều kiện bao gồm "cổng đầu ra".
7.8.2.1. Cổng âm thanh analog
Để tương thích với tai nghe và các phụ kiện âm thanh khác bằng cách sử dụng giắc cắm âm thanh 3,5 mm trong hệ sinh thái Android, nếu cách triển khai thiết bị bao gồm một hoặc nhiều cổng âm thanh analog, thì các cách triển khai đó:
- [C-SR-1] Are trì hoãn 1 để bao gồm ít nhất một trong số các cổng âm thanh to be a 4 Conductor 3.5mm audio jack.
Nếu thiết bị có giắc cắm âm thanh 3,5 mm 4 dây dẫn, thì chúng:
- [C-1-1] PHẢI support audio phát to stereo tai and stereo Muas with a microphone.
- [C-1-2] PHẢI hỗ trợ giắc cắm âm thanh TRRS theo thứ tự chân cắm CTIA.
- [C-1-3] PHẢI support the phát hiện và ánh xạ đến mã phím cho
theo 3 phạm vi của tương đương impedance giữa micrô và mặt đất
conductors on the audio plugin:
- 70 ohm trở xuống:
KEYCODE_HEADSETHOOK
- 210 – 290 ohm:
KEYCODE_VOLUME_UP
- 360 – 680 ohm:
KEYCODE_VOLUME_DOWN
- 70 ohm trở xuống:
- [C-1-4] PHẢI kích hoạt
ACTION_HEADSET_PLUG
dựa trên một cắm chèn, nhưng chỉ sau khi tất cả các địa chỉ liên hệ trên phích cắm đang chạm vào các phân đoạn có liên quan của họ trên giắc cắm. - [C-1-5]{4} be compatibility of drive at least 150mV ± 10% of output voltage on a 32 ohm loa impedance.
- [C-1-6] PHẢI có điện áp thiên vị micrô trong khoảng 1,8V ~ 2,9V.
- [C-1-7]{4} detected and map to the keycode for the following
range of equals impedance between the micro and YouTube Conductors
on the audio plugin:
- 110 – 180 ohm:
KEYCODE_VOICE_ASSIST
- 110 – 180 ohm:
- [C-SR-2] Are mã ĐỀ XUẤT NÊN hỗ trợ các phích cắm âm thanh với OMTP pin-out order.
- [C-SR-3] AreĐể hỗ trợ tính năng ghi âm thanh từ âm thanh nổi
Nếu các quá trình triển khai thiết bị có giắc âm thanh 4 dây dẫn 3,5 mm và hỗ trợ micrô, đồng thời truyền phát android.intent.action.HEADSET_PLUG
với micrô có giá trị bổ sung được đặt là 1, thì các thiết bị đó sẽ:
- [C-2-1] PHẢI support the detected of micro on the plugin in audio accessory.
7.8.2.2. Cổng âm thanh kỹ thuật số
Hãy xem Mục 2.2.1 để biết các yêu cầu dành riêng cho thiết bị.
7.8.3. Siêu âm gần
Âm thanh siêu âm gần là băng tần 18,5 kHz đến 20 kHz.
Triển khai thiết bị:
- PHẢI báo cáo chính xác sự hỗ trợ của tính năng âm thanh cận siêu âm qua API AudioManager.getProperty như sau:
Nếu PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND
là "true", các yêu cầu sau PHẢI được đáp ứng bởi các nguồn âm thanh VOICE_RECOGNITION
và UNPROCESSED
:
- [C-1-1] The micro's dừng power response in the 18.5 kHz to 20 kHz Band PHẢI be no more than 15 dB below the response at 2 kHz.
- [C-1-2] The microphone's unweighted broadcast receiver to appeal score over 18.5 kHz to 20 kHz for a 19 kHz tone at -26 dBFS PHẢI be no lower than 50 dB.
Nếu PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND
là "true":
- [C-2-1] Phản hồi trung bình của loa trong 18,5 kHz - 20 kHz KHÔNG được thấp hơn 40 dB dưới phản hồi tại 2 kHz.
7.8.4. Tính toàn vẹn của tín hiệu
Triển khai thiết bị:
- nên cung cấp đường dẫn tín hiệu âm thanh không có glitch-free cho cả đầu vào và đầu ra trên thiết bị cầm tay, như được xác định bởi zero glitches được đo trong quá trình kiểm tra một phút mỗi đường dẫn. Kiểm thử bằng OboeTester "Kiểm tra sự cố tự động".
Bài kiểm thử này yêu cầu một thiết bị phần cứng vòng lặp âm thanh dùng trực tiếp trong giắc 3,5 mm và/hoặc kết hợp với bộ chuyển đổi USB-C sang 3, 5 mm. Tất cả các cổng đầu ra âm thanh đều PHẢI được kiểm tra.
OboeTester hiện hỗ trợ các đường dẫn AAudio, vì vậy, các tổ hợp sau đây NÊN được kiểm thử để phát hiện sự cố bằng AAudio:
Chế độ hoàn thành | Chia sẻ | Tốc độ lấy mẫu tín hiệu ra | Tiếng Chans | Âm thanh ngoài |
---|---|---|---|---|
THẤP_THẤP | ĐỘC QUYỀN | KHÔNG XÁC ĐỊNH | 1 | 2 |
THẤP_THẤP | ĐỘC QUYỀN | KHÔNG XÁC ĐỊNH | 2 | 1 |
THẤP_THẤP | ĐÃ CHIA SẺ | KHÔNG XÁC ĐỊNH | 1 | 2 |
THẤP_THẤP | ĐÃ CHIA SẺ | KHÔNG XÁC ĐỊNH | 2 | 1 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 48000 | 1 | 2 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 48000 | 2 | 1 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 44100 | 1 | 2 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 44100 | 2 | 1 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 16000 | 1 | 2 |
KHÔNG XÁC ĐỊNH | ĐÃ CHIA SẺ | 16000 | 2 | 1 |
A Trusted Stream nên đáp ứng các tiêu chí sau cho Signal to Noise Ratio (SNR) và Total Harmonic Distortion (THD) for 2000 Hz sine.
Bộ chuyển đổi | THD | SNR |
---|---|---|
loa chính, tích hợp, được đo bằng micrô tham chiếu bên ngoài | < 3% | >= 50 dB |
micrô chính, tích hợp sẵn, được đo bằng loa tham chiếu bên ngoài | < 3% | >= 50 dB |
giắc cắm 3,5 mm tương tự tích hợp, kiểm tra bằng bộ chuyển đổi loopback | Chưa đến 1% | >= 60 dB |
Bộ sạc USB đi kèm với điện thoại, được kiểm tra bằng bộ chuyển đổi loopback | < 1% | >= 60 dB |
7,9. Thực tế ảo
Android cung cấp các API và cơ sở vật chất để xây dựng ứng dụng "Thực tế ảo" (VR), bao gồm cả trải nghiệm thực tế ảo chất lượng cao trên thiết bị di động. Các hoạt động triển khai thiết bị PHẢI triển khai đúng cách các API và hành vi này, như được nêu chi tiết trong phần này.
7.9.1. Chế độ thực tế ảo
Android hỗ trợ Chế độ thực tế ảo, một tính năng xử lý kết xuất hình nổi của thông báo và vô hiệu hoá các thành phần giao diện người dùng hệ thống bằng một mắt trong khi ứng dụng thực tế ảo tập trung vào người dùng.
7.9.2. Chế độ thực tế ảo – Hiệu suất cao
Nếu quá trình triển khai thiết bị hỗ trợ chế độ thực tế ảo, thì các thiết bị đó:
- [C-1-1] PHẢI có ít nhất 2 lõi vật lý.
- [C-1-2] PHẢI khai báo tính năng
android.hardware.vr.high_performance
. - [C-1-3] PHẢI hỗ trợ chế độ hiệu suất bền vững.
- [C-1-4] PHẢI hỗ trợ OpenGL ES 3.2.
- [C-1-5] PHẢI hỗ trợ
android.hardware.vulkan.level
0. - PHẢI hỗ trợ
android.hardware.vulkan.level
1 trở lên. - [C-1-6] PHẢI triển khai
EGL_KHR_mutable_render_buffer
,EGL_ANDROID_front_buffer_auto_refresh
,EGL_ANDROID_get_native_client_buffer
,EGL_KHR_fence_sync
,EGL_KHR_wait_sync
,EGL_IMG_context_priority
,EGL_EXT_protected_content
,EGL_EXT_image_gl_colorspace
, and supported the extensions in the list of} - [C-1-8] PHẢI triển khai
GL_EXT_multisampled_render_to_texture2
,GL_OVR_multiview
,GL_OVR_multiview2
,GL_EXT_protected_textures
và hiển thị các tiện ích mở rộng trong danh sách các tiện ích GL có sẵn. - [C-SR-1] Are trì hoãn 2 danh sách để triển khai
GL_EXT_external_buffer
,GL_EXT_EGL_image_array
,GL_OVR_multiview_multisampled_render_to_texture
, and showing the extensions in the list of available GL extensions. - [C-SR-2] AreĐể hỗ trợ Vulkan 1.1.
- [C-SR-3] AreĐể dãy địa chỉ sổ sách lại để triển khai,
VK_ANDROID_external_memory_android_hardware_buffer
,VK_GOOGLE_display_timing
,VK_KHR_shared_presentable_image
, và hiển thị nó trong danh sách các tiện ích Vulkan hiện có. - [C-SR-4] Are trì hoãn đề xuất để hiển thị ít nhất một gia đình hàng đợi Vulkan trong đó
flags
chứa cảVK_QUEUE_GRAPHICS_BIT
vàVK_QUEUE_COMPUTE_BIT
, vàqueueCount
is ít nhất là 2. - [C-1-7] The GPU and display PHẢI can to synchronize access to the shared front cache chẳng hạn như {/5}nating- Eye rendering of VR content at 60fps with hai Rendering Contextual will be showing with no visible gây xé gôm.
- [C-1-9] PHẢI triển khai hỗ trợ cho
AHardwareBuffer
cờAHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
,AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA
vàAHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
như mô tả trong NDK. - [C-1-10] PHẢI triển khai hỗ trợ cho
AHardwareBuffer
s with bất kỳ kết hợp nào của các cờ sử dụngAHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT
,AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE
,AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
for at least the following formats:AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM
,AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM
,AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM
,AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT
. - [C-SR-5] AreĐể các nhà phát triển hỗ trợ việc phân bổ
AHardwareBuffer
s với hơn một lớp và cờ và định dạng được chỉ định trong C-1-10. - [C-1-11] NOT support H.264 Th).
- [C-1-12] NOT support HEVC and VP9,{4} be compatibility of solution at least 1920 x 1080 at 30 fpsblocked to an an toàn of 10 Mbps and Cuộc gọi sẵn sàng giải mã 3840 x 2160 at 30 fps-20 Mbps (tương đương 1920 fps of 1920 Mbps).
- [C-1-13] PHẢI support
HardwarePropertiesManager.getDeviceTemperatures
API and Trả lại giá trị chính xác cho nhiệt độ da. - [C-1-14] PHẢI have anEmbedded màn hình, và độ phân giải của nó PHẢI be at least 1920 x 1080.
- [C-SR-6] Are trì hoãn 1 để có độ phân giải màn hình của ít nhất 2560 x 1440.
- [C-1-15] Màn hình PHẢI cập nhật ít nhất 60 Hz khi ở Chế độ thực tế ảo.
- [C-1-17] The display PHẢI support a low-persistence mode with ≤ 5 milliseconds persistence, invalid beSử xác định là lượng thời gian cho mà một pixel đang phát ra ánh sáng.
- [C-1-18] PHẢI support Bluetooth 4.2 and Bluetooth LE Data dài Extension section 7.4.3.
- [C-1-19]{4} support and correct report
Direct Channel Type
for all of the following default sensor types:
TYPE_ACCELEROMETER
TYPE_ACCELEROMETER_UNCALIBRATED
TYPE_GYROSCOPE
TYPE_GYROSCOPE_UNCALIBRATED
TYPE_MAGNETIC_FIELD
TYPE_MAGNETIC_FIELD_UNCALIBRATED
- [C-SR-7] Are Internet ĐỀ XUẤT KHUYẾN DÙNG to support the
TYPE_HARDWARE_BUFFER
direct channel type for all Direct Channel Templates listed above. - [C-1-21] PHẢI meet the gyroscope, accelerometer, and từometer relatedrequirements for
android.hardware.hifi_sensors
, as specified in section 7.3.9. - [C-SR-8] Are Internet ĐỀ XUẤT KHẨU để hỗ trợ tính năng
android.hardware.sensor.hifi_sensors
. - [C-1-22] PHẢI have end-to-end motion to photon latency not higher than 28 milliseconds.
- [C-SR-9] AreĐể nhà phát triển khuyến khích dùng các chuyển động cuối-to-end to photon latency không cao hơn 20 mili giây.
- [C-1-23] PHẢI have first-frame Đúng, đó là tỷ lệ giữa độ sáng của các pixel trên khung hình đầu tiên sau quá trình chuyển đổi từ màu đen sang màu trắng và độ sáng của các pixel màu trắng ở trạng thái ổn định, trên ít nhất 85%.
- [C-SR-10] CÓ THỰC HIỆN ĐỀ XUẤT để có tỷ lệ khung hình đầu tiên tối thiểu là 90%.
- CÓ THỂ cung cấp một lõi độc quyền cho ứng dụng trên nền trước và CÓ THỂ hỗ trợ API
Process.getExclusiveCores
để trả về số lượng lõi cpu dành riêng cho ứng dụng trên nền trước.
Nếu có hỗ trợ lõi độc quyền, thì lõi:
- [C-2-1]{4} not allow any other userspace processes to run on it (ngoại trừ trình điều khiển thiết bị được sử dụng bởi ứng dụng), nhưng CÓ THỂ cho phép một số quy trình nhân hệ điều hành chạy khi cần thiết.
7,10. Xúc giác
Hãy xem Mục 2.2.1 để biết các yêu cầu dành riêng cho thiết bị.
7,11. Lớp hiệu suất nội dung đa phương tiện
Lớp hiệu suất nội dung đa phương tiện của quá trình triển khai thiết bị có thể lấy từ API android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
. Các yêu cầu đối với lớp hiệu suất nội dung đa phương tiện được xác định cho từng phiên bản Android bắt đầu bằng R (phiên bản 30). Giá trị đặc biệt của 0 chỉ định rằng thiết bị không thuộc lớp hiệu suất nội dung đa phương tiện.
Nếu các hoạt động triển khai thiết bị trả về giá trị khác 0 cho android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:
[C-1-1] PHẢI trả về ít nhất một giá trị của
android.os.Build.VERSION_CODES.R
.[C-1-2] PHẢI là cách triển khai thiết bị cầm tay.
[C-1-3] PHẢI đáp ứng tất cả các yêu cầu cho "Media Performance Class" được mô tả trong section 2.2.7.
Nói cách khác, lớp hiệu suất nội dung nghe nhìn trong Android T chỉ được xác định cho các thiết bị cầm tay ở phiên bản T, S hoặc R.
Hãy xem mục 2.2.7 để biết các yêu cầu dành riêng cho thiết bị.
8. Hiệu suất và sức mạnh
Một số tiêu chí về hiệu suất và hiệu suất tối thiểu rất quan trọng đối với trải nghiệm người dùng, đồng thời tác động đến các giả định cơ sở mà nhà phát triển sẽ đưa ra khi phát triển một ứng dụng.
8.1. Tính nhất quán trong trải nghiệm người dùng
Một giao diện người dùng mượt mà có thể được cung cấp cho người dùng cuối nếu có một số yêu cầu tối thiểu nhất định để đảm bảo tốc độ khung hình và thời gian phản hồi nhất quán cho ứng dụng và trò chơi. Quá trình triển khai thiết bị, tuỳ thuộc vào loại thiết bị, CÓ THỂ đo lường được các yêu cầu về độ trễ giao diện người dùng và việc chuyển đổi tác vụ như mô tả trong phần 2.
8.2. Hiệu suất truy cập tệp I/O
Việc cung cấp đường cơ sở chung để đạt được hiệu suất truy cập tệp nhất quán trên bộ nhớ dữ liệu riêng tư của ứng dụng (phân vùng /data
) cho phép các nhà phát triển ứng dụng đặt ra một kỳ vọng đúng mức để giúp họ thiết kế phần mềm. Các phương thức triển khai thiết bị, tuỳ thuộc vào loại thiết bị, CÓ THỂ có một số yêu cầu nhất định như được mô tả trong phần 2 cho các thao tác đọc và ghi sau đây:
- Hiệu suất ghi tuần tự. Được đo bằng cách ghi một tệp 256 MB sử dụng bộ đệm ghi 10 MB.
- Hiệu suất ghi ngẫu nhiên. Được đo bằng cách ghi một tệp 256 MB sử dụng bộ đệm ghi 4KB.
- Hiệu suất đọc tuần tự. Được đo bằng cách đọc tệp có kích thước 256 MB sử dụng bộ đệm ghi 10 MB.
- Hiệu suất đọc ngẫu nhiên. Được đo bằng cách đọc tệp 256 MB sử dụng bộ đệm ghi 4KB.
8.3. Chế độ tiết kiệm điện
Nếu việc triển khai thiết bị bao gồm các tính năng giúp cải thiện việc quản lý nguồn điện thiết bị có trong AOSP (ví dụ: Bộ chứa chế độ chờ ứng dụng, Nghỉ) hoặc mở rộng các tính năng để áp dụng các hạn chế mạnh hơn Bộ chứa chế độ chờ ứng dụng BỊ HẠN CHẾ, thì các tính năng đó:
- [C-1-1] PHẢI NOT deviate from the AOSP triển khai cho các kích hoạt, bảo trì, thuật toán đánh thức và sử dụng các chế độ cài đặt hệ thống toàn cầu hoặc DeviceConfig of App Standby and Doze power-saving WebView
- [C-1-2] PHẢI NOT deviate from the AOSP triển khai cho việc sử dụng các chế độ cài đặt toàn cầu hoặc DeviceConfig để quản lý throttling of jobs, cảnh báo và mạng cho các ứng dụng trong mỗi nhóm cho chế độ chờ Ứng dụng.
- [C-1-3] PHẢI NOT deviate from the AOSP triển khai for the number of the App Standby Buckets used for App-Pendingby.
- [C-1-4] PHẢI triển khai App Standby Buckets và Doze như mô tả trong Power Management.
- [C-1-5] PHẢI Return
true
forPowerManager.isPowerSaveMode()
khi thiết bị đang ở chế độ tiết kiệm điện. - [C-1-6] PHẢI cung cấp tên người dùng tương tác để hiển thị tất cả các ứng dụng được miễn trừ từ Chế độ chờ ứng dụng và chế độ tiết kiệm pin doze hoặc bất kỳ chế độ tối ưu hoá pin nào và PHẢI triển khai ACTION_REQUEST_ Lưu hành_BATTERY_OPTIMIZATIONS ý định hỏi người dùng để cho phép một ứng dụng bỏ qua tối ưu hóa pin.
- [C-SR-1] AreĐể nhà phát triển đề xuất một thuộc tính tương tác cho người dùng bật và tắt tính năng tiết kiệm pin.
- [C-SR-2] AreĐể nhà phát triển tiết kiệm năng lượng.
Nếu việc triển khai thiết bị mở rộng các tính năng quản lý nguồn điện có trong AOSP và tiện ích đó áp dụng nhiều hạn chế nghiêm ngặt hơn so với Bộ chứa chế độ chờ ứng dụng hiếm, hãy tham khảo mục 3.5.1.
Ngoài các chế độ tiết kiệm năng lượng, Android thiết bị triển khai có thể triển khai bất kỳ hoặc tất cả 4 trạng thái năng lượng ngủ như được xác định bởi Giao diện cấu hình và năng lượng nâng cao (ACPI).
Nếu các hoạt động triển khai thiết bị triển khai trạng thái nguồn S4 như được xác định bởi ACPI, thì các trạng thái đó:
- [C-1-1]{4} enter this state only after the user has take an express action to put the device in an inactive state (e.g. by đóng a lid that is physical part of the device orTừ tắt a xe hoặc truyền hình) và before the user re-activates the device (e.g. byopening the lid or turn the xe orTV back on).
Nếu các hoạt động triển khai thiết bị triển khai trạng thái nguồn S3 như được xác định bởi ACPI, thì các trạng thái đó:
[C-2-1] PHẢI meet C-1-1 above, or, PHẢI enter S3 state only when third-party applications do not need the system resources (e.g. the screen, CPU).
Ngược lại, PHẢI thoát khỏi trạng thái S3 khi các ứng dụng bên thứ ba cần tài nguyên hệ thống, như mô tả trên SDK này.
Ví dụ: trong khi các ứng dụng bên thứ ba yêu cầu giữ màn hình luôn bật qua
FLAG_KEEP_SCREEN_ON
hoặc tiếp tục chạy CPU quaPARTIAL_WAKE_LOCK
, thiết bị KHÔNG ĐƯỢC nhập trạng thái S3 trừ khi, như được mô tả trong C-1-1, người dùng đã thực hiện hành động rõ ràng để đặt thiết bị ở trạng thái không hoạt động. Ngược lại, tại thời điểm một tác vụ mà các ứng dụng bên thứ ba triển khai thông qua JobScheduler được kích hoạt hoặc Firebase Cloud Messaging được gửi đến các ứng dụng của bên thứ ba, thiết bị PHẢI thoát khỏi trạng thái S3 trừ khi người dùng đã đặt thiết bị ở trạng thái không hoạt động. Đây chưa phải là ví dụ toàn diện và AOSP sẽ triển khai các tín hiệu đánh thức mở rộng để kích hoạt đánh thức từ trạng thái này.
8.4. Kế toán tiêu thụ điện năng
Việc tính toán và báo cáo mức tiêu thụ điện năng chính xác hơn sẽ cung cấp cho nhà phát triển ứng dụng cả các ưu đãi lẫn công cụ để tối ưu hoá mô hình sử dụng điện năng của ứng dụng.
Triển khai thiết bị:
- [C-SR-1] Để các danh sách phát trực tiếp được hỗ trợ trong quá trình này, các thành phần trong hồ sơ năng lượng cho mỗi thành phần có xác định các giá trị tiêu thụ hiện tại cho mỗi thành phần phần cứng và tiêu hao pin gần đúng do các thành phần theo thời gian như được lập tài liệu trên trang web Dự án nguồn mở Android.
- [C-SR-2] Liên minh Dẫn Quảng cáo để báo cáo tất cả các giá trị tiêu thụ năng lượng in milliampere giờ (mAh).
- [C-SR-3] "{ĐỀ XUẤT" để báo cáo mức tiêu thụ điện năng của CPU trên mỗi UID của quy trình.
Dự án nguồn mở Android đáp ứng yêu cầu này thông qua việc triển khai mô-đun nhân
uid_cputime
. - [C-SR-4] Nói Dẫn Quảng Cáo để làm cho việc sử dụng năng lượng này có sẵn thông qua
adb shell dumpsys batterystats
lệnh shell cho nhà phát triển ứng dụng. - NÊN được gán cho chính thành phần phần cứng nếu không thể phân bổ mức sử dụng năng lượng thành phần phần cứng cho một ứng dụng.
8,5. Hiệu suất nhất quán
Hiệu suất có thể biến động đáng kể đối với các ứng dụng chạy trong thời gian dài có hiệu suất cao, do các ứng dụng khác chạy trong nền hoặc điều tiết CPU do giới hạn nhiệt độ. Android bao gồm các giao diện có lập trình để khi thiết bị có thể hoạt động, ứng dụng trên nền trước hàng đầu có thể yêu cầu hệ thống tối ưu hoá việc phân bổ tài nguyên nhằm giải quyết những biến động như vậy.
Triển khai thiết bị:
[C-0-1] PHẢI báo cáo sự hỗ trợ của Persisted Performance Mode chính xác thông qua phương thức API
PowerManager.isSustainedPerformanceModeSupported()
.NÊN hỗ trợ Chế độ hiệu suất bền vững.
Nếu quá trình triển khai thiết bị báo cáo khả năng hỗ trợ Chế độ hiệu suất bền vững, thì họ:
- [C-1-1] PHẢI cung cấp ứng dụng nền trước hàng đầu một mức độ hiệu suất nhất quán cho ít nhất 30 phút, khi ứng dụng yêu cầu.
- [C-1-2] PHẢI thỏa mãn API
Window.setSustainedPerformanceMode()
và các API liên quan khác.
Nếu quá trình triển khai thiết bị bao gồm 2 lõi CPU trở lên, thì các lõi CPU đó:
- nên cung cấp ít nhất một lõi độc quyền có thể được đặt trước bởi ứng dụng nền trước.
Nếu các hoạt động triển khai thiết bị hỗ trợ việc đặt trước một lõi độc quyền cho ứng dụng trên nền trước, thì chúng:
- [C-2-1] NOT report through the
Process.getExclusiveCores()
API method the ID numbers of the unique cores that can be reservation by the topforeground application. - [C-2-2] PHẢI not allow any user space processes except the device controls used by the application to run on the unique cores, but MAY allow some kernel processes to run as needed.
Nếu quá trình triển khai thiết bị không hỗ trợ lõi độc quyền, thì các quá trình triển khai trên thiết bị sẽ:
- [C-3-1] PHẢI trả về danh sách trống thông qua
Process.getExclusiveCores()
API phương thức.
9. Khả năng tương thích của mô hình bảo mật
Triển khai thiết bị:
[C-0-1] PHẢI triển khai mô hình bảo mật nhất quán với mô hình bảo mật nền tảng Android như đã xác định trong Tài liệu tham khảo về bảo mật và quyền trong API trong tài liệu dành cho nhà phát triển Android.
[C-0-2] PHẢI hỗ trợ cài đặt các ứng dụng tự ký mà không yêu cầu bất kỳ quyền/chứng chỉ bổ sung nào từ bất kỳ bên thứ ba/cơ quan nào.
Nếu các hoạt động triển khai thiết bị khai báo tính năng android.hardware.security.model.compatible
, thì các hoạt động đó:
- [C-1-1] PHẢI hỗ trợ các yêu cầu được liệt kê trong các tiểu mục sau.
9.1. Quyền
Triển khai thiết bị:
[C-0-1] PHẢI support the Android permissions model and the Android trở Model như đã xác định trong tài liệu dành cho nhà phát triển Android. Cụ thể, họ PHẢI thực thi từng quyền và vai trò được xác định như mô tả trong tài liệu SDK; không có quyền và vai trò nào có thể bị bỏ qua, thay đổi hoặc bỏ qua.
CÓ THỂ thêm các quyền bổ sung, miễn là các chuỗi mã nhận dạng quyền mới không nằm trong không gian tên
android.\*
.[C-0-2] Các quyền có
protectionLevel
làPROTECTION_FLAG_PRIVILEGED
KHÔNG được cấp cho các ứng dụng được cài đặt trước trong(các) đường dẫn đặc quyền của ảnh hệ thống (cũng như tệp APEX) và thuộc tập hợp con của các quyền được đưa vào danh sách cho phép rõ ràng cho từng ứng dụng. Phương thức triển khai AOSP đáp ứng yêu cầu này bằng cách đọc và tuân theo các quyền trong danh sách cho phép cho từng ứng dụng từ các tệp trong đường dẫnetc/permissions/
và sử dụng đường dẫn đặc quyềnsystem/priv-app
.
Quyền có mức độ bảo vệ nguy hiểm là quyền khi bắt đầu chạy.
Ứng dụng có targetSdkVersion
> 22 sẽ yêu cầu chúng trong thời gian chạy.
Triển khai thiết bị:
- [C-0-3]{4} show a direct Interface for the user to confirm should to Grant the requested Runtime permissions và cũng cung cấp một giao diện cho người dùng để quản lý các quyền thời gian chạy.
- [C-0-4] PHẢI have one and only one perform of cả Cả hai giao diện người dùng. Nếu phương thức triển khai thiết bị hỗ trợ một thiết bị đồng hành, thì thiết bị đồng hành CÓ THỂ cung cấp một giao diện bổ sung.
[C-0-5] KHÔNG ĐƯỢC CẤP bất kỳ quyền thời gian chạy nào cho ứng dụng trừ khi:
- Các thiết bị này được cài đặt tại thời điểm vận chuyển thiết bị VÀ
Có thể có được sự đồng ý của người dùng trước khi ứng dụng sử dụng quyền,
HOẶC
Các quyền khi bắt đầu chạy được cấp theo chính sách cấp quyền mặc định hoặc để giữ một vai trò trên nền tảng.
[C-0-6]{4} saved the
android.permission.RECOVER_KEYSTORE
permission only to system apps that registration a secure Recovery Agent. Tác nhân khôi phục được bảo mật đúng cách được định nghĩa là một tác nhân phần mềm trên thiết bị đồng bộ hoá với một bộ nhớ từ xa bên ngoài thiết bị, được trang bị phần cứng bảo mật với khả năng bảo vệ tương đương hoặc mạnh hơn những gì được mô tả trong Dịch vụ lưu trữ khoá Google Cloud để ngăn chặn các cuộc tấn công brute force đối với yếu tố kiến thức màn hình khoá.
Triển khai thiết bị:
[C-0-7] PHẢI tuân thủ Android location permissions thuộc tính khi một ứng dụng yêu cầu vị trí hoặc dữ liệu hoạt động thể chất thông qua Android API tiêu chuẩn hoặc cơ chế độc quyền. Những dữ liệu này bao gồm nhưng không giới hạn ở:
- Vị trí của thiết bị (ví dụ: vĩ độ và kinh độ) như mô tả trong mục 9.8.8.
- Thông tin có thể dùng để xác định hoặc ước tính vị trí của thiết bị (ví dụ: SSID, BSSID, Cell ID hoặc vị trí mạng mà thiết bị được kết nối).
- Hoạt động thể chất của người dùng hoặc cách phân loại hoạt động thể chất.
Cụ thể hơn là việc triển khai thiết bị:
- [C-0-8]{4} receive user Consent to allow an app to access the location orHệ thống hoạt động thể chất.
- [C-0-9] PHẢI Grant a Runtime permission ONLY cho ứng dụng giữ đủ quyền như được mô tả trên SDK.
Ví dụ: TelephonyManager#getServiceState cần có
android.permission.ACCESS_FINE_LOCATION
).
Trường hợp ngoại lệ duy nhất đối với các thuộc tính quyền truy cập thông tin vị trí của Android ở trên là khi ứng dụng không truy cập vào Vị trí để lấy hoặc xác định vị trí của người dùng; cụ thể:
- Khi các ứng dụng có quyền
RADIO_SCAN_WITHOUT_LOCATION
. - Đối với mục đích định cấu hình và thiết lập thiết bị, trong đó các ứng dụng hệ thống sẽ có quyền
NETWORK_SETTINGS
hoặcNETWORK_SETUP_WIZARD
.
Các quyền có thể được đánh dấu là bị hạn chế làm thay đổi hành vi của các quyền đó.
[C-0-10] Permissions đánh dấu bằng cờ
hardRestricted
KHÔNG ĐƯỢC cấp cho ứng dụng trừ khi:- Tệp APK ứng dụng nằm trong phân vùng hệ thống.
- Người dùng chỉ định vai trò liên kết với quyền
hardRestricted
cho một ứng dụng. - Trình cài đặt này sẽ cấp
hardRestricted
cho một ứng dụng. - Một ứng dụng được cấp
hardRestricted
trên phiên bản Android cũ.
[C-0-11] Các ứng dụng nắm giữ quyền
softRestricted
PHẢI get only limited access and NOT Đạt toàn quyền truy cập cho đến khi được liệt kê trong danh sách cho phép như được mô tả trong SDK, trong đó quyền truy cập đầy đủ và giới hạn được định nghĩa cho mỗi quyềnsoftRestricted
(ví dụ:READ_EXTERNAL_STORAGE
).[C-0-12] NOT cung cấp bất kỳ hàm hoặc API tuỳ chỉnh nào để bỏ qua các hạn chế về quyền được xác định trong setPermissionPolicy và setPermission GrantsState.
[C-0-13] NOT use the AppOpsManager APIs để ghi và theo dõi mỗi và mọi quyền truy cập có lập trình của dữ liệu được bảo vệ bởi nguy hiểm từ các hoạt động và dịch vụ Android.
[C-0-14] PHẢI only assign ngang vai trò cho các ứng dụng có chức năng đáp ứng các yêu cầu về vai trò.
[C-0-15]{4} notdefined role that are duplicate or Superset functions of role Definition by the platform.
Nếu thiết bị báo cáo android.software.managed_users
, thì các thiết bị đó sẽ:
- [C-1-1] PHẢI NOT have the following permissions below enabled by the
admin:
- Vị trí (ACCESS_BACKGROUND_LOCATION, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION).
- Máy ảnh (CAMERA)
- Micrô (RECORD_AUDIO)
- Cảm biến cơ thể (BODY_SENSORS)
- Hoạt động thể chất (ACTIVITY_RECOGNITION)
Nếu các phương thức triển khai thiết bị cung cấp cho người dùng một thuộc tính tương tác để chọn ứng dụng nào có thể vẽ trên các ứng dụng khác bằng hoạt động xử lý ý định ACTION_MANAGE_OVERLAY_PERMISSION
, thì các ứng dụng đó sẽ:
- [C-2-1] PHẢI đảm bảo rằng tất cả các hoạt động có bộ lọc ý định cho ý định
ACTION_MANAGE_OVERLAY_PERMISSION
đều có cùng màn hình giao diện người dùng, bất kể ứng dụng khởi tạo hay mọi thông tin mà ứng dụng đó cung cấp.
Nếu các hoạt động triển khai thiết bị báo cáo android.software.device_admin, thì các ứng dụng đó sẽ:
- [C-3-1]{4} show a disclaimer during complete managed device setup (device owner setup) (thiết bị chủ sở hữu thiết bị thiết lập) nêu rằng quản trị viên CNTT sẽ có khả năng cho phép các ứng dụng kiểm soát các chế độ cài đặt trên điện thoại bao gồm micrô, máy ảnh và vị trí, với các lựa chọn cho người dùng tiếp tục thiết lập hoặc thoát khỏi thiết lập UNLESS the admin has selected out of control of permissions on the device.
Nếu quá trình triển khai thiết bị cài đặt trước bất kỳ gói nào có vai trò System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence hoặc System Visual Intelligence), thì các gói:
- [C-4-1] PHẢI đáp ứng tất cả các yêu cầu được nêu cho việc triển khai thiết bị trong mục "9.8.6 Content Capture".
- [C-4-2] KHÔNG ĐƯỢC có quyền android.permission.INTERNET. Đây là quy tắc nghiêm ngặt hơn so với chỉ số được liệt kê trong mục 9.8.6.
- [C-4-3] KHÔNG ĐƯỢC ràng buộc với các ứng dụng khác, ngoại trừ các ứng dụng hệ thống sau: Bluetooth, Danh bạ, Phương tiện, Điện thoại, SystemUI, và các thành phần cung cấp Internet API. Điều này nghiêm ngặt hơn so với
9.2. UID và tách biệt quy trình
Triển khai thiết bị:
- [C-0-1] PHẢI hỗ trợ mô hình hộp cát của ứng dụng Android, trong đó mỗi ứng dụng chạy dưới dạng một Unixstyle UID duy nhất và trong một quy trình riêng.
- [C-0-2] PHẢI support running multiple applications as the same Linux user ID, provided that the applications are eligible signed and Local, as specified in the Security and Permissions reference.
9.3. Quyền đối với hệ thống tệp
Triển khai thiết bị:
- [C-0-1] PHẢI support the Android file access permissions model as specified in the Security and Permissions reference.
9.4. Môi trường thực thi thay thế
Quá trình triển khai thiết bị PHẢI duy trì tính nhất quán của mô hình bảo mật và cấp quyền của Android, ngay cả khi chúng bao gồm các môi trường thời gian chạy thực thi ứng dụng bằng một số phần mềm hoặc công nghệ khác ngoài Định dạng có thể thực thi Dalvik hoặc mã gốc. Hay nói cách khác:
[C-0-1] khoá Những thời gian chạy phải chính là các ứng dụng Android, và tuân theo tiêu chuẩn mô hình bảo mật Android, như mô tả ở nơi khác trong section 9.
[C-0-2] Alternative Runtimes KHÔNG ĐƯỢC cấp quyền truy cập vào các tài nguyên được bảo vệ bởi quyền không được yêu cầu trong tệp
AndroidManifest.xml
của thời gian chạy qua cơ chế <uses-permission
>.[C-0-3] Alternative Runtimes PHẢI NOT cho phép ứng dụng sử dụng các tính năng được bảo vệ bởi quyền của Android bị hạn chế cho các ứng dụng hệ thống.
[C-0-4] alternative Runtimes PHẢI instead of the Android Sandbox model and installed applications using an insteadThời gian chạy KHÔNG ĐƯỢC sử dụng lại hộp cát của bất kỳ ứng dụng nào khác được cài đặt trên thiết bị, ngoại trừ thông qua cơ chế Android tiêu chuẩn của user ID chia sẻ và chứng chỉ ký.
[C-0-5] thay thế Runtimes KHÔNG ĐƯỢC chạy với, cấp, hoặc được cấp quyền truy cập vào hộp cát tương ứng với các ứng dụng Android khác.
[C-0-6] Replace Runtimes KHÔNG ĐƯỢC đưa ra với, được cấp, hoặc cấp cho các ứng dụng khác bất kỳ đặc quyền nào của siêu người dùng (gốc) hoặc của bất kỳ ID người dùng nào khác.
[C-0-7] When the
.apk
files of thayĐiểm Runtimes are includes in the system image of device dãy triển khai, nó PHẢI be signed with a key or from the key used to sign other applications added with the deviceimplementations.[C-0-8] When installed applications, replace Runtimes PHẢI lấy sự đồng ý của người dùng cho các quyền Android được sử dụng bởi ứng dụng.
[C-0-9] When an application needs to make use of a device resource for which has a relevant Android permissions (such as Camera, GPS,baov).
[C-0-10] When the Runtime môi trường không ghi lại các khả năng của ứng dụng theo cách này, môi trường thời gian chạy PHẢI liệt kê tất cả các quyền do chính thời gian chạy đó giữ khi cài đặt bất kỳ ứng dụng nào bằng cách sử dụng thời gian chạy đó.
Môi trường thời gian chạy thay thế NÊN cài đặt ứng dụng qua
PackageManager
vào hộp cát Android riêng biệt (Mã nhận dạng người dùng Linux, v.v.).Môi trường thời gian chạy thay thế CÓ THỂ cung cấp một hộp cát Android duy nhất được tất cả các ứng dụng dùng chung thời gian chạy thay thế.
9,5. Hỗ trợ nhiều người dùng
Android có khả năng hỗ trợ nhiều người dùng, đồng thời hỗ trợ chế độ tách biệt người dùng hoàn toàn cũng như sao chép hồ sơ người dùng bằng chế độ tách biệt một phần(tức là hồ sơ người dùng bổ sung duy nhất thuộc loại android.os.usertype.profile.CLONE
).
- Device triển khai May but NÊN NOT enable multi-user if they use re mạc media for primary external storage.
Nếu quá trình triển khai thiết bị có hỗ trợ nhiều người dùng, thì họ:
- [C-1-2] PHẢI, for mỗi người dùng, triển khai mô hình bảo mật nhất quán với mô hình bảo mật nền tảng Android như đã xác định trong Tài liệu tham chiếu bảo mật và quyền trong API.
- [C-1-3] PHẢI haveCó riêng biệt và tách biệt bộ nhớ ứng dụng dùng chung (a.k.a.
/sdcard
) Hiển thị cho mỗi phiên bản người dùng. - [C-1-4] PHẢI đảm bảo rằng các ứng dụng do và đang chạy trên mặt một cho người dùng không thể liệt kê, đọc, hoặc ghi đến các tệp được sở hữu bởi bất kỳ người dùng nào khác, ngay cả khi dữ liệu của cả hai người dùng được lưu trữ trên cùng một âm lượng hoặc hệ thống tệp.
- [C-1-5] PHẢI mã hoá nội dung của thẻ SD khi đa người dùng được bật sử dụng một khoá được lưu trữ chỉ trên phương tiện không thể tháo rời chỉ truy cập được vào hệ thống nếu thiết bị triển khai sử dụng phương tiện có thể tháo rời cho API lưu trữ bên ngoài. Vì việc này sẽ làm cho máy tính lưu trữ không đọc được nội dung nghe nhìn, nên các quá trình triển khai thiết bị sẽ cần phải chuyển sang MTP hoặc một hệ thống tương tự để cung cấp cho máy tính lưu trữ quyền truy cập vào dữ liệu của người dùng hiện tại.
Nếu quá trình triển khai thiết bị bao gồm tính năng hỗ trợ cho nhiều người dùng, thì đối với tất cả người dùng ngoại trừ những người dùng được tạo riêng để chạy các thực thể kép của cùng một ứng dụng, họ:
- [C-2-1] NOT haveBạn đã tách và cô lập ứng dụng lưu trữ dùng chung (a.k.a. /sdcard) characters for từng người dùng phiên bản.
- [C-2-2] PHẢI đảm bảo rằng các ứng dụng thuộc sở hữu và đang chạy trên đại diện của một người dùng nhất định không thể liệt kê, đọc, hoặc ghi đến các tệp được sở hữu bởi bất kỳ người dùng nào khác, ngay cả khi dữ liệu của cả hai người dùng được lưu trữ trên cùng một âm lượng hoặc hệ thống tệp.
Thiết bị triển khai thiết bị CÓ THỂ tạo thêm một hồ sơ người dùng bổ sung thuộc loại
android.os.usertype.profile.CLONE
đối với người dùng chính (và chỉ đối với
người dùng chính) nhằm mục đích chạy các thực thể kép của cùng một ứng dụng.
Các thực thể kép này chia sẻ bộ nhớ tách biệt một phần, được trình bày cho người dùng cuối trong trình chạy cùng lúc và xuất hiện trong cùng một chế độ xem gần đây.
Ví dụ: tính năng này có thể được dùng để hỗ trợ người dùng cài đặt 2 phiên bản riêng biệt của một ứng dụng trên thiết bị hai SIM.
Nếu quá trình triển khai thiết bị tạo hồ sơ người dùng bổ sung được thảo luận ở trên, thì họ:
- [C-3-1] PHẢI only cung cấp quyền truy cập vào storage or data that is suspended to the parent user profile or is directly owner by this additional user profile.
- [C-3-2] KHÔNG ĐƯỢC coi đây là hồ sơ công việc.
- [C-3-3] PHẢI have Isolate private app data characters from the parent account (Tài khoản người dùng cha mẹ).
- [C-3-4] PHẢI NOT allow the additional user profile to be created if there is a Device chóng Chiếc điện thoại được cấp phép (xem phần 3.9.1) hoặc allow a DeviceOwner to be assigneded without the additional user profile first.
9.6. Cảnh báo qua tin nhắn dịch vụ
Android hỗ trợ tính năng cảnh báo cho người dùng về mọi tin nhắn SMS đặc biệt gửi đi. Tin nhắn SMS dịch vụ là những tin nhắn văn bản được gửi đến một dịch vụ đã đăng ký với nhà mạng và có thể phát sinh phí cho người dùng.
Nếu các hoạt động triển khai thiết bị khai báo dịch vụ hỗ trợ android.hardware.telephony
, thì chúng:
- [C-1-1]{4}warning users before sending a SMS message to ngân sách
identifier by regular forms definition in
/data/misc/sms/codes.xml
file in the device. Dự án nguồn mở Android ngược dòng cung cấp phương thức triển khai đáp ứng yêu cầu này.
9,7. Tính năng bảo mật
Hoạt động triển khai thiết bị PHẢI đảm bảo tuân thủ các tính năng bảo mật trong cả hạt nhân và nền tảng như mô tả bên dưới.
Android Sandbox bao gồm các tính năng sử dụng hệ thống kiểm soát truy cập bắt buộc (MAC) nâng cao bảo mật của Linux (SELinux), hộp cát bảo mật và các tính năng bảo mật khác trong nhân Linux. Triển khai thiết bị:
- [C-0-1] PHẢI duy trì khả năng tương thích với các ứng dụng hiện có, ngay cả khi SELinux hoặc bất kỳ tính năng bảo mật nào khác được triển khai bên dưới khung Android.
- [C-0-2] PHẢI NOT have a visible user delivery when a security violation is detected and successfully blocked by the security feature implementationed below the Android Thay đổi khung, nhưng CÓ THỂ XEM LẠI giao diện người dùng khi một vi phạm bảo mật được bỏ chặn xảy ra dẫn đến một khai thác thành công.
- [C-0-3] KHÔNG được phép tạo SELinux hoặc bất kỳ tính năng bảo mật nào khác được triển khai bên dưới khung Android có thể định cấu hình cho người dùng hoặc nhà phát triển ứng dụng.
- [C-0-4] PHẢI NOT allow an application that can affected other application through an API (such as a Device chóng API) to configuration a policy that Fitbit compatibility.
- [C-0-5] PHẢI chia khung phương tiện thành nhiều quy trình để có thể có khả năng thu hẹp hơn cấp quyền truy cập cho mỗi quy trình như mô tả trong trang web Dự án nguồn mở Android.
- [C-0-6] PHẢI triển khai cơ chế hộp cát ứng dụng hạt nhân cho phép lọc cuộc gọi hệ thống bằng cách sử dụng chính sách có thể định cấu hình từ chương trình đa luồng. Dự án nguồn mở Android ngược dòng đáp ứng yêu cầu này thông qua việc bật seccomp-BPF bằng tính năng đồng bộ hoá nhóm luồng (TSYNC) như mô tả trong mục Cấu hình hạt nhân của source.android.com.
Các tính năng tự bảo vệ và tính toàn vẹn của hạt nhân là phần không thể thiếu trong hoạt động bảo mật của Android. Triển khai thiết bị:
- [C-0-7] PHẢI triển khai cơ chế bảo vệ tràn vùng đệm ngăn xếp hạt nhân.
Ví dụ về những cơ chế như vậy là
CC_STACKPROTECTOR_REGULAR
vàCONFIG_CC_STACKPROTECTOR_STRONG
. - [C-0-8] PHẢI triển khai các biện pháp bảo vệ bộ nhớ nghiêm ngặt trong đó executable
code is read-only, read-only data is non-executable and non-writable, and
writable data is non-executable (e.g.
CONFIG_DEBUG_RODATA
orCONFIG_STRICT_KERNEL_RWX
). - [C-0-9] PHẢI triển khai static and Dynamic object size
bounds bến kiểm tra các bản sao giữa user-space và kernel-space
(e.g.
CONFIG_HARDENED_USERCOPY
) on devices first shipping with API level 28 trở lên. - [C-0-10] KHÔNG PHẢI thực thi bộ nhớ người dùng-space khi thực thi trong chế độ nhân (ví dụ: phần cứng PXN, hoặc được mô phỏng qua
CONFIG_CPU_SW_DOMAIN_PAN
hoặcCONFIG_ARM64_SW_TTBR0_PAN
) trên các thiết bị ban đầu vận chuyển bằng API cấp 28 trở lên. - [C-0-11] KHÔNG ĐƯỢC đọc hoặc ghi user-space nhớ in the
kernel external of regular usercopy access APIs (e.g. hardware PAN, or
emulated via
CONFIG_CPU_SW_DOMAIN_PAN
orCONFIG_ARM64_SW_TTBR0_PAN
) on devicesoriginal shipping with API level 28 or higher. - [C-0-12]{4} an kernel page table experiment if the hardware is
vulnerable to CVE-2017-5754 on all devices native shipping with API level
28 or higher (e.g.
CONFIG_PAGE_TABLE_ISOLATION
hoặcCONFIG_UNMAP_KERNEL_AT_EL0
). - [C-0-13]{4} triểnCchẳng hạn như dự đoán Hardening if the hardware is
vulnerable to CVE-2017-5715 on all devices must shipping with API level
28 or higher (e.g.
CONFIG_HARDEN_BRANCH_PREDICTOR
). - [C-SR-1] Are Internet dải lựa chọn 2016 để bật ngăn xếp khởi tạo trong nhân để ngăn việc sử dụng các biến cục bộ chưa khởi tạo (
CONFIG_INIT_STACK_ALL
hoặcCONFIG_INIT_STACK_ALL_ZERO
). - [C-SR-2] Are trì hoãn phát triển
__ro_after_init
[C-SR-3] Are kinh DOWNLOAD to randomize the layout of the kernel code and memory, and to Proguards that should eligible the randomization (e.g.
CONFIG_RANDOMIZE_BASE
with bootloader entropy via the/chosen/kaslr-seed Device Tree node
orEFI_RNG_PROTOCOL
).[C-SR-4] Are trì hoãn phát triển
CONFIG_CFI_CLANG
CONFIG_SHADOW_CALL_STACK
[C-SR-5] AreĐể nhà phát triển không tắt tính năng Control-Flow Integrity (CFI), với Shadow Call Stack (SCS) hoặc Integer Overflow Sanitization (IntSan) trên các thành phần đã bật,
[C-SR-6] Are Internet Sử dụng để kích hoạt CFI, SCS, and IntSan for any additional security-sensitive userspace components as {/9} in CFI và IntSan.
[C-SR-7] Are Từ chỗ ĐỀ XUẤT NÊN bật tính năng khởi tạo ngăn xếp trong nhân để ngăn chặn việc sử dụng các biến cục bộ chưa khởi tạo (
CONFIG_INIT_STACK_ALL
hoặcCONFIG_INIT_STACK_ALL_ZERO
).[C-SR-8] Are trì hoãn phát triển
CONFIG_INIT_ON_ALLOC_DEFAULT_ON
Nếu quá trình triển khai thiết bị sử dụng một nhân hệ điều hành Linux có khả năng hỗ trợ SELinux, thì các hoạt động triển khai thiết bị đó sẽ:
- [C-1-1] PHẢI triển khai SELinux.
- [C-1-2] PHẢI đặt SELinux thành chế độ thực thi toàn cục.
- [C-1-3] PHẢI định cấu hình tất cả các miền ở chế độ thực thi. Không có miền chế độ quyền truy cập nào được cho phép, bao gồm cả miền dành riêng cho một thiết bị/nhà cung cấp.
- [C-1-4] PHẢI NOT ổ đổi, bỏ qua, hoặc thay thế các quy tắc bao giờ hết hiện diện trong thư mục hệ thống/sepolicy được cung cấp trong Dự án nguồn mở Android ngược dòng (AOSP) và chính sách phải biên dịch với tất cả các quy tắc không bao giờ cho thấy, cho cả các miền AOSP SELinux cũng như các miền cụ thể của thiết bị/nhà cung cấp.
- [C-1-5] PHẢI chạy ứng dụng bên thứ ba nhắm mục tiêu API cấp 28 trở lên trong hộp cát SELinux với mỗi ứng dụng các hạn chế SELinux trên thư mục dữ liệu riêng tư của từng ứng dụng.
- NÊN giữ lại chính sách SELinux mặc định được cung cấp trong thư mục system/sepolicy của Dự án nguồn mở Android ngược dòng và chỉ thêm vào chính sách này cho cấu hình dành riêng cho thiết bị của họ.
Nếu quá trình triển khai thiết bị sử dụng nhân hệ điều hành không phải Linux hoặc Linux mà không có SELinux, thì chúng:
- [C-2-1] PHẢI sử dụng hệ thống kiểm soát quyền truy cập bắt buộc tương đương với SELinux.
Nếu quá trình triển khai thiết bị sử dụng thiết bị I/O có khả năng DMA, thì các hoạt động đó:
- [C-SR-9] Are Internet Sử dụng vị trí để phân tách từng thiết bị I/O có khả năng của DMA, sử dụng một IOMMU (e.g.the ARM SMMU).
Android chứa nhiều tính năng bảo vệ chuyên sâu không thể thiếu cho hoạt động bảo mật thiết bị. Ngoài ra, Android tập trung vào việc giảm các lớp chính của các lỗi thường gặp góp phần làm giảm chất lượng và tính bảo mật.
Để giảm lỗi bộ nhớ, các cách triển khai thiết bị:
- [C-SR-10] AreĐể thử nghiệm bằng các công cụ phát hiện lỗi bộ nhớ không gian người dùng như MTE cho thiết bị ARMv9, HWASan cho các thiết bị ARMv8+ hoặc ASan cho các loại thiết bị khác.
- [C-SR-11] AreĐể các thiết bị đang được thử nghiệm sử dụng các công cụ phát hiện lỗi nhân bộ nhớ như KASAN (CONFIG_KASAN, CONFIG_KASAN_HW_TAGS cho các thiết bị ARMv9, CONFIG_KASAN_SW_TAGS cho các thiết bị ARMv8 hoặc CONFIG_KASAN_GENERIC cho các loại thiết bị khác).
- [C-SR-12] AreĐể chỉ định dùng các công cụ phát hiện lỗi bộ nhớ trong bản phát hành công khai, chẳng hạn như MTE, GWP-ASan và KFENCE.
Nếu các hoạt động triển khai thiết bị sử dụng TEE dựa trên Arm TrustZone, thì các hoạt động triển khai thiết bị đó sẽ:
- [C-SR-13] AreĐể các nhà phát triển sử dụng một giao thức chuẩn cho chia sẻ bộ nhớ, giữa Android và TEE, như Arm Cài đặt khung cho Armv8-A (FF-A).
- [C-SR-14] AreĐể giới hạn các ứng dụng đáng tin cậy chỉ cho phép truy cập vào bộ nhớ đã được chia sẻ rõ ràng với họ thông qua giao thức trên, Nếu thiết bị có hỗ trợ ở cấp ngoại lệ Arm S-EL2, thì trình quản lý phân vùng bảo mật phải thực thi yêu cầu này. Nếu không, điều này sẽ được hệ điều hành TEE thực thi.
9,8. Quyền riêng tư
9.8.1. Nhật ký sử dụng
Android lưu trữ nhật ký về các lựa chọn của người dùng và quản lý nhật ký đó bằng UsageStatsManager.
Triển khai thiết bị:
- [C-0-1] PHẢI duy trì khoảng thời gian lưu giữ hợp lý lịch sử người dùng đó.
- [C-SR-1] AreĐể giữ các khoảng thời gian lưu giữ 14 days as configuration by default in the AOSP triển khai.
Android lưu trữ các sự kiện hệ thống bằng cách sử dụng giá trị nhận dạng StatsLog
, đồng thời quản lý nhật ký đó thông qua StatsManager
và API Hệ thống IncidentManager
.
Triển khai thiết bị:
- [C-0-2] PHẢI chỉ bao gồm các trường được đánh dấu bằng
DEST_AUTOMATIC
trong báo cáo sự cố được tạo bởi lớp System APIIncidentManager
. - [C-0-3] PHẢI not use the system event identifier to log any other event
than what is description in the
StatsLog
SDK documents. Nếu các sự kiện hệ thống bổ sung được ghi lại, chúng CÓ THỂ sử dụng một giá trị nhận dạng nguyên tử khác trong khoảng từ 100.000 đến 200.000.
9.8.2. Đang ghi
Triển khai thiết bị:
- [C-0-1] PHẢI NOT Thư tải trước hoặc phân phối phần mềm thành phần out-of-box that send the user's private information (e.g. 拰, text Display on the screen, bugreport) off the device without the user's Consent or clear on notifications.
- [C-0-2] truyền hiển thị và thu được sự đồng ý rõ ràng của người dùng cho phép mọi thông tin nhạy cảm
được hiển thị trên màn hình của người dùng được ghi lại bất cứ khi nào
màn hình truyền hoặc ghi màn hình được bật qua
MediaProjection
hoặc API độc quyền. KHÔNG ĐƯỢC cung cấp cho người dùng một thuộc tính tương tác để tắt tính năng hiển thị sự đồng ý của người dùng trong tương lai. - [C-0-3] PHẢI have an ID notification to the user while screen screens or screen recording is enabled. AOSP đáp ứng yêu cầu này bằng cách hiển thị biểu tượng thông báo hiển thị liên tục trên thanh trạng thái.
Nếu hoạt động triển khai thiết bị bao gồm chức năng trong hệ thống để ghi lại nội dung hiển thị trên màn hình và/hoặc ghi lại luồng âm thanh được phát trên thiết bị không phải qua API hệ thống ContentCaptureService
, hoặc các phương thức độc quyền khác được mô tả trong Mục 9.8.6 Thu thập nội dung, thì chúng:
- [C-1-1] PHẢI có thông báo liên tục cho người dùng bất cứ khi nào chức năng này được bật và chủ động ghi/ghi.
Nếu quá trình triển khai thiết bị bao gồm một thành phần được bật sẵn, có khả năng ghi lại âm thanh xung quanh và/hoặc ghi lại âm thanh phát trên thiết bị để suy ra thông tin hữu ích về ngữ cảnh của người dùng, thì các thành phần đó sẽ:
- [C-2-1] PHẢI KHÔNG lưu trữ trong bộ nhớ liên tục trên thiết bị hoặc truyền ra khỏi thiết bị âm thanh thô đã ghi hoặc bất kỳ định dạng nào có thể được chuyển đổi trở lại thành âm thanh gốc hoặc gần facsimile, ngoại trừ có sự đồng ý rõ ràng của người dùng.
"Chỉ báo micrô" là một khung hiển thị trên màn hình mà người dùng liên tục nhìn thấy và không thể bị che khuất. Người dùng hiểu rằng micrô đang được sử dụng(thông qua văn bản, màu sắc, biểu tượng độc đáo hoặc một số cách kết hợp).
"Chỉ báo camera" là một thành phần hiển thị trên màn hình mà người dùng liên tục nhìn thấy và không thể bị che khuất. Người dùng hiểu là camera đang được sử dụng (thông qua văn bản, màu sắc, biểu tượng duy nhất hoặc một số cách kết hợp).
Sau khi hiển thị giây đầu tiên, một chỉ báo có thể thay đổi về mặt hình ảnh, chẳng hạn như trở nên nhỏ hơn và không bắt buộc phải hiển thị như cách trình bày và hiểu được ban đầu.
Chỉ báo micrô có thể được hợp nhất với một chỉ báo máy ảnh được hiển thị chủ động, miễn là văn bản, biểu tượng hoặc màu sắc cho người dùng biết rằng quá trình sử dụng micrô đã bắt đầu.
Chỉ báo camera có thể được hợp nhất với một chỉ báo micrô đang hiển thị, miễn là văn bản, biểu tượng hoặc màu sắc cho người dùng biết rằng quá trình sử dụng camera đã bắt đầu.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-SR-1] AreĐể nhà phát triển sử dụng chỉ báo micrô khi một ứng dụng đang truy cập âm thanh dữ liệu từ micrô, nhưng không khi các micrô là
chỉ truy cập được bởi
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
, or app(s){/6} the role called out in Section 9.1 Permissions with CD3X IDs [C-SR-2-0">. . - [C-SR-2] AreĐể nhà phát triển đề xuất các ứng dụng hiển thị danh sách các ứng dụng gần đây và đang hoạt động, sử dụng micrô như trả về từ
PermissionManager.getIndicatorAppOpUsageData()
, cùng với mọi thông báo ghi nhận được liên kết với chúng. - [C-SR-3] Are trì hoãn 2 danh sách để không ẩn chỉ báo micrô cho các ứng dụng hệ thống có hiển thị giao diện người dùng hoặc tương tác trực tiếp người dùng.
Nếu các hoạt động triển khai thiết bị khai báo android.hardware.camera.any
, thì các quá trình triển khai thiết bị đó sẽ:
- [C-SR-4] AreĐể nhà phát triển sử dụng chỉ báo máy ảnh khi một ứng dụng đang truy cập trực tiếp dữ liệu máy ảnh, nhưng không khi nào máy ảnh chỉ được truy cập bởi ứng dụng(s) giữ vai trò được gọi ra trong Mục 9.1 Quyền with CDD identifier [C-3-X].
- [C-SR-5] AreĐể các ứng dụng đang hoạt động và gần đây hiển thị bằng máy ảnh như trả về từ
PermissionManager.getIndicatorAppOpUsageData()
, cùng với mọi thông báo ghi nhận được liên kết với chúng. - [C-SR-6] AreĐể nhà phát triển đề xuất tự động không ẩn chỉ báo máy ảnh cho hệ thống các ứng dụng có hiển thị giao diện người dùng hoặc tương tác trực tiếp người dùng.
9.8.3. Khả năng kết nối
Nếu các quá trình triển khai thiết bị có cổng USB hỗ trợ chế độ thiết bị ngoại vi USB, thì thiết bị đó sẽ:
- [C-1-1] truyền ngang người dùng yêu cầu sự đồng ý của người dùng trước khi cho phép truy cập vào nội dung của bộ nhớ được chia sẻ qua cổng USB.
9.8.4. Lưu lượng truy cập mạng
Triển khai thiết bị:
- [C-0-1] PHẢI preinstall the same root Certificate for the system-trusted Certificate Authority (CA) store as provided in the upstream Android Open Source Project.
- [C-0-2] PHẢI gửi cùng một kho lưu trữ CA gốc của người dùng trống.
- [C-0-3] PHẢI display a alerts to the user specified the network traffic may be remarketing, when a user root CA is added.
Nếu lưu lượng truy cập thiết bị được định tuyến thông qua VPN, việc triển khai thiết bị:
- [C-1-1] PHẢI display a warning to the user specified during:
- Lưu lượng truy cập mạng đó có thể được giám sát.
- Lưu lượng truy cập mạng đó đang được định tuyến thông qua ứng dụng VPN cụ thể cung cấp VPN.
Nếu quá trình triển khai thiết bị có cơ chế được bật sẵn theo mặc định, sẽ định tuyến lưu lượng truy cập dữ liệu mạng thông qua máy chủ proxy hoặc cổng VPN (ví dụ: tải trước dịch vụ VPN đã được cấp android.permission.CONTROL_VPN
), thì chúng:
- [C-2-1] PHẢI request for the user's Consent before enable that basic,
except that VPN is enabled by the Device Policy Control via the
DevicePolicyManager.setAlwaysOnVpnPackage()
, in that case the user do do not need to provide a private Consent, but PHẢI only be notifications.
Nếu các hoạt động triển khai thiết bị triển khai một thuộc tính tương tác của người dùng để bật/tắt chức năng "always-on VPN" của ứng dụng VPN bên thứ ba, thì các tuỳ chọn đó:
- [C-3-1] PHẢI tắt this user thuộc for apps that do not support
always-on VPN service in the
AndroidManifest.xml
file via setting theSERVICE_META_DATA_SUPPORTS_ALWAYS_ON
attribute tofalse
.
9.8.5. Thông tin nhận dạng thiết bị
Triển khai thiết bị:
- [C-0-1] NOT prevent access to the device sê-ri number and, where
possible, IMEI/MEID, SIM next number, and International Mobile
Subscription Identity (IMSI) from an app,, trừ khi nó đáp ứng một trong các
yêu cầu sau:
- là một ứng dụng của nhà mạng đã ký mà nhà sản xuất thiết bị đã xác minh.
- đã được cấp quyền
READ_PRIVILEGED_PHONE_STATE
. - có đặc quyền của nhà mạng như xác định trong phần UICC nhà cung cấp đặc quyền.
- là chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ đã được cấp quyền
READ_PHONE_STATE
. - (Chỉ đối với số sê-ri của SIM/ICCID) có yêu cầu theo quy định của địa phương là ứng dụng phát hiện các thay đổi trong danh tính của người đăng ký.
9.8.6. Ghi lại nội dung và tìm kiếm trong ứng dụng
Android, thông qua API hệ thống ContentCaptureService
, AugmentedAutofillService
, AppSearchGlobalManager.query
hoặc bằng các phương thức độc quyền khác, hỗ trợ cơ chế triển khai thiết bị để ghi lại các hoạt động tương tác sau đây với dữ liệu ứng dụng giữa ứng dụng và người dùng:
- Văn bản và đồ hoạ hiển thị trên màn hình, bao gồm nhưng không giới hạn ở thông báo và dữ liệu hỗ trợ qua API
AssistStructure
. - Dữ liệu nội dung nghe nhìn, chẳng hạn như âm thanh hoặc video, mà thiết bị ghi lại hoặc phát.
- Sự kiện nhập (ví dụ: phím, chuột, cử chỉ, giọng nói, video và hỗ trợ tiếp cận).
- Mọi sự kiện khác mà một ứng dụng cung cấp cho hệ thống thông qua API
Content Capture
hoặc APIAppSearchManager
qua một API Android và API độc quyền có khả năng tương tự. - Mọi văn bản hoặc dữ liệu khác được gửi qua
TextClassifier API
đến System TextClassifier (tức là dịch vụ hệ thống) để hiểu ý nghĩa của văn bản cũng như tạo hành động dự đoán tiếp theo dựa trên văn bản đó. - Dữ liệu do hoạt động triển khai nền tảng AppSearch lập chỉ mục, bao gồm nhưng không giới hạn ở văn bản, đồ hoạ, dữ liệu nội dung nghe nhìn hoặc các dữ liệu tương tự khác.
Nếu các hoạt động triển khai thiết bị thu thập được dữ liệu ở trên, chúng:
- [C-1-1] PHẢI mã hoá tất cả những dữ liệu đó khi được lưu trữ trong thiết bị. Quá trình mã hoá này CÓ THỂ được thực hiện bằng tính năng Mã hoá dựa trên tệp Android hoặc bất kỳ thuật toán mật mã nào được liệt kê dưới dạng API phiên bản 26 trở lên được mô tả trong SDK mật mã.
- [C-1-2] PHẢI NOT back up or RAW or encrypted data using Android backup methods or any other back up methods.
- [C-1-3]{4} only send allnhư data and the log of the device using a privacy-serving basic. Cơ chế bảo đảm quyền riêng tư được định nghĩa là "cơ chế chỉ cho phép phân tích ở dạng tổng hợp và ngăn chặn việc so khớp các sự kiện đã ghi lại hoặc kết quả phát sinh với từng người dùng", để ngăn việc dữ liệu của mỗi người dùng bị xâm nhập (ví dụ: được triển khai bằng một công nghệ sự riêng tư biệt lập như
RAPPOR
). - [C-1-4] truyền NOTunLiên kết dữ liệu như vậy với bất kỳ người dùng nhận dạng (chẳng hạn như
Account
) trên thiết bị, ngoại trừ với sự đồng ý của người dùng rõ ràng mỗi lần dữ liệu được liên kết. - [C-1-5] PHẢI NOT chia sẻ dữ liệu như vậy với các thành phần khác của hệ điều hành mà không theo yêu cầu được nêu trong phần hiện tại (9.8.6 Content Capture), ngoại trừ với sự đồng ý của người dùng rõ ràng mỗi lần nó được chia sẻ.
- [C-1-6] PHẢI cung cấp thuộc tính tương tác với người dùng để xoá dữ liệu như vậy rằng
ContentCaptureService
hoặc độc quyền có nghĩa là thu thập nếu dữ liệu được lưu trữ trong bất kỳ biểu mẫu nào trên thiết bị. - [C-1-7] PHẢI cung cấp một người dùng thuộc tính tương tác đến chọn-out-out of the data, thu thập qua AppSearch hoặc độc quyền có nghĩa là từ được hiển thị trong android platform e.g launcher.
- [C-SR-1] Are trì hoãn việc đề xuất NOT để yêu cầu quyền INTERNET.
- [C-SR-2] AreĐể chỉ phát triển các dịch vụ truy cập Internet thông qua các API có cấu trúc được hỗ trợ bởi công khai có sẵn open-source triển khai.
Nếu hoạt động triển khai thiết bị bao gồm một dịch vụ triển khai API hệ thống ContentCaptureService
, AppSearchManager.index
hoặc bất kỳ dịch vụ độc quyền nào có thu thập dữ liệu như mô tả ở trên, thì các dịch vụ đó:
- [C-2-1] PHẢI NOT allow users to replace the services with a user-installable application or service and PHẢI only allow the quần installed to capture that data.
- [C-2-2] PHẢI NOT allow bất kỳ ứng dụng nào khác hơn cơ chế dịch vụ cài đặt trước để có thể thu thập dữ liệu như vậy.
- [C-2-3] PHẢI cung cấp thuộc tính tương tác của người dùng để tắt các dịch vụ.
- [C-2-4] KHÔNG CẦN bỏ qua user thuộc tính tương tác để quản lý các quyền của Android được giữ bởi các dịch vụ và theo dõi mô hình quyền Android như mô tả trong mục 9.1. Quyền.
[C-SR-3] Are trì hoãn phát triển
- Điện thoại, Danh bạ, Giao diện người dùng hệ thống và Nội dung nghe nhìn
Android, thông qua SpeechRecognizer#onDeviceSpeechRecognizer()
, cung cấp khả năng nhận dạng lời nói trên thiết bị mà không cần liên quan đến mạng.
Bất kỳ cách triển khai nào của SpeechRecognitionr PHẢI tuân thủ các chính sách được nêu trong phần này.
9.8.7. Truy cập vào bảng nhớ tạm
Triển khai thiết bị:
- [C-0-1] PHẢI NOT Return a clipped data from the bảng nhớ tạm (e.g. via the
ClipboardManager
API) trừ khi ứng dụng bên thứ 3 là IME mặc định hoặc là ứng dụng hiện có tiêu điểm. - [C-0-2] PHẢI xoá dữ liệu bảng nhớ tạm tối đa 60 phút sau khi đã được đặt vào bảng nhớ tạm hoặc đọc từ bảng nhớ tạm.
9.8.8. Vị trí
Vị trí bao gồm thông tin trong lớp Vị trí trên Android( chẳng hạn như Vĩ độ, Kinh độ, Độ cao), cũng như các giá trị nhận dạng có thể chuyển đổi thành Vị trí. Vị trí có thể chính xác như DGPS (Hệ thống định vị toàn cầu vi phân) hoặc tương đối giống như vị trí cấp quốc gia (như vị trí mã quốc gia – MCC – Mã quốc gia của thiết bị di động).
Sau đây là danh sách các loại vị trí trực tiếp lấy thông tin vị trí của người dùng hoặc có thể được chuyển đổi thành vị trí của người dùng. Đây không phải là danh sách đầy đủ, nhưng nên được dùng làm ví dụ về dữ liệu mà Vị trí có thể được lấy trực tiếp hoặc gián tiếp:
- GPS/GNSS/DGPS/PSA
- Giải pháp định vị toàn cầu, Hệ thống vệ tinh điều hướng toàn cầu hoặc Giải pháp định vị toàn cầu vi phân
- Dữ liệu này cũng bao gồm các chỉ số Đo lường GNSS thô và Trạng thái GNSS
- Vị trí chính xác có thể lấy từ các phép đo GNSS thô
- Các công nghệ không dây có giá trị nhận dạng riêng biệt như:
- Điểm truy cập Wi-Fi (MAC, BSSID, Tên hoặc SSID)
- Bluetooth/BLE (MAC, BSSID, Tên hoặc SSID)
- UWB (MAC, BSSID, Tên hoặc SSID)
- Mã nhận dạng trạm phát sóng (3G, 4G, 5G... bao gồm tất cả các công nghệ Chế độ di động trong tương lai có giá trị nhận dạng duy nhất)
Để tham khảo chính, hãy xem các API Android yêu cầu quyền ACCESS_FINE_Location hoặc ACCESS_COARSE_Location.
Triển khai thiết bị:
- [C-0-1] PHẢI NOT bật/tắt chế độ cài đặt vị trí thiết bị và Wi-Fi/Bluetooth quét mà không có sự đồng ý rõ ràng của người dùng hoặc sự đồng ý của người dùng.
- [C-0-2] PHẢI cung cấp khả năng tương tác của người dùng để truy cập thông tin liên quan đến vị trí, bao gồm các yêu cầu vị trí gần đây, quyền và sử dụng Wi-Fi/Bluetooth chức năng quét để xác định vị trí.
- [C-0-3] PHẢI đảm bảo rằng ứng dụng đang sử dụng API Vị trí khẩn cấp Tuy nhiên, đối với Automotive, xe CÓ THỂ bắt đầu phiên khẩn cấp mà không cần sự tương tác của người dùng chủ động trong trường hợp phát hiện thấy tai nạn/tai nạn (ví dụ: để đáp ứng các yêu cầu của eCall).
- [C-0-4] PHẢI bảo vệ khả năng của API Vị trí khẩn cấp để bỏ qua chế độ cài đặt vị trí của thiết bị mà không thay đổi chế độ cài đặt.
- [C-0-5]{4} schedule a notifications that reminders that the user after an app in the background has nhấn their location using the
[
ACCESS_BACKGROUND_LOCATION
] permission.
9.8.9. Ứng dụng đã cài đặt
Theo mặc định, các ứng dụng Android nhắm đến API cấp 30 trở lên không thể xem thông tin chi tiết về các ứng dụng khác đã cài đặt (xem phần Chế độ hiển thị gói trong tài liệu SDK Android).
Triển khai thiết bị:
- [C-0-1] NOT thai to any apptargeting API level 30 trở lên thông tin chi tiết về bất kỳ ứng dụng đã cài đặt nào khác, trừ khi ứng dụng đã có thể xem thông tin chi tiết về ứng dụng đã cài đặt khác thông qua API được quản lý. Điều này bao gồm nhưng không giới hạn ở thông tin chi tiết mà bất kỳ API tuỳ chỉnh nào do trình triển khai thiết bị thêm vào, hoặc có thể truy cập thông qua hệ thống tệp.
- [C-0-2] NOT cung cấp cho bất kỳ ứng dụng nào, quyền đọc hoặc ghi quyền truy cập vào các tệp trong bất kỳ ứng dụng nào khác dành riêng, thư mục cụ thể trong bộ nhớ ngoài. Sau đây là các trường hợp ngoại lệ duy nhất:
- Quyền của nhà cung cấp bộ nhớ ngoài (ví dụ: các ứng dụng như DocumentsUI).
- Nhà cung cấp dịch vụ tải xuống sử dụng quyền của nhà cung cấp dịch vụ "tải xuống" để tải tệp xuống bộ nhớ của ứng dụng.
- Các ứng dụng giao thức truyền nội dung nghe nhìn đã ký trên nền tảng (MTP) sử dụng quyền đặc quyền ACCESS_MTP để cho phép chuyển tệp sang một thiết bị khác.
- Những ứng dụng cài đặt ứng dụng khác và có quyền INSTALL_PACKAGES chỉ có thể truy cập vào các thư mục "obb" nhằm quản lý tệp mở rộng APK.
9.8.10. Báo cáo lỗi kết nối
Nếu các hoạt động triển khai thiết bị khai báo cờ tính năng android.hardware.telephony
, thì chúng:
- [C-1-1] PHẢI support tạo bug reports via
BUGREPORT_MODE_TELEPHONY
with BugreportManager. - [C-1-2]{4} Chromium user Consent Chuyển mỗi lần
BUGREPORT_MODE_TELEPHONY
được sử dụng để tạo một báo cáo và KHÔNG được nhắc người dùng đồng ý với tất cả các yêu cầu trong tương lai từ ứng dụng. - [C-1-3] PHẢI NOTtrả về báo cáo đã tạo cho ứng dụng yêu cầu mà không có sự đồng ý rõ ràng của người dùng.
- [C-1-4] Báo cáo được tạo bằng cách sử dụng
BUGREPORT_MODE_TELEPHONY
PHẢI chứa ít nhất the sau thông tin:- Tệp kết xuất
TelephonyDebugService
- Tệp kết xuất
TelephonyRegistry
- Tệp kết xuất
WifiService
- Tệp kết xuất
ConnectivityService
- Tệp kết xuất của thực thể
CarrierService
của gói gọi (nếu được ràng buộc) - Vùng đệm nhật ký vô tuyến
- Tệp kết xuất
- [C-1-5] NOT include the following in the generated reports:
- Bất kỳ loại thông tin nào không liên quan trực tiếp đến việc gỡ lỗi kết nối.
- Mọi loại nhật ký lưu lượng truy cập ứng dụng do người dùng cài đặt hoặc hồ sơ chi tiết của các ứng dụng/gói do người dùng cài đặt (UID được chấp nhận, nhưng tên gói thì không).
- CÓ THỂ bao gồm cả thông tin bổ sung không liên kết với bất kỳ danh tính người dùng nào. (ví dụ: nhật ký của nhà cung cấp).
Nếu quá trình triển khai thiết bị có chứa thông tin bổ sung (ví dụ: nhật ký của nhà cung cấp) trong báo cáo lỗi và thông tin đó có tác động đến quyền riêng tư/bảo mật/pin/bộ nhớ/bộ nhớ, thì chúng:
- [C-SR-1] AreĐể nhà phát triển sử dụng chế độ cài đặt mặc định là bị vô hiệu hoá. Việc triển khai tham chiếu AOSP đáp ứng điều này bằng cách cung cấp tuỳ chọn
Enable verbose vendor logging
trong phần cài đặt dành cho nhà phát triển để đưa nhật ký bổ sung của nhà cung cấp theo thiết bị cụ thể vào báo cáo lỗi.
9.8.11. Chia sẻ blob dữ liệu
Thông qua BlobStoreManager, Android cho phép các ứng dụng đóng góp blob dữ liệu vào Hệ thống để chia sẻ với một nhóm ứng dụng đã chọn.
Nếu quá trình triển khai thiết bị hỗ trợ blob dữ liệu dùng chung như mô tả trong tài liệu SDK, thì chúng:
- [C-1-1] KHÔNG ĐƯỢC chia sẻ các blob dữ liệu thuộc về các ứng dụng vượt quá những gì chúng dự định cho phép (tức là phạm vi truy cập mặc định và các chế độ truy cập khác có thể được chỉ định bằng cách sử dụng BlobStoreManager.session#allowPackageAccess(), BlobStoreManager.session#allowPackageSignatureAccess(), hoặc BlobStoreManager.sessionAccess#allowAccess(). Việc triển khai tham chiếu AOSP đáp ứng các yêu cầu này.
- [C-1-2] KHÔNG ĐƯỢC gửi tắt thiết bị hoặc chia sẻ với các ứng dụng khác các hàm băm bảo mật của blobs dữ liệu (được dùng để kiểm soát quyền truy cập).
9.8.12. Nhận dạng nhạc
Android, thông qua API hệ thống MusicRecognitionManager, hỗ trợ cơ chế triển khai thiết bị để yêu cầu nhận dạng nhạc, dựa trên bản ghi âm thanh và uỷ quyền tính năng nhận dạng nhạc cho một ứng dụng đặc quyền triển khai API MusicRecognitionService.
Nếu quá trình triển khai thiết bị bao gồm một dịch vụ triển khai API hệ thống MusicRecognitionManager hoặc bất kỳ dịch vụ độc quyền nào truyền dữ liệu âm thanh như mô tả ở trên, thì các dịch vụ đó:
- [C-1-1] PHẢI thực thi rằng phương thức gọi của MusicRecognitionManager giữ quyền
MANAGE_MUSIC_RECOGNITION
- [C-1-2] PHẢI thực thi rằng một ứng dụng nhận dạng nhạc, được cài đặt sẵn, được triển khai MusicRecognitionService.
- [C-1-3] KHÔNG ĐƯỢC cho phép người dùng thay thế MusicRecognitionManagerService hoặc MusicRecognitionService bằng ứng dụng hoặc dịch vụ có thể cài đặt người dùng.
- [C-1-4] PHẢI đảm bảo rằng khi MusicRecognitionManagerService truy cập bản ghi âm và chuyển tiếp bản ghi đó đến ứng dụng triển khai MusicRecognitionService, quyền truy cập âm thanh sẽ được theo dõi thông qua các lệnh gọi của AppOpsManager.noteOp / startOp.
Nếu các hoạt động triển khai MusicRecognitionManagerService hoặc MusicRecognitionService trên thiết bị lưu trữ bất kỳ dữ liệu âm thanh nào đã thu thập, thì các ứng dụng đó sẽ:
- [C-2-1] PHẢI NOT lưu trữ bất kỳ âm thanh thô hoặc vân tay âm thanh nào trên đĩa ở tất cả, hoặc trong bộ nhớ lâu hơn 14 ngày.
- [C-2-2] PHẢI NOT chia sẻ dữ liệu như vậy ngoài MusicRecognitionService, ngoại trừ với sự đồng ý rõ ràng của người dùng mỗi khi được chia sẻ.
9.8.13. Trình quản lý quyền riêng tư cảm biến
Nếu các phương thức triển khai thiết bị cung cấp cho người dùng một thuộc tính tương tác cho phần mềm để tắt đầu vào máy ảnh và/hoặc micrô để triển khai thiết bị, thì họ sẽ:
- [C-1-1]{4} different return 'true' for the relevant supportsSensorToggle() API method.
- [C-1-2] PHẢI, when an app Trạng
- [C-1-3] PHẢI only pass blank (or fake) camera and audio data to apps and not report an error code do the user not turn on the máy ảnh nor micro via the user v Xác thực trình chiếu mỗi [C-1-2] above.
9,9. Mã hoá bộ nhớ dữ liệu
Mọi thiết bị PHẢI đáp ứng các yêu cầu của mục 9.9.1. Các thiết bị khởi chạy ở cấp độ API sớm hơn cấp độ của tài liệu này sẽ được miễn tuân theo các yêu cầu trong mục 9.9.2 và 9.9.3; thay vào đó, các thiết bị này PHẢI đáp ứng các yêu cầu trong mục 9.9 của tài liệu Định nghĩa về khả năng tương thích với Android tương ứng với cấp độ API mà thiết bị khởi chạy.
9.9.1. Khởi động trực tiếp
Triển khai thiết bị:
[C-0-1] PHẢI triển khai API Direct Boot mode ngay cả khi chúng không hỗ trợ Storage Mã hoá.
[C-0-2] The
ACTION_LOCKED_BOOT_COMPLETED
vàACTION_USER_UNLOCKED
Intents PHẢI vẫn được broadcast to Signal Direct Boot Aware applications that Device Encrypted (DE) and Credential Encrypted (CE) storage locations are available for user.
9.9.2. Yêu cầu về mã hoá
Triển khai thiết bị:
- [C-0-1] truyền mã hóa ứng dụng dữ liệu riêng tư (
/data
phân vùng), cũng như phân vùng lưu trữ chia sẻ ứng dụng (phân vùng/sdcard
) nếu nó là một phần vĩnh viễn, không thể tháo rời của thiết bị. - [C-0-2] NOT enable the data storage encryption by default at the time the user has completed the out-of-box setup experience.
[C-0-3] PHẢI đáp ứng yêu cầu mã hoá lưu trữ dữ liệu trên bằng cách triển khai một trong hai phương thức mã hoá sau:
- Mã hoá dựa trên tệp (FBE) và Mã hoá siêu dữ liệu như mô tả trong mục 9.9.3.1.
- Mã hoá mức khối mỗi người dùng theo mô tả trong phần 9.9.3.2.
9.9.3. Phương thức mã hoá
Nếu quá trình triển khai thiết bị được mã hoá, thì các quá trình này sẽ:
- [C-1-1] PHẢI khởi động mà không thách thức người dùng cho thông tin đăng nhập và cho phép các ứng dụng nhận biết khởi động trực tiếp truy cập vào bộ nhớ được mã hóa của thiết bị (DE) sau khi thông báo
ACTION_LOCKED_BOOT_COMPLETED
được phát. - [C-1-2] PHẢI only allow access to Credential Encrypted (CE) storage after
the user hasunlock the device by provideing their credentials
(eg. khoá, pin, sample orNhận dạng vân tay) and the
ACTION_USER_UNLOCKED
message is broadcasted. - [C-1-13] PHẢI NOT cung cấp bất kỳ phương thức nào để mở khóa CE bảo vệ bộ nhớ mà không có hoặc là người dùng-supplied credentials, aregistered escrow key or a Resume on restart performance meeting the requests in section 9.9.4.
- [C-1-4] PHẢI sử dụng tính năng Xác minh quy trình khởi động.
9.9.3.1. Mã hoá dựa trên tệp bằng tính năng mã hoá siêu dữ liệu
Nếu các hoạt động triển khai thiết bị sử dụng tính năng Mã hoá dựa trên tệp với tính năng Mã hoá siêu dữ liệu, thì các hoạt động này:
- [C-1-5] PHẢI mã hoá nội dung tệp và siêu dữ liệu hệ thống tệp bằng AES-256-XTS hoặc Adiantum. AES-256-XTS là Tiêu chuẩn mã hoá nâng cao với độ dài khoá mật mã 256 bit, vận hành ở chế độ XTS; độ dài đầy đủ của khoá là 512 bit. Adiantum đề cập đến Adiantum-XChaCha12-AES, như nêu tại https://github.com/google/adiantum. Siêu dữ liệu của hệ thống tệp là các dữ liệu như kích thước tệp, quyền sở hữu, chế độ và các thuộc tính mở rộng (xattrs).
- [C-1-6] NOT encryption file names using AES-256-CBC-CTS hoặc Adiantum.
- [C-1-12] Nếu thiết bị có hướng dẫn mã hóa nâng cao (AES) (chẳng hạn như ARMv8 Cryptography Extensions on ARM-based devices, hoặc AES-NI on x86-based devices) then the AES-based options above for file name, file content, and filesystem siêu dữ liệu PHẢI be used, not Adiantum.
- [C-1-13] PHẢI use a cryptographically strong and non- canvas key derivation function (e.g. HKDF-SHA512) to you need subkeys (e.g. per-file keys) from the CE and DE keys. "Mạnh về mặt mã hoá và không thể đảo ngược" có nghĩa là hàm dẫn xuất khoá có độ mạnh bảo mật tối thiểu là 256 bit và hoạt động như một nhóm hàm giả ngẫu nhiên so với dữ liệu đầu vào.
- [C-1-14] KHÔNG ĐƯỢC sử dụng cùng một Mã hoá tệp dựa trên (FBE) khoá hoặc khoá phụ cho các mục đích mã hoá khác nhau (e.g. for cả encryption and key derivation, or for Two different encryption libraries).
- [C-1-15] PHẢI đảm bảo rằng tất cả các khối không xoá của nội dung tệp được mã hoá trên bộ nhớ liên tục được mã hoá bằng cách sử dụng kết hợp khoá mã hoá và vectơ khởi tạo (IV) phụ thuộc vào cả tệp và độ lệch trong tệp. Ngoài ra, tất cả các kết hợp như vậy PHẢI khác biệt, ngoại trừ trường hợp mã hoá được thực hiện bằng phần cứng mã hoá nội tuyến chỉ hỗ trợ độ dài IV là 32 bit.
- [C-1-16] PHẢI đảm bảo rằng tất cả tên tệp đã mã hoá không bị xoá trên bộ nhớ cố định trong các thư mục riêng biệt đã được mã hoá bằng cách sử dụng tổ hợp riêng biệt của khoá mã hoá và vectơ khởi tạo (IV).
[C-1-17] PHẢI đảm bảo rằng tất cả các khối siêu dữ liệu hệ thống tệp mã hóa trên persistent storage were encrypted usingSử dụng kết hợp riêng biệt của khoá mã hoá và vectơ khởi tạo (IV).
Các khoá bảo vệ khu vực lưu trữ CE và DE cũng như siêu dữ liệu của hệ thống tệp:
- [C-1-7] PHẢI được liên kết bằng mật mã với Kho khoá dựa trên phần cứng. Kho khoá này PHẢI được liên kết với tính năng Xác minh quy trình khởi động và gốc tin cậy của phần cứng của thiết bị.
- [C-1-8] Các khoá CE PHẢI được liên kết với thông tin đăng nhập màn hình khoá của người dùng.
- [C-1-9] CECác phím phải được ràng buộc với một mật mã mặc định khi người dùng có thông tin đăng nhập màn hình không được chỉ định.
- [C-1-10] PHẢI be duy nhất và khác biệt, nói cách khác là không có khoá người dùng CE hoặc DE khớp với bất kỳ phím CE hoặc DE của người dùng nào khác.
- [C-1-11] PHẢI use the mandatorily supported ciphers, key lengths and modes.
- [C-1-12] PHẢI be secure removed during khởi động Unlock and Lock như mô tả here.
Nên làm cho các ứng dụng thiết yếu được cài đặt trước (ví dụ: Alarm, Phone, Messenger) Nhận biết chế độ khởi động trực tiếp.
Dự án nguồn mở Android ngược dòng cung cấp phương thức triển khai ưu tiên của tính năng Mã hoá dựa trên tệp dựa trên tính năng mã hoá "fscrypt" của hạt nhân Linux và Mã hoá siêu dữ liệu dựa trên tính năng "dm-default-key" của hạt nhân Linux.
9.9.3.2. Tính năng mã hoá cấp khối cho mỗi người dùng
Nếu quá trình triển khai thiết bị sử dụng phương thức mã hoá cấp khối cho mỗi người dùng, thì chúng:
- [C-1-1] PHẢI bật chế độ hỗ trợ nhiều người dùng như mô tả trong mục 9.5.
- [C-1-2]{4} cung cấp mỗi phân vùng mỗi người dùng, bằng cách sử dụng phân vùng thô hoặc khối lượng logic.
- [C-1-3] truyền sử dụng các khoá mã hoá duy nhất và khác biệt mỗi người dùng để mã hoá các thiết bị khối cơ bản.
[C-1-4] NOT use AES-256-XTS for block-level encryption of the user segments.
Các khoá bảo vệ thiết bị được mã hoá cấp khối cho mỗi người dùng:
- [C-1-5] PHẢI được liên kết bằng mật mã với Kho khoá dựa trên phần cứng. Kho khoá này PHẢI được liên kết với tính năng Xác minh quy trình khởi động và gốc tin cậy của phần cứng của thiết bị.
- [C-1-6] PHẢI bebinding to the compatibility user's key screencredentials.
Bạn có thể triển khai tính năng mã hoá cấp khối cho mỗi người dùng bằng cách sử dụng tính năng "dm-crypt" của nhân Linux trên các phân vùng cho mỗi người dùng.
9.9.4. Tiếp tục khi khởi động lại
Tính năng Tiếp tục khi khởi động lại cho phép mở khoá bộ nhớ CE của tất cả các ứng dụng, bao gồm cả những ứng dụng chưa hỗ trợ Khởi động trực tiếp, sau khi khởi động lại do OTA khởi động. Tính năng này cho phép người dùng nhận thông báo từ các ứng dụng đã cài đặt sau khi khởi động lại.
Việc triển khai tính năng Tiếp tục khi khởi động lại phải tiếp tục nhằm đảm bảo rằng khi thiết bị rơi vào tay kẻ tấn công, kẻ tấn công rất khó khôi phục dữ liệu được mã hoá CE của người dùng, ngay cả khi thiết bị đang bật nguồn, bộ nhớ CE được mở khoá và người dùng đã mở khoá thiết bị sau khi nhận được OTA. Đối với khả năng chống tấn công nội bộ, chúng tôi cũng giả định rằng kẻ tấn công có được quyền truy cập để truyền phát các khoá ký mật mã.
Cụ thể:
[C-0-1] CE storage PHẢI NOT be read cú pháp ngay cả đối với kẻ tấn công người có thiết bị và sau đó có những khả năng và giới hạn sau:
- Có thể sử dụng khoá ký của bất kỳ nhà cung cấp hoặc công ty nào để ký các thông báo tuỳ ý.
- Có thể khiến thiết bị nhận được OTA.
- Có thể sửa đổi hoạt động của bất kỳ phần cứng nào (AP, flash, v.v.), ngoại trừ nội dung chi tiết bên dưới, nhưng việc sửa đổi đó sẽ mất ít nhất một giờ và một chu kỳ nguồn làm huỷ hoại nội dung RAM.
- Không thể sửa đổi hoạt động của phần cứng chống can thiệp (ví dụ: Titan M).
- Không thể đọc RAM của thiết bị đang hoạt động.
- Không lấy được thông tin đăng nhập của người dùng (mã PIN, hình mở khoá, mật khẩu) hoặc có thể khiến người dùng nhập thông tin này.
Ví dụ: một phương thức triển khai cho thiết bị triển khai và tuân thủ tất cả nội dung mô tả tại đây sẽ tuân thủ [C-0-1].
9,10. Tính toàn vẹn của thiết bị
Các yêu cầu sau đây giúp đảm bảo tính minh bạch cho trạng thái của tính toàn vẹn của thiết bị. Triển khai thiết bị:
[C-0-1]{4}{/5} correct report through the System API method
PersistentDataBlockManager.getFlashLockState()
liệu their bootloader stateTình trạng cho phép nhấp nháy hệ thống hình ảnh.[C-0-2] PHẢI hỗ trợ Xác minh quy trình khởi động cho tính toàn vẹn của thiết bị.
Nếu các hoạt động triển khai thiết bị đã được khởi chạy mà không hỗ trợ tính năng Xác minh quy trình khởi động trên một phiên bản Android cũ và không thể thêm tính năng hỗ trợ cho tính năng này bằng bản cập nhật phần mềm hệ thống, thì chúng CÓ THỂ được miễn trừ khỏi yêu cầu.
Xác minh quy trình khởi động là một tính năng đảm bảo tính toàn vẹn của phần mềm thiết bị. Nếu các quá trình triển khai theo thiết bị có hỗ trợ tính năng này, thì họ:
- [C-1-1] PHẢI khai báo cờ tính năng nền tảng
android.software.verified_boot
. - [C-1-2] PHẢI thực hiện xác minh trên mọi trình tự khởi động.
- [C-1-3] PHẢI bắt đầu xác minh từ một khoá phần cứng không thể thay đổi là gốc của niềm tin và đi tất cả đường lên đến phân vùng hệ thống.
- [C-1-4] PHẢI triển khai từng giai đoạn xác minh để kiểm tra tính toàn vẹn và tính xác thực của tất cả các byte trong giai đoạn tiếp theo trước khi thực thi mã trong giai đoạn tiếp theo.
- [C-1-5] PHẢI sử dụng các thuật toán xác minh mạnh như các đề xuất hiện tại của NIST cho các thuật toán băm (SHA-256) và kích thước khoá công khai (RSA-2048).
- [C-1-6] NOT allow boot to complete when system verification failed, trừ khi người dùng đồng ý để cố gắng khởi động, trong trường hợp đó, dữ liệu từ bất kỳ khối bộ nhớ không được xác minh nào KHÔNG ĐƯỢC sử dụng.
- [C-1-7] PHẢI NOT allow verified parts on the device to bevào sửa đổi trừ khi người dùng đã mở khoá rõ ràng trình tải khởi động.
- [C-SR-1] Nếu có nhiều chip rời trong thiết bị (ví dụ: đài, bộ xử lý hình ảnh chuyên dụng), thì quá trình khởi động của từng chip đó ĐƯỢC NÊN DÙNG để xác minh mọi giai đoạn khi khởi động.
- [C-1-8] PHẢI use tamper-evident storage: for lưu trữ xem trình tải khởi động có được mở khoá hay không. Bộ nhớ phát hiện giả mạo có nghĩa là trình tải khởi động có thể phát hiện xem bộ nhớ có bị can thiệp từ bên trong Android hay không.
- [C-1-9]{4}prompt người dùng, trong khi sử dụng thiết bị, và yêu cầu xác nhận vật lý trước khi cho phép chuyển đổi từ chế độ khóa của trình tải khởi động đến chế độ mở khóa trình tải khởi động.
- [C-1-10] PHẢI triển khai khôi phục bảo vệ cho các phân vùng được Android sử dụng (ví dụ: khởi động, phân vùng hệ thống) và sử dụng bộ nhớ giả mạo để lưu trữ siêu dữ liệu được dùng để xác định phiên bản hệ điều hành tối thiểu cho phép.
- [C-1-11]{/6} safe Trạng thái xoá tất cả dữ liệu người dùng trong quá trình mở khoá trình tải khởi động và khoá, theo '9.12. Xoá dữ liệu" (bao gồm cả phân vùng dữ liệu người dùng và mọi không gian NVRAM).
- [C-SR-2] AreĐể nhà phát triển khuyến khích xác minh tất cả các tệp APK ứng dụng đặc quyền với một chuỗi tin cậy đã bị can thiệp vào các phân vùng được bảo vệ bởi Xác minh quy trình khởi động.
- [C-SR-3] Are{/7} ĐỀ XUẤT này để xác minh mọi cấu phần phần mềm có thể thực thi được tải bởi một ứng dụng đặc quyền từ bên ngoài tệp APK (chẳng hạn như mã được tải động hoặc mã đã biên dịch) trước khi thực thi chúng hoặc
- nên triển khai khôi phục bảo vệ cho bất kỳ thành phần nào với ngân sách bền vững (e.g. modem, camera) and NÊN use tamper-evident storage for storeing the siêu dữ liệu được sử dụng để xác định tối thiểu cho phép phiên bản.
Nếu thiết bị đã triển khai đã khởi chạy mà không hỗ trợ C-1-8 đến C-1-11 trên một phiên bản Android cũ hơn và không thể thêm tính năng hỗ trợ cho các yêu cầu này bằng bản cập nhật phần mềm hệ thống, chúng có thể được miễn trừ khỏi các yêu cầu.
Dự án nguồn mở Android ngược dòng cung cấp phương thức triển khai ưu tiên của tính năng này trong kho lưu trữ external/avb/
. Kho lưu trữ này có thể được tích hợp vào trình tải khởi động dùng để tải Android.
Triển khai thiết bị:
- [C-0-3] PHẢI support cryptographically verified file content app chống lại một khoá đáng tin cậy mà không cần đọc toàn bộ tệp.
- [C-0-4] PHẢI NOT allow the read requests on a managed file to successfully when the read content do not verification bưu chống lại một khoá tin cậy.
Nếu thiết bị đã chạy mà không có khả năng xác minh nội dung tệp dựa trên khoá đáng tin cậy trên phiên bản Android trước đó và không thể thêm hỗ trợ cho tính năng này bằng bản cập nhật phần mềm hệ thống, họ có thể được miễn trừ khỏi yêu cầu. Dự án Nguồn mở Android ngược dòng cung cấp phương thức triển khai ưu tiên của tính năng này dựa trên tính năng fs-verity của nhân hệ điều hành Linux.
Triển khai thiết bị:
- [C-SR-4] AreĐể hỗ trợ API Xác nhận bảo vệ của Android.
Nếu các hoạt động triển khai thiết bị hỗ trợ API Xác nhận bảo vệ của Android, thì các hoạt động triển khai đó:
[C-3-1] PHẢI báo cáo
true
cho APIConfirmationPrompt.isSupported()
.[C-3-2] PHẢI đảm bảo mã chạy trong hệ điều hành Android bao gồm cả kernel, độc hại hoặc khác, không thể tạo phản hồi tích cực mà không có tương tác của người dùng.
[C-3-3] PHẢI đảm bảo rằng người dùng đã có thể xem xét và phê duyệt tin nhắn nhắc ngay cả trong sự kiện mà Android OS, bao gồm cả hạt nhân của nó, bị xâm phạm.
9,11. Khoá và thông tin đăng nhập
Hệ thống kho khoá Android cho phép nhà phát triển ứng dụng lưu trữ các khoá mã hoá trong một vùng chứa và sử dụng các khoá đó trong các thao tác mã hoá thông qua KeyChain API hoặc API Kho khoá. Triển khai thiết bị:
- [C-0-1] PHẢI cho phép nhập hoặc tạo ít nhất 8.192 khoá.
- [C-0-2] The key screen verification PHẢI triển khai a time khoảng thời gian giữa các nỗ lực không thành công. With n as the failed try count, the time khoảng thời gian PHẢI be at least 30 seconds for 9 < n < 30. For n > 29, the time ngắt value PHẢI be at least 30*2^floor((n-30)/10)) seconds or at least 24 hours, dựa trên tuỳ chọn nào nhỏ hơn.
- Không được giới hạn số lượng khoá có thể tạo
Khi quá trình triển khai thiết bị hỗ trợ màn hình khoá bảo mật, quá trình triển khai sẽ:
- [C-1-1] PHẢI back up the kho thực hiện bằng một môi trường thực thi tách biệt.
- [C-1-2] NOT haveimplementation of RSA, AES, ECDSA, ECDH (if IKeyMintDevice is supported), 3DES, and HMAC cryptographic thoáng and MD5, SHA1, and SHA-2 family hash functions to reach support the Android Keystore system's supported Các thuật toán in an khu vực đó được cách ly an toàn từ mã chạy trên nhân hệ điều hành và ở trên. Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA. Dự án nguồn mở Android ngược dòng (AOSP) đáp ứng yêu cầu này bằng cách sử dụng phương thức triển khai Trusty, nhưng một giải pháp khác dựa trên ARM TrustZone hoặc một bên thứ ba đã xem xét phương thức triển khai an toàn của cách ly thích hợp dựa trên trình điều khiển ảo hoá là các phương án thay thế.
- [C-1-3]{4} perform the key screen verification in the Isolate execution environment and only when successfully, allow the verification-bound keys to be used. Khóa màn hình thông tin xác thực PHẢI được lưu trữ trong một cách cho phép chỉ môi trường thực thi tách biệt để thực hiện xác thực màn hình khóa. Dự án nguồn mở Android ngược dòng cung cấp Lớp trừu tượng phần cứng (HAL) cho người trực điện thoại và Trusty, có thể được dùng để đáp ứng yêu cầu này.
- [C-1-4] PHẢI support key trònchứng thực trong đó khoá ký chứng thực được bảo vệ bởi bảo mật phần cứng và ký được thực hiện trong phần cứng bảo mật. Các khoá ký chứng thực PHẢI được chia sẻ trên số lượng thiết bị đủ lớn để ngăn việc dùng các khoá này làm giá trị nhận dạng thiết bị. Để đáp ứng yêu cầu này là chia sẻ cùng một khoá chứng thực,trừ phi có ít nhất 100.000 đơn vị của một SKU nhất định được tạo. Nếu có hơn 100.000 đơn vị SKU được tạo, thì một khoá khác CÓ THỂ sẽ được sử dụng cho mỗi 100.000 đơn vị.
Xin lưu ý rằng nếu đã triển khai thiết bị trên một phiên bản Android trước đó, thì thiết bị đó sẽ được miễn trách nhiệm có kho khoá được hỗ trợ bởi một môi trường thực thi riêng biệt và hỗ trợ quy trình chứng thực khoá, trừ phi thiết bị đó khai báo tính năng android.hardware.fingerprint
đòi hỏi kho khoá được một môi trường thực thi riêng biệt hỗ trợ.
- [C-1-5] PHẢI allow the user to choose the Sleep timeout for conversion from the xoá khoá to the New state, with a least allowable timeout up to 15 seconds. Các thiết bị dành cho Automotive, mà khoá màn hình bất cứ khi nào đầu đơn vị đang tắt hoặc người dùng bị chuyển đổi, CÓ THỂ KHÔNG CÓ cấu hình Thời gian chờ của chế độ ngủ.
- [C-1-6] PHẢI support IKeymasterDevice 4.0, IKeymasterDevice 4.1, IKeyMintDevice version 1 or IKeyMintDevice version 2.
- [C-SR-1] Is mã ĐỀ XUẤT NÊN hỗ trợ IKeyMintDevice phiên bản 1.
9.11.1. Màn hình khoá bảo mật, hoạt động xác thực và thiết bị ảo
Việc triển khai AOSP tuân theo một mô hình xác thực theo cấp, trong đó phương thức xác thực chính dựa trên nhà máy tri thức có thể được hỗ trợ bằng sinh trắc học thứ cấp mạnh hoặc bằng phương thức cấp ba yếu hơn.
Triển khai thiết bị:
- [C-SR-1] AreĐể nhà phát triển sử dụng chỉ một trong số các xác thực chính phương thức:
- Mã PIN dạng số
- Mật khẩu gồm chữ và số
- Hình mở khoá trên một lưới gồm 3x3 chấm
Xin lưu ý rằng các phương thức xác thực ở trên được gọi là phương thức xác thực chính được đề xuất trong tài liệu này.
Nếu các quá trình triển khai thiết bị thêm hoặc sửa đổi phương thức xác thực chính được đề xuất và sử dụng một phương thức xác thực mới làm cách an toàn để khoá màn hình, thì phương thức xác thực mới:
- [C-2-1] PHẢI be the user Authentication method as mô tả trong Requiring User Authentication For Key Use.
Nếu các quá trình triển khai thiết bị sẽ thêm hoặc sửa đổi phương thức xác thực để mở khoá màn hình khoá (dựa trên khoá bí mật đã biết) và sử dụng một phương thức xác thực mới để được coi là một cách an toàn để khoá màn hình:
- [C-3-1] The entropy of the uses short allowed length of input PHẢI be lớn hơn 10 bit.
- [C-3-2] The tối đa entropy of tất cả đầu vào có thể phải lớn hơn 18 bit.
- [C-3-3] The new Authentication method PHẢI NOT replace any of the recommended primary verification methods (i.e. PIN, sample, password) implementation and provided in AOSP.
- [C-3-4] The new Authentication method PHẢI be disabled when the Device Policy Control (DPC) application has set the password requests policy via the DevicePolicyManager.setrequiredPasswordComplexity() with a more been restricted constants() or via the DevicePolicyManager.setPasswordQuality() method with a more Restricted encryption than CPA_WE_TERM_B
- [C-3-5] New Authentication methods{4} Mặc dù rơi trở lại hay đề xuất phương thức xác thực chính (i.e. PIN, sample, password) once per 72 hours or least OR transparent to the user that some data will not be supported up in to to keep the privacy of their data.
Nếu các quá trình triển khai thiết bị thêm hoặc sửa đổi phương thức xác thực chính được đề xuất để mở khoá màn hình khoá, đồng thời sử dụng một phương thức xác thực mới dựa trên hệ thống nhận dạng sinh trắc học được coi là một cách an toàn để khoá màn hình, thì phương thức mới:
- [C-4-1] PHẢI đáp ứng tất cả các yêu cầu được mô tả trong section 7.3.10 for Class 1 (trước đây là Tiện lợi).
- [C-4-2] PHẢI have afall-back Thổ lực cơ chế để sử dụng một trong những đề nghị phương thức xác thực chính được dựa trên một bí mật đã biết.
- [C-4-3] PHẢI be disabled and only allow the recommended primary verification to Unlock the screen when the Device Policy Control (DPC) application has set the keyguard feature policy by called the method
DevicePolicyManager.setKeyguardDisabledFeatures()
, with any of the relevant character of (i.e.KEYGUARD_DISABLE_BIOMETRICS
,KEYGUARD_DISABLE_FINGERPRINT
,KEYGUARD_DISABLE_FACE
, orKEYGUARD_DISABLE_IRIS
).
Nếu các phương thức xác thực bằng sinh trắc học không đáp ứng các yêu cầu đối với Lớp 3 (trước đây là Mạnh) như mô tả trong mục 7.3.10:
- [C-5-1] The methods PHẢI be disabled if the Device Policy Control (DPC) application has set the passwordYêu cầu chất lượng chính sách via
the DevicePolicyManager.setrequiredPasswordComplexity()
with a more restricted issue than
PASSWORD_COMPLEXITY_LOW
or using DevicePolicyManager.setPasswordQuality() method with a more Restricted quality encryption thanPASSWORD_QUALITY_BIOMETRIC_WEAK
. - [C-5-2] The user NOT beChallenged for the recommended primary verification (eg: PIN, sample, password) as description in [C-1-7] and [C-1-8] in section 7.3.10.
- [C-5-3] The methods NOT be unmanaged as a secure key screen, and PHẢI đáp ứng các yêu cầu mà bắt đầu bằng C-8 in this section below.
Nếu các hoạt động triển khai thiết bị sẽ thêm hoặc sửa đổi các phương thức xác thực để mở khoá màn hình khoá, và phương thức xác thực mới dựa trên mã thông báo thực tế hoặc vị trí:
- [C-6-1] their{4} have afall-back basic method to use one of the recommended primary verification methods that is based on a known secret and meet the requests to be Open-back basic screen.
- [C-6-2] The new method must be disabled and only allow one of the recommended primary verification methods to Unlock the screen when the
Device Policy Control (DPC) application has set the policy with during:
- Phương thức
DevicePolicyManager.setKeyguardDisabledFeatures(KEYGUARD_DISABLE_TRUST_AGENTS)
- Phương thức
DevicePolicyManager.setPasswordQuality()
có hằng số chất lượng hạn chế hơnPASSWORD_QUALITY_NONE
. - Phương thức
DevicePolicyManager.setRequiredPasswordComplexity()
có bộ chứa độ phức tạp hạn chế hơnPASSWORD_COMPLEXITY_NONE
.
- Phương thức
- [C-6-3] The user PHẢI beChallenged for one of the recommended primary primary authentication methods (e.g.PIN, sample, password) at least once túc 4 hours trở xuống. Khi mã thông báo thực đáp ứng các yêu cầu đối với việc triển khai TrustAgent trong C-X, các hạn chế về thời gian chờ được xác định trong C-9-5 sẽ được áp dụng.
- [C-6-4] The new method NOT be coi as a secure key screen and PHẢI theo các ràng buộc được liệt kê trong C-8 bên dưới.
Nếu các hoạt động triển khai thiết bị có màn hình khoá bảo mật và bao gồm một hoặc nhiều tác nhân tin cậy (có triển khai API hệ thống TrustAgentService
), thì các hoạt động đó sẽ:
- [C-7-1] NOT have clear specified in the settings menu and on the key screen when device lock is Defer or can beunlock by Trust agent(s). Ví dụ: AOSP đáp ứng yêu cầu này bằng cách hiển thị nội dung mô tả bằng văn bản cho "Chế độ cài đặt tự động khoá" và "Khoá ngay lập tức bằng nút nguồn" trong trình đơn cài đặt và một biểu tượng dễ phân biệt trên màn hình khoá.
- [C-7-2]{4} prefer and supported agent APIs in the
DevicePolicyManager
class, chẳng hạn nhưKEYGUARD_DISABLE_TRUST_AGENTS
hằng số. - [C-7-3]{4} NOT entire complete the
TrustAgentService.addEscrowToken()
function on a device that is used as a primary individual device (e.g.qCài đặt) nhưng CÓ - [C-7-4] PHẢI mã hoá tất cả mã thông báo được lưu trữ được thêm bởi
TrustAgentService.addEscrowToken()
. - [C-7-5] NOT store the encryption key or escrow token on the cùng device where the key is used. Ví dụ: Google được phép sử dụng khoá lưu trữ trên điện thoại để mở khoá tài khoản người dùng trên TV. Đối với các thiết bị Automotive, không được phép lưu trữ mã ký quỹ trên bất kỳ bộ phận nào của xe.
- [C-7-6] PHẢI thông báo cho người dùng về các vấn đề bảo mật trước khi bật mã thông báo escrow để giải mã bộ nhớ dữ liệu.
- [C-7-7] PHẢI have afall-back cơ chế to use one of the recommended primary verification methods.
- [C-7-8] The user{4} beChallenged for one of the recommended primary verification (eg: PIN, sample, password) methods at least once Cổ, mỗi 72 hours or least operations at least once the safety of the user (e.g. with drive episodeion) is of issue.
- [C-7-9] The user PHẢI beChallenged for one of the recommended primary verification (eg: PIN, sample, password) methods as descriptions in [C-1-7] and [C-1-8] in section 7.3.10, cảm
- [C-7-10] NOT be cong as a secure key screen and PHẢI theo các ràng buộc được liệt kê trong C-8 bên dưới.
- [C-7-11] PHẢI NOT allow TrustAgents on primary cá nhân devices (e.g: by Wearable) to Unlock the device, and can only use their to keep an alreadyunlock device in the invalid state for up to a max of 4 hours. Phương thức triển khai mặc định của TrustManagerService trong AOSP đáp ứng yêu cầu này.
- [C-7-12] NOT use a Cryptographically secure (e.g UKEY2) Những kênh giao tiếp để vượt qua escrow token from the storage device to the target device.
Nếu các quá trình triển khai thiết bị sẽ thêm hoặc sửa đổi phương thức xác thực để mở khoá màn hình khoá không phải là màn hình khoá bảo mật như mô tả ở trên, đồng thời sử dụng một phương thức xác thực mới để mở khoá tính năng bảo vệ bàn phím:
- [C-8-1] The new method PHẢI be disabled when the Device Policy Control
(DPC) application has set the password Chất lượng chính sách via the
DevicePolicyManager.setPasswordQuality()
method with a more limited quality encryption thanPASSWORD_QUALITY_NONE
or via theDevicePolicyManager.setRequiredPasswordComplexity()
with a more Restrictionsfrequency than 'CUSTOMER_ALLITY_NONE'. - [C-8-2] their{4} NOT set the password password forecasts set by
DevicePolicyManager.setPasswordExpirationTimeout()
. - [C-8-3] Wearable NOT own an API for use by third-party apps to xác định trạng thái khoá.
Nếu quá trình triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và không hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua VirtualDeviceManager
, thì chúng:
- [C-9-1] PHẢI khoá những màn hình ảo thứ cấp này khi màn hình mặc định của thiết bị bị khoá, và mở khoá màn hình mặc định của thiết bị này khi màn hình mặc định của thiết bị được mở khoá.
Nếu quá trình triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua VirtualDeviceManager, thì các ứng dụng đó:
- [C-10-1] PHẢI hỗ trợ trạng thái khoá riêng biệt cho mỗi thiết bị ảo
- [C-10-2] PHẢI ngắt kết nối tất cả các thiết bị ảo khi hết thời gian chờ ở trạng thái rảnh
- [C-10-3] PHẢI có thời gian chờ ở trạng thái rảnh
- [C-10-4] PHẢI khoá all hiển thị khi người dùng khởi động một lockdown, bao gồm cả via the Lockdown userThêm yêu cầu cho các thiết bị cầm tay (xem Section 2.2.5[9.11/H-1-2])
- [C-10-5] PHẢI có các phiên bản thiết bị ảo riêng biệt cho mỗi người dùng
- [C-10-6]{4} disabled the created of linking input events via
VirtualDeviceManager
when specified byDevicePolicyManager.setNearbyAppStreamingPolicy
- [C-10-7] NOT use a specific clipboardlet for từng thiết bị ảo (hoặc vô hiệu hoá bảng nhớ tạm cho các thiết bị ảo)
- [C-10-11]{4} disabled Authentication UI on virtual devices, bao gồm cả Architect Hãy nhập thông tin về hệ số xác thực và lời nhắc sinh trắc học
- [C-10-12] PHẢI hạn chế ý định khởi tạo từ một thiết bị ảo để chỉ hiển thị trên cùng một thiết bị ảo
- [C-10-13] KHÔNG sử dụng trạng thái khoá thiết bị ảo như người dùng xác thực
uỷ quyền bằng Hệ thống kho khoá Android. Hãy xem
KeyGenParameterSpec.Builder.setUserAuthentication*
.
Khi các phương thức triển khai thiết bị cho phép người dùng chuyển yếu tố kiến thức xác thực chính từ một thiết bị nguồn sang một thiết bị mục tiêu (chẳng hạn như để thiết lập ban đầu của thiết bị mục tiêu), họ:
- [C-11-1]{4} encryption thetri-factor withbảo vệ đảm bảo tương tự như những được mô tả trong the Google Cloud Key Vault Service security whitepaper when chuyển the structured-factor from the source device to the target device that the xoáy-factor could not be from remote resolveed or used to partial device.
- [C-11-2] PHẢI, on the source device , request the user to confirm the -factor of the source device trước khi chuyển hệ số kiến thức đến thiết bị mục tiêu.
- [C-11-3] NOT, on a target device misseding any set primary authentication upoy-factor, request the user to confirm a chaThêm thông tin-yếu tố trên thiết bị mục tiêu trước khi thiết lập rằng kiến thức-yếu tố là chính xác thực kiến thức-yếu tố cho thiết bị mục tiêu và trước khi làm có sẵn bất kỳ dữ liệu được chuyển từ một thiết bị nguồn.
Nếu các hoạt động triển khai thiết bị có màn hình khoá bảo mật và bao gồm một hoặc nhiều tác nhân đáng tin cậy, thì tác nhân này sẽ gọi API hệ thống TrustAgentService.grantTrust()
bằng cờ FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE
, chúng:
- [C-12-1] PHẢI only call
grantTrust()
with theflag when connections to a proximate physical device with a lockscreen of their own, và khi người dùng đã xác thực danh tính của họ chống lại màn hình khoá đó. Các thiết bị proxy có thể sử dụng cơ chế phát hiện trên đồng hồ hoặc trên cơ thể sau khi người dùng mở khoá một lần để đáp ứng yêu cầu xác thực của người dùng. - [C-12-2] PHẢI đưa phương thức triển khai thiết bị vào trạng thái
TrustState.TRUSTABLE
khi màn hình bị tắt (chẳng hạn như qua một nút nhấn hoặc hiển thị hết thời gian) và TrustAgent chưa thu hồi độ tin cậy. AOSP đáp ứng yêu cầu này. - [C-12-3] PHẢI chỉ di chuyển thiết bị từ
TrustState.TRUSTABLE
sang trạng tháiTrustState.TRUSTED
nếu TrustAgent vẫn cấp tin cậy dựa trên các yêu cầu trong C-12-1. - [C-12-4] PHẢI call
TrustManagerService.revokeTrust()
after a đám mây tối đa 24 giờ từ lòng tin cậy, cửa sổ nhàn rỗi 8 giờ, hoặc khi kết nối cơ bản đến thiết bị vật lý proxy bị mất.
Nếu việc triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua VirtualDeviceManager và các màn hình không được đánh dấu bằng VIRTUAL_DISPLAY_FLAG_SECURE, thì chúng sẽ:
- [C-13-8] PHẢI block Hoạt động với thuộc tính android:canDisplayOnRemoteDevices hoặc meta-data android.activity.can_display_on_remote_devices set to false từ đang được bắt đầu trên thiết bị ảo.
- [C-13-9] NOT block activity không cho phép truyền trực tuyến rõ ràng và cho biết rằng chúng hiển thị nội dung nhạy cảm, bao gồm cả via SurfaceView#setSecure, FLAG_SECURE hoặc SYSTEM_FLAG_Hilt_NON_SYSTEM_OVERLAY_WINDOWS không bắt đầu hoạt động trên thiết bị ảo.
Nếu các quá trình triển khai thiết bị hỗ trợ các trạng thái nguồn màn hình riêng biệt thông qua DeviceStateManager
VÀ hỗ trợ các trạng thái khoá màn hình riêng biệt thông qua KeyguardDisplayManager
, thì chúng:
- [C-SR-2] Are trì hoãn phát triển để sử dụng một thông tin xác thực yêu cầu được xác định trong phần 9.11.1 hoặc một sinh trắc học cuộc họp ít nhất lớp 1 thông số kỹ thuật được xác định trong phần 7.3.10 to allowdependent unlocking from the default device display.
- [C-SR-3] AreĐể nhà phát triển sử dụng các tính năng giới hạn riêng biệt, mở khoá màn hình thông qua một thời gian chờ hiển thị được xác định.
- [C-SR-4] AreĐể nhà phát triển sử dụng thiết bị cho phép người dùng đến toàn bộ việc khoá tất cả hiển thị thông qua khoá từ thiết bị cầm tay chính.
9.11.2. StrongBox
Hệ thống kho khoá Android cho phép nhà phát triển ứng dụng lưu trữ các khoá mã hoá trong một bộ xử lý bảo mật chuyên dụng cũng như môi trường thực thi riêng biệt được mô tả ở trên. Một bộ xử lý bảo mật chuyên dụng như vậy được gọi là "StrongBox". Các yêu cầu từ C-1-3 đến C-1-11 dưới đây xác định các yêu cầu mà thiết bị phải đáp ứng để đủ điều kiện là StrongBox.
Triển khai thiết bị có bộ xử lý bảo mật chuyên dụng:
- [C-SR-1] Giới hạn định dạng khuyến nghị để hỗ trợ StrongBox. StrongBox có thể sẽ trở thành một yêu cầu đối với bản phát hành sau này.
Nếu quá trình triển khai thiết bị hỗ trợ StrongBox, thì các hoạt động triển khai thiết bị đó:
[C-1-1] PHẢI khai báo FEATURE_STRONGBOX_KEYSTORE.
[C-1-2] PHẢI cung cấp phần cứng bảo mật chuyên dụng được dùng để quay lại kho khoá và xác thực người dùng bảo mật. Phần cứng bảo mật chuyên dụng cũng có thể dùng cho các mục đích khác.
[C-1-3] PHẢI have a full CPU that sharing no cache, DRAM, coprocessors or other core resources with the application processor (AP).
[C-1-4] PHẢI đảm bảo rằng mọi thiết bị ngoại vi được chia sẻ với AP không thể thay đổi xử lý StrongBox theo bất kỳ cách nào hoặc nhận được bất kỳ thông tin nào từ StrongBox. AP CÓ THỂ vô hiệu hoá hoặc chặn quyền truy cập vào StrongBox.
[C-1-5] NOT have an internal Đồng hồ với mức độ chính xác hợp lý (+-10%) that is Analytics Miễn so với thao tác của AP.
[C-1-6] PHẢI have a true random number generator that generated uniformly-distributed and creatives output. (Trình tạo số ngẫu nhiên thực sự và không thể đoán được).
[C-1-7] PHẢI have tamper huỷ, bao gồm khả năng chống lại sự thâm nhập vật lý, và sự cố.
[C-1-8] PHẢI have side-channel response, bao gồm khả năng chống lại các thông tin bị rò rỉ qua năng lượng, thời gian, bức xạ điện từ, và bức xạ bên kênh.
[C-1-9] NOT have safe storage that đảm bảo tính bảo mật, tính toàn vẹn, tính xác thực, tính nhất quán và độ mới của nội dung. Bộ nhớ KHÔNG ĐƯỢC PHÉP đọc hoặc thay đổi được, ngoại trừ khi được cho phép bởi các API StrongBox.
Để xác thực tuân thủ [C-1-3] đến [C-1-9], thiết bị triển khai:
- [C-1-10] PHẢI include the hardware that iscertified based the Secure ICbảo vệ Profile BSI-CC-PP-0084-2014 or Đánh giá bởi một quốc gia
- [C-1-11] PHẢI include the Chương trình cơ sở được đánh giá bởi một phòng thử nghiệm được công nhận quốc gia kết hợp với tấn công cao Đánh giá lỗ hổng bảo mật theo Common Header Application of Attack Potential to Smartcards.
- [C-SR-2] Are trì hoãn phát triển Chứng nhận EAL 5 có thể sẽ trở thành một yêu cầu bắt buộc trong bản phát hành sau này.
- [C-SR-3] Are trì hoãn phát triển Bạn nên triển khai IAR theo cách chỉ cho phép cập nhật chương trình cơ sở khi mật khẩu chính của người dùng được cung cấp thông qua lớp trừu tượng phần cứng (HAL) IAuthSecret.
9.11.3. Chứng chỉ danh tính
Hệ thống thông tin xác thực danh tính được xác định và có được bằng cách triển khai tất cả các API trong gói android.security.identity.*
. Các API này cho phép nhà phát triển ứng dụng lưu trữ và truy xuất tài liệu nhận dạng của người dùng. Triển khai thiết bị:
- [C-SR-1] areRENDERED hao xúc để triển khai danh tính xác thực hệ thống.
Nếu các hoạt động triển khai thiết bị có triển khai Hệ thống thông tin xác thực danh tính, thì các hoạt động này sẽ:
[C-1-1] PHẢI trả về non-null cho phương thức IdentityCredentialStore#getInstance().
[C-1-2] PHẢI triển khai danh tính hệ thống thông tin xác thực (e.g. the
android.security.identity.*
APIs) with codetransactions with a Trusted application in an area that is an based from the code running on kernel and above. Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA.[C-1-3] The cryptographic operations cần to triển khai Identity Credential System (e.g. the
android.security.identity.*
APIs) NOT be perform complete in the Trusted application and private key material PHẢI bao giờ rời khỏi môi trường thực thi cách ly trừ khi cụ thể by higher-level APIs (e.g. the createEphemeralKeyPair() method).[C-1-4] Thetrusted application PHẢI be specified in a Way that it security properties are not affected (e.g. Credential data is not release ghép
Dự án nguồn mở Android ngược dòng cung cấp cách triển khai tham chiếu của một ứng dụng đáng tin cậy (libeic) có thể dùng để triển khai hệ thống thông tin xác thực danh tính.
9,12. Xóa dữ liệu
Tất cả cách triển khai thiết bị:
- [C-0-1] PHẢI cung cấp cho người dùng cơ chế để thực hiện "Đặt lại dữ liệu về trạng thái ban đầu".
- [C-0-2] NOT delete all data on the userdata filesystem when perform a "Factory Data Reset".
- [C-0-3] PHẢI xoá dữ liệu theo cách như vậy sẽ đáp ứng các tiêu chuẩn ngành có liên quan như NIST SP800-88 when perform a "Factory Data Reset".
- [C-0-4]{4} trigger the above "Factory Data Reset" process when the
DevicePolicyManager.wipeData()
API is called by the primary user's Device Policy Control app. - CÓ THỂ cung cấp tuỳ chọn xoá sạch dữ liệu nhanh chóng, chỉ tiến hành xoá dữ liệu logic.
9,13. Chế độ khởi động an toàn
Android cung cấp Chế độ khởi động an toàn, cho phép người dùng khởi động vào chế độ mà chỉ các ứng dụng hệ thống được cài đặt trước mới được phép chạy và tất cả ứng dụng bên thứ ba đều bị tắt. Chế độ này còn được gọi là "Chế độ khởi động an toàn", mang lại cho người dùng khả năng gỡ cài đặt các ứng dụng bên thứ ba có khả năng gây hại.
Cách triển khai thiết bị:
- [C-SR-1] tôi ĐỀ XUẤT NÊN triển khai Chế độ khởi động an toàn.
Nếu các hoạt động triển khai thiết bị triển khai Chế độ khởi động an toàn, thì các quá trình này sẽ:
[C-1-1] PHẢI cung cấp cho người dùng một lựa chọn để Enter Safe Boot Mode in that a Way that is uninterruptible from xóa-party apps installed on the device, except when the third-party app is a Device Policy Controller and has set the
UserManager.DISALLOW_SAFE_BOOT
flag as true.[C-1-2] PHẢI cung cấp cho người dùng khả năng gỡ cài đặt mọi ứng dụng của bên thứ ba trong Chế độ an toàn.
NÊN cung cấp cho người dùng tuỳ chọn để vào Chế độ khởi động an toàn từ trình đơn khởi động bằng cách sử dụng quy trình làm việc khác với quy trình khởi động thông thường.
9,14. Cách ly hệ thống xe ô tô
Các thiết bị Android Automotive được dự kiến sẽ trao đổi dữ liệu với các hệ thống con quan trọng trên xe bằng cách sử dụng HAL xe để gửi và nhận thông báo qua mạng xe, chẳng hạn như xe buýt CAN.
Hoạt động trao đổi dữ liệu có thể được bảo mật bằng cách triển khai các tính năng bảo mật bên dưới các lớp khung Android để ngăn chặn hoạt động tương tác độc hại hoặc không cố ý với những hệ thống con này.
9,15. Gói thuê bao
"Gói thuê bao" là thông tin chi tiết về gói quan hệ thanh toán do nhà mạng di động cung cấp thông qua SubscriptionManager.setSubscriptionPlans()
.
Tất cả cách triển khai thiết bị:
- [C-0-1]{4} Return subscription plans only to the mobile mobile app that has Providedtiêu cực chỉ với ứng dụng nhà mạng đã cung cấp ban đầu
- [C-0-2] KHÔNG ĐƯỢC sao lưu hoặc tải gói thuê bao từ xa lên.
- [C-0-3] PHẢI chỉ cho phép ghi đè, chẳng hạn như
SubscriptionManager.setSubscriptionOverrideCongested()
, từ ứng dụng nhà mạng di động hiện cung cấp các gói thuê bao hợp lệ.
9,16. Di chuyển dữ liệu ứng dụng
Nếu quá trình triển khai thiết bị có khả năng di chuyển dữ liệu từ một thiết bị sang một thiết bị khác và không giới hạn dữ liệu ứng dụng mà thiết bị sao chép thành dữ liệu do nhà phát triển ứng dụng định cấu hình trong tệp kê khai thông qua thuộc tính android:fullBackupContent, thì các ứng dụng đó sẽ:
- [C-1-1]{4} NOT launch of application data from devices on that the user has not set a primary Authentication as description in 9.11.1 Secure Lock Screen and Authentication.
- [C-1-2]{4} approved confirm the primary verification on the source device and confirm with the user intent to copy the data on the source device before any data is completed.
- [C-1-3] PHẢI use security key phiền chứng thực để bảo đảm rằng cả hai nguồn thiết bị và mục tiêu thiết bị trong di chuyển thiết bị đến thiết bị là hợp pháp các thiết bị Android và có trình tải khởi động bị khoá.
- [C-1-4] NOT chỉ di chuyển dữ liệu ứng dụng sang cùng ứng dụng trên thiết bị đích, với cùng tên gói AND ký chứng chỉ.
- [C-1-5] PHẢI show an shows that the source device has has data di by a device-to-device data migrated in the settings menu. A user nên NOT beable to remove this chỉ.
9,17. Khung ảo hoá Android
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android (android.system.virtualmachine.*
), máy chủ lưu trữ Android:
- [C-1-1] PHẢI support all the APIs xác định by gói
android.system.virtualmachine.*
. - [C-1-2] KHÔNG ĐƯỢC sửa đổi Android SELinux và mô hình quyền để quản lý các Máy ảo được bảo vệ.
- [C-1-3] truyền chuyển đổi không sửa đổi, bỏ qua, thay thế các quy tắc không bao giờ hiển thị trong hệ thống/sepolicy cung cấp trong dự án nguồn mở Android ngược dòng (AOSP) và chính sách PHẢI biên dịch với tất cả các quy tắc không bao giờ cho thấy.
- [C-1-4] KHÔNG ĐƯỢC cho phép mã không tin cậy (ví dụ: ứng dụng 3p) tạo và chạy máy ảo được bảo vệ. Lưu ý: Điều này có thể thay đổi trong các bản phát hành Android sau này.
- [C-1-5] KHÔNG ĐƯỢC cho phép Máy ảo được bảo vệ thực thi mã không phải là một phần của hình ảnh gốc hoặc bản cập nhật của chúng. Mọi hoạt động không thuộc phạm vi của tính năng Xác minh quy trình khởi động của Android (ví dụ: các tệp được tải xuống từ Internet hoặc không qua cửa hàng ứng dụng) KHÔNG ĐƯỢC phép chạy trong Máy ảo được bảo vệ.
Nếu thiết bị triển khai tính năng hỗ trợ cho các API Khung ảo hoá Android (android.system.virtualmachine.*
), thì mọi phiên bản được bảo vệ của Máy ảo được bảo vệ:
- [C-2-1] NOT beable to run all conditions available in the virtualization APEX in a Protected Virtual Machine.
- [C-2-2] PHẢI NOT cho phép máy ảo được bảo vệ chạy hệ điều hành không được ký bởi trình triển khai thiết bị hoặc nhà cung cấp hệ điều hành.
- [C-2-3] PHẢI NOT cho phép máy ảo được bảo vệ thực thi dữ liệu dưới dạng mã (ví dụ: SELinux luôn cho phép execmem).
- [C-2-4] KHÔNG ĐƯỢC sửa đổi, bỏ qua, hoặc thay thế các quy tắc bao giờ hiện diện trong hệ thống/sepolicy/microdroid cung cấp trong Dự án nguồn mở Android ngược dòng (AOSP).
- [C-2-5] PHẢI triển khai cơ chế bảo vệ máy ảo bảo vệ trong chiều sâu được bảo vệ (e.g. SELinux for pVMs) ngay cả đối với hệ điều hành không phải Microdroid.
- [C-2-6] PHẢI đảm bảo rằng chương trình cơ sở pVM từ chối khởi động nếu không thể xác minh hình ảnh ban đầu.
- [C-2-7] PHẢI đảm bảo rằng chương trình cơ sở pVM từ chối khởi động nếu tính toàn vẹn của phiên bản.img bị xâm phạm.
Nếu thiết bị triển khai tính năng hỗ trợ cho các API Khung ảo hoá Android (android.system.virtualmachine.*
), thì trình điều khiển ảo hoá:
- [C-3-1] PHẢI NOT allow any pVM to have access to a page by another entity (i.e. other pVM or Trên máy ảo), trừ khi được chia sẻ rõ ràng bởi chủ sở hữu trang. Bao gồm cả máy ảo lưu trữ. Điều này áp dụng cho cả quyền truy cập CPU và DMA.
- [C-3-2] PHẢI xoá sạch một trang sau khi máy ảo dùng và trước khi nó được trả về cho máy chủ (ví dụ: pVM bị huỷ).
- [C-3-3] PHẢI đảm bảo rằng chương trình cơ sở pVM được tải và thực thi trước bất kỳ mã nào trong pVM.
- [C-3-4] PHẢI đảm bảo rằng BCC and CDIs provided to a pVMinstance can only be derived by that specific chẳng.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android, thì trên tất cả các khu vực:
- [C-4-1] PHẢI NOT cung cấp chức năng cho một pVM đó cho phép bỏ qua Mô hình bảo mật Android.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho Android Virtualization API (API Khung ảo hoá Android), thì:
- [C-5-1] PHẢI hỗ trợ Isolated Compilation (tính năng biên dịch tách biệt) của một bản cập nhật thời gian chạy ART.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android, thì cho Quản lý khoá:
- [C-6-1] PHẢI root DICE string at a apoint that the user could could errors, nêu diễn đàn, ngay cả trên thiết bị đã mở khoá. (Để đảm bảo hình ảnh không bị giả mạo).
- [C-6-2] PHẢI thực hiện DICE đúng cách, tức là cung cấp các giá trị chính xác.
10. Kiểm tra tính tương thích của phần mềm
Quá trình triển khai thiết bị PHẢI vượt qua tất cả các bài kiểm thử được mô tả trong phần này. Tuy nhiên, lưu ý rằng không có gói kiểm thử phần mềm nào là hoàn toàn toàn diện. Vì lý do này, các trình triển khai thiết bị NÊN DÙNG để thực hiện số lượng thay đổi tối thiểu nhất có thể đối với hoạt động tham chiếu và phương thức triển khai ưu tiên của Android trong Dự án nguồn mở Android. Việc này sẽ giảm thiểu nguy cơ xảy ra lỗi tạo ra sự cố không tương thích đòi hỏi phải làm lại và có thể cập nhật thiết bị.
10.1. Bộ kiểm tra tính tương thích
Triển khai thiết bị:
[C-0-1] PHẢI vượt qua Android Compatibility Test Suite (CTS) có sẵn từ Dự án nguồn mở Android, sử dụng phần mềm vận chuyển cuối cùng trên thiết bị.
[C-0-2] PHẢI đảm bảo khả năng tương thích trong các trường hợp không rõ ràng trong CTS và cho bất kỳ triển khai lại nào của các phần của mã nguồn tham chiếu.
CTS được thiết kế để chạy trên thiết bị thực tế. Giống như mọi phần mềm khác, bản thân CTS có thể chứa lỗi. CTS sẽ được tạo phiên bản độc lập với Định nghĩa về khả năng tương thích này. Nhiều bản sửa đổi của CTS có thể được phát hành cho Android 13.
Triển khai thiết bị:
[C-0-3] PHẢI vượt qua phiên bản CTS mới nhất có sẵn tại thời điểm phần mềm thiết bị được hoàn tất.
NÊN sử dụng cách triển khai tham chiếu trong cây Nguồn mở Android nhiều nhất có thể.
10,2. Người xác minh CTS
Trình xác minh CTS đi kèm với Bộ kiểm tra tính tương thích và dành cho nhân viên vận hành để kiểm tra chức năng mà hệ thống tự động không kiểm tra được, chẳng hạn như hoạt động chính xác của máy ảnh và các cảm biến.
Triển khai thiết bị:
- [C-0-1] PHẢI thực thi chính xác tất cả các trường hợp có thể áp dụng trong trình xác minh CTS.
Trình xác minh CTS có các bài kiểm thử cho nhiều loại phần cứng, bao gồm cả một số phần cứng không bắt buộc.
Triển khai thiết bị:
- [C-0-2] PHẢI vượt qua tất cả các bài kiểm thử cho phần cứng mà họ sở hữu; chẳng hạn, nếu thiết bị sở hữu gia tốc kế, nó phải thực thi chính xác trường hợp kiểm tra gia tốc trong CTS Verifier.
Trường hợp kiểm thử các tính năng được ghi chú là không bắt buộc theo định nghĩa về khả năng tương thích Tài liệu này CÓ THỂ bỏ qua hoặc bỏ qua.
- [C-0-2] Mỗi thiết bị và mọi bản dựng PHẢI chạy chính xác CTS Verifier, như đã lưu ý ở trên. Tuy nhiên, vì nhiều bản dựng rất giống nhau, nên trình triển khai thiết bị không nên chạy Trình xác minh CTS trên các bản dựng chỉ khác nhau ở những điểm nhỏ. Cụ thể, các hoạt động triển khai thiết bị khác với cách triển khai đã vượt qua Trình xác minh CTS chỉ bằng tập hợp các ngôn ngữ, thương hiệu đi kèm, v.v. CÓ THỂ bỏ qua thử nghiệm Trình xác minh CTS.
11. Phần mềm có thể cập nhật
[C-0-1] Deviceimplementation PHẢI include a configuration to replace the en vuity of the system software. Cơ chế này không cần thực hiện quá trình nâng cấp "trực tiếp" – tức là BẠN CÓ THỂ khởi động lại thiết bị. Bạn có thể sử dụng phương pháp bất kỳ, miễn là phương pháp đó có thể thay thế toàn bộ phần mềm đã cài đặt trước trên thiết bị. Ví dụ: mọi phương pháp sau đây đều đáp ứng yêu cầu này:
- Tải xuống " qua mạng không dây (OTA)" bằng bản cập nhật ngoại tuyến thông qua việc khởi động lại.
- "Chia sẻ Internet" cập nhật qua USB từ máy tính lưu trữ.
- Cập nhật ở chế độ "Ngoại tuyến" bằng cách khởi động lại và cập nhật từ một tệp trên bộ nhớ di động.
[C-0-2] The update basic using NOT support updates without instead of user data. Tức là cơ chế cập nhật PHẢI bảo toàn dữ liệu riêng tư của ứng dụng và dữ liệu được chia sẻ của ứng dụng. Xin lưu ý rằng phần mềm Android ngược dòng có một cơ chế cập nhật đáp ứng yêu cầu này.
[C-0-3] The entire update PHẢI be signed and the on-device update environment PHẢI verification the update and signature response a public key supported on device.
[C-SR-1] The signingCông tác sản xuất là tôi Tăng cường bảo mật cho tất cả người dùng
Nếu quá trình triển khai thiết bị có hỗ trợ kết nối dữ liệu không đo lượng dữ liệu, chẳng hạn như 802.11 hoặc cấu hình Bluetooth PAN (Mạng khu vực cá nhân), thì chúng:
- [C-1-1] PHẢI hỗ trợ tải xuống OTA với cập nhật ngoại tuyến thông qua khởi động lại.
Thiết bị triển khai NÊN xác minh rằng hình ảnh hệ thống là nhị phân giống hệt với kết quả dự kiến sau một OTA. Việc triển khai OTA dựa trên khối trong Dự án nguồn mở Android ngược dòng (được thêm vào kể từ Android 5.1) đáp ứng yêu cầu này.
Ngoài ra, các hoạt động triển khai thiết bị NÊN hỗ trợ bản cập nhật hệ thống A/B. AOSP triển khai tính năng này bằng HAL điều khiển khởi động.
Nếu phát hiện lỗi trong quá trình triển khai thiết bị sau khi được phát hành nhưng trong vòng đời sản phẩm hợp lý được xác định theo sự tham khảo ý kiến của Nhóm tương thích với Android để ảnh hưởng đến khả năng tương thích của các ứng dụng bên thứ ba, thì:
- [C-2-1] The thiết bị triển khai PHẢI sửa lỗi qua một bản cập nhật phần mềm có sẵn mà có thể áp dụng cho mỗi cơ chế vừa được mô tả.
Android có các tính năng cho phép ứng dụng Chủ sở hữu thiết bị (nếu có) kiểm soát việc cài đặt bản cập nhật hệ thống. Nếu hệ thống cập nhật con cho thiết bị báo cáo android.software.device_admin, thì hệ thống đó sẽ:
- [C-3-1] PHẢI triển khai hành vi được mô tả trong lớp SystemUpdatePolicy.
12. Nhật ký thay đổi tài liệu
Sau đây là bản tóm tắt các thay đổi đối với Định nghĩa về khả năng tương thích trong bản phát hành này:
Ngày 4 tháng 10 năm 2023
2. Loại thiết bị
-
Xem bản sửa đổi
- [9.8/H-1-14] PHẢI hiển thị chỉ báo micrô, như mô tả trong phần 9.8.2
[9.8/C-3-1], khi một kết quả cụm từ kích hoạt thành công được truyền đến giọng nói
- [9.8/H-1-14] PHẢI hiển thị chỉ báo micrô, như mô tả trong phần 9.8.2
-
Xem bản sửa đổi
[5.1/H-1-7] NOT have a codec initialization latency of 40 ms or below for a 1080p or below video encryption session for all hardware video Encoders when under load. Quá trình tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video từ 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi động tính năng ghi âm thanh và video 1080p. Đối với bộ mã hoá và giải mã Dolby Vision, độ trễ khởi chạy bộ mã hoá (codec) PHẢI từ 50 mili giây trở xuống.
[5.1/H-1-12] PHẢI have a codec huỷ latency of 40 ms or removed for a 1080p or below video videos Kotlin session for all hardware video solutionrs when under load. Quá trình tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy phát âm thanh-video 1080p. Đối với bộ mã hoá và giải mã Dolby Vision, độ trễ khởi tạo bộ mã hoá (codec) PHẢI từ 50 mili giây trở xuống.
[5.1/H-1-13] PHẢI have a Code existing latency of 30 ms or least for a 128 kb or lower rates audio® solution session for all audio solutionrs when under load. Tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy phát âm thanh video 1080p.
7.4. Khả năng kết nối dữ liệu
7.4.1.1. Khả năng tương thích với tính năng chặn số:
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị báo cáo tính năng
android.hardware.telephony.calling
, thì các quy trình triển khai trên thiết bị sẽ:-
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị báo cáo
android.hardware.telephony.calling
, họ sẽ:
9.11. Khoá và thông tin đăng nhập
-
Xem bản sửa đổi
được cung cấp thông qua IAuthSecret HAL.
Xoá IAR sẽ trở thành yêu cầu PHẢI trong Android 14.
Ngày 26 tháng 6 năm 2023
2. Loại thiết bị
-
Đã loại bỏ các yêu cầu 7.2.3/H-0-5, 7.2.3/H-0-6, 7.2.3/H-0-7
Thông tin cập nhật khác:
Xem bản sửa đổi
It is{7} REVIEW to after the Measurement setup steps specified in ẩn số Calibration
Yêu cầu.
-
Xem bản sửa đổi
Nếu cấu hình triển khai thiết bị Automotive là 32 bit:
[7.6.1/A-1-1] The Memory available to the kernel and userspace PHẢI be at least 512MB if any of the followingtối is used:
- 280dpi trở xuống đối với màn hình nhỏ/bình thường
- ldpi hoặc thấp hơn trên màn hình cực lớn
- mdpi hoặc thấp hơn trên màn hình lớn
[7.6.1/A-1-2] The Memory available to the kernel and userspace PHẢI be at least 608MB if any of the following segments are used:
- xhdpi trở lên trên màn hình nhỏ/bình thường
- hdpi trở lên trên màn hình lớn
- mdpi trở lên trên màn hình cực lớn
[7.6.1/A-1-3] The Memory available to the kernel and userspace PHẢI be at least 896MB if any of the following segments are used:
- 400dpi trở lên đối với màn hình nhỏ/bình thường
- xhdpi trở lên trên màn hình lớn
- tvdpi trở lên trên màn hình cực lớn
[7.6.1/A-1-4] The memory available to the kernel and userspace PHẢI be at least 1344MB if any of the following feature are used:
- 560dpi trở lên đối với màn hình nhỏ/bình thường
- 400dpi trở lên đối với màn hình lớn
- xhdpi trở lên trên màn hình cực lớn
3. Phần mềm
3.2.3.5. Ý định của ứng dụng có điều kiện
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị báo cáo android.hardware.telephony.calling
, thì ứng dụng đó:android.hardware.telephony
7. Khả năng tương thích phần cứng
-
Xem bản sửa đổi
Yêu cầuđối với tính năng Hiệu chỉnh sự có mặt.
9. Khả năng tương thích của mô hình bảo mật
-
Xem bản sửa đổi
Triển khai thiết bị:
[C-0-5] KHÔNG ĐƯỢCcấp bất kỳ quyền thời gian chạy nào cho các ứng dụng
preinstalledtrừ khi:- Thiết bị được cài đặt tại thời điểm vận chuyển thiết bị VÀ
- Có thể có được sự đồng ý của người dùng trước khi ứng dụng
sử dụng
quyềnquyền,
OR
- Các quyền khi bắt đầu chạy được cấp theo chính sách cấp quyền mặc định hoặc để giữ một vai trò của nền tảng.
được liên kết với một mẫu ý định mà ứng dụng cài đặt trước được đặt làm trình xử lý mặc định.
9.11. Khoá và thông tin đăng nhập
- Xoá bỏ các yêu cầu [C-13-10] và 9.11.4.
Ngày 20 tháng 3 năm 2023
2. Loại thiết bị
-
Xem bản sửa đổi
Nếu ứng dụng cài đặt trong quá trình triển khai thiết bị cầm tay triển khai chức năng phân tách bằng cách sử dụng tính năng nhúng hoạt động, thì ứng dụng đó sẽ:
- [
C-17-13.2.3.1/ H-1-1] PHẢI có một hoạt động xử lý ý định Settings#ACTION_SETTINGS_embed_DEEP_LINK_ACTIVITY khi bật chức năng tách. Hoạt động PHẢI được bảo vệ bằngandroid.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
và hoạt động này PHẢI bắt đầu hoạt động của Ý định được phân tích cú pháp từ Settings#EXTRA_INSTALL_ xen kẽDED_DEEP_LINK_INTENT_URI.
Kết thúc các yêu cầu mới
- [
-
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị TV với bộ giải mã phần cứng VP9 hỗ trợ giải mã VP9 và cấu hình giải mã UHD, thì các quy trình đó:
- [5.3.7/T-
2-1SR1] Are quán ăn mòn, người dùng nên hỗ trợ định dạng UHD giải mã ở tốc độ 60 khung hình/giây với hồ sơ 2 (độ sâu màu 10 bit).
- [5.3.7/T-
-
Xem bản sửa đổi
Triển khai thiết bị Automotive:
[7.3/A-
0-1SR1] CÓ THỂ xác định được Vị trí bằng cách hợp nhất GPS/GNSS với các cảm biến bổ sung. If Location is dead reckoned, it is phong phú ph để triển khai và báo cáo tương ứng Sensor các loại và/hoặc xe thuộc tính ID được sử dụng.[7.3/A-
0-20-4] Vị trí được yêu cầu thông qua LocationManager#requestLocationUpdates() KHÔNG ĐƯỢC so khớp bản đồ.
3. Phần mềm
-
Xem bản sửa đổi
Tài khoản mặc định cho người liên hệ mới: Trình cung cấp danh bạ cung cấp các API để quản lý chế độ cài đặt của tài khoản mặc định khi tạo một người liên hệ mới.
Nếu quá trình triển khai thiết bị tải trước một ứng dụng danh bạ, thì ứng dụng danh bạ được tải sẵn:
[C-2-1] PHẢI xử lý ý định
ContactsContract.Settings.ACTION_SET_DEFAULT_ACCOUNT
để khởi chạy giao diện người dùng cho lựa chọn tài khoản và lưu cài đặt vào Trình cung cấp danh bạ khi một tài khoản được chọn.[C-2-2]{4} Hãy vinh danh chế độ cài đặt tài khoản mặc định khi xử lý
Intent.ACTION_INSERT and Intent.ACTION_INSERT_OR_EDIT
for theContactsContracts.Contacts.CONTENT_TYPE
vàContactsContract.RawContacts.CONTENT_TYPE
bằng cách chọn tài khoản ban đầu.
Kết thúc các yêu cầu mới
3.2.3.5. Ý định của ứng dụng có điều kiện
Xem bản sửa đổi
[Chuyển sang phiên bản 2.2.3]
Nếu ứng dụng Cài đặt trong quá trình triển khai thiết bị triển khai chức năng phân tách bằng cách sử dụng tính năng nhúng hoạt động, thì ứng dụng đó:
- [C-17-1] PHẢI có một hoạt động giúp xử lý ý định Settings#ACTION_SETTINGS_embed_DEEP_LINK_ACTIVITY khi bật chức năng phân tách. Hoạt động PHẢI được bảo vệ bằng
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
và hoạt động PHẢI bắt đầu hoạt động của Ý định được phân tích cú pháp từ Settings#EXTRA_INSTALL_ xen kẽDED_DEEP_LINK_INTENT_URI.
Kết thúc các yêu cầu mới
- [C-17-1] PHẢI có một hoạt động giúp xử lý ý định Settings#ACTION_SETTINGS_embed_DEEP_LINK_ACTIVITY khi bật chức năng phân tách. Hoạt động PHẢI được bảo vệ bằng
6. Khả năng tương thích với các tuỳ chọn và công cụ cho nhà phát triển
6.1. Công cụ cho nhà phát triển
Xem bản sửa đổi
- Khỉ
- [C-0-8] PHẢI bao gồm khung Monkey và cung cấp sẵn cho các ứng dụng sử dụng.
- Khỉ
7. Khả năng tương thích phần cứng
-
Xem bản sửa đổi
[Chuyển sang mục 7.4.9]
Nếu các hoạt động triển khai thiết bị bao gồm dịch vụ hỗ trợ 802.1.15.4 và hiển thị chức năng này cho một ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI triển khai API Android tương ứng trong android.uwb.
- [C-1-2] PHẢI báo cáo cờ tính năng phần cứng android.hardware.uwb.
- [C-1-3] PHẢI support tất cả các hồ sơ UWB có liên quan được xác định trong cách triển khai Android.
- [C-1-4] PHẢI cung cấp khả năng tương tác của người dùng để cho phép người dùng bật/tắt trạng thái bật/tắt vô tuyến UWB.
- [C-1-5] PHẢI thực thi rằng các ứng dụng đó bằng cách sử dụng UWB radio keep UWB_RANGING permission (trong chó người ngật ngư nhóm quyền).
- [C-1-6] AreĐể các thử nghiệm theo chuẩn và chứng nhận được xác định, bao gồm FIRA, CCC và CSA.
Kết thúc các yêu cầu mới
-
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị
bao gồm điện thoại GSM hoặc CDMAbáo cáo tính năngandroid.hardware.telephony
, thì:- [C-6-1]
SmsManager#sendTextMessage
vàSmsManager#sendMultipartTextMessage
PHẢI dẫn đến các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin văn bản.SmsManager#sendMultimediaMessage
vàSmsManager#downloadMultimediaMessage
PHẢI dẫn đến các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin đa phương tiện. - [C-6-2] Ứng dụng do
android.provider.Telephony.Sms#getDefaultSmsPackage
PHẢI sử dụng các API SmsManager khi gửi và nhận tin nhắn SMS và MMS. Việc triển khai tham chiếu AOSP (Dự án nguồn mở Android) trong các gói/ứng dụng/Nhắn tin đáp ứng yêu cầu này. - [C-6-3] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI hỗ trợ việc nhập các mã trình quay số tuỳ ý có định dạng là*#*#CODE#*#*
và kích hoạt thông báo truyền tinTelephonyManager#ACTION_SECRET_CODE
tương ứng. - [C-6-4] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI sử dụngVoicemailContract.Voicemails#TRANSCRIPTION
để hiển thị bản chép lời thư thoại kèm theo hình ảnh cho người dùng nếu ứng dụng đó hỗ trợ bản chép lời thư thoại kèm theo hình ảnh. - [C-6-5]{4} Mức độ danh sách cho tất cả SubscriptionInfo with tương đương
group UUIDs
as a single subscription in all user-visible}s that display and control SIM card information. Ví dụ về các thành phần như vậy bao gồm giao diện cài đặt phù hợp với
Settings#ACTION_MANAGE_ALL_SIM_PROFILES_SETTINGS
hoặcEuiccManager#ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS
. - [C-6-6] NOT display or allow control of any SubscriptionInfo with a non-null group UUID and opportunistic bit in any user-visible tiềms that allow configuration or control of SIM card settings.
Nếu các hoạt động triển khai thiết bị
bao gồm điện thoại GSM hoặc CDMAbáo cáo tính năngandroid.hardware.telephony
và cung cấp thanh trạng thái hệ thống, thì:- [C-
6-7-1] NOT choose a subject active subscription for a given group UUID để hiển thị cho người dùng trong bất kỳ thuộc tính nào cung cấp thông tin trạng thái SIM. Ví dụ về các thành phần như vậy bao gồm biểu tượng tín hiệu di động trên thanh trạng thái hoặc thẻ thông tin cài đặt nhanh. - [C-SR-1] It is Internet REVIEW that the agent subscription is chosen to be the active data subscription trừ phi thiết bị is in a voice call, trong đó is
Nếu các hoạt động triển khai thiết bị
bao gồm điện thoại GSM hoặc CDMAbáo cáo tính năngandroid.hardware.telephony
, thì:- [C-6-
87] PHẢI beCÓ khả năng mở và đồng thời sử dụng số lượng kênh logic tối đa (tổng cộng 20) cho mỗi UICC mỗi ETSI TS 102 221. - [C-6-
108] KHÔNG áp dụng bất kỳ hành vi nào sau đây cho các ứng dụng đang hoạt động (as chỉ định bởiTelephonyManager#getCarrierServicePackageName
) tự động hoặc không có xác nhận người dùng rõ ràng:- Thu hồi hoặc giới hạn quyền truy cập mạng
- Thu hồi quyền
- Hạn chế thực thi ứng dụng ở nền trước hoặc ở nền sau ngoài các tính năng quản lý nguồn hiện có trong AOSP (Dự án nguồn mở Android)
- Tắt hoặc gỡ cài đặt ứng dụng
Nếu quá trình triển khai thiết bị
bao gồm điện thoại GSM hoặc CDMAbáo cáo tính năngandroid.hardware.telephony
và tất cả gói thuê bao không mang tính cơ hội đang hoạt động có chung UUID nhóm đều bị tắt, loại bỏ bằng phương thức vật lý khỏi thiết bị hoặc được đánh dấu là cơ hội, thì thiết bị:- [C-
78-1] PHẢI tự động vô hiệu hoá tất cả các gói thuê bao cơ hội đang hoạt động còn lại trong cùng một nhóm.
Nếu các quá trình triển khai thiết bị bao gồm điện thoại GSM nhưng không bao gồm điện thoại CDMA, thì các quá trình triển khai đó:
- [C-
89-1] KHÔNG ĐƯỢC khai báoPackageManager#FEATURE_TELEPHONY_CDMA
. - [C-
89-2] PHẢI throw anIllegalArgumentException
{/3}Các nỗ lực để đặt bất kỳ loại mạng bit 3 - [C-
89-3] PHẢI trả về một chuỗi rỗng từTelephonyManager#getMeid
.
Nếu các phương thức triển khai thiết bị hỗ trợ eUICC bằng nhiều cổng và cấu hình, thì các thiết bị đó:
- [C-
1110-1] PHẢI khai báo cờ tính năngandroid.hardware.telephony.euicc.mep
.
- [C-6-1]
7.4.9. UWB (băng tần siêu rộng)
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị báo cáo hỗ trợ cho tính năngNếu quá trình triển khai thiết bị có hỗ trợ 802.1.15.4 và hiển thị chức năng cho ứng dụng bên thứ ba, thì chúng:android.hardware.uwb
thông qua lớpandroid.content.pm.PackageManager
,- [C-1-1] PHẢI triển khai API Android tương ứng trong android.uwb.
- [C-1-2] PHẢI báo cáo cờ tính năng phần cứng android.hardware.uwb.
- [C-1-3] PHẢI support tất cả các hồ sơ UWB có liên quan được xác định trong cách triển khai Android.
- [C-1-4] PHẢI cung cấp khả năng tương tác của người dùng để cho phép người dùng bật/tắt trạng thái bật/tắt vô tuyến UWB.
- [C-1-5] PHẢI thực thi rằng các ứng dụng đó bằng cách sử dụng UWB radio keep UWB_RANGING permission (trong chó người ngật ngư nhóm quyền).
- [C-SR-1] AreĐể các danh sách thực thi chính sách được xác định bởi các tổ chức tiêu chuẩn, bao gồm cả FIRA, CCC and CSA.
- [C-1-
16] PHẢI đảm bảo khoảng cách đo lường nằm trong phạm vi +/-15 cm for 95% of the metrics in the line of xoá environment at 1mdistance in a non-reflective chamber. - [C-1-
27] PHẢI đảm bảo rằng trung vị của khoảng cách đo lường tại 1m từ thiết bị tham chiếu là trong phạm vi [0.75m, 1.25m], where whereồng true distance ismeasure from the top Edge of the DUTNhân Mặt lên và nghiêng 45 độ. - [C-SR-2] Are kinh DOWNLOAD to Follow the Measurement setup steps specified in xoá các yêu cầu về hiệu chỉnh sự hiện diện.
It is linh hoạt khuyên dùng để theo dõi các bước thiết lập đo lường được chỉ định trong kích hoạt Hiệu chỉnh sự hiện diện.Kết thúc các yêu cầu mới
7.8.2.2. Cổng âm thanh kỹ thuật số
Xem bản sửa đổi
Để tương thích với tai nghe và các phụ kiện âm thanh khác bằng đầu nối USB-C và triển khai (lớp âm thanh USB) trên hệ sinh thái Android như xác định trong thông số kỹ thuật của tai nghe USB cho Android.
Ngày 19 tháng 10 năm 2022
2. Loại thiết bị
-
Xem bản sửa đổi
Nếu các phương thức triển khai thiết bị cầm tay không chạy ở chế độ khoá tác vụ, thì khi nội dung được sao chép vào bảng nhớ tạm, chúng sẽ:
- [3.8.17/H-1-1] PHẢI Hiển thị xác nhận cho người dùng rằng dữ liệu đã được sao chép vào bảng nhớ tạm (e.g., athumbnail or alerts of “Content rác.”). Thêm vào đây một chỉ báo nếu dữ liệu bảng nhớ tạm sẽ được đồng bộ hoá trên các thiết bị.
3. Phần mềm
3.2.3.5. Ý định của ứng dụng có điều kiện
Xem bản sửa đổi
Nếu ứng dụng Cài đặt trong quá trình triển khai thiết bị triển khai chức năng phân tách, bằng cách sử dụng tính năng nhúng hoạt động, thì chúng:
- [C-17-1] NOT have an activity thatprocessor the
Settings#ACTION_SETTINGS_CHUỖI_DEEP_LINK_ACTIVITY
intent when Split functions is on. The Activity PHẢI được bảo vệ bằng
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
và hoạt động này phải bắt đầu hoạt động của Ý định được phân tích cú pháp từ Settings#EXTRA_INSTALL_ xen kẽDED_DEEP_LINK_INTENT_URI.
Nếu các hoạt động triển khai thiết bị hỗ trợ
VoiceInteractionService
và có nhiều ứng dụng sử dụng API này được cài đặt cùng một lúc, thì chúng:- [C-18-1] PHẢI thỏa mãn ý định
android.settings.ACTION_VOICE_INPUT_SETTINGS
để hiển thị trình đơn cài đặt ứng dụng mặc định cho tính năng nhập bằng giọng nói và hỗ trợ.
- [C-17-1] NOT have an activity thatprocessor the
Settings#ACTION_SETTINGS_CHUỖI_DEEP_LINK_ACTIVITY
intent when Split functions is on. The Activity PHẢI được bảo vệ bằng
3.4.1 Khả năng tương thích với WebView
Xem bản sửa đổi
- [C-1-4]PHẢI hiển thị nội dung được cung cấp hoặc nội dung URL từ xa trong một quy trình khác với ứng dụng tạo thực thể WebView. Cụ thể, quy trình kết xuất đồ hoạ riêng biệt PHẢI giữ đặc quyền thấp hơn, chạy dưới dạng mã nhận dạng người dùng riêng biệt, không có quyền truy cập vào thư mục dữ liệu của ứng dụng, không có quyền truy cập mạng trực tiếp và chỉ có quyền truy cập vào các dịch vụ hệ thống cần thiết ở mức tối thiểu qua Binder. Việc triển khai AOSP của WebView đáp ứng yêu cầu này.
7. Khả năng tương thích phần cứng
-
Xem bản sửa đổi
Nếu các phương thức triển khai thiết bị có hỗ trợ chế độ tiết kiệm điện Wi-Fi như đã xác định trong tiêu chuẩn IEEE 802.11, thì các thiết bị đó:
[C-3-1] PHẢINÊN tắt chế độ lưu nguồn Wi-Fi bất cứ khi nào ứng dụng thu thập đượcWIFI_MODE_FULL_HIGH_PERF
khoá hoặcWIFI_MODE_FULL_LOW_LATENCY
khoá quaWifiManager.createWifiLock()
vàWifiManager.WifiLock.acquire()
-
Xem bản sửa đổi
Nếu các quá trình triển khai thiết bị có hỗ trợ Bluetooth năng lượng thấp (BLE), thì chúng:
- [C-3-5] PHẢI triển khai a Resolvable Private Address (RPA) timeout no Hồng 15 minutes and xoá the address at timeout to Protect user privacy when device is allowed using BLE for scanning or advertising. Để ngăn chặn các cuộc tấn công thời gian, thời gian chờ khoảng thời gian phải cũng được sắp xếp ngẫu nhiên trong khoảng từ 5 đến 15 phút.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị có máy ảnh mặt trước hoặc mặt sau, thì(các) máy ảnh đó:
- [C-1-1] PHẢI be Orientation để chiều dài của máy ảnh căn chỉnh với chiều dài của màn hình. Tức là khi thiết bị được giữ theo hướng ngang, máy ảnh PHẢI chụp ảnh theo hướng ngang. Điều này áp dụng cho bất kể hướng tự nhiên của thiết bị; tức là áp dụng cho các thiết bị chính ở chế độ ngang cũng như các thiết bị chính hướng dọc.
Những thiết bị đáp ứng tất cả những tiêu chí sau đây sẽ được miễn tuân theo yêu cầu nêu trên:- Thiết bị triển khai các màn hình có dạng biến đổi được, chẳng hạn như màn hình có thể gập lại hoặc màn hình có bản lề.
- Khi trạng thái gập hoặc bản lề của thiết bị thay đổi, thiết bị sẽ chuyển đổi giữa hướng dọc-chính sang hướng ngang-chính (hoặc ngược lại).
Kết thúc các yêu cầu mới
9. Khả năng tương thích của mô hình bảo mật
9.11 Khoá và thông tin xác thực
Xem bản sửa đổi
Khi quá trình triển khai thiết bị hỗ trợ màn hình khoá bảo mật, quá trình triển khai sẽ:
- [C-1-6] PHẢI support IKeymasterDevice 4.0, IKeymasterDevice 4.1, IKeyMintDevice version 1 or IKeyMintDevice version 2.
-
Xem bản sửa đổi
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android (
android.system.virtualmachine.*
), thì máy chủ lưu trữ Android:[C-1-3] PHẢI NOT edit, Ignore, or replace the Neverallow rulesCông diễn trong hệ thống/sepolicy được cung cấp trong dự án nguồn mở Android ngược dòng (AOSP) và chính sách PHẢI biên dịch với tất cả các quy tắc không bao giờ cho thấy.
Nếu thiết bị triển khai tính năng hỗ trợ cho các API Khung ảo hoá Android (
android.system.virtualmachine.*
), thì mọi phiên bản của Máy ảo được bảo vệ:[C-2-4] KHÔNG ĐƯỢC sửa đổi, bỏ qua, hoặc thay thế các quy tắc không bao giờ hiện diện trong hệ thống/sepolicy/microdroid provided in the upstream Android Open Source Project (AOSP).
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android, thì cho Quản lý khoá:
- [C-6-2] PHẢI thực hiện DICE đúng cách, tức là cung cấp các giá trị chính xác.
Nhưng có thể video không cần đến mức độ chi tiết đó.
Ngày 15 tháng 8 năm 2022
2. Loại thiết bị
2.2.1 Phần cứng: Các thay đổi đối với các yêu cầu phần cứng như sau.
Thiết bị đầu vào:
Xem bản sửa đổi
Triển khai thiết bị cầm tay:
- [7.2.3/H-0-5] PHẢI call
OnBackInvokedCallback.onBackStarted()
on the current focus window when the back screen starting or the back nút (KEYCODE_BACK
) is pressed DOWN. - [7.2.3/H-0-6] PHẢI gọi
OnBackInvokedCallback.onBackInvoked()
khi cử chỉ quay lại là cam kết hoặc nút Quay lại được phát hành (UP). - [7.2.3/H-0-7] PHẢI gọi
OnBackInvokedCallback.onBackCancelled()
khi cử chỉ quay lại không phải là cam kết hoặc sự kiệnKEYCODE_BACK
bị huỷ.
Kết thúc các yêu cầu mới
Nếu thiết bị hỗ trợ giao thức Mạng nhận biết mạng lân cận (NAN) bằng cách khai báo
PackageManager.FEATURE_WIFI_AWARE
và Vị trí Wi-Fi (Thời gian trọn vòng của Wi-Fi — RTT) bằng cách khai báoPackageManager.FEATURE_WIFI_RTT
, thì chúng:[7.4.2.5/H-1-1] truyền báo cáo phạm vi chính xác cho trong phạm vi +/-1 meter at 160 MHz MHz at the 68th percent (as assigned with the Tích phân Function), +/-2 metric at 80 MHz MHz, at the 68th percent, +/-4 meter-percent at the MHz MHz,
[7.4.2.5/H-SR] AreĐể nhà phát triển không được giới hạn vào báo cáo phạm vi chính xác đến trong phạm vi +/-1 meter at 160 MHzBandwidth at the 90th percent (as nút on the Integration Distribution Function), +/-2 metric at 80 MHz MHz at the 90th Chrome, +/-4meter at 40 MHztức phổ và 90 MHz,
It isreal NÊN theo dõi các bước thiết lập đo lường được chỉ định trong now Calibrationrequirements.
Kết thúc các yêu cầu mới
- [7.2.3/H-0-5] PHẢI call
Độ trễ âm thanh:
Xem bản sửa đổi
Nếu các phương thức triển khai Thiết bị cầm tay khai báo
android.hardware.audio.output
vàandroid.hardware.microphone
, thì chúng:- [5.6/H-1-1] have a Mean Related Round-Trip
latency of 500
800milliseconds or least over 5 metrics, with a Mean Strict Deviation least than 50100ms, over the following data path: "speaker to microphone", 3.5 mm loopback cancó ít nhất một đường dẫn được hỗ trợ.
- [5.6/H-1-1] PHẢI have an trung bình Tap-to-tone latency of 500 milliseconds or below over at least 5 adjustments over the loa to microphone data path.
Kết thúc các yêu cầu mới
- [5.6/H-1-1] have a Mean Related Round-Trip
latency of 500
Dữ liệu đầu vào xúc giác:
Xem bản sửa đổi
Nếu cấu hình triển khai Thiết bị cầm tay bao gồm ít nhất một bộ truyền động xúc giác, thì chúng:
- [7.10/H]* NÊN NOT use an eccentric rotating mall (ERM) htical actuator (vibrator).
- [7.10/H]* NÊN định vị vị trí của bộ truyền động gần vị trí nơi thiết bị thường được cầm hoặc chạm bằng tay.
- [7.10/H]* NÊN triển khai tất cả các hằng số công khai cho clear huctions trong android.view.HFeedbackConstants cụ thể là (CLOCK_TICK, CONTEXT_CLICK, KEY Chính PRESS, KEY kế nhạt, KEY ban_TAP, LONG_PRESS, TEXT_HANDLE_MOVEEST, VIRTU_COMMUNITY_release)
- [7.10/H]* NÊN triển khai tất cả các hằng số công khai cho
clear hics
in android.os.SemanticEffect
cụ thể (Effect_TICK, Effect_CLICK, BRAND_HEAVY_CLICK and
DOUBLE_CLICK) and all available Public
PRIMITIVE_*
số các hàng số cho rich hics}Composition}Hạp chích chi tiếtliên quan đến Android
- [7.10/H]* kích hoạt theo trục hướng dẫn dành cho ánh xạ công cộng hằng số in android.view.H Vị trí
Kết thúc các yêu cầu mới
- [7.10/H]* NÊN xác minh rằng kết quả của công khai android.os.Vibrator.hasAmplitudeControl() API phản ánh chính xác khả năng của bộ rung của họ.
Kết thúc các yêu cầu mới
- [7.10/H]* kích hoạt xác minh khả năng cho biên độ bằng cách chạy android.os.Vibrator.hasAmplitudeControl().
Nếu việc triển khai Thiết bị cầm tay bao gồm ít nhất một bộ kích hoạt cộng hưởng tuyến tính, thì các hoạt động đó:
[7.10/H]* màu di chuyển bộ truyền động xúc giác in the X-axis (left-right) của hướng dọc.
[7.10/H]* kích hoạt xác minh và cập nhật nếu cần cấu hình dự phòng cho các nguyên thuỷ không được hỗ trợ như mô tả trong phần hướng dẫn triển khai cho hằng số.
[7.10/H]* NÊN cung cấp tính năng hỗ trợ dự phòng để giảm thiểu rủi ro không thực hiện được như mô tả tại đây.
-
Xác thực Danh mục thiết bị đơn giản:
Xem bản sửa đổi
- [3.8.16/H-1-5] PHẢI cung cấp một người dùng
affordance to opt out of app specified auth-trivial device controls from
the controls by the third-party applications through the
ControlsProviderService
and theControl
Control.isAuthRequired
API.
- [3.8.16/H-1-5] PHẢI cung cấp một người dùng
affordance to opt out of app specified auth-trivial device controls from
the controls by the third-party applications through the
Thông báo MediaStyle:
Xem bản sửa đổi
Nếu các phương thức triển khai thiết bị cầm tay hỗ trợ thông báo MediaStyle, thì chúng:
- [3.8.3.1/H-1-SR] Are Thêm lựa chọn giải pháp để cung cấp khả năng tương tác của người dùng(e.g. “output Switcher”) accessed from system UI that cho phép người dùng chuyển đổi giữa các tuyến đường có sẵn thích hợp(e.g. bluetooth devices and routes provided to MediaRouter2Manager) when an app posts a MediaStyle notification with a MediaSession token.
2.2.4 Hiệu suất và sức mạnh: Yêu cầu mới đối với các ứng dụng chạy dịch vụ trên nền trước.
Xem bản sửa đổi
Triển khai thiết bị cầm tay:
- [8.5/H-0-1] PHẢI cung cấp một thuộc tính tương tác người dùng trong trình đơn Cài đặt với khả năng dừng một ứng dụng đang chạy dịch vụ trên nền trước và hiển thị tất cả các ứng dụng có dịch vụ trên nền trước đang hoạt động và thời lượng của mỗi dịch vụ này kể từ khi bắt đầu như được mô tả trong tài liệu SDK.
- Một số ứng dụng CÓ THỂ được miễn trừ khỏi việc bị dừng hoặc được liệt kê trong một thuộc tính tương tác của người dùng như mô tả trong tài liệu SDK.
Kết thúc các yêu cầu mới
- [8.5/H-0-1] PHẢI cung cấp một thuộc tính tương tác người dùng trong trình đơn Cài đặt với khả năng dừng một ứng dụng đang chạy dịch vụ trên nền trước và hiển thị tất cả các ứng dụng có dịch vụ trên nền trước đang hoạt động và thời lượng của mỗi dịch vụ này kể từ khi bắt đầu như được mô tả trong tài liệu SDK.
2.2.7.1 Nội dung nghe nhìn: Cập nhật cho phần Nội dung nghe nhìn yêu cầu cầm tay như sau:
Xem bản sửa đổi
Nếu các phương thức triển khai Thiết bị cầm tay trả về
android.os.Build.VERSION_CODES.T
choandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:- [5.1/H-1-1] PHẢI quảng cáo số lượng tối đa của bộ giải mã video phần cứng
có thể được chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-2] PHẢI support 6Instance of hardware video pastedr session (AVC, HEVC, VP9, AV1 trở lên) in bất kỳ tổ hợp bộ mã hoá và giải mã chạy đồng thời nào ở độ phân giải 1080p resolve@30 fps.
- [5.1/H-1-3] PHẢI quảng cáo số lượng tối đa của bộ mã hoá video phần cứng
có thể được chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-4] PHẢI support 6Instance of hardware video Encodersessions (AVC, HEVC, VP9, AV1 trở lên) trong bất kỳ tổ hợp bộ mã hoá và giải mã nào chạy đồng thời ở độ phân giải 1080p issue@30fps.
- [5.1/H-1-5] PHẢI quảng cáo số lượng tối đa của bộ mã hoá video phần cứng và giải mã phiên có thể chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
CodecCapabilities.getMaxSupportedInstances()
vàVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-6] PHẢI support 6Instance of hardware video solutionr and hardware video Encoder session (AVC, HEVC, VP9, AV1 or tức sau đó) trong bất kỳ bộ mã hoá và giải mã kết hợp nào chạy đồng thời ở độ phân giải 1080p@30fps.
- [5.1/H-1-7] NOT have a codec initialization latency of 40 ms or below for a 1080p or below video encryption session for all hardware video Encoders when under load. Quá trình tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video từ 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi động tính năng ghi âm thanh và video 1080p.
- [5.1/H-1-8] PHẢI have a codec restart latency of 30 ms or more for a 128 kb or lower web rates audio encryption session for all audio Encoders when under tải. Tải ở đây được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng cùng với quá trình khởi chạy ghi âm thanh và video 1080p.
- [5.1/H-1-9] NOT support 2Instance ofbảo mật video bộ giải mã video phiên (AVC, HEVC, VP9, AV1 trở lên) trong bất kỳ tổ hợp bộ mã hoá và giải mã nào đang chạy đồng thời ở độ phân giải 1080p issue@30 fps.
- [5.1/H-1-10] PHẢI support 3instance of non-secure video hardware formatr sessions together with 1Instance ofbảo mật video bộ giải mã phiên (4Instance total) (AVC, HEVC, VP9, AV1 or extra) in any codec combination Running concurrent at 1080p issue@30fps.
- [5.1/ H-1-11] PHẢI hỗ trợ bộ giải mã bảo mật cho mọi phần cứng AVC, HEVC, VP9 hoặc AV1 giải mã trên thiết bị.
- [5.1/H-1-12] PHẢI có độ trễ khởi động bộ giải mã video từ 40 mili giây trở xuống.
- [5.1/H-1-13] PHẢI có độ trễ khởi động bộ giải mã âm thanh từ 30 mili giây trở xuống.
- [5.1/H-1-14] PHẢI hỗ trợ bộ giải mã phần cứng AV1 Main 10, Level 4.1.
- [5.1/H-SR] Chúng tôi đặc biệt khuyến nghị hỗ trợ Hiệu ứng hạt mỏng cho bộ giải mã phần cứng AV1.
- [5.1/H-1-15] PHẢI có ít nhất 1 bộ giải mã video phần cứng hỗ trợ 4K60.
- [5.1/H-1-16] PHẢI có ít nhất 1 bộ mã hoá video phần cứng hỗ trợ 4K60.
- [5.3/H-1-1] PHẢI NOT drop more than 1 frame in 10 seconds (i.e least 0.167 percent framedrop) for a 1080p 60 fps video session underload. Tải được định nghĩa là một phiên chuyển mã đồng thời chỉ dành cho video 1080p sang 720p bằng cách sử dụng bộ mã hoá và giải mã video phần cứng, cũng như phát âm thanh AAC 128 kb/giây.
- [5.3/H-1-2] KHÔNG ĐƯỢC thả hơn 1 khung hình trong 10 giây trong khi thay đổi độ phân giải video trong một phiên video 60 khung hình/giây khi tải. Tải được định nghĩa là một phiên chuyển mã chỉ dành cho video từ 1080p sang 720p đồng thời bằng cách sử dụng bộ mã hoá và giải mã video phần cứng, cũng như phát âm thanh AAC 128 kb/giây.
- [5.6/H-1-1] PHẢI có độ trễ nhấn-to-tone là 80 mili giây trở xuống bằng cách sử dụng kiểm thử nhấn để chỉnh sắc độ Oboe của Oboe hoặc kiểm thử nhấn để âm sắc của Trình xác minh CTS.
- [5.6/H-1-2] PHẢI have around-trip audio latency of 80 milliseconds or least over at least one supported data path.
- [5.6/H-1-3] PHẢI support >=24-bit audio for stereo output over 3.5 mm audio
jacks if current and over USB audio if supported through the
en lui data path for low latency and streaming configurations. Đối với cấu hình độ trễ thấp, ứng dụng nên sử dụng AAudio ở chế độ gọi lại độ trễ thấp. Đối với cấu hình truyền trực tuyến, ứng dụng nên sử dụng Java AudioTrack. Trong cả cấu hình độ trễ thấp và cấu hình truyền trực tuyến, bồn lưu trữ đầu ra HAL phải chấp nhận
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
hoặcAUDIO_FORMAT_PCM_FLOAT
cho định dạng đầu ra mục tiêu. - [5.6/H-1-4] PHẢI support >=4 channel USB audio devices (This is used by DJ controllers for PreviewBài hát).
- [5.6/H-1-5] PHẢI support class creatives MIDI devices and Khai báo cờ tính năng MIDI.
- [5.7/H-1-2] PHẢI support
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
with the below content Nhắm giải mã khả năng.
Kích thước mẫu tối thiểu 4 MiB Số lượng mẫu phụ tối thiểu – H264 hoặc HEVC 32 Số lượng mẫu con tối thiểu – VP9 9 Số lượng mẫu con tối thiểu – AV1 288 Dung lượng bộ nhớ đệm mẫu phụ tối thiểu 1 MiB Dung lượng vùng đệm mã hoá chung tối thiểu 500 KiB Số phiên đồng thời tối thiểu 30 Số lượng khoá tối thiểu mỗi phiên 20 Tổng số khoá tối thiểu (tất cả các phiên) 80 Tổng số khoá DRM tối thiểu (tất cả các phiên) 6 Kích thước thư 16 KiB Khung hình được giải mã mỗi giây 60 khung hình/giây Kết thúc các yêu cầu mới
- [5.1/H-1-1] PHẢI quảng cáo số lượng tối đa của bộ giải mã video phần cứng
có thể được chạy đồng thời trong bất kỳ tổ hợp bộ mã hoá và giải mã nào qua các phương thức
2.2.7.2 Camera: Nội dung cập nhật đối với các yêu cầu của Media Performance Class Camera.
Xem bản sửa đổi
Nếu các phương thức triển khai Thiết bị cầm tay trả về
android.os.Build.VERSION_CODES.T
choandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì các phương thức triển khai đó:- [7.5/H-1-1] NOT have a primary front surface camera with aHD of at least 12 megapixels supported video capture at 4k@30fps. Máy ảnh mặt sau chính là máy ảnh mặt sau có mã nhận dạng máy ảnh thấp nhất.
- [7.5/H-1-2] PHẢI have a primary pre surface camera with a segments of at least 5 megapixels and support video capture at 1080p@30fps. Máy ảnh mặt trước chính là máy ảnh mặt trước có mã nhận dạng máy ảnh thấp nhất.
- [7.5/H-1-3] PHẢI hỗ trợ thuộc tính
android.info.supportedHardwareLevel
asFULL
trở lên cho cả hai máy ảnh chính. - [7.5/H-1-4] PHẢI hỗ trợ
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
for cả primary cameras. - [7.5/H-1-5] PHẢI have camera2 JPEG xoá latency < 1000 ms for 1080pen issue as Measure by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for the primary characters (3000K) [7.5/H-1-5]
- [7.5/H-1-6] PHẢI have camera2 boot latency (open camera to first review frame) < 500 ms as Measure by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for all primary templates.
- [7.5/H-1-8] PHẢI support
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
andandroid.graphics.ImageFormat.RAW_SENSOR
for the primary back camera. - [7.5/H-1-9] PHẢI have a front-au camera primary camerasupport 720p or 1080p @ 240fps.
- [7.5/H-1-10] PHẢI have min ZOOM_RATIO < 1.0 for the primary camera if there là một camera siêu rộng RGB hướng về cùng một hướng.
- [7.5/H-1-11] PHẢI triển khai đồng thời front-back streaming trên máy ảnh chính.
- [7.5/H-1-12] PHẢI support
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
for cả primary front and primary back camera. - [7.5/H-1-13] NOT support
LOGICAL_MULTI_CAMERA
feature for the primary cameras if if there are large than 1 RGB brands fps on the same direction. - [7.5/H-1-14] PHẢI support
STREAM_USE_CASE
feature for cả primary front and primary back camera.
Kết thúc các yêu cầu mới
2.2.7.3 Phần cứng: Nội dung cập nhật cho các yêu cầu của Lớp hiệu suất nội dung đa phương tiện đối với Phần cứng.
Xem bản sửa đổi
Nếu các hoạt động triển khai Thiết bị cầm tay trả về
android.os.Build.VERSION_CODES.T
choandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:- [7.1.1.1/H-2-1] PHẢI có độ phân giải màn hình tối thiểu là 1080p.
- [7.1.1.3/H-2-1] PHẢI có mật độ màn hình ít nhất 400 dpi.
- [7.6.1/H-2-1] PHẢI có ít nhất 8 GB bộ nhớ vật lý.
Kết thúc các yêu cầu mới
2.2.7.4 Hiệu suất: Nội dung cập nhật cho Lớp hiệu suất nội dung đa phương tiện cho hiệu suất.
Xem bản sửa đổi
Nếu các hoạt động triển khai Thiết bị cầm tay trả về
android.os.Build.VERSION_CODES.T
choandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:- [8.2/H-1-1] PHẢI đảm bảo hiệu suất ghi tuần tự tối thiểu 125 MB/s.
- [8.2/H-1-2] PHẢI đảm bảo hiệu suất ghi ngẫu nhiên ít nhất 10 MB/s.
- [8.2/H-1-3] PHẢI đảm bảo hiệu suất đọc tuần tự tối thiểu 250 MB/s.
- [8.2/H-1-4] PHẢI đảm bảo hiệu suất đọc ngẫu nhiên ít nhất 40 MB/s.
Kết thúc các yêu cầu mới
2.5.1 Phần cứng: Nội dung cập nhật đối với các yêu cầu về gia tốc kế 3 trục và con quay hồi chuyển 3 trục, cũng như các yêu cầu đối với máy ảnh có góc nhìn bên ngoài.
Xem bản sửa đổi
Triển khai thiết bị Automotive:
- [7.3.1/A-0-4] NOTCompliance with the Android car sensor coordinate system.
- [7.3/A-SR] Are{/7} kẻ đề xuất muốn bao gồm gia tốc kế 3 trục và con quay hồi chuyển 3 trục.
- [7.3/A-SR] AreĐể nhà phân phối quảng cáo chạy quảng cáo và báo cáo cảm biến
TYPE_HEADING
.
Nếu quá trình triển khai thiết bị Automotive có bao gồm gia tốc kế, thì các ứng dụng đó sẽ:
- [7.3.1/A-1-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế 3 trục, thì các phương thức triển khai đó:
- [7.3.1/A-SR] AreĐể nhà phát triển khuyến khích dùng tính năng này để triển khai cảm biến composite for limited axes accelerometer.
Nếu quá trình triển khai thiết bị Automotive bao gồm gia tốc kế có ít hơn 3 trục, thì chúng:
- [7.3.1/A-1-3] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES
. - [7.3.1/A-1-4] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
.
Nếu quá trình triển khai thiết bị Automotive bao gồm con quay hồi chuyển, thì chúng:
- [7.3.4/A-2-1] PHẢI beable to report events up to a frequency of at least 100 Hz.
- [7.3.4/A-2-3] NOT be compatibility of Measurement changes up to 250degree per seconds.
- [7.3.4/A-SR] AreĐể nhà phát triển khuyến khích dùng tính năng định cấu hình phạm vi đo lường của con quay hồi chuyển đến +/-250dps để tối đa hoá độ phân giải có thể có.
Kết thúc các yêu cầu mới
Nếu hoạt động triển khai thiết bị Automotive bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [7.3.4/A-SR] AreĐể nhà phát triển khuyến khích dùng tính năng này để triển khai composite sensor for limited axes gyroscope.
Nếu quá trình triển khai thiết bị Automotive bao gồm một con quay hồi chuyển có ít hơn 3 trục, thì chúng:
- [7.3.4/A-4-1] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES
. - [7.3.4/A-4-2] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
.
Nếu các mô-đun triển khai thiết bị trên ô tô có cảm biến
TYPE_HEADING
, thì chúng:- [7.3.4/A-4-3] NOT beable to report events up to a frequency of at least 1 Hz.
- [7.3.4/A-SR] hủy lựa chọn phát trực tiếp để báo cáo sự kiện lên đến tần suất tối thiểu là 10 Hz.
- PHẢI tham chiếu đến đúng hướng bắc.
- NÊN dùng được ngay cả khi xe đứng yên.
- PHẢI có độ phân giải ít nhất là 1 độ.
Kết thúc các yêu cầu mới
Camera quan sát bên ngoài là một camera ghi lại các cảnh bên ngoài quá trình triển khai thiết bị, chẳng hạn như camera chiếu hậu
camera hành trình.Nếu nội dung triển khai trên thiết bị Automotive bao gồm một máy ảnh có khung nhìn bên ngoài, đối với một máy ảnh như vậy, thì chúng:
[7.5.5/A-SR] AreĐể chỉ định vị trí, các chiều dài của máy ảnh đã được căn chỉnh sao cho phù hợp với đường chân trời.NÊN support Android companion đưa.CÓ THỂ triển khai tính năng tự động lấy nét phần cứng hoặc tự động lấy nét bằng phần mềm trong trình điều khiển máy ảnh.
Nếu phương thức triển khai thiết bị trên ô tô bao gồm một hoặc nhiều camera quan sát bên ngoài và tải dịch vụ Hệ thống hiển thị bên ngoài (EVS), thì đối với camera đó, chúng:
- [7.5/A-2-1] KHÔNG xoay hoặc phản chiếu theo chiều ngang của bản xem trước máy ảnh.
Triển khai thiết bị Automotive:
- CÓ THỂ bao gồm một hoặc nhiều máy ảnh dành cho các ứng dụng bên thứ ba.
Nếu các hoạt động triển khai thiết bị trên ô tô bao gồm ít nhất một máy ảnh và cung cấp cho các ứng dụng bên thứ ba, thì các máy ảnh đó sẽ:
- [7.5/A-3-1] PHẢI báo cáo cờ tính năng
android.hardware.camera.any
. - [7.5/A-3-2] PHẢI notDeclare the camera as a system camera.
- CÓ thể hỗ trợ các máy ảnh bên ngoài như mô tả trong mục 7.5.3.
- Có thể bao gồm các tính năng (chẳng hạn như tự động lấy nét, v.v.) có sẵn cho máy ảnh phía sau như mô tả trong section 7.5.1.
Kết thúc các yêu cầu mới
2.5.5 Mô hình bảo mật: Yêu cầu mới về quyền truy cập camera đối với thiết bị trên ô tô.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị Automotive khai báo
android.hardware.camera.any
, thì chúng:[9.8.2/A-2-1] PHẢI hiển thị chỉ báo máy ảnh khi một ứng dụng đang truy cập dữ liệu máy ảnh trực tiếp, nhưng không khi máy ảnh chỉ được truy cập bởi ứng dụng giữ vai trò được gọi ra trong Mục 9.1 Quyền với CDD identifier [C-3-X].
[9.8.2/A-2-2] KHÔNG ĐƯỢC ẩn chỉ báo camera cho các ứng dụng hệ thống có giao diện người dùng hiển thị hoặc tương tác trực tiếp của người dùng.
Kết thúc các yêu cầu mới
2.6.1 Yêu cầu về máy tính bảng – Phần cứng: Nội dung cập nhật đối với yêu cầu về kích thước màn hình của máy tính bảng.
Xem bản sửa đổi
Thiết bị máy tính bảng Android là cách triển khai thiết bị Android thường đáp ứng tất cả các tiêu chí sau:
- Có kích thước màn hình lớn hơn 7 inch và nhỏ hơn 18 inch, được đo theo đường chéo.
Kích thước màn hình
- [7.1.1.1/Tab-0-1] PHẢI có màn hình trong khoảng từ 7 đến 18 inch.
3. Phần mềm
3.2.2 Tham số bản dựng: Ký tự ASCII đã cập nhật trong
getSerial()
.Xem bản sửa đổi
- [C-0-1] Để cung cấp các giá trị nhất quán, có ý nghĩa trên các triển khai thiết bị, bảng bên dưới bao gồm các hạn chế bổ sung về các định dạng của các giá trị này mà các triển khai thiết bị PHẢI tuân thủ.
Tham số Thông tin chi tiết getSerial() PHẢI (be or Return) a hardware sê-ri number, mà PHẢI be available and duy nhất trên các thiết bị with the cùng MODEL and MANUfactURER. Giá trị của trường này PHẢI be encodable as 7-bit ASCII và khớp với biểu thức chính quy “^[a-zA-Z0-9]+$”. 3.2.3.5 Ý định của ứng dụng có điều kiện: Cập nhật các yêu cầu đối với ý định ứng dụng có điều kiện.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị bao gồm một màn hình lớn (thường có chiều rộng và chiều cao màn hình là 600dp trở lên) và hỗ trợ chức năng phân tách, thì chúng:
- [C-17-1] PHẢI có một hoạt động xử lý ý định Settings#ACTION_INSTALL_cpp_DEEP_LINK_ACTIVITY khi bật chức năng tách. Hoạt động PHẢI được bảo vệ bằng
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
và hoạt động này PHẢI bắt đầu hoạt động của Ý định được phân tích cú pháp từ Settings#EXTRA_INSTALL_ xen kẽDED_DEEP_LINK_INTENT_URI.
Kết thúc các yêu cầu mới
- [C-17-1] PHẢI có một hoạt động xử lý ý định Settings#ACTION_INSTALL_cpp_DEEP_LINK_ACTIVITY khi bật chức năng tách. Hoạt động PHẢI được bảo vệ bằng
3.5.1 Quy định hạn chế về ứng dụng: Thông tin cập nhật về các quy định hạn chế của ứng dụng.
Xem bản sửa đổi
Nếu việc triển khai thiết bị triển khai một cơ chế độc quyền để hạn chế các ứng dụng (ví dụ: thay đổi hoặc hạn chế hành vi của API được mô tả trong SDK) và cơ chế đó hạn chế hơn so với Nhóm chế độ chờ ứng dụng bị hạn chế, chúng:
- [C-1-1] PHẢI cho phép người dùng xem danh sách các ứng dụng bị hạn chế.
- [C-1-2] PHẢI cung cấp thuộc tính tương tác của người dùng để bật / tắt tất cả các hạn chế thuộc quyền sở hữu này trên mỗi ứng dụng.
- [C-1-3]{4} not automatic Đơn vị hạn chế độc quyền mà không có evidence ofBáo cáo tình trạng sức khoẻ kém hệ thống, nhưng CÓ THỂ áp dụng hạn chế trên các ứng dụng upon phát hiện của vấn đề sức khoẻ hệ thống, bị mắc kẹt Wlocks, long running services, và các tiêu chí khác. Tiêu chí CÓ THỂ được xác định bởi người triển khai thiết bị nhưng PHẢI liên quan đến tác động của ứng dụng đối với tình trạng hệ thống. Các tiêu chí khác không hoàn toàn liên quan đến tình trạng hệ thống, chẳng hạn như tình trạng thiếu mức độ phổ biến của ứng dụng trên thị trường, KHÔNG được dùng làm tiêu chí.
- [C-1-4] PHẢI not tự động áp dụng các hạn chế độc quyền này cho các ứng dụng khi người dùng đã tắt các hạn chế ứng dụng theo cách thủ công và CÓ THỂ đề xuất người dùng để áp dụng các hạn chế độc quyền này.
[C-1-5] PHẢI thông báo cho người dùng nếu các hạn chế độc quyền này được áp dụng tự động cho một ứng dụng. Những thông tin đó PHẢI được cung cấp trong khoảng thời gian 24 giờ trước khi áp dụng các hạn chế về quyền sở hữu này.
[C-1-6] PHẢI Return true for the ActivityManager.isBackgroundRestricted() phương thức cho mọi lệnh gọi API từ một ứng dụng.
[C-1-7] KHÔNG PHẢI hạn chế ứng dụng trên nền trước được sử dụng rõ ràng bởi người dùng.
[C-1-8]{4}Hãy tạm ngưng những hạn chế độc quyền này trên ứng dụng bất cứ khi nào người dùng bắt đầu sử dụng ứng dụng một cách rõ ràng, khiến ứng dụng đó trở thành ứng dụng trên nền trước.
[C-1-9] PHẢI báo cáo tất cả các sự kiện hạn chế độc quyền này thông qua UsageStats.
[C-1-10] PHẢI cung cấp tài liệu hoặc trang web công khai và rõ ràng mô tả cách áp dụng các hạn chế về quyền sở hữu. Tài liệu hoặc trang web này PHẢI có thể liên kết từ các tài liệu SDK Android và PHẢI bao gồm:
- Điều kiện kích hoạt cho các quy định hạn chế về quyền sở hữu riêng.
- Nội dung và cách thức hạn chế ứng dụng.
- Cách để ứng dụng có thể được miễn các hạn chế đó.
- Cách một ứng dụng có thể yêu cầu miễn các hạn chế về quyền sở hữu riêng, nếu những ứng dụng đó hỗ trợ trường hợp miễn trừ như vậy cho ứng dụng mà người dùng có thể cài đặt.
Nếu một ứng dụng được cài đặt sẵn trên thiết bị và người dùng chưa từng sử dụng ứng dụng đó một cách rõ ràng trong hơn 30 ngày, thì [C-1-3] [C-1-5] sẽ được miễn trừ.
Kết thúc các yêu cầu mới
Trình chạy 3.8.1 (Màn hình chính): Bản cập nhật để hỗ trợ
monochrome/adaptive-icon
.Xem bản sửa đổi
Nếu các quá trình triển khai thiết bị hỗ trợ biểu tượng đơn sắc, thì các biểu tượng sau:
- [C-6-1] PHẢI be used only when a user except enable they (e.g. via Settings orWallpaper xoá menu).
Kết thúc các yêu cầu mới
3.8.2 Tiện ích: Cập nhật sự hiện diện của tiện ích ứng dụng bên thứ ba trong Trình chạy.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị có hỗ trợ tiện ích ứng dụng bên thứ ba, thì các thiết bị đó sẽ:
- [C-1-2] PHẢI include shared-in support for AppWidgets and visible
user Interface musts to add, configuration, view, and remove AppWidgets
Trực tiếp bên trong Trình chạy.
- [C-1-2] PHẢI include shared-in support for AppWidgets and visible
user Interface musts to add, configuration, view, and remove AppWidgets
3.8.3.1 Bản trình bày thông báo: Làm rõ định nghĩa về thông báo quan trọng.
Xem bản sửa đổi
Thông báo quan trọng là các thông báo hiển thị với người dùng khi chúng xuất hiện độc lập với nền tảng mà người dùng đang truy cập.
3.8.3.3 DND (Không làm phiền) / Chế độ ưu tiên: Cập nhật để đưa Chế độ ưu tiên vào các yêu cầu về DND (Không làm phiền).
Xem bản sửa đổi
3.8.3.3. Không làm phiền / Chế độ ưu tiên
Nếu các hoạt động triển khai thiết bị hỗ trợ tính năng DND (còn gọi là Chế độ ưu tiên), thì chúng:
3.8.6 Giao diện: Yêu cầu mới đối với bảng sắc độ màu động.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
[C-1-4]{4} generate dynamic color tonal palettes as specified in the AOSP documentation of
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(xemandroid.theme.customization.system_palette
vàandroid.theme.customization.theme_style
).[C-1-5] generate dynamic color tonal palettes using color theme styles enumerated in the
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
}} (xemandroid.theme.customization.theme_styles
), cụ thể làTONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
."Màu nguồn" dùng để tạo bảng sắc độ màu động khi được gửi bằng
android.theme.customization.system_palette
(như được ghi trongSettings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
).[C-1-6] PHẢI có giá trị sắc độ
CAM16
từ 5 trở lên.Phải chuyển từ hình nền qua
com.android.systemui.monet.ColorScheme#getSeedColors
, cung cấp nhiều màu nguồn hợp lệ để chọn một trong số đó.NÊN sử dụng giá trị
0xFF1B6EF3
, nếu không có màu nào đã cung cấp đáp ứng yêu cầu về màu sắc nguồn ở trên.
Kết thúc các yêu cầu mới
3.8.17 Bảng nhớ tạm: Thêm mục yêu cầu mới cho nội dung trên bảng nhớ tạm.
Xem bản sửa đổi
3.8.17. Bảng nhớ tạm
Triển khai thiết bị:
- [C-0-1] NOT send Lưu dữ liệu bảng nhớ tạm đến bất kỳ thành phần, hoạt động, dịch vụ, hay trên bất kỳ kết nối mạng nào, mà không có hành động rõ ràng của người dùng (e.g., press a button on theoverlay), except for services mention in 9.8.6 Content Capture and App Search.
Nếu các hoạt động triển khai thiết bị tạo ra một bản xem trước hiển thị cho người dùng khi nội dung được sao chép vào bảng nhớ tạm cho bất kỳ mục
ClipData
nào màClipData.getDescription().getExtras()
chứaandroid.content.extra.IS_SENSITIVE
, thì chúng:- [C-1-1] PHẢI loại bỏ bản xem trước có thể nhìn thấy người dùng
Phương thức triển khai tham chiếu AOSP đáp ứng các yêu cầu về bảng nhớ tạm này.
Kết thúc các yêu cầu mới
3.9.1.1 Cấp phép chủ sở hữu thiết bị: Nội dung cập nhật đối với các yêu cầu cấp phép của chủ sở hữu thiết bị.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị khai báo
android.software.device_admin
, thì các quá trình triển khai thiết bị đó sẽ:- [C-1-1] PHẢI supportenrollment a Device Policy Client (DPC) as a
DeviceOwner app
as descriptions below:
- Khi quá trình triển khai thiết bị chưa định cấu hình dữ liệu người dùng và
dữ liệu người dùng, quá trình triển khai sẽ:
- [C-1-5] truyền đăng ký ứng dụng DPC như ứng dụng chủ sở hữu thiết bị hoặc bật ứng dụng DPC để chọn xem trở thành chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ, nếu thiết bị khai báo giao tiếp gần trường (NFC) hỗ trợ qua tính năng cờ
android.hardware.nfc
và nhận thông báo NFC chứa bản ghi với loại MIMEMIME_TYPE_PROVISIONING_NFC
. - [C-1-8] PHẢI gửi ý định ACTION_GET_PROVISIONING_MODE sau khi thiết bị cấp phép được kích hoạt để ứng dụng DPC có thể chọn để trở thành Chủ sở hữu thiết bị hoặc Chủ hồ sơ, tuỳ thuộc vào giá trị của
android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES
, trừ khi có thể được xác định từ ngữ cảnh đó có chỉ một tuỳ chọn hợp lệ.(chẳng hạn như đối với việc cấp phép dựa trên NFC khi không hỗ trợ cấp phép Chủ sở hữu hồ sơ). - [C-1-9] PHẢI gửi ý định ACTION_ADMIN_POLICY_COMPLIANCE đến ứng dụng DeviceOwner nếu Chủ sở hữu thiết bị được thiết lập trong quá trình cấp phép, bất kể có sử dụng phương thức cấp phép nào. Người dùng không thể tiếp tục trong Trình hướng dẫn thiết lập cho đến khi ứng dụng của Chủ sở hữu thiết bị hoàn tất.
- [C-1-5] truyền đăng ký ứng dụng DPC như ứng dụng chủ sở hữu thiết bị hoặc bật ứng dụng DPC để chọn xem trở thành chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ, nếu thiết bị khai báo giao tiếp gần trường (NFC) hỗ trợ qua tính năng cờ
- Khi quá trình triển khai thiết bị có dữ liệu người dùng
hoặc
, quá trình này:
- [C-1-7] truyền dẫn không đăng ký bất kỳ ứng dụng DPC nào như ứng dụng chủ sở hữu thiết bị bất kỳ hơn.
- Khi quá trình triển khai thiết bị chưa định cấu hình dữ liệu người dùng và
dữ liệu người dùng, quá trình triển khai sẽ:
- [C-1-2] PHẢI show anNhà cung cấp thông báo thích hợp (chẳng hạn như as được tham chiếu trong AOSP) và lấy sự đồng ý rõ ràng từ người dùng cuối trước một ứng dụng đang được thiết lập như Chủ sở hữu thiết bị, trừ khi thiết bị được lập trình cấu hình cho bán lẻ chế độ xem trước
trước on-screen, end-user
Sự đồng ý có thể thông qua hành động của người dùng hoặc bằng một số phương thức có lập trình nhưng thông báo công bố phù hợp (như được tham chiếu trong AOSP) PHẢI được hiển thị trước khi cấp phép chủ sở hữu thiết bị được bắt đầu. Ngoài ra, cơ chế đồng ý của chủ sở hữu thiết bị có lập trình được sử dụng (do doanh nghiệp) sử dụng để cấp phép chủ sở hữu thiết bị KHÔNG ĐƯỢC ảnh hưởng đến Trải nghiệm Out-Of-Box đối với trường hợp sử dụng không dành cho doanh nghiệp. [C-1-3] NOT Hard code the Consent or prevent the use of other deviceowner apps.
Nếu các hoạt động triển khai thiết bị khai báo
android.software.device_admin
, nhưng cũng bao gồm giải pháp quản lý thiết bịChủ sở hữu thiết bịđộc quyền và cung cấp cơ chế quảng bá một ứng dụng được định cấu hình trong giải pháp của họ là "Chủ sở hữu thiết bị tương đương" với "Chủ sở hữu thiết bị" tiêu chuẩn được công nhận bởi API DevicePolicyManager tiêu chuẩn của Android, chúng:- [C-2-1] PHẢI have a process in place to verify that the specific app được trù thuộc về một invalid enterprise device Management solution and has been configuration in the additional solution to have the rights điệp as a "DeviceOwner".
- [C-2-2] PHẢI show the same AOSP DeviceOwner ConsentÍCH as the
flow starting by
android.app.action.PROVISION_MANAGED_DEVICE
trước to Accept the DPC application as "Device Owners" (Chủ sở hữu thiết bị). - [C-2-3] NOT Hard code the Consent or prevent the use of other device owner apps.
CÓ THỂ có dữ liệu người dùng trên thiết bị trước khi đăng ký ứng dụng DPC làm "Chủ sở hữu thiết bị".
- [C-1-1] PHẢI supportenrollment a Device Policy Client (DPC) as a
DeviceOwner app
as descriptions below:
3.9.4 Yêu cầu về vai trò quản lý thiết bị: Thêm một phần cho Các yêu cầu về vai trò quản lý thiết bị.
Xem bản sửa đổi
3.9.4 Yêu cầu về vai trò quản lý chính sách thiết bị
Nếu hoạt động triển khai thiết bị báo cáo
android.software.device_admin
hoặcandroid.software.managed_users
, thì chúng:- [C-1-1] PHẢI support the device policy Management role as specified in
section 9.1. Bạn có thể xác định ứng dụng giữ vai trò quản lý chính sách thiết bị bằng cách đặt
config_devicePolicyManagement
thành tên gói. Tên gói PHẢI đứng trước:
và chứng chỉ ký trừ phi tải trước ứng dụng.
Nếu tên gói không được xác định cho
config_devicePolicyManagement
như mô tả ở trên:- [C-2-1] DeviceCách triển khai thiết bị PHẢI hỗ trợ cấp phép mà không cần thiết bị policy quản lý vai trò chủ ứng dụng (AOSP cung cấp một tham chiếu triển khai).
Nếu tên gói được xác định cho
config_devicePolicyManagement
như mô tả ở trên:- [C-3-1] The application PHẢI be installed on all profiles for a user.
- [C-3-2] Device devices May Definition an application that updates the device policy manage role Manager before rủi ro (Cấp phép bằng cách thiết lập
config_devicePolicyManagementUpdater
).
Nếu tên gói được xác định cho
config_devicePolicyManagementUpdater
như mô tả ở trên:- [C-4-1] Ứng dụng PHẢI được cài đặt trước trên thiết bị.
- [C-4-2] The application PHẢI triển khai một bộ lọc ý định giúp phân giải
android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER
.
Kết thúc các yêu cầu mới
- [C-1-1] PHẢI support the device policy Management role as specified in
section 9.1. Bạn có thể xác định ứng dụng giữ vai trò quản lý chính sách thiết bị bằng cách đặt
3.18 Danh bạ: Thêm thông tin cho người liên hệ mới.
Xem bản sửa đổi
Tài khoản mặc định cho người liên hệ mới: Trình cung cấp danh bạ cung cấp các API để quản lý chế độ cài đặt của tài khoản mặc định khi tạo một người liên hệ mới.
Nếu quá trình triển khai thiết bị tải trước một ứng dụng danh bạ, thì ứng dụng danh bạ được tải sẵn:
[C-2-1] PHẢI xử lý ý định
ContactsContract.Settings.ACTION_SET_DEFAULT_ACCOUNT
để khởi chạy giao diện người dùng cho lựa chọn tài khoản và lưu cài đặt vào Trình cung cấp danh bạ khi một tài khoản được chọn.[C-2-2]{4} Hãy vinh danh chế độ cài đặt tài khoản mặc định khi xử lý
Intent.ACTION_INSERT and Intent.ACTION_INSERT_OR_EDIT
for theContactsContracts.Contacts.CONTENT_TYPE
vàContactsContract.RawContacts.CONTENT_TYPE
bằng cách chọn tài khoản ban đầu.
Kết thúc các yêu cầu mới
4. Khả năng tương thích đóng gói ứng dụng
4. Khả năng tương thích đóng gói ứng dụng: Nội dung cập nhật cho phiên bản Lược đồ chữ ký APK.
Xem bản sửa đổi
Triển khai thiết bị:
[C-0-2] NOT support verification “.apk” files using the APK Signature Scheme v3.1 , APK Signature Scheme v3, APK Signature Scheme v2 and JAR signing.
[C-0-9] PHẢI support verification .apk files using the APK Signature Scheme v4 and APK Signature Scheme v4.1 .
5. Khả năng tương thích với nội dung đa phương tiện
5.1.2 Giải mã âm thanh: Bổ sung các yêu cầu mới đối với bộ giải mã có khả năng xuất âm thanh đa kênh.
Xem bản sửa đổi
Nếu thiết bị triển khai hỗ trợ giải mã bộ đệm đầu vào AAC của luồng đa kênh (i.e. more than Two channels) to PCM thông qua bộ giải mã âm thanh AAC mặc định trong API
android.media.MediaCodec
, thì sau đây PHẢI được hỗ trợ:- [C-7-1] NOT beable to be configuration by the application using theDanh sách giải mã with the key
KEY_MAX_OUTPUT_CHANNEL_COUNT
to control could the content is downmixed to stereo (when using a value of 2) or is output using the native number of channels (when using a value equals or largeer to that number). Ví dụ: giá trị từ 6 trở lên sẽ định cấu hình bộ giải mã để đầu ra 6 kênh khi được cấp nội dung 5.1. - [C-7-2] Whentooltip, the cuốiBộ giải mã phải quảng cáo mặt nạ kênh đang được sử dụng trên định dạng đầu ra với khoá
KEY_CHANNEL_MASK
, sử dụng các hằng sốandroid.media.AudioFormat
(ví dụ:CHANNEL_OUT_5POINT1
).
Nếu các phương thức triển khai thiết bị hỗ trợ bộ giải mã âm thanh không phải là bộ giải mã âm thanh AAC mặc định và có thể xuất âm thanh đa kênh (tức là nhiều hơn 2 kênh) khi được cung cấp nội dung đa kênh được nén, thì:
- [C-SR] The cuối cùngdecoder is=\" PENDING to be could to be configuration by the
application using the formats with the key
KEY_MAX_OUTPUT_CHANNEL_COUNT
to control that the content is downmixed to stereo (when using a value of 2) or is output using the native number of channels (when using a value equals or </br>> of that number). Ví dụ: giá trị từ 6 trở lên sẽ định cấu hình bộ giải mã để đầu ra 6 kênh khi được cấp nội dung 5.1. - [C-SR] Khi giải mã, bộ giải mã là lá chắn chần chừ để quảng cáo mặt nạ kênh đang được sử dụng trên định dạng đầu ra với khoá
KEY_CHANNEL_MASK
, sử dụng android.media.AudioFormat Identifier (ví dụ:CHANNEL_OUT_5POINT1
).
Kết thúc các yêu cầu mới
- [C-7-1] NOT beable to be configuration by the application using theDanh sách giải mã with the key
5.4.1 Thu thập âm thanh thô và thông tin micrô: Cập nhật các nguồn âm thanh được hỗ trợ cho luồng đầu vào âm thanh.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị khai báo
android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:[C-1-1]{4} allow Capture of Raw audio content with the following characteristics for any
AudioRecord
hoặcAAudio
INPUT luồng được mở thành công. Ở mức tối thiểu, các đặc điểm sau PHẢI được hỗ trợ:- Định dạng: PCM tuyến tính, 16 bit
- Tốc độ lấy mẫu: 8000, 11025, 16000, 44100, 48000 Hz
- Kênh: Đơn âm
- Nguồn âm thanh:
DEFAULT
,MIC
,CAMCORDER
,VOICE_RECOGNITION
,VOICE_COMMUNICATION
,UNPROCESSED
hoặcVOICE_PERFORMANCE
. Điều này cũng áp dụng cho các Giá trị đặt trước đầu vào tương đương trongAAudio
, ví dụ:AAUDIO_INPUT_PRESET_CAMCORDER
. - [C-1-4] Hãy vinh danh
MicrophoneInfo
API andfill in information for the available micrôs on device accessibility to the third-party applications viaAudioManager.getMicrophones()
API, for active AudioRecord usingMediaRecorder.AudioSources DEFAULT
,MIC
,CAMCORDER
,VOICE_RECOGNITION
,VOICE_COMMUNICATION
,UNPROCESSED
, orVOICE_PERFORMANCE
.và các micrô đang hoạt động có thể truy cập vào các ứng dụng bên thứ ba thông qua các APIAudioRecord.getActiveMicrophones()
vàMediaRecorder.getActiveMicrophones()
.
5.4.2 Thu thập để nhận dạng giọng nói: Cập nhật các yêu cầu đối với luồng âm thanh nhận dạng giọng nói và thêm các yêu cầu về mức tăng âm lượng của micrô.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị khai báo
android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:- Cần ghi lại âm thanh nhận dạng giọng nói luồng với khoảng phẳng amplitudeMẹo tần số đặc tính: cụ thể, ±3 dB, from 100 Hz to 4000 Hz.
- Cần ghi lại âm thanh nhận dạng luồng âm thanh với độ nhạy cảm đầu vào như vậy rằng a 90 dB Sound power level (SPL) source at 1000 Hz mangs RMS of 2500 for 16-bitsamples.
- nên exhibit coroutine flat amplitude-versus-frequency characters in the mid-frequency Range: Di chuyển đặc biệt ±3dB from 100 Hz to 4000 Hz for Quảng cáo từng và mỗi micrô được sử dụng để ghi âm thanh nhận dạng giọng nói nguồn.
- [C-SR] areRENDERED REVIEW to exhibit amplitude levels in the low frequencyrange: specific from ±20 dB from 30 Hz to 100 Hz so to the mid-frequency Range for mỗi và mỗi micrô được dùng để ghi lại voice Recognition audio source.
- [C-SR] arePhải REVIEW to exhibit amplitude levels in the cao frequency Range: specific from ±30 dB from 4000 Hz to 22 KHz so to the mid-frequencyrange for mỗi and mọi micrô used to record the voice recognition audio source.
- 3
Kết thúc các yêu cầu mới
5.4.6 Mức tăng âm lượng của micrô: Chuyển các yêu cầu đối với Mức tăng âm lượng của micrô sang mục 5.4.2.
Xem bản sửa đổi
5.4.6. Mức tăng âm lượng của micrô [Đã chuyển sang mức 5.4.2]
Nếu các hoạt động triển khai thiết bị khai báo
android.hardware.microphone
, thì các quá trình triển khai thiết bị đó sẽ:- NÊN exhibit nearby flat amplitude-versus-frequency characteristics in the mid-frequency Range: Ngang, ±3dB from 100 Hz to 4000 Hz for Thông báo mỗi âm thanh
- [C-SR] are Liên minh DƯỢNG DẠI to exhibit amplitude levels in the low frequencyKháng: cụ thể từ ±20 dB from 5 Hz to 100 Hz so to the mid-frequency Range for mỗi và mỗi micrô used to record the voiceRecognition audio source.
- [C-SR] are Still dải |
- 3
5.5.4 Giảm tải âm thanh: Thông tin cập nhật về các yêu cầu giảm tải âm thanh.
Xem bản sửa đổi
Nếu các phương pháp triển khai cho thiết bị hỗ trợ tính năng phát giảm tải âm thanh, thì các phương thức đó:
- [C-SR] AreĐể nhà đợt phát triển đề xuất nội dung âm thanh không có âm thanh giữa hai đoạn video với cùng định dạng khi được chỉ định bởi AudioTrack gapless API và vùng chứa đa phương tiện cho MediaPlayer.
5.6 Độ trễ âm thanh: Thông tin cập nhật đối với các yêu cầu về độ trễ âm thanh.
Xem bản sửa đổi
Trong phần này, hãy sử dụng các định nghĩa sau:
- biến động đầu ra nguội. Sự thay đổi giữa các phép đo riêng biệt về giá trị độ trễ đầu ra nguội.
- biến động đầu vào nguội. Sự thay đổi giữa các phép đo riêng biệt về giá trị độ trễ đầu vào nguội.
Nếu các hoạt động triển khai thiết bị khai báo
android.hardware.audio.output
, thì các hoạt động đó PHẢI đáp ứng hoặc vượt quá các yêu cầu sau:- [C-1-2] Độ trễ đầu ra nguội từ 500 mili giây trở xuống.
- [C-1-3] Closed an output stream bằng cách sử dụng
AAudioStreamBuilder_openStream()
PHẢI take ít hơn 1000 milliseconds.
Nếu các hoạt động triển khai thiết bị khai báo
android.hardware.audio.output
, thì các thành phần này ĐƯỢC ĐỀ XUẤT RÕ RÀNG để đáp ứng hoặc vượt quá các yêu cầu sau:- [C-SR] Độ trễ đầu ra nguội từ 100 mili giây trở xuống trên đường dẫn dữ liệu loa.
Các thiết bị mới và hiện có chạy phiên bản Android này ĐƯỢC NÊN DÙNG RẤT NHIỀU để đáp ứng những yêu cầu này ngay bây giờ. Trong bản phát hành nền tảng sau này, chúng tôi sẽ yêu cầu độ trễ đầu ra Lạnh từ 200 mili giây trở xuống. [C-SR] Giảm thiểu biến động đầu ra nguội.
Nếu các hoạt động triển khai thiết bị bao gồm
android.hardware.microphone
, thì các phương thức đó PHẢI đáp ứng các yêu cầu về âm thanh đầu vào sau đây:- [C-3-2] Độ trễ đầu vào nguội từ 500 mili giây trở xuống.
- [C-3-3] Expand an input stream using
AAudioStreamBuilder_openStream()
PHẢI take under 1000 milliseconds.
Nếu các hoạt động triển khai thiết bị bao gồm
android.hardware.microphone
, thì bạn ĐƯỢC NÊN DÙNG để đáp ứng các yêu cầu sau đây về âm thanh đầu vào:- [C-SR] Độ trễ đầu vào nguội là 100 mili giây trở xuống trên đường dẫn dữ liệu micrô.
Các thiết bị hiện có và thiết bị mới chạy phiên bản này của Android là VERYĐể các thiết bị được đề xuất ngay bây giờ, các thiết bị hiện có và thiết bị mới chạy. Trong một bản phát hành nền tảng trong tương lai, chúng tôi sẽ yêu cầu độ trễ đầu vào lạnh của 200 ms trở xuống dưới dạng một PHẢI.
- [C-SR] Độ trễ đầu vào liên tục từ 30 mili giây trở xuống.
- [C-SR] Giảm thiểu biến động đầu vào nguội.
5.10 Âm thanh chuyên nghiệp: Cập nhật các yêu cầu về độ trễ âm thanh để hỗ trợ âm thanh chuyên nghiệp.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị hỗ trợ tính năng
android.hardware.audio.pro
thông qua lớp android.content.pm.PackageManager, thì chúng:- [C-1-2] PHẢI have the đám súc tích liên tục vòng-
- [C-1-5] NOT meet latencies and USB audio requests using the
AAudio native audio API and
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
. - [C-1-8] PHẢI have an possible Tap-to-tone latency of 80 milliseconds or below over at least 5measurement over the loa to microphone data path.
- [C-SR] AreĐể nhà được phát triển đề nghị cung cấp một mức độ nhất quán của CPU hiệu suất trong khi âm thanh là hoạt động và tải CPU thay đổi. Bạn nên kiểm thử điều này bằng ứng dụng Android SynthMark. SynthMark sử dụng một trình tổng hợp phần mềm chạy trên khung âm thanh mô phỏng để đo lường hiệu suất của hệ thống. Hãy xem tài liệu về SynthMark để nắm được nội dung giải thích về các điểm chuẩn. Ứng dụng SynthMark cần được chạy bằng tuỳ chọn “Automatic Test” (Kiểm thử tự động) và đạt được các kết quả như sau: * voicemark.90 >= 32 giọng nói * latencymark.fixed.little <= 15 msec * latencymark.dynamic.little <= 50 msec
nên có độ trễ từ đầu vào cảm ứng đến đầu ra âm thanh nhỏ hơn hoặc bằng 40 mili giây.
Nếu cách triển khai thiết bị bao gồm giắc cắm âm thanh 3,5 mm 4 dây dẫn, thì chúng:
- [C-2-1] PHẢI have a an solid Round-trip Audio Latency, as specified in section 5.6 Audio Latency, of 20 milliseconds or Hạ, over 5measurement with a Mean our Deviation least 5 milliseconds over the audio jack path using an audio loopback dongle.
- [C-1-2] PHẢI have the đám súc tích liên tục vòng-
5.12 Video HDR: Bổ sung một mục mới cho các yêu cầu về Video HDR.
6. Khả năng tương thích với các tuỳ chọn và công cụ cho nhà phát triển
6.1 Công cụ cho nhà phát triển: Nội dung cập nhật đối với các yêu cầu về khả năng kết nối và GPU.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị hỗ trợ các kết nối adb với máy chủ lưu trữ qua Wi-Fi hoặc Ethernet, thì các quy trình đó:
- [C-4-1] PHẢI have the
AdbManager#isAdbWifiSupported()
method returntrue
.
Nếu các quá trình triển khai thiết bị hỗ trợ các kết nối adb với máy chủ lưu trữ qua Wi-Fi hoặc Ethernet và bao gồm ít nhất một máy ảnh, thì các thiết bị đó:
- [C-5-1] PHẢI have the
AdbManager#isAdbWifiQrSupported()
method trả vềtrue
.
Thông tin về hoạt động của GPU
Triển khai thiết bị:
- [C-6-1] PHẢI triển khai lệnh shell
dumpsys gpu --gpuwork
để hiển thị dữ liệu công việc GPU tổng hợp do điểm theo dõi nhânpower/gpu_work_period
trả về hoặc hiển thị không có dữ liệu nếu điểm theo dõi không được hỗ trợ. Hoạt động triển khai AOSP làframeworks/native/services/gpuservice/gpuwork/
.
- [C-6-1] PHẢI triển khai lệnh shell
Kết thúc các yêu cầu mới
- [C-4-1] PHẢI have the
7. Khả năng tương thích phần cứng
7.1.4.1 OpenGL ES: Nội dung cập nhật cho các tiện ích được đề xuất.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị hỗ trợ bất kỳ phiên bản OpenGL ES nào, thì các thiết bị đó:
- NÊN hỗ trợ các tiện ích
EGL_IMG_context_priority
vàEGL_EXT_protected_content
.
Kết thúc các yêu cầu mới
- NÊN hỗ trợ các tiện ích
7.1.4.2 Vulkan: Các bản cập nhật cho phiên bản được hỗ trợ cho Vulkan.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị hỗ trợ OpenGL ES 3.1, thì các hoạt động triển khai trên thiết bị:
- [SR] Are Internet ĐỀ XUẤT NÊN include support for
Vulkan 1.3.
Vulkan 1.1 - KHÔNG ĐƯỢC hỗ trợ phiên bản Biến thể Vulkan (tức là phần biến thể của phiên bản lõi Vulkan PHẢI bằng 0).
Nếu quá trình triển khai thiết bị bao gồm một màn hình hoặc đầu ra video, thì chúng:
- [SR] Are Internet ĐỀ XUẤT NÊN include support for
Vulkan 1.3.
Vulkan 1.1
Nếu quá trình triển khai thiết bị có hỗ trợ Vulkan 1.0 trở lên, thì các quá trình triển khai đó:
- NÊN hỗ trợ
VkPhysicalDeviceProtectedMemoryFeatures
vàVK_EXT_global_priority
. - [C-1-12] NOT enumerate support for the
VK_KHR_performance_query
extensions. - [C-SR] Are Internet Sử dụng để đáp ứng các yêu cầu được chỉ định bởi Android Baseline 2021 profile.
- [SR] Are Internet ĐỀ XUẤT NÊN include support for
Vulkan 1.3.
Xem bản sửa đổi
Triển khai thiết bị:
- [C-SR] Are Để dãy nhà phát triển nên cung cấp tất cả các hàm điều hướng như cancellable. "Cancellable" được định nghĩa là khả năng của người dùng ngăn chặn việc thực thi chức năng điều hướng (ví dụ: quay lại màn hình chính, quay lại, v.v.) nếu thao tác vuốt không được thả ra qua một ngưỡng nhất định.
Kết thúc các yêu cầu mới
Nếu chức năng điều hướng quay lại được cung cấp và người dùng huỷ thao tác Quay lại, thì:
- [C-8-1]
OnBackInvokedCallback.onBackCancelled()
PHẢI được gọi. - [C-8-2]
OnBackInvokedCallback.onBackInvoked()
KHÔNG ĐƯỢC gọi. - [C-8-3] Sự kiện KEYCODE_BACK KHÔNG ĐƯỢC gửi đi.
Nếu bạn cung cấp hàm điều hướng quay lại nhưng ứng dụng trên nền trước CHƯA đăng ký
OnBackInvokedCallback
, thì:- The system nên cung cấp ảnh động cho ứng dụng trên nền trước đề xuất rằng người dùng đang quay lại, như đã cung cấp trong AOSP.
Nếu các phương thức triển khai thiết bị hỗ trợ API hệ thống
setNavBarMode
để cho phép mọi ứng dụng hệ thống có quyềnandroid.permission.STATUS_BAR
đặt chế độ thanh điều hướng, thì chúng:- [C-9-1] PHẢI cung cấp hỗ trợ cho các biểu tượng thân thiện với trẻ em hoặc điều hướng dựa trên nút như được cung cấp trong mã AOSP.
Kết thúc các yêu cầu mới
7.3.1 Gia tốc kế: Thông tin cập nhật về các yêu cầu về cảm biến đối với gia tốc kế.
Xem bản sửa đổi
Nếu phương thức triển khai thiết bị bao gồm gia tốc kế,
gia tốc kế 3 trục,thì chúng:[C-1-2] PHẢI triển khai và báo cáoTYPE_ACCELEROMETER
cảm biến.[SR] được NÊN DÙNG để triển khai cảm biến tổng hợpTYPE_SIGNIFICANT_MOTION
.[SR] arePhải Thích hợp lại để triển khai và báo cáoTYPE_ACCELEROMETER_UNCALIBRATED
cảm biến. Các thiết bị Android đượcPhải đề xuất để đáp ứng yêu cầu này để có thể nâng cấp lên bản phát hành nền tảng trong tương lai, khi điều này có thể trở thành REQUIRED.nên triển khaiTYPE_SIGNIFICANT_MOTION
,TYPE_TILT_DETECTOR
,TYPE_STEP_DETECTOR
,TYPE_STEP_COUNTER
tổng hợp cảm biến như được mô tả trong tài liệu SDK Android.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế 3 trục, thì các phương thức triển khai đó:
- [C-2-1] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER
. - [C-SR] Are trì hoãn 1 để triển khai
TYPE_SIGNIFICANT_MOTION
composite sensor. - [C-SR] AreĐể nhà phát triển sử dụng phương thức triển khai và báo cáo
TYPE_ACCELEROMETER_UNCALIBRATED
cảm biến. Các thiết bị Android ĐƯỢC ĐỀ XUẤT ĐỂ đáp ứng yêu cầu này để có thể nâng cấp lên bản phát hành trên nền tảng trong tương lai khi thông tin này có thể trở thành BẮT BUỘC. - nên triển khai
TYPE_SIGNIFICANT_MOTION
,TYPE_TILT_DETECTOR
,TYPE_STEP_DETECTOR
,TYPE_STEP_COUNTER
cảm biến tổng hợp như được mô tả trong tài liệu SDK Android.
Nếu quá trình triển khai thiết bị bao gồm gia tốc kế có ít hơn 3 trục, thì chúng:
- [C-3-1] PHẢI triển khai và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES
. - [C-SR] AreĐể nhà đợt phát triển sử dụng và báo cáo cảm biến
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
.
Kết thúc các yêu cầu mới
Nếu hoạt động triển khai thiết bị bao gồm gia tốc kế 3 trục và bất kỳ cảm biến kết hợp
TYPE_SIGNIFICANT_MOTION
,TYPE_TILT_DETECTOR
,TYPE_STEP_DETECTOR
,TYPE_STEP_COUNTER
nào cũng được triển khai:- [C-4-1] The sum of their powertiêu thụ PHẢI luôn nhỏ hơn 4 mW.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục và cảm biến con quay hồi chuyển 3 trục, thì chúng:
- [C-5-1] PHẢI triển khai cảm biến tổng hợp
TYPE_GRAVITY
vàTYPE_LINEAR_ACCELERATION
.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục, cảm biến con quay hồi chuyển 3 trục và cảm biến từ kế, thì chúng:
- [C-6-1] PHẢI triển khai
TYPE_ROTATION_VECTOR
composite cảm biến.
7.3.4 Con quay hồi chuyển: Nội dung cập nhật đối với các yêu cầu về cảm biến đối với con quay hồi chuyển.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị bao gồm con quay hồi chuyển, thì chúng:
- [C-1-1] PHẢI có thể báo cáo các sự kiện lên đến tần số tối thiểu là 50 Hz.
- [C-1-4] PHẢI có độ phân giải 12 bit trở lên.
- [C-1-5] PHẢI được bù nhiệt độ.
- [C-1-6] NOT be One Alignd and truyền while in use, and the com đềnation parameters giữa device restarts.
- [C-1-7]{4} have a variations no large than 1e-7 Rad^2 / s^2 per Hz (variance per Hz, or Rad^2 / s). Phương sai được phép thay đổi theo tốc độ lấy mẫu, nhưng PHẢI bị hạn chế bởi giá trị này. Nói cách khác, nếu bạn đo lường phương sai của con quay hồi chuyển ở tốc độ lấy mẫu 1 Hz, thì cần phải không lớn hơn 1e-7 rad^2/s^2.
- [C-SR] Calibration error is chuột Cây đề cử
- [C-SR] AreĐể chỉ định độ phân giải là 16 bit trở lên.
- NÊN báo cáo các sự kiện tối thiểu là 200 Hz.
Kết thúc các yêu cầu mới
Nếu quá trình triển khai thiết bị bao gồm con quay hồi chuyển 3 trục, thì chúng:
- [C-2-1] PHẢI triển khai
cảm biến
TYPE_GYROSCOPE
.
Nếu quá trình triển khai thiết bị bao gồm một con quay hồi chuyển có ít hơn 3 trục, thì chúng:
- [C-3-1] PHẢI triển khai và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES
. - [C-SR] AreĐể nhà đợt phát triển sử dụng và báo cáo cảm biến
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
.
Kết thúc các yêu cầu mới
Nếu các phương thức triển khai thiết bị bao gồm con quay hồi chuyển 3 trục, cảm biến gia tốc kế và cảm biến từ kế, thì chúng:
- [C-4-1] PHẢI triển khai cảm biến tổng hợp
TYPE_ROTATION_VECTOR
.
Nếu các phương thức triển khai thiết bị bao gồm gia tốc kế 3 trục và cảm biến con quay hồi chuyển 3 trục, thì chúng:
- [C-5-1] PHẢI triển khai cảm biến tổng hợp
TYPE_GRAVITY
vàTYPE_LINEAR_ACCELERATION
.
7.3.10 Cảm biến sinh trắc học: Thông tin cập nhật về các yêu cầu về cảm biến đối với cảm biến sinh trắc học.
Xem bản sửa đổi
Cảm biến sinh trắc học có thể được phân loại thành Loại 3 (trước đây là Mạnh), Loại 2 (trước đây là Yếu) hoặc Loại 1 (trước đây là Thuận tiện) dựa trên tỷ lệ chấp nhận giả mạo và mạo danh cũng như tính bảo mật của đường ống sinh trắc học. Cách phân loại này xác định các khả năng mà cảm biến sinh trắc học có để tương tác với nền tảng và với các ứng dụng bên thứ ba. Các cảm biến cần đáp ứng các yêu cầu bổ sung như nêu chi tiết dưới đây nếu muốn được phân loại là Lớp 1, Lớp 2 hoặc Lớp 3.
Theo mặc định, các cảm biến được phân loại là Loại 1. Bạn cần phải đáp ứng các yêu cầu bổ sung như nêu chi tiết bên dưới nếu muốn phân loại là Loại 2 hoặc Loại 3. Cả sinh trắc học Lớp 2 và Lớp 3 đều có các tính năng bổ sung như trình bày chi tiết dưới đây.Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 1 (trước đây là Tiện lợi), thì các phương thức triển khai đó:
- [C-1-11]{4} have a spoof and imposterAccept rate not higher than 30%, with (1) a spoof and imposterAccept rate for Level AThẻ thuyết trình attack tool (PAI)parameter not higher than 30%, and (2) a spoof and imposter verification rate of Level B PAI experiment rate not higher than 40% percent Tests.
Kết thúc các yêu cầu mới
Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 2 (trước đây là Yếu), thì các phương thức triển khai đó sẽ:
- [C-2-2] PHẢI have a spoof and imposter Mua rate not higher than 20%, with (1) a spoof and imposter applied rate for Level A showTation tool (PAI) variations not higher than 20%, and (2) a spoof and imposter adTỷ lệ of Level B PAIs not Mũi tên sinh trắc học
Nếu các phương thức triển khai thiết bị muốn coi cảm biến sinh trắc học là Lớp 3 (trước đây là Mạnh), thì các phương thức triển khai đó sẽ:
- [C-3-3] have a spoof and imposter Accept rate not higher than 7%, with (1) a spoof and impost Accept rate for level ATrình tấn công cụ (PAI) huỷ cao hơn 7%, and (2) a spoof and imposter Accept rate of Level B PAI eligible not higher than 20%, as
7.3.13 IEEE 802.1.15.4 (UWB): Thêm một mục yêu cầu mới cho UWB.
Xem bản sửa đổi
7.3.13. IEEE 802.1.15.4 (UWB)
Nếu các hoạt động triển khai thiết bị bao gồm dịch vụ hỗ trợ 802.1.15.4 và hiển thị chức năng này cho một ứng dụng bên thứ ba, thì chúng:
- [C-1-1] PHẢI triển khai API Android tương ứng trong android.uwb.
- [C-1-2] PHẢI báo cáo cờ tính năng phần cứng android.hardware.uwb.
- [C-1-3] PHẢI support tất cả các hồ sơ UWB có liên quan được xác định trong cách triển khai Android.
- [C-1-4] PHẢI cung cấp khả năng tương tác của người dùng để cho phép người dùng bật/tắt trạng thái bật/tắt vô tuyến UWB.
- [C-1-5] PHẢI thực thi rằng các ứng dụng đó bằng cách sử dụng UWB radio keep UWB_RANGING permission (trong chó người ngật ngư nhóm quyền).
- [C-1-6] AreĐể các thử nghiệm theo chuẩn và chứng nhận được xác định, bao gồm FIRA, CCC và CSA.
Kết thúc các yêu cầu mới
7.4.1 Điện thoại: Nội dung cập nhật đối với các yêu cầu về điện thoại đối với điện thoại GSM và CDMA, cũng như chế độ cài đặt mức sử dụng di động.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị hỗ trợ eUICC hoặc eSIM/SIM được nhúng, đồng thời có một cơ chế độc quyền để cung cấp chức năng eSIM cho nhà phát triển bên thứ ba, thì họ:
- [C-3-1] PHẢI kê khai cờ tính năng
android.hardware.telephony.euicc
.provider a complete conversion of theEuiccManager API
.
Nếu quá trình triển khai thiết bị bao gồm điện thoại GSM hoặc CDMA, thì:
- [C-6-1]
SmsManager#sendTextMessage
vàSmsManager#sendMultipartTextMessage
PHẢI dẫn đến các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin văn bản.SmsManager#sendMultimediaMessage
vàSmsManager#downloadMultimediaMessage
PHẢI đưa ra các lệnh gọi tương ứng đếnCarrierMessagingService
để cung cấp chức năng nhắn tin đa phương tiện. - [C-6-2] Ứng dụng do
android.provider.Telephony.Sms#getDefaultSmsPackage
PHẢI sử dụng các API SmsManager khi gửi và nhận tin nhắn SMS và MMS. Việc triển khai tham chiếu AOSP (Dự án nguồn mở Android) trong các gói/ứng dụng/Nhắn tin đáp ứng yêu cầu này. - [C-6-3] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI hỗ trợ việc nhập các mã trình quay số tuỳ ý có định dạng là*#*#CODE#*#*
và kích hoạt thông báo truyền tinTelephonyManager#ACTION_SECRET_CODE
tương ứng. - [C-6-4] Ứng dụng phản hồi
Intent#ACTION_DIAL
PHẢI sử dụngVoicemailContract.Voicemails#TRANSCRIPTION
để hiển thị bản chép lời thư thoại kèm theo hình ảnh cho người dùng nếu ứng dụng đó hỗ trợ bản chép lời thư thoại kèm theo hình ảnh. - [C-6-5]{4} Mức độ danh sách cho tất cả SubscriptionInfo with tương đương
group UUIDs
as a single subscription in all user-visible}s that display and control SIM card information. Ví dụ về các thành phần như vậy bao gồm giao diện cài đặt phù hợp với
Settings#ACTION_MANAGE_ALL_SIM_PROFILES_SETTINGS
hoặcEuiccManager#ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS
. - [C-6-6] NOT display or allow control of any SubscriptionInfo with a non-null group UUID and opportunistic bit in any user-visible tiềms that allow configuration or control of SIM card settings.
Nếu quá trình triển khai thiết bị bao gồm điện thoại GSM hoặc CDMA và cung cấp thanh trạng thái hệ thống, thì:
- [C-6-7] PHẢI chọn a đại diện Active subscription for a given group UUID to display to the user in bất kỳ thành phần nào cung cấp thông tin trạng thái SIM. Ví dụ về các thành phần như vậy bao gồm biểu tượng tín hiệu di động trên thanh trạng thái hoặc thẻ thông tin cài đặt nhanh.
- [C-SR] Is
Nếu quá trình triển khai thiết bị bao gồm điện thoại GSM hoặc CDMA, thì:
- [C-6-8] NOT be compatibility ofThư mở và đồng thời sử dụng số lượng tối đa của các kênh logic (20 in total) for mỗi UICC per ETSI TS 102 221.
- [C-6-10] KHÔNG áp dụng bất kỳ hành vi nào sau đây cho các ứng dụng mạng đang hoạt động
(as chỉ định bởi
TelephonyManager#getCarrierServicePackageName
) tự động hoặc không có xác nhận người dùng rõ ràng:- Thu hồi hoặc giới hạn quyền truy cập mạng
- Thu hồi quyền
- Hạn chế thực thi ứng dụng ở nền trước hoặc ở nền sau ngoài các tính năng quản lý nguồn hiện có trong AOSP (Dự án nguồn mở Android)
- Tắt hoặc gỡ cài đặt ứng dụng
Nếu hoạt động triển khai thiết bị bao gồm điện thoại GSM hoặc CDMA và tất cả các gói thuê bao đang hoạt động, gói thuê bao không có cơ hội có chung UUID nhóm bị vô hiệu hoá, bị loại bỏ về mặt vật lý khỏi thiết bị hoặc được đánh dấu là cơ hội, thì thiết bị:
- [C-7-1] PHẢI tự động vô hiệu hoá tất cả các gói thuê bao còn lại đang hoạt động opportunistic trong cùng một nhóm.
Nếu các quá trình triển khai thiết bị bao gồm điện thoại GSM nhưng không bao gồm điện thoại CDMA, thì các quá trình triển khai đó:
- [C-8-1] KHÔNG ĐƯỢC khai báo
PackageManager#FEATURE_TELEPHONY_CDMA
. - [C-8-2] NOT throw an
IllegalArgumentException
possible to set any 3GPP2 network types in Preferred or allowed network type bitmasks. - [C-8-3] PHẢI trả về một chuỗi rỗng từ
TelephonyManager#getMeid
.
Nếu các phương thức triển khai thiết bị hỗ trợ eUICC bằng nhiều cổng và cấu hình, thì các thiết bị đó:
- [C-11-1] PHẢI khai báo cờ tính năng
android.hardware.telephony.euicc.mep
.
Kết thúc các yêu cầu mới
- [C-3-1] PHẢI kê khai cờ tính năng
7.4.1.1 Khả năng tương thích với tính năng chặn số: Cập nhật các yêu cầu về tính năng chặn số.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị báo cáo
android.hardware.telephony feature
, chúng sẽ:- [C-1-4] PHẢI NOT write to the platform call log provider for a blocked call.
- [C-1-4] NOT write to the platform call log provider
for a blocked call and PHẢI filter calls with
BLOCKED_TYPE
out of the default call log view in the pre-installed Dialer app. - nên cung cấp khả năng tương tác của người dùng để hiển thị các cuộc gọi bị chặn trong ứng dụng gọi điện được cài đặt sẵn.
Kết thúc các yêu cầu mới
7.4.1.3 Cellular NAT-T Keepalive Offload: Phần mới cho Cellular NAT-T Keepalive Offload.
Xem bản sửa đổi
7.4.1.3. Giảm tải dữ liệu di động NAT-T
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ giảm tải duy trì kết nối mạng di động.
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ giảm tải cho tính năng giữ kết nối mạng di động và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các ứng dụng đó:
- [C-1-1] PHẢI hỗ trợ SocketKeepAlive API.
- [C-1-2] PHẢI hỗ trợ ít nhất một khe giữ kết nối đồng thời qua mạng di động.
- [C-1-3] PHẢI support as Quảng cáo đồng thời giữ lại các khe cắm điện thoại di động as are được hỗ trợ bởi the Cellular Radio HAL.
- [C-SR] AreĐể nhà phát triển đề xuất tự động giải quyết vấn đề cho ít nhất 3 thiết bị di động keepalive slots per radioInstance.
Nếu các quá trình triển khai thiết bị không hỗ trợ tính năng giảm tải duy trì kết nối mạng di động, thì các thiết bị đó sẽ:
- [C-2-1] PHẢI trả về ERROR_UNSUPPORTED.
Kết thúc các yêu cầu mới
7.4.2.5 Vị trí Wi-Fi (Thời gian trọn vòng qua Wi-Fi – RTT): Thông tin cập nhật về độ chính xác của vị trí Wi-Fi.
Xem bản sửa đổi
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ Vị trí Wi-Fi và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các phương thức đó:
- [C-1-4]{4} beSử dụng chính xác trong phạm vi 2 mét ở băng thông 80 MHz tại phân vị thứ 68 (như tính toán bằng hàm phân phối tích luỹ).
- [C-SR] Are kinh dải hạng mục phổ biến Để báo cáo chính xác với trong phạm vi 1.5 mét at 80 MHzBandwidth at the 68th percent (ashướng)
Kết thúc các yêu cầu mới
7.4.2.6 Tải tính năng duy trì hoạt động của Wi-Fi: Cập nhật để thêm các yêu cầu về giảm tải duy trì kết nối di động.
Xem bản sửa đổi
Triển khai thiết bị:
- NÊN bao gồm tính năng hỗ trợ giảm tải cho duy trì kết nối Wi-Fi.
Nếu các phương thức triển khai thiết bị bao gồm tính năng hỗ trợ giảm tải Wi-Fi duy trì hoạt động và hiển thị chức năng này cho các ứng dụng bên thứ ba, thì các phương thức đó:
- [C-1-1] PHẢI hỗ trợ API SocketKeepAlive.
- [C-1-2] PHẢI hỗ trợ ít nhất ba khe giữ kết nối đồng thời qua Wi-Fi
và ít nhất một khe duy trì hoạt động qua mạng di động.
Nếu các hoạt động triển khai thiết bị không bao gồm tính năng hỗ trợ giảm tải Wi-Fi duy trì hoạt động, các thiết bị đó sẽ:
- [C-2-1] PHẢI trả về
ERROR_UNSUPPORTED
.
7.4.2.9 Tin cậy khi sử dụng lần đầu (TOFU): Thêm phần yêu cầu về niềm tin đối với lần sử dụng đầu tiên.
Xem bản sửa đổi
7.4.2.9 Tin cậy khi sử dụng lần đầu (TOFU)
Nếu các hoạt động triển khai thiết bị hỗ trợ tính năng Tin cậy lần sử dụng đầu tiên (TOFU) và cho phép người dùng xác định cấu hình WPA/WPA2/WPA3-Enterprise, thì họ:
- [C-4-1] PHẢI cung cấp cho người dùng một tuỳ chọn để chọn sử dụng TOFU.
Kết thúc các yêu cầu mới
7.4.3 Bluetooth: Cập nhật các yêu cầu về Bluetooth.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị hỗ trợ cấu hình Âm thanh Bluetooth, thì các quá trình triển khai thiết bị đó sẽ:
- NÊN support Advanced Audio Codecs and Bluetooth Audio Codecs (e.g. LDAC) with A2DP.
Nếu các hoạt động triển khai thiết bị trả về
true
cho APIBluetoothAdapter.isLeAudioSupported()
, thì chúng:- [C-7-1] PHẢI hỗ trợ máy khách unicast.
- [C-7-2] PHẢI hỗ trợ 2M PHY.
- [C-7-3] PHẢI hỗ trợ Quảng cáo mở rộng LE.
- [C-7-4] PHẢI hỗ trợ ít nhất 2 kết nối CIS trong một CIG.
- [C-7-5]{4} enable BAP unicast client, CSIP set coordinator, MCP server, VCP console, CCP server đồng thời.
- [C-SR] Are được linh hoạt đề xuất để bật ứng dụng khách HAP unicast.
Nếu các hoạt động triển khai thiết bị trả về
true
cho APIBluetoothAdapter.isLeAudioBroadcastSourceSupported()
, thì chúng:- [C-8-1] PHẢI hỗ trợ ít nhất 2 liên kết BIS trong một BIG.
- [C-8-2]{4} enable BAP broadcast source, BAP broadcast assistant đồng thời.
- [C-8-3] PHẢI hỗ trợ Quảng cáo định kỳ LE.
Nếu các hoạt động triển khai thiết bị trả về
true
cho APIBluetoothAdapter.isLeAudioBroadcastAssistantSupported()
, thì chúng:- [C-9-1] PHẢI hỗ trợ PAST (Định kỳ chuyển dữ liệu đồng bộ hoá quảng cáo).
- [C-9-2] PHẢI hỗ trợ Quảng cáo định kỳ LE.
Nếu các hoạt động triển khai thiết bị khai báo
FEATURE_BLUETOOTH_LE
, thì các quá trình triển khai thiết bị đó sẽ:- [C-10-1]{4} have RSSI experiments beTrong +/-9dB for 95% of the Measurements at 1mdistance from a reference device truyền at
ADVERTISE_TX_POWER_HIGH
in line of vòng xoáy môi trường. - [C-10-2] PHẢI include Rx/Tx adjustments toreduce per-channel deviations so that the experiments on từng of the 3 channels, on mỗi of the safetys (if multiple are used), areTrong +/-3dB of one another for 95% of the Measurements.
- [C-SR] AreKhi thử thách và bù đắp cho Rx offset, hãy đảm bảo rằng BLE RSSI is -60dBm +/-10 dB at 1m khoảng cách từ một thiết bị tham chiếu truyền tại
ADVERTISE_TX_POWER_HIGH
, nơi các thiết bị được định hướng như vậy - [C-SR] Are Internet dải hạng mục đề xuất để đo lường và bù cho Tx offset to
đảm bảo trung vị BLE RSSI is -60dBm +/-10 dB when scanning from a reference
device Select at 1mTìm cách và truyền tại
ADVERTISE_TX_POWER_HIGH
, where devices are Orientation that they are on parallel Planes' with screens ắc hướng.
Bạn nên làm theo các bước thiết lập tính năng đo lường được chỉ định trong Các yêu cầu về hiệu chỉnh sự hiện diện.
Nếu quá trình triển khai thiết bị có hỗ trợ Bluetooth phiên bản 5.0, thì chúng:
- [C-SR] Are Để cung cấp các giải pháp hỗ trợ cho:
- 2 TRIỆU CƠ BẢN
- Codec LE PHY
- Phần mở rộng về quảng cáo LE
- Quảng cáo định kỳ
- Ít nhất 10 nhóm quảng cáo
- Có ít nhất 8 kết nối đồng thời LE. Mỗi mối kết nối có thể đóng vai trò trong cấu trúc liên kết kết nối.
- Quyền riêng tư của lớp liên kết năng lượng thấp
- Quy mô "danh sách giải quyết" gồm ít nhất 8 mục nhập
Kết thúc các yêu cầu mới
7.4.9 UWB: Thêm phần yêu cầu cho phần cứng UWB.
Xem bản sửa đổi
7.4.9. UWB (băng tần siêu rộng)
Nếu quá trình triển khai thiết bị báo cáo hỗ trợ cho tính năng
android.hardware.uwb
thông qua lớpandroid.content.pm.PackageManager
, thì chúng:- [C-1-1] PHẢI đảm bảo khoảng cách đo lường đang trong khoảng +/-15 cm for 95% of the numbers in the line of gỡ environment at 1mdistance in a non-reflective chamber.
- [C-1-2] PHẢI đảm bảo rằng trung vị của khoảng cách đo lường tại 1m từ thiết bị tham chiếu là trong phạm vi [0.75m, 1.25m], where where where surface distance ismeasurement from the top Edge of the DUT hold on the side up and turned 45L.
It isreal NÊN theo dõi các bước thiết lập đo lường được chỉ định trong now Calibrationrequirements.
Kết thúc các yêu cầu mới
7.5 Camera: Thông tin cập nhật về các yêu cầu đối với tính năng đầu ra HDR 10-bit.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị có hỗ trợ tính năng đầu ra HDR 10-bit, thì các quá trình triển khai thiết bị đó:
- [C-2-1] PHẢI support at least the HLG HDR profile for all camera device that supported 10-bit output.
- [C-2-2] PHẢI support 10-bit output for during the primary primary-surface or the primary front-quarter camera.
- [C-SR] Are Internet Sử dụng để hỗ trợ 10-bit đầu ra cho cả hai máy ảnh chính.
- [C-2-3] PHẢI support the same HDR profiles for all BACKWARD_COMPATIBLE-ABILITY-CÓ-CÓ THỂ- chiếc camera phụ vật lý của một máy ảnh logic và chính máy ảnh logic.
Đối với các thiết bị máy ảnh logic hỗ trợ HDR 10 bit triển khai API
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
, họ:- [C-3-1] PHẢI hỗ trợ chuyển đổi giữa tất cả các máy ảnh vật lý tương thích ngược qua tính năng điều khiển
CONTROL_ZOOM_RATIO
trên máy ảnh logic.
Kết thúc các yêu cầu mới
7.7.2 USB Host Mode: Bản sửa đổi cho các cổng có vai trò kép.
Xem bản sửa đổi
Nếu quá trình triển khai thiết bị bao gồm một cổng USB hỗ trợ chế độ máy chủ và USB Type-C, thì các quá trình đó:
- [C-4-1] PHẢI triển khai chức năng Dual role Port as Definition by the USB Type-C specifications (section 4.5.1.3.3). For Dual Role Ports, On devices that include a 3.5mm audio jack, the USB Trạng thái phát hiện (chế độ máy chủ) CÓ THỂ tắt theo mặc định nhưng phải có thể cho người dùng bật tính năng này.
7.11 Lớp hiệu suất nội dung nghe nhìn: Cập nhật để bao gồm Android T.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị trả về giá trị khác 0 cho
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, thì chúng:- [C-1-3] PHẢI đáp ứng tất cả các yêu cầu cho "Media Performance Class" được mô tả trong section 2.2.7.
Nói cách khác, lớp hiệu suất nội dung nghe nhìn trong Android T chỉ được xác định cho các thiết bị cầm tay ở phiên bản T, S hoặc R.
Kết thúc các yêu cầu mới
Hãy xem mục 2.2.7 để biết các yêu cầu dành riêng cho thiết bị.
9. Khả năng tương thích của mô hình bảo mật
9.1 Quyền: Mở rộng đường dẫn được chấp nhận cho danh sách cho phép quyền của các ứng dụng được cài đặt trước sang tệp APEX.
Xem bản sửa đổi
- [C-0-2] Các quyền có
protectionLevel
làPROTECTION_FLAG_PRIVILEGED
chỉ được cấp cho các ứng dụng được cài đặt trước trong(các) đường dẫn đặc quyền của hình ảnh hệ thống (cũng như tệp APEX) và thuộc tập hợp con các quyền được cho phép rõ ràng cho từng ứng dụng. Phương thức triển khai AOSP đáp ứng yêu cầu này bằng cách đọc và phân biệt các quyền trong danh sách cho phép cho từng ứng dụng từ các tệp trong đường dẫnetc/permissions/
và sử dụng đường dẫnsystem/priv-app
.
- [C-0-2] Các quyền có
9.7 Tính năng bảo mật: Cập nhật các yêu cầu về việc khởi chạy để duy trì tính toàn vẹn của hạt nhân.
Xem bản sửa đổi
Các tính năng tự bảo vệ và tính toàn vẹn của kernel là phần không thể thiếu trong hoạt động bảo mật của Android. Triển khai thiết bị:
- [C-SR] Are Internet NÊN DÙNG để bật tính năng khởi tạo ngăn xếp trong nhân để ngăn việc sử dụng các biến cục bộ chưa được khởi tạo (
CONFIG_INIT_STACK_ALL
hoặcCONFIG_INIT_STACK_ALL_ZERO
). Ngoài ra, các cách triển khai thiết bị NÊN KHÔNG giả định giá trị mà trình biên dịch sử dụng để khởi tạo các biến cục bộ.
Kết thúc các yêu cầu mới
- [C-SR] Are Internet NÊN DÙNG để bật tính năng khởi tạo ngăn xếp trong nhân để ngăn việc sử dụng các biến cục bộ chưa được khởi tạo (
9.8.7 Quyền riêng tư — Truy cập vào bảng nhớ tạm: Tự động xoá dữ liệu bảng nhớ tạm sau 60 phút kể từ hoạt động cắt/sao chép/dán để bảo vệ quyền riêng tư của người dùng.
Xem bản sửa đổi
Triển khai thiết bị:
- [C-0-1] PHẢI NOT Return a clipped data from the bảng nhớ tạm (e.g. via the
ClipboardManager
API) trừ khi ứng dụng 3rd-party là IME mặc định hoặc là ứng dụng hiện có tiêu điểm. - [C-0-2] PHẢI xoá dữ liệu bảng nhớ tạm tối đa 60 phút sau khi đã được đặt trong bảng nhớ tạm hoặc đọc từ bảng nhớ tạm.
- [C-0-1] PHẢI NOT Return a clipped data from the bảng nhớ tạm (e.g. via the
9.11 Khoá và thông tin xác thực: Nội dung cập nhật cho các yêu cầu đối với màn hình khoá bảo mật, bao gồm cả việc bổ sung ECDH và 3DES vào các thuật toán mã hoá.
Xem bản sửa đổi
Khi quá trình triển khai thiết bị hỗ trợ màn hình khoá bảo mật, quá trình triển khai sẽ:
- [C-1-2] PHẢI havechẳng hạn như RSA, AES, ECDSA, ECDH (if IKeyMintDevice is supported), 3DES, and HMAC CryptographicAlgorithm and MD5, SHA1, and SHA-2 family hash functions toQuáh support the Android Keystore system's supported Các thuật toán in an khu vực đó được tách biệt an toàn từ mã chạy trên nhân và trên. Bảo mật cách ly PHẢI khối tất cả các cơ chế tiềm năng by mà kernel or userspace code could access the internal state of the individual environment, bao gồm DMA. Dự án nguồn mở Android ngược dòng (AOSP) đáp ứng yêu cầu này bằng cách sử dụng phương thức triển khai Trusty, nhưng một giải pháp khác dựa trên ARM TrustZone hoặc một bên thứ ba đã xem xét phương thức triển khai an toàn của cách ly thích hợp dựa trên trình điều khiển ảo hoá là các phương án thay thế.
9.11.1 Màn hình khoá bảo mật, Xác thực và Thiết bị ảo: Thêm phần yêu cầu đối với thiết bị ảo và quá trình chuyển thông tin xác thực.
Xem bản sửa đổi
Nếu các hoạt động triển khai thiết bị sẽ thêm hoặc sửa đổi các phương thức xác thực để mở khoá màn hình khoá, và phương thức xác thực mới dựa trên mã thông báo thực tế hoặc vị trí:
- [C-6-3] The user PHẢI beChallenged for one of the recommended primary primary authentication methods (e.g.PIN, sample, password) at least once túc 4 hours trở xuống. Khi mã thông báo thực đáp ứng các yêu cầu đối với việc triển khai TrustAgent trong C-X, các hạn chế về thời gian chờ được xác định trong C-9-5 sẽ được áp dụng.
Nếu quá trình triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và không hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua
VirtualDeviceManager
, thì chúng:- [C-9-1] PHẢI khoá những màn hình ảo thứ cấp này khi màn hình mặc định của thiết bị bị khoá, và mở khoá màn hình mặc định của thiết bị này khi màn hình mặc định của thiết bị được mở khoá.
Nếu quá trình triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua VirtualDeviceManager, thì chúng:
- [C-10-1] PHẢI hỗ trợ trạng thái khoá riêng biệt cho mỗi thiết bị ảo
- [C-10-2] PHẢI ngắt kết nối tất cả các thiết bị ảo khi hết thời gian chờ ở trạng thái rảnh
- [C-10-3] PHẢI có thời gian chờ ở trạng thái rảnh
- [C-10-4] PHẢI khoá all hiển thị khi người dùng khởi động một lockdown, bao gồm cả via the Lockdown userThêm yêu cầu cho các thiết bị cầm tay (xem Section 2.2.5[9.11/H-1-2])
- [C-10-5] PHẢI có các phiên bản thiết bị ảo riêng biệt cho mỗi người dùng
- [C-10-6]{4} disabled the created of linking input events via
VirtualDeviceManager
when specified byDevicePolicyManager.setNearbyAppStreamingPolicy
- [C-10-7] NOT use a specific clipboardlet for từng thiết bị ảo (hoặc vô hiệu hoá bảng nhớ tạm cho các thiết bị ảo)
- [C-10-11]{4} disabled Authentication UI on virtual devices, bao gồm cả Architect Hãy nhập thông tin về hệ số xác thực và lời nhắc sinh trắc học
- [C-10-12] PHẢI hạn chế ý định khởi tạo từ một thiết bị ảo để chỉ hiển thị trên cùng một thiết bị ảo
- [C-10-13] KHÔNG sử dụng trạng thái khoá thiết bị ảo như người dùng xác thực
uỷ quyền bằng Hệ thống kho khoá Android. Hãy xem
KeyGenParameterSpec.Builder.setUserAuthentication*
.
Khi các phương thức triển khai thiết bị cho phép người dùng chuyển yếu tố kiến thức xác thực chính từ một thiết bị nguồn sang một thiết bị mục tiêu (chẳng hạn như để thiết lập ban đầu của thiết bị mục tiêu), họ:
- [C-11-1]{4} encryption thetri-factor withbảo vệ đảm bảo tương tự như những được mô tả trong the Google Cloud Key Vault Service security whitepaper when chuyển the structured-factor from the source device to the target device that the xoáy-factor could not be from remote resolveed or used to partial device.
- [C-11-2] PHẢI, on the source device , request the user to confirm the -factor of the source device trước khi chuyển hệ số kiến thức đến thiết bị mục tiêu.
- [C-11-3] NOT, on a target device misseding any set primary authentication upoy-factor, request the user to confirm a chaThêm thông tin-yếu tố trên thiết bị mục tiêu trước khi thiết lập rằng kiến thức-yếu tố là chính xác thực kiến thức-yếu tố cho thiết bị mục tiêu và trước khi làm có sẵn bất kỳ dữ liệu được chuyển từ một thiết bị nguồn.
Nếu các hoạt động triển khai thiết bị có màn hình khoá bảo mật và bao gồm một hoặc nhiều tác nhân đáng tin cậy, thì tác nhân này sẽ gọi API hệ thống
TrustAgentService.grantTrust()
bằng cờFLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE
, chúng:- [C-12-1] PHẢI only call
grantTrust()
with theflag when connections to a proximate physical device with a lockscreen of their own, và khi người dùng đã xác thực danh tính của họ chống lại màn hình khoá đó. Các thiết bị proxy có thể sử dụng cơ chế phát hiện trên đồng hồ hoặc trên cơ thể sau khi người dùng mở khoá một lần để đáp ứng yêu cầu xác thực của người dùng. - [C-12-2] PHẢI đưa phương thức triển khai thiết bị vào trạng thái
TrustState.TRUSTABLE
khi màn hình bị tắt (chẳng hạn như qua một nút nhấn hoặc hiển thị hết thời gian) và TrustAgent chưa thu hồi độ tin cậy. AOSP đáp ứng yêu cầu này. - [C-12-3] PHẢI chỉ di chuyển thiết bị từ
TrustState.TRUSTABLE
sang trạng tháiTrustState.TRUSTED
nếu TrustAgent vẫn cấp tin cậy dựa trên các yêu cầu trong C-12-1. - [C-12-4] PHẢI call
TrustManagerService.revokeTrust()
after a đám mây tối đa 24 giờ từ lòng tin cậy, cửa sổ nhàn rỗi 8 giờ, hoặc khi kết nối cơ bản đến thiết bị vật lý proxy bị mất.
Nếu việc triển khai thiết bị cho phép ứng dụng tạo màn hình ảo phụ và hỗ trợ các sự kiện đầu vào được liên kết, chẳng hạn như qua VirtualDeviceManager và các màn hình không được đánh dấu bằng VIRTUAL_DISPLAY_FLAG_SECURE, thì chúng sẽ:
- [C-13-8] NOT block Hoạt động với thuộc tính android:canDisplayOnRemoteDevices hoặc siêu dữ liệu android.activity.can_display_on_remote_devices được đặt thành false từ khi bắt đầu trên thiết bị ảo.
- [C-13-9] NOT block activity không cho phép truyền trực tuyến rõ ràng và cho biết rằng chúng hiển thị nội dung nhạy cảm, bao gồm cả via SurfaceView#setSecure, FLAG_SECURE hoặc SYSTEM_FLAG_Hilt_NON_SYSTEM_OVERLAY_WINDOWS không bắt đầu hoạt động trên thiết bị ảo.
- [C-13-10] PHẢI tắt chế độ cài đặt ứng dụng được khởi tạo từ thiết bị ảo.
Kết thúc các yêu cầu mới
9.11.2 Strongbox: Đặt khả năng chống tấn công nội bộ (IAR) là một yêu cầu cần thiết.
Xem bản sửa đổi
Để xác thực việc tuân thủ [C-1-3] đến [C-1-9], việc triển khai thiết bị:
- [C-SR] arePhải Sử dụng để cung cấp các cuộc tấn công bên trong (IAR), có nghĩa là một bên trong với quyền truy cập chương trình cơ sở ký các khoá không thể sản xuất chương trình cơ sở đó gây ra StrongBox tonhững bí mật, để bỏ qua chức năng bảo mật yêu cầu hoặc nếu không cho phép truy cập vào các dữ liệu nhạy cảm của người dùng. Bạn nên triển khai IAR theo cách chỉ cho phép cập nhật chương trình cơ sở khi mật khẩu chính của người dùng được cung cấp qua IAuthSecret HAL. IAR sẽ trở thành a PHẢI yêu cầu trong Android 14.
9.11.3 Thông tin xác thực danh tính: Thêm thông tin về việc triển khai tham chiếu hệ thống Thông tin xác thực danh tính.
Xem bản sửa đổi
Hệ thống thông tin xác thực danh tính được xác định và có được bằng cách triển khai tất cả các API trong gói
android.security.identity.*
. Các API này cho phép nhà phát triển ứng dụng lưu trữ và truy xuất tài liệu nhận dạng của người dùng. Triển khai thiết bị:Dự án nguồn mở Android ngược dòng cung cấp cách triển khai tham chiếu của một ứng dụng đáng tin cậy (libeic) có thể dùng để triển khai hệ thống Thông tin xác thực danh tính.
Kết thúc các yêu cầu mới
Chứng thực mã nhận dạng 9.11.4: Thêm một mục cho yêu cầu về chứng thực giá trị nhận dạng.
Xem bản sửa đổi
9.11.4. Chứng thực giấy tờ tuỳ thân
Các quá trình triển khai thiết bị PHẢI hỗ trợ chứng thực giá trị nhận dạng.
Kết thúc các yêu cầu mới
9.17 Khung ảo hoá Android: Thêm một phần yêu cầu cho Khung ảo hoá Android.
Xem bản sửa đổi
9,17. Khung ảo hoá Android
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android (
android.system.virtualmachine.*
), máy chủ lưu trữ Android:- [C-1-1] PHẢI support all the APIs xác định by gói
android.system.virtualmachine.*
. - [C-1-2] KHÔNG ĐƯỢC sửa đổi Android SELinux và mô hình quyền để quản lý các Máy ảo được bảo vệ.
- [C-1-3] truyền chuyển đổi không sửa đổi, bỏ qua, thay thế các quy tắc không bao giờ hiển thị trong hệ thống/sepolicy cung cấp trong dự án nguồn mở Android ngược dòng (AOSP) và chính sách PHẢI biên dịch với tất cả các quy tắc không bao giờ cho thấy.
- [C-1-4] KHÔNG ĐƯỢC cho phép mã không tin cậy (ví dụ: ứng dụng 3p) tạo và chạy máy ảo được bảo vệ. Lưu ý: Điều này có thể thay đổi trong các bản phát hành Android sau này.
- [C-1-5] KHÔNG ĐƯỢC cho phép Máy ảo được bảo vệ thực thi mã không phải là một phần của hình ảnh gốc hoặc bản cập nhật của chúng. Mọi hoạt động không thuộc phạm vi của tính năng Xác minh quy trình khởi động của Android (ví dụ: các tệp được tải xuống từ Internet hoặc không qua cửa hàng ứng dụng) KHÔNG ĐƯỢC phép chạy trong Máy ảo được bảo vệ.
Nếu thiết bị triển khai tính năng hỗ trợ cho các API Khung ảo hoá Android (
android.system.virtualmachine.*
), thì mọi phiên bản được bảo vệ của Máy ảo được bảo vệ:- [C-2-1] NOT beable to run all conditions available in the virtualization APEX in a Protected Virtual Machine.
- [C-2-2] PHẢI NOT cho phép máy ảo được bảo vệ chạy hệ điều hành không được ký bởi trình triển khai thiết bị hoặc nhà cung cấp hệ điều hành.
- [C-2-3] PHẢI NOT cho phép máy ảo được bảo vệ thực thi dữ liệu dưới dạng mã (ví dụ: SELinux luôn cho phép execmem).
- [C-2-4] KHÔNG ĐƯỢC sửa đổi, bỏ qua, hoặc thay thế các quy tắc bao giờ hiện diện trong hệ thống/sepolicy/microdroid cung cấp trong Dự án nguồn mở Android ngược dòng (AOSP).
- [C-2-5] PHẢI triển khai cơ chế bảo vệ máy ảo bảo vệ trong chiều sâu được bảo vệ (e.g. SELinux for pVMs) ngay cả đối với hệ điều hành không phải Microdroid.
- [C-2-6] PHẢI đảm bảo rằng chương trình cơ sở pVM từ chối khởi động nếu không thể xác minh hình ảnh ban đầu.
- [C-2-7] PHẢI đảm bảo rằng chương trình cơ sở pVM từ chối khởi động nếu tính toàn vẹn của phiên bản.img bị xâm phạm.
Nếu thiết bị triển khai tính năng hỗ trợ cho các API Khung ảo hoá Android (
android.system.virtualmachine.*
), thì trình điều khiển ảo hoá:- [C-3-1] PHẢI NOT allow any pVM to have access to a page by another entity (i.e. other pVM or Trên máy ảo), trừ khi được chia sẻ rõ ràng bởi chủ sở hữu trang. Bao gồm cả máy ảo lưu trữ. Điều này áp dụng cho cả quyền truy cập CPU và DMA.
- [C-3-2] PHẢI xoá sạch một trang sau khi máy ảo dùng và trước khi nó được trả về cho máy chủ (ví dụ: pVM bị huỷ).
- [C-3-3] PHẢI đảm bảo rằng chương trình cơ sở pVM được tải và thực thi trước bất kỳ mã nào trong pVM.
- [C-3-4] PHẢI đảm bảo rằng BCC and CDIs provided to a pVMinstance can only be derived by that specific chẳng.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android, thì trên tất cả các khu vực:
- [C-4-1] PHẢI NOT cung cấp chức năng cho một pVM đó cho phép bỏ qua Mô hình bảo mật Android.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho Android Virtualization API (API Khung ảo hoá Android), thì:
- [C-5-1] PHẢI hỗ trợ Isolated Compilation (tính năng biên dịch tách biệt) của một bản cập nhật thời gian chạy ART.
Nếu thiết bị triển khai dịch vụ hỗ trợ cho các API Khung ảo hoá Android, thì cho Quản lý khoá:
- [C-6-1] PHẢI root DICE string at a apoint that the user could could errors, nêu diễn đàn, ngay cả trên thiết bị đã mở khoá. (Để đảm bảo hình ảnh không bị giả mạo).
- [C-6-2] PHẢI thực hiện DICE đúng cách, tức là cung cấp các giá trị chính xác. Tuy nhiên, kết quả thử nghiệm có thể không cần phải đạt đến mức độ chi tiết đó.
Kết thúc các yêu cầu mới
- [C-1-1] PHẢI support all the APIs xác định by gói
13. Liên hệ với chúng tôi
Bạn có thể tham gia diễn đàn về khả năng tương thích với android và yêu cầu giải thích rõ hơn hoặc đưa ra bất kỳ vấn đề nào mà bạn cho rằng tài liệu không đề cập đến.