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
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index 6f5ac7c..e77d750 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -41,6 +41,10 @@
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 947b773..f3a11ed 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -529,15 +529,17 @@
/**
* 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 5d8a9cf..116549d 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();