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

Commit 2bc926ed authored by Kangping Dong's avatar Kangping Dong
Browse files

[Thread] add an override_apex for Thread HAL with simulation RCP

This commit adds a new apex override for the Thread HAL which uses a
simulation RCP. This will be used by goldfish emulators.

Note that this can't be defined in /device/generic/goldfish because of
below error:

```
[100% 1/1] analyzing Android.bp files and generating ninja file at out/soong/build.sdk_phone64_x86_64.ninja
FAILED: out/soong/build.sdk_phone64_x86_64.ninja
cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux-x86/bin/soong_build")" && cd / && env -i  "$BUILDER"     --top "$TOP"     --soong_out "out/soong"     --out "out"     --soong_variables out/soong/soong.sdk_phone64_x86_64.variables -o o
ut/soong/build.sdk_phone64_x86_64.ninja --globListDir sdk_phone64_x86_64 --globFile out/soong/globs-sdk_phone64_x86_64.ninja -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.sdk_phone64_x86_64.bui
ld Android.bp
Warning: Module 'androidx.wear_wear' depends on non-existing optional_uses_libs 'wear-sdk'
Warning: Module 'androidx.wear.compose_compose-foundation' depends on non-existing optional_uses_libs 'wear-sdk'
error: hardware/interfaces/threadnetwork/aidl/default/Android.bp:103:1: "com.android.hardware.threadnetwork" depends on undefined module "goldfish-threadnetwork-service.rc".
Module "com.android.hardware.threadnetwork" is defined in namespace "." which can read these 1 namespaces: ["."]
Module "goldfish-threadnetwork-service.rc" can be found in these namespaces: ["device/generic/goldfish"]
```

Bug: 356079409
Test: verified that "adb shell cmd thread_network join" works
Change-Id: I5356df53486fe9555ab34a0c8402e7be1b31309f
parent 3935a3fa
Loading
Loading
Loading
Loading
+30 −2
Original line number Diff line number Diff line
@@ -90,10 +90,20 @@ prebuilt_etc {
    installable: false,
}

filegroup {
    name: "com.android.hardware.threadnetwork_manifest",
    srcs: ["manifest.json"],
}

filegroup {
    name: "com.android.hardware.threadnetwork_file_contexts",
    srcs: ["file_contexts"],
}

apex {
    name: "com.android.hardware.threadnetwork",
    manifest: "manifest.json",
    file_contexts: "file_contexts",
    manifest: ":com.android.hardware.threadnetwork_manifest",
    file_contexts: ":com.android.hardware.threadnetwork_file_contexts",
    key: "com.android.hardware.key",
    certificate: ":com.android.hardware.certificate",
    updatable: false,
@@ -110,3 +120,21 @@ apex {
        "android.hardware.thread_network.prebuilt.xml", // permission
    ],
}

prebuilt_etc {
    name: "threadnetwork-service-simulation-rcp.rc",
    src: "threadnetwork-service-simulation-rcp.rc",
    installable: false,
}

// Thread HAL service which uses a simulation RCP (i.e. ot-rcp),
// typically used in emulator devices.
override_apex {
    name: "com.android.hardware.threadnetwork-simulation-rcp",
    base: "com.android.hardware.threadnetwork",
    prebuilts: [
        "threadnetwork-service-simulation-rcp.rc",
        "threadnetwork-default.xml",
        "android.hardware.thread_network.prebuilt.xml",
    ],
}
+3 −0
Original line number Diff line number Diff line
service vendor.threadnetwork_hal /apex/com.android.hardware.threadnetwork/bin/hw/android.hardware.threadnetwork-service spinel+hdlc+forkpty:///apex/com.android.hardware.threadnetwork/bin/ot-rcp?forkpty-arg=1
    class hal
    user thread_network