Android VTS with Generic Kernel Image (imx8mp + Android 11 2.6.0)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Android VTS with Generic Kernel Image (imx8mp + Android 11 2.6.0)

1,033 Views
brood
Contributor IV

Hello,

I'm currently working on running the Android VTS test suite against a custom board using the following items:

1. i.MX8M+ 

2. Android 11-2.6.0 BSP

The issue that I'm having is the following VTS test fails:

vts_security_avb_test

With the following failures:

AvbTest#Boot

AvbTest#SystemHashtree

AvbTest#SystemDescriptor

These tests must pass for us as we are a GMS certified product, all compatibility tests must pass for certification to succeed.

From my understanding, I have to flash the Google-signed GKI (Generic Kernel Image) and vbmeta.img images to get these tests to pass.  However, when I do so, the board doesn't boot and instead gets stuck at 'Starting kernel ...'.

The procedure I'm using to flash the device is:

1. Flash normal image compiled from Android 11 2.6.0 BSP

2. adb reboot bootloader

3. fastboot -w

4. fastboot flash boot <GKI image>

5. fastboot flash --disable-verification vbmeta <GKI/GSI vbmeta>

After performing the above steps, I would expect the device to boot using GKI, however it just hangs with 'Starting kernel ...'.

I have look ahead at the Android 12 BSP, which supports shipping a generic kernel image from Google, however upgrading to the Android 12 BSP at this point is impossible due to project timelines so I must use the Android 11 2.6.0 BSP.

Attached are UBOOT logs from both successful boot (using compiled image from BSP) and unsuccessful boot after flashing GKI.

2 Replies

350 Views
alfred123
Contributor I

I also ran into same issue, how did you fixed the 3 test cases of vts_security_avb_test module?

0 Kudos

325 Views
brood
Contributor IV

Hi @alfred123 ,

I wound up "forward porting" the kernel from the Android 11 1.2.1 BSP - it is the correct version (5.4) that is expected by the Android 11 xTS tests.  Unfortunately, there's no other way to make the tests pass, as the VTS suite must be executed against a system running the 5.4 GKI.

This effort was a "shot in the dark" at the time - I think I got lucky that things worked, however your mileage may vary depending on what peripheral drivers you need.  I can report that all NXP drivers function normally, however be advised that the Google GKI provides no support for interrupts for the Trusty drivers when the GKI is loaded.  Therefore, you have to disable all of the NXP hardware codecs when the GKI/GSI is loaded on to the device.  Also, the GKI may not provide all of the symbols needed by your peripheral drivers, so be prepared to write compatibility module drivers that contain the necessary symbols.

I would recommend when selecting a NXP BSP, to examine the kernel version that is shipped with it and ensure it aligns with the supported/expected kernel versions for that version of Android outlined by Google here.

Unfortunately for the Android 11 BSPs provided by NXP, the 1.2.1 BSP had the correct kernel version, but no support for Trusty/Widevine.  So, that forced me down this particular road to get things to work and to pass the tests.

Hope this helps - all I can say now is: Good Luck!

0 Kudos