Loading apex/apex.go +13 −2 Original line number Diff line number Diff line Loading @@ -1021,8 +1021,10 @@ type apexBundleProperties struct { IsCoverageVariant bool `blueprint:"mutated"` // Whether this APEX is considered updatable or not. When set to true, this will enforce additional // rules for making sure that the APEX is truely updatable. This will also disable the size optimizations // like symlinking to the system libs. Default is false. // rules for making sure that the APEX is truly updatable. // - To be updatable, min_sdk_version should be set as well // This will also disable the size optimizations like symlinking to the system libs. // Default is false. Updatable *bool // The minimum SDK version that this apex must be compatibile with. Loading Loading @@ -1794,6 +1796,14 @@ func (a *apexBundle) checkApexAvailability(ctx android.ModuleContext) { }) } func (a *apexBundle) checkUpdatable(ctx android.ModuleContext) { if proptools.Bool(a.properties.Updatable) { if String(a.properties.Min_sdk_version) == "" { ctx.PropertyErrorf("updatable", "updatable APEXes should set min_sdk_version as well") } } } // Collects the list of module names that directly or indirectly contributes to the payload of this APEX func (a *apexBundle) collectDepsInfo(ctx android.ModuleContext) { a.depInfos = make(map[string]depInfo) Loading Loading @@ -1859,6 +1869,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { } a.checkApexAvailability(ctx) a.checkUpdatable(ctx) a.collectDepsInfo(ctx) Loading apex/apex_test.go +19 −0 Original line number Diff line number Diff line Loading @@ -4099,6 +4099,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { native_shared_libs: ["mylib"], java_libs: ["myjar"], updatable: true, min_sdk_version: "current", } apex_key { Loading Loading @@ -4396,6 +4397,22 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg, bp string, transformDe } } func TestUpdatable_should_set_min_sdk_version(t *testing.T) { testApexError(t, `"myapex" .*: updatable: updatable APEXes should set min_sdk_version`, ` apex { name: "myapex", key: "myapex.key", updatable: true, } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } `) } func TestNoUpdatableJarsInBootImage(t *testing.T) { bp := ` java_library { Loading Loading @@ -4434,6 +4451,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { key: "some-updatable-apex.key", java_libs: ["some-updatable-apex-lib"], updatable: true, min_sdk_version: "current", } apex { Loading @@ -4455,6 +4473,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { key: "com.android.art.something.key", java_libs: ["some-art-lib"], updatable: true, min_sdk_version: "current", } apex_key { Loading Loading
apex/apex.go +13 −2 Original line number Diff line number Diff line Loading @@ -1021,8 +1021,10 @@ type apexBundleProperties struct { IsCoverageVariant bool `blueprint:"mutated"` // Whether this APEX is considered updatable or not. When set to true, this will enforce additional // rules for making sure that the APEX is truely updatable. This will also disable the size optimizations // like symlinking to the system libs. Default is false. // rules for making sure that the APEX is truly updatable. // - To be updatable, min_sdk_version should be set as well // This will also disable the size optimizations like symlinking to the system libs. // Default is false. Updatable *bool // The minimum SDK version that this apex must be compatibile with. Loading Loading @@ -1794,6 +1796,14 @@ func (a *apexBundle) checkApexAvailability(ctx android.ModuleContext) { }) } func (a *apexBundle) checkUpdatable(ctx android.ModuleContext) { if proptools.Bool(a.properties.Updatable) { if String(a.properties.Min_sdk_version) == "" { ctx.PropertyErrorf("updatable", "updatable APEXes should set min_sdk_version as well") } } } // Collects the list of module names that directly or indirectly contributes to the payload of this APEX func (a *apexBundle) collectDepsInfo(ctx android.ModuleContext) { a.depInfos = make(map[string]depInfo) Loading Loading @@ -1859,6 +1869,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { } a.checkApexAvailability(ctx) a.checkUpdatable(ctx) a.collectDepsInfo(ctx) Loading
apex/apex_test.go +19 −0 Original line number Diff line number Diff line Loading @@ -4099,6 +4099,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { native_shared_libs: ["mylib"], java_libs: ["myjar"], updatable: true, min_sdk_version: "current", } apex_key { Loading Loading @@ -4396,6 +4397,22 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg, bp string, transformDe } } func TestUpdatable_should_set_min_sdk_version(t *testing.T) { testApexError(t, `"myapex" .*: updatable: updatable APEXes should set min_sdk_version`, ` apex { name: "myapex", key: "myapex.key", updatable: true, } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } `) } func TestNoUpdatableJarsInBootImage(t *testing.T) { bp := ` java_library { Loading Loading @@ -4434,6 +4451,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { key: "some-updatable-apex.key", java_libs: ["some-updatable-apex-lib"], updatable: true, min_sdk_version: "current", } apex { Loading @@ -4455,6 +4473,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { key: "com.android.art.something.key", java_libs: ["some-art-lib"], updatable: true, min_sdk_version: "current", } apex_key { Loading