summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-07-23 21:22:18 +0000
committer Steven Moreland <smoreland@google.com> 2020-07-24 18:35:55 +0000
commit95dd53bb5fc8f506e40cc88b1f0eb926bc50c7a5 (patch)
tree67c6bf74c2234d2970b78bd27716bbba1c36c02a
parentc9a09ffd92e1d8ceaaa047be331a00576a42bb2b (diff)
Allow module libs to use VINTF AIDL.
Currently a native APEX can get and use a VINTF AIDL. However, this can't be passed over JNI to be used by Java code. This does not open VINTF AIDLs to any type of apps, where AIDL as an API is completely disallowed. Also, no Java ServiceManager APIs are available, and they couldn't be until b/139325468 is fixed. Bug: 161501127 Test: atest binderVendorDoubleLoadTest Change-Id: I1ab977248b1c39a7d08e0ca34389a7ba168c05b0
-rw-r--r--api/module-lib-current.txt4
-rw-r--r--core/java/android/os/Binder.java14
-rw-r--r--non-updatable-api/module-lib-current.txt4
3 files changed, 16 insertions, 6 deletions
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index 6f5ac7cb0c5a..e77d750cbffb 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -41,6 +41,10 @@ package android.net {
package android.os {
+ public class Binder implements android.os.IBinder {
+ method public final void markVintfStability();
+ }
+
public class StatsFrameworkInitializer {
method public static void registerServiceWrappers();
method public static void setStatsServiceManager(@NonNull android.os.StatsServiceManager);
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index 947b77399e40..f3a11ed6af1c 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -529,15 +529,17 @@ public class Binder implements IBinder {
/**
* Mark as being built with VINTF-level stability promise. This API should
- * only ever be invoked by the build system. It means that the interface
- * represented by this binder is guaranteed to be kept stable for several
- * years, and the build system also keeps snapshots of these APIs and
- * invokes the AIDL compiler to make sure that these snapshots are
- * backwards compatible. Instead of using this API, use an @VintfStability
- * interface.
+ * only ever be invoked by generated code from the aidl compiler. It means
+ * that the interface represented by this binder is guaranteed to be kept
+ * stable for several years, according to the VINTF compatibility lifecycle,
+ * and the build system also keeps snapshots of these APIs and invokes the
+ * AIDL compiler to make sure that these snapshots are backwards compatible.
+ * Instead of using this API, use the @VintfStability annotation on your
+ * AIDL interface.
*
* @hide
*/
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final native void markVintfStability();
/**
diff --git a/non-updatable-api/module-lib-current.txt b/non-updatable-api/module-lib-current.txt
index 5d8a9cf75ea5..116549d2c24b 100644
--- a/non-updatable-api/module-lib-current.txt
+++ b/non-updatable-api/module-lib-current.txt
@@ -1,6 +1,10 @@
// Signature format: 2.0
package android.os {
+ public class Binder implements android.os.IBinder {
+ method public final void markVintfStability();
+ }
+
public class StatsServiceManager {
method @NonNull public android.os.StatsServiceManager.ServiceRegisterer getStatsCompanionServiceRegisterer();
method @NonNull public android.os.StatsServiceManager.ServiceRegisterer getStatsManagerServiceRegisterer();