2

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.

0 Answers0