summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2024-08-13 18:28:56 +0000
committer Steven Moreland <smoreland@google.com> 2024-08-21 16:42:34 +0000
commit07b69ecce158933c62cdc192a488f4c4efd2eff2 (patch)
treede4a1bfda1c8453b1b126d028e3e532bba84b44d
parenta35b1f13ddef1d27f368c371dcd942c2c3fb37df (diff)
SDK Parcelables: @JavaOnlyStableParcelable
Now that androidx is using these more for SDK sandbox and usage of stable AIDL is generally on the rise, go ahead and mark all platform Parcelables as stable. This is okay because all apps will share their definition from the common BCP. If this is ever used on Parcelables not on the common BCP, that may cause version mismatch and break usage of stable AIDL that uses these interfaces. Bug: 258850063 Test: build Change-Id: Iba43040beda379f0735adf1af319a1dbfce99447
-rw-r--r--api/StubLibraries.bp2
-rw-r--r--tools/sdkparcelables/src/com/android/sdkparcelables/Main.kt13
2 files changed, 13 insertions, 2 deletions
diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp
index d991da59f167..b3a674fbd70e 100644
--- a/api/StubLibraries.bp
+++ b/api/StubLibraries.bp
@@ -890,7 +890,7 @@ java_genrule {
cmd: "rm -f $(genDir)/framework.aidl.merged && " +
"for i in $(in); do " +
" rm -f $(genDir)/framework.aidl.tmp && " +
- " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
+ " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp --guarantee_stable && " +
" cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
"done && " +
"sort -u $(genDir)/framework.aidl.merged > $(out)",
diff --git a/tools/sdkparcelables/src/com/android/sdkparcelables/Main.kt b/tools/sdkparcelables/src/com/android/sdkparcelables/Main.kt
index 0b619488c49c..9c443324defb 100644
--- a/tools/sdkparcelables/src/com/android/sdkparcelables/Main.kt
+++ b/tools/sdkparcelables/src/com/android/sdkparcelables/Main.kt
@@ -23,13 +23,21 @@ import java.io.IOException
import java.util.zip.ZipFile
fun main(args: Array<String>) {
- if (args.size != 2) {
+ if (args.size < 2 || args.size > 3) {
usage()
}
val zipFileName = args[0]
val aidlFileName = args[1]
+ var stable = false
+ if (args.size == 3) {
+ if (args[2] != "--guarantee_stable") {
+ usage()
+ }
+ stable = true
+ }
+
val zipFile: ZipFile
try {
@@ -55,6 +63,9 @@ fun main(args: Array<String>) {
val outFile = File(aidlFileName)
val outWriter = outFile.bufferedWriter()
for (parcelable in parcelables) {
+ if (stable) {
+ outWriter.write("@JavaOnlyStableParcelable ")
+ }
outWriter.write("parcelable ")
outWriter.write(parcelable.replace('/', '.').replace('$', '.'))
outWriter.write(";\n")