DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE is installed on
/product/etc/vintf. It is considered as a replacement of
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE, so only one
of them may be defined. At build time, things like
SEPolicy versions etc. will be written to
/product/etc/vintf/compatibility_matrix.device.xml, just
like the /system one.
Also, split framework_compatibitity_matrix.xml to
system_compatibility_matrix.xml and product_compatibility_matrix.xml.
The latter two corresponds to matrices installed to respective
partitions only.
Test: build with DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE defined
Test: boot (sanity)
Bug: 120600021
Change-Id: I81f9a8f5028cbb88c45f44df04bccb8ccb483972
* Kernel config requirements are built as
separate rules in kernel/configs. All kernel requirements
(including minlts and configs) are represented there.
* device framework compatibility matrix and final
framework compatibility matrix need special environment
variables, so they are not generic enough to be written
in the soong rule.
See compatibility_matrices/Android.bp for sample usages.
Test: builds and compare output before change
Change-Id: I53bf88362314f96487ca243c9292570b7931f24b
HAL development is starting for Andorid Q, so we need this.
Test: m compatibility_matrix.current.xml
Test: assemble_vintf (but b/78895849)
Test: boot a Pixel device after setting its target-level to 4
and verify that the compatibility check passes, and the
file is in the correct location (system/etc/vintf) and that
the dependencies are setup properly.
Change-Id: I42426d0145a97c719092306abc4f7ce8fa2b51bd
(cherry picked from commit 2d2e2d5c05)
Merged-In: I42426d0145a97c719092306abc4f7ce8fa2b51bd
The system_matrix.xml in compatibility.zip can contain a fake
AVB version as specified by BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE.
This allows OTA to pass compatibility check when the AVB version is
updated *during* the OTA.
Bug: 112291283
Test: specify BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE and
manual test
Change-Id: I53c2de49ee68d6a3afc97201e759be344de6bdff
Enforce only when PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
is set. If a device does want to require kernel configs, it has to
provide info for new kernel in OTA package.
Bug: 111840577
Test: build and manual inspection
Change-Id: I36b3fcd9d14a9795aaf8d020bba6180c5e8681d1
These are the P requirements of kernel versions:
4.4.107, 4.9.84, 4.14.40.
Test: build and manual inspection of matrices
Test: boots
Test: vts_treble_vintf_test
Change-Id: Ic3cec1395e960000b70c6e001aa4981a9ffcd8c6
Fixes: 72409164
These are to be checked in verify_vintf_matrices at
the end of the build when all of the manifest fragments
are available.
Bug: 66917623
Test: check that verify_vintf_matrices hits these checks
Change-Id: I3f184a05a6a95751384da077257dddcf73d3a6f2
Requirements for legacy/1/2.xml has changed because
android-base.cfg files are changed. These files should
build from an older snapshot of the requirements.
Fixes: 78576469
Test: builds
Test: vts_treble_vintf_test
Change-Id: I908ebbe495ae06f983ef983a1be7937cf6be1c12
Merged-In: I908ebbe495ae06f983ef983a1be7937cf6be1c12
P framework can work with 4.14 kernel. 0 should
be updated to the correct value in a follow-up
patch.
This creates the following tags in all matrices:
Kernel 4.14 common requirements
Kernel 4.14 requirements on CONFIG_ARM is set
Kernel 4.14 requirements on CONFIG_ARM64 is set
Bug: 72409164
Bug: 77886167
Test: manually inspect built matrix
Change-Id: I82168df314ad61b21440ec5c703db8358468e083
Merged-In: I82168df314ad61b21440ec5c703db8358468e083
Requirements for legacy/1/2.xml has changed because
android-base.cfg files are changed. These files should
build from an older snapshot of the requirements.
Fixes: 78576469
Test: builds
Test: vts_treble_vintf_test
Change-Id: I908ebbe495ae06f983ef983a1be7937cf6be1c12
P framework can work with 4.14 kernel. 0 should
be updated to the correct value in a follow-up
patch.
This creates the following tags in all matrices:
Kernel 4.14 common requirements
Kernel 4.14 requirements on CONFIG_ARM is set
Kernel 4.14 requirements on CONFIG_ARM64 is set
Bug: 72409164
Bug: 77886167
Test: manually inspect built matrix
Change-Id: I82168df314ad61b21440ec5c703db8358468e083
This freezes the current compatibility_matrix for
Android P.
Fixes: 68112778
Test: m (assemble_vintf checks devices)
Change-Id: Ida30b7ba7f5df7c2755bd7c737190574b9195a92
Enforce that all hals in the device manifest are
in framework compatibility matrix -- at build time.
Bug: 65028233
Test: build a phone without DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX.
Change-Id: Ibf220f80ca3621ddbf8288d372d5f40336e45248
Merged-In: Ibf220f80ca3621ddbf8288d372d5f40336e45248
Add LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE and
LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE for a more generic case.
Test: m framework_compatibility_matrix.xml -j
Bug: 65028233
Change-Id: Iec142d161daa18122e7a6daebb82c7230cb98ba6
Merged-In: Iec142d161daa18122e7a6daebb82c7230cb98ba6
All "private" environment variables to assemble_vintf
(inserted by the build rules, not build system variables)
should have this prefix (to distinguish against,
e.g. PRODUCT_ENFORCE_VINTF_MANIFEST)
Test: m framework_compatibility_matrix -j
Bug: 65028233
Change-Id: Iaefa88cefc0918fb86235ea6fcd8e367cbd82788
Merged-In: Iaefa88cefc0918fb86235ea6fcd8e367cbd82788
Enforce that all hals in the device manifest are
in framework compatibility matrix -- at build time.
Bug: 65028233
Test: build a phone without DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX.
Change-Id: Ibf220f80ca3621ddbf8288d372d5f40336e45248
Add LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE and
LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE for a more generic case.
Test: m framework_compatibility_matrix.xml -j
Bug: 65028233
Change-Id: Iec142d161daa18122e7a6daebb82c7230cb98ba6
All "private" environment variables to assemble_vintf
(inserted by the build rules, not build system variables)
should have this prefix (to distinguish against,
e.g. PRODUCT_ENFORCE_VINTF_MANIFEST)
Test: m framework_compatibility_matrix -j
Bug: 65028233
Change-Id: Iaefa88cefc0918fb86235ea6fcd8e367cbd82788
... along with compatibility_matrix.device.xml.
The new module cm.device.xml contains the original content
of empty.xml (kernel configs, sepolicy, etc.) as well
as HALs from DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE.
This variable points to a framework compatibility matrix
that contains framework HALs as a vendor extension; all
HALs in this file must be optional.
Bug: 65028233
Test: m framework_compatibility_matrix.xml -j and manual inspection
Test: vts_treble_vintf_test
Change-Id: I94949f62f7f5b332d845f2e7fa4714df7c49ed3e
Merged-In: I94949f62f7f5b332d845f2e7fa4714df7c49ed3e
... along with compatibility_matrix.device.xml.
The new module cm.device.xml contains the original content
of empty.xml (kernel configs, sepolicy, etc.) as well
as HALs from DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE.
This variable points to a framework compatibility matrix
that contains framework HALs as a vendor extension; all
HALs in this file must be optional.
Bug: 65028233
Test: m framework_compatibility_matrix.xml -j and manual inspection
Test: vts_treble_vintf_test
Change-Id: I94949f62f7f5b332d845f2e7fa4714df7c49ed3e
It used BOARD_SEPOLICY_VERS as a workaround, which is incorrect.
Test: m framework_compatibility_matrix.xml -j
Bug: 67920434
Change-Id: I029edd2f573740af272f8b767bb1ec5cc1dc0415
* devices with Shipping FCM version
legacy / O / O-MR1 use 3.18, 4.4, 4.9
* devices with Shipping FCM version P use 4.4 4.9
Bug: 72389707
Test: manual inspection on
$OUT/system/etc/vintf/compatibility_matrix.*.xml
Change-Id: I4f37325c0210f88e9e6d3e7136a82d50da3e93fe
Moved framework_compatibility_matrix.xml module definition
from target/board/Android.mk here because it depends on
compatibility_matrix.*.xml.
Test: m dist
Bug: 69636193
Change-Id: I7480b27756992b47555f6b397925170ae9d1ac22