diff options
author | 2024-06-05 19:27:18 +0000 | |
---|---|---|
committer | 2024-06-05 21:32:23 +0000 | |
commit | 7fd531f5d1a92a473ebd6bf3c06d4351c743d569 (patch) | |
tree | 631676e85047af7270162db2981c64249466de6e /scripts/gen-kotlin-build-file.py | |
parent | 6c9fa022046e198ce5c2be963383b93f8a0cf3a2 (diff) |
Identify profile providing apexes using ApexInfo
`com.android.art` and its overrides include a `etc/boot-image.prof`
which is used on device for profile guided dexopt.
```
$ deapexer list <path_in_product_out>/com.android.art.apex | grep
boot-image
$ deapexer list <path_in_product_out>/com.google.android.art.apex | grep
boot-image
```
To identify that we should include a boot-image.prof in the override
apexes, we currently look at ApexInfo.InApexVariants in the context of
art's bootclasspath fragment module. InApexVariants are colated based on
the min_sdk_version of the top-level apex. At ToT, we have a single
variant of `art-bootlcasspath-fragment` for aosp art apex, google art
apex and google go art apex.
When google go art apex overrides the min_sdk_version, ApexInfo is
cleaved, and two distinct variants of art-bootclasspath-fragment are
created. The one corresponding to go art apex does not know we should
include boot-image.prof
To fix this, use AllApexInfoProvider instead. If any of the apexInfos
corresponds to com.android.art, include etc/boot-image.prof
Test: Added a unit test
Test: With https://b.corp.google.com/issues/345173231#comment2 reverted,
m com.google.android.go.art && deapexer list <apex> # verified that
boot-image.prof exists
Bug: 345173231
Bug: 295311875
Change-Id: I5a0e8f74725388f05343c64f268260b1eb139ae5
Diffstat (limited to 'scripts/gen-kotlin-build-file.py')
0 files changed, 0 insertions, 0 deletions