Loading core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java +15 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.net.ConnectivityManager.TYPE_MOBILE_MMS; import static android.net.ConnectivityManager.TYPE_MOBILE_SUPL; import static android.net.NetworkStats.SET_DEFAULT; import static android.net.NetworkStats.TAG_NONE; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.annotation.SystemApi; Loading Loading @@ -108,6 +109,7 @@ public class NetworkStatsDataMigrationUtils { static final int VERSION_ADD_METERED = 4; static final int VERSION_ADD_DEFAULT_NETWORK = 5; static final int VERSION_ADD_OEM_MANAGED_NETWORK = 6; static final int VERSION_ADD_SUB_ID = 7; } /** Loading Loading @@ -448,6 +450,13 @@ public class NetworkStatsDataMigrationUtils { oemNetCapabilities = NetworkTemplate.OEM_MANAGED_NO; } final int subId; if (version >= IdentitySetVersion.VERSION_ADD_SUB_ID) { subId = in.readInt(); } else { subId = INVALID_SUBSCRIPTION_ID; } // Legacy files might contain TYPE_MOBILE_* types which were deprecated in later // releases. For backward compatibility, record them as TYPE_MOBILE instead. final int collapsedLegacyType = getCollapsedLegacyType(type); Loading @@ -457,7 +466,8 @@ public class NetworkStatsDataMigrationUtils { .setWifiNetworkKey(networkId) .setRoaming(roaming).setMetered(metered) .setDefaultNetwork(defaultNetwork) .setOemManaged(oemNetCapabilities); .setOemManaged(oemNetCapabilities) .setSubId(subId); if (type == TYPE_MOBILE && ratType != NetworkTemplate.NETWORK_TYPE_ALL) { builder.setRatType(ratType); } Loading Loading @@ -501,10 +511,10 @@ public class NetworkStatsDataMigrationUtils { * This is copied from {@code NetworkStatsCollection#readLegacyUid}. * See {@code NetworkStatsService#maybeUpgradeLegacyStatsLocked}. * * @param taggedData whether to read tagged data. For legacy uid files, the tagged * data was stored in the same binary file with non-tagged data. * But in later releases, these data should be kept in different * recorders. * @param taggedData whether to read only tagged data (true) or only non-tagged data * (false). For legacy uid files, the tagged data was stored in * the same binary file with non-tagged data. But in later releases, * these data should be kept in different recorders. * @hide */ @VisibleForTesting Loading packages/ConnectivityT/framework-t/src/android/net/NetworkIdentity.java +34 −5 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.net.ConnectivityManager.TYPE_MOBILE; import static android.net.ConnectivityManager.TYPE_WIFI; import static android.net.NetworkTemplate.NETWORK_TYPE_ALL; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.IntDef; import android.annotation.NonNull; Loading Loading @@ -86,6 +87,7 @@ public class NetworkIdentity { final int mType; final int mRatType; final int mSubId; final String mSubscriberId; final String mWifiNetworkKey; final boolean mRoaming; Loading @@ -96,7 +98,7 @@ public class NetworkIdentity { /** @hide */ public NetworkIdentity( int type, int ratType, @Nullable String subscriberId, @Nullable String wifiNetworkKey, boolean roaming, boolean metered, boolean defaultNetwork, int oemManaged) { boolean roaming, boolean metered, boolean defaultNetwork, int oemManaged, int subId) { mType = type; mRatType = ratType; mSubscriberId = subscriberId; Loading @@ -105,12 +107,13 @@ public class NetworkIdentity { mMetered = metered; mDefaultNetwork = defaultNetwork; mOemManaged = oemManaged; mSubId = subId; } @Override public int hashCode() { return Objects.hash(mType, mRatType, mSubscriberId, mWifiNetworkKey, mRoaming, mMetered, mDefaultNetwork, mOemManaged); mDefaultNetwork, mOemManaged, mSubId); } @Override Loading @@ -122,7 +125,8 @@ public class NetworkIdentity { && Objects.equals(mWifiNetworkKey, ident.mWifiNetworkKey) && mMetered == ident.mMetered && mDefaultNetwork == ident.mDefaultNetwork && mOemManaged == ident.mOemManaged; && mOemManaged == ident.mOemManaged && mSubId == ident.mSubId; } return false; } Loading Loading @@ -150,6 +154,7 @@ public class NetworkIdentity { builder.append(", metered=").append(mMetered); builder.append(", defaultNetwork=").append(mDefaultNetwork); builder.append(", oemManaged=").append(getOemManagedNames(mOemManaged)); builder.append(", subId=").append(mSubId); return builder.append("}").toString(); } Loading Loading @@ -256,6 +261,11 @@ public class NetworkIdentity { return mOemManaged; } /** Get the SubId of this instance. */ public int getSubId() { return mSubId; } /** * Assemble a {@link NetworkIdentity} from the passed arguments. * Loading @@ -276,7 +286,8 @@ public class NetworkIdentity { public static NetworkIdentity buildNetworkIdentity(Context context, @NonNull NetworkStateSnapshot snapshot, boolean defaultNetwork, int ratType) { final NetworkIdentity.Builder builder = new NetworkIdentity.Builder() .setNetworkStateSnapshot(snapshot).setDefaultNetwork(defaultNetwork); .setNetworkStateSnapshot(snapshot).setDefaultNetwork(defaultNetwork) .setSubId(snapshot.getSubId()); if (snapshot.getLegacyType() == TYPE_MOBILE && ratType != NETWORK_TYPE_ALL) { builder.setRatType(ratType); } Loading Loading @@ -325,6 +336,9 @@ public class NetworkIdentity { if (res == 0) { res = Integer.compare(left.mOemManaged, right.mOemManaged); } if (res == 0) { res = Integer.compare(left.mSubId, right.mSubId); } return res; } Loading @@ -345,6 +359,7 @@ public class NetworkIdentity { private boolean mMetered; private boolean mDefaultNetwork; private int mOemManaged; private int mSubId; /** * Creates a new Builder. Loading @@ -359,6 +374,7 @@ public class NetworkIdentity { mMetered = false; mDefaultNetwork = false; mOemManaged = NetworkTemplate.OEM_MANAGED_NO; mSubId = INVALID_SUBSCRIPTION_ID; } /** Loading Loading @@ -537,6 +553,19 @@ public class NetworkIdentity { return this; } /** * Set the Subscription Id. * * @param subId the Subscription Id of the network. Or INVALID_SUBSCRIPTION_ID if not * applicable. * @return this builder. */ @NonNull public Builder setSubId(int subId) { mSubId = subId; return this; } private void ensureValidParameters() { // Assert non-mobile network cannot have a ratType. if (mType != TYPE_MOBILE && mRatType != NetworkTemplate.NETWORK_TYPE_ALL) { Loading @@ -559,7 +588,7 @@ public class NetworkIdentity { public NetworkIdentity build() { ensureValidParameters(); return new NetworkIdentity(mType, mRatType, mSubscriberId, mWifiNetworkKey, mRoaming, mMetered, mDefaultNetwork, mOemManaged); mRoaming, mMetered, mDefaultNetwork, mOemManaged, mSubId); } } } packages/ConnectivityT/framework-t/src/android/net/NetworkIdentitySet.java +12 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import static android.net.ConnectivityManager.TYPE_MOBILE; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.service.NetworkIdentitySetProto; Loading @@ -42,6 +43,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { private static final int VERSION_ADD_METERED = 4; private static final int VERSION_ADD_DEFAULT_NETWORK = 5; private static final int VERSION_ADD_OEM_MANAGED_NETWORK = 6; private static final int VERSION_ADD_SUB_ID = 7; /** * Construct a {@link NetworkIdentitySet} object. Loading Loading @@ -103,8 +105,15 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { oemNetCapabilities = NetworkIdentity.OEM_NONE; } final int subId; if (version >= VERSION_ADD_SUB_ID) { subId = in.readInt(); } else { subId = INVALID_SUBSCRIPTION_ID; } add(new NetworkIdentity(type, ratType, subscriberId, networkId, roaming, metered, defaultNetwork, oemNetCapabilities)); defaultNetwork, oemNetCapabilities, subId)); } } Loading @@ -113,7 +122,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { * @hide */ public void writeToStream(DataOutput out) throws IOException { out.writeInt(VERSION_ADD_OEM_MANAGED_NETWORK); out.writeInt(VERSION_ADD_SUB_ID); out.writeInt(size()); for (NetworkIdentity ident : this) { out.writeInt(ident.getType()); Loading @@ -124,6 +133,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { out.writeBoolean(ident.isMetered()); out.writeBoolean(ident.isDefaultNetwork()); out.writeInt(ident.getOemManaged()); out.writeInt(ident.getSubId()); } } Loading packages/ConnectivityT/framework-t/src/android/net/NetworkStateSnapshot.java +20 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -98,12 +100,29 @@ public final class NetworkStateSnapshot implements Parcelable { return mLinkProperties; } /** Get the Subscriber Id of the network associated with this snapshot. */ /** * Get the Subscriber Id of the network associated with this snapshot. * @deprecated Please use #getSubId, which doesn't return personally identifiable * information. */ @Deprecated @Nullable public String getSubscriberId() { return mSubscriberId; } /** Get the subId of the network associated with this snapshot. */ public int getSubId() { if (mNetworkCapabilities.hasTransport(TRANSPORT_CELLULAR)) { final NetworkSpecifier spec = mNetworkCapabilities.getNetworkSpecifier(); if (spec instanceof TelephonyNetworkSpecifier) { return ((TelephonyNetworkSpecifier) spec).getSubscriptionId(); } } return INVALID_SUBSCRIPTION_ID; } /** * Get the legacy type of the network associated with this snapshot. * @return the legacy network type. See {@code ConnectivityManager#TYPE_*}. Loading packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +9 −4 Original line number Diff line number Diff line Loading @@ -1540,10 +1540,15 @@ public class NetworkStatsService extends INetworkStatsService.Stub { NetworkCapabilities.NET_CAPABILITY_IMS) && !ident.isMetered()) { // Copy the identify from IMS one but mark it as metered. NetworkIdentity vtIdent = new NetworkIdentity(ident.getType(), ident.getRatType(), ident.getSubscriberId(), ident.getWifiNetworkKey(), ident.isRoaming(), true /* metered */, true /* onDefaultNetwork */, ident.getOemManaged()); NetworkIdentity vtIdent = new NetworkIdentity.Builder() .setType(ident.getType()) .setRatType(ident.getRatType()) .setSubscriberId(ident.getSubscriberId()) .setWifiNetworkKey(ident.getWifiNetworkKey()) .setRoaming(ident.isRoaming()).setMetered(true) .setDefaultNetwork(true) .setOemManaged(ident.getOemManaged()) .setSubId(ident.getSubId()).build(); final String ifaceVt = IFACE_VT + getSubIdForMobile(snapshot); findOrCreateNetworkIdentitySet(mActiveIfaces, ifaceVt).add(vtIdent); findOrCreateNetworkIdentitySet(mActiveUidIfaces, ifaceVt).add(vtIdent); Loading Loading
core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java +15 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.net.ConnectivityManager.TYPE_MOBILE_MMS; import static android.net.ConnectivityManager.TYPE_MOBILE_SUPL; import static android.net.NetworkStats.SET_DEFAULT; import static android.net.NetworkStats.TAG_NONE; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.annotation.SystemApi; Loading Loading @@ -108,6 +109,7 @@ public class NetworkStatsDataMigrationUtils { static final int VERSION_ADD_METERED = 4; static final int VERSION_ADD_DEFAULT_NETWORK = 5; static final int VERSION_ADD_OEM_MANAGED_NETWORK = 6; static final int VERSION_ADD_SUB_ID = 7; } /** Loading Loading @@ -448,6 +450,13 @@ public class NetworkStatsDataMigrationUtils { oemNetCapabilities = NetworkTemplate.OEM_MANAGED_NO; } final int subId; if (version >= IdentitySetVersion.VERSION_ADD_SUB_ID) { subId = in.readInt(); } else { subId = INVALID_SUBSCRIPTION_ID; } // Legacy files might contain TYPE_MOBILE_* types which were deprecated in later // releases. For backward compatibility, record them as TYPE_MOBILE instead. final int collapsedLegacyType = getCollapsedLegacyType(type); Loading @@ -457,7 +466,8 @@ public class NetworkStatsDataMigrationUtils { .setWifiNetworkKey(networkId) .setRoaming(roaming).setMetered(metered) .setDefaultNetwork(defaultNetwork) .setOemManaged(oemNetCapabilities); .setOemManaged(oemNetCapabilities) .setSubId(subId); if (type == TYPE_MOBILE && ratType != NetworkTemplate.NETWORK_TYPE_ALL) { builder.setRatType(ratType); } Loading Loading @@ -501,10 +511,10 @@ public class NetworkStatsDataMigrationUtils { * This is copied from {@code NetworkStatsCollection#readLegacyUid}. * See {@code NetworkStatsService#maybeUpgradeLegacyStatsLocked}. * * @param taggedData whether to read tagged data. For legacy uid files, the tagged * data was stored in the same binary file with non-tagged data. * But in later releases, these data should be kept in different * recorders. * @param taggedData whether to read only tagged data (true) or only non-tagged data * (false). For legacy uid files, the tagged data was stored in * the same binary file with non-tagged data. But in later releases, * these data should be kept in different recorders. * @hide */ @VisibleForTesting Loading
packages/ConnectivityT/framework-t/src/android/net/NetworkIdentity.java +34 −5 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.net.ConnectivityManager.TYPE_MOBILE; import static android.net.ConnectivityManager.TYPE_WIFI; import static android.net.NetworkTemplate.NETWORK_TYPE_ALL; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.IntDef; import android.annotation.NonNull; Loading Loading @@ -86,6 +87,7 @@ public class NetworkIdentity { final int mType; final int mRatType; final int mSubId; final String mSubscriberId; final String mWifiNetworkKey; final boolean mRoaming; Loading @@ -96,7 +98,7 @@ public class NetworkIdentity { /** @hide */ public NetworkIdentity( int type, int ratType, @Nullable String subscriberId, @Nullable String wifiNetworkKey, boolean roaming, boolean metered, boolean defaultNetwork, int oemManaged) { boolean roaming, boolean metered, boolean defaultNetwork, int oemManaged, int subId) { mType = type; mRatType = ratType; mSubscriberId = subscriberId; Loading @@ -105,12 +107,13 @@ public class NetworkIdentity { mMetered = metered; mDefaultNetwork = defaultNetwork; mOemManaged = oemManaged; mSubId = subId; } @Override public int hashCode() { return Objects.hash(mType, mRatType, mSubscriberId, mWifiNetworkKey, mRoaming, mMetered, mDefaultNetwork, mOemManaged); mDefaultNetwork, mOemManaged, mSubId); } @Override Loading @@ -122,7 +125,8 @@ public class NetworkIdentity { && Objects.equals(mWifiNetworkKey, ident.mWifiNetworkKey) && mMetered == ident.mMetered && mDefaultNetwork == ident.mDefaultNetwork && mOemManaged == ident.mOemManaged; && mOemManaged == ident.mOemManaged && mSubId == ident.mSubId; } return false; } Loading Loading @@ -150,6 +154,7 @@ public class NetworkIdentity { builder.append(", metered=").append(mMetered); builder.append(", defaultNetwork=").append(mDefaultNetwork); builder.append(", oemManaged=").append(getOemManagedNames(mOemManaged)); builder.append(", subId=").append(mSubId); return builder.append("}").toString(); } Loading Loading @@ -256,6 +261,11 @@ public class NetworkIdentity { return mOemManaged; } /** Get the SubId of this instance. */ public int getSubId() { return mSubId; } /** * Assemble a {@link NetworkIdentity} from the passed arguments. * Loading @@ -276,7 +286,8 @@ public class NetworkIdentity { public static NetworkIdentity buildNetworkIdentity(Context context, @NonNull NetworkStateSnapshot snapshot, boolean defaultNetwork, int ratType) { final NetworkIdentity.Builder builder = new NetworkIdentity.Builder() .setNetworkStateSnapshot(snapshot).setDefaultNetwork(defaultNetwork); .setNetworkStateSnapshot(snapshot).setDefaultNetwork(defaultNetwork) .setSubId(snapshot.getSubId()); if (snapshot.getLegacyType() == TYPE_MOBILE && ratType != NETWORK_TYPE_ALL) { builder.setRatType(ratType); } Loading Loading @@ -325,6 +336,9 @@ public class NetworkIdentity { if (res == 0) { res = Integer.compare(left.mOemManaged, right.mOemManaged); } if (res == 0) { res = Integer.compare(left.mSubId, right.mSubId); } return res; } Loading @@ -345,6 +359,7 @@ public class NetworkIdentity { private boolean mMetered; private boolean mDefaultNetwork; private int mOemManaged; private int mSubId; /** * Creates a new Builder. Loading @@ -359,6 +374,7 @@ public class NetworkIdentity { mMetered = false; mDefaultNetwork = false; mOemManaged = NetworkTemplate.OEM_MANAGED_NO; mSubId = INVALID_SUBSCRIPTION_ID; } /** Loading Loading @@ -537,6 +553,19 @@ public class NetworkIdentity { return this; } /** * Set the Subscription Id. * * @param subId the Subscription Id of the network. Or INVALID_SUBSCRIPTION_ID if not * applicable. * @return this builder. */ @NonNull public Builder setSubId(int subId) { mSubId = subId; return this; } private void ensureValidParameters() { // Assert non-mobile network cannot have a ratType. if (mType != TYPE_MOBILE && mRatType != NetworkTemplate.NETWORK_TYPE_ALL) { Loading @@ -559,7 +588,7 @@ public class NetworkIdentity { public NetworkIdentity build() { ensureValidParameters(); return new NetworkIdentity(mType, mRatType, mSubscriberId, mWifiNetworkKey, mRoaming, mMetered, mDefaultNetwork, mOemManaged); mRoaming, mMetered, mDefaultNetwork, mOemManaged, mSubId); } } }
packages/ConnectivityT/framework-t/src/android/net/NetworkIdentitySet.java +12 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import static android.net.ConnectivityManager.TYPE_MOBILE; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.service.NetworkIdentitySetProto; Loading @@ -42,6 +43,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { private static final int VERSION_ADD_METERED = 4; private static final int VERSION_ADD_DEFAULT_NETWORK = 5; private static final int VERSION_ADD_OEM_MANAGED_NETWORK = 6; private static final int VERSION_ADD_SUB_ID = 7; /** * Construct a {@link NetworkIdentitySet} object. Loading Loading @@ -103,8 +105,15 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { oemNetCapabilities = NetworkIdentity.OEM_NONE; } final int subId; if (version >= VERSION_ADD_SUB_ID) { subId = in.readInt(); } else { subId = INVALID_SUBSCRIPTION_ID; } add(new NetworkIdentity(type, ratType, subscriberId, networkId, roaming, metered, defaultNetwork, oemNetCapabilities)); defaultNetwork, oemNetCapabilities, subId)); } } Loading @@ -113,7 +122,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { * @hide */ public void writeToStream(DataOutput out) throws IOException { out.writeInt(VERSION_ADD_OEM_MANAGED_NETWORK); out.writeInt(VERSION_ADD_SUB_ID); out.writeInt(size()); for (NetworkIdentity ident : this) { out.writeInt(ident.getType()); Loading @@ -124,6 +133,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> { out.writeBoolean(ident.isMetered()); out.writeBoolean(ident.isDefaultNetwork()); out.writeInt(ident.getOemManaged()); out.writeInt(ident.getSubId()); } } Loading
packages/ConnectivityT/framework-t/src/android/net/NetworkStateSnapshot.java +20 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -98,12 +100,29 @@ public final class NetworkStateSnapshot implements Parcelable { return mLinkProperties; } /** Get the Subscriber Id of the network associated with this snapshot. */ /** * Get the Subscriber Id of the network associated with this snapshot. * @deprecated Please use #getSubId, which doesn't return personally identifiable * information. */ @Deprecated @Nullable public String getSubscriberId() { return mSubscriberId; } /** Get the subId of the network associated with this snapshot. */ public int getSubId() { if (mNetworkCapabilities.hasTransport(TRANSPORT_CELLULAR)) { final NetworkSpecifier spec = mNetworkCapabilities.getNetworkSpecifier(); if (spec instanceof TelephonyNetworkSpecifier) { return ((TelephonyNetworkSpecifier) spec).getSubscriptionId(); } } return INVALID_SUBSCRIPTION_ID; } /** * Get the legacy type of the network associated with this snapshot. * @return the legacy network type. See {@code ConnectivityManager#TYPE_*}. Loading
packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +9 −4 Original line number Diff line number Diff line Loading @@ -1540,10 +1540,15 @@ public class NetworkStatsService extends INetworkStatsService.Stub { NetworkCapabilities.NET_CAPABILITY_IMS) && !ident.isMetered()) { // Copy the identify from IMS one but mark it as metered. NetworkIdentity vtIdent = new NetworkIdentity(ident.getType(), ident.getRatType(), ident.getSubscriberId(), ident.getWifiNetworkKey(), ident.isRoaming(), true /* metered */, true /* onDefaultNetwork */, ident.getOemManaged()); NetworkIdentity vtIdent = new NetworkIdentity.Builder() .setType(ident.getType()) .setRatType(ident.getRatType()) .setSubscriberId(ident.getSubscriberId()) .setWifiNetworkKey(ident.getWifiNetworkKey()) .setRoaming(ident.isRoaming()).setMetered(true) .setDefaultNetwork(true) .setOemManaged(ident.getOemManaged()) .setSubId(ident.getSubId()).build(); final String ifaceVt = IFACE_VT + getSubIdForMobile(snapshot); findOrCreateNetworkIdentitySet(mActiveIfaces, ifaceVt).add(vtIdent); findOrCreateNetworkIdentitySet(mActiveUidIfaces, ifaceVt).add(vtIdent); Loading