diff --git a/api/api.go b/api/api.go
index 93f1354..2212000 100644
--- a/api/api.go
+++ b/api/api.go
@@ -148,17 +148,11 @@
 	ctx.CreateModule(genrule.GenRuleFactory, &props)
 }
 
-// This produces the same annotations.zip as framework-doc-stubs, but by using
-// outputs from individual modules instead of all the source code.
-func createMergedAnnotations(ctx android.LoadHookContext, modules []string) {
-	props := genruleProps{}
-	props.Name = proptools.StringPtr("sdk-annotations.zip")
-	props.Tools = []string{"merge_annotation_zips", "soong_zip"}
-	props.Out = []string{"annotations.zip"}
-	props.Cmd = proptools.StringPtr("$(location merge_annotation_zips) $(genDir)/out $(in) && " +
-		"$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out")
-	props.Srcs = append([]string{":android-non-updatable-doc-stubs{.annotations.zip}"}, createSrcs(modules, "{.public.annotations.zip}")...)
-	ctx.CreateModule(genrule.GenRuleFactory, &props)
+func createMergedPublicAnnotationsFilegroup(ctx android.LoadHookContext, modules []string) {
+	props := fgProps{}
+	props.Name = proptools.StringPtr("all-modules-public-annotations")
+	props.Srcs = createSrcs(modules, "{.public.annotations.zip}")
+	ctx.CreateModule(android.FileGroupFactory, &props)
 }
 
 func createFilteredApiVersions(ctx android.LoadHookContext, modules []string) {
@@ -299,7 +293,7 @@
 	createMergedFrameworkModuleLibStubs(ctx, bootclasspath)
 	createMergedFrameworkImpl(ctx, bootclasspath)
 
-	createMergedAnnotations(ctx, bootclasspath)
+	createMergedPublicAnnotationsFilegroup(ctx, bootclasspath)
 
 	createFilteredApiVersions(ctx, bootclasspath)
 
