diff --git a/src/connectivity/gps/Android.mk b/src/connectivity/gps/Android.mk
new file mode 100644
index 0000000..b8694f8
--- /dev/null
+++ b/src/connectivity/gps/Android.mk
@@ -0,0 +1,63 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2016. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
+# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
+# CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+ifeq ($(MTK_GPS_SUPPORT), true)
+$(warning [gps]BOARD_MEDIATEK_USES_GPS = $(BOARD_MEDIATEK_USES_GPS))
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(MTK_GPS_CHIP), MT3303)
+LOCAL_CFLAGS += -DCONFIG_GPS_MT3303
+endif
+
+ifneq (,$(filter MT6771 MT6775,$(MTK_PLATFORM)))
+MNLD_BUILD_MAKEFILE := $(LOCAL_PATH)/mtk_mnld_5_5/Android.mk
+else
+MNLD_BUILD_MAKEFILE := $(LOCAL_PATH)/mtk_mnld/Android.mk
+endif
+
+ALL_MAKEFILES := $(wildcard $(LOCAL_PATH)/*/Android.mk)
+MNLD_FOLDERS := $(wildcard $(LOCAL_PATH)/mtk_mnld*/Android.mk)
+ALL_EXCLUDE_MNLD_MAKEFILES := $(filter-out $(MNLD_FOLDERS),$(wildcard $(LOCAL_PATH)/*/Android.mk))
+
+$(warning ALL_MAKEFILES=$(ALL_MAKEFILES))
+$(warning MNLD_FOLDERS=$(MNLD_FOLDERS))
+$(warning ALL_EXCLUDE_MNLD_MAKEFILES=$(ALL_EXCLUDE_MNLD_MAKEFILES))
+$(warning MNLD_BUILD_MAKEFILE=$(MNLD_BUILD_MAKEFILE))
+
+include $(ALL_EXCLUDE_MNLD_MAKEFILES)
+include $(MNLD_BUILD_MAKEFILE)
+
+#include $(call all-makefiles-under,$(LOCAL_PATH))
+
+LOCAL_INIT_RC := gps.rc
+endif
