summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorYingjie Wang <yingjiewang@codeaurora.org>2018-12-21 17:56:30 +0800
committerYingjie Wang <yingjiewang@codeaurora.org>2019-01-16 13:27:33 +0800
commit877b2e40c3c062435142b135994cc149fe7e2c4c (patch)
treec41afa38ce4b6f8d19fa1e010dc004558320dbda /android
parent400c1e8b5748ae2ad360aa558ad3552ce4e0227c (diff)
downloadgps-877b2e40c3c062435142b135994cc149fe7e2c4c.tar.gz
Build dummy QMAA HAL to unblock framework
Build dummy QMAA HAL to unblock framework when BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE flag is not defined. Change-Id: I62f71d7964e916619f0157e69a57cd83a62bba54 CRs-Fixed: 2378795
Diffstat (limited to 'android')
-rw-r--r--android/Android.mk5
-rw-r--r--android/dummy/Android.mk63
-rw-r--r--android/dummy/GnssDummy.cpp115
-rw-r--r--android/dummy/GnssDummy.h96
-rw-r--r--android/dummy/android.hardware.gnss@1.0-service-qti.rc4
-rw-r--r--android/dummy/serviceDummy.cpp32
6 files changed, 313 insertions, 2 deletions
diff --git a/android/Android.mk b/android/Android.mk
index 11d5889..bff117e 100644
--- a/android/Android.mk
+++ b/android/Android.mk
@@ -1,9 +1,10 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
LOCAL_PATH := $(call my-dir)
+ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
ifeq ($(GNSS_HIDL_VERSION),1.1)
include $(LOCAL_PATH)/1.1/Android.mk
else
include $(LOCAL_PATH)/1.0/Android.mk
endif
-
+else #QMAA flag set, build dummy android.hardware.gnss@1.0-impl-qti
+include $(LOCAL_PATH)/dummy/Android.mk
endif #BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/android/dummy/Android.mk b/android/dummy/Android.mk
new file mode 100644
index 0000000..d438888
--- /dev/null
+++ b/android/dummy/Android.mk
@@ -0,0 +1,63 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+#build dummy android.hardware.gnss@1.0-impl-qti
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.gnss@1.0-impl-qti
+LOCAL_VENDOR_MODULE := true
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_SRC_FILES := GnssDummy.cpp
+
+LOCAL_SHARED_LIBRARIES := \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libcutils \
+ libutils \
+ android.hardware.gnss@1.0 \
+
+LOCAL_CFLAGS += $(GNSS_CFLAGS)
+include $(BUILD_SHARED_LIBRARY)
+
+BUILD_GNSS_HIDL_SERVICE := true
+ifneq ($(BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET), true)
+ifneq ($(LW_FEATURE_SET),true)
+#BUILD_GNSS_HIDL_SERVICE := false
+endif # LW_FEATURE_SET
+endif # BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET
+
+ifeq ($(BUILD_GNSS_HIDL_SERVICE), true)
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.gnss@1.0-service-qti
+LOCAL_VENDOR_MODULE := true
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_INIT_RC := android.hardware.gnss@1.0-service-qti.rc
+LOCAL_SRC_FILES := \
+ serviceDummy.cpp \
+
+#LOCAL_C_INCLUDES:= \
+ $(LOCAL_PATH)/location_api
+#LOCAL_HEADER_LIBRARIES := \
+ libgps.utils_headers \
+ libloc_core_headers \
+ libloc_pla_headers \
+ liblocation_api_headers
+
+
+LOCAL_SHARED_LIBRARIES := \
+ liblog \
+ libcutils \
+ libdl \
+ libbase \
+ libutils \
+
+LOCAL_SHARED_LIBRARIES += \
+ libhwbinder \
+ libhidlbase \
+ libhidltransport \
+ android.hardware.gnss@1.0 \
+
+LOCAL_CFLAGS += $(GNSS_CFLAGS)
+include $(BUILD_EXECUTABLE)
+endif # BUILD_GNSS_HIDL_SERVICE
diff --git a/android/dummy/GnssDummy.cpp b/android/dummy/GnssDummy.cpp
new file mode 100644
index 0000000..b30b437
--- /dev/null
+++ b/android/dummy/GnssDummy.cpp
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ */
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "GnssDummy.h"
+
+namespace android {
+namespace hardware {
+namespace gnss {
+namespace V1_0 {
+namespace implementation {
+
+Gnss::Gnss() {
+}
+
+Gnss::~Gnss() {
+}
+
+Return<bool> Gnss::setCallback(const sp<V1_0::IGnssCallback>& /*callback*/) {
+ return false;
+}
+
+Return<bool> Gnss::start() {
+ return false;
+}
+
+Return<bool> Gnss::stop() {
+ return false;
+}
+
+Return<void> Gnss::cleanup() {
+ return Void();
+}
+
+Return<bool> Gnss::injectLocation(double /*latitudeDegrees*/,
+ double /*longitudeDegrees*/,
+ float /*accuracyMeters*/) {
+ return false;
+}
+
+Return<bool> Gnss::injectTime(int64_t /*timeMs*/, int64_t /*timeReferenceMs*/,
+ int32_t /*uncertaintyMs*/) {
+ return false;
+}
+
+Return<void> Gnss::deleteAidingData(V1_0::IGnss::GnssAidingData /*aidingDataFlags*/) {
+ return Void();
+}
+
+Return<bool> Gnss::setPositionMode(V1_0::IGnss::GnssPositionMode /*mode*/,
+ V1_0::IGnss::GnssPositionRecurrence /*recurrence*/,
+ uint32_t /*minIntervalMs*/,
+ uint32_t /*preferredAccuracyMeters*/,
+ uint32_t /*preferredTimeMs*/) {
+ return false;
+}
+
+Return<sp<V1_0::IAGnss>> Gnss::getExtensionAGnss() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssNi>> Gnss::getExtensionGnssNi() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssConfiguration>> Gnss::getExtensionGnssConfiguration() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssGeofencing>> Gnss::getExtensionGnssGeofencing() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssBatching>> Gnss::getExtensionGnssBatching() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IGnssDebug>> Gnss::getExtensionGnssDebug() {
+ return nullptr;
+}
+
+Return<sp<V1_0::IAGnssRil>> Gnss::getExtensionAGnssRil() {
+ return nullptr;
+}
+
+IGnss* HIDL_FETCH_IGnss(const char* /*hal*/) {
+ IGnss* iface = nullptr;
+ iface = new Gnss();
+ return iface;
+}
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace gnss
+} // namespace hardware
+} // namespace android
diff --git a/android/dummy/GnssDummy.h b/android/dummy/GnssDummy.h
new file mode 100644
index 0000000..89c876f
--- /dev/null
+++ b/android/dummy/GnssDummy.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ */
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "LocSvc_GnssInterface"
+
+#include <fstream>
+#include <dlfcn.h>
+#include <cutils/properties.h>
+
+#include <android/hardware/gnss/1.0/IGnss.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+namespace android {
+namespace hardware {
+namespace gnss {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::hidl_array;
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::sp;
+using ::android::hardware::gnss::V1_0::GnssLocation;
+
+struct Gnss : public IGnss {
+ Gnss();
+ ~Gnss();
+
+ /*
+ * Methods from ::android::hardware::gnss::V1_0::IGnss follow.
+ * These declarations were generated from Gnss.hal.
+ */
+ Return<bool> setCallback(const sp<V1_0::IGnssCallback>& callback) override;
+ Return<bool> start() override;
+ Return<bool> stop() override;
+ Return<void> cleanup() override;
+ Return<bool> injectLocation(double latitudeDegrees,
+ double longitudeDegrees,
+ float accuracyMeters) override;
+ Return<bool> injectTime(int64_t timeMs,
+ int64_t timeReferenceMs,
+ int32_t uncertaintyMs) override;
+ Return<void> deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) override;
+ Return<bool> setPositionMode(V1_0::IGnss::GnssPositionMode mode,
+ V1_0::IGnss::GnssPositionRecurrence recurrence,
+ uint32_t minIntervalMs,
+ uint32_t preferredAccuracyMeters,
+ uint32_t preferredTimeMs) override;
+ Return<sp<V1_0::IAGnss>> getExtensionAGnss() override;
+ Return<sp<V1_0::IGnssNi>> getExtensionGnssNi() override;
+ Return<sp<V1_0::IGnssMeasurement>> getExtensionGnssMeasurement() override;
+ Return<sp<V1_0::IGnssConfiguration>> getExtensionGnssConfiguration() override;
+ Return<sp<V1_0::IGnssGeofencing>> getExtensionGnssGeofencing() override;
+ Return<sp<V1_0::IGnssBatching>> getExtensionGnssBatching() override;
+
+ Return<sp<V1_0::IAGnssRil>> getExtensionAGnssRil() override;
+
+ inline Return<sp<V1_0::IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override {
+ return nullptr;
+ }
+
+ inline Return<sp<V1_0::IGnssXtra>> getExtensionXtra() override {
+ return nullptr;
+ }
+
+ Return<sp<V1_0::IGnssDebug>> getExtensionGnssDebug() override;
+};
+
+extern "C" IGnss* HIDL_FETCH_IGnss(const char* name);
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace gnss
+} // namespace hardware
+} // namespace android
+
diff --git a/android/dummy/android.hardware.gnss@1.0-service-qti.rc b/android/dummy/android.hardware.gnss@1.0-service-qti.rc
new file mode 100644
index 0000000..b5da6f9
--- /dev/null
+++ b/android/dummy/android.hardware.gnss@1.0-service-qti.rc
@@ -0,0 +1,4 @@
+service gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service-qti
+ class hal
+ user gps
+ group system gps radio
diff --git a/android/dummy/serviceDummy.cpp b/android/dummy/serviceDummy.cpp
new file mode 100644
index 0000000..10ce60b
--- /dev/null
+++ b/android/dummy/serviceDummy.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ */
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "android.hardware.gnss@1.0-service-qti"
+
+#include <android/hardware/gnss/1.0/IGnss.h>
+#include <hidl/LegacySupport.h>
+
+using android::hardware::gnss::V1_0::IGnss;
+using android::hardware::defaultPassthroughServiceImplementation;
+
+int main() {
+ ALOGI("%s", __FUNCTION__);
+ return defaultPassthroughServiceImplementation<IGnss>();
+}