diff --git a/location/gnssd/Android.bp b/location/gnssd/Android.bp
index 4133a8a..59b726d 100644
--- a/location/gnssd/Android.bp
+++ b/location/gnssd/Android.bp
@@ -13,8 +13,29 @@ license {
],
}
+soong_config_module_type {
+ name: "lassen_gnss_aidl_service_cc_defaults",
+ module_type: "cc_defaults",
+ config_namespace: "pixel_gnss",
+ bool_variables: ["enable_pixel_gnss_aidl_service"],
+ properties: ["vintf_fragments"],
+}
+
+lassen_gnss_aidl_service_cc_defaults {
+ name: "lassen_gnss_aidl_service_cc_defaults",
+ soong_config_variables: {
+ enable_pixel_gnss_aidl_service: {
+ vintf_fragments: ["android.hardware.gnss@vendor.xml"],
+ conditions_default: {
+ vintf_fragments: ["android.hardware.gnss@default.xml"]
+ },
+ },
+ },
+}
+
cc_prebuilt_binary {
name: "android.hardware.gnss-service",
+ defaults: ["lassen_gnss_aidl_service_cc_defaults"],
arch: {
arm64: {
srcs: ["release/android.hardware.gnss-service"],
@@ -41,7 +62,6 @@ cc_prebuilt_binary {
// Bypass because libhidltransport is deprecated
// Bypass because libhwbinder is deprecated
check_elf_files: false,
- vintf_fragments: ["android.hardware.gnss@lassen.xml"],
init_rc: ["init.gnss.rc"],
}
diff --git a/location/gnssd/android.hardware.gnss@lassen.xml b/location/gnssd/android.hardware.gnss@default.xml
similarity index 100%
rename from location/gnssd/android.hardware.gnss@lassen.xml
rename to location/gnssd/android.hardware.gnss@default.xml
diff --git a/location/gnssd/android.hardware.gnss@vendor.xml b/location/gnssd/android.hardware.gnss@vendor.xml
new file mode 100644
index 0000000..3b1525b
--- /dev/null
+++ b/location/gnssd/android.hardware.gnss@vendor.xml
@@ -0,0 +1,7 @@
+
+
+ android.hardware.gnss
+ 3
+ IGnss/vendor
+
+
diff --git a/location/gnssd/device_framework_matrix_product.xml b/location/gnssd/device_framework_matrix_product.xml
new file mode 100644
index 0000000..2c93444
--- /dev/null
+++ b/location/gnssd/device_framework_matrix_product.xml
@@ -0,0 +1,10 @@
+
+
+ android.hardware.gnss
+ 3
+
+ IGnss
+ vendor
+
+
+
diff --git a/location/gnssd/gnss_release.mk b/location/gnssd/gnss_release.mk
index 20afb47..78a61c8 100644
--- a/location/gnssd/gnss_release.mk
+++ b/location/gnssd/gnss_release.mk
@@ -1,5 +1,5 @@
-# only GPS libraries and binaries to the target directory
-GPS_ROOT := device/google/akita/location/gnssd
+# Enable pixel gnss hal service
+include device/google/akita/location/gnssd/pixel_gnss_hal.mk
PRODUCT_PACKAGES += \
gnssd \
@@ -7,17 +7,17 @@ PRODUCT_PACKAGES += \
android.hardware.location.gps.prebuilt.xml
PRODUCT_COPY_FILES += \
- $(GPS_ROOT)/release/ca.pem:vendor/etc/gnss/ca.pem \
+ device/google/akita/location/gnssd/release/ca.pem:vendor/etc/gnss/ca.pem
PRODUCT_SOONG_NAMESPACES += \
- $(GPS_ROOT)
+ device/google/akita/location/gnssd
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
- $(GPS_ROOT)/release/gps.cfg:vendor/etc/gnss/gps.cfg
+ device/google/akita/location/gnssd/release/gps.cfg:vendor/etc/gnss/gps.cfg
PRODUCT_VENDOR_PROPERTIES += \
vendor.gps.aol.enabled=true
else
PRODUCT_COPY_FILES += \
- $(GPS_ROOT)/release/gps_user.cfg:vendor/etc/gnss/gps.cfg
+ device/google/akita/location/gnssd/release/gps_user.cfg:vendor/etc/gnss/gps.cfg
endif
diff --git a/location/gnssd/pixel_gnss_hal.mk b/location/gnssd/pixel_gnss_hal.mk
new file mode 100644
index 0000000..6a36473
--- /dev/null
+++ b/location/gnssd/pixel_gnss_hal.mk
@@ -0,0 +1,12 @@
+# Enable aidl service
+$(call soong_config_set, pixel_gnss, enable_pixel_gnss_aidl_service, true)
+
+PRODUCT_PACKAGES += \
+ android.hardware.gnss-service.pixel
+
+PRODUCT_VENDOR_PROPERTIES += \
+ persist.vendor.gps.hal.service.name=vendor
+
+# Compatibility matrix
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += \
+ device/google/akita/location/gnssd/device_framework_matrix_product.xml