I'm trying to develop a native application inside Android based on VHAL EVS documentation: https://source.android.com/docs/devices/automotive/camera-hal
I'm using x86_64 emulator target. Lunch target is sdk_car_x86_64-userdebug, and I'm using the SDK emulator as a target, my Android version is 13.0.0, release 8.
My first and most difficult task is to bring up the evs default service up and running in the emulator. In theory all the codes are present in the Android source code, so I added the required services to the build:
diff --git a/common/car.mk b/common/car.mk
index cbcf55a..5897e90 100644
--- a/common/car.mk
+++ b/common/car.mk
@@ -18,6 +18,13 @@
PRODUCT_PACKAGES += \
android.hardware.automotive.vehicle@V1-emulator-service \
android.hardware.broadcastradio@2.0-service \
+ android.frameworks.automotive.display@1.0 \
+ android.frameworks.automotive.telemetry-V1-ndk \
+ android.hardware.automotive.evs@1.1 \
+ android.hardware.automotive.evs-V1-ndk \
+ android.hardware.automotive.evs@1.1-service \
+ android.hardware.automotive.evs-aidl-default-service \
+ evs_app \
android.hardware.audio.service-caremu
I build the target (lunch sdk_car_x86_64-userdebug, mm -j8), I prepare the emulator (/device/generic/car/tools/test_pack_avd_img.sh) and finally I execute it, voila, EVS service is not running.
Let's see logcat:
02-13 10:47:31.364 236 236 I servicemanager: Could not find android.hardware.automotive.evs.IEvsEnumerator/default in the VINTF manifest.
02-13 10:47:31.365 933 933 E CarServiceJNI: android.hardware.automotive.evs.IEvsEnumerator/default is not available.
02-13 10:47:31.365 933 933 E CarServiceJNI: Failed to initialize a service context
02-13 10:47:31.365 933 933 E CAR.EVS : Transition failed: error = -1
02-13 10:47:32.366 933 933 D CAR.EVS : Trying to connect to the EVS HAL service.
02-13 10:47:32.366 933 933 I CAR.EVS : Transition requested: UNAVAILABLE -> INACTIVE
What can be the issue? Why servicemanager cannot find the vintf manifest? I checked, the vintf manifest can be found here: /vendor/etc/vintf/manifest/manifest_android.hardware.automotive.evs@1.1-service.xml
Do you have any idea how can I progress?
I tried to use different lunch targets, but it least only sdk_car_x86_64 supports Automative OS emulator out of box.