diff --git a/BoardConfig.mk b/BoardConfig.mk
index 9416ba0..562dd33 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -24,8 +24,6 @@
 ## APEX image
 DEXPREOPT_GENERATE_APEX_IMAGE := true
 
-TARGET_SPECIFIC_HEADER_PATH += $(DEVICE_PATH)/include
-
 ## Display
 TARGET_SCREEN_DENSITY := 420
 
diff --git a/include/samsung_fingerprint_inscreen.h b/include/samsung_fingerprint_inscreen.h
deleted file mode 100644
index e7026c8..0000000
--- a/include/samsung_fingerprint_inscreen.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2019 The LineageOS 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.
- */
-
-#ifndef SAMSUNG_FINGERPRINT_INSCREEN_H
-#define SAMSUNG_FINGERPRINT_INSCREEN_H
-
-/**
- * Information on the position of the scanner
- * Note: X and Y are the left-upper corner of the
- * FOD view, not the center.
- */
-
-/*
- * WIDTH = 1440
- * X = (WIDTH / 2) - (FOD_SENSOR_SIZE / 2)
- */
-#define FOD_SENSOR_X        545
-
-/*
- * HEIGHT = 3040
- * Y = ???
- */
-#define FOD_SENSOR_Y        2200
-
-/* Sensor rectangle size  */
-#define FOD_SENSOR_SIZE     350
-
-#define FOD_ENABLE "fod_enable,1"
-#define FOD_DISABLE "fod_enable,0"
-
-#define FINGERPRINT_ACQUIRED_VENDOR 6
-#define VENDORCODE_FINGER_DOWN 9002
-#define VENDORCODE_FINGER_UP 9001
-
-#define TSP_CMD_PATH "/sys/class/sec/tsp/cmd"
-
-#endif  // SAMSUNG_FINGERPRINT_INSCREEN_H
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index fc6debe..c17ec1b 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -42,4 +42,11 @@
          @see https://www.w3.org/TR/SVG/paths.html#PathData
          -->
     <string translatable="false" name="config_mainBuiltInDisplayCutout">M 0,0 H -33 V 84 H 33 V 0 H 0 Z</string>
+
+    <!-- The properties of a UDFPS sensor in pixels, in the order listed below: -->
+    <integer-array name="config_udfps_sensor_props">
+        <item>720</item>
+        <item>2335</item>
+        <item>150</item>
+    </integer-array>
 </resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res-keyguard/values-port/lineage_dimens.xml b/overlay/frameworks/base/packages/SystemUI/res-keyguard/values-port/lineage_dimens.xml
deleted file mode 100644
index 90870ed..0000000
--- a/overlay/frameworks/base/packages/SystemUI/res-keyguard/values-port/lineage_dimens.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 The LineageOS 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.
--->
-<resources>
-    <!-- The minimum bottom margin of the keyguard security container -->
-    <dimen name="kg_security_container_min_bottom_margin">860px</dimen>
-</resources>
diff --git a/overlay/packages/apps/Settings/res/values/dimens.xml b/overlay/packages/apps/Settings/res/values/dimens.xml
deleted file mode 100644
index 7a851ab..0000000
--- a/overlay/packages/apps/Settings/res/values/dimens.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<resources>
-    <!-- Fingerprint -->
-    <item name="fingerprint_sensor_location_fraction_x" type="fraction">50.25%</item>
-    <item name="fingerprint_sensor_location_fraction_y" type="fraction">51.25%</item>
-</resources>
diff --git a/overlay/packages/apps/Settings/res/values/lineage_config.xml b/overlay/packages/apps/Settings/res/values/lineage_config.xml
deleted file mode 100644
index 1ce6be6..0000000
--- a/overlay/packages/apps/Settings/res/values/lineage_config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
-    <!-- Defines the location of the fingerprint sensor on the device
-         0 = back
-         1 = front
-         2 = left side
-         3 = right side
-    -->
-    <integer name="config_fingerprintSensorLocation">1</integer>
-</resources>
