diff --git a/java/androidmk.go b/java/androidmk.go
index 4e594a2..0154544 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -398,6 +398,9 @@
 				if len(app.dexpreopter.builtInstalled) > 0 {
 					entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", app.dexpreopter.builtInstalled)
 				}
+				if app.dexpreopter.configPath != nil {
+					entries.SetPath("LOCAL_SOONG_DEXPREOPT_CONFIG", app.dexpreopter.configPath)
+				}
 				for _, extra := range app.extraOutputFiles {
 					install := app.onDeviceDir + "/" + extra.Base()
 					entries.AddStrings("LOCAL_SOONG_BUILT_INSTALLED", extra.String()+":"+install)
diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index 3571590..d00d74b 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -41,9 +41,12 @@
 
 	builtInstalled string
 
-	// A path to a dexpreopt.config file generated by Soong for libraries that may be used as a
-	// <uses-library> by Make modules. The path is passed to Make via LOCAL_SOONG_DEXPREOPT_CONFIG
-	// variable. If the path is nil, no config is generated (which is the case for apps and tests).
+	// The config is used for two purposes:
+	// - Passing dexpreopt information about libraries from Soong to Make. This is needed when
+	//   a <uses-library> is defined in Android.bp, but used in Android.mk (see dex_preopt_config_merger.py).
+	//   Note that dexpreopt.config might be needed even if dexpreopt is disabled for the library itself.
+	// - Dexpreopt post-processing (using dexpreopt artifacts from a prebuilt system image to incrementally
+	//   dexpreopt another partition).
 	configPath android.WritablePath
 }
 
@@ -138,27 +141,13 @@
 		}
 	}
 
-	if !d.isApp && !d.isTest {
-		// Slim dexpreopt config is serialized to dexpreopt.config files and used by
-		// dex_preopt_config_merger.py to get information about <uses-library> dependencies.
-		// Note that it might be needed even if dexpreopt is disabled for this module.
-		slimDexpreoptConfig := &dexpreopt.ModuleConfig{
-			Name:                 ctx.ModuleName(),
-			DexLocation:          dexLocation,
-			EnforceUsesLibraries: d.enforceUsesLibs,
-			ProvidesUsesLibrary:  providesUsesLib,
-			ClassLoaderContexts:  d.classLoaderContexts,
-			// The rest of the fields are not needed.
-		}
-		d.configPath = android.PathForModuleOut(ctx, "dexpreopt", "dexpreopt.config")
-		dexpreopt.WriteSlimModuleConfigForMake(ctx, slimDexpreoptConfig, d.configPath)
-	}
-
-	if d.dexpreoptDisabled(ctx) {
+	// If it is neither app nor test, make config files regardless of its dexpreopt setting.
+	// The config files are required for apps defined in make which depend on the lib.
+	// TODO(b/158843648): The config for apps should be generated as well regardless of setting.
+	if (d.isApp || d.isTest) && d.dexpreoptDisabled(ctx) {
 		return
 	}
 
-	globalSoong := dexpreopt.GetGlobalSoongConfig(ctx)
 	global := dexpreopt.GetGlobalConfig(ctx)
 
 	isSystemServerJar := inList(ctx.ModuleName(), global.SystemServerJars)
@@ -251,6 +240,15 @@
 		PresignedPrebuilt: d.isPresignedPrebuilt,
 	}
 
+	d.configPath = android.PathForModuleOut(ctx, "dexpreopt", "dexpreopt.config")
+	dexpreopt.WriteModuleConfig(ctx, dexpreoptConfig, d.configPath)
+
+	if d.dexpreoptDisabled(ctx) {
+		return
+	}
+
+	globalSoong := dexpreopt.GetGlobalSoongConfig(ctx)
+
 	dexpreoptRule, err := dexpreopt.GenerateDexpreoptRule(ctx, globalSoong, global, dexpreoptConfig)
 	if err != nil {
 		ctx.ModuleErrorf("error generating dexpreopt rule: %s", err.Error())
