Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06ddbc6d authored by Yu Shan's avatar Yu Shan
Browse files

Define IRemoteAccess V2 reference impl.

Rename remote access HAL to V2 and implement V2 interface.

Test: Presubmit
Bug: 297271235
Change-Id: I4b21fce3c18f7697f62229107b210b7675749b68
parent 60783a63
Loading
Loading
Loading
Loading
+25 −2
Original line number Diff line number Diff line
@@ -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",
+20 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <aidl/android/hardware/automotive/remoteaccess/BnRemoteAccess.h>
#include <aidl/android/hardware/automotive/remoteaccess/BnRemoteTaskCallback.h>
#include <aidl/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.h>
#include <aidl/android/hardware/automotive/remoteaccess/ScheduleInfo.h>
#include <android-base/thread_annotations.h>
#include <android/binder_auto_utils.h>
#include <utils/SystemClock.h>
@@ -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<aidl::android::hardware::automotive::remoteaccess::ScheduleInfo>* out)
            override;

    binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;

  private:
+4 −0
Original line number Diff line number Diff line
service vendor.remoteaccess-default /vendor/bin/hw/android.hardware.automotive.remoteaccess@V1-default-service
    class hal
    user vehicle_network
    group system inet
+7 −0
Original line number Diff line number Diff line
<manifest version="1.0" type="device">
    <hal format="aidl">
        <name>android.hardware.automotive.remoteaccess</name>
        <version>1</version>
        <fqname>IRemoteAccess/default</fqname>
    </hal>
</manifest>
+1 −1
Original line number Diff line number Diff line
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
Loading