diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp
index b2a815f7ca..d22aa68cb0 100644
--- a/compatibility_matrices/Android.bp
+++ b/compatibility_matrices/Android.bp
@@ -12,6 +12,46 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+vintf_compatibility_matrix {
+ name: "framework_compatibility_matrix.legacy.xml",
+ stem: "compatibility_matrix.legacy.xml",
+ srcs: [
+ "compatibility_matrix.legacy.xml",
+ ],
+ kernel_configs: [
+ // legacy uses O kernel requirements
+ "kernel_config_o_3.18",
+ "kernel_config_o_4.4",
+ "kernel_config_o_4.9",
+ ],
+}
+
+vintf_compatibility_matrix {
+ name: "framework_compatibility_matrix.1.xml",
+ stem: "compatibility_matrix.1.xml",
+ srcs: [
+ "compatibility_matrix.1.xml",
+ ],
+ kernel_configs: [
+ "kernel_config_o_3.18",
+ "kernel_config_o_4.4",
+ "kernel_config_o_4.9",
+ ],
+}
+
+vintf_compatibility_matrix {
+ name: "framework_compatibility_matrix.2.xml",
+ stem: "compatibility_matrix.2.xml",
+ srcs: [
+ "compatibility_matrix.2.xml",
+ ],
+ kernel_configs: [
+ "kernel_config_o_mr1_3.18",
+ "kernel_config_o_mr1_4.4",
+ "kernel_config_o_mr1_4.9",
+ ],
+}
+
vintf_compatibility_matrix {
name: "framework_compatibility_matrix.3.xml",
stem: "compatibility_matrix.3.xml",
diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk
index 3951666fbf..b88d40b53c 100644
--- a/compatibility_matrices/Android.mk
+++ b/compatibility_matrices/Android.mk
@@ -92,6 +92,9 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
endif # DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE
my_system_matrix_deps := \
+ framework_compatibility_matrix.legacy.xml \
+ framework_compatibility_matrix.1.xml \
+ framework_compatibility_matrix.2.xml \
framework_compatibility_matrix.3.xml \
framework_compatibility_matrix.4.xml \
framework_compatibility_matrix.5.xml \
diff --git a/compatibility_matrices/CleanSpec.mk b/compatibility_matrices/CleanSpec.mk
index 5b351a5340..9b150ede48 100644
--- a/compatibility_matrices/CleanSpec.mk
+++ b/compatibility_matrices/CleanSpec.mk
@@ -45,6 +45,3 @@
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/vintf/compatibility_matrix.device.xml)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/vintf/compatibility_matrix.legacy.xml)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/vintf/compatibility_matrix.1.xml)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/vintf/compatibility_matrix.2.xml)
diff --git a/compatibility_matrices/compatibility_matrix.1.xml b/compatibility_matrices/compatibility_matrix.1.xml
new file mode 100644
index 0000000000..cccf24ff99
--- /dev/null
+++ b/compatibility_matrices/compatibility_matrix.1.xml
@@ -0,0 +1,326 @@
+
+
+ android.hardware.audio
+ 2.0
+
+ IDevicesFactory
+ default
+
+
+
+ android.hardware.audio.effect
+ 2.0
+
+ IEffectsFactory
+ default
+
+
+
+ android.hardware.automotive.evs
+ 1.0
+
+ IEvsEnumerator
+ default
+
+
+
+ android.hardware.automotive.vehicle
+ 2.0
+
+ IVehicle
+ default
+
+
+
+ android.hardware.biometrics.fingerprint
+ 2.1
+
+ IBiometricsFingerprint
+ default
+
+
+
+ android.hardware.bluetooth
+ 1.0
+
+ IBluetoothHci
+ default
+
+
+
+ android.hardware.boot
+ 1.0
+
+ IBootControl
+ default
+
+
+
+ android.hardware.broadcastradio
+ 1.0
+
+ IBroadcastRadioFactory
+ default
+
+
+
+ android.hardware.camera.provider
+ 2.4
+
+ ICameraProvider
+ legacy/0
+
+
+
+ android.hardware.configstore
+ 1.0
+
+ ISurfaceFlingerConfigs
+ default
+
+
+
+ android.hardware.contexthub
+ 1.0
+
+ IContexthub
+ default
+
+
+
+ android.hardware.drm
+ 1.0
+
+ ICryptoFactory
+ default
+
+
+ IDrmFactory
+ default
+
+
+
+ android.hardware.dumpstate
+ 1.0
+
+ IDumpstateDevice
+ default
+
+
+
+ android.hardware.gatekeeper
+ 1.0
+
+ IGatekeeper
+ default
+
+
+
+ android.hardware.gnss
+ 1.0
+
+ IGnss
+ default
+
+
+
+ android.hardware.graphics.allocator
+ 2.0
+
+ IAllocator
+ default
+
+
+
+ android.hardware.graphics.composer
+ 2.1
+
+ IComposer
+ default
+
+
+
+ android.hardware.graphics.mapper
+ 2.0
+
+ IMapper
+ default
+
+
+
+ android.hardware.health
+ 1.0
+
+ IHealth
+ default
+
+
+
+ android.hardware.ir
+ 1.0
+
+ IConsumerIr
+ default
+
+
+
+ android.hardware.keymaster
+ 3.0
+
+ IKeymasterDevice
+ default
+
+
+
+ android.hardware.light
+ 2.0
+
+ ILight
+ default
+
+
+
+ android.hardware.media.omx
+ 1.0
+
+ IOmx
+ default
+
+
+ IOmxStore
+ default
+
+
+
+ android.hardware.memtrack
+ 1.0
+
+ IMemtrack
+ default
+
+
+
+ android.hardware.nfc
+ 1.0
+
+ INfc
+ default
+
+
+
+ android.hardware.power
+ 1.0
+
+ IPower
+ default
+
+
+
+ android.hardware.radio
+ 1.0
+
+ IRadio
+ slot1
+
+
+ ISap
+ slot1
+
+
+
+ android.hardware.radio.deprecated
+ 1.0
+
+ IOemHook
+ slot1
+
+
+
+ android.hardware.renderscript
+ 1.0
+
+ IDevice
+ default
+
+
+
+ android.hardware.sensors
+ 1.0
+
+ ISensors
+ default
+
+
+
+ android.hardware.soundtrigger
+ 2.0
+
+ ISoundTriggerHw
+ default
+
+
+
+ android.hardware.thermal
+ 1.0
+
+ IThermal
+ default
+
+
+
+ android.hardware.tv.cec
+ 1.0
+
+ IHdmiCec
+ default
+
+
+
+ android.hardware.tv.input
+ 1.0
+
+ ITvInput
+ default
+
+
+
+ android.hardware.usb
+ 1.0
+
+ IUsb
+ default
+
+
+
+ android.hardware.vibrator
+ 1.0
+
+ IVibrator
+ default
+
+
+
+ android.hardware.vr
+ 1.0
+
+ IVr
+ default
+
+
+
+ android.hardware.wifi
+ 1.0
+
+ IWifi
+ default
+
+
+
+ android.hardware.wifi.supplicant
+ 1.0
+
+ ISupplicant
+ default
+
+
+
diff --git a/compatibility_matrices/compatibility_matrix.2.xml b/compatibility_matrices/compatibility_matrix.2.xml
new file mode 100644
index 0000000000..d4f9809b7e
--- /dev/null
+++ b/compatibility_matrices/compatibility_matrix.2.xml
@@ -0,0 +1,374 @@
+
+
+ android.hardware.audio
+ 2.0
+
+ IDevicesFactory
+ default
+
+
+
+ android.hardware.audio.effect
+ 2.0
+
+ IEffectsFactory
+ default
+
+
+
+ android.hardware.automotive.evs
+ 1.0
+
+ IEvsEnumerator
+ default
+
+
+
+ android.hardware.automotive.vehicle
+ 2.0
+
+ IVehicle
+ default
+
+
+
+ android.hardware.biometrics.fingerprint
+ 2.1
+
+ IBiometricsFingerprint
+ default
+
+
+
+ android.hardware.bluetooth
+ 1.0
+
+ IBluetoothHci
+ default
+
+
+
+ android.hardware.boot
+ 1.0
+
+ IBootControl
+ default
+
+
+
+ android.hardware.broadcastradio
+ 1.0-1
+
+ IBroadcastRadioFactory
+ default
+
+
+
+ android.hardware.camera.provider
+ 2.4
+
+ ICameraProvider
+ legacy/0
+
+
+
+ android.hardware.cas
+ 1.0
+
+ IMediaCasService
+ default
+
+
+
+ android.hardware.configstore
+ 1.0
+
+ ISurfaceFlingerConfigs
+ default
+
+
+
+ android.hardware.contexthub
+ 1.0
+
+ IContexthub
+ default
+
+
+
+ android.hardware.drm
+ 1.0
+
+ ICryptoFactory
+ default
+
+
+ IDrmFactory
+ default
+
+
+
+ android.hardware.dumpstate
+ 1.0
+
+ IDumpstateDevice
+ default
+
+
+
+ android.hardware.gatekeeper
+ 1.0
+
+ IGatekeeper
+ default
+
+
+
+ android.hardware.gnss
+ 1.0
+
+ IGnss
+ default
+
+
+
+ android.hardware.graphics.allocator
+ 2.0
+
+ IAllocator
+ default
+
+
+
+ android.hardware.graphics.composer
+ 2.1
+
+ IComposer
+ default
+
+
+
+ android.hardware.graphics.mapper
+ 2.0
+
+ IMapper
+ default
+
+
+
+ android.hardware.health
+ 1.0
+
+ IHealth
+ default
+
+
+
+ android.hardware.ir
+ 1.0
+
+ IConsumerIr
+ default
+
+
+
+ android.hardware.keymaster
+ 3.0
+
+ IKeymasterDevice
+ default
+
+
+
+ android.hardware.light
+ 2.0
+
+ ILight
+ default
+
+
+
+ android.hardware.media.omx
+ 1.0
+
+ IOmx
+ default
+
+
+ IOmxStore
+ default
+
+
+
+ android.hardware.memtrack
+ 1.0
+
+ IMemtrack
+ default
+
+
+
+ android.hardware.nfc
+ 1.0
+
+ INfc
+ default
+
+
+
+ android.hardware.oemlock
+ 1.0
+
+ IOemLock
+ default
+
+
+
+ android.hardware.power
+ 1.0-1
+
+ IPower
+ default
+
+
+
+ android.hardware.radio
+ 1.0-1
+
+ IRadio
+ slot1
+
+
+ ISap
+ slot1
+
+
+
+ android.hardware.radio.deprecated
+ 1.0
+
+ IOemHook
+ slot1
+
+
+
+ android.hardware.renderscript
+ 1.0
+
+ IDevice
+ default
+
+
+
+ android.hardware.sensors
+ 1.0
+
+ ISensors
+ default
+
+
+
+ android.hardware.soundtrigger
+ 2.0
+
+ ISoundTriggerHw
+ default
+
+
+
+ android.hardware.tetheroffload.config
+ 1.0
+
+ IOffloadConfig
+ default
+
+
+
+ android.hardware.tetheroffload.control
+ 1.0
+
+ IOffloadControl
+ default
+
+
+
+ android.hardware.thermal
+ 1.0-1
+
+ IThermal
+ default
+
+
+
+ android.hardware.tv.cec
+ 1.0
+
+ IHdmiCec
+ default
+
+
+
+ android.hardware.tv.input
+ 1.0
+
+ ITvInput
+ default
+
+
+
+ android.hardware.usb
+ 1.0-1
+
+ IUsb
+ default
+
+
+
+ android.hardware.vibrator
+ 1.0-1
+
+ IVibrator
+ default
+
+
+
+ android.hardware.vr
+ 1.0
+
+ IVr
+ default
+
+
+
+ android.hardware.weaver
+ 1.0
+
+ IWeaver
+ default
+
+
+
+ android.hardware.wifi
+ 1.0-1
+
+ IWifi
+ default
+
+
+
+ android.hardware.wifi.offload
+ 1.0
+
+ IOffload
+ default
+
+
+
+ android.hardware.wifi.supplicant
+ 1.0
+
+ ISupplicant
+ default
+
+
+
diff --git a/compatibility_matrices/compatibility_matrix.legacy.xml b/compatibility_matrices/compatibility_matrix.legacy.xml
new file mode 100644
index 0000000000..8a4d2ee60d
--- /dev/null
+++ b/compatibility_matrices/compatibility_matrix.legacy.xml
@@ -0,0 +1,326 @@
+
+
+ android.hardware.audio
+ 2.0
+
+ IDevicesFactory
+ default
+
+
+
+ android.hardware.audio.effect
+ 2.0
+
+ IEffectsFactory
+ default
+
+
+
+ android.hardware.automotive.evs
+ 1.0
+
+ IEvsEnumerator
+ default
+
+
+
+ android.hardware.automotive.vehicle
+ 2.0
+
+ IVehicle
+ default
+
+
+
+ android.hardware.biometrics.fingerprint
+ 2.1
+
+ IBiometricsFingerprint
+ default
+
+
+
+ android.hardware.bluetooth
+ 1.0
+
+ IBluetoothHci
+ default
+
+
+
+ android.hardware.boot
+ 1.0
+
+ IBootControl
+ default
+
+
+
+ android.hardware.broadcastradio
+ 1.0
+
+ IBroadcastRadioFactory
+ default
+
+
+
+ android.hardware.camera.provider
+ 2.4
+
+ ICameraProvider
+ legacy/0
+
+
+
+ android.hardware.configstore
+ 1.0
+
+ ISurfaceFlingerConfigs
+ default
+
+
+
+ android.hardware.contexthub
+ 1.0
+
+ IContexthub
+ default
+
+
+
+ android.hardware.drm
+ 1.0
+
+ ICryptoFactory
+ default
+
+
+ IDrmFactory
+ default
+
+
+
+ android.hardware.dumpstate
+ 1.0
+
+ IDumpstateDevice
+ default
+
+
+
+ android.hardware.gatekeeper
+ 1.0
+
+ IGatekeeper
+ default
+
+
+
+ android.hardware.gnss
+ 1.0
+
+ IGnss
+ default
+
+
+
+ android.hardware.graphics.allocator
+ 2.0
+
+ IAllocator
+ default
+
+
+
+ android.hardware.graphics.composer
+ 2.1
+
+ IComposer
+ default
+
+
+
+ android.hardware.graphics.mapper
+ 2.0
+
+ IMapper
+ default
+
+
+
+ android.hardware.health
+ 1.0
+
+ IHealth
+ default
+
+
+
+ android.hardware.ir
+ 1.0
+
+ IConsumerIr
+ default
+
+
+
+ android.hardware.keymaster
+ 3.0
+
+ IKeymasterDevice
+ default
+
+
+
+ android.hardware.light
+ 2.0
+
+ ILight
+ default
+
+
+
+ android.hardware.media.omx
+ 1.0
+
+ IOmx
+ default
+
+
+ IOmxStore
+ default
+
+
+
+ android.hardware.memtrack
+ 1.0
+
+ IMemtrack
+ default
+
+
+
+ android.hardware.nfc
+ 1.0
+
+ INfc
+ default
+
+
+
+ android.hardware.power
+ 1.0
+
+ IPower
+ default
+
+
+
+ android.hardware.radio
+ 1.0
+
+ IRadio
+ slot1
+
+
+ ISap
+ slot1
+
+
+
+ android.hardware.radio.deprecated
+ 1.0
+
+ IOemHook
+ slot1
+
+
+
+ android.hardware.renderscript
+ 1.0
+
+ IDevice
+ default
+
+
+
+ android.hardware.sensors
+ 1.0
+
+ ISensors
+ default
+
+
+
+ android.hardware.soundtrigger
+ 2.0
+
+ ISoundTriggerHw
+ default
+
+
+
+ android.hardware.thermal
+ 1.0
+
+ IThermal
+ default
+
+
+
+ android.hardware.tv.cec
+ 1.0
+
+ IHdmiCec
+ default
+
+
+
+ android.hardware.tv.input
+ 1.0
+
+ ITvInput
+ default
+
+
+
+ android.hardware.usb
+ 1.0
+
+ IUsb
+ default
+
+
+
+ android.hardware.vibrator
+ 1.0
+
+ IVibrator
+ default
+
+
+
+ android.hardware.vr
+ 1.0
+
+ IVr
+ default
+
+
+
+ android.hardware.wifi
+ 1.0
+
+ IWifi
+ default
+
+
+
+ android.hardware.wifi.supplicant
+ 1.0
+
+ ISupplicant
+ default
+
+
+
diff --git a/compatibility_matrices/exclude/fcm_exclude.cpp b/compatibility_matrices/exclude/fcm_exclude.cpp
index 6725a9884c..29dc1307ae 100644
--- a/compatibility_matrices/exclude/fcm_exclude.cpp
+++ b/compatibility_matrices/exclude/fcm_exclude.cpp
@@ -61,18 +61,6 @@ bool ShouldCheckMissingHalsInFcm(const std::string& package) {
// does not depend on this HAL, hence it is not declared in any manifests or matrices.
"android.hardware.fastboot@1.0",
"android.hardware.fastboot@1.1",
-
- // Deprecated HALs.
- // HIDL
- // TODO(b/171260360) Remove when HAL definition is removed
- "android.hardware.audio.effect@2.0",
- "android.hardware.audio@2.0",
- // TODO(b/171260613) Remove when HAL definition is removed
- "android.hardware.health@1.0",
- // TODO(b/171260670) Remove when HAL definition is removed
- "android.hardware.nfc@1.0",
- // TODO(b/171260715) Remove when HAL definition is removed
- "android.hardware.radio.deprecated@1.0",
};
auto package_has_prefix = [&](const std::string& prefix) {