Merge changes from topic "re-enable-ipsec"
* changes: Re-Expose IpSecService API Surface Re-Enable Starting of the IpSecService
This commit is contained in:
@@ -8935,6 +8935,7 @@ package android.content {
|
||||
field public static final java.lang.String HARDWARE_PROPERTIES_SERVICE = "hardware_properties";
|
||||
field public static final java.lang.String INPUT_METHOD_SERVICE = "input_method";
|
||||
field public static final java.lang.String INPUT_SERVICE = "input";
|
||||
field public static final java.lang.String IPSEC_SERVICE = "ipsec";
|
||||
field public static final java.lang.String JOB_SCHEDULER_SERVICE = "jobscheduler";
|
||||
field public static final java.lang.String KEYGUARD_SERVICE = "keyguard";
|
||||
field public static final java.lang.String LAUNCHER_APPS_SERVICE = "launcherapps";
|
||||
@@ -25550,6 +25551,67 @@ package android.net {
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpPrefix> CREATOR;
|
||||
}
|
||||
|
||||
public final class IpSecAlgorithm implements android.os.Parcelable {
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[]);
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[], int);
|
||||
method public int describeContents();
|
||||
method public byte[] getKey();
|
||||
method public java.lang.String getName();
|
||||
method public int getTruncationLengthBits();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final java.lang.String AUTH_HMAC_MD5 = "hmac(md5)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA1 = "hmac(sha1)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA256 = "hmac(sha256)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA384 = "hmac(sha384)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA512 = "hmac(sha512)";
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpSecAlgorithm> CREATOR;
|
||||
field public static final java.lang.String CRYPT_AES_CBC = "cbc(aes)";
|
||||
}
|
||||
|
||||
public final class IpSecManager {
|
||||
method public void applyTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public void removeTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0
|
||||
}
|
||||
|
||||
public static final class IpSecManager.ResourceUnavailableException extends android.util.AndroidException {
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SecurityParameterIndex implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
method protected void finalize();
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SpiUnavailableException extends android.util.AndroidException {
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.UdpEncapsulationSocket implements java.lang.AutoCloseable {
|
||||
method public void close() throws java.io.IOException;
|
||||
method public int getPort();
|
||||
method public java.io.FileDescriptor getSocket();
|
||||
}
|
||||
|
||||
public final class IpSecTransform implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
field public static final int DIRECTION_IN = 0; // 0x0
|
||||
field public static final int DIRECTION_OUT = 1; // 0x1
|
||||
}
|
||||
|
||||
public static class IpSecTransform.Builder {
|
||||
ctor public IpSecTransform.Builder(android.content.Context);
|
||||
method public android.net.IpSecTransform buildTransportModeTransform(java.net.InetAddress) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
method public android.net.IpSecTransform.Builder setAuthentication(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setEncryption(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setIpv4Encapsulation(android.net.IpSecManager.UdpEncapsulationSocket, int);
|
||||
method public android.net.IpSecTransform.Builder setSpi(int, android.net.IpSecManager.SecurityParameterIndex);
|
||||
}
|
||||
|
||||
public class LinkAddress implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public java.net.InetAddress getAddress();
|
||||
|
||||
@@ -9446,6 +9446,7 @@ package android.content {
|
||||
field public static final java.lang.String HDMI_CONTROL_SERVICE = "hdmi_control";
|
||||
field public static final java.lang.String INPUT_METHOD_SERVICE = "input_method";
|
||||
field public static final java.lang.String INPUT_SERVICE = "input";
|
||||
field public static final java.lang.String IPSEC_SERVICE = "ipsec";
|
||||
field public static final java.lang.String JOB_SCHEDULER_SERVICE = "jobscheduler";
|
||||
field public static final java.lang.String KEYGUARD_SERVICE = "keyguard";
|
||||
field public static final java.lang.String LAUNCHER_APPS_SERVICE = "launcherapps";
|
||||
@@ -27746,6 +27747,69 @@ package android.net {
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpPrefix> CREATOR;
|
||||
}
|
||||
|
||||
public final class IpSecAlgorithm implements android.os.Parcelable {
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[]);
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[], int);
|
||||
method public int describeContents();
|
||||
method public byte[] getKey();
|
||||
method public java.lang.String getName();
|
||||
method public int getTruncationLengthBits();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final java.lang.String AUTH_HMAC_MD5 = "hmac(md5)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA1 = "hmac(sha1)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA256 = "hmac(sha256)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA384 = "hmac(sha384)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA512 = "hmac(sha512)";
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpSecAlgorithm> CREATOR;
|
||||
field public static final java.lang.String CRYPT_AES_CBC = "cbc(aes)";
|
||||
}
|
||||
|
||||
public final class IpSecManager {
|
||||
method public void applyTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public void removeTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0
|
||||
}
|
||||
|
||||
public static final class IpSecManager.ResourceUnavailableException extends android.util.AndroidException {
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SecurityParameterIndex implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
method protected void finalize();
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SpiUnavailableException extends android.util.AndroidException {
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.UdpEncapsulationSocket implements java.lang.AutoCloseable {
|
||||
method public void close() throws java.io.IOException;
|
||||
method public int getPort();
|
||||
method public java.io.FileDescriptor getSocket();
|
||||
}
|
||||
|
||||
public final class IpSecTransform implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
field public static final int DIRECTION_IN = 0; // 0x0
|
||||
field public static final int DIRECTION_OUT = 1; // 0x1
|
||||
}
|
||||
|
||||
public static class IpSecTransform.Builder {
|
||||
ctor public IpSecTransform.Builder(android.content.Context);
|
||||
method public android.net.IpSecTransform buildTransportModeTransform(java.net.InetAddress) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
method public android.net.IpSecTransform.Builder setAuthentication(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setEncryption(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setIpv4Encapsulation(android.net.IpSecManager.UdpEncapsulationSocket, int);
|
||||
method public android.net.IpSecTransform.Builder setNattKeepalive(int);
|
||||
method public android.net.IpSecTransform.Builder setSpi(int, android.net.IpSecManager.SecurityParameterIndex);
|
||||
method public android.net.IpSecTransform.Builder setUnderlyingNetwork(android.net.Network);
|
||||
}
|
||||
|
||||
public class LinkAddress implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public java.net.InetAddress getAddress();
|
||||
|
||||
@@ -8968,6 +8968,7 @@ package android.content {
|
||||
field public static final java.lang.String HARDWARE_PROPERTIES_SERVICE = "hardware_properties";
|
||||
field public static final java.lang.String INPUT_METHOD_SERVICE = "input_method";
|
||||
field public static final java.lang.String INPUT_SERVICE = "input";
|
||||
field public static final java.lang.String IPSEC_SERVICE = "ipsec";
|
||||
field public static final java.lang.String JOB_SCHEDULER_SERVICE = "jobscheduler";
|
||||
field public static final java.lang.String KEYGUARD_SERVICE = "keyguard";
|
||||
field public static final java.lang.String LAUNCHER_APPS_SERVICE = "launcherapps";
|
||||
@@ -25659,6 +25660,67 @@ package android.net {
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpPrefix> CREATOR;
|
||||
}
|
||||
|
||||
public final class IpSecAlgorithm implements android.os.Parcelable {
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[]);
|
||||
ctor public IpSecAlgorithm(java.lang.String, byte[], int);
|
||||
method public int describeContents();
|
||||
method public byte[] getKey();
|
||||
method public java.lang.String getName();
|
||||
method public int getTruncationLengthBits();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final java.lang.String AUTH_HMAC_MD5 = "hmac(md5)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA1 = "hmac(sha1)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA256 = "hmac(sha256)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA384 = "hmac(sha384)";
|
||||
field public static final java.lang.String AUTH_HMAC_SHA512 = "hmac(sha512)";
|
||||
field public static final android.os.Parcelable.Creator<android.net.IpSecAlgorithm> CREATOR;
|
||||
field public static final java.lang.String CRYPT_AES_CBC = "cbc(aes)";
|
||||
}
|
||||
|
||||
public final class IpSecManager {
|
||||
method public void applyTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public void removeTransportModeTransform(java.io.FileDescriptor, android.net.IpSecTransform) throws java.io.IOException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException;
|
||||
method public android.net.IpSecManager.SecurityParameterIndex reserveSecurityParameterIndex(int, java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0
|
||||
}
|
||||
|
||||
public static final class IpSecManager.ResourceUnavailableException extends android.util.AndroidException {
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SecurityParameterIndex implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
method protected void finalize();
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.SpiUnavailableException extends android.util.AndroidException {
|
||||
method public int getSpi();
|
||||
}
|
||||
|
||||
public static final class IpSecManager.UdpEncapsulationSocket implements java.lang.AutoCloseable {
|
||||
method public void close() throws java.io.IOException;
|
||||
method public int getPort();
|
||||
method public java.io.FileDescriptor getSocket();
|
||||
}
|
||||
|
||||
public final class IpSecTransform implements java.lang.AutoCloseable {
|
||||
method public void close();
|
||||
field public static final int DIRECTION_IN = 0; // 0x0
|
||||
field public static final int DIRECTION_OUT = 1; // 0x1
|
||||
}
|
||||
|
||||
public static class IpSecTransform.Builder {
|
||||
ctor public IpSecTransform.Builder(android.content.Context);
|
||||
method public android.net.IpSecTransform buildTransportModeTransform(java.net.InetAddress) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
|
||||
method public android.net.IpSecTransform.Builder setAuthentication(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setEncryption(int, android.net.IpSecAlgorithm);
|
||||
method public android.net.IpSecTransform.Builder setIpv4Encapsulation(android.net.IpSecManager.UdpEncapsulationSocket, int);
|
||||
method public android.net.IpSecTransform.Builder setSpi(int, android.net.IpSecManager.SecurityParameterIndex);
|
||||
}
|
||||
|
||||
public class LinkAddress implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public java.net.InetAddress getAddress();
|
||||
|
||||
@@ -2995,6 +2995,9 @@ public abstract class Context {
|
||||
* <dt> {@link #CONNECTIVITY_SERVICE} ("connection")
|
||||
* <dd> A {@link android.net.ConnectivityManager ConnectivityManager} for
|
||||
* handling management of network connections.
|
||||
* <dt> {@link #IPSEC_SERVICE} ("ipsec")
|
||||
* <dd> A {@link android.net.IpSecManager IpSecManager} for managing IPSec on
|
||||
* sockets and networks.
|
||||
* <dt> {@link #WIFI_SERVICE} ("wifi")
|
||||
* <dd> A {@link android.net.wifi.WifiManager WifiManager} for management of Wi-Fi
|
||||
* connectivity. On releases before NYC, it should only be obtained from an application
|
||||
@@ -3339,7 +3342,6 @@ public abstract class Context {
|
||||
* {@link android.net.IpSecManager} for encrypting Sockets or Networks with
|
||||
* IPSec.
|
||||
*
|
||||
* @hide
|
||||
* @see #getSystemService
|
||||
*/
|
||||
public static final String IPSEC_SERVICE = "ipsec";
|
||||
|
||||
@@ -19,15 +19,15 @@ import android.annotation.StringDef;
|
||||
import android.os.Build;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.android.internal.util.HexDump;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* IpSecAlgorithm specifies a single algorithm that can be applied to an IpSec Transform. Refer to
|
||||
* RFC 4301.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final class IpSecAlgorithm implements Parcelable {
|
||||
|
||||
|
||||
@@ -25,7 +25,9 @@ import android.os.ParcelFileDescriptor;
|
||||
import android.os.RemoteException;
|
||||
import android.util.AndroidException;
|
||||
import android.util.Log;
|
||||
|
||||
import dalvik.system.CloseGuard;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
import java.net.DatagramSocket;
|
||||
@@ -36,7 +38,9 @@ import java.net.Socket;
|
||||
* This class contains methods for managing IPsec sessions, which will perform kernel-space
|
||||
* encryption and decryption of socket or Network traffic.
|
||||
*
|
||||
* @hide
|
||||
* <p>An IpSecManager may be obtained by calling {@link
|
||||
* android.content.Context#getSystemService(String) Context#getSystemService(String)} with {@link
|
||||
* android.content.Context#IPSEC_SERVICE Context#IPSEC_SERVICE}
|
||||
*/
|
||||
@SystemService(Context.IPSEC_SERVICE)
|
||||
public final class IpSecManager {
|
||||
|
||||
@@ -26,9 +26,12 @@ import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.util.Preconditions;
|
||||
|
||||
import dalvik.system.CloseGuard;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -43,8 +46,6 @@ import java.net.InetAddress;
|
||||
*
|
||||
* <p>An IpSecTransform may either represent a tunnel mode transform that operates on a wide array
|
||||
* of traffic or may represent a transport mode transform operating on a Socket or Sockets.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final class IpSecTransform implements AutoCloseable {
|
||||
private static final String TAG = "IpSecTransform";
|
||||
|
||||
@@ -660,6 +660,7 @@ public final class SystemServer {
|
||||
VibratorService vibrator = null;
|
||||
IStorageManager storageManager = null;
|
||||
NetworkManagementService networkManagement = null;
|
||||
IpSecService ipSecService = null;
|
||||
NetworkStatsService networkStats = null;
|
||||
NetworkPolicyManagerService networkPolicy = null;
|
||||
ConnectivityService connectivity = null;
|
||||
@@ -1010,6 +1011,15 @@ public final class SystemServer {
|
||||
reportWtf("starting NetworkManagement Service", e);
|
||||
}
|
||||
traceEnd();
|
||||
|
||||
traceBeginAndSlog("StartIpSecService");
|
||||
try {
|
||||
ipSecService = IpSecService.create(context);
|
||||
ServiceManager.addService(Context.IPSEC_SERVICE, ipSecService);
|
||||
} catch (Throwable e) {
|
||||
reportWtf("starting IpSec Service", e);
|
||||
}
|
||||
traceEnd();
|
||||
}
|
||||
|
||||
if (!disableNonCoreServices && !disableTextServices) {
|
||||
@@ -1618,6 +1628,7 @@ public final class SystemServer {
|
||||
final TelephonyRegistry telephonyRegistryF = telephonyRegistry;
|
||||
final MediaRouterService mediaRouterF = mediaRouter;
|
||||
final MmsServiceBroker mmsServiceF = mmsService;
|
||||
final IpSecService ipSecServiceF = ipSecService;
|
||||
final WindowManagerService windowManagerF = wm;
|
||||
|
||||
// We now tell the activity manager it is okay to run third party
|
||||
@@ -1682,6 +1693,13 @@ public final class SystemServer {
|
||||
.networkScoreAndNetworkManagementServiceReady();
|
||||
}
|
||||
traceEnd();
|
||||
traceBeginAndSlog("MakeIpSecServiceReady");
|
||||
try {
|
||||
if (ipSecServiceF != null) ipSecServiceF.systemReady();
|
||||
} catch (Throwable e) {
|
||||
reportWtf("making IpSec Service ready", e);
|
||||
}
|
||||
traceEnd();
|
||||
traceBeginAndSlog("MakeNetworkStatsServiceReady");
|
||||
try {
|
||||
if (networkStatsF != null) networkStatsF.systemReady();
|
||||
|
||||
Reference in New Issue
Block a user