Fix the symbol file paths for files in APEXes
This change fixes the problem that symbol files for APEXes are installed to incorrect path when TARGET_FLATTEN_APEX is set to true or the canonical name of an APEX is different fro the module name of the APEX. For the case when TARGET_FLATTEN_APEX is true, LOCAL_SOONG_SYMBOL_PATH is set to point to the runtime path of a file (e.g. /apex/<name>/*). For the case of the different canonical and module names, apex_name property is added to explicitly specify the canonical name Bug: 120846816 Test: m and inspect that symbol files exist under $(PRODUCT_OUT)/symbols/apex/com.android.runtime/ Change-Id: Idfec88d6a30a18c225b0d87b868b9f1e0a617e38
This commit is contained in:
12
apex/apex.go
12
apex/apex.go
@@ -218,6 +218,10 @@ type apexBundleProperties struct {
|
||||
// If unspecified, a default one is automatically generated.
|
||||
AndroidManifest *string `android:"path"`
|
||||
|
||||
// Canonical name of the APEX bundle in the manifest file.
|
||||
// If unspecified, defaults to the value of name
|
||||
Apex_name *string
|
||||
|
||||
// Determines the file contexts file for setting security context to each file in this APEX bundle.
|
||||
// Specifically, when this is set to <value>, /system/sepolicy/apex/<value>_file_contexts file is
|
||||
// used.
|
||||
@@ -1063,17 +1067,19 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, name, moduleDir string, apex
|
||||
fmt.Fprintln(w, "\ninclude $(CLEAR_VARS)")
|
||||
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE :=", fi.moduleName)
|
||||
// /apex/<name>/{lib|framework|...}
|
||||
pathWhenActivated := filepath.Join("$(PRODUCT_OUT)", "apex",
|
||||
proptools.StringDefault(a.properties.Apex_name, name), fi.installDir)
|
||||
if a.flattened && apexType.image() {
|
||||
// /system/apex/<name>/{lib|framework|...}
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(OUT_DIR)",
|
||||
a.installDir.RelPathString(), name, fi.installDir))
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_SYMBOL_PATH :=", pathWhenActivated)
|
||||
if len(fi.symlinks) > 0 {
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_SYMLINKS :=", strings.Join(fi.symlinks, " "))
|
||||
}
|
||||
} else {
|
||||
// /apex/<name>/{lib|framework|...}
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(PRODUCT_OUT)",
|
||||
"apex", name, fi.installDir))
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", pathWhenActivated)
|
||||
}
|
||||
fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE :=", fi.builtFile.String())
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_CLASS :=", fi.class.NameInMake())
|
||||
|
Reference in New Issue
Block a user