Suppress StrictMode when reading /proc/ files.
Bug: 6077051
Change-Id: If4f23e947d8b91f9f124baa0460600a6b9353732
diff --git a/core/java/com/android/internal/net/NetworkStatsFactory.java b/core/java/com/android/internal/net/NetworkStatsFactory.java
index 41993c4..4e3d965 100644
--- a/core/java/com/android/internal/net/NetworkStatsFactory.java
+++ b/core/java/com/android/internal/net/NetworkStatsFactory.java
@@ -22,6 +22,7 @@
import static com.android.server.NetworkManagementSocketTagger.kernelToTag;
import android.net.NetworkStats;
+import android.os.StrictMode;
import android.os.SystemClock;
import android.util.Slog;
@@ -106,6 +107,8 @@
}
private NetworkStats readNetworkStatsSummarySingleFile() {
+ final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads();
+
final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 6);
final NetworkStats.Entry entry = new NetworkStats.Entry();
@@ -156,6 +159,7 @@
throw new IllegalStateException("problem parsing stats: " + e);
} finally {
IoUtils.closeQuietly(reader);
+ StrictMode.setThreadPolicy(savedPolicy);
}
return stats;
}
@@ -165,6 +169,8 @@
*/
@Deprecated
private NetworkStats readNetworkStatsSummaryMultipleFiles() {
+ final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads();
+
final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 6);
final NetworkStats.Entry entry = new NetworkStats.Entry();
@@ -241,6 +247,7 @@
throw new IllegalStateException("problem parsing stats: " + e);
} finally {
IoUtils.closeQuietly(reader);
+ StrictMode.setThreadPolicy(savedPolicy);
}
return stats;
@@ -257,6 +264,8 @@
* @throws IllegalStateException when problem parsing stats.
*/
public NetworkStats readNetworkStatsDetail(int limitUid) throws IllegalStateException {
+ final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads();
+
final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 24);
final NetworkStats.Entry entry = new NetworkStats.Entry();
@@ -300,6 +309,7 @@
throw new IllegalStateException("problem parsing idx " + idx, e);
} finally {
IoUtils.closeQuietly(reader);
+ StrictMode.setThreadPolicy(savedPolicy);
}
return stats;