Loading android/module.go +10 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ type ModuleContext interface { CheckbuildFile(srcPath Path) InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -192,6 +193,7 @@ type Module interface { Enabled() bool Target() Target InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -832,6 +834,10 @@ func (m *ModuleBase) InstallInData() bool { return false } func (m *ModuleBase) InstallInTestcases() bool { return false } func (m *ModuleBase) InstallInSanitizerDir() bool { return false } Loading Loading @@ -1504,6 +1510,10 @@ func (m *moduleContext) InstallInData() bool { return m.module.InstallInData() } func (m *moduleContext) InstallInTestcases() bool { return m.module.InstallInTestcases() } func (m *moduleContext) InstallInSanitizerDir() bool { return m.module.InstallInSanitizerDir() } Loading android/paths.go +3 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ type ModuleInstallPathContext interface { BaseModuleContext InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -1155,6 +1156,8 @@ func modulePartition(ctx ModuleInstallPathContext) string { var partition string if ctx.InstallInData() { partition = "data" } else if ctx.InstallInTestcases() { partition = "testcases" } else if ctx.InstallInRecovery() { // the layout of recovery partion is the same as that of system partition partition = "recovery/root/system" Loading android/paths_test.go +5 −0 Original line number Diff line number Diff line Loading @@ -201,6 +201,7 @@ type moduleInstallPathContextImpl struct { baseModuleContext inData bool inTestcases bool inSanitizerDir bool inRecovery bool } Loading @@ -219,6 +220,10 @@ func (m moduleInstallPathContextImpl) InstallInData() bool { return m.inData } func (m moduleInstallPathContextImpl) InstallInTestcases() bool { return m.inTestcases } func (m moduleInstallPathContextImpl) InstallInSanitizerDir() bool { return m.inSanitizerDir } Loading java/androidmk.go +2 −1 Original line number Diff line number Diff line Loading @@ -329,7 +329,8 @@ func (app *AndroidApp) AndroidMkEntries() android.AndroidMkEntries { entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", app.dexpreopter.builtInstalled) } for _, split := range app.aapt.splits { install := "$(LOCAL_MODULE_PATH)/" + strings.TrimSuffix(app.installApkName, ".apk") + split.suffix + ".apk" install := app.onDeviceDir + "/" + strings.TrimSuffix(app.installApkName, ".apk") + "_" + split.suffix + ".apk" entries.AddStrings("LOCAL_SOONG_BUILT_INSTALLED", split.path.String()+":"+install) } }, Loading java/app.go +19 −10 Original line number Diff line number Diff line Loading @@ -126,6 +126,10 @@ type AndroidApp struct { // the install APK name is normally the same as the module name, but can be overridden with PRODUCT_PACKAGE_NAME_OVERRIDES. installApkName string installDir android.OutputPath onDeviceDir string additionalAaptFlags []string noticeOutputs android.NoticeOutputs Loading Loading @@ -319,7 +323,6 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path { } else { installDir = filepath.Join("app", a.installApkName) } a.dexpreopter.installPath = android.PathForModuleInstall(ctx, installDir, a.installApkName+".apk") a.dexpreopter.isInstallable = Bool(a.properties.Installable) a.dexpreopter.uncompressedDex = a.shouldUncompressDex(ctx) Loading Loading @@ -352,7 +355,7 @@ func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext return jniJarFile } func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext, installDir android.OutputPath) { func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext) { // Collect NOTICE files from all dependencies. seenModules := make(map[android.Module]bool) noticePathSet := make(map[android.Path]bool) Loading Loading @@ -392,7 +395,7 @@ func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext, installDir an return noticePaths[i].String() < noticePaths[j].String() }) a.noticeOutputs = android.BuildNoticeOutput(ctx, installDir, a.installApkName+".apk", noticePaths) a.noticeOutputs = android.BuildNoticeOutput(ctx, a.installDir, a.installApkName+".apk", noticePaths) } // Reads and prepends a main cert from the default cert dir if it hasn't been set already, i.e. it Loading Loading @@ -438,17 +441,19 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { // Check if the install APK name needs to be overridden. a.installApkName = ctx.DeviceConfig().OverridePackageNameFor(a.Name()) var installDir android.OutputPath if ctx.ModuleName() == "framework-res" { // framework-res.apk is installed as system/framework/framework-res.apk installDir = android.PathForModuleInstall(ctx, "framework") a.installDir = android.PathForModuleInstall(ctx, "framework") } else if Bool(a.appProperties.Privileged) { installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName) a.installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName) } else if ctx.InstallInTestcases() { a.installDir = android.PathForModuleInstall(ctx, a.installApkName) } else { installDir = android.PathForModuleInstall(ctx, "app", a.installApkName) a.installDir = android.PathForModuleInstall(ctx, "app", a.installApkName) } a.onDeviceDir = android.InstallPathToOnDevicePath(ctx, a.installDir) a.noticeBuildActions(ctx, installDir) a.noticeBuildActions(ctx) if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") { a.aapt.noticeFile = a.noticeOutputs.HtmlGzOutput } Loading Loading @@ -494,9 +499,9 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { a.bundleFile = bundleFile // Install the app package. ctx.InstallFile(installDir, a.installApkName+".apk", a.outputFile) ctx.InstallFile(a.installDir, a.installApkName+".apk", a.outputFile) for _, split := range a.aapt.splits { ctx.InstallFile(installDir, a.installApkName+"_"+split.suffix+".apk", split.path) ctx.InstallFile(a.installDir, a.installApkName+"_"+split.suffix+".apk", split.path) } } Loading Loading @@ -598,6 +603,10 @@ type AndroidTest struct { data android.Paths } func (a *AndroidTest) InstallInTestcases() bool { return true } func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Check if the instrumentation target package is overridden before generating build actions. if a.appTestProperties.Instrumentation_for != nil { Loading Loading
android/module.go +10 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ type ModuleContext interface { CheckbuildFile(srcPath Path) InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -192,6 +193,7 @@ type Module interface { Enabled() bool Target() Target InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -832,6 +834,10 @@ func (m *ModuleBase) InstallInData() bool { return false } func (m *ModuleBase) InstallInTestcases() bool { return false } func (m *ModuleBase) InstallInSanitizerDir() bool { return false } Loading Loading @@ -1504,6 +1510,10 @@ func (m *moduleContext) InstallInData() bool { return m.module.InstallInData() } func (m *moduleContext) InstallInTestcases() bool { return m.module.InstallInTestcases() } func (m *moduleContext) InstallInSanitizerDir() bool { return m.module.InstallInSanitizerDir() } Loading
android/paths.go +3 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ type ModuleInstallPathContext interface { BaseModuleContext InstallInData() bool InstallInTestcases() bool InstallInSanitizerDir() bool InstallInRecovery() bool InstallBypassMake() bool Loading Loading @@ -1155,6 +1156,8 @@ func modulePartition(ctx ModuleInstallPathContext) string { var partition string if ctx.InstallInData() { partition = "data" } else if ctx.InstallInTestcases() { partition = "testcases" } else if ctx.InstallInRecovery() { // the layout of recovery partion is the same as that of system partition partition = "recovery/root/system" Loading
android/paths_test.go +5 −0 Original line number Diff line number Diff line Loading @@ -201,6 +201,7 @@ type moduleInstallPathContextImpl struct { baseModuleContext inData bool inTestcases bool inSanitizerDir bool inRecovery bool } Loading @@ -219,6 +220,10 @@ func (m moduleInstallPathContextImpl) InstallInData() bool { return m.inData } func (m moduleInstallPathContextImpl) InstallInTestcases() bool { return m.inTestcases } func (m moduleInstallPathContextImpl) InstallInSanitizerDir() bool { return m.inSanitizerDir } Loading
java/androidmk.go +2 −1 Original line number Diff line number Diff line Loading @@ -329,7 +329,8 @@ func (app *AndroidApp) AndroidMkEntries() android.AndroidMkEntries { entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", app.dexpreopter.builtInstalled) } for _, split := range app.aapt.splits { install := "$(LOCAL_MODULE_PATH)/" + strings.TrimSuffix(app.installApkName, ".apk") + split.suffix + ".apk" install := app.onDeviceDir + "/" + strings.TrimSuffix(app.installApkName, ".apk") + "_" + split.suffix + ".apk" entries.AddStrings("LOCAL_SOONG_BUILT_INSTALLED", split.path.String()+":"+install) } }, Loading
java/app.go +19 −10 Original line number Diff line number Diff line Loading @@ -126,6 +126,10 @@ type AndroidApp struct { // the install APK name is normally the same as the module name, but can be overridden with PRODUCT_PACKAGE_NAME_OVERRIDES. installApkName string installDir android.OutputPath onDeviceDir string additionalAaptFlags []string noticeOutputs android.NoticeOutputs Loading Loading @@ -319,7 +323,6 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path { } else { installDir = filepath.Join("app", a.installApkName) } a.dexpreopter.installPath = android.PathForModuleInstall(ctx, installDir, a.installApkName+".apk") a.dexpreopter.isInstallable = Bool(a.properties.Installable) a.dexpreopter.uncompressedDex = a.shouldUncompressDex(ctx) Loading Loading @@ -352,7 +355,7 @@ func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext return jniJarFile } func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext, installDir android.OutputPath) { func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext) { // Collect NOTICE files from all dependencies. seenModules := make(map[android.Module]bool) noticePathSet := make(map[android.Path]bool) Loading Loading @@ -392,7 +395,7 @@ func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext, installDir an return noticePaths[i].String() < noticePaths[j].String() }) a.noticeOutputs = android.BuildNoticeOutput(ctx, installDir, a.installApkName+".apk", noticePaths) a.noticeOutputs = android.BuildNoticeOutput(ctx, a.installDir, a.installApkName+".apk", noticePaths) } // Reads and prepends a main cert from the default cert dir if it hasn't been set already, i.e. it Loading Loading @@ -438,17 +441,19 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { // Check if the install APK name needs to be overridden. a.installApkName = ctx.DeviceConfig().OverridePackageNameFor(a.Name()) var installDir android.OutputPath if ctx.ModuleName() == "framework-res" { // framework-res.apk is installed as system/framework/framework-res.apk installDir = android.PathForModuleInstall(ctx, "framework") a.installDir = android.PathForModuleInstall(ctx, "framework") } else if Bool(a.appProperties.Privileged) { installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName) a.installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName) } else if ctx.InstallInTestcases() { a.installDir = android.PathForModuleInstall(ctx, a.installApkName) } else { installDir = android.PathForModuleInstall(ctx, "app", a.installApkName) a.installDir = android.PathForModuleInstall(ctx, "app", a.installApkName) } a.onDeviceDir = android.InstallPathToOnDevicePath(ctx, a.installDir) a.noticeBuildActions(ctx, installDir) a.noticeBuildActions(ctx) if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") { a.aapt.noticeFile = a.noticeOutputs.HtmlGzOutput } Loading Loading @@ -494,9 +499,9 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { a.bundleFile = bundleFile // Install the app package. ctx.InstallFile(installDir, a.installApkName+".apk", a.outputFile) ctx.InstallFile(a.installDir, a.installApkName+".apk", a.outputFile) for _, split := range a.aapt.splits { ctx.InstallFile(installDir, a.installApkName+"_"+split.suffix+".apk", split.path) ctx.InstallFile(a.installDir, a.installApkName+"_"+split.suffix+".apk", split.path) } } Loading Loading @@ -598,6 +603,10 @@ type AndroidTest struct { data android.Paths } func (a *AndroidTest) InstallInTestcases() bool { return true } func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Check if the instrumentation target package is overridden before generating build actions. if a.appTestProperties.Instrumentation_for != nil { Loading