Định nghĩa về khả năng tương thích với Android 13

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.

Lưu ý: Các yêu cầu không áp dụng cho thiết bị máy tính bảng Android được đánh dấu bằng dấu *.

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_colorspaceVK_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ủa KEYCODE_MEDIA_PLAY_PAUSE hoặc KEYCODE_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 via android.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.outputandroid.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:

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ẽ:

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:

  • [5.2/H-0-1] H.264 AVC
  • [5.2/H-0-2] VP8

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:

  • [5.3/H-0-1] H.264 AVC
  • [5.3/H-0-2] H.265 HEVC
  • [5.3/H-0-3] MPEG-4 SP
  • [5.3/H-0-4] VP8
  • [5.3/H-0-5] VP9

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_TREEACTION_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 API DocumentsProvider.
  • [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 NotificationNotificationManager 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ành true 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ột MediaStyle thông báo với một MediaSession 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 khai VoiceInteractionService hoặc hoạt động xử lý ý định ACTION_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 ControlsProviderServiceControl, đồ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ành true.
  • [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à API Control.
  • [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 API Control.

  • [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 the Control 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ẽ:

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:

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ẽ:

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 đó:

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:

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 đến ContentCaptureService thông qua API ContentCaptureManager.
  • [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).

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()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()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()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ặc AUDIO_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 as FULL 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 and android.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_CAMERACá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 navigationcore 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:

  • [5.2/T-0-1] H.264
  • [5.2/T-0-2] VP8

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:

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.leanbackandroid.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ẽ:

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.

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_SPEEDPARKING_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:

  • [5.2/A-0-1] H.264 AVC
  • [5.2/A-0-2] VP8

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:

  • [5.3/A-0-1] H.264 AVC
  • [5.3/A-0-2] MPEG-4 SP
  • [5.3/A-0-3] VP8
  • [5.3/A-0-4] VP9

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ẽ:

Triển khai thiết bị Automotive:

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ẽ:

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ân uid_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ẽ:

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.

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ành org.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)/
$(DEVICE):$(VERSION.release)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)

Ví dụ:

acme/myproduct/
mydevice:13/LMYXX/3359:userdebug/test-keys

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ẽ:

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ẽ:

  • [C-4-1]

Nếu quá trình triển khai thiết bị báo cáo android.hardware.bluetooth, họ sẽ:

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:

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ẽ:

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ẽ:

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ẽ:

Nếu quá trình triển khai thiết bị báo cáo android.software.device_admin, họ sẽ:

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 đó:

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:

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, and android.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.

  • [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, and VK_KHR_get_physical_device_properties2 extensions through the libvulkan.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ừ GnssMeasurementGnssNavigationMessage.
    • [C-0-5] they PHẢI rate-limit the frequency of updates that are Provide to the app through the LocationManager API class or the WifiManager.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-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 by Provider.getName()) and classes, except the app has changed the list via insertProviderAt() or removeProvider(). 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.
    1. AndroidNSSPandroid.security.net.config.NetworkSecurityConfigProvider
    2. AndroidOpenSSLcom.android.org.conscrypt.OpenSSLProvider
    3. CertPathProvidersun.security.provider.CertPathProvider
    4. AndroidKeyStoreBCWorkChínhandroid.security.keystore.AndroidKeyStoreBCWorkaroundProvider
    5. BCcom.android.org.bouncycastle.jce.provider.BouncyCastleProvider
    6. HarmonyJSSEcom.android.org.conscrypt.JSSEProvider
    7. AndroidKeyStoreandroid.security.keystore.AndroidKeyStoreProvider

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 JFuzzDexFuzz 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ức PackageManager để 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 đó:

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ẽ:

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.
  • 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:

3.8.3. Thông báo

Android bao gồm các API NotificationNotificationManager 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 and importance: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 the NotificationManager.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ý ý định ACTION_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 (xem android.theme.customization.system_paletteandroid.theme.customization.theme_style).

  • [C-1-5] generate dynamic color tonal palettes using color theme styles enumerated in the Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES }} (xem android.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 trong Settings.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.

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

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ệp AndroidManifest.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_minWidthAndroidManifestLayout_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:resizeableActivityandroid: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 and AndroidManifestLayout_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.

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 ControlsProviderServiceControl để 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.1section 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 type MIME_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.
    • 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.
  • [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_usersandroid.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ề.
  • 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:

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ọ:

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ặc KEYCODE_MEDIA_PLAY_PAUSE as KEYCODE_MEDIA_NEXT for MediaSession.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_NAMEACCOUNT_TYPE khớp với các trường Account.nameAccount.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_NAMEACCOUNT_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_NAMEACCOUNT_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ề by ContactsContract.RawContacts.getLocalAccountName
  • [C-1-2] The ACCOUNT_TYPE, of the custom local account NOT be return by ContactsContract.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 and ACCOUNT_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 param CALLER\_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 đặt android: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.
  • 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 cho startActivityForResult(), 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 API PackageManager.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ợ:

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_LEVELKEY_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_LEVELKEY_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:

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.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
  • ADTS thô AAC (.aac, ADIF không được hỗ trợ)
  • MPEG-TS (.ts, không thể tìm kiếm, chỉ giải mã)
  • Matroska (.mkv, chỉ giải mã)
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.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
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.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
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.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
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.
  • FLAC (.flac)
  • MPEG-4 (.mp4, .m4a, chỉ giải mã)
  • Matroska (.mkv, chỉ giải mã)
MP3 Đơn âm/âm thanh nổi 8-320Kbps hằng số (CBR) hoặc tốc độ bit biến (VBR)
  • MP3 (.mp3)
  • MPEG-4 (.mp4, .m4a, chỉ giải mã)
  • Matroska (.mkv, chỉ giải mã)
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
  • Loại 0 và 1 (.mid, .xmf, .mxmf)
  • RTTTL/RTX (.rtttl, .rtx)
  • iMelody (.imy)
Vorbis
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, chỉ giải mã)
  • Matroska (.mkv)
  • Webm (.webm)
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
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, chỉ giải mã)
  • Matroska (.mkv)
  • Webm (.webm)

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ủa android.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) đến CodecCapabilities.

  • [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 to COLOR_FormatYUV420Planar) or COLOR_FormatYUV420PackedSemiPlanar (tương đương to COLOR_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) đến CodecCapabilities.

  • [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ới COLOR_FormatYUV420Planar) hoặc COLOR_FormatYUV420PackedSemiPlanar (tương đương với COLOR_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
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, chỉ giải mã)
H.264 AVC Xem mục 5.2 5.3 để biết chi tiết
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • MPEG-2 TS (.ts, không tìm kiếm được)
  • Matroska (.mkv, chỉ giải mã)
H.265 HEVC Xem phần 5.3 để biết chi tiết
  • MPEG-4 (.mp4)
  • Matroska (.mkv, chỉ giải mã)
MPEG-2 Cấu hình chính
  • MPEG2-TS (.ts, không tìm kiếm được)
  • MPEG-4 (.mp4, chỉ giải mã)
  • Matroska (.mkv, chỉ giải mã)
MPEG-4 SP (Danh sách quảng cáo gốc)
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, chỉ giải mã)
Văn bản ảo (VP8) Xem mục 5.25.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
  • 176 x 144 pixel (H263, MPEG2, MPEG4)
  • 352 x 288 pixel (bộ mã hoá MPEG4, H263, MPEG2)
  • 320 x 180 pixel (VP8, VP8)
  • 320 x 240 pixel (khác)
  • 704 x 576 pixel (H263)
  • 640 x 360 pixel (VP8, VP9)
  • 640 x 480 pixel (bộ mã hoá MPEG4)
  • 720 x 480 pixel (khác)
  • 1408 x 1152 pixel (H263)
  • 1280 x 720 pixel (khác)
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ặc AAudio 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ợ:

  • 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 API AudioManager.getMicrophones(), để ghi lại âm thanh đang hoạt động bằng cách sử dụng MediaRecorder.AudioSources DEFAULT, MIC, CAMCORDER, VOICE_RECOGNITION, VOICE_COMMUNICATION, UNPROCESSED, hoặc VOICE_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.outputandroid.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 API android.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:

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 for AudioSource.VOICE_COMMUNICATION or AudioSource.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ặc AudioSource.CAMCORDER. Tuy nhiên, khi một ứng dụng đang thu thập qua AudioSource.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ền CAPTURE_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_EQUALIZEREFFECT_TYPE_LOUDNESS_ENHANCER điều khiển được thông qua các lớp con AudioEffect EqualizerLoudnessEnhancer.
  • [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 AudioEffect DynamicsProcessing.
  • NÊN hỗ trợ các cách triển khai EFFECT_TYPE_BASS_BOOST, EFFECT_TYPE_ENV_REVERB, EFFECT_TYPE_PRESET_REVERBEFFECT_TYPE_VIRTUALIZER controllable through the AudioEffect sub-classes BassBoost, EnvironmentalReverb, PresetReverbVirtualizer.
  • [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 trong android.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 đó:

  • [C-SR-1] Are trì hoãn 1 danh sách cho tất cả các bên thứ ba và tuyên bố về việc cắt giảm.

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.getTimestampAAudioStream_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.getTimestampAAudioStream_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à:

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.outputandroid.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:
  • H264 AVC
  • MPEG-4 SP (Danh sách quảng cáo gốc)
  • MPEG-2
Xem phần 5.1.8 để biết thông tin chi tiết về H264 AVC, MPEG2-4 SP,
và MPEG-2.

Bộ mã hoá và giải mã âm thanh:

  • (chuẩn) AAC
Xem mục 5.1.3 để biết thông tin chi tiết về AAC và các biến thể của AAC.
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à:

    • Chế độ hỗ trợ USB, phần 7.7
    • MIDI trên Bluetooth LE hoạt động ở vai trò trung tâm, mục 7.4.3
  • [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ẽ:

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:

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 API AudioManager.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ầu gỡ lỗi Android (adb)

    • [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 the StatsManager 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 return true.

    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 return true.
  • 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.
  • SysTrace

    • [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.
  • Perfetto

    • [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.
  • Giảm dung lượng bộ nhớ thấp

    • [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.
  • 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ạy cmd testharness enable, thì các quy trình triển khai thiết bị sẽ:

    • [C-2-1] PHẢI Return true for ActivityManager.isRunningInUserTestHarness()
    • [C-2-2] PHẢI triển khai Test CPC Mode as description as mô tả trong Test CPC Mode resource.
  • 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ân power/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/.

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()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()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_MASKConfiguration.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ước small cho Configuration.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 cho Configuration.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 cho Configuration.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 cho Configuration.screenLayout phải có kích thước ít nhất là 960 dp x 720 dp.
  • [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ì:

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 to UI_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.
  • [C-0-3] Deviceimplementation with the Configuration.uiMode set as UI_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 qua DENSITY_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 cho view.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/or android.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áo android.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_recordableEGL_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_updateOES_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_priorityEGL_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.levelandroid.hardware.vulkan.version.
  • [C-1-2] PHẢI enumerate, at least one VkPhysicalDevice for the Vulkan native API vkEnumeratePhysicalDevices().
  • [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 APIs vkEnumerateInstanceLayerProperties()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 the android.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ăng android.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_propertiesVK_GOOGLE_display_timing.
  • nên hỗ trợ VkPhysicalDeviceProtectedMemoryFeaturesVK_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 API vkEnumeratePhysicalDevices().

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 ích VK_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_linearEGL_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ị:

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 đó:

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ị:

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ới ACTION=MAINCATEGORY=LAUNCHER hoặc CATEGORY=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-1] aretắt dải hạng mục đầu vào cho cơ chế

  • [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ài WindowInsets#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 cho View#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 an MotionEvent.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 qua View#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 API Configuration.touchscreen.
  • [C-1-2] PHẢI báo cáo cờ tính năng android.hardware.touchscreenandroid.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 API Configuration.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)

1 Sự kiện chính

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.

4 Sự kiện chuyển động

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

1 Sự kiện chuyển động

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 or false 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_GRAVITYTYPE_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:

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_GRAVITYTYPE_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ị đó:

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:

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 as TYPE_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 isDirectChannelTypeSupportedgetHighestDirectReportRateLevel 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 2Lớ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.BiometricPromptandroid.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)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:

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_FINGERPRINTDevicePolicymanager.KEYGUARD_DISABLE_FACEDevicePolicymanager.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ẽ:

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:

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ọ:

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ẽ:

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ọ:

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ì:

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 đó:

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ị đó:

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ên PhoneAccount đến true.

  • [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 and KEYCODE_HEADSETHOOK events for the android.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.
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 đổi Network 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 API ConnectivityManager như getActiveNetworkregisterDefaultNetworkCallback. 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 the Network 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 qua WifiManager.createWifiLock()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.

Triển khai thiết bị:

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ế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ẽ:

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ế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ẽ:

7.4.2.7. Wi-Fi Easy Connect (Giao thức cấp phép thiết bị)

Triển khai thiết bị:

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:

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.bluetoothandroid.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ẽ:

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:

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ậyADVERTISE_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.NdefMessageandroid.nfc.NdefRecord ngay cả khi chúng không bao gồm hỗ trợ cho NFC hoặc khai báo tính năng android.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ức android.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ức android.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ớp android.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.Socketjava.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.
  • [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ặc Socket#getLocalPort) và API NDK, chẳng hạn như getsockname() hoặc IPV6_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 API ConnectivityManager#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 and android.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ị:

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ẽ:

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:

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ặc MediaStore.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.cameraandroid.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.PreviewCallbackinstance 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ính FLASH_MODE_AUTO hoặc FLASH_MODE_ON của một đối tượng Camera.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ụng Camera.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.anyandroid.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ức android.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.externalandroid.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ọi android.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 the onPreviewFrame() method and the Preview format is YCbCr_420_SP, the data in the byte[] generated into onPreviewFrame(). 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ới android.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_888android.hardware.ImageFormat.JPEG dưới dạng dữ liệu đầu ra thông qua API android.media.ImageReader cho các thiết bị android.hardware.camera2 quảng cáo chức năng REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE trong android.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ớp android.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ức android.hardware.Camera.setParameters() khác những phương thức được ghi nhận dưới dạng hằng số trên android.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ố camera Camera.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ính android.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 the android.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ặc android.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 đó:

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.
  • [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ền ACCESS_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ẽ:

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 qua android.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

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_DOCUMENTACTION_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
  • [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
  • [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_RECOGNITIONUNPROCESSED:

  • [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_BITVK_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_DATAAHARDWAREBUFFER_USAGE_PROTECTED_CONTENT như mô tả trong NDK.
  • [C-1-10] PHẢI triển khai hỗ trợ cho AHardwareBuffers with bất kỳ kết hợp nào của các cờ sử dụng AHARDWAREBUFFER_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ổ AHardwareBuffers 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 for PowerManager.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 qua PARTIAL_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ị:

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ẽ:

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ó protectionLevelPROTECTION_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ẫn etc/permissions/ và sử dụng đường dẫn đặc quyền system/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ặc NETWORK_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ền softRestricted (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 setPermissionPolicysetPermission 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ị:

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_REGULARCONFIG_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 or CONFIG_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ặc CONFIG_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 or CONFIG_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ặc CONFIG_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ặc CONFIG_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 or EFI_RNG_PROTOCOL).

  • [C-SR-4] Are trì hoãn phát triểnCONFIG_CFI_CLANGCONFIG_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 CFIIntSan.

  • [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ặc CONFIG_INIT_STACK_ALL_ZERO).

  • [C-SR-8] Are trì hoãn phát triểnCONFIG_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 API IncidentManager.
  • [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 the SERVICE_META_DATA_SUPPORTS_ALWAYS_ON attribute to false.

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ý.

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 API AppSearchManager 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
  • [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_COMPLETEDACTION_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:

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ị:

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 API ConfirmationPrompt.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:

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, or KEYGUARD_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 than PASSWORD_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:
  • [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:

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 by DevicePolicyManager.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ái TrustState.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