Remove @hide usage and fix NetworkPolicy backup

Remove usage of hidden symbols for network stats APIs, replacing them
with public API alternatives.

Also fix backup of NetworkPolicy when the set of subscriber IDs is
empty. This as not caught because the test used a hidden API builder
that creates a non-empty set containing null.

Bug: 197717846
Test: atest FrameworksCoreTests
Change-Id: I45a98795c571ac97bd6025988da156bd06d57e45
This commit is contained in:
Remi NGUYEN VAN
2022-02-03 16:14:32 +09:00
parent 8c67bb002a
commit e839e63d21
4 changed files with 40 additions and 12 deletions

View File

@@ -338,7 +338,9 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> {
out.writeInt(TEMPLATE_BACKUP_VERSION_LATEST);
out.writeInt(template.getMatchRule());
BackupUtils.writeString(out, template.getSubscriberIds().iterator().next());
final Set<String> subscriberIds = template.getSubscriberIds();
BackupUtils.writeString(out, subscriberIds.isEmpty()
? null : subscriberIds.iterator().next());
BackupUtils.writeString(out, template.getWifiNetworkKeys().isEmpty()
? null : template.getWifiNetworkKeys().iterator().next());
out.writeInt(template.getMeteredness());

View File

@@ -16,7 +16,9 @@
package android.net
import android.net.NetworkStats.METERED_YES
import android.net.NetworkTemplate.MATCH_BLUETOOTH
import android.net.NetworkTemplate.MATCH_CARRIER
import android.net.NetworkTemplate.MATCH_ETHERNET
import android.net.NetworkTemplate.MATCH_MOBILE
import android.net.NetworkTemplate.MATCH_WIFI
@@ -39,11 +41,19 @@ class NetworkPolicyTest {
@Test
fun testTemplateBackupRestore() {
assertPolicyBackupRestore(createTestPolicyForTemplate(
NetworkTemplate.buildTemplateWifi(TEST_WIFI_NETWORK_KEY1)))
NetworkTemplate.Builder(MATCH_WIFI)
.setWifiNetworkKeys(setOf(TEST_WIFI_NETWORK_KEY1))
.build()))
assertPolicyBackupRestore(createTestPolicyForTemplate(
NetworkTemplate.buildTemplateMobileAll(TEST_IMSI1)))
NetworkTemplate.Builder(MATCH_MOBILE)
.setSubscriberIds(setOf(TEST_IMSI1))
.setMeteredness(METERED_YES)
.build()))
assertPolicyBackupRestore(createTestPolicyForTemplate(
NetworkTemplate.buildTemplateCarrierMetered(TEST_IMSI1)))
NetworkTemplate.Builder(MATCH_CARRIER)
.setSubscriberIds(setOf(TEST_IMSI1))
.setMeteredness(METERED_YES)
.build()))
}
private fun createTestPolicyForTemplate(template: NetworkTemplate): NetworkPolicy {

View File

@@ -16,6 +16,9 @@
package com.android.internal.os;
import static android.net.NetworkStats.DEFAULT_NETWORK_NO;
import static android.net.NetworkStats.METERED_NO;
import static android.net.NetworkStats.ROAMING_NO;
import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat;
@@ -94,7 +97,8 @@ public class MobileRadioPowerCalculatorTest {
// Note application network activity
NetworkStats networkStats = new NetworkStats(10000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 100, 2000, 20, 100);
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 100, 2000, 20, 100));
mStatsRule.setNetworkStats(networkStats);
ModemActivityInfo mai = new ModemActivityInfo(10000, 2000, 3000,
@@ -160,7 +164,8 @@ public class MobileRadioPowerCalculatorTest {
// Note application network activity
mStatsRule.setNetworkStats(new NetworkStats(10000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 100, 2000, 20, 100));
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 100, 2000, 20, 100)));
stats.noteModemControllerActivity(null, POWER_DATA_UNAVAILABLE, 10000, 10000,
mNetworkStatsManager);
@@ -169,7 +174,8 @@ public class MobileRadioPowerCalculatorTest {
BatteryStats.Uid.PROCESS_STATE_BACKGROUND, 11000);
mStatsRule.setNetworkStats(new NetworkStats(12000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 250, 2000, 80, 200));
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 250, 2000, 80, 200)));
stats.noteModemControllerActivity(null, POWER_DATA_UNAVAILABLE, 12000, 12000,
mNetworkStatsManager);
@@ -241,7 +247,8 @@ public class MobileRadioPowerCalculatorTest {
// Note application network activity
NetworkStats networkStats = new NetworkStats(10000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 100, 2000, 20, 100);
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 100, 2000, 20, 100));
mStatsRule.setNetworkStats(networkStats);
ModemActivityInfo mai = new ModemActivityInfo(10000, 2000, 3000,
@@ -306,7 +313,8 @@ public class MobileRadioPowerCalculatorTest {
// Note application network activity
mStatsRule.setNetworkStats(new NetworkStats(10000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 100, 2000, 20, 100));
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 100, 2000, 20, 100)));
stats.noteModemControllerActivity(null, 10_000_000, 10000, 10000, mNetworkStatsManager);
@@ -314,7 +322,8 @@ public class MobileRadioPowerCalculatorTest {
BatteryStats.Uid.PROCESS_STATE_BACKGROUND, 11000);
mStatsRule.setNetworkStats(new NetworkStats(12000, 1)
.insertEntry("cellular", APP_UID, 0, 0, 1000, 250, 2000, 80, 200));
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1000, 250, 2000, 80, 200)));
stats.noteModemControllerActivity(null, 15_000_000, 12000, 12000, mNetworkStatsManager);

View File

@@ -17,6 +17,9 @@
package com.android.internal.os;
import static android.net.NetworkStats.DEFAULT_NETWORK_NO;
import static android.net.NetworkStats.METERED_NO;
import static android.net.NetworkStats.ROAMING_NO;
import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat;
@@ -77,8 +80,12 @@ public class WifiPowerCalculatorTest {
private NetworkStats buildNetworkStats(long elapsedRealtime, int rxBytes, int rxPackets,
int txBytes, int txPackets) {
return new NetworkStats(elapsedRealtime, 1)
.insertEntry("wifi", APP_UID, 0, 0, rxBytes, rxPackets, txBytes, txPackets, 100)
.insertEntry("wifi", Process.WIFI_UID, 0, 0, 1111, 111, 2222, 22, 111);
.addEntry(new NetworkStats.Entry("wifi", APP_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, rxBytes, rxPackets,
txBytes, txPackets, 100))
.addEntry(new NetworkStats.Entry("wifi", Process.WIFI_UID, 0, 0,
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, 1111, 111,
2222, 22, 111));
}
/** Sets up an WifiActivityEnergyInfo for ActivityController-model-based tests. */