Add filename property to prebuilt_apex

* Makes it more inline with prebuilt_etc;
* For shim apexes, prebuilt_apex modules have pattern of
  com.android.apex.cts.shim.v1_prebuilt, but I would prefer
  pre-installed shim to be: /system/apex/com.android.apex.cts.shim.apex

Bug: 128677967
Bug: 127789981
Test: m
Change-Id: I34e3e078733420b5cf777fd6e3ce4d8c5796b19b
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 6d101d8..3c80376 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -1256,3 +1256,20 @@
 		t.Errorf("inputApex invalid. expected: %q, actual: %q", expectedInput, prebuilt.inputApex.String())
 	}
 }
+
+func TestPrebuiltFilenameOverride(t *testing.T) {
+	ctx := testApex(t, `
+		prebuilt_apex {
+			name: "myapex",
+			src: "myapex-arm.apex",
+			filename: "notmyapex.apex",
+		}
+	`)
+
+	p := ctx.ModuleForTests("myapex", "android_common").Module().(*Prebuilt)
+
+	expected := "notmyapex.apex"
+	if p.installFilename != expected {
+		t.Errorf("installFilename invalid. expected: %q, actual: %q", expected, p.installFilename)
+	}
+}