Commit graph

40 commits

Author SHA1 Message Date
Yifan Hong
4c23d3b4dd Delete BUILT_SYSTEM_MATRIX.
This was used in VINTF OTA metadata in update package, but VINTF metadata
is deleted in update package now.

Test: builds
Change-Id: I831d7547d7aee2ab1d344304e13fb0e1aeeb6bd6
2020-01-07 16:44:11 -08:00
Yifan Hong
5ec220664c Add current compatibility matrix for R.
Bug: 126892442
Test: builds
Merged-In: I1cccddf0736e0ffd5e3b5bb2da3bb5a32773f2f5
Change-Id: I1cccddf0736e0ffd5e3b5bb2da3bb5a32773f2f5
2019-05-21 20:00:09 +00:00
Steven Moreland
52f5560d61 Compatibility_matrix: s/current/4/
To indicate frozen state/development shouldn't occur here.

Bug: 126892442
Test: TH (build checks compatibility matrices)
Change-Id: I3daf93d750462bf7dcb698a353801bc55a459d45
(cherry picked from commit 86eb7fc62b)
Merged-In: I3daf93d750462bf7dcb698a353801bc55a459d45
2019-04-17 10:24:57 -07:00
Yifan Hong
fee037aac8 Build DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE.
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
2019-01-25 13:58:34 -08:00
Yifan Hong
ab6de249ec removed unused line.
Test: builds
Change-Id: I6df9338de150e35147c191a551b1e5eb538db32e
2018-10-16 12:00:25 -07:00
Yifan Hong
0cd10dd03e compatibility matrices: move to soong
* 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
2018-10-15 15:42:11 -07:00
Steven Moreland
3c86d9adb0 Add compatibility_matrix.current.xml for Android Q.
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
2018-09-24 17:38:08 -07:00
Yifan Hong
53891ac2be Allow OTA package to contain fake AVB version
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
2018-08-13 12:44:51 -07:00
Yifan Hong
0e193786e8 Merge "matrix: Enforce kernel requirements in OTA only when flag is set."
am: 0084639ada

Change-Id: Iad98f059fd3a15a7bd5dffa1c53300340e3f9e19
2018-07-30 10:38:43 -07:00
Yifan Hong
f529c34cc4 matrix: Enforce kernel requirements in OTA only when flag is set.
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
2018-07-27 12:42:28 -07:00
Yifan Hong
bf4d56a5b3 Merge "Do not install assembled framework matrix to device."
am: c70978d890

Change-Id: I607c056eb99e558b9adf172262392767434243cc
2018-06-12 13:05:11 -07:00
Yifan Hong
774c2bfcca Do not install assembled framework matrix to device.
Test: `m` dist
Test: make system matrix incompatible, `m` dist fails
Test: `m` and /system/etc/vintf files are installed
Bug: 110056937
Change-Id: If0bf2023f48ef31fffaf8636b3893cbfb40270ee
2018-06-11 19:28:15 -07:00
Yifan Hong
b50e8777f4 Merge "P requires 4.14.42" into pi-dev
am: 6e839e80bb

Change-Id: I7d741a1faf84be0dbf452faba71e635ef0db3fbb
2018-05-23 18:07:39 -07:00
Yifan Hong
75c7e3d5b7 P requires 4.14.42
Test: build and manual inspection of matrices
Change-Id: Ib5223e41c175843babe9039011fe56a616b225af
Fixes: 72409164
2018-05-23 14:59:15 -07:00
Yifan Hong
f2fda5e4df Merge "Update kernel minor revision for P." into pi-dev
am: ae4136070e

Change-Id: I0ad36b2b03aee9f2b7e87b7befbfe7750be8eee4
2018-05-16 15:08:30 -07:00
Yifan Hong
22af37df18 Update kernel minor revision for P.
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
2018-05-16 11:07:28 -07:00
Steven Moreland
93df7cf513 rename BUILT_SYSTEM_{COMPATIBILITY_,}MATRIX am: 515324a7a4
am: 240aa37762

Change-Id: Ib11c05f8591c559d70154f8d06007f7d3c027342
2018-05-02 18:29:05 -07:00
Steven Moreland
5920eae277 Remove early checks on manifest. am: a5cca55a1f
am: e03003b4de

Change-Id: I6932f9a4091ad6d3d6ab1c9c2ee464becd53752f
2018-05-02 18:29:00 -07:00
Steven Moreland
515324a7a4 rename BUILT_SYSTEM_{COMPATIBILITY_,}MATRIX
For consistency with BUILT_VENDOR_MATRIX.

Bug: 66917623
Test: manual
Change-Id: I666eceeb9fc20e5f5754f605c2fbb6530e51b326
2018-05-01 18:36:30 -07:00
Steven Moreland
a5cca55a1f Remove early checks on manifest.
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
2018-05-01 18:36:30 -07:00
Yifan Hong
a6a1e0b2d2 Restore kernel requirements for frozen matrices.
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
2018-04-30 17:27:46 -07:00
Yifan Hong
d8a4d3463e Add 4.14.0 kernel to all matrices.
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
2018-04-30 16:33:56 -07:00
Yifan Hong
efbb22fec4 matrix: copy kernel configs to subdirectory.
Bug: 78576469
Test: make vintf metadata and manual inspect
Test: vts_treble_vintf_test
Change-Id: Ie3c299e74c9479cbf9a868aeef96f5850feb8cfe
2018-04-30 15:41:41 -07:00
Yifan Hong
366101caf4 Restore kernel requirements for frozen matrices.
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
2018-04-26 18:40:37 -07:00
Yifan Hong
26e3a58f53 Add 4.14.0 kernel to all matrices.
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
2018-04-12 16:18:15 -07:00
Steven Moreland
92ea6540a5 Freeze current as compatibility_matrix.3.xml.
This freezes the current compatibility_matrix for
Android P.

Fixes: 68112778
Test: m (assemble_vintf checks devices)

Change-Id: Ida30b7ba7f5df7c2755bd7c737190574b9195a92
2018-04-03 11:19:40 -07:00
Yifan Hong
e62d476e3d matrix: ENFORCE_NO_UNUSED_HALS
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
2018-03-29 14:55:07 -07:00
Yifan Hong
4d6c4a96ae matrix: generalize case for LOCAL_WARN_REQUIRED_HALS
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
2018-03-29 14:55:07 -07:00
Yifan Hong
b2a83d1770 matrix: IGNORE_TARGET_FCM_VERSION -> VINTF_*
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
2018-03-29 14:55:07 -07:00
Yifan Hong
37ad8c4f64 matrix: define LOCAL_MODULE for all modules.
Test: m framework_compatibility_matrix -j
Bug: 65028233
Change-Id: Iab61771b8ebe0e1b771404bb25a0a04caf399585
Merged-In: Iab61771b8ebe0e1b771404bb25a0a04caf399585
2018-03-29 14:55:07 -07:00
Yifan Hong
7d61a8d47b matrix: ENFORCE_NO_UNUSED_HALS
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
2018-03-29 11:29:32 -07:00
Yifan Hong
3693fe4ab5 matrix: generalize case for LOCAL_WARN_REQUIRED_HALS
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
2018-03-29 11:29:32 -07:00
Yifan Hong
e0cad7a553 matrix: IGNORE_TARGET_FCM_VERSION -> VINTF_*
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
2018-03-29 11:29:32 -07:00
Yifan Hong
7831d437d4 matrix: define LOCAL_MODULE for all modules.
Test: m framework_compatibility_matrix -j
Bug: 65028233
Change-Id: Iab61771b8ebe0e1b771404bb25a0a04caf399585
2018-03-29 11:29:32 -07:00
Yifan Hong
13df628b8f Build DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
... 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
2018-03-28 17:45:26 -07:00
Yifan Hong
fee9ea41cc Build DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
... 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
2018-03-27 16:28:51 -07:00
Yifan Hong
b426af39ad Fwk matrix use PLATFORM_SEPOLICY_*
It used BOARD_SEPOLICY_VERS as a workaround, which is incorrect.

Test: m framework_compatibility_matrix.xml -j
Bug: 67920434
Change-Id: I029edd2f573740af272f8b767bb1ec5cc1dc0415
2018-02-05 13:45:36 -08:00
Yifan Hong
94b7d2ca19 Compatibility matrices: add minor revision to kernel versions
Test: builds
Bug: 72388844
Change-Id: Id60cef10610f39d70eebccbeb6e625e3d93795c6
2018-01-23 17:28:27 -08:00
Yifan Hong
44c9b2e1f4 Compatibility matrices: kernel req at each FCM version
* 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
2018-01-23 17:28:27 -08:00
Yifan Hong
2d8442c762 Install all comp mat to system image
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
2018-01-10 19:17:23 -08:00