diff --git a/Android.bp b/Android.bp
index 28c3148cf28..575f0513273 100644
--- a/Android.bp
+++ b/Android.bp
@@ -98,6 +98,7 @@ android_library {
"SettingsLibDataStore",
"SettingsLibMetadata",
"SettingsLibPreference",
+ "SettingsLibService",
"aconfig_settings_flags_lib",
"accessibility_settings_flags_lib",
"contextualcards",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6408ab11311..0025abaf9e0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5299,6 +5299,17 @@
android:enabled="true"
android:exported="false" />
+
+
+
+
+
+
+
+
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
index a9c7bd59f23..6eb1e0236de 100644
--- a/aconfig/settings_flag_declarations.aconfig
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -63,3 +63,10 @@ flag {
description: "Flag for all screens"
bug: "323791114"
}
+
+flag {
+ name: "catalyst_service"
+ namespace: "android_settings"
+ description: "Flag for catalyst service"
+ bug: "323791114"
+}
diff --git a/src/com/android/settings/SettingsService.kt b/src/com/android/settings/SettingsService.kt
new file mode 100644
index 00000000000..2cd706b9b14
--- /dev/null
+++ b/src/com/android/settings/SettingsService.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings
+
+import android.content.Intent
+import android.os.IBinder
+import com.android.settings.flags.Flags
+import com.android.settingslib.service.PreferenceService
+
+/** Service to expose settings APIs. */
+class SettingsService : PreferenceService({ _, _, _ -> true }) {
+
+ override fun onBind(intent: Intent): IBinder? {
+ return if (!Flags.catalystService()) null else super.onBind(intent)
+ }
+}