Loading apex/vndk.go +22 −7 Original line number Diff line number Diff line Loading @@ -108,9 +108,8 @@ func apexVndkDepsMutator(mctx android.BottomUpMutatorContext) { func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks []string) { // small helper to add symlink commands addSymlink := func(target, dir, linkName string) { outDir := filepath.Join("$(PRODUCT_OUT)", dir) link := filepath.Join(outDir, linkName) symlinks = append(symlinks, "mkdir -p "+outDir+" && rm -rf "+link+" && ln -sf "+target+" "+link) link := filepath.Join(dir, linkName) symlinks = append(symlinks, "mkdir -p "+dir+" && rm -rf "+link+" && ln -sf "+target+" "+link) } // TODO(b/142911355): [VNDK APEX] Fix hard-coded references to /system/lib/vndk Loading @@ -121,12 +120,28 @@ func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks [] // the name of vndk apex is formatted "com.android.vndk.v" + version vndkVersion := strings.TrimPrefix(apexName, vndkApexNamePrefix) if ctx.Config().Android64() { addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-"+vndkVersion) } if !ctx.Config().Android64() || ctx.DeviceConfig().DeviceSecondaryArch() != "" { addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-"+vndkVersion) } } // http://b/121248172 - create a link from /system/usr/icu to // /apex/com.android.i18n/etc/icu so that apps can find the ICU .dat file. // A symlink can't overwrite a directory and the /system/usr/icu directory once // existed so the required structure must be created whatever we find. if apexName == "com.android.i18n" { addSymlink("/apex/"+apexName+"/etc/icu", "$(TARGET_OUT)/usr", "icu") } // TODO(b/124106384): Clean up compat symlinks for ART binaries. if strings.HasPrefix(apexName, "com.android.art.") { artBinaries := []string{"dalvikvm", "dex2oat"} for _, b := range artBinaries { addSymlink("/apex/com.android.art/bin/"+b, "$(TARGET_OUT)/bin", b) } } return Loading Loading
apex/vndk.go +22 −7 Original line number Diff line number Diff line Loading @@ -108,9 +108,8 @@ func apexVndkDepsMutator(mctx android.BottomUpMutatorContext) { func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks []string) { // small helper to add symlink commands addSymlink := func(target, dir, linkName string) { outDir := filepath.Join("$(PRODUCT_OUT)", dir) link := filepath.Join(outDir, linkName) symlinks = append(symlinks, "mkdir -p "+outDir+" && rm -rf "+link+" && ln -sf "+target+" "+link) link := filepath.Join(dir, linkName) symlinks = append(symlinks, "mkdir -p "+dir+" && rm -rf "+link+" && ln -sf "+target+" "+link) } // TODO(b/142911355): [VNDK APEX] Fix hard-coded references to /system/lib/vndk Loading @@ -121,12 +120,28 @@ func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks [] // the name of vndk apex is formatted "com.android.vndk.v" + version vndkVersion := strings.TrimPrefix(apexName, vndkApexNamePrefix) if ctx.Config().Android64() { addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-"+vndkVersion) } if !ctx.Config().Android64() || ctx.DeviceConfig().DeviceSecondaryArch() != "" { addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-sp-"+vndkVersion) addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-"+vndkVersion) } } // http://b/121248172 - create a link from /system/usr/icu to // /apex/com.android.i18n/etc/icu so that apps can find the ICU .dat file. // A symlink can't overwrite a directory and the /system/usr/icu directory once // existed so the required structure must be created whatever we find. if apexName == "com.android.i18n" { addSymlink("/apex/"+apexName+"/etc/icu", "$(TARGET_OUT)/usr", "icu") } // TODO(b/124106384): Clean up compat symlinks for ART binaries. if strings.HasPrefix(apexName, "com.android.art.") { artBinaries := []string{"dalvikvm", "dex2oat"} for _, b := range artBinaries { addSymlink("/apex/com.android.art/bin/"+b, "$(TARGET_OUT)/bin", b) } } return Loading