Do not allow updatable apps without min_sdk_version.
All updatable modules are expected to declare their earliest platform
version they support.
Bug: 153539598
Test: m
Change-Id: I6243d276e5ab25a1007187ad34789ca1b4cc87bf
Merged-In: I6243d276e5ab25a1007187ad34789ca1b4cc87bf
Exempt-From-Owner-Approval: cherry-pick from aosp
(cherry picked from commit f40fc858a2
)
This commit is contained in:
parent
7aa5899e56
commit
1196210718
|
@ -112,7 +112,9 @@ type appProperties struct {
|
|||
IsCoverageVariant bool `blueprint:"mutated"`
|
||||
|
||||
// Whether this app is considered mainline updatable or not. When set to true, this will enforce
|
||||
// additional rules for making sure that the APK is truly updatable. Default is false.
|
||||
// additional rules to make sure an app can safely be updated. Default is false.
|
||||
// Prefer using other specific properties if build behaviour must be changed; avoid using this
|
||||
// flag for anything but neverallow rules (unless the behaviour change is invisible to owners).
|
||||
Updatable *bool
|
||||
}
|
||||
|
||||
|
@ -255,6 +257,9 @@ func (a *AndroidApp) checkAppSdkVersions(ctx android.ModuleContext) {
|
|||
if !a.sdkVersion().stable() {
|
||||
ctx.PropertyErrorf("sdk_version", "Updatable apps must use stable SDKs, found %v", a.sdkVersion())
|
||||
}
|
||||
if String(a.deviceProperties.Min_sdk_version) == "" {
|
||||
ctx.PropertyErrorf("updatable", "updatable apps must set min_sdk_version.")
|
||||
}
|
||||
}
|
||||
|
||||
a.checkPlatformAPI(ctx)
|
||||
|
|
|
@ -276,6 +276,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "29",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -285,6 +286,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "system_29",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -294,6 +296,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -303,6 +306,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "system_current",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -312,6 +316,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "module_current",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -321,6 +326,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "core_current",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
},
|
||||
|
@ -330,6 +336,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
platform_apis: true,
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
expectedError: "Updatable apps must use stable SDKs",
|
||||
|
@ -340,6 +347,7 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "core_platform",
|
||||
min_sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
expectedError: "Updatable apps must use stable SDKs",
|
||||
|
@ -350,9 +358,20 @@ func TestUpdatableApps(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
updatable: true,
|
||||
min_sdk_version: "29",
|
||||
}`,
|
||||
expectedError: "Updatable apps must use stable SDK",
|
||||
},
|
||||
{
|
||||
name: "Must specify min_sdk_version",
|
||||
bp: `android_app {
|
||||
name: "app_without_min_sdk_version",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "29",
|
||||
updatable: true,
|
||||
}`,
|
||||
expectedError: "updatable apps must set min_sdk_version.",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
|
|
Loading…
Reference in New Issue