Merge changes from topics "framework-wifi-apex", "split-framework-wifi"

* changes:
  Move framework-wifi into the Wifi APEX
  Create WifiAnnotations and jarjar into framework
  Split framework-wifi.jar out of framework.jar
This commit is contained in:
David Su
2019-12-17 07:35:27 +00:00
committed by Android (Google) Code Review
8 changed files with 166 additions and 50 deletions

View File

@@ -199,30 +199,6 @@ filegroup {
path: "mms/java",
}
filegroup {
name: "framework-wifi-sources",
srcs: [
"wifi/java/**/*.java",
"wifi/java/**/*.aidl",
],
exclude_srcs: [
":framework-wifi-non-updatable-sources"
],
path: "wifi/java",
}
filegroup {
name: "framework-wifi-non-updatable-sources",
srcs: [
// TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and
// framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache
// to a separate package.
"wifi/java/android/net/wifi/WifiNetworkScoreCache.java",
"wifi/java/android/net/wifi/WifiCondManager.java",
"wifi/java/android/net/wifi/wificond/*.java",
],
}
filegroup {
name: "framework-non-updatable-sources",
srcs: [
@@ -247,9 +223,8 @@ filegroup {
":framework-telecomm-sources",
":framework-telephony-common-sources",
":framework-telephony-sources",
":framework-wifi-sources",
":framework-wifi-annotations",
":framework-wifi-non-updatable-sources",
":libwificond_ipc_aidl",
":PacProcessor-aidl-sources",
":ProxyHandler-aidl-sources",
@@ -290,6 +265,7 @@ filegroup {
":framework-sdkext-sources",
":framework-statsd-sources",
":updatable-media-srcs",
":framework-wifi-updatable-sources",
]
}
@@ -425,7 +401,7 @@ java_defaults {
filegroup {
name: "framework-jarjar-rules",
srcs: ["jarjar_rules_hidl.txt"],
srcs: ["framework-jarjar-rules.txt"],
}
filegroup {
@@ -453,6 +429,7 @@ java_library {
libs: [
// TODO(b/146167933): Use framework-statsd-stubs
"framework-statsd",
"framework-wifi-stubs",
],
installable: true,
javac_shard_size: 150,
@@ -492,6 +469,8 @@ java_library {
"framework-sdkext-stubs-systemapi",
// TODO(b/146167933): Use framework-statsd-stubs instead.
"framework-statsd",
// TODO(b/140299412): should be framework-wifi-stubs
"framework-wifi",
// TODO(jiyong): add more stubs for APEXes here
],
sdk_version: "core_platform",

View File

@@ -40,6 +40,7 @@ static const char* kPathWhitelist[] = {
"/apex/com.android.sdkext/javalib/framework-sdkext.jar",
"/apex/com.android.telephony/javalib/telephony-common.jar",
"/apex/com.android.telephony/javalib/ims-common.jar",
"/apex/com.android.wifi/javalib/framework-wifi.jar",
"/dev/null",
"/dev/socket/zygote",
"/dev/socket/zygote_secondary",

View File

@@ -0,0 +1,2 @@
rule android.hidl.** android.internal.hidl.@1
rule android.net.wifi.WifiAnnotations* android.internal.wifi.WifiAnnotations@1

View File

@@ -1 +0,0 @@
rule android.hidl.** android.internal.hidl.@1

102
wifi/Android.bp Normal file
View File

@@ -0,0 +1,102 @@
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
filegroup {
name: "framework-wifi-updatable-sources",
srcs: [
"java/**/*.java",
"java/**/*.aidl",
],
exclude_srcs: [
":framework-wifi-non-updatable-sources"
],
path: "java",
}
filegroup {
name: "framework-wifi-non-updatable-sources",
srcs: [
// TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and
// framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache
// to a separate package.
"java/android/net/wifi/WifiNetworkScoreCache.java",
"java/android/net/wifi/WifiCondManager.java",
"java/android/net/wifi/wificond/*.java",
":libwificond_ipc_aidl",
],
}
filegroup {
name: "framework-wifi-annotations",
srcs: ["java/android/net/wifi/WifiAnnotations.java"],
}
java_library {
name: "framework-wifi",
sdk_version: "core_platform", // TODO(b/140299412) should be core_current
libs: [
"framework-minus-apex", // TODO(b/140299412) should be framework-system-stubs
],
srcs: [
":framework-wifi-updatable-sources",
],
installable: true,
optimize: {
enabled: false
}
}
metalava_wifi_docs_args =
"--hide-package com.android.server " +
"--error UnhiddenSystemApi " +
"--hide RequiresPermission " +
"--hide MissingPermission " +
"--hide BroadcastBehavior " +
"--hide HiddenSuperclass " +
"--hide DeprecationMismatch " +
"--hide UnavailableSymbol " +
"--hide SdkConstant " +
"--hide HiddenTypeParameter " +
"--hide Todo --hide Typo " +
"--hide HiddenTypedefConstant " +
"--show-annotation android.annotation.SystemApi "
droidstubs {
name: "framework-wifi-stubs-srcs",
srcs: [
":framework-annotations",
":framework-wifi-updatable-sources",
],
aidl: {
include_dirs: ["frameworks/base/core/java"],
},
args: metalava_wifi_docs_args,
sdk_version: "core_current",
libs: ["android_system_stubs_current"],
}
java_library {
name: "framework-wifi-stubs",
srcs: [":framework-wifi-stubs-srcs"],
aidl: {
export_include_dirs: [
"java",
],
},
sdk_version: "core_current",
libs: ["android_system_stubs_current"],
installable: false,
}

View File

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.net.wifi;
import android.annotation.IntDef;
import android.annotation.StringDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Wifi annotations meant to be statically linked into client modules, since they cannot be
* exposed as @SystemApi.
*
* e.g. {@link IntDef}, {@link StringDef}
*
* @hide
*/
public final class WifiAnnotations {
private WifiAnnotations() {}
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"SCAN_TYPE_"}, value = {
WifiScanner.SCAN_TYPE_LOW_LATENCY,
WifiScanner.SCAN_TYPE_LOW_POWER,
WifiScanner.SCAN_TYPE_HIGH_ACCURACY})
public @interface ScanType {}
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"WIFI_BAND_"}, value = {
WifiScanner.WIFI_BAND_UNSPECIFIED,
WifiScanner.WIFI_BAND_24_GHZ,
WifiScanner.WIFI_BAND_5_GHZ,
WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY,
WifiScanner.WIFI_BAND_6_GHZ})
public @interface WifiBandBasic {}
}

View File

@@ -725,7 +725,7 @@ public class WifiCondManager implements IBinder.DeathRecipient {
/**
* Return scan type for the parcelable {@link SingleScanSettings}
*/
private static int getScanType(@WifiScanner.ScanType int scanType) {
private static int getScanType(@WifiAnnotations.ScanType int scanType) {
switch (scanType) {
case WifiScanner.SCAN_TYPE_LOW_LATENCY:
return IWifiScannerImpl.SCAN_TYPE_LOW_SPAN;
@@ -746,7 +746,7 @@ public class WifiCondManager implements IBinder.DeathRecipient {
* @param hiddenNetworkSSIDs List of hidden networks to be scanned for.
* @return Returns true on success.
*/
public boolean scan(@NonNull String ifaceName, @WifiScanner.ScanType int scanType,
public boolean scan(@NonNull String ifaceName, @WifiAnnotations.ScanType int scanType,
Set<Integer> freqs, List<byte[]> hiddenNetworkSSIDs) {
IWifiScannerImpl scannerImpl = getScannerImpl(ifaceName);
if (scannerImpl == null) {
@@ -868,7 +868,7 @@ public class WifiCondManager implements IBinder.DeathRecipient {
* @return frequencies vector of valid frequencies (MHz), or null for error.
* @throws IllegalArgumentException if band is not recognized.
*/
public int [] getChannelsForBand(@WifiScanner.WifiBandBasic int band) {
public int [] getChannelsForBand(@WifiAnnotations.WifiBandBasic int band) {
if (mWificond == null) {
Log.e(TAG, "No valid wificond scanner interface handler");
return null;

View File

@@ -89,16 +89,6 @@ public class WifiScanner {
/** 6 GHz band */
public static final int WIFI_BAND_6_GHZ = 1 << WIFI_BAND_INDEX_6_GHZ;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"WIFI_BAND_"}, value = {
WIFI_BAND_UNSPECIFIED,
WIFI_BAND_24_GHZ,
WIFI_BAND_5_GHZ,
WIFI_BAND_5_GHZ_DFS_ONLY,
WIFI_BAND_6_GHZ})
public @interface WifiBandBasic {}
/**
* Combination of bands
* Note that those are only the common band combinations,
@@ -249,14 +239,6 @@ public class WifiScanner {
*/
public static final int REPORT_EVENT_NO_BATCH = (1 << 2);
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"SCAN_TYPE_"}, value = {
SCAN_TYPE_LOW_LATENCY,
SCAN_TYPE_LOW_POWER,
SCAN_TYPE_HIGH_ACCURACY})
public @interface ScanType {}
/**
* Optimize the scan for lower latency.
* @see ScanSettings#type
@@ -354,7 +336,7 @@ public class WifiScanner {
* {@link #SCAN_TYPE_HIGH_ACCURACY}.
* Default value: {@link #SCAN_TYPE_LOW_LATENCY}.
*/
@ScanType
@WifiAnnotations.ScanType
@RequiresPermission(android.Manifest.permission.NETWORK_STACK)
public int type = SCAN_TYPE_LOW_LATENCY;
/**