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

Commit 1b57e8e9 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Fix framework and NetworkStack classes conflicts

Classes that are used in framework.jar cannot be linked in NetworkStack,
as the framework takes precedence in the classpath. This prevents the
networkstack from using these classes due to the hidden API usage
detection.

Do the following:
 - jarjar any shared source file between framework and NetworkStack, so
   the version in the NetworkStack uses a different package.
 - Move any shared class not used in the NetworkStack to services.net

The CL  uses jarjar on the app copy and not the framework classes, as
the framework cannot be updated without an OTA, and non-network stack
specific classes should not be renamed because of the network stack.

Test: atest FrameworksNetTests NetworkStackTests
Test: flashed svelte build, WiFi works
Bug: 124033493
Change-Id: I85d888b756adc28c36638913632bfdfdbf0e0486
parent 5db454c2
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -704,7 +704,7 @@ java_defaults {
        "android.hardware.vibrator-V1.1-java",
        "android.hardware.vibrator-V1.2-java",
        "android.hardware.wifi-V1.0-java-constants",
        "networkstack-aidl-interfaces-java",
        "networkstack-aidl-framework-java",
        "netd_aidl_parcelables-java",
    ],

@@ -818,7 +818,6 @@ aidl_interface {
        "core/java/android/net/DhcpResultsParcelable.aidl",
        "core/java/android/net/INetworkMonitor.aidl",
        "core/java/android/net/INetworkMonitorCallbacks.aidl",
        "core/java/android/net/IIpMemoryStore.aidl",
        "core/java/android/net/INetworkStackConnector.aidl",
        "core/java/android/net/INetworkStackStatusCallback.aidl",
        "core/java/android/net/InitialConfigurationParcelable.aidl",
@@ -837,6 +836,16 @@ aidl_interface {
        "core/java/android/net/dhcp/IDhcpServerCallbacks.aidl",
        "core/java/android/net/ip/IIpClient.aidl",
        "core/java/android/net/ip/IIpClientCallbacks.aidl",
    ],
    api_dir: "aidl/networkstack",
}

aidl_interface {
    name: "networkstack-aidl-framework",
    local_include_dir: "core/java",
    srcs: [
        "core/java/android/net/TcpKeepalivePacketDataParcelable.aidl",
        "core/java/android/net/IIpMemoryStore.aidl",
        "core/java/android/net/ipmemorystore/**/*.aidl",
    ],
    api_dir: "aidl/networkstack",
+1 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ android_app {
    static_libs: [
        "NetworkStackLib"
    ],
    jarjar_rules: "jarjar-rules-shared.txt",
    manifest: "AndroidManifest.xml",
    required: ["NetworkStackPermissionStub"],
}
 No newline at end of file
+19 −0
Original line number Diff line number Diff line
rule com.android.internal.util.** android.net.networkstack.util.@1

rule android.net.shared.Inet4AddressUtils* android.net.networkstack.shared.Inet4AddressUtils@1
rule android.net.shared.InetAddressUtils* android.net.networkstack.shared.InetAddressUtils@1

# Ignore DhcpResultsParcelable, but jarjar DhcpResults
# TODO: move DhcpResults into services.net and delete from here
rule android.net.DhcpResultsParcelable* @0
rule android.net.DhcpResults* android.net.networkstack.DhcpResults@1
rule android.net.LocalLog* android.net.networkstack.LocalLog@1

# TODO: remove from framework dependencies, then remove here
rule android.net.InterfaceConfigurationParcel* android.net.networkstack.InterfaceConfigurationParcel@1
rule android.net.TetherStatsParcel* android.net.networkstack.TetherStatsParcel@1

# Used by UidRange, which is used by framework classes such as NetworkCapabilities.
rule android.net.UidRangeParcel* android.net.networkstack.UidRangeParcel@1
# TODO: move TcpKeepalivePacketData to services.net and delete
rule android.net.TcpKeepalivePacketDataParcelable* android.net.networkstack.TcpKeepalivePacketDataParcelable@1
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ package android.net.dhcp;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.shared.FdEventsReader;
import android.net.util.FdEventsReader;
import android.os.Handler;
import android.system.Os;

+1 −2
Original line number Diff line number Diff line
@@ -14,14 +14,13 @@
 * limitations under the License.
 */

package android.net.shared;
package android.net.util;

import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_ERROR;
import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.util.SocketUtils;
import android.os.Handler;
import android.os.Looper;
import android.os.MessageQueue;
Loading