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
This commit is contained in:
13
Android.bp
13
Android.bp
@@ -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",
|
||||
|
||||
@@ -40,6 +40,7 @@ android_app {
|
||||
static_libs: [
|
||||
"NetworkStackLib"
|
||||
],
|
||||
jarjar_rules: "jarjar-rules-shared.txt",
|
||||
manifest: "AndroidManifest.xml",
|
||||
required: ["NetworkStackPermissionStub"],
|
||||
}
|
||||
19
packages/NetworkStack/jarjar-rules-shared.txt
Normal file
19
packages/NetworkStack/jarjar-rules-shared.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
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
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -18,7 +18,6 @@ package android.net.util;
|
||||
|
||||
import static java.lang.Math.max;
|
||||
|
||||
import android.net.shared.FdEventsReader;
|
||||
import android.os.Handler;
|
||||
import android.system.Os;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ java_library_static {
|
||||
srcs: ["java/**/*.java"],
|
||||
static_libs: [
|
||||
"netd_aidl_interface-java",
|
||||
"networkstack-aidl-interfaces-java",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user