This is a partial revert of aosp/2856649, changeID
Ia450e9a8f2dc530f79e8d74d7ce65f7d67ea129f, because it turns out
that there are Wear devices that are using the default implementation
(but which are not covered by TreeHugger/presubmit).
It restores the C++ implementation for KeyMint as
android.hardware.security.keymint-service, but preserves the Rust
libraries that were moved here in that CL as a subsequent CL
(aosp/2852598) means that Cuttlefish now uses the libraries here.
Test: VtsAidlKeyMintTargetTest on Cuttlefish
Bug: 328251011
Bug: 314513765
Change-Id: Id6f3491144588e418cd6e18e51262fe839bfdf39
The field AudioPortConfig.ext.mix.usecase is provided by
the client, thus is needs to be treated the same way as
'.handle'.
Bug: 302736184
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I45050e8530cd236f5e582585f583df477fc7ae8a
Already frozen internally. Freezing now in aosp to enable developement
on 202504 interfaces.
Merged-In: Ie6d38d27a287e258c30516e0030ad8c931d06432
Test: verify .hash file is the same as internally
Test: lunch cf_x86_64_phone-next-userdebug
Bug: 328236210
Change-Id: I14e49a7ed7a1069cd1ca9b92ce7664f646b18054
202404 FCM is now frozen and supported internally. Add the 202404 FCM to
all builds to allow freezing 202404 HAL interfaces and serving the new
versions in the next release config.
Create 202504 FCM for people to start working on the 202504 interface
changes. This new file is based on the internal 202504 file.
Merged-In: Ie6d38d27a287e258c30516e0030ad8c931d06432
Test: m
Bug: 328236210
Change-Id: Iaef8117a18441951070816344aecd24fdd4969f4
Also add two missing test class to postsubmit
Bug: 328330990
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:postsubmit
Change-Id: I9f9b9feda9ca99e6a065e837fa77dc621ad35bb1
Align behavior with the HIDL implementation. This helps
to prevent glitches in the scenarios that use remote
submix for sending audio externally: Auto and Cast.
Bug: 322247032
Bug: 327220024
Test: Repro steps in b/327220024#comment14
Change-Id: If2e4ebd7145375a268ee5f0e4ab656bb3748b2fe
Merged-In: If2e4ebd7145375a268ee5f0e4ab656bb3748b2fe
When the framework uses mixers, it rounds up the buffer
size to the frame count which is a multiple of 16.
In the HIDL implementation, this adjustment was done after
the framework thread was already created, and FMQ was
created on the first transfer, using adjusted size. In
the AIDL implementation, the FMQ is created together with
the stream, using the size suggested by the HAL.
Bug: 321233946
Test: verify audio playback over S/W A2DP
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f2f9ae08c2ee4e396bbe4b8c7e955bad725ce545)
Merged-In: I35a5479bfc87a290aff09d51415381948857a146
Change-Id: I35a5479bfc87a290aff09d51415381948857a146
To align with the framework, the thread serving SPATIALIZER
stream I/O must use SCHED_FIFO and realtime priority.
The latter can be set via `audio.spatializer.priority`
property.
Bug: 321233946
Test: adb shell ps -Tl -p <HAL PID>
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:81a14293f4f26bf3af740cc1682c1111d7e1e29d)
Merged-In: I80107c9aa7d86cbfc2f79c2ad05959fc9f7913f7
Change-Id: I80107c9aa7d86cbfc2f79c2ad05959fc9f7913f7
Copy code that can be re-used from the Cuttlefish KeyMint
implementation, specifically from the following directories
under device/google/cuttlefish:
- HAL-side code from guest/hals/keymint/rust/
- TA-side code from host/commands/secure_env/rust/
Create a corresponding pair of libkmr_{hal,ta}_nonsecure libraries here.
The only changes to the copied code are:
- Convert `pub(crate)` to `pub` in `attest.rs`.
- Add some missing doc comments.
- Add comment noting need for SELinux permission to read ro.serialno.
- Add comment noting need for clock to be in sync with Gatekeeper.
(A subsequent CL aosp/2852598 adjusts Cuttlefish so that it uses the
copied modules here, and can remove the original copies.)
In addition to the moved code, the default implementation also needs
a new implementation of a monotonic clock, added here in clock.rs
using `std::time::Instant`.
With the new nonsecure HAL and TA libraries in place, implement the
default KeyMint HAL service using the former, and spin up a single
thread running a nonsecure TA using the latter. Communicate between
the two via a pair of mpsc::channel()s.
Test: VtsAidlKeyMintTargetTest with normal Cuttlefish (all pass)
Test: VtsAidlKeyMintTargetTest with default/nonsecure impl (auth
tests fail, but this is expected as Gatekeeper hasn't moved)
Bug: 314513765
Change-Id: Ia450e9a8f2dc530f79e8d74d7ce65f7d67ea129f
When dumping attestation certificate chains with the --dump_attestations
option, add a separator between distinct chains to make them easier to
analyze.
Bug: 326564087
Test: VtsAidlKeyMintTargetTest
Change-Id: Ife19edfddef6c8cd26de9f9816c3c9bf65cbb929
Since message-ids can be wrapped, they are not safe from
overflow/underflow. Change them to be safe from overflow/underflow.
Bug: 321674574
Change-Id: I39a4baf057fc81389925e0fe358894f62ade9423
The invalid value used for the second IMEI attestation test is
potentially wrong in two ways:
- It doesn't match the provisioned value.
- It's not a valid IMEI, not least because it is longer than 16 bytes.
Make the test value shorter so the second failure doesn't apply and
the test can reliably expect CANNOT_ATTEST_IDS.
Bug: 292959871
Bug: 327123694
Test: VtsAidlKeyMintTargetTest
Change-Id: If8c6b9e08b48e6caf5c767578e1ac43964214619
(cherry picked from commit 0215cb3d3e)
Used ASN1_TIME_to_posix API instead of ASN1_TIME_to_time_t
to avoid integer overflow on 32-bit systems.
Bug: 325853206
Test: vts -m VtsAidlKeyMintTarget
Change-Id: I7a01a521d389482a61ad9974b7e40eaa099c3571