From d0d85f26cb7287c63adf95bace098bc1af3fe4e8 Mon Sep 17 00:00:00 2001 From: Chia-chi Yeh Date: Mon, 8 Aug 2011 18:26:28 -0700 Subject: [PATCH] Unhide APIs for user space VPN. Change-Id: I6f9ddb3fffe9e10cc2d34dda3ae8700b1af7e470 --- api/current.txt | 27 +++++++++++++++++++++++++++ core/java/android/net/VpnService.java | 1 - core/res/AndroidManifest.xml | 3 +-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/api/current.txt b/api/current.txt index 73fe3b206518c..3e6b6bcb97236 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23,6 +23,7 @@ package android { field public static final java.lang.String BIND_INPUT_METHOD = "android.permission.BIND_INPUT_METHOD"; field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS"; field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE"; + field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE"; field public static final java.lang.String BIND_WALLPAPER = "android.permission.BIND_WALLPAPER"; field public static final java.lang.String BLUETOOTH = "android.permission.BLUETOOTH"; field public static final java.lang.String BLUETOOTH_ADMIN = "android.permission.BLUETOOTH_ADMIN"; @@ -11663,6 +11664,32 @@ package android.net { method public abstract java.lang.String sanitize(java.lang.String); } + public class VpnService extends android.app.Service { + ctor public VpnService(); + method public android.os.IBinder onBind(android.content.Intent); + method public void onRevoke(); + method public static android.content.Intent prepare(android.content.Context); + method public boolean protect(int); + method public boolean protect(java.net.Socket); + method public boolean protect(java.net.DatagramSocket); + field public static final java.lang.String SERVICE_INTERFACE = "android.net.VpnService"; + } + + public class VpnService.Builder { + ctor public VpnService.Builder(); + method public android.net.VpnService.Builder addAddress(java.net.InetAddress, int); + method public android.net.VpnService.Builder addAddress(java.lang.String, int); + method public android.net.VpnService.Builder addDnsServer(java.net.InetAddress); + method public android.net.VpnService.Builder addDnsServer(java.lang.String); + method public android.net.VpnService.Builder addRoute(java.net.InetAddress, int); + method public android.net.VpnService.Builder addRoute(java.lang.String, int); + method public android.net.VpnService.Builder addSearchDomain(java.lang.String); + method public android.os.ParcelFileDescriptor establish(); + method public android.net.VpnService.Builder setConfigureIntent(android.app.PendingIntent); + method public android.net.VpnService.Builder setMtu(int); + method public android.net.VpnService.Builder setSession(java.lang.String); + } + } package android.net.http { diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java index 3e1b512695f0e..fb5263d9f13d5 100644 --- a/core/java/android/net/VpnService.java +++ b/core/java/android/net/VpnService.java @@ -101,7 +101,6 @@ import java.util.ArrayList; * </service> * * @see Builder - * @hide */ public class VpnService extends Service { diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 3b1557126a302..30c11df6dcc09 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1117,8 +1117,7 @@ android:protectionLevel="signature" /> + to ensure that only the system can bind to it. -->