diff --git a/authsecret/1.0/vts/functional/VtsHalAuthSecretV1_0TargetTest.cpp b/authsecret/1.0/vts/functional/VtsHalAuthSecretV1_0TargetTest.cpp index 687c70cb88..c09b265c3e 100644 --- a/authsecret/1.0/vts/functional/VtsHalAuthSecretV1_0TargetTest.cpp +++ b/authsecret/1.0/vts/functional/VtsHalAuthSecretV1_0TargetTest.cpp @@ -34,11 +34,19 @@ class AuthSecretHidlTest : public testing::TestWithParam { authsecret = IAuthSecret::getService(GetParam()); ASSERT_NE(authsecret, nullptr); + // Notify LSS to generate PIN code '1234' and corresponding secret. + (void)system("cmd lock_settings set-pin 1234"); + // All tests must enroll the correct secret first as this cannot be changed // without a factory reset and the order of tests could change. authsecret->primaryUserCredential(CORRECT_SECRET); } + static void TearDownTestSuite() { + // clean up PIN code after testing + (void)system("cmd lock_settings clear --old 1234"); + } + sp authsecret; hidl_vec CORRECT_SECRET{61, 93, 124, 240, 5, 0, 7, 201, 9, 129, 11, 12, 0, 14, 0, 16}; hidl_vec WRONG_SECRET{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 8b68fd6f0a..f1c8f9f6c7 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -72,6 +72,8 @@ using ::android::hardware::automotive::evs::V1_1::BufferDesc; using ::android::hardware::automotive::evs::V1_0::DisplayDesc; using ::android::hardware::automotive::evs::V1_0::DisplayState; using ::android::hardware::graphics::common::V1_0::PixelFormat; +using ::android::frameworks::automotive::display::V1_0::HwDisplayConfig; +using ::android::frameworks::automotive::display::V1_0::HwDisplayState; using IEvsCamera_1_0 = ::android::hardware::automotive::evs::V1_0::IEvsCamera; using IEvsCamera_1_1 = ::android::hardware::automotive::evs::V1_1::IEvsCamera; using IEvsDisplay_1_0 = ::android::hardware::automotive::evs::V1_0::IEvsDisplay; @@ -303,11 +305,22 @@ TEST_P(EvsHidlTest, CameraOpenClean) { const auto id = 0xFFFFFFFF; // meaningless id hidl_vec values; auto err = pCam->setExtendedInfo_1_1(id, values); - ASSERT_NE(EvsResult::INVALID_ARG, err); + if (isLogicalCam) { + // Logical camera device does not support setExtendedInfo + // method. + ASSERT_EQ(EvsResult::INVALID_ARG, err); + } else { + ASSERT_NE(EvsResult::INVALID_ARG, err); + } - pCam->getExtendedInfo_1_1(id, [](const auto& result, const auto& data) { - ASSERT_NE(EvsResult::INVALID_ARG, result); - ASSERT_EQ(0, data.size()); + + pCam->getExtendedInfo_1_1(id, [&isLogicalCam](const auto& result, const auto& data) { + if (isLogicalCam) { + ASSERT_EQ(EvsResult::INVALID_ARG, result); + } else { + ASSERT_NE(EvsResult::INVALID_ARG, result); + ASSERT_EQ(0, data.size()); + } }); // Explicitly close the camera so resources are released right away @@ -605,7 +618,10 @@ TEST_P(EvsHidlTest, CameraToDisplayRoundTrip) { LOG(INFO) << "Display " << targetDisplayId << " is alreay in use."; // Get the display descriptor - pDisplay->getDisplayInfo_1_1([](const auto& config, const auto& state) { + pDisplay->getDisplayInfo_1_1([](const HwDisplayConfig& config, const HwDisplayState& state) { + ASSERT_GT(config.size(), 0); + ASSERT_GT(state.size(), 0); + android::DisplayConfig* pConfig = (android::DisplayConfig*)config.data(); const auto width = pConfig->resolution.getWidth(); const auto height = pConfig->resolution.getHeight(); diff --git a/automotive/vehicle/2.0/default/Android.bp b/automotive/vehicle/2.0/default/Android.bp index d092f7a819..f4d8e89fca 100644 --- a/automotive/vehicle/2.0/default/Android.bp +++ b/automotive/vehicle/2.0/default/Android.bp @@ -146,7 +146,6 @@ cc_library_static { local_include_dirs: ["common/include/vhal_v2_0"], export_include_dirs: ["impl"], srcs: [ - "impl/vhal_v2_0/EmulatedUserHal.cpp", "impl/vhal_v2_0/GeneratorHub.cpp", "impl/vhal_v2_0/JsonFakeValueGenerator.cpp", "impl/vhal_v2_0/LinearFakeValueGenerator.cpp", diff --git a/automotive/vehicle/2.0/default/VehicleService.cpp b/automotive/vehicle/2.0/default/VehicleService.cpp index 47133fd162..ef29560588 100644 --- a/automotive/vehicle/2.0/default/VehicleService.cpp +++ b/automotive/vehicle/2.0/default/VehicleService.cpp @@ -34,7 +34,7 @@ using namespace android::hardware::automotive::vehicle::V2_0; int main(int /* argc */, char* /* argv */ []) { auto store = std::make_unique(); - auto connector = impl::makeEmulatedPassthroughConnector(); + auto connector = std::make_unique(); auto userHal = connector->getEmulatedUserHal(); auto hal = std::make_unique(store.get(), connector.get(), userHal); auto emulator = std::make_unique(hal.get()); diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h index cf1840499c..dec2d8cb78 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h @@ -417,7 +417,7 @@ const ConfigDeclaration kVehicleProperties[]{ .minSampleRate = 1.0f, .maxSampleRate = 2.0f, }, - .initialValue = {.floatValues = {100.0f}}}, // units in meters + .initialValue = {.floatValues = {50000.0f}}}, // units in meters {.config = { diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.cpp b/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.cpp index 7f9362fdf4..ed3f4a2e8f 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.cpp +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.cpp @@ -35,13 +35,33 @@ namespace V2_0 { namespace impl { -class EmulatedPassthroughConnector : public PassthroughConnector { - public: - bool onDump(const hidl_handle& fd, const hidl_vec& options) override; -}; +EmulatedUserHal* EmulatedVehicleConnector::getEmulatedUserHal() { + return &mEmulatedUserHal; +} -bool EmulatedPassthroughConnector::onDump(const hidl_handle& handle, - const hidl_vec& options) { +StatusCode EmulatedVehicleConnector::onSetProperty(const VehiclePropValue& value, + bool updateStatus) { + if (mEmulatedUserHal.isSupported(value.prop)) { + LOG(INFO) << "onSetProperty(): property " << value.prop << " will be handled by UserHal"; + + const auto& ret = mEmulatedUserHal.onSetProperty(value); + if (!ret.ok()) { + LOG(ERROR) << "onSetProperty(): HAL returned error: " << ret.error().message(); + return StatusCode(ret.error().code()); + } + auto updatedValue = ret.value().get(); + if (updatedValue != nullptr) { + LOG(INFO) << "onSetProperty(): updating property returned by HAL: " + << toString(*updatedValue); + onPropertyValueFromCar(*updatedValue, updateStatus); + } + return StatusCode::OK; + } + return this->VehicleHalServer::onSetProperty(value, updateStatus); +} + +bool EmulatedVehicleConnector::onDump(const hidl_handle& handle, + const hidl_vec& options) { int fd = handle->data[0]; if (options.size() > 0) { @@ -68,10 +88,6 @@ bool EmulatedPassthroughConnector::onDump(const hidl_handle& handle, return true; } -PassthroughConnectorPtr makeEmulatedPassthroughConnector() { - return std::make_unique(); -} - } // namespace impl } // namespace V2_0 diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.h index 57cbb8b893..4c6c66150b 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/EmulatedVehicleConnector.h @@ -19,6 +19,7 @@ #include +#include "EmulatedUserHal.h" #include "VehicleHalClient.h" #include "VehicleHalServer.h" @@ -30,10 +31,20 @@ namespace V2_0 { namespace impl { -using PassthroughConnector = IPassThroughConnector; -using PassthroughConnectorPtr = std::unique_ptr; +class EmulatedVehicleConnector : public IPassThroughConnector { + public: + EmulatedVehicleConnector() {} -PassthroughConnectorPtr makeEmulatedPassthroughConnector(); + EmulatedUserHal* getEmulatedUserHal(); + + // Methods from VehicleHalServer + StatusCode onSetProperty(const VehiclePropValue& value, bool updateStatus) override; + + bool onDump(const hidl_handle& fd, const hidl_vec& options) override; + + private: + EmulatedUserHal mEmulatedUserHal; +}; } // namespace impl diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.cpp b/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.cpp index 36f25345ae..0ee183596a 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.cpp +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.cpp @@ -41,10 +41,6 @@ VehiclePropValuePool* VehicleHalServer::getValuePool() const { return mValuePool; } -EmulatedUserHal* VehicleHalServer::getEmulatedUserHal() { - return &mEmulatedUserHal; -} - void VehicleHalServer::setValuePool(VehiclePropValuePool* valuePool) { if (!valuePool) { LOG(WARNING) << __func__ << ": Setting value pool to nullptr!"; @@ -185,22 +181,6 @@ VehicleHalServer::VehiclePropValuePtr VehicleHalServer::createHwInputKeyProp( } StatusCode VehicleHalServer::onSetProperty(const VehiclePropValue& value, bool updateStatus) { - if (mEmulatedUserHal.isSupported(value.prop)) { - LOG(INFO) << "onSetProperty(): property " << value.prop << " will be handled by UserHal"; - - const auto& ret = mEmulatedUserHal.onSetProperty(value); - if (!ret.ok()) { - LOG(ERROR) << "onSetProperty(): HAL returned error: " << ret.error().message(); - return StatusCode(ret.error().code()); - } - auto updatedValue = ret.value().get(); - if (updatedValue != nullptr) { - LOG(INFO) << "onSetProperty(): updating property returned by HAL: " - << toString(*updatedValue); - onPropertyValueFromCar(*updatedValue, updateStatus); - } - return StatusCode::OK; - } LOG(DEBUG) << "onSetProperty(" << value.prop << ")"; // Some properties need to be treated non-trivially diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.h index fca78bc822..117eadb1e2 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/VehicleHalServer.h @@ -19,7 +19,6 @@ #include #include -#include "EmulatedUserHal.h" #include "GeneratorHub.h" namespace android::hardware::automotive::vehicle::V2_0::impl { @@ -38,8 +37,6 @@ class VehicleHalServer : public IVehicleServer { // Set the Property Value Pool used in this server void setValuePool(VehiclePropValuePool* valuePool); - EmulatedUserHal* getEmulatedUserHal(); - private: using VehiclePropValuePtr = recyclable_ptr; @@ -56,11 +53,6 @@ class VehicleHalServer : public IVehicleServer { VehiclePropValuePtr createHwInputKeyProp(VehicleHwKeyInputAction action, int32_t keyCode, int32_t targetDisplay); - // data members - - protected: - EmulatedUserHal mEmulatedUserHal; - private: GeneratorHub mGeneratorHub{ std::bind(&VehicleHalServer::onFakeValueGenerated, this, std::placeholders::_1)}; diff --git a/current.txt b/current.txt index 1d80797fc1..2304b6993b 100644 --- a/current.txt +++ b/current.txt @@ -780,8 +780,6 @@ cd84ab19c590e0e73dd2307b591a3093ee18147ef95e6d5418644463a6620076 android.hardwar e8c86c69c438da8d1549856c1bb3e2d1b8da52722f8235ff49a30f2cce91742c android.hardware.soundtrigger@2.1::ISoundTriggerHwCallback b9fbb6e2e061ed0960939d48b785e9700210add1f13ed32ecd688d0f1ca20ef7 android.hardware.renderscript@1.0::types 0f53d70e1eadf8d987766db4bf6ae2048004682168f4cab118da576787def3fa android.hardware.radio@1.0::types -38d65fb20c60a5b823298560fc0825457ecdc49603a4b4e94bf81511790737da android.hardware.radio@1.4::types -954c334efd80e8869b66d1ce5fe2755712d96ba4b3c38d415739c330af5fb4cb android.hardware.radio@1.5::types # HALs released in Android S # NOTE: waiting to freeze HALs until later in the release