Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ab239ec authored by Pete Gillin's avatar Pete Gillin Committed by Gerrit Code Review
Browse files

Merge "Enforce the legacy core/platform API restriction."

parents 50f0da42 84c3807b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ bootstrap_go_package {
        "java_resources.go",
        "kotlin.go",
        "lint.go",
        "legacy_core_platform_api_usage.go",
        "platform_compat_config.go",
        "plugin.go",
        "prebuilt_apis.go",
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ var (

	LegacyCorePlatformBootclasspathLibraries = []string{"legacy.core.platform.api.stubs", "core-lambda-stubs"}
	LegacyCorePlatformSystemModules          = "legacy-core-platform-api-stubs-system-modules"
	StableCorePlatformBootclasspathLibraries = []string{"stable.core.platform.api.stubs", "core-lambda-stubs"}
	StableCorePlatformSystemModules          = "stable-core-platform-api-stubs-system-modules"
	FrameworkLibraries                       = []string{"ext", "framework"}
	DefaultLambdaStubsLibrary                = "core-lambda-stubs"
	SdkLambdaStubsPath                       = "prebuilts/sdk/tools/core-lambda-stubs.jar"
+161 −0
Original line number Diff line number Diff line
// Copyright 2020 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package java

import (
	"android/soong/android"
	"android/soong/java/config"
)

var legacyCorePlatformApiModules = []string{
	"ahat-test-dump",
	"android.car",
	"android.test.mock",
	"android.test.mock.impl",
	"AoapTestDeviceApp",
	"AoapTestHostApp",
	"api-stubs-docs",
	"art_cts_jvmti_test_library",
	"art-gtest-jars-MyClassNatives",
	"BackupFrameworksServicesRoboTests",
	"BandwidthEnforcementTest",
	"BlockedNumberProvider",
	"BluetoothInstrumentationTests",
	"BluetoothMidiService",
	"car-apps-common",
	"CertInstaller",
	"ConnectivityManagerTest",
	"ContactsProvider",
	"core-tests-support",
	"CtsContentTestCases",
	"CtsIkeTestCases",
	"CtsLibcoreWycheproofBCTestCases",
	"CtsMediaTestCases",
	"CtsNetTestCases",
	"CtsNetTestCasesLatestSdk",
	"CtsSecurityTestCases",
	"CtsUsageStatsTestCases",
	"DisplayCutoutEmulationEmu01Overlay",
	"DocumentsUIPerfTests",
	"DocumentsUITests",
	"DownloadProvider",
	"DownloadProviderTests",
	"DownloadProviderUi",
	"DynamicSystemInstallationService",
	"EmergencyInfo-lib",
	"ethernet-service",
	"EthernetServiceTests",
	"ExternalStorageProvider",
	"ExtServices",
	"ExtServices-core",
	"framework-all",
	"framework-minus-apex",
	"FrameworksCoreTests",
	"FrameworksIkeTests",
	"FrameworksNetCommonTests",
	"FrameworksNetTests",
	"FrameworksServicesRoboTests",
	"FrameworksServicesTests",
	"FrameworksUtilTests",
	"hid",
	"hidl_test_java_java",
	"hwbinder",
	"ims",
	"KeyChain",
	"ksoap2",
	"LocalTransport",
	"lockagent",
	"mediaframeworktest",
	"MediaProvider",
	"MmsService",
	"MtpDocumentsProvider",
	"MultiDisplayProvider",
	"NetworkStackIntegrationTestsLib",
	"NetworkStackNextIntegrationTests",
	"NetworkStackNextTests",
	"NetworkStackTests",
	"NetworkStackTestsLib",
	"NfcNci",
	"platform_library-docs",
	"PrintSpooler",
	"RollbackTest",
	"services",
	"services.accessibility",
	"services.backup",
	"services.core.unboosted",
	"services.devicepolicy",
	"services.print",
	"services.usage",
	"services.usb",
	"Settings-core",
	"SettingsLib",
	"SettingsProvider",
	"SettingsProviderTest",
	"Shell",
	"ShellTests",
	"sl4a.Common",
	"StatementService",
	"SystemUI-core",
	"SystemUISharedLib",
	"SystemUI-tests",
	"Telecom",
	"TelecomUnitTests",
	"telephony-common",
	"TelephonyProvider",
	"TelephonyProviderTests",
	"TeleService",
	"testables",
	"TetheringTests",
	"TetheringTestsLib",
	"time_zone_distro_installer",
	"time_zone_distro_installer-tests",
	"time_zone_distro-tests",
	"time_zone_updater",
	"TvProvider",
	"uiautomator-stubs-docs",
	"UsbHostExternalManagementTestApp",
	"UserDictionaryProvider",
	"WallpaperBackup",
	"wifi-service",
}

var legacyCorePlatformApiLookup = make(map[string]struct{})

func init() {
	for _, module := range legacyCorePlatformApiModules {
		legacyCorePlatformApiLookup[module] = struct{}{}
	}
}

func useLegacyCorePlatformApi(ctx android.EarlyModuleContext) bool {
	_, found := legacyCorePlatformApiLookup[ctx.ModuleName()]
	return found
}

func corePlatformSystemModules(ctx android.EarlyModuleContext) string {
	if useLegacyCorePlatformApi(ctx) {
		return config.LegacyCorePlatformSystemModules
	} else {
		return config.StableCorePlatformSystemModules
	}
}

func corePlatformBootclasspathLibraries(ctx android.EarlyModuleContext) []string {
	if useLegacyCorePlatformApi(ctx) {
		return config.LegacyCorePlatformBootclasspathLibraries
	} else {
		return config.StableCorePlatformBootclasspathLibraries
	}
}
+4 −4
Original line number Diff line number Diff line
@@ -413,8 +413,8 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep
	case sdkPrivate:
		return sdkDep{
			useModule:          true,
			systemModules:      config.LegacyCorePlatformSystemModules,
			bootclasspath:      config.LegacyCorePlatformBootclasspathLibraries,
			systemModules:      corePlatformSystemModules(ctx),
			bootclasspath:      corePlatformBootclasspathLibraries(ctx),
			classpath:          config.FrameworkLibraries,
			frameworkResModule: "framework-res",
		}
@@ -438,8 +438,8 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep
	case sdkCorePlatform:
		return sdkDep{
			useModule:        true,
			systemModules:    config.LegacyCorePlatformSystemModules,
			bootclasspath:    config.LegacyCorePlatformBootclasspathLibraries,
			systemModules:    corePlatformSystemModules(ctx),
			bootclasspath:    corePlatformBootclasspathLibraries(ctx),
			noFrameworksLibs: true,
		}
	case sdkPublic:
+9 −9
Original line number Diff line number Diff line
@@ -49,8 +49,8 @@ func TestClasspath(t *testing.T) {
	}{
		{
			name:           "default",
			bootclasspath:  config.LegacyCorePlatformBootclasspathLibraries,
			system:         config.LegacyCorePlatformSystemModules,
			bootclasspath:  config.StableCorePlatformBootclasspathLibraries,
			system:         config.StableCorePlatformSystemModules,
			java8classpath: config.FrameworkLibraries,
			java9classpath: config.FrameworkLibraries,
			aidl:           "-Iframework/aidl",
@@ -58,16 +58,16 @@ func TestClasspath(t *testing.T) {
		{
			name:           `sdk_version:"core_platform"`,
			properties:     `sdk_version:"core_platform"`,
			bootclasspath:  config.LegacyCorePlatformBootclasspathLibraries,
			system:         config.LegacyCorePlatformSystemModules,
			bootclasspath:  config.StableCorePlatformBootclasspathLibraries,
			system:         config.StableCorePlatformSystemModules,
			java8classpath: []string{},
			aidl:           "",
		},
		{
			name:           "blank sdk version",
			properties:     `sdk_version: "",`,
			bootclasspath:  config.LegacyCorePlatformBootclasspathLibraries,
			system:         config.LegacyCorePlatformSystemModules,
			bootclasspath:  config.StableCorePlatformBootclasspathLibraries,
			system:         config.StableCorePlatformSystemModules,
			java8classpath: config.FrameworkLibraries,
			java9classpath: config.FrameworkLibraries,
			aidl:           "-Iframework/aidl",
@@ -155,9 +155,9 @@ func TestClasspath(t *testing.T) {
		{

			name:           "nostdlib system_modules",
			properties:     `sdk_version: "none", system_modules: "legacy-core-platform-api-stubs-system-modules"`,
			system:         "legacy-core-platform-api-stubs-system-modules",
			bootclasspath:  []string{"legacy-core-platform-api-stubs-system-modules-lib"},
			properties:     `sdk_version: "none", system_modules: "stable-core-platform-api-stubs-system-modules"`,
			system:         "stable-core-platform-api-stubs-system-modules",
			bootclasspath:  []string{"stable-core-platform-api-stubs-system-modules-lib"},
			java8classpath: []string{},
		},
		{
Loading