[MTE] Add device config to control upgrade time

Bug: 169277947
Change-Id: I67eb94a668e60a2970bb086f82cc69396275340a
diff --git a/init/service.cpp b/init/service.cpp
index 4cf409c..054ae49 100644
--- a/init/service.cpp
+++ b/init/service.cpp
@@ -331,9 +331,18 @@
                               !upgraded_mte_;
 
     if (should_upgrade_mte) {
-        LOG(INFO) << "Upgrading service " << name_ << " to sync MTE";
-        once_environment_vars_.emplace_back("BIONIC_MEMTAG_UPGRADE_SECS", "60");
-        upgraded_mte_ = true;
+        constexpr int kDefaultUpgradeSecs = 60;
+        int secs = GetIntProperty("persist.device_config.memory_safety_native.upgrade_secs.default",
+                                  kDefaultUpgradeSecs);
+        secs = GetIntProperty(
+                "persist.device_config.memory_safety_native.upgrade_secs.service." + name_, secs);
+        if (secs > 0) {
+            LOG(INFO) << "Upgrading service " << name_ << " to sync MTE for " << secs << " seconds";
+            once_environment_vars_.emplace_back("BIONIC_MEMTAG_UPGRADE_SECS", std::to_string(secs));
+            upgraded_mte_ = true;
+        } else {
+            LOG(INFO) << "Not upgrading service " << name_ << " to sync MTE due to device config";
+        }
     }
 #endif