Loading apex/apex_test.go +41 −1 Original line number Diff line number Diff line Loading @@ -827,7 +827,7 @@ func TestKeys(t *testing.T) { `) // check the APEX keys keys := ctx.ModuleForTests("myapex.key", "").Module().(*apexKey) keys := ctx.ModuleForTests("myapex.key", "android_common").Module().(*apexKey) if keys.public_key_file.String() != "vendor/foo/devkeys/testkey.avbpubkey" { t.Errorf("public key %q is not %q", keys.public_key_file.String(), Loading Loading @@ -1144,3 +1144,43 @@ func TestApexWithShBinary(t *testing.T) { ensureContains(t, copyCmds, "image.apex/bin/script/myscript.sh") } func TestApexInProductPartition(t *testing.T) { ctx := testApex(t, ` apex { name: "myapex", key: "myapex.key", native_shared_libs: ["mylib"], product_specific: true, } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", product_specific: true, } cc_library { name: "mylib", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", } `) apex := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*apexBundle) expected := "target/product/test_device/product/apex" actual := apex.installDir.RelPathString() if actual != expected { t.Errorf("wrong install path. expected %q. actual %q", expected, actual) } apex_key := ctx.ModuleForTests("myapex.key", "android_common").Module().(*apexKey) expected = "target/product/test_device/product/etc/security/apex" actual = apex_key.installDir.RelPathString() if actual != expected { t.Errorf("wrong install path. expected %q. actual %q", expected, actual) } } apex/key.go +7 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package apex import ( "fmt" "io" "path/filepath" "strings" "android/soong/android" Loading @@ -38,6 +39,7 @@ type apexKey struct { public_key_file android.Path private_key_file android.Path installDir android.OutputPath keyName string } Loading @@ -56,7 +58,8 @@ type apexKeyProperties struct { func apexKeyFactory() android.Module { module := &apexKey{} module.AddProperties(&module.properties) android.InitAndroidModule(module) // This module is device-only android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon) return module } Loading Loading @@ -86,8 +89,9 @@ func (m *apexKey) GenerateAndroidBuildActions(ctx android.ModuleContext) { } m.keyName = pubKeyName m.installDir = android.PathForModuleInstall(ctx, "etc/security/apex") if m.installable() { ctx.InstallFile(android.PathForModuleInstall(ctx, "etc/security/apex"), m.keyName, m.public_key_file) ctx.InstallFile(m.installDir, m.keyName, m.public_key_file) } } Loading @@ -97,7 +101,7 @@ func (m *apexKey) AndroidMk() android.AndroidMkData { OutputFile: android.OptionalPathForPath(m.public_key_file), Extra: []android.AndroidMkExtraFunc{ func(w io.Writer, outputFile android.Path) { fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", "$(TARGET_OUT)/etc/security/apex") fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(OUT_DIR)", m.installDir.RelPathString())) fmt.Fprintln(w, "LOCAL_INSTALLED_MODULE_STEM :=", m.keyName) fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !m.installable()) }, Loading Loading
apex/apex_test.go +41 −1 Original line number Diff line number Diff line Loading @@ -827,7 +827,7 @@ func TestKeys(t *testing.T) { `) // check the APEX keys keys := ctx.ModuleForTests("myapex.key", "").Module().(*apexKey) keys := ctx.ModuleForTests("myapex.key", "android_common").Module().(*apexKey) if keys.public_key_file.String() != "vendor/foo/devkeys/testkey.avbpubkey" { t.Errorf("public key %q is not %q", keys.public_key_file.String(), Loading Loading @@ -1144,3 +1144,43 @@ func TestApexWithShBinary(t *testing.T) { ensureContains(t, copyCmds, "image.apex/bin/script/myscript.sh") } func TestApexInProductPartition(t *testing.T) { ctx := testApex(t, ` apex { name: "myapex", key: "myapex.key", native_shared_libs: ["mylib"], product_specific: true, } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", product_specific: true, } cc_library { name: "mylib", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", } `) apex := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*apexBundle) expected := "target/product/test_device/product/apex" actual := apex.installDir.RelPathString() if actual != expected { t.Errorf("wrong install path. expected %q. actual %q", expected, actual) } apex_key := ctx.ModuleForTests("myapex.key", "android_common").Module().(*apexKey) expected = "target/product/test_device/product/etc/security/apex" actual = apex_key.installDir.RelPathString() if actual != expected { t.Errorf("wrong install path. expected %q. actual %q", expected, actual) } }
apex/key.go +7 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package apex import ( "fmt" "io" "path/filepath" "strings" "android/soong/android" Loading @@ -38,6 +39,7 @@ type apexKey struct { public_key_file android.Path private_key_file android.Path installDir android.OutputPath keyName string } Loading @@ -56,7 +58,8 @@ type apexKeyProperties struct { func apexKeyFactory() android.Module { module := &apexKey{} module.AddProperties(&module.properties) android.InitAndroidModule(module) // This module is device-only android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon) return module } Loading Loading @@ -86,8 +89,9 @@ func (m *apexKey) GenerateAndroidBuildActions(ctx android.ModuleContext) { } m.keyName = pubKeyName m.installDir = android.PathForModuleInstall(ctx, "etc/security/apex") if m.installable() { ctx.InstallFile(android.PathForModuleInstall(ctx, "etc/security/apex"), m.keyName, m.public_key_file) ctx.InstallFile(m.installDir, m.keyName, m.public_key_file) } } Loading @@ -97,7 +101,7 @@ func (m *apexKey) AndroidMk() android.AndroidMkData { OutputFile: android.OptionalPathForPath(m.public_key_file), Extra: []android.AndroidMkExtraFunc{ func(w io.Writer, outputFile android.Path) { fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", "$(TARGET_OUT)/etc/security/apex") fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(OUT_DIR)", m.installDir.RelPathString())) fmt.Fprintln(w, "LOCAL_INSTALLED_MODULE_STEM :=", m.keyName) fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !m.installable()) }, Loading