Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c5f1ba9 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Add NetworkUtils utilities to SystemApi

attach*Filter and addArpEntry are necessary for the NetworkStack but are
only usable for apps that have system permissions.
Also includes system API for IpPrefix, LinkAddress, LinkProperties,
Network, and static modifier in ApfCapabilities that were missed in
previous CLs.

Test: Builds, flashed, WiFi works
Bug: 112869080
Change-Id: If141ae6a2f9145f5af64ba002ca44938f39b90a9
parent 5cf41e47
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -3088,12 +3088,14 @@ package android.net {
  public final class IpPrefix implements android.os.Parcelable {
    ctor public IpPrefix(java.net.InetAddress, int);
    ctor public IpPrefix(String);
  }
  public class LinkAddress implements android.os.Parcelable {
    ctor public LinkAddress(java.net.InetAddress, int, int, int);
    ctor public LinkAddress(java.net.InetAddress, int);
    ctor public LinkAddress(String);
    ctor public LinkAddress(String, int, int);
    method public boolean isGlobalPreferred();
    method public boolean isIPv4();
    method public boolean isIPv6();
@@ -3104,6 +3106,7 @@ package android.net {
    ctor public LinkProperties();
    ctor public LinkProperties(android.net.LinkProperties);
    method public boolean addDnsServer(java.net.InetAddress);
    method public boolean addLinkAddress(android.net.LinkAddress);
    method public boolean addRoute(android.net.RouteInfo);
    method public void clear();
    method @Nullable public android.net.IpPrefix getNat64Prefix();
@@ -3118,6 +3121,7 @@ package android.net {
    method public boolean isProvisioned();
    method public boolean isReachable(java.net.InetAddress);
    method public boolean removeDnsServer(java.net.InetAddress);
    method public boolean removeLinkAddress(android.net.LinkAddress);
    method public boolean removeRoute(android.net.RouteInfo);
    method public void setDnsServers(java.util.Collection<java.net.InetAddress>);
    method public void setDomains(String);
@@ -3134,6 +3138,7 @@ package android.net {
  }
  public class Network implements android.os.Parcelable {
    ctor public Network(android.net.Network);
    method public android.net.Network getPrivateDnsBypassingCopy();
  }
@@ -3269,8 +3274,8 @@ package android.net.apf {
  public class ApfCapabilities {
    ctor public ApfCapabilities(int, int, int);
    method public boolean getApfDrop8023Frames(android.content.Context);
    method public int[] getApfEthTypeBlackList(android.content.Context);
    method public static boolean getApfDrop8023Frames(android.content.Context);
    method public static int[] getApfEthTypeBlackList(android.content.Context);
    method public boolean hasDataAccess();
    field public final int apfPacketFormat;
    field public final int apfVersionSupported;
@@ -3467,6 +3472,10 @@ package android.net.metrics {
package android.net.util {
  public class SocketUtils {
    method public static void addArpEntry(java.net.Inet4Address, android.net.MacAddress, String, java.io.FileDescriptor) throws java.io.IOException;
    method public static void attachControlPacketFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
    method public static void attachDhcpFilter(java.io.FileDescriptor) throws java.net.SocketException;
    method public static void attachRaFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
    method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException;
    method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException;
    method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
+13 −2
Original line number Diff line number Diff line
@@ -613,6 +613,7 @@ package android.net {

  public final class IpPrefix implements android.os.Parcelable {
    ctor public IpPrefix(java.net.InetAddress, int);
    ctor public IpPrefix(String);
  }

  public final class IpSecManager {
@@ -621,6 +622,9 @@ package android.net {

  public class LinkAddress implements android.os.Parcelable {
    ctor public LinkAddress(java.net.InetAddress, int, int, int);
    ctor public LinkAddress(java.net.InetAddress, int);
    ctor public LinkAddress(String);
    ctor public LinkAddress(String, int, int);
    method public boolean isGlobalPreferred();
    method public boolean isIPv4();
    method public boolean isIPv6();
@@ -630,6 +634,7 @@ package android.net {
  public final class LinkProperties implements android.os.Parcelable {
    ctor public LinkProperties(android.net.LinkProperties);
    method public boolean addDnsServer(java.net.InetAddress);
    method public boolean addLinkAddress(android.net.LinkAddress);
    method @Nullable public android.net.IpPrefix getNat64Prefix();
    method public java.util.List<java.net.InetAddress> getPcscfServers();
    method public String getTcpBufferSizes();
@@ -642,6 +647,7 @@ package android.net {
    method public boolean isProvisioned();
    method public boolean isReachable(java.net.InetAddress);
    method public boolean removeDnsServer(java.net.InetAddress);
    method public boolean removeLinkAddress(android.net.LinkAddress);
    method public boolean removeRoute(android.net.RouteInfo);
    method public void setNat64Prefix(android.net.IpPrefix);
    method public void setPcscfServers(java.util.Collection<java.net.InetAddress>);
@@ -652,6 +658,7 @@ package android.net {
  }

  public class Network implements android.os.Parcelable {
    ctor public Network(android.net.Network);
    method public android.net.Network getPrivateDnsBypassingCopy();
  }

@@ -703,8 +710,8 @@ package android.net.apf {

  public class ApfCapabilities {
    ctor public ApfCapabilities(int, int, int);
    method public boolean getApfDrop8023Frames(android.content.Context);
    method public int[] getApfEthTypeBlackList(android.content.Context);
    method public static boolean getApfDrop8023Frames(android.content.Context);
    method public static int[] getApfEthTypeBlackList(android.content.Context);
    method public boolean hasDataAccess();
    field public final int apfPacketFormat;
    field public final int apfVersionSupported;
@@ -901,6 +908,10 @@ package android.net.metrics {
package android.net.util {

  public class SocketUtils {
    method public static void addArpEntry(java.net.Inet4Address, android.net.MacAddress, String, java.io.FileDescriptor) throws java.io.IOException;
    method public static void attachControlPacketFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
    method public static void attachDhcpFilter(java.io.FileDescriptor) throws java.net.SocketException;
    method public static void attachRaFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
    method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException;
    method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException;
    method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
+2 −0
Original line number Diff line number Diff line
@@ -104,6 +104,8 @@ public final class IpPrefix implements Parcelable {
     *
     * @hide
     */
    @SystemApi
    @TestApi
    public IpPrefix(String prefix) {
        // We don't reuse the (InetAddress, int) constructor because "error: call to this must be
        // first statement in constructor". We could factor out setting the member variables to an
+4 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ public class LinkAddress implements Parcelable {
     * @hide
     */
    @SystemApi
    @TestApi
    public LinkAddress(InetAddress address, int prefixLength) {
        this(address, prefixLength, 0, 0);
        this.scope = scopeForUnicastAddress(address);
@@ -199,6 +200,7 @@ public class LinkAddress implements Parcelable {
     * @hide
     */
    @SystemApi
    @TestApi
    public LinkAddress(String address) {
        this(address, 0, 0);
        this.scope = scopeForUnicastAddress(this.address);
@@ -212,6 +214,8 @@ public class LinkAddress implements Parcelable {
     * @param scope The address scope.
     * @hide
     */
    @SystemApi
    @TestApi
    public LinkAddress(String address, int flags, int scope) {
        // This may throw an IllegalArgumentException; catching it is the caller's responsibility.
        // TODO: consider rejecting mapped IPv4 addresses such as "::ffff:192.0.2.5/24".
+4 −1
Original line number Diff line number Diff line
@@ -287,7 +287,8 @@ public final class LinkProperties implements Parcelable {
     * @return true if {@code address} was added or updated, false otherwise.
     * @hide
     */
    @UnsupportedAppUsage
    @SystemApi
    @TestApi
    public boolean addLinkAddress(LinkAddress address) {
        if (address == null) {
            return false;
@@ -315,6 +316,8 @@ public final class LinkProperties implements Parcelable {
     * @return true if the address was removed, false if it did not exist.
     * @hide
     */
    @SystemApi
    @TestApi
    public boolean removeLinkAddress(LinkAddress toRemove) {
        int i = findLinkAddressIndex(toRemove);
        if (i >= 0) {
Loading