diff --git a/Tethering/apex/hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt b/Tethering/apex/hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt index 88c77f232e..c1d87bb0a3 100644 --- a/Tethering/apex/hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt +++ b/Tethering/apex/hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt @@ -1,3 +1,216 @@ +Landroid/net/IIpSecService$Stub$Proxy;->(Landroid/os/IBinder;)V +Landroid/net/IIpSecService$Stub$Proxy;->addAddressToTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V +Landroid/net/IIpSecService$Stub$Proxy;->allocateSecurityParameterIndex(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/net/IpSecSpiResponse; +Landroid/net/IIpSecService$Stub$Proxy;->applyTransportModeTransform(Landroid/os/ParcelFileDescriptor;II)V +Landroid/net/IIpSecService$Stub$Proxy;->applyTunnelModeTransform(IIILjava/lang/String;)V +Landroid/net/IIpSecService$Stub$Proxy;->closeUdpEncapsulationSocket(I)V +Landroid/net/IIpSecService$Stub$Proxy;->createTransform(Landroid/net/IpSecConfig;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTransformResponse; +Landroid/net/IIpSecService$Stub$Proxy;->createTunnelInterface(Ljava/lang/String;Ljava/lang/String;Landroid/net/Network;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTunnelInterfaceResponse; +Landroid/net/IIpSecService$Stub$Proxy;->deleteTransform(I)V +Landroid/net/IIpSecService$Stub$Proxy;->deleteTunnelInterface(ILjava/lang/String;)V +Landroid/net/IIpSecService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String; +Landroid/net/IIpSecService$Stub$Proxy;->mRemote:Landroid/os/IBinder; +Landroid/net/IIpSecService$Stub$Proxy;->openUdpEncapsulationSocket(ILandroid/os/IBinder;)Landroid/net/IpSecUdpEncapResponse; +Landroid/net/IIpSecService$Stub$Proxy;->releaseSecurityParameterIndex(I)V +Landroid/net/IIpSecService$Stub$Proxy;->removeAddressFromTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V +Landroid/net/IIpSecService$Stub$Proxy;->removeTransportModeTransforms(Landroid/os/ParcelFileDescriptor;)V +Landroid/net/IIpSecService$Stub;->()V +Landroid/net/IIpSecService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IIpSecService; +Landroid/net/IIpSecService$Stub;->DESCRIPTOR:Ljava/lang/String; +Landroid/net/IIpSecService$Stub;->TRANSACTION_addAddressToTunnelInterface:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_allocateSecurityParameterIndex:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_applyTransportModeTransform:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_applyTunnelModeTransform:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_closeUdpEncapsulationSocket:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_createTransform:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_createTunnelInterface:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_deleteTransform:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_deleteTunnelInterface:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_openUdpEncapsulationSocket:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_releaseSecurityParameterIndex:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_removeAddressFromTunnelInterface:I +Landroid/net/IIpSecService$Stub;->TRANSACTION_removeTransportModeTransforms:I +Landroid/net/IIpSecService;->addAddressToTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V +Landroid/net/IIpSecService;->allocateSecurityParameterIndex(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/net/IpSecSpiResponse; +Landroid/net/IIpSecService;->applyTransportModeTransform(Landroid/os/ParcelFileDescriptor;II)V +Landroid/net/IIpSecService;->applyTunnelModeTransform(IIILjava/lang/String;)V +Landroid/net/IIpSecService;->closeUdpEncapsulationSocket(I)V +Landroid/net/IIpSecService;->createTransform(Landroid/net/IpSecConfig;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTransformResponse; +Landroid/net/IIpSecService;->createTunnelInterface(Ljava/lang/String;Ljava/lang/String;Landroid/net/Network;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTunnelInterfaceResponse; +Landroid/net/IIpSecService;->deleteTransform(I)V +Landroid/net/IIpSecService;->deleteTunnelInterface(ILjava/lang/String;)V +Landroid/net/IIpSecService;->openUdpEncapsulationSocket(ILandroid/os/IBinder;)Landroid/net/IpSecUdpEncapResponse; +Landroid/net/IIpSecService;->releaseSecurityParameterIndex(I)V +Landroid/net/IIpSecService;->removeAddressFromTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V +Landroid/net/IIpSecService;->removeTransportModeTransforms(Landroid/os/ParcelFileDescriptor;)V +Landroid/net/IpSecAlgorithm;->checkValidOrThrow(Ljava/lang/String;II)V +Landroid/net/IpSecAlgorithm;->CRYPT_NULL:Ljava/lang/String; +Landroid/net/IpSecAlgorithm;->equals(Landroid/net/IpSecAlgorithm;Landroid/net/IpSecAlgorithm;)Z +Landroid/net/IpSecAlgorithm;->isAead()Z +Landroid/net/IpSecAlgorithm;->isAuthentication()Z +Landroid/net/IpSecAlgorithm;->isEncryption()Z +Landroid/net/IpSecAlgorithm;->isUnsafeBuild()Z +Landroid/net/IpSecAlgorithm;->mKey:[B +Landroid/net/IpSecAlgorithm;->mName:Ljava/lang/String; +Landroid/net/IpSecAlgorithm;->mTruncLenBits:I +Landroid/net/IpSecAlgorithm;->TAG:Ljava/lang/String; +Landroid/net/IpSecConfig;->()V +Landroid/net/IpSecConfig;->(Landroid/net/IpSecConfig;)V +Landroid/net/IpSecConfig;->(Landroid/os/Parcel;)V +Landroid/net/IpSecConfig;->CREATOR:Landroid/os/Parcelable$Creator; +Landroid/net/IpSecConfig;->equals(Landroid/net/IpSecConfig;Landroid/net/IpSecConfig;)Z +Landroid/net/IpSecConfig;->getAuthenticatedEncryption()Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->getAuthentication()Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->getDestinationAddress()Ljava/lang/String; +Landroid/net/IpSecConfig;->getEncapRemotePort()I +Landroid/net/IpSecConfig;->getEncapSocketResourceId()I +Landroid/net/IpSecConfig;->getEncapType()I +Landroid/net/IpSecConfig;->getEncryption()Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->getMarkMask()I +Landroid/net/IpSecConfig;->getMarkValue()I +Landroid/net/IpSecConfig;->getMode()I +Landroid/net/IpSecConfig;->getNattKeepaliveInterval()I +Landroid/net/IpSecConfig;->getNetwork()Landroid/net/Network; +Landroid/net/IpSecConfig;->getSourceAddress()Ljava/lang/String; +Landroid/net/IpSecConfig;->getSpiResourceId()I +Landroid/net/IpSecConfig;->mAuthenticatedEncryption:Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->mAuthentication:Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->mDestinationAddress:Ljava/lang/String; +Landroid/net/IpSecConfig;->mEncapRemotePort:I +Landroid/net/IpSecConfig;->mEncapSocketResourceId:I +Landroid/net/IpSecConfig;->mEncapType:I +Landroid/net/IpSecConfig;->mEncryption:Landroid/net/IpSecAlgorithm; +Landroid/net/IpSecConfig;->mMarkMask:I +Landroid/net/IpSecConfig;->mMarkValue:I +Landroid/net/IpSecConfig;->mMode:I +Landroid/net/IpSecConfig;->mNattKeepaliveInterval:I +Landroid/net/IpSecConfig;->mNetwork:Landroid/net/Network; +Landroid/net/IpSecConfig;->mSourceAddress:Ljava/lang/String; +Landroid/net/IpSecConfig;->mSpiResourceId:I +Landroid/net/IpSecConfig;->setAuthenticatedEncryption(Landroid/net/IpSecAlgorithm;)V +Landroid/net/IpSecConfig;->setAuthentication(Landroid/net/IpSecAlgorithm;)V +Landroid/net/IpSecConfig;->setDestinationAddress(Ljava/lang/String;)V +Landroid/net/IpSecConfig;->setEncapRemotePort(I)V +Landroid/net/IpSecConfig;->setEncapSocketResourceId(I)V +Landroid/net/IpSecConfig;->setEncapType(I)V +Landroid/net/IpSecConfig;->setEncryption(Landroid/net/IpSecAlgorithm;)V +Landroid/net/IpSecConfig;->setMarkMask(I)V +Landroid/net/IpSecConfig;->setMarkValue(I)V +Landroid/net/IpSecConfig;->setMode(I)V +Landroid/net/IpSecConfig;->setNattKeepaliveInterval(I)V +Landroid/net/IpSecConfig;->setNetwork(Landroid/net/Network;)V +Landroid/net/IpSecConfig;->setSourceAddress(Ljava/lang/String;)V +Landroid/net/IpSecConfig;->setSpiResourceId(I)V +Landroid/net/IpSecConfig;->TAG:Ljava/lang/String; +Landroid/net/IpSecManager$IpSecTunnelInterface;->(Landroid/content/Context;Landroid/net/IIpSecService;Ljava/net/InetAddress;Ljava/net/InetAddress;Landroid/net/Network;)V +Landroid/net/IpSecManager$IpSecTunnelInterface;->addAddress(Ljava/net/InetAddress;I)V +Landroid/net/IpSecManager$IpSecTunnelInterface;->getInterfaceName()Ljava/lang/String; +Landroid/net/IpSecManager$IpSecTunnelInterface;->getResourceId()I +Landroid/net/IpSecManager$IpSecTunnelInterface;->mCloseGuard:Ldalvik/system/CloseGuard; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mInterfaceName:Ljava/lang/String; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mLocalAddress:Ljava/net/InetAddress; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mOpPackageName:Ljava/lang/String; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mRemoteAddress:Ljava/net/InetAddress; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mResourceId:I +Landroid/net/IpSecManager$IpSecTunnelInterface;->mService:Landroid/net/IIpSecService; +Landroid/net/IpSecManager$IpSecTunnelInterface;->mUnderlyingNetwork:Landroid/net/Network; +Landroid/net/IpSecManager$IpSecTunnelInterface;->removeAddress(Ljava/net/InetAddress;I)V +Landroid/net/IpSecManager$ResourceUnavailableException;->(Ljava/lang/String;)V +Landroid/net/IpSecManager$SecurityParameterIndex;->(Landroid/net/IIpSecService;Ljava/net/InetAddress;I)V +Landroid/net/IpSecManager$SecurityParameterIndex;->getResourceId()I +Landroid/net/IpSecManager$SecurityParameterIndex;->mCloseGuard:Ldalvik/system/CloseGuard; +Landroid/net/IpSecManager$SecurityParameterIndex;->mDestinationAddress:Ljava/net/InetAddress; +Landroid/net/IpSecManager$SecurityParameterIndex;->mResourceId:I +Landroid/net/IpSecManager$SecurityParameterIndex;->mService:Landroid/net/IIpSecService; +Landroid/net/IpSecManager$SecurityParameterIndex;->mSpi:I +Landroid/net/IpSecManager$SpiUnavailableException;->(Ljava/lang/String;I)V +Landroid/net/IpSecManager$SpiUnavailableException;->mSpi:I +Landroid/net/IpSecManager$Status;->OK:I +Landroid/net/IpSecManager$Status;->RESOURCE_UNAVAILABLE:I +Landroid/net/IpSecManager$Status;->SPI_UNAVAILABLE:I +Landroid/net/IpSecManager$UdpEncapsulationSocket;->(Landroid/net/IIpSecService;I)V +Landroid/net/IpSecManager$UdpEncapsulationSocket;->getResourceId()I +Landroid/net/IpSecManager$UdpEncapsulationSocket;->mCloseGuard:Ldalvik/system/CloseGuard; +Landroid/net/IpSecManager$UdpEncapsulationSocket;->mPfd:Landroid/os/ParcelFileDescriptor; +Landroid/net/IpSecManager$UdpEncapsulationSocket;->mPort:I +Landroid/net/IpSecManager$UdpEncapsulationSocket;->mResourceId:I +Landroid/net/IpSecManager$UdpEncapsulationSocket;->mService:Landroid/net/IIpSecService; +Landroid/net/IpSecManager;->(Landroid/content/Context;Landroid/net/IIpSecService;)V +Landroid/net/IpSecManager;->applyTunnelModeTransform(Landroid/net/IpSecManager$IpSecTunnelInterface;ILandroid/net/IpSecTransform;)V +Landroid/net/IpSecManager;->createIpSecTunnelInterface(Ljava/net/InetAddress;Ljava/net/InetAddress;Landroid/net/Network;)Landroid/net/IpSecManager$IpSecTunnelInterface; +Landroid/net/IpSecManager;->INVALID_RESOURCE_ID:I +Landroid/net/IpSecManager;->maybeHandleServiceSpecificException(Landroid/os/ServiceSpecificException;)V +Landroid/net/IpSecManager;->mContext:Landroid/content/Context; +Landroid/net/IpSecManager;->mService:Landroid/net/IIpSecService; +Landroid/net/IpSecManager;->removeTunnelModeTransform(Landroid/net/Network;Landroid/net/IpSecTransform;)V +Landroid/net/IpSecManager;->rethrowCheckedExceptionFromServiceSpecificException(Landroid/os/ServiceSpecificException;)Ljava/io/IOException; +Landroid/net/IpSecManager;->rethrowUncheckedExceptionFromServiceSpecificException(Landroid/os/ServiceSpecificException;)Ljava/lang/RuntimeException; +Landroid/net/IpSecManager;->TAG:Ljava/lang/String; +Landroid/net/IpSecSpiResponse;->(I)V +Landroid/net/IpSecSpiResponse;->(III)V +Landroid/net/IpSecSpiResponse;->(Landroid/os/Parcel;)V +Landroid/net/IpSecSpiResponse;->CREATOR:Landroid/os/Parcelable$Creator; +Landroid/net/IpSecSpiResponse;->resourceId:I +Landroid/net/IpSecSpiResponse;->spi:I +Landroid/net/IpSecSpiResponse;->status:I +Landroid/net/IpSecSpiResponse;->TAG:Ljava/lang/String; +Landroid/net/IpSecTransform$Builder;->buildTunnelModeTransform(Ljava/net/InetAddress;Landroid/net/IpSecManager$SecurityParameterIndex;)Landroid/net/IpSecTransform; +Landroid/net/IpSecTransform$Builder;->mConfig:Landroid/net/IpSecConfig; +Landroid/net/IpSecTransform$Builder;->mContext:Landroid/content/Context; +Landroid/net/IpSecTransform$NattKeepaliveCallback;->()V +Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_HARDWARE_ERROR:I +Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_HARDWARE_UNSUPPORTED:I +Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_INVALID_NETWORK:I +Landroid/net/IpSecTransform$NattKeepaliveCallback;->onError(I)V +Landroid/net/IpSecTransform$NattKeepaliveCallback;->onStarted()V +Landroid/net/IpSecTransform$NattKeepaliveCallback;->onStopped()V +Landroid/net/IpSecTransform;->(Landroid/content/Context;Landroid/net/IpSecConfig;)V +Landroid/net/IpSecTransform;->activate()Landroid/net/IpSecTransform; +Landroid/net/IpSecTransform;->checkResultStatus(I)V +Landroid/net/IpSecTransform;->ENCAP_ESPINUDP:I +Landroid/net/IpSecTransform;->ENCAP_ESPINUDP_NON_IKE:I +Landroid/net/IpSecTransform;->ENCAP_NONE:I +Landroid/net/IpSecTransform;->equals(Landroid/net/IpSecTransform;Landroid/net/IpSecTransform;)Z +Landroid/net/IpSecTransform;->getConfig()Landroid/net/IpSecConfig; +Landroid/net/IpSecTransform;->getIpSecService()Landroid/net/IIpSecService; +Landroid/net/IpSecTransform;->getResourceId()I +Landroid/net/IpSecTransform;->mCallbackHandler:Landroid/os/Handler; +Landroid/net/IpSecTransform;->mCloseGuard:Ldalvik/system/CloseGuard; +Landroid/net/IpSecTransform;->mConfig:Landroid/net/IpSecConfig; +Landroid/net/IpSecTransform;->mContext:Landroid/content/Context; +Landroid/net/IpSecTransform;->mKeepalive:Landroid/net/ConnectivityManager$PacketKeepalive; +Landroid/net/IpSecTransform;->mKeepaliveCallback:Landroid/net/ConnectivityManager$PacketKeepaliveCallback; +Landroid/net/IpSecTransform;->MODE_TRANSPORT:I +Landroid/net/IpSecTransform;->MODE_TUNNEL:I +Landroid/net/IpSecTransform;->mResourceId:I +Landroid/net/IpSecTransform;->mUserKeepaliveCallback:Landroid/net/IpSecTransform$NattKeepaliveCallback; +Landroid/net/IpSecTransform;->startNattKeepalive(Landroid/net/IpSecTransform$NattKeepaliveCallback;ILandroid/os/Handler;)V +Landroid/net/IpSecTransform;->stopNattKeepalive()V +Landroid/net/IpSecTransform;->TAG:Ljava/lang/String; +Landroid/net/IpSecTransformResponse;->(I)V +Landroid/net/IpSecTransformResponse;->(II)V +Landroid/net/IpSecTransformResponse;->(Landroid/os/Parcel;)V +Landroid/net/IpSecTransformResponse;->CREATOR:Landroid/os/Parcelable$Creator; +Landroid/net/IpSecTransformResponse;->resourceId:I +Landroid/net/IpSecTransformResponse;->status:I +Landroid/net/IpSecTransformResponse;->TAG:Ljava/lang/String; +Landroid/net/IpSecTunnelInterfaceResponse;->(I)V +Landroid/net/IpSecTunnelInterfaceResponse;->(IILjava/lang/String;)V +Landroid/net/IpSecTunnelInterfaceResponse;->(Landroid/os/Parcel;)V +Landroid/net/IpSecTunnelInterfaceResponse;->CREATOR:Landroid/os/Parcelable$Creator; +Landroid/net/IpSecTunnelInterfaceResponse;->interfaceName:Ljava/lang/String; +Landroid/net/IpSecTunnelInterfaceResponse;->resourceId:I +Landroid/net/IpSecTunnelInterfaceResponse;->status:I +Landroid/net/IpSecTunnelInterfaceResponse;->TAG:Ljava/lang/String; +Landroid/net/IpSecUdpEncapResponse;->(I)V +Landroid/net/IpSecUdpEncapResponse;->(IIILjava/io/FileDescriptor;)V +Landroid/net/IpSecUdpEncapResponse;->(Landroid/os/Parcel;)V +Landroid/net/IpSecUdpEncapResponse;->CREATOR:Landroid/os/Parcelable$Creator; +Landroid/net/IpSecUdpEncapResponse;->fileDescriptor:Landroid/os/ParcelFileDescriptor; +Landroid/net/IpSecUdpEncapResponse;->port:I +Landroid/net/IpSecUdpEncapResponse;->resourceId:I +Landroid/net/IpSecUdpEncapResponse;->status:I +Landroid/net/IpSecUdpEncapResponse;->TAG:Ljava/lang/String; Landroid/net/nsd/DnsSdTxtRecord;->()V Landroid/net/nsd/DnsSdTxtRecord;->(Landroid/net/nsd/DnsSdTxtRecord;)V Landroid/net/nsd/DnsSdTxtRecord;->([B)V diff --git a/framework-t/api/current.txt b/framework-t/api/current.txt index 7977cc54e0..1389ff2571 100644 --- a/framework-t/api/current.txt +++ b/framework-t/api/current.txt @@ -1,4 +1,77 @@ // Signature format: 2.0 +package android.net { + + public final class IpSecAlgorithm implements android.os.Parcelable { + ctor public IpSecAlgorithm(@NonNull String, @NonNull byte[]); + ctor public IpSecAlgorithm(@NonNull String, @NonNull byte[], int); + method public int describeContents(); + method @NonNull public byte[] getKey(); + method @NonNull public String getName(); + method @NonNull public static java.util.Set getSupportedAlgorithms(); + method public int getTruncationLengthBits(); + method public void writeToParcel(android.os.Parcel, int); + field public static final String AUTH_AES_CMAC = "cmac(aes)"; + field public static final String AUTH_AES_XCBC = "xcbc(aes)"; + field public static final String AUTH_CRYPT_AES_GCM = "rfc4106(gcm(aes))"; + field public static final String AUTH_CRYPT_CHACHA20_POLY1305 = "rfc7539esp(chacha20,poly1305)"; + field public static final String AUTH_HMAC_MD5 = "hmac(md5)"; + field public static final String AUTH_HMAC_SHA1 = "hmac(sha1)"; + field public static final String AUTH_HMAC_SHA256 = "hmac(sha256)"; + field public static final String AUTH_HMAC_SHA384 = "hmac(sha384)"; + field public static final String AUTH_HMAC_SHA512 = "hmac(sha512)"; + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final String CRYPT_AES_CBC = "cbc(aes)"; + field public static final String CRYPT_AES_CTR = "rfc3686(ctr(aes))"; + } + + public class IpSecManager { + method @NonNull public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(@NonNull java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException; + method @NonNull public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(@NonNull java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException; + method public void applyTransportModeTransform(@NonNull java.net.Socket, int, @NonNull android.net.IpSecTransform) throws java.io.IOException; + method public void applyTransportModeTransform(@NonNull java.net.DatagramSocket, int, @NonNull android.net.IpSecTransform) throws java.io.IOException; + method public void applyTransportModeTransform(@NonNull java.io.FileDescriptor, int, @NonNull android.net.IpSecTransform) throws java.io.IOException; + method @NonNull public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException; + method @NonNull public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException; + method public void removeTransportModeTransforms(@NonNull java.net.Socket) throws java.io.IOException; + method public void removeTransportModeTransforms(@NonNull java.net.DatagramSocket) throws java.io.IOException; + method public void removeTransportModeTransforms(@NonNull java.io.FileDescriptor) throws java.io.IOException; + field public static final int DIRECTION_IN = 0; // 0x0 + field public static final int DIRECTION_OUT = 1; // 0x1 + } + + 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 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 java.io.FileDescriptor getFileDescriptor(); + method public int getPort(); + } + + public final class IpSecTransform implements java.lang.AutoCloseable { + method public void close(); + } + + public static class IpSecTransform.Builder { + ctor public IpSecTransform.Builder(@NonNull android.content.Context); + method @NonNull public android.net.IpSecTransform buildTransportModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException; + method @NonNull public android.net.IpSecTransform.Builder setAuthenticatedEncryption(@NonNull android.net.IpSecAlgorithm); + method @NonNull public android.net.IpSecTransform.Builder setAuthentication(@NonNull android.net.IpSecAlgorithm); + method @NonNull public android.net.IpSecTransform.Builder setEncryption(@NonNull android.net.IpSecAlgorithm); + method @NonNull public android.net.IpSecTransform.Builder setIpv4Encapsulation(@NonNull android.net.IpSecManager.UdpEncapsulationSocket, int); + } + +} + package android.net.nsd { public final class NsdManager { diff --git a/framework-t/api/lint-baseline.txt b/framework-t/api/lint-baseline.txt new file mode 100644 index 0000000000..1e3074758b --- /dev/null +++ b/framework-t/api/lint-baseline.txt @@ -0,0 +1,7 @@ +// Baseline format: 1.0 +GenericException: android.net.IpSecManager.SecurityParameterIndex#finalize(): + Methods must not throw generic exceptions (`java.lang.Throwable`) +GenericException: android.net.IpSecManager.UdpEncapsulationSocket#finalize(): + Methods must not throw generic exceptions (`java.lang.Throwable`) +GenericException: android.net.IpSecTransform#finalize(): + Methods must not throw generic exceptions (`java.lang.Throwable`) diff --git a/framework-t/api/module-lib-current.txt b/framework-t/api/module-lib-current.txt index 81d89c62f6..2ff3451b15 100644 --- a/framework-t/api/module-lib-current.txt +++ b/framework-t/api/module-lib-current.txt @@ -5,5 +5,13 @@ package android.net { method public static void registerServiceWrappers(); } + public class IpSecManager { + field public static final int DIRECTION_FWD = 2; // 0x2 + } + + public static final class IpSecManager.UdpEncapsulationSocket implements java.lang.AutoCloseable { + method public int getResourceId(); + } + } diff --git a/framework-t/api/system-current.txt b/framework-t/api/system-current.txt index d802177e24..041bcaf658 100644 --- a/framework-t/api/system-current.txt +++ b/framework-t/api/system-current.txt @@ -1 +1,22 @@ // Signature format: 2.0 +package android.net { + + public class IpSecManager { + method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void applyTunnelModeTransform(@NonNull android.net.IpSecManager.IpSecTunnelInterface, int, @NonNull android.net.IpSecTransform) throws java.io.IOException; + method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecManager.IpSecTunnelInterface createIpSecTunnelInterface(@NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull android.net.Network) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException; + } + + public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable { + method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; + method public void close(); + method @NonNull public String getInterfaceName(); + method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; + method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void setUnderlyingNetwork(@NonNull android.net.Network) throws java.io.IOException; + } + + public static class IpSecTransform.Builder { + method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecTransform buildTunnelModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException; + } + +} + diff --git a/framework-t/api/system-lint-baseline.txt b/framework-t/api/system-lint-baseline.txt new file mode 100644 index 0000000000..9baf991944 --- /dev/null +++ b/framework-t/api/system-lint-baseline.txt @@ -0,0 +1,7 @@ +// Baseline format: 1.0 +BuilderSetStyle: android.net.IpSecTransform.Builder#buildTunnelModeTransform(java.net.InetAddress, android.net.IpSecManager.SecurityParameterIndex): + Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.IpSecTransform.Builder.buildTunnelModeTransform(java.net.InetAddress,android.net.IpSecManager.SecurityParameterIndex) + + +GenericException: android.net.IpSecManager.IpSecTunnelInterface#finalize(): + Methods must not throw generic exceptions (`java.lang.Throwable`) diff --git a/service-t/src/com/android/server/ConnectivityServiceInitializer.java b/service-t/src/com/android/server/ConnectivityServiceInitializer.java index 23d8bdc6ae..67757affb9 100644 --- a/service-t/src/com/android/server/ConnectivityServiceInitializer.java +++ b/service-t/src/com/android/server/ConnectivityServiceInitializer.java @@ -28,6 +28,7 @@ import com.android.modules.utils.build.SdkLevel; public final class ConnectivityServiceInitializer extends SystemService { private static final String TAG = ConnectivityServiceInitializer.class.getSimpleName(); private final ConnectivityService mConnectivity; + private final IpSecService mIpSecService; private final NsdService mNsdService; public ConnectivityServiceInitializer(Context context) { @@ -35,6 +36,7 @@ public final class ConnectivityServiceInitializer extends SystemService { // Load JNI libraries used by ConnectivityService and its dependencies System.loadLibrary("service-connectivity"); mConnectivity = new ConnectivityService(context); + mIpSecService = createIpSecService(context); mNsdService = createNsdService(context); } @@ -43,12 +45,27 @@ public final class ConnectivityServiceInitializer extends SystemService { Log.i(TAG, "Registering " + Context.CONNECTIVITY_SERVICE); publishBinderService(Context.CONNECTIVITY_SERVICE, mConnectivity, /* allowIsolated= */ false); + + if (mIpSecService != null) { + Log.i(TAG, "Registering " + Context.IPSEC_SERVICE); + publishBinderService(Context.IPSEC_SERVICE, mIpSecService, /* allowIsolated= */ false); + } + if (mNsdService != null) { Log.i(TAG, "Registering " + Context.NSD_SERVICE); publishBinderService(Context.NSD_SERVICE, mNsdService, /* allowIsolated= */ false); } } + /** + * Return IpSecService instance, or null if current SDK is lower than T. + */ + private IpSecService createIpSecService(final Context context) { + if (!SdkLevel.isAtLeastT()) return null; + + return new IpSecService(context); + } + /** Return NsdService instance or null if current SDK is lower than T */ private NsdService createNsdService(final Context context) { if (!SdkLevel.isAtLeastT()) return null;