diff options
| author | 2022-01-06 13:56:39 +0000 | |
|---|---|---|
| committer | 2022-01-06 13:56:39 +0000 | |
| commit | beb9fb3cc822a725cea25dafe1b7d4970dcbe77d (patch) | |
| tree | 2685ad12ba8033b681d049a8d22c96aba98bd27a | |
| parent | ff3509368410796fd957867565fe0dbfd10aa306 (diff) | |
| parent | 64c6943777eb720f2504791015eea54bc0d3cc20 (diff) | |
Merge changes from topics "ms34-tm", "ms40-clock"
* changes:
[MS09] Expose NetworkTemplate APIs which are needed by NetworkPolicy
[MS34.1] Replace TelephonyManager#getSubscriberId(subId) with public API
[MS40.1] Remove Clock dependencies from NetworkStatsService
[MS27] Expose noteUntaggedSocket SystemApi
11 files changed, 76 insertions, 38 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 230689dda0c9..14a9a23ba0d8 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -32074,6 +32074,7 @@ package android.os { public final class SystemClock { method @NonNull public static java.time.Clock currentGnssTimeClock(); + method @NonNull public static java.time.Clock currentNetworkTimeClock(); method public static long currentThreadTimeMillis(); method public static long elapsedRealtime(); method public static long elapsedRealtimeNanos(); diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index a646a681afc1..d13170bf4a35 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -237,6 +237,43 @@ package android.net { field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStateSnapshot> CREATOR; } + public final class NetworkTemplate implements android.os.Parcelable { + method public int describeContents(); + method public int getDefaultNetworkStatus(); + method public int getMatchRule(); + method public int getMeteredness(); + method public int getOemManaged(); + method public int getRatType(); + method public int getRoaming(); + method @NonNull public java.util.Set<java.lang.String> getSubscriberIds(); + method @NonNull public java.util.Set<java.lang.String> getWifiNetworkKeys(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkTemplate> CREATOR; + field public static final int MATCH_BLUETOOTH = 8; // 0x8 + field public static final int MATCH_CARRIER = 10; // 0xa + field public static final int MATCH_ETHERNET = 5; // 0x5 + field public static final int MATCH_MOBILE = 1; // 0x1 + field public static final int MATCH_WIFI = 4; // 0x4 + field public static final int NETWORK_TYPE_ALL = -1; // 0xffffffff + field public static final int OEM_MANAGED_ALL = -1; // 0xffffffff + field public static final int OEM_MANAGED_NO = 0; // 0x0 + field public static final int OEM_MANAGED_PAID = 1; // 0x1 + field public static final int OEM_MANAGED_PRIVATE = 2; // 0x2 + field public static final int OEM_MANAGED_YES = -2; // 0xfffffffe + } + + public static final class NetworkTemplate.Builder { + ctor public NetworkTemplate.Builder(int); + method @NonNull public android.net.NetworkTemplate build(); + method @NonNull public android.net.NetworkTemplate.Builder setDefaultNetworkStatus(int); + method @NonNull public android.net.NetworkTemplate.Builder setMeteredness(int); + method @NonNull public android.net.NetworkTemplate.Builder setOemManaged(int); + method @NonNull public android.net.NetworkTemplate.Builder setRatType(int); + method @NonNull public android.net.NetworkTemplate.Builder setRoaming(int); + method @NonNull public android.net.NetworkTemplate.Builder setSubscriberIds(@NonNull java.util.Set<java.lang.String>); + method @NonNull public android.net.NetworkTemplate.Builder setWifiNetworkKeys(@NonNull java.util.Set<java.lang.String>); + } + public class NetworkWatchlistManager { method @Nullable public byte[] getWatchlistConfigHash(); } @@ -321,6 +358,10 @@ package android.os { method @Nullable public android.os.IBinder getOrThrow() throws android.os.StatsServiceManager.ServiceNotFoundException; } + public final class StrictMode { + method public static void noteUntaggedSocket(); + } + public class SystemConfigManager { method @NonNull public java.util.List<android.content.ComponentName> getEnabledComponentOverrides(@NonNull String); } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 9bca7fcba028..444f6568c11b 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -7509,13 +7509,17 @@ package android.net { method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR; + field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff field public static final int DEFAULT_NETWORK_NO = 0; // 0x0 field public static final int DEFAULT_NETWORK_YES = 1; // 0x1 field public static final String IFACE_VT = "vt_data0"; + field public static final int METERED_ALL = -1; // 0xffffffff field public static final int METERED_NO = 0; // 0x0 field public static final int METERED_YES = 1; // 0x1 + field public static final int ROAMING_ALL = -1; // 0xffffffff field public static final int ROAMING_NO = 0; // 0x0 field public static final int ROAMING_YES = 1; // 0x1 + field public static final int SET_ALL = -1; // 0xffffffff field public static final int SET_DEFAULT = 0; // 0x0 field public static final int SET_FOREGROUND = 1; // 0x1 field public static final int TAG_NONE = 0; // 0x0 diff --git a/core/java/android/net/NetworkPolicy.java b/core/java/android/net/NetworkPolicy.java index 8b3d49ef4964..ab1f5420fb3f 100644 --- a/core/java/android/net/NetworkPolicy.java +++ b/core/java/android/net/NetworkPolicy.java @@ -339,7 +339,8 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { out.writeInt(template.getMatchRule()); BackupUtils.writeString(out, template.getSubscriberIds().iterator().next()); - BackupUtils.writeString(out, template.getWifiNetworkKey()); + BackupUtils.writeString(out, template.getWifiNetworkKeys().isEmpty() + ? null : template.getWifiNetworkKeys().iterator().next()); out.writeInt(template.getMeteredness()); return baos.toByteArray(); diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 44c3d61b8760..983a0aa363ce 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -15,10 +15,13 @@ */ package android.os; +import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; + import android.animation.ValueAnimator; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.annotation.TestApi; import android.app.ActivityManager; import android.app.ActivityThread; @@ -2694,6 +2697,12 @@ public final class StrictMode { ((AndroidBlockGuardPolicy) policy).onCustomSlowCall(name); } + /** @hide */ + @SystemApi(client = MODULE_LIBRARIES) + public static void noteUntaggedSocket() { + if (vmUntaggedSocketEnabled()) onUntaggedSocket(); + } + /** * For code to note that a resource was obtained using a type other than its defined type. This * is a no-op unless the current thread's {@link android.os.StrictMode.ThreadPolicy} has {@link diff --git a/core/java/android/os/SystemClock.java b/core/java/android/os/SystemClock.java index d8f63444dd1c..b9252d643810 100644 --- a/core/java/android/os/SystemClock.java +++ b/core/java/android/os/SystemClock.java @@ -311,7 +311,6 @@ public final class SystemClock { * time or throw. * * @throws DateTimeException when no accurate network time can be provided. - * @hide */ public static @NonNull Clock currentNetworkTimeClock() { return new SimpleClock(ZoneOffset.UTC) { diff --git a/core/java/com/android/server/NetworkManagementSocketTagger.java b/core/java/com/android/server/NetworkManagementSocketTagger.java index 26ff192521da..d89566c9119c 100644 --- a/core/java/com/android/server/NetworkManagementSocketTagger.java +++ b/core/java/com/android/server/NetworkManagementSocketTagger.java @@ -70,8 +70,8 @@ public final class NetworkManagementSocketTagger extends SocketTagger { Log.d(TAG, "tagSocket(" + fd.getInt$() + ") with statsTag=0x" + Integer.toHexString(options.statsTag) + ", statsUid=" + options.statsUid); } - if (options.statsTag == -1 && StrictMode.vmUntaggedSocketEnabled()) { - StrictMode.onUntaggedSocket(); + if (options.statsTag == -1) { + StrictMode.noteUntaggedSocket(); } // TODO: skip tagging when options would be no-op tagSocketFd(fd, options.statsTag, options.statsUid); diff --git a/packages/ConnectivityT/framework-t/src/android/net/NetworkStats.java b/packages/ConnectivityT/framework-t/src/android/net/NetworkStats.java index 181a594cbcf9..b00fea4de269 100644 --- a/packages/ConnectivityT/framework-t/src/android/net/NetworkStats.java +++ b/packages/ConnectivityT/framework-t/src/android/net/NetworkStats.java @@ -83,10 +83,7 @@ public final class NetworkStats implements Parcelable { */ // TODO: Rename TAG_ALL to TAG_ANY. public static final int TAG_ALL = -1; - /** - * {@link #set} value for all sets combined, not including debug sets. - * @hide - */ + /** {@link #set} value for all sets combined, not including debug sets. */ public static final int SET_ALL = -1; /** {@link #set} value where background data is accounted. */ public static final int SET_DEFAULT = 0; @@ -114,9 +111,6 @@ public final class NetworkStats implements Parcelable { SET_ALL, SET_DEFAULT, SET_FOREGROUND, - SET_DEBUG_START, - SET_DBG_VPN_IN, - SET_DBG_VPN_OUT }) public @interface State { } @@ -131,10 +125,7 @@ public final class NetworkStats implements Parcelable { // TODO: Rename TAG_NONE to TAG_ALL. public static final int TAG_NONE = 0; - /** - * {@link #metered} value to account for all metered states. - * @hide - */ + /** {@link #metered} value to account for all metered states. */ public static final int METERED_ALL = -1; /** {@link #metered} value where native, unmetered data is accounted. */ public static final int METERED_NO = 0; @@ -152,10 +143,7 @@ public final class NetworkStats implements Parcelable { } - /** - * {@link #roaming} value to account for all roaming states. - * @hide - */ + /** {@link #roaming} value to account for all roaming states. */ public static final int ROAMING_ALL = -1; /** {@link #roaming} value where native, non-roaming data is accounted. */ public static final int ROAMING_NO = 0; @@ -172,10 +160,7 @@ public final class NetworkStats implements Parcelable { public @interface Roaming { } - /** - * {@link #onDefaultNetwork} value to account for all default network states. - * @hide - */ + /** {@link #onDefaultNetwork} value to account for all default network states. */ public static final int DEFAULT_NETWORK_ALL = -1; /** {@link #onDefaultNetwork} value to account for usage while not the default network. */ public static final int DEFAULT_NETWORK_NO = 0; diff --git a/packages/ConnectivityT/framework-t/src/android/net/NetworkTemplate.java b/packages/ConnectivityT/framework-t/src/android/net/NetworkTemplate.java index 659ad06039b8..e9084b019668 100644 --- a/packages/ConnectivityT/framework-t/src/android/net/NetworkTemplate.java +++ b/packages/ConnectivityT/framework-t/src/android/net/NetworkTemplate.java @@ -16,6 +16,7 @@ package android.net; +import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.net.ConnectivityManager.TYPE_BLUETOOTH; import static android.net.ConnectivityManager.TYPE_ETHERNET; import static android.net.ConnectivityManager.TYPE_MOBILE; @@ -39,7 +40,9 @@ import static android.net.NetworkStats.ROAMING_YES; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.net.wifi.WifiInfo; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -70,7 +73,7 @@ import java.util.TreeSet; * * @hide */ -// @SystemApi(client = MODULE_LIBRARIES) +@SystemApi(client = MODULE_LIBRARIES) public final class NetworkTemplate implements Parcelable { /** @hide */ @Retention(RetentionPolicy.SOURCE) @@ -572,6 +575,7 @@ public final class NetworkTemplate implements Parcelable { /** * Get subscriber Id of the template. + * @hide */ @Nullable @UnsupportedAppUsage @@ -588,26 +592,19 @@ public final class NetworkTemplate implements Parcelable { } /** - * Get Wifi Network Key of the template. See {@link WifiInfo#getCurrentNetworkKey()}. - */ - @Nullable - public String getWifiNetworkKey() { - return CollectionUtils.isEmpty(mMatchWifiNetworkKeys) ? null : mMatchWifiNetworkKeys[0]; - } - - /** - * Get set of Wifi Network Keys of the template. + * Get the set of Wifi Network Keys of the template. + * See {@link WifiInfo#getCurrentNetworkKey()}. */ - @Nullable + @NonNull public Set<String> getWifiNetworkKeys() { return new ArraySet<>(Arrays.asList(mMatchWifiNetworkKeys)); } /** @hide */ - // TODO: Remove this and replace all callers with {@link #getWifiNetworkKey()}. + // TODO: Remove this and replace all callers with {@link #getWifiNetworkKeys()}. @Nullable public String getNetworkId() { - return getWifiNetworkKey(); + return getWifiNetworkKeys().isEmpty() ? null : getWifiNetworkKeys().iterator().next(); } /** diff --git a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java index ef84ce02e21d..5584293b7d92 100644 --- a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +++ b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java @@ -113,7 +113,6 @@ import android.net.Uri; import android.net.netstats.provider.INetworkStatsProvider; import android.net.netstats.provider.INetworkStatsProviderCallback; import android.net.netstats.provider.NetworkStatsProvider; -import android.os.BestClock; import android.os.Binder; import android.os.DropBoxManager; import android.os.Environment; @@ -149,6 +148,7 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.FileRotator; +import com.android.net.module.util.BestClock; import com.android.net.module.util.BinderUtils; import com.android.net.module.util.CollectionUtils; import com.android.net.module.util.NetworkStatsUtils; diff --git a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsSubscriptionsMonitor.java b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsSubscriptionsMonitor.java index 93d0ae7da098..9bb7bb80782b 100644 --- a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsSubscriptionsMonitor.java +++ b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsSubscriptionsMonitor.java @@ -101,7 +101,8 @@ public class NetworkStatsSubscriptionsMonitor extends // with empty IMSI. So filter the subs w/o a valid IMSI to prevent such registration. final List<Pair<Integer, String>> filteredNewSubs = new ArrayList<>(); for (final int subId : newSubs) { - final String subscriberId = mTeleManager.getSubscriberId(subId); + final String subscriberId = + mTeleManager.createForSubscriptionId(subId).getSubscriberId(); if (!TextUtils.isEmpty(subscriberId)) { filteredNewSubs.add(new Pair(subId, subscriberId)); } |