diff --git a/classes/phosphor-mapper.bbclass b/classes/phosphor-mapper.bbclass
index 7bafecb..97da850 100644
--- a/classes/phosphor-mapper.bbclass
+++ b/classes/phosphor-mapper.bbclass
@@ -7,17 +7,23 @@
 # interfaces it will keep track of.
 #
 # The Phosphor layer by default configures the mapper to
-# watch xyz.openbmc_project interfaces and paths only.  This
-# configuration file is intended to be inherited by
-# native recipes in other layers that wish to add namespaces
+# watch xyz.openbmc_project services, interfaces and paths
+# only.  This configuration file is intended to be inherited
+# by native recipes in other layers that wish to add namespaces
 # or interfaces to the mapper watchlist.
 
 # Add path namespaces to be monitored:
 # PHOSPHOR_MAPPER_NAMESPACE_append = " /foo/bar"
 
+# Add service namespaces to be monitored:
+# PHOSPHOR_MAPPER_SERVICE_append = " foo.bar"
+
 # Add interfaces to be monitored:
 # PHOSPHOR_MAPPER_INTERFACE_append = " foo.bar"
 
+# Blacklist services from being monitored:
+# PHOSPHOR_MAPPER_SERVICE_BLACKLIST_append = " foo.bar"
+
 inherit phosphor-mapperdir
 inherit obmc-phosphor-utils
 
@@ -34,9 +40,13 @@
                 pass
 
     process_var(d, 'PHOSPHOR_MAPPER_NAMESPACE', 'namespace_dir')
+    process_var(d, 'PHOSPHOR_MAPPER_SERVICE', 'service_dir')
     process_var(d, 'PHOSPHOR_MAPPER_INTERFACE', 'interface_dir')
+    process_var(d, 'PHOSPHOR_MAPPER_SERVICE_BLACKLIST', 'serviceblacklist_dir')
 }
 
 do_install[vardeps] += "PHOSPHOR_MAPPER_NAMESPACE"
+do_install[vardeps] += "PHOSPHOR_MAPPER_SERVICE"
 do_install[vardeps] += "PHOSPHOR_MAPPER_INTERFACE"
+do_install[vardeps] += "PHOSPHOR_MAPPER_SERVICE_BLACKLIST"
 do_install[postfuncs] += "phosphor_mapper_do_postinst"
diff --git a/classes/phosphor-mapperdir.bbclass b/classes/phosphor-mapperdir.bbclass
index 33962f2..ed68628 100644
--- a/classes/phosphor-mapperdir.bbclass
+++ b/classes/phosphor-mapperdir.bbclass
@@ -1,2 +1,4 @@
 namespace_dir="${datadir}/phosphor-mapper/namespace"
+service_dir="${datadir}/phosphor-mapper/service"
 interface_dir="${datadir}/phosphor-mapper/interface"
+serviceblacklist_dir="${datadir}/phosphor-mapper/serviceblacklist"
diff --git a/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb b/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
index c39e0a3..e87f225 100644
--- a/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
+++ b/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
@@ -8,4 +8,5 @@
 inherit obmc-phosphor-license
 
 PHOSPHOR_MAPPER_NAMESPACE_append = " /xyz/openbmc_project"
+PHOSPHOR_MAPPER_SERVICE_append = " xyz.openbmc_project"
 PHOSPHOR_MAPPER_INTERFACE_append = " xyz.openbmc_project"
diff --git a/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb b/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
index 67199f9..69c7779 100644
--- a/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
+++ b/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
@@ -7,4 +7,5 @@
 inherit obmc-phosphor-license
 
 PHOSPHOR_MAPPER_NAMESPACE_append = " /org/openbmc"
+PHOSPHOR_MAPPER_SERVICE_append = " org.openbmc"
 PHOSPHOR_MAPPER_INTERFACE_append = " org.openbmc"
diff --git a/recipes-phosphor/dbus/phosphor-mapper-config-native.bb b/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
index dcc5bd3..9e2f43f 100644
--- a/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
+++ b/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
@@ -24,10 +24,17 @@
 # Add path namespaces to be monitored.
 PHOSPHOR_MAPPER_NAMESPACE = ""
 
+# Add services to be monitored.
+PHOSPHOR_MAPPER_SERVICE = ""
+
 # Add interfaces to be monitored.
 PHOSPHOR_MAPPER_INTERFACE = ""
 
+# Blacklist services from being monitored.
+PHOSPHOR_MAPPER_SERVICE_BLACKLIST = ""
+
 do_install() {
         install -d ${D}/${namespace_dir}
         install -d ${D}/${interface_dir}
+        install -d ${D}/${serviceblacklist_dir}
 }
diff --git a/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service b/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
index 394e0ed..69fb1e2 100644
--- a/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
+++ b/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
@@ -8,7 +8,9 @@
 Type=dbus
 ExecStart=/usr/bin/env phosphor-mapper \
         --path_namespaces="${{MAPPER_NAMESPACES}}" \
-        --interface_namespaces="${{MAPPER_INTERFACES}}"
+        --service_namespaces="${{MAPPER_SERVICES}}" \
+        --interface_namespaces="${{MAPPER_INTERFACES}}" \
+        --service_blacklists="${{MAPPER_SERVICEBLACKLISTS}}"
 SyslogIdentifier=phosphor-mapper
 BusName={BUSNAME}
 TimeoutStartSec=300
diff --git a/recipes-phosphor/dbus/phosphor-mapper_git.bb b/recipes-phosphor/dbus/phosphor-mapper_git.bb
index 9e0e7c2..c4c7f51 100644
--- a/recipes-phosphor/dbus/phosphor-mapper_git.bb
+++ b/recipes-phosphor/dbus/phosphor-mapper_git.bb
@@ -59,11 +59,23 @@
         paths.append(os.sep.join(p.split('-')))
 
     path = d.getVar('STAGING_DIR_NATIVE', True) + \
+        d.getVar('service_dir', True)
+    services = []
+    for s in os.listdir(path):
+        services.append('.'.join(s.split('-')))
+
+    path = d.getVar('STAGING_DIR_NATIVE', True) + \
         d.getVar('interface_dir', True)
     interfaces = []
     for i in os.listdir(path):
         interfaces.append('.'.join(i.split('-')))
 
+    path = d.getVar('STAGING_DIR_NATIVE', True) + \
+        d.getVar('serviceblacklist_dir', True)
+    service_blacklists = []
+    for x in os.listdir(path):
+        service_blacklists.append('.'.join(x.split('-')))
+
     path = [d.getVar('D', True) + d.getVar('envfiledir', True)]
     path.append('obmc')
     path.append('mapper')
@@ -75,8 +87,12 @@
     with open(path, 'w+') as fd:
         fd.write('MAPPER_NAMESPACES="{}"'.format(' '.join(paths)))
         fd.write('\n')
+        fd.write('MAPPER_SERVICES="{}"'.format(' '.join(services)))
+        fd.write('\n')
         fd.write('MAPPER_INTERFACES="{}"'.format(' '.join(interfaces)))
         fd.write('\n')
+        fd.write('MAPPER_SERVICEBLACKLISTS="{}"'.format(' '.join(service_blacklists)))
+        fd.write('\n')
 }
 
 do_install[postfuncs] += "do_emit_env"
