diff options
| author | 2020-01-09 14:02:21 -0800 | |
|---|---|---|
| committer | 2020-01-12 18:32:32 -0800 | |
| commit | 511a814a109169383f6aecad2ba86e4e5c770345 (patch) | |
| tree | d59b852c04d524a3c1c487034d9e0d98f395f3b3 | |
| parent | 2dbacb6ca4a43783da4a0377504e5c1807f8d75a (diff) | |
Jarjar utils into framework-wifi and share with wifi-service
Jarjar utility classes used by both framework-wifi
and wifi-service into framework-wifi and allow
them to be referenced by wifi-service.
Create framework-wifi-util-lib which contains
utility classes that we will copy into the Wifi module.
It is statically linked into framework-wifi and
dynamically linked by wifi-service.
Create framework-wifi-pre-jarjar to allow
wifi-service to use the pre-rename symbols in
framework-wifi-util-lib.
In essence:
1. build framework-wifi-util-lib,
framework-wifi-pre-jarjar, wifi-service-pre-jarjar
using original symbol names.
2. rename everything afterwards at the same time.
This ensures that all symbol names are consistent at
each step in the build process.
Bug: 142886292
Test: device boots up and connects to wifi
Change-Id: I27b3519657d652787714b4b34de6cdbfef2a81e4
| -rw-r--r-- | Android.bp | 26 | ||||
| -rw-r--r-- | wifi/Android.bp | 29 | ||||
| -rw-r--r-- | wifi/jarjar-rules.txt | 37 |
3 files changed, 89 insertions, 3 deletions
diff --git a/Android.bp b/Android.bp index 8c8563139083..9a0bd737229e 100644 --- a/Android.bp +++ b/Android.bp @@ -604,6 +604,7 @@ gensrcs { filegroup { name: "framework-annotations", srcs: [ + "core/java/android/annotation/CheckResult.java", "core/java/android/annotation/IntDef.java", "core/java/android/annotation/IntRange.java", "core/java/android/annotation/NonNull.java", @@ -615,6 +616,7 @@ filegroup { "core/java/android/annotation/UnsupportedAppUsage.java", "core/java/com/android/internal/annotations/GuardedBy.java", "core/java/com/android/internal/annotations/VisibleForTesting.java", + "core/java/com/android/internal/annotations/Immutable.java", ], } @@ -1148,10 +1150,31 @@ filegroup { ], } +// utility classes statically linked into framework-wifi and dynamically linked +// into wifi-service +java_library { + name: "framework-wifi-util-lib", + sdk_version: "core_current", + srcs: [ + "core/java/android/content/pm/BaseParceledListSlice.java", + "core/java/android/content/pm/ParceledListSlice.java", + "core/java/com/android/internal/util/AsyncChannel.java", + "core/java/com/android/internal/util/AsyncService.java", + "core/java/com/android/internal/util/Protocol.java", + "core/java/com/android/internal/util/Preconditions.java", + ], + libs: [ + "framework-annotations-lib", + "unsupportedappusage", + "android_system_stubs_current", + ], + visibility: ["//frameworks/base/wifi"], +} + +// utility classes statically linked into wifi-service filegroup { name: "framework-wifi-service-shared-srcs", srcs: [ - ":framework-annotations", "core/java/android/net/InterfaceConfiguration.java", "core/java/android/os/BasicShellCommandHandler.java", "core/java/android/os/HandlerExecutor.java", @@ -1162,7 +1185,6 @@ filegroup { "core/java/com/android/internal/util/HexDump.java", "core/java/com/android/internal/util/IState.java", "core/java/com/android/internal/util/MessageUtils.java", - "core/java/com/android/internal/util/Preconditions.java", "core/java/com/android/internal/util/State.java", "core/java/com/android/internal/util/StateMachine.java", "core/java/com/android/internal/util/WakeupMessage.java", diff --git a/wifi/Android.bp b/wifi/Android.bp index 286be0b82db7..a69803a435e2 100644 --- a/wifi/Android.bp +++ b/wifi/Android.bp @@ -52,10 +52,15 @@ test_access_hidden_api_whitelist = [ "//external/robolectric-shadows:__subpackages__", ] +// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility +// classes before they are renamed. java_library { - name: "framework-wifi", + name: "framework-wifi-pre-jarjar", // TODO(b/140299412) should be core_current once we build against framework-system-stubs sdk_version: "core_platform", + static_libs: [ + "framework-wifi-util-lib", + ], libs: [ // TODO(b/140299412) should be framework-system-stubs once we fix all @hide dependencies "framework-minus-apex", @@ -64,6 +69,23 @@ java_library { srcs: [ ":framework-wifi-updatable-sources", ], + installable: false, + visibility: [ + "//frameworks/opt/net/wifi/service", + "//frameworks/opt/net/wifi/tests/wifitests", + ], +} + +// post-jarjar version of framework-wifi +java_library { + name: "framework-wifi", + // TODO(b/140299412) should be core_current once we build against framework-system-stubs + sdk_version: "core_platform", + static_libs: [ + "framework-wifi-pre-jarjar", + ], + jarjar_rules: ":wifi-jarjar-rules", + installable: true, optimize: { enabled: false @@ -122,3 +144,8 @@ java_defaults { ], visibility: test_access_hidden_api_whitelist, } + +filegroup { + name: "wifi-jarjar-rules", + srcs: ["jarjar-rules.txt"], +} diff --git a/wifi/jarjar-rules.txt b/wifi/jarjar-rules.txt new file mode 100644 index 000000000000..f0da1ec54080 --- /dev/null +++ b/wifi/jarjar-rules.txt @@ -0,0 +1,37 @@ +rule android.net.InterfaceConfigurationParcel* @0 +rule android.net.InterfaceConfiguration* com.android.server.x.wifi.net.InterfaceConfiguration@1 + +# We don't jar-jar the entire package because, we still use some classes (like +# AsyncChannel in com.android.internal.util) from these packages which are not +# inside our jar (currently in framework.jar, but will be in wifisdk.jar in the future). +rule com.android.internal.util.FastXmlSerializer* com.android.server.x.wifi.util.FastXmlSerializer@1 +rule com.android.internal.util.HexDump* com.android.server.x.wifi.util.HexDump@1 +rule com.android.internal.util.IState* com.android.server.x.wifi.util.IState@1 +rule com.android.internal.util.MessageUtils* com.android.server.x.wifi.util.MessageUtils@1 +rule com.android.internal.util.State* com.android.server.x.wifi.util.State@1 +rule com.android.internal.util.StateMachine* com.android.server.x.wifi.util.StateMachine@1 +rule com.android.internal.util.WakeupMessage* com.android.server.x.wifi.util.WakeupMessage@1 +rule com.android.internal.util.XmlUtils* com.android.server.x.wifi.util.XmlUtils@1 + +rule android.util.BackupUtils* com.android.server.x.wifi.util.BackupUtils@1 +rule android.util.LocalLog* com.android.server.x.wifi.util.LocalLog@1 +rule android.util.Rational* com.android.server.x.wifi.util.Rational@1 + +rule android.os.BasicShellCommandHandler* com.android.server.x.wifi.os.BasicShellCommandHandler@1 +rule android.os.HandlerExecutor* com.android.server.x.wifi.os.HandlerExecutor@1 + +# Use our statically linked bouncy castle library +rule org.bouncycastle.** com.android.server.x.wifi.bouncycastle.@1 +# Use our statically linked protobuf library +rule com.google.protobuf.** com.android.server.x.wifi.protobuf.@1 +# Use our statically linked PlatformProperties library +rule android.sysprop.** com.android.server.x.wifi.sysprop.@1 + + +# used by both framework-wifi and wifi-service +rule android.content.pm.BaseParceledListSlice* android.x.net.wifi.util.BaseParceledListSlice@1 +rule android.content.pm.ParceledListSlice* android.x.net.wifi.util.ParceledListSlice@1 +rule com.android.internal.util.AsyncChannel* android.x.net.wifi.util.AsyncChannel@1 +rule com.android.internal.util.AsyncService* android.x.net.wifi.util.AsyncService@1 +rule com.android.internal.util.Preconditions* android.x.net.wifi.util.Preconditions@1 +rule com.android.internal.util.Protocol* android.x.net.wifi.util.Protocol@1 |