Prevent overridden APEX from being installed even when flattened
Previously, both overridden APEX and overriding APEX were installed together when TARGET_FLATTEN_APEX is set to true. This was because the Make modules for flattened APEXes are phony where LOCAL_OVERRIDES_MODULES isn't respected. Fixing the problem by letting apex_manifest.pb for the overriding APEX to override all modules for the overridden APEXes. Bug: 147384966 Test: OVERRIDE_TARGET_FLATTEN_APEX=true m dump-files | grep mediaprovider shows : out/target/product/coral/system/apex/com.google.android.mediaprovider/apex_manifest.pb : out/target/product/coral/system/apex/com.google.android.mediaprovider/apex_pubkey : out/target/product/coral/system/apex/com.google.android.mediaprovider/javalib/framework-mediaprovider.jar : out/target/product/coral/system/apex/com.google.android.mediaprovider/lib64/libfuse.so : out/target/product/coral/system/apex/com.google.android.mediaprovider/priv-app/MediaProvider/MediaProviderGoogle.apk only Change-Id: I6dc3fc7aaee0474cbad9fadbfce765be4b751328
This commit is contained in:
@@ -151,9 +151,19 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexName, moduleDir string)
|
|||||||
fmt.Fprintln(w, "include $(BUILD_SYSTEM)/soong_cc_prebuilt.mk")
|
fmt.Fprintln(w, "include $(BUILD_SYSTEM)/soong_cc_prebuilt.mk")
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", fi.builtFile.Base())
|
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", fi.builtFile.Base())
|
||||||
// For flattened apexes, compat symlinks are attached to apex_manifest.json which is guaranteed for every apex
|
if a.primaryApexType && fi.builtFile == a.manifestPbOut {
|
||||||
if a.primaryApexType && fi.builtFile == a.manifestPbOut && len(a.compatSymlinks) > 0 {
|
// Make apex_manifest.pb module for this APEX to override all other
|
||||||
fmt.Fprintln(w, "LOCAL_POST_INSTALL_CMD :=", strings.Join(a.compatSymlinks, " && "))
|
// modules in the APEXes being overridden by this APEX
|
||||||
|
var patterns []string
|
||||||
|
for _, o := range a.overridableProperties.Overrides {
|
||||||
|
patterns = append(patterns, "%."+o+a.suffix)
|
||||||
|
}
|
||||||
|
fmt.Fprintln(w, "LOCAL_OVERRIDES_MODULES :=", strings.Join(patterns, " "))
|
||||||
|
|
||||||
|
if len(a.compatSymlinks) > 0 {
|
||||||
|
// For flattened apexes, compat symlinks are attached to apex_manifest.json which is guaranteed for every apex
|
||||||
|
fmt.Fprintln(w, "LOCAL_POST_INSTALL_CMD :=", strings.Join(a.compatSymlinks, " && "))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user