diff --git a/automotive/remoteaccess/hal/default/Android.bp b/automotive/remoteaccess/hal/default/Android.bp index 48a7309847..70dba3071a 100644 --- a/automotive/remoteaccess/hal/default/Android.bp +++ b/automotive/remoteaccess/hal/default/Android.bp @@ -47,9 +47,20 @@ cc_defaults { ], } +// TODO(b/295393732): remove this once we finish the migration from V1 to V2. cc_binary { name: "android.hardware.automotive.remoteaccess@V1-default-service", defaults: ["remote-access-hal-defaults"], + vintf_fragments: ["remoteaccess-default-service-v1.xml"], + init_rc: ["remoteaccess-default-service-v1.rc"], + cflags: [ + "-DGRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", + ], +} + +cc_binary { + name: "android.hardware.automotive.remoteaccess@V2-default-service", + defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-default-service.rc"], cflags: [ @@ -57,9 +68,21 @@ cc_binary { ], } +// TODO(b/295393732): remove this once we finish the migration from V1 to V2. cc_binary { name: "android.hardware.automotive.remoteaccess@V1-tcu-test-service", defaults: ["remote-access-hal-defaults"], + vintf_fragments: ["remoteaccess-default-service-v1.xml"], + init_rc: ["remoteaccess-tcu-test-service-v1.rc"], + cflags: [ + "-DGRPC_SERVICE_ADDRESS=\"10.10.10.1:50051\"", + "-DGRPC_SERVICE_IFNAME=\"eth1\"", + ], +} + +cc_binary { + name: "android.hardware.automotive.remoteaccess@V2-tcu-test-service", + defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-tcu-test-service.rc"], cflags: [ @@ -77,7 +100,7 @@ cc_library { "src/RemoteAccessService.cpp", ], whole_static_libs: [ - "android.hardware.automotive.remoteaccess-V1-ndk", + "android.hardware.automotive.remoteaccess-V2-ndk", "wakeup_client_protos", "libvhalclient", ], @@ -99,7 +122,7 @@ cc_library { } cc_fuzz { - name: "android.hardware.automotive.remoteaccess@V1-default-service.aidl_fuzzer", + name: "android.hardware.automotive.remoteaccess@V2-default-service.aidl_fuzzer", srcs: ["fuzzer/fuzzer.cpp"], whole_static_libs: [ "RemoteAccessService", diff --git a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h index b18986adac..1fc4037ae2 100644 --- a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h +++ b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -78,6 +79,25 @@ class RemoteAccessService ndk::ScopedAStatus notifyApStateChange( const aidl::android::hardware::automotive::remoteaccess::ApState& newState) override; + ndk::ScopedAStatus isTaskScheduleSupported(bool* out) override; + + ndk::ScopedAStatus scheduleTask( + const aidl::android::hardware::automotive::remoteaccess::ScheduleInfo& scheduleInfo) + override; + + ndk::ScopedAStatus unscheduleTask(const std::string& clientId, + const std::string& scheduleId) override; + + ndk::ScopedAStatus unscheduleAllTasks(const std::string& clientId) override; + + ndk::ScopedAStatus isTaskScheduled(const std::string& clientId, const std::string& scheduleId, + bool* out) override; + + ndk::ScopedAStatus getAllScheduledTasks( + const std::string& clientId, + std::vector* out) + override; + binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; private: diff --git a/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.rc b/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.rc new file mode 100644 index 0000000000..b7a9cdc82a --- /dev/null +++ b/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.rc @@ -0,0 +1,4 @@ +service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V1-default-service + class hal + user vehicle_network + group system inet diff --git a/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.xml b/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.xml new file mode 100644 index 0000000000..d050a1b646 --- /dev/null +++ b/automotive/remoteaccess/hal/default/remoteaccess-default-service-v1.xml @@ -0,0 +1,7 @@ + + + android.hardware.automotive.remoteaccess + 1 + IRemoteAccess/default + + diff --git a/automotive/remoteaccess/hal/default/remoteaccess-default-service.rc b/automotive/remoteaccess/hal/default/remoteaccess-default-service.rc index b7a9cdc82a..c9b282ce24 100644 --- a/automotive/remoteaccess/hal/default/remoteaccess-default-service.rc +++ b/automotive/remoteaccess/hal/default/remoteaccess-default-service.rc @@ -1,4 +1,4 @@ -service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V1-default-service +service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V2-default-service class hal user vehicle_network group system inet diff --git a/automotive/remoteaccess/hal/default/remoteaccess-default-service.xml b/automotive/remoteaccess/hal/default/remoteaccess-default-service.xml index d050a1b646..44ac30996e 100644 --- a/automotive/remoteaccess/hal/default/remoteaccess-default-service.xml +++ b/automotive/remoteaccess/hal/default/remoteaccess-default-service.xml @@ -1,7 +1,7 @@ android.hardware.automotive.remoteaccess - 1 + 2 IRemoteAccess/default diff --git a/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service-v1.rc b/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service-v1.rc new file mode 100644 index 0000000000..59315ebe0b --- /dev/null +++ b/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service-v1.rc @@ -0,0 +1,5 @@ +service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V1-tcu-test-service + class hal + user vehicle_network + group system inet + capabilities NET_RAW diff --git a/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service.rc b/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service.rc index 59315ebe0b..19faaf4c5f 100644 --- a/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service.rc +++ b/automotive/remoteaccess/hal/default/remoteaccess-tcu-test-service.rc @@ -1,4 +1,4 @@ -service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V1-tcu-test-service +service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V2-tcu-test-service class hal user vehicle_network group system inet diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index 5081ac0a9b..7721bf404a 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -39,6 +39,7 @@ namespace { using ::aidl::android::hardware::automotive::remoteaccess::ApState; using ::aidl::android::hardware::automotive::remoteaccess::IRemoteTaskCallback; +using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::android::base::Error; using ::android::base::ParseInt; @@ -313,6 +314,41 @@ ScopedAStatus RemoteAccessService::notifyApStateChange(const ApState& newState) return ScopedAStatus::ok(); } +ScopedAStatus RemoteAccessService::isTaskScheduleSupported([[maybe_unused]] bool* out) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + +ScopedAStatus RemoteAccessService::scheduleTask([[maybe_unused]] const ScheduleInfo& scheduleInfo) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + +ScopedAStatus RemoteAccessService::unscheduleTask([[maybe_unused]] const std::string& clientId, + [[maybe_unused]] const std::string& scheduleId) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + +ScopedAStatus RemoteAccessService::unscheduleAllTasks( + [[maybe_unused]] const std::string& clientId) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + +ScopedAStatus RemoteAccessService::isTaskScheduled([[maybe_unused]] const std::string& clientId, + [[maybe_unused]] const std::string& scheduleId, + [[maybe_unused]] bool* out) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + +ScopedAStatus RemoteAccessService::getAllScheduledTasks(const std::string& clientId, + std::vector* out) { + // TODO(b/297271235): implement this. + return ScopedAStatus::ok(); +} + bool RemoteAccessService::checkDumpPermission() { uid_t uid = AIBinder_getCallingUid(); return uid == AID_ROOT || uid == AID_SHELL || uid == AID_SYSTEM; diff --git a/automotive/remoteaccess/test_grpc_server/README.md b/automotive/remoteaccess/test_grpc_server/README.md index af3d54ac5b..d2b6bbef6a 100644 --- a/automotive/remoteaccess/test_grpc_server/README.md +++ b/automotive/remoteaccess/test_grpc_server/README.md @@ -141,7 +141,7 @@ interface. * The android lunch target: sdk_car_x86_64-userdebug and cf_x86_64_auto-userdebug already contains the default remote access HAL. For other lunch target, you can add the default remote access HAL by adding - 'android.hardware.automotive.remoteaccess@V1-default-service' to + 'android.hardware.automotive.remoteaccess@V2-default-service' to 'PRODUCT_PACKAGES' variable in mk file, see `device/generic/car/common/car.mk` as example.