Enforce hidden apis usage in product(soong)

Only if PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE is set,
every app and java library in product cannot use hidden APIs anymore.

checkSdkVersion() checks if sdk_version of app and library is narrow enough,
checkLinkType() checks every library that app links agianst

Bug: 132780927
Test: m
Test: set PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE, and check whether build
error occurs.
Change-Id: Ic630503b875040f730feda4fef826ed6d71da111
This commit is contained in:
Jeongik Cha
2019-10-29 15:44:45 +09:00
parent af60d490ff
commit 2cc570dc63
8 changed files with 98 additions and 31 deletions

View File

@@ -1087,6 +1087,10 @@ func (c *config) EnforceSystemCertificateWhitelist() []string {
return c.productVariables.EnforceSystemCertificateWhitelist
}
func (c *config) EnforceProductPartitionInterface() bool {
return Bool(c.productVariables.EnforceProductPartitionInterface)
}
func (c *config) ProductHiddenAPIStubs() []string {
return c.productVariables.ProductHiddenAPIStubs
}