diff --git a/Android.bp b/Android.bp
index f6ccb09..4a99792 100644
--- a/Android.bp
+++ b/Android.bp
@@ -3,6 +3,40 @@
 // SPDX-License-Identifier: MIT
 //
 
+bootstrap_go_package {
+    name: "armnn_nn_driver",
+    pkgPath: "android-nn-driver",
+    deps: [
+        "blueprint",
+        "blueprint-pathtools",
+        "blueprint-proptools",
+        "soong",
+        "soong-android",
+        "soong-cc",
+    ],
+    srcs: [
+        "androidnn.go",
+    ],
+    pluginFor: [ "soong_build" ],
+}
+
+armnn_nn_driver_defaults {
+       name: "armnn-nn-driver-default-cppflags",
+       cppflags: [
+            "-std=c++14",
+            "-fexceptions",
+            "-DBOOST_NO_AUTO_PTR",
+            "-DEMBEDDED_KERNELS",
+            "-DARM_COMPUTE_ASSERTS_ENABLED",
+            "-DARM_COMPUTE_CPP_SCHEDULER",
+            "-Wno-unused-parameter",
+            "-DNO_DOT_IN_TOOLCHAIN",
+
+            "-no-integrated-as"
+    ],
+    rtti: true,
+}
+
 ////////////////////////////////////////////
 //                                        //
 //              Arm Compute               //
@@ -10,6 +44,7 @@
 ////////////////////////////////////////////
 cc_library_static {
     name: "armnn-arm_compute",
+    defaults: ["armnn-nn-driver-default-cppflags"],
     proprietary: true,
     local_include_dirs: ["clframework/build/android-arm64v8a/src/core",
                          "clframework/build/android-arm64v8a/src/core/CL",
@@ -698,16 +733,6 @@
             ],
         },
     },
-    cppflags: [
-        "-std=c++14",
-        "-fexceptions",
-        "-DEMBEDDED_KERNELS",
-        "-DARM_COMPUTE_ASSERTS_ENABLED",
-        "-DARM_COMPUTE_CPP_SCHEDULER",
-        "-Wno-unused-parameter",
-        "-DNO_DOT_IN_TOOLCHAIN",
-        "-no-integrated-as"
-    ],
     rtti: true,
 }
 
@@ -724,6 +749,10 @@
         "-O3",
         "-fexceptions",
         "-Wno-unused-parameter",
+        "-DBOOST_NO_AUTO_PTR"
+    ],
+    cppflags: [
+        "-std=c++14"
     ],
     rtti: true,
 }
diff --git a/Android.mk b/Android.mk
index 3d23ecc..8d2fe9f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,6 +6,25 @@
 ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
 LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
 
+P_OR_LATER := 0
+Q_OR_LATER := 0
+
+ifeq ($(PLATFORM_VERSION),9)
+P_OR_LATER := 1
+endif # PLATFORM_VERSION == 9
+ifeq ($(PLATFORM_VERSION),P)
+P_OR_LATER := 1
+endif # PLATFORM_VERSION == P
+
+ifeq ($(PLATFORM_VERSION),10)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+endif # PLATFORM_VERSION == 10
+ifeq ($(PLATFORM_VERSION),Q)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+endif # PLATFORM_VERSION == Q
+
 # Configure these paths if you move the source or Khronos headers
 ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
 ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
@@ -17,13 +36,26 @@
 ARMNN_COMPUTE_CL_ENABLED := 1
 ARMNN_COMPUTE_NEON_ENABLED := 1
 
+ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
+ARMNN_COMPUTE_CL_ENABLED := 0
+endif
+
+ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
+ARMNN_COMPUTE_NEON_ENABLED := 0
+endif
+
 #######################
 # libarmnn-driver@1.0 #
 #######################
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := libarmnn-driver@1.0
+ifeq ($(Q_OR_LATER),1)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -40,20 +72,24 @@
         -fexceptions \
         -Werror \
         -Wno-format-security
-ifeq ($(PLATFORM_VERSION),9)
+
+ifeq ($(P_OR_LATER),1)
 # Required to build with the changes made to the Android ML framework starting from Android P,
 # regardless of the HAL version used for the build.
 LOCAL_CFLAGS+= \
         -DARMNN_ANDROID_P
 endif # PLATFORM_VERSION == 9
+
 ifeq ($(ARMNN_DRIVER_DEBUG),1)
 LOCAL_CFLAGS+= \
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
+
 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
 LOCAL_CFLAGS += \
         -DARMCOMPUTECL_ENABLED
 endif # ARMNN_COMPUTE_CL_ENABLED == 1
+
 ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
 LOCAL_CFLAGS += \
         -DARMCOMPUTENEON_ENABLED
@@ -90,18 +126,32 @@
         libutils \
         android.hardware.neuralnetworks@1.0 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
-        libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+        android.hidl.memory@1.0
+
+ifeq ($(P_OR_LATER),1)
 # Required to build the 1.0 version of the NN Driver on Android P and later versions,
 # as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
 LOCAL_SHARED_LIBRARIES+= \
         android.hardware.neuralnetworks@1.1
 endif # PLATFORM_VERSION == 9
 
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
+
 include $(BUILD_STATIC_LIBRARY)
 
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
 # The following target is available starting from Android P
 
 #######################
@@ -110,7 +160,13 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := libarmnn-driver@1.1
+ifeq ($(Q_OR_LATER),1)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
+#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -129,14 +185,17 @@
         -Wno-format-security \
         -DARMNN_ANDROID_P \
         -DARMNN_ANDROID_NN_V1_1
+
 ifeq ($(ARMNN_DRIVER_DEBUG),1)
 LOCAL_CFLAGS+= \
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
+
 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
 LOCAL_CFLAGS += \
         -DARMCOMPUTECL_ENABLED
 endif # ARMNN_COMPUTE_CL_ENABLED == 1
+
 ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
 LOCAL_CFLAGS += \
         -DARMCOMPUTENEON_ENABLED
@@ -176,8 +235,21 @@
         android.hardware.neuralnetworks@1.0 \
         android.hardware.neuralnetworks@1.1 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
+        android.hidl.memory@1.0
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
         libOpenCL
+endif
 
 include $(BUILD_STATIC_LIBRARY)
 
@@ -190,7 +262,12 @@
 
 LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
 LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
+ifeq ($(Q_OR_LATER),1)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
 LOCAL_ARM_MODE := arm
 LOCAL_MODULE_RELATIVE_PATH := hw
 LOCAL_PROPRIETARY_MODULE := true
@@ -235,18 +312,31 @@
         libutils \
         android.hardware.neuralnetworks@1.0 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
-        libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+        android.hidl.memory@1.0
+
+ifeq ($(P_OR_LATER),1)
 # Required to build the 1.0 version of the NN Driver on Android P and later versions,
 # as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
 LOCAL_SHARED_LIBRARIES+= \
         android.hardware.neuralnetworks@1.1
 endif # PLATFORM_VERSION == 9
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
 
 include $(BUILD_EXECUTABLE)
 
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
 # The following target is available starting from Android P
 
 #####################################################
@@ -256,7 +346,12 @@
 
 LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
 LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
+ifeq ($(Q_OR_LATER),1)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
 LOCAL_ARM_MODE := arm
 LOCAL_MODULE_RELATIVE_PATH := hw
 LOCAL_PROPRIETARY_MODULE := true
@@ -303,8 +398,21 @@
         android.hardware.neuralnetworks@1.0 \
         android.hardware.neuralnetworks@1.1 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
+        android.hidl.memory@1.0
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
         libOpenCL
+endif
 
 include $(BUILD_EXECUTABLE)
 
diff --git a/ArmnnDevice.cpp b/ArmnnDevice.cpp
index c96798a..a03d9cc 100644
--- a/ArmnnDevice.cpp
+++ b/ArmnnDevice.cpp
@@ -51,10 +51,11 @@
         SetMinimumLogSeverity(base::INFO);
     }
 
+    armnn::IRuntime::CreationOptions runtimeOptions;
+
 #if defined(ARMCOMPUTECL_ENABLED)
     try
     {
-        armnn::IRuntime::CreationOptions options;
         if (!m_Options.GetClTunedParametersFile().empty())
         {
             m_ClTunedParameters = armnn::IGpuAccTunedParameters::Create(m_Options.GetClTunedParametersMode(),
@@ -69,18 +70,17 @@
                 ALOGW("ArmnnDevice: Failed to load CL tuned parameters file '%s': %s",
                       m_Options.GetClTunedParametersFile().c_str(), error.what());
             }
-            options.m_GpuAccTunedParameters = m_ClTunedParameters;
+            runtimeOptions.m_GpuAccTunedParameters = m_ClTunedParameters;
         }
-
-        options.m_EnableGpuProfiling = m_Options.IsGpuProfilingEnabled();
-
-        m_Runtime = armnn::IRuntime::Create(options);
     }
     catch (const armnn::ClRuntimeUnavailableException& error)
     {
         ALOGE("ArmnnDevice: Failed to setup CL runtime: %s. Device will be unavailable.", error.what());
     }
 #endif
+    runtimeOptions.m_EnableGpuProfiling = m_Options.IsGpuProfilingEnabled();
+    m_Runtime = armnn::IRuntime::Create(runtimeOptions);
+
     std::vector<armnn::BackendId> backends;
 
     if (m_Runtime)
diff --git a/Utils.hpp b/Utils.hpp
index e55d8f8..42fef3f 100644
--- a/Utils.hpp
+++ b/Utils.hpp
@@ -29,12 +29,12 @@
 class UnsupportedOperand: public std::runtime_error
 {
 public:
-    UnsupportedOperand(const OperandType type)
+    UnsupportedOperand(const V1_0::OperandType type)
         : std::runtime_error("Operand type is unsupported")
         , m_type(type)
     {}
 
-    OperandType m_type;
+    V1_0::OperandType m_type;
 };
 
 /// Swizzles tensor data in @a input according to the dimension mappings.
diff --git a/androidnn.go b/androidnn.go
new file mode 100644
index 0000000..aa83b1a
--- /dev/null
+++ b/androidnn.go
@@ -0,0 +1,44 @@
+//
+// Copyright © 2017 ARM Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+package armnn_nn_driver
+
+import (
+    "android/soong/android"
+    "android/soong/cc"
+)
+
+func globalFlags(ctx android.BaseContext) []string {
+    var cppflags []string
+
+    if ctx.AConfig().PlatformVersionName() == "Q"  {
+        cppflags = append(cppflags, "-fno-addrsig")
+    }
+
+    return cppflags
+}
+
+func armnnNNDriverDefaults(ctx android.LoadHookContext) {
+        type props struct {
+                Cppflags []string
+        }
+
+        p := &props{}
+        p.Cppflags = globalFlags(ctx)
+
+        ctx.AppendProperties(p)
+}
+
+func init() {
+
+  android.RegisterModuleType("armnn_nn_driver_defaults", armnnNNDriverDefaultsFactory)
+}
+
+func armnnNNDriverDefaultsFactory() android.Module {
+
+   module := cc.DefaultsFactory()
+   android.AddLoadHook(module, armnnNNDriverDefaults)
+   return module
+}
diff --git a/test/1.1/Mean.cpp b/test/1.1/Mean.cpp
index 4ebb8cf..7d48243 100644
--- a/test/1.1/Mean.cpp
+++ b/test/1.1/Mean.cpp
@@ -32,7 +32,7 @@
 
     V1_1::Model model = {};
     AddInputOperand (model, input.GetDimensions());
-    AddTensorOperand(model, axisDimensions, const_cast<int32_t*>(axisValues), OperandType::TENSOR_INT32);
+    AddTensorOperand(model, axisDimensions, const_cast<int32_t*>(axisValues), V1_0::OperandType::TENSOR_INT32);
     AddIntOperand   (model, keepDims);
     AddOutputOperand(model, expectedOutput.GetDimensions());
 
@@ -42,7 +42,7 @@
     model.operations[0].outputs            = hidl_vec<uint32_t>{ 3 };
     model.relaxComputationFloat32toFloat16 = fp16Enabled;
 
-    android::sp<IPreparedModel> preparedModel = PrepareModel(model, *driver);
+    android::sp<V1_0::IPreparedModel> preparedModel = PrepareModel(model, *driver);
 
     // The request's memory pools will follow the same order as the inputs
     DataLocation inLoc    = {};
diff --git a/test/1.1/Transpose.cpp b/test/1.1/Transpose.cpp
index a052143..6dc3e0e 100644
--- a/test/1.1/Transpose.cpp
+++ b/test/1.1/Transpose.cpp
@@ -30,7 +30,7 @@
     V1_1::Model model = {};
 
     AddInputOperand(model,inputs.GetDimensions());
-    AddTensorOperand(model, hidl_vec<uint32_t>{4}, perm, OperandType::TENSOR_INT32);
+    AddTensorOperand(model, hidl_vec<uint32_t>{4}, perm, V1_0::OperandType::TENSOR_INT32);
     AddOutputOperand(model, expectedOutputTensor.GetDimensions());
 
     model.operations.resize(1);
@@ -38,7 +38,7 @@
     model.operations[0].inputs  = hidl_vec<uint32_t>{0, 1};
     model.operations[0].outputs = hidl_vec<uint32_t>{2};
 
-    android::sp<IPreparedModel> preparedModel = PrepareModel(model, *driver);
+    android::sp<V1_0::IPreparedModel> preparedModel = PrepareModel(model, *driver);
 
     // the request's memory pools will follow the same order as
     // the inputs
diff --git a/test/Android.mk b/test/Android.mk
index 87f0b63..820cfd6 100644
--- a/test/Android.mk
+++ b/test/Android.mk
@@ -18,7 +18,12 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := armnn-driver-tests@1.0
+ifeq ($(PLATFORM_VERSION),Q)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -36,7 +41,8 @@
         -Werror \
         -O0 \
         -UNDEBUG
-ifeq ($(PLATFORM_VERSION),9)
+
+ifeq ($(P_OR_LATER),1)
 # Required to build with the changes made to the Android ML framework starting from Android P,
 # regardless of the HAL version used for the build.
 LOCAL_CFLAGS+= \
@@ -78,18 +84,32 @@
         libutils \
         android.hardware.neuralnetworks@1.0 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
-        libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+        android.hidl.memory@1.0
+
+ifeq ($(P_OR_LATER),1)
 # Required to build the 1.0 version of the NN Driver on Android P and later versions,
 # as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
 LOCAL_SHARED_LIBRARIES+= \
         android.hardware.neuralnetworks@1.1
 endif # PLATFORM_VERSION == 9
 
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
+
 include $(BUILD_EXECUTABLE)
 
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
 # The following target is available starting from Android P
 
 ##########################
@@ -98,7 +118,13 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := armnn-driver-tests@1.1
+ifeq ($(PLATFORM_VERSION),Q)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
+#PRODUCT_PACKAGES_ENG := libarmnn
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -157,8 +183,21 @@
         android.hardware.neuralnetworks@1.0 \
         android.hardware.neuralnetworks@1.1 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
+        android.hidl.memory@1.0
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
         libOpenCL
+endif
 
 include $(BUILD_EXECUTABLE)
 
