diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..ba3d0c1
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,102 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifneq ($(USE_CUSTOM_PARAMETER_FRAMEWORK), true)
+
+#
+# Do not allow to use the networking feature through socket (debug purpose of the PFW)
+# for user build.
+#
+ifeq ($(TARGET_BUILD_VARIANT),user)
+PFW_NETWORKING := false
+endif
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+include $(LOCAL_PATH)/LibPfwUtility.mk
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+include $(LOCAL_PATH)/LibPfwUtility.mk
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+include $(LOCAL_PATH)/LibRemoteProcessor.mk
+include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+include $(LOCAL_PATH)/LibRemoteProcessor.mk
+LOCAL_LDLIBS += -lpthread
+include $(BUILD_HOST_SHARED_LIBRARY)
+
+# build libparameter
+include $(CLEAR_VARS)
+include $(LOCAL_PATH)/LibParameter.mk
+LOCAL_SHARED_LIBRARIES += libicuuc libdl
+include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+include $(LOCAL_PATH)/LibParameter.mk
+LOCAL_SHARED_LIBRARIES += libicuuc-host
+LOCAL_LDLIBS := -ldl
+include $(BUILD_HOST_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+include $(LOCAL_PATH)/TestPlatform.mk
+include $(BUILD_EXECUTABLE)
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+include $(LOCAL_PATH)/TestPlatform.mk
+LOCAL_LDLIBS := -lpthread
+include $(BUILD_HOST_EXECUTABLE)
+
+ifneq ($(PFW_NETWORKING),false)
+
+include $(CLEAR_VARS)
+include $(LOCAL_PATH)/RemoteProcess.mk
+include $(BUILD_EXECUTABLE)
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+include $(LOCAL_PATH)/RemoteProcess.mk
+include $(BUILD_HOST_EXECUTABLE)
+
+endif #ifneq ($(PFW_NETWORKING),false)
+
+include $(LOCAL_PATH)/XmlGenerator.mk
+include $(LOCAL_PATH)/Schemas.mk
+
+# Clear variables for further use
+PFW_NETWORKING :=
+
+endif #ifneq ($(USE_CUSTOM_PARAMETER_FRAMEWORK), true)
diff --git a/COPYING.txt b/COPYING.txt
new file mode 100644
index 0000000..b31b082
--- /dev/null
+++ b/COPYING.txt
@@ -0,0 +1,30 @@
+parameter-framework and associated libraries and tools are licensed under the
+3-Clause BSD license:
+
+Copyright (c) 2016 Intel Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+may be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/LibParameter.mk b/LibParameter.mk
new file mode 100644
index 0000000..d773321
--- /dev/null
+++ b/LibParameter.mk
@@ -0,0 +1,157 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+SUFFIX := _host
+else
+SUFFIX :=
+endif
+
+LOCAL_MODULE := libparameter$(SUFFIX)
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_SRC_FILES := \
+    upstream/parameter/ParameterMgrPlatformConnector.cpp \
+    upstream/parameter/LoggingElementBuilderTemplate.cpp \
+    upstream/parameter/StringParameterType.cpp \
+    upstream/parameter/SyncerSet.cpp \
+    upstream/parameter/BitParameter.cpp \
+    upstream/parameter/BaseParameter.cpp \
+    upstream/parameter/ParameterBlockType.cpp \
+    upstream/parameter/FloatingPointParameterType.cpp \
+    upstream/parameter/SelectionCriteriaDefinition.cpp \
+    upstream/parameter/EnumValuePair.cpp \
+    upstream/parameter/SelectionCriteria.cpp \
+    upstream/parameter/SelectionCriterionRule.cpp \
+    upstream/parameter/AreaConfiguration.cpp \
+    upstream/parameter/BitParameterBlockType.cpp \
+    upstream/parameter/ConfigurationAccessContext.cpp \
+    upstream/parameter/BitwiseAreaConfiguration.cpp \
+    upstream/parameter/ArrayParameter.cpp \
+    upstream/parameter/ParameterBlackboard.cpp \
+    upstream/parameter/InstanceConfigurableElement.cpp \
+    upstream/parameter/LogarithmicParameterAdaptation.cpp \
+    upstream/parameter/ConfigurableDomain.cpp \
+    upstream/parameter/FormattedSubsystemObject.cpp \
+    upstream/parameter/MappingData.cpp \
+    upstream/parameter/SubsystemElementBuilder.cpp \
+    upstream/parameter/BooleanParameterType.cpp \
+    upstream/parameter/FixedPointParameterType.cpp \
+    upstream/parameter/ComponentType.cpp \
+    upstream/parameter/EnumParameterType.cpp \
+    upstream/parameter/RuleParser.cpp \
+    upstream/parameter/VirtualSubsystem.cpp \
+    upstream/parameter/Element.cpp \
+    upstream/parameter/ParameterFrameworkConfiguration.cpp \
+    upstream/parameter/SelectionCriterionLibrary.cpp \
+    upstream/parameter/StringParameter.cpp \
+    upstream/parameter/CompoundRule.cpp \
+    upstream/parameter/ConfigurableDomains.cpp \
+    upstream/parameter/VirtualSyncer.cpp \
+    upstream/parameter/MappingContext.cpp \
+    upstream/parameter/LinearParameterAdaptation.cpp \
+    upstream/parameter/ComponentLibrary.cpp \
+    upstream/parameter/BitParameterBlock.cpp \
+    upstream/parameter/ParameterMgrFullConnector.cpp \
+    upstream/parameter/ConfigurableElement.cpp \
+    upstream/parameter/ConfigurableElementAggregator.cpp \
+    upstream/parameter/SubsystemObject.cpp \
+    upstream/parameter/TypeElement.cpp \
+    upstream/parameter/PathNavigator.cpp \
+    upstream/parameter/ElementLocator.cpp \
+    upstream/parameter/SimulatedBackSynchronizer.cpp \
+    upstream/parameter/Parameter.cpp \
+    upstream/parameter/ComponentInstance.cpp \
+    upstream/parameter/InstanceDefinition.cpp \
+    upstream/parameter/SubsystemObjectCreator.cpp \
+    upstream/parameter/ParameterType.cpp \
+    upstream/parameter/DomainConfiguration.cpp \
+    upstream/parameter/PluginLocation.cpp \
+    upstream/parameter/HardwareBackSynchronizer.cpp \
+    upstream/parameter/SystemClass.cpp \
+    upstream/parameter/ElementLibrary.cpp \
+    upstream/parameter/ParameterAccessContext.cpp \
+    upstream/parameter/XmlParameterSerializingContext.cpp \
+    upstream/parameter/ElementHandle.cpp \
+    upstream/parameter/ParameterMgr.cpp \
+    upstream/parameter/SelectionCriterionType.cpp \
+    upstream/parameter/Subsystem.cpp \
+    upstream/parameter/IntegerParameterType.cpp \
+    upstream/parameter/BitParameterType.cpp \
+    upstream/parameter/SelectionCriterion.cpp \
+    upstream/parameter/XmlElementSerializingContext.cpp \
+    upstream/parameter/ElementLibrarySet.cpp \
+    upstream/parameter/FrameworkConfigurationLocation.cpp \
+    upstream/parameter/ParameterAdaptation.cpp \
+    upstream/parameter/XmlFileIncluderElement.cpp \
+    upstream/xmlserializer/XmlElement.cpp \
+    upstream/xmlserializer/XmlSerializingContext.cpp \
+    upstream/xmlserializer/XmlMemoryDocSource.cpp \
+    upstream/xmlserializer/XmlDocSource.cpp \
+    upstream/xmlserializer/XmlMemoryDocSink.cpp \
+    upstream/xmlserializer/XmlStreamDocSink.cpp \
+    upstream/parameter/CommandHandlerWrapper.cpp
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+    $(LOCAL_PATH)/upstream/parameter/ \
+    $(LOCAL_PATH)/upstream/parameter/log/include \
+    $(LOCAL_PATH)/upstream/parameter/include \
+    $(LOCAL_PATH)/upstream/xmlserializer/ \
+    $(LOCAL_PATH)/upstream/remote-processor/ \
+    $(LOCAL_PATH)/support/android/parameter/
+
+common_copy_headers_to := parameter
+common_copy_headers := \
+    upstream/parameter/include/ParameterMgrLoggerForward.h \
+    upstream/parameter/include/ParameterMgrPlatformConnector.h \
+    upstream/parameter/include/ParameterMgrFullConnector.h \
+    upstream/parameter/include/SelectionCriterionTypeInterface.h \
+    upstream/parameter/include/SelectionCriterionInterface.h \
+    upstream/parameter/include/ParameterHandle.h \
+    support/android/parameter/parameter_export.h \
+    upstream/parameter/include/ElementHandle.h
+
+LOCAL_C_INCLUDES := $(LOCAL_EXPORT_C_INCLUDE_DIRS)
+
+LOCAL_COPY_HEADERS_TO := $(common_copy_headers_to)
+LOCAL_COPY_HEADERS := $(common_copy_headers)
+
+LOCAL_C_INCLUDES := $(LOCAL_EXPORT_C_INCLUDE_DIRS)
+
+LOCAL_SHARED_LIBRARIES := libremote-processor$(SUFFIX)
+LOCAL_C_INCLUDES += \
+    external/libxml2/include \
+    external/icu/icu4c/source/common
+
+LOCAL_CFLAGS := -frtti -isystem
+LOCAL_CPPFLAGS += -fexceptions
+
+LOCAL_STATIC_LIBRARIES := \
+    libpfw_utility$(SUFFIX) \
+    libxml2
+
+LOCAL_CLANG := true
diff --git a/LibPfwUtility.mk b/LibPfwUtility.mk
new file mode 100644
index 0000000..25d4155
--- /dev/null
+++ b/LibPfwUtility.mk
@@ -0,0 +1,55 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+SUFFIX := _host
+else
+SUFFIX :=
+endif
+
+LOCAL_MODULE := libpfw_utility$(SUFFIX)
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_SRC_FILES := \
+    upstream/utility/DynamicLibrary.cpp \
+    upstream/utility/posix/DynamicLibrary.cpp \
+    upstream/utility/Tokenizer.cpp \
+    upstream/utility/Utility.cpp \
+
+target_copy_headers := \
+    upstream/utility/NonCopyable.hpp \
+    upstream/utility/ErrorContext.hpp \
+    upstream/utility/Utility.h \
+    upstream/utility/convert.hpp \
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/upstream/utility/
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/upstream/utility/
+LOCAL_CFLAGS += -frtti -fexceptions
+
+LOCAL_COPY_HEADERS := $(target_copy_headers)
+
+LOCAL_CLANG := true
diff --git a/LibRemoteProcessor.mk b/LibRemoteProcessor.mk
new file mode 100644
index 0000000..0b033e7
--- /dev/null
+++ b/LibRemoteProcessor.mk
@@ -0,0 +1,70 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+SUFFIX := _host
+else
+SUFFIX :=
+endif
+
+LOCAL_MODULE := libremote-processor$(SUFFIX)
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_SRC_FILES := \
+    upstream/remote-processor/RequestMessage.cpp \
+    upstream/remote-processor/Message.cpp \
+    upstream/remote-processor/AnswerMessage.cpp \
+    upstream/remote-processor/RemoteProcessorServer.cpp \
+    upstream/remote-processor/BackgroundRemoteProcessorServer.cpp
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+    $(LOCAL_PATH)/upstream/remote-processor/ \
+    $(LOCAL_PATH)/support/android/remote-processor/
+
+LOCAL_STATIC_LIBRARIES := libpfw_utility$(SUFFIX)
+LOCAL_CFLAGS := -frtti -isystem
+LOCAL_CPPFLAGS += -fexceptions
+
+LOCAL_C_INCLUDES := $(LOCAL_EXPORT_C_INCLUDE_DIRS)
+
+ifeq ($(PFW_NETWORKING),false)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream/asio/stub
+
+else
+
+LOCAL_C_INCLUDES += \
+    $(LOCAL_PATH)/asio/include \
+    $(LOCAL_PATH)/support/android/asio
+
+LOCAL_CFLAGS +=  \
+    -DASIO_STANDALONE -frtti \
+    -DASIO_DISABLE_STD_SYSTEM_ERROR -fexceptions
+
+endif #ifneq ($(PFW_NETWORKING),false)
+
+LOCAL_CLANG := true
\ No newline at end of file
diff --git a/MODULE_LICENSE_BSD b/MODULE_LICENSE_BSD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_BSD
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..9b9a7fa
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,56 @@
+parameter-framework and associated libraries and tools are licensed under the
+3-Clause BSD license:
+
+Copyright (c) 2016, Intel Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+may be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+================================================================================
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/RemoteProcess.mk b/RemoteProcess.mk
new file mode 100644
index 0000000..8dae0e4
--- /dev/null
+++ b/RemoteProcess.mk
@@ -0,0 +1,49 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+SUFFIX := _host
+else
+SUFFIX :=
+endif
+
+LOCAL_MODULE := remote_process$(SUFFIX)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_SRC_FILES := upstream/remote-process/main.cpp
+LOCAL_C_INCLUDES := \
+    $(LOCAL_PATH)/upstream/utility/ \
+    $(LOCAL_PATH)/support/android/asio
+
+LOCAL_CFLAGS := \
+    -DASIO_STANDALONE -frtti -isystem \
+    $(LOCAL_PATH)/asio/include -DASIO_DISABLE_STD_SYSTEM_ERROR \
+    -fexceptions
+
+LOCAL_SHARED_LIBRARIES := libremote-processor$(SUFFIX)
+
+LOCAL_CLANG := true
\ No newline at end of file
diff --git a/Schemas.mk b/Schemas.mk
new file mode 100644
index 0000000..04856c6
--- /dev/null
+++ b/Schemas.mk
@@ -0,0 +1,146 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Resources are not compiled so the prebuild mechanism is used to export them.
+# Schemas are only used by host, in order to validate xml files
+##################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ParameterFrameworkConfiguration.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ConfigurableDomain.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    ParameterSettings.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ConfigurableDomains.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    ConfigurableDomain.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := SystemClass.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    FileIncluder.xsd \
+    Subsystem.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ParameterSettings.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := FileIncluder.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Subsystem.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    ComponentLibrary.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ComponentLibrary.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    ComponentTypeSet.xsd \
+    W3cXmlAttributes.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ComponentTypeSet.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    Parameter.xsd \
+    W3cXmlAttributes.xsd
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := W3cXmlAttributes.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Parameter.xsd
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := upstream/schemas/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS = ETC
+LOCAL_MODULE_PATH := $(HOST_OUT)/etc/parameter-framework/Schemas
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+##################################################
diff --git a/TestPlatform.mk b/TestPlatform.mk
new file mode 100644
index 0000000..7a8dc5d
--- /dev/null
+++ b/TestPlatform.mk
@@ -0,0 +1,66 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+SUFFIX := _host
+else
+SUFFIX :=
+endif
+
+LOCAL_MODULE := test-platform$(SUFFIX)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_SRC_FILES := \
+    upstream/test/test-platform/main.cpp \
+    upstream/test/test-platform/TestPlatform.cpp
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/upstream/test/test-platform
+
+LOCAL_STATIC_LIBRARIES := libpfw_utility$(SUFFIX)
+LOCAL_SHARED_LIBRARIES := \
+    libparameter$(SUFFIX) \
+    libremote-processor$(SUFFIX)
+
+ifeq ($(PFW_NETWORKING),false)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream/asio/stub
+LOCAL_CFLAGS := -frtti -isystem
+LOCAL_CPPFLAGS += -fexceptions
+
+else
+
+LOCAL_C_INCLUDES += \
+    $(LOCAL_PATH)/asio/include \
+    $(LOCAL_PATH)/support/android/asio
+
+LOCAL_CFLAGS +=  \
+    -DASIO_STANDALONE -frtti -isystem \
+    -DASIO_DISABLE_STD_SYSTEM_ERROR -fexceptions
+
+endif #ifeq ($(PFW_NETWORKING),false)
+
+LOCAL_CLANG := true
\ No newline at end of file
diff --git a/XmlGenerator.mk b/XmlGenerator.mk
new file mode 100644
index 0000000..5bc2e4e
--- /dev/null
+++ b/XmlGenerator.mk
@@ -0,0 +1,114 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+##################################################
+# Scripts are not compiled so the prebuild mechanism is used to export them.
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := EddParser.py
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := PfwBaseTranslator.py
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := PFWScriptGenerator.py
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    PfwBaseTranslator.py \
+    EddParser.py
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := updateRoutageDomains.sh
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := hostConfig.py
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := domainGeneratorConnector
+LOCAL_MODULE_OWNER := intel
+LOCAL_STATIC_LIBRARIES := libpfw_utility_host
+LOCAL_SHARED_LIBRARIES := libparameter_host
+LOCAL_CFLAGS := -fexceptions
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/domainGeneratorConnector.cpp
+include $(BUILD_HOST_EXECUTABLE)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := domainGenerator.py
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+LOCAL_REQUIRED_MODULES := \
+    EddParser.py \
+    hostConfig.py \
+    PFWScriptGenerator.py \
+    domainGeneratorConnector
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := domainGenerator.sh
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := lightRoutingUpdate.sh
+LOCAL_MODULE_OWNER := intel
+LOCAL_SRC_FILES := ./upstream/tools/xmlGenerator/$(LOCAL_MODULE)
+LOCAL_REQUIRED_MODULES :=  \
+    PFWScriptGenerator.py
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+##################################################
diff --git a/support/android/build_pfw_settings.mk b/support/android/build_pfw_settings.mk
new file mode 100644
index 0000000..271afbc
--- /dev/null
+++ b/support/android/build_pfw_settings.mk
@@ -0,0 +1,59 @@
+# Copyright (c) 2016, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): MY_TOOL := $(HOST_OUT)/bin/domainGenerator.py
+$(LOCAL_BUILT_MODULE): MY_TOPLEVEL_FILE := $(PFW_TOPLEVEL_FILE)
+$(LOCAL_BUILT_MODULE): MY_CRITERIA_FILE := $(PFW_CRITERIA_FILE)
+$(LOCAL_BUILT_MODULE): MY_TUNING_FILE := $(PFW_TUNING_FILE)
+$(LOCAL_BUILT_MODULE): MY_EDD_FILES := $(PFW_EDD_FILES)
+$(LOCAL_BUILT_MODULE): MY_DOMAIN_FILES := $(PFW_DOMAIN_FILES)
+$(LOCAL_BUILT_MODULE): MY_SCHEMAS_DIR := $(PFW_SCHEMAS_DIR)
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES) $(HOST_OUT)/bin/domainGenerator.py
+	$(hide) mkdir -p "$(dir $@)"
+
+	"$(MY_TOOL)" --validate \
+		--toplevel-config "$(MY_TOPLEVEL_FILE)" \
+		--criteria "$(MY_CRITERIA_FILE)" \
+		--initial-settings $(MY_TUNING_FILE) \
+		--add-edds $(MY_EDD_FILES) \
+		--add-domains $(MY_DOMAIN_FILES) \
+		--schemas-dir $(MY_SCHEMAS_DIR) > "$@"
+
+# Clear variables for further use
+PFW_TOPLEVEL_FILE :=
+PFW_CRITERIA_FILE :=
+PFW_TUNING_FILE :=
+PFW_EDD_FILES :=
+PFW_DOMAIN_FILES :=
+PFW_SCHEMAS_DIR := $(PFW_DEFAULT_SCHEMAS_DIR)
diff --git a/support/android/parameter/parameter_export.h b/support/android/parameter/parameter_export.h
new file mode 100644
index 0000000..cb4a3c6
--- /dev/null
+++ b/support/android/parameter/parameter_export.h
@@ -0,0 +1,35 @@
+
+#ifndef PARAMETER_EXPORT_H
+#define PARAMETER_EXPORT_H
+
+#ifdef PARAMETER_STATIC_DEFINE
+#  define PARAMETER_EXPORT
+#  define PARAMETER_NO_EXPORT
+#else
+#  ifndef PARAMETER_EXPORT
+#    ifdef parameter_EXPORTS
+        /* We are building this library */
+#      define PARAMETER_EXPORT __attribute__((visibility("default")))
+#    else
+        /* We are using this library */
+#      define PARAMETER_EXPORT __attribute__((visibility("default")))
+#    endif
+#  endif
+
+#  ifndef PARAMETER_NO_EXPORT
+#    define PARAMETER_NO_EXPORT __attribute__((visibility("hidden")))
+#  endif
+#endif
+
+#ifndef PARAMETER_DEPRECATED
+#  define PARAMETER_DEPRECATED __attribute__ ((__deprecated__))
+#  define PARAMETER_DEPRECATED_EXPORT PARAMETER_EXPORT __attribute__ ((__deprecated__))
+#  define PARAMETER_DEPRECATED_NO_EXPORT PARAMETER_NO_EXPORT __attribute__ ((__deprecated__))
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define PARAMETER_NO_DEPRECATED
+#endif
+
+#endif
diff --git a/support/android/parameter/version.h b/support/android/parameter/version.h
new file mode 100644
index 0000000..7b0a43e
--- /dev/null
+++ b/support/android/parameter/version.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016, Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation and/or
+ * other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#define PARAMETER_FRAMEWORK_VERSION "v3.2.4"
diff --git a/support/android/remote-processor/remote_processor_export.h b/support/android/remote-processor/remote_processor_export.h
new file mode 100644
index 0000000..6612d9c
--- /dev/null
+++ b/support/android/remote-processor/remote_processor_export.h
@@ -0,0 +1,35 @@
+
+#ifndef REMOTE_PROCESSOR_EXPORT_H
+#define REMOTE_PROCESSOR_EXPORT_H
+
+#ifdef REMOTE_PROCESSOR_STATIC_DEFINE
+#  define REMOTE_PROCESSOR_EXPORT
+#  define REMOTE_PROCESSOR_NO_EXPORT
+#else
+#  ifndef REMOTE_PROCESSOR_EXPORT
+#    ifdef remote_processor_EXPORTS
+        /* We are building this library */
+#      define REMOTE_PROCESSOR_EXPORT __attribute__((visibility("default")))
+#    else
+        /* We are using this library */
+#      define REMOTE_PROCESSOR_EXPORT __attribute__((visibility("default")))
+#    endif
+#  endif
+
+#  ifndef REMOTE_PROCESSOR_NO_EXPORT
+#    define REMOTE_PROCESSOR_NO_EXPORT __attribute__((visibility("hidden")))
+#  endif
+#endif
+
+#ifndef REMOTE_PROCESSOR_DEPRECATED
+#  define REMOTE_PROCESSOR_DEPRECATED __attribute__ ((__deprecated__))
+#  define REMOTE_PROCESSOR_DEPRECATED_EXPORT REMOTE_PROCESSOR_EXPORT __attribute__ ((__deprecated__))
+#  define REMOTE_PROCESSOR_DEPRECATED_NO_EXPORT REMOTE_PROCESSOR_NO_EXPORT __attribute__ ((__deprecated__))
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define REMOTE_PROCESSOR_NO_DEPRECATED
+#endif
+
+#endif
