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
This commit is contained in:
parent
14f42d34af
commit
f40fc858a2
|
@ -112,7 +112,9 @@ type appProperties struct {
|
||||||
IsCoverageVariant bool `blueprint:"mutated"`
|
IsCoverageVariant bool `blueprint:"mutated"`
|
||||||
|
|
||||||
// Whether this app is considered mainline updatable or not. When set to true, this will enforce
|
// 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
|
Updatable *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,6 +264,9 @@ func (a *AndroidApp) checkAppSdkVersions(ctx android.ModuleContext) {
|
||||||
if !a.sdkVersion().stable() {
|
if !a.sdkVersion().stable() {
|
||||||
ctx.PropertyErrorf("sdk_version", "Updatable apps must use stable SDKs, found %v", a.sdkVersion())
|
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)
|
a.checkPlatformAPI(ctx)
|
||||||
|
|
|
@ -276,6 +276,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "29",
|
sdk_version: "29",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -285,6 +286,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "system_29",
|
sdk_version: "system_29",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -294,6 +296,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -303,6 +306,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "system_current",
|
sdk_version: "system_current",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -312,6 +316,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "module_current",
|
sdk_version: "module_current",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -321,6 +326,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "core_current",
|
sdk_version: "core_current",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
|
@ -330,6 +336,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
platform_apis: true,
|
platform_apis: true,
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
expectedError: "Updatable apps must use stable SDKs",
|
expectedError: "Updatable apps must use stable SDKs",
|
||||||
|
@ -340,6 +347,7 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
sdk_version: "core_platform",
|
sdk_version: "core_platform",
|
||||||
|
min_sdk_version: "29",
|
||||||
updatable: true,
|
updatable: true,
|
||||||
}`,
|
}`,
|
||||||
expectedError: "Updatable apps must use stable SDKs",
|
expectedError: "Updatable apps must use stable SDKs",
|
||||||
|
@ -350,9 +358,20 @@ func TestUpdatableApps(t *testing.T) {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
updatable: true,
|
updatable: true,
|
||||||
|
min_sdk_version: "29",
|
||||||
}`,
|
}`,
|
||||||
expectedError: "Updatable apps must use stable SDK",
|
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 {
|
for _, test := range testCases {
|
||||||
|
|
Loading…
Reference in New Issue