From 0af20effc1d52bce16c40b04e6e9a5881e03c65e Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Thu, 17 Dec 2020 15:36:00 +0000 Subject: [PATCH] Remove sdk_version: "none" restriction Not entirely sure what the history behind requiring only libcore projects use this, but it is a bit annoying to have to allow-list every use. Bug: 173606718 Test: m nothing Change-Id: I66f71e67d3f17e7f983c8537dff537fe8419da95 --- android/neverallow.go | 33 ---------------------------- android/neverallow_test.go | 44 -------------------------------------- 2 files changed, 77 deletions(-) diff --git a/android/neverallow.go b/android/neverallow.go index 8b8e1accf..031b3f411 100644 --- a/android/neverallow.go +++ b/android/neverallow.go @@ -51,7 +51,6 @@ var neverallows = []Rule{} func init() { AddNeverAllowRules(createIncludeDirsRules()...) AddNeverAllowRules(createTrebleRules()...) - AddNeverAllowRules(createLibcoreRules()...) AddNeverAllowRules(createMediaRules()...) AddNeverAllowRules(createJavaDeviceForHostRules()...) AddNeverAllowRules(createCcSdkVariantRules()...) @@ -133,38 +132,6 @@ func createTrebleRules() []Rule { } } -func createLibcoreRules() []Rule { - var coreLibraryProjects = []string{ - "libcore", - "external/apache-harmony", - "external/apache-xml", - "external/bouncycastle", - "external/conscrypt", - "external/icu", - "external/okhttp", - "external/wycheproof", - "prebuilts", - } - - // Additional whitelisted path only used for ART testing, which needs access to core library - // targets. This does not affect the contents of a device image (system, vendor, etc.). - var artTests = []string{ - "art/test", - } - - // Core library constraints. The sdk_version: "none" can only be used in core library projects and ART tests. - // Access to core library targets is restricted using visibility rules. - rules := []Rule{ - NeverAllow(). - NotIn(coreLibraryProjects...). - NotIn(artTests...). - With("sdk_version", "none"). - WithoutMatcher("name", Regexp("^android_.*stubs_current$")), - } - - return rules -} - func createMediaRules() []Rule { return []Rule{ NeverAllow(). diff --git a/android/neverallow_test.go b/android/neverallow_test.go index 1d454e52f..8c7a5385d 100644 --- a/android/neverallow_test.go +++ b/android/neverallow_test.go @@ -215,50 +215,6 @@ var neverallowTests = []struct { "java_device_for_host can only be used in allowed projects", }, }, - // Libcore rule tests - { - name: "sdk_version: \"none\" inside core libraries", - fs: map[string][]byte{ - "libcore/Android.bp": []byte(` - java_library { - name: "inside_core_libraries", - sdk_version: "none", - }`), - }, - }, - { - name: "sdk_version: \"none\" on android_*stubs_current stub", - fs: map[string][]byte{ - "frameworks/base/Android.bp": []byte(` - java_library { - name: "android_stubs_current", - sdk_version: "none", - }`), - }, - }, - { - name: "sdk_version: \"none\" outside core libraries", - fs: map[string][]byte{ - "Android.bp": []byte(` - java_library { - name: "outside_core_libraries", - sdk_version: "none", - }`), - }, - expectedErrors: []string{ - "module \"outside_core_libraries\": violates neverallow", - }, - }, - { - name: "sdk_version: \"current\"", - fs: map[string][]byte{ - "Android.bp": []byte(` - java_library { - name: "outside_core_libraries", - sdk_version: "current", - }`), - }, - }, // CC sdk rule tests { name: `"sdk_variant_only" outside allowed list`,