diff options
31 files changed, 129 insertions, 135 deletions
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 1c4d752c9775..f1988e9f8b6b 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -95,6 +95,8 @@ import android.util.SparseArray; import android.util.SparseIntArray; import android.util.SparseLongArray; import android.util.TypedValue; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.util.proto.ProtoOutputStream; import android.view.Display; @@ -3075,8 +3077,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku int N; try { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, "gs"); out.attribute(null, "version", String.valueOf(CURRENT_VERSION)); @@ -3138,8 +3139,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku List<LoadedWidgetState> outLoadedWidgets) { int version = -1; try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int legacyProviderIndex = -1; int legacyHostIndex = -1; diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java index f07954609603..735d248b12e4 100644 --- a/services/core/java/com/android/server/PackageWatchdog.java +++ b/services/core/java/com/android/server/PackageWatchdog.java @@ -40,6 +40,8 @@ import android.util.AtomicFile; import android.util.LongArrayQueue; import android.util.MathUtils; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -934,8 +936,7 @@ public class PackageWatchdog { mAllObservers.clear(); try { infile = mPolicyFile.openRead(); - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(infile, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser parser = Xml.resolvePullParser(infile); XmlUtils.beginDocument(parser, TAG_PACKAGE_WATCHDOG); int outerDepth = parser.getDepth(); while (XmlUtils.nextElementWithin(parser, outerDepth)) { @@ -1027,8 +1028,7 @@ public class PackageWatchdog { } try { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, TAG_PACKAGE_WATCHDOG); out.attribute(null, ATTR_VERSION, Integer.toString(DB_VERSION)); diff --git a/services/core/java/com/android/server/SensorPrivacyService.java b/services/core/java/com/android/server/SensorPrivacyService.java index edeb049c0802..2455e76d69a8 100644 --- a/services/core/java/com/android/server/SensorPrivacyService.java +++ b/services/core/java/com/android/server/SensorPrivacyService.java @@ -30,6 +30,8 @@ import android.os.RemoteException; import android.util.ArrayMap; import android.util.AtomicFile; import android.util.Log; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -101,9 +103,8 @@ public final class SensorPrivacyService extends SystemService { mEnabled = enable; FileOutputStream outputStream = null; try { - XmlSerializer serializer = new FastXmlSerializer(); outputStream = mAtomicFile.startWrite(); - serializer.setOutput(outputStream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(outputStream); serializer.startDocument(null, true); serializer.startTag(null, XML_TAG_SENSOR_PRIVACY); serializer.attribute(null, XML_ATTRIBUTE_ENABLED, String.valueOf(enable)); @@ -153,8 +154,7 @@ public final class SensorPrivacyService extends SystemService { } boolean enabled; try (FileInputStream inputStream = mAtomicFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(inputStream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(inputStream); XmlUtils.beginDocument(parser, XML_TAG_SENSOR_PRIVACY); parser.next(); String tagName = parser.getName(); @@ -176,9 +176,8 @@ public final class SensorPrivacyService extends SystemService { synchronized (mLock) { FileOutputStream outputStream = null; try { - XmlSerializer serializer = new FastXmlSerializer(); outputStream = mAtomicFile.startWrite(); - serializer.setOutput(outputStream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(outputStream); serializer.startDocument(null, true); serializer.startTag(null, XML_TAG_SENSOR_PRIVACY); serializer.attribute(null, XML_ATTRIBUTE_ENABLED, String.valueOf(mEnabled)); diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index ab933a8c2be8..783866ab3420 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -130,6 +130,8 @@ import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.TimeUtils; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -2023,8 +2025,7 @@ class StorageManagerService extends IStorageManager.Stub FileInputStream fis = null; try { fis = mSettingsFile.openRead(); - final XmlPullParser in = Xml.newPullParser(); - in.setInput(fis, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser in = Xml.resolvePullParser(fis); int type; while ((type = in.next()) != END_DOCUMENT) { @@ -2063,8 +2064,7 @@ class StorageManagerService extends IStorageManager.Stub try { fos = mSettingsFile.startWrite(); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.startTag(null, TAG_VOLUMES); writeIntAttribute(out, ATTR_VERSION, VERSION_FIX_PRIMARY); diff --git a/services/core/java/com/android/server/SystemUpdateManagerService.java b/services/core/java/com/android/server/SystemUpdateManagerService.java index 6c1ffdd32d18..61a7d00faeb8 100644 --- a/services/core/java/com/android/server/SystemUpdateManagerService.java +++ b/services/core/java/com/android/server/SystemUpdateManagerService.java @@ -38,6 +38,8 @@ import android.os.SystemUpdateManager; import android.provider.Settings; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.util.FastXmlSerializer; @@ -130,8 +132,7 @@ public class SystemUpdateManagerService extends ISystemUpdateManager.Stub { private Bundle loadSystemUpdateInfoLocked() { PersistableBundle loadedBundle = null; try (FileInputStream fis = mFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(fis); loadedBundle = readInfoFileLocked(parser); } catch (FileNotFoundException e) { Slog.i(TAG, "No existing info file " + mFile.getBaseFile()); @@ -216,8 +217,7 @@ public class SystemUpdateManagerService extends ISystemUpdateManager.Stub { try { fos = mFile.startWrite(); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.startTag(null, TAG_INFO); diff --git a/services/core/java/com/android/server/adb/AdbDebuggingManager.java b/services/core/java/com/android/server/adb/AdbDebuggingManager.java index ed83a644cbfb..f59af76ead8f 100644 --- a/services/core/java/com/android/server/adb/AdbDebuggingManager.java +++ b/services/core/java/com/android/server/adb/AdbDebuggingManager.java @@ -64,6 +64,8 @@ import android.service.adb.AdbDebuggingManagerProto; import android.util.AtomicFile; import android.util.Base64; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.R; @@ -1935,8 +1937,7 @@ public class AdbDebuggingManager { return keyMap; } try (FileInputStream keyStream = mAtomicKeyFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(keyStream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(keyStream); // Check for supported keystore version. XmlUtils.beginDocument(parser, XML_KEYSTORE_START_TAG); if (parser.next() != XmlPullParser.END_DOCUMENT) { @@ -2007,8 +2008,7 @@ public class AdbDebuggingManager { return keyMap; } try (FileInputStream keyStream = mAtomicKeyFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(keyStream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(keyStream); XmlUtils.beginDocument(parser, XML_TAG_ADB_KEY); while (parser.next() != XmlPullParser.END_DOCUMENT) { String tagName = parser.getName(); @@ -2058,8 +2058,7 @@ public class AdbDebuggingManager { return trustedNetworks; } try (FileInputStream keyStream = mAtomicKeyFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(keyStream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(keyStream); // Check for supported keystore version. XmlUtils.beginDocument(parser, XML_KEYSTORE_START_TAG); if (parser.next() != XmlPullParser.END_DOCUMENT) { @@ -2144,9 +2143,8 @@ public class AdbDebuggingManager { } FileOutputStream keyStream = null; try { - XmlSerializer serializer = new FastXmlSerializer(); keyStream = mAtomicKeyFile.startWrite(); - serializer.setOutput(keyStream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(keyStream); serializer.startDocument(null, true); serializer.startTag(null, XML_KEYSTORE_START_TAG); diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index d4347831d20a..44b263ddc943 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -141,6 +141,8 @@ import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import android.util.TimeUtils; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -4292,8 +4294,7 @@ public class AppOpsService extends IAppOpsService.Stub { boolean success = false; mUidStates.clear(); try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; while ((type = parser.next()) != XmlPullParser.START_TAG && type != XmlPullParser.END_DOCUMENT) { @@ -4551,8 +4552,7 @@ public class AppOpsService extends IAppOpsService.Stub { List<AppOpsManager.PackageOps> allOps = getPackagesForOps(null); try { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, "app-ops"); out.attribute(null, "v", String.valueOf(CURRENT_VERSION)); diff --git a/services/core/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java index e9c4b510039d..9a1f1e522f97 100644 --- a/services/core/java/com/android/server/content/SyncStorageEngine.java +++ b/services/core/java/com/android/server/content/SyncStorageEngine.java @@ -50,6 +50,8 @@ import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; @@ -1635,8 +1637,7 @@ public class SyncStorageEngine { if (Log.isLoggable(TAG_FILE, Log.VERBOSE)) { Slog.v(TAG_FILE, "Reading " + mAccountInfoFile.getBaseFile()); } - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(fis); int eventType = parser.getEventType(); while (eventType != XmlPullParser.START_TAG && eventType != XmlPullParser.END_DOCUMENT) { @@ -1988,8 +1989,7 @@ public class SyncStorageEngine { try { fos = mAccountInfoFile.startWrite(); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); diff --git a/services/core/java/com/android/server/display/AmbientBrightnessStatsTracker.java b/services/core/java/com/android/server/display/AmbientBrightnessStatsTracker.java index 6e571bd75946..928799b31df8 100644 --- a/services/core/java/com/android/server/display/AmbientBrightnessStatsTracker.java +++ b/services/core/java/com/android/server/display/AmbientBrightnessStatsTracker.java @@ -22,6 +22,8 @@ import android.hardware.display.AmbientBrightnessDayStats; import android.os.SystemClock; import android.os.UserManager; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -165,8 +167,7 @@ public class AmbientBrightnessStatsTracker { } public void writeToXML(OutputStream stream) throws IOException { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); @@ -206,8 +207,7 @@ public class AmbientBrightnessStatsTracker { public void readFromXML(InputStream stream) throws IOException { try { Map<Integer, Deque<AmbientBrightnessDayStats>> parsedStats = new HashMap<>(); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT diff --git a/services/core/java/com/android/server/display/BrightnessTracker.java b/services/core/java/com/android/server/display/BrightnessTracker.java index 9e82d4fe6233..3ae99ef3ed5e 100644 --- a/services/core/java/com/android/server/display/BrightnessTracker.java +++ b/services/core/java/com/android/server/display/BrightnessTracker.java @@ -55,6 +55,8 @@ import android.os.UserManager; import android.provider.Settings; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.Display; @@ -536,8 +538,7 @@ public class BrightnessTracker { @VisibleForTesting @GuardedBy("mEventsLock") void writeEventsLocked(OutputStream stream) throws IOException { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); @@ -607,8 +608,7 @@ public class BrightnessTracker { @GuardedBy("mEventsLock") void readEventsLocked(InputStream stream) throws IOException { try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT diff --git a/services/core/java/com/android/server/display/PersistentDataStore.java b/services/core/java/com/android/server/display/PersistentDataStore.java index 09b0b3a8dee2..494dd397b1e9 100644 --- a/services/core/java/com/android/server/display/PersistentDataStore.java +++ b/services/core/java/com/android/server/display/PersistentDataStore.java @@ -25,6 +25,7 @@ import android.util.Slog; import android.util.SparseArray; import android.util.SparseLongArray; import android.util.TimeUtils; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.Display; @@ -323,8 +324,7 @@ final class PersistentDataStore { XmlPullParser parser; try { - parser = Xml.newPullParser(); - parser.setInput(new BufferedInputStream(is), StandardCharsets.UTF_8.name()); + parser = Xml.resolvePullParser(is); loadFromXml(parser); } catch (IOException ex) { Slog.w(TAG, "Failed to load display manager persistent store data.", ex); @@ -343,8 +343,7 @@ final class PersistentDataStore { os = mInjector.startWrite(); boolean success = false; try { - XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(new BufferedOutputStream(os), StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(os); saveToXml(serializer); serializer.flush(); success = true; diff --git a/services/core/java/com/android/server/input/PersistentDataStore.java b/services/core/java/com/android/server/input/PersistentDataStore.java index 196787aa5cda..f61662d34e75 100644 --- a/services/core/java/com/android/server/input/PersistentDataStore.java +++ b/services/core/java/com/android/server/input/PersistentDataStore.java @@ -29,6 +29,8 @@ import android.view.Surface; import android.hardware.input.TouchCalibration; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import java.io.BufferedInputStream; @@ -214,10 +216,9 @@ final class PersistentDataStore { return; } - XmlPullParser parser; + TypedXmlPullParser parser; try { - parser = Xml.newPullParser(); - parser.setInput(new BufferedInputStream(is), StandardCharsets.UTF_8.name()); + parser = Xml.resolvePullParser(is); loadFromXml(parser); } catch (IOException ex) { Slog.w(InputManagerService.TAG, "Failed to load input manager persistent store data.", ex); @@ -236,8 +237,7 @@ final class PersistentDataStore { os = mAtomicFile.startWrite(); boolean success = false; try { - XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(new BufferedOutputStream(os), StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(os); saveToXml(serializer); serializer.flush(); success = true; diff --git a/services/core/java/com/android/server/inputmethod/AdditionalSubtypeUtils.java b/services/core/java/com/android/server/inputmethod/AdditionalSubtypeUtils.java index f79ac164ef55..a077b049b014 100644 --- a/services/core/java/com/android/server/inputmethod/AdditionalSubtypeUtils.java +++ b/services/core/java/com/android/server/inputmethod/AdditionalSubtypeUtils.java @@ -25,6 +25,8 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodSubtype; @@ -139,8 +141,7 @@ final class AdditionalSubtypeUtils { final AtomicFile subtypesFile = getAdditionalSubtypeFile(inputMethodDir); try { fos = subtypesFile.startWrite(); - final XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + final TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); out.startTag(null, NODE_SUBTYPES); @@ -207,8 +208,7 @@ final class AdditionalSubtypeUtils { return; } try (FileInputStream fis = subtypesFile.openRead()) { - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser parser = Xml.resolvePullParser(fis); int type = parser.getEventType(); // Skip parsing until START_TAG while (true) { diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index dd6c8f558354..a44ddcb03c16 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -217,6 +217,8 @@ import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import android.util.SparseLongArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.R; @@ -2226,8 +2228,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { FileInputStream fis = null; try { fis = mPolicyFile.openRead(); - final XmlPullParser in = Xml.newPullParser(); - in.setInput(fis, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser in = Xml.resolvePullParser(fis); // Must save the <restrict-background> tags and convert them to <uid-policy> later, // to skip UIDs that were explicitly denylisted. @@ -2496,8 +2497,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { try { fos = mPolicyFile.startWrite(); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.startTag(null, TAG_POLICY_LIST); diff --git a/services/core/java/com/android/server/net/watchlist/WatchlistSettings.java b/services/core/java/com/android/server/net/watchlist/WatchlistSettings.java index c2f3ba01e3ec..4506b7d363db 100644 --- a/services/core/java/com/android/server/net/watchlist/WatchlistSettings.java +++ b/services/core/java/com/android/server/net/watchlist/WatchlistSettings.java @@ -20,6 +20,8 @@ import android.os.Environment; import android.util.AtomicFile; import android.util.Log; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -92,8 +94,7 @@ class WatchlistSettings { return; } try (FileInputStream stream = mXmlFile.openRead()){ - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); XmlUtils.beginDocument(parser, "network-watchlist-settings"); final int outerDepth = parser.getDepth(); while (XmlUtils.nextElementWithin(parser, outerDepth)) { @@ -145,8 +146,7 @@ class WatchlistSettings { return; } try { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, "network-watchlist-settings"); out.startTag(null, "secret-key"); diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java index 3d520bf59068..8a2d823cf7e9 100644 --- a/services/core/java/com/android/server/om/OverlayManagerSettings.java +++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java @@ -25,6 +25,8 @@ import android.content.om.OverlayInfo; import android.os.UserHandle; import android.util.ArrayMap; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -405,10 +407,9 @@ final class OverlayManagerSettings { public static void restore(@NonNull final ArrayList<SettingsItem> table, @NonNull final InputStream is) throws IOException, XmlPullParserException { - try (InputStreamReader reader = new InputStreamReader(is)) { + { table.clear(); - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(reader); + final TypedXmlPullParser parser = Xml.resolvePullParser(is); XmlUtils.beginDocument(parser, TAG_OVERLAYS); int version = XmlUtils.readIntAttribute(parser, ATTR_VERSION); if (version != CURRENT_VERSION) { @@ -465,8 +466,7 @@ final class OverlayManagerSettings { public static void persist(@NonNull final ArrayList<SettingsItem> table, @NonNull final OutputStream os) throws IOException, XmlPullParserException { - final FastXmlSerializer xml = new FastXmlSerializer(); - xml.setOutput(os, "utf-8"); + final TypedXmlSerializer xml = Xml.resolveSerializer(os); xml.startDocument(null, true); xml.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); xml.startTag(null, TAG_OVERLAYS); @@ -481,7 +481,7 @@ final class OverlayManagerSettings { xml.endDocument(); } - private static void persistRow(@NonNull final FastXmlSerializer xml, + private static void persistRow(@NonNull final TypedXmlSerializer xml, @NonNull final SettingsItem item) throws IOException { xml.startTag(null, TAG_ITEM); XmlUtils.writeStringAttribute(xml, ATTR_PACKAGE_NAME, item.mPackageName); diff --git a/services/core/java/com/android/server/power/batterysaver/FileUpdater.java b/services/core/java/com/android/server/power/batterysaver/FileUpdater.java index c08b610ccd2d..1387617ab39c 100644 --- a/services/core/java/com/android/server/power/batterysaver/FileUpdater.java +++ b/services/core/java/com/android/server/power/batterysaver/FileUpdater.java @@ -23,6 +23,8 @@ import android.os.SystemProperties; import android.util.ArrayMap; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -316,8 +318,7 @@ public class FileUpdater { outs = file.startWrite(); // Write to XML - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(outs, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(outs); out.startDocument(null, true); out.startTag(null, TAG_DEFAULT_ROOT); @@ -344,8 +345,7 @@ public class FileUpdater { } Map<String, String> read = null; try (FileInputStream in = file.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(in, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(in); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { diff --git a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java index aafadf912f7c..d2614e4698d1 100644 --- a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java +++ b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java @@ -46,6 +46,8 @@ import android.util.AtomicFile; import android.util.Pair; import android.util.Slog; import android.util.SparseLongArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -280,9 +282,8 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { private void writeXmlToFile(List<CacheQuotaHint> processedRequests) { FileOutputStream fileStream = null; try { - XmlSerializer out = new FastXmlSerializer(); fileStream = mPreviousValuesFile.startWrite(); - out.setOutput(fileStream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fileStream); saveToXml(out, processedRequests, 0); mPreviousValuesFile.finishWrite(fileStream); } catch (Exception e) { @@ -342,8 +343,7 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { protected static Pair<Long, List<CacheQuotaHint>> readFromXml(InputStream inputStream) throws XmlPullParserException, IOException { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(inputStream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(inputStream); int eventType = parser.getEventType(); while (eventType != XmlPullParser.START_TAG && diff --git a/services/core/java/com/android/server/timezone/PackageStatusStorage.java b/services/core/java/com/android/server/timezone/PackageStatusStorage.java index 04f0871c9897..7652c438c295 100644 --- a/services/core/java/com/android/server/timezone/PackageStatusStorage.java +++ b/services/core/java/com/android/server/timezone/PackageStatusStorage.java @@ -25,6 +25,8 @@ import org.xmlpull.v1.XmlSerializer; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import java.io.File; @@ -265,8 +267,7 @@ final class PackageStatusStorage { private static XmlPullParser parseToPackageStatusTag(FileInputStream fis) throws ParseException { try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(fis); int type; while ((type = parser.next()) != END_DOCUMENT) { final String tag = parser.getName(); @@ -315,8 +316,7 @@ final class PackageStatusStorage { FileOutputStream fos = null; try { fos = mPackageStatusFile.startWrite(); - XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(fos); serializer.startDocument(null /* encoding */, true /* standalone */); final String namespace = null; serializer.startTag(namespace, TAG_PACKAGE_STATUS); diff --git a/services/core/java/com/android/server/tv/PersistentDataStore.java b/services/core/java/com/android/server/tv/PersistentDataStore.java index 8f2194c3c8b6..355c38544cb9 100644 --- a/services/core/java/com/android/server/tv/PersistentDataStore.java +++ b/services/core/java/com/android/server/tv/PersistentDataStore.java @@ -26,6 +26,7 @@ import android.os.UserHandle; import android.text.TextUtils; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.util.FastXmlSerializer; @@ -167,8 +168,7 @@ final class PersistentDataStore { XmlPullParser parser; try { - parser = Xml.newPullParser(); - parser.setInput(new BufferedInputStream(is), StandardCharsets.UTF_8.name()); + parser = Xml.resolvePullParser(is); loadFromXml(parser); } catch (IOException | XmlPullParserException ex) { Slog.w(TAG, "Failed to load tv input manager persistent store data.", ex); @@ -200,8 +200,7 @@ final class PersistentDataStore { os = mAtomicFile.startWrite(); boolean success = false; try { - XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(new BufferedOutputStream(os), StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(os); saveToXml(serializer); serializer.flush(); success = true; diff --git a/services/core/java/com/android/server/uri/UriGrantsManagerService.java b/services/core/java/com/android/server/uri/UriGrantsManagerService.java index f6acc64bdaa0..bbb5374ea68a 100644 --- a/services/core/java/com/android/server/uri/UriGrantsManagerService.java +++ b/services/core/java/com/android/server/uri/UriGrantsManagerService.java @@ -75,6 +75,8 @@ import android.util.ArrayMap; import android.util.AtomicFile; import android.util.Slog; import android.util.SparseArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -657,8 +659,7 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { FileInputStream fis = null; try { fis = mGrantFile.openRead(); - final XmlPullParser in = Xml.newPullParser(); - in.setInput(fis, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser in = Xml.resolvePullParser(fis); int type; while ((type = in.next()) != END_DOCUMENT) { @@ -1313,8 +1314,7 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { try { fos = mGrantFile.startWrite(startTime); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.startTag(null, TAG_URI_GRANTS); for (UriPermission.Snapshot perm : persist) { diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 8b0963b9f535..329589eea904 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -90,6 +90,8 @@ import android.util.EventLog; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.Display; import android.view.DisplayInfo; @@ -2910,10 +2912,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub FileOutputStream fstream = null; BufferedOutputStream stream = null; try { - XmlSerializer out = new FastXmlSerializer(); fstream = new FileOutputStream(journal.chooseForWrite(), false); stream = new BufferedOutputStream(fstream); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); WallpaperData wallpaper; @@ -3110,8 +3111,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub final DisplayData wpdData = getDisplayDataOrCreate(DEFAULT_DISPLAY); try { stream = new FileInputStream(file); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; do { diff --git a/services/core/java/com/android/server/wm/AppWarnings.java b/services/core/java/com/android/server/wm/AppWarnings.java index 21b68095ef67..d40dea299ff6 100644 --- a/services/core/java/com/android/server/wm/AppWarnings.java +++ b/services/core/java/com/android/server/wm/AppWarnings.java @@ -27,6 +27,8 @@ import android.os.Message; import android.util.AtomicFile; import android.util.DisplayMetrics; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.util.FastXmlSerializer; @@ -477,8 +479,7 @@ class AppWarnings { try { fos = mConfigFile.startWrite(); - final XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + final TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); out.startTag(null, "packages"); @@ -519,8 +520,7 @@ class AppWarnings { try { fis = mConfigFile.openRead(); - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser parser = Xml.resolvePullParser(fis); int eventType = parser.getEventType(); while (eventType != XmlPullParser.START_TAG && diff --git a/services/core/java/com/android/server/wm/CompatModePackages.java b/services/core/java/com/android/server/wm/CompatModePackages.java index 7e55f0aa2aa6..120cf7d1e2ac 100644 --- a/services/core/java/com/android/server/wm/CompatModePackages.java +++ b/services/core/java/com/android/server/wm/CompatModePackages.java @@ -35,6 +35,8 @@ import android.os.RemoteException; import android.util.AtomicFile; import android.util.Slog; import android.util.SparseArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.protolog.common.ProtoLog; @@ -93,8 +95,7 @@ public final class CompatModePackages { FileInputStream fis = null; try { fis = mFile.openRead(); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(fis); int eventType = parser.getEventType(); while (eventType != XmlPullParser.START_TAG && eventType != XmlPullParser.END_DOCUMENT) { @@ -362,8 +363,7 @@ public final class CompatModePackages { try { fos = mFile.startWrite(); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(fos); out.startDocument(null, true); out.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); out.startTag(null, "compat-packages"); diff --git a/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java b/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java index a7f7c480f78f..83da136e2005 100644 --- a/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java +++ b/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java @@ -28,6 +28,8 @@ import android.app.WindowConfiguration; import android.os.Environment; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.DisplayAddress; import android.view.DisplayInfo; @@ -280,8 +282,7 @@ class DisplayWindowSettingsProvider implements SettingsProvider { FileData fileData = new FileData(); boolean success = false; try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; while ((type = parser.next()) != XmlPullParser.START_TAG && type != XmlPullParser.END_DOCUMENT) { @@ -419,8 +420,7 @@ class DisplayWindowSettingsProvider implements SettingsProvider { boolean success = false; try { - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, "display-settings"); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyData.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyData.java index 130cfd50b203..bdb7f79e2e31 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyData.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyData.java @@ -25,6 +25,8 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.util.FastXmlSerializer; @@ -154,8 +156,7 @@ class DevicePolicyData { FileOutputStream stream = null; try { stream = new FileOutputStream(file.chooseForWrite(), false); - XmlSerializer out = new FastXmlSerializer(); - out.setOutput(stream, StandardCharsets.UTF_8.name()); + TypedXmlSerializer out = Xml.resolveSerializer(stream); out.startDocument(null, true); out.startTag(null, "policies"); @@ -372,8 +373,7 @@ class DevicePolicyData { boolean needsRewrite = false; try { stream = new FileInputStream(file); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 21903921580b..3d7e9c747ffe 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -249,6 +249,8 @@ import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import android.view.IWindowManager; import android.view.accessibility.AccessibilityManager; @@ -14044,8 +14046,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { return null; } try (FileInputStream stream = new FileInputStream(bundleFile)) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, null); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); parser.next(); return PersistableBundle.restoreFromXml(parser); } catch (IOException | XmlPullParserException | IllegalArgumentException e) { @@ -14198,8 +14199,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { FileOutputStream stream = null; try { stream = atomicFile.startWrite(); - final XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(stream, StandardCharsets.UTF_8.name()); + final TypedXmlSerializer serializer = Xml.resolveSerializer(stream); serializer.startDocument(null, true); serializer.startTag(null, TAG_TRANSFER_OWNERSHIP_BUNDLE); bundle.saveToXml(serializer); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java b/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java index cced359e8d5a..9e98fc5ff8b4 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java @@ -39,6 +39,8 @@ import android.util.Pair; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -735,8 +737,7 @@ class Owners { FileOutputStream outputStream = null; try { outputStream = f.startWrite(); - final XmlSerializer out = new FastXmlSerializer(); - out.setOutput(outputStream, StandardCharsets.UTF_8.name()); + final TypedXmlSerializer out = Xml.resolveSerializer(outputStream); // Root tag out.startDocument(null, true); @@ -776,8 +777,7 @@ class Owners { InputStream input = null; try { input = f.openRead(); - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(input, StandardCharsets.UTF_8.name()); + final TypedXmlPullParser parser = Xml.resolvePullParser(input); int type; int depth = 0; diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/TransferOwnershipMetadataManager.java b/services/devicepolicy/java/com/android/server/devicepolicy/TransferOwnershipMetadataManager.java index 4b66beaa2cb0..58ece0748d8b 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/TransferOwnershipMetadataManager.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/TransferOwnershipMetadataManager.java @@ -24,6 +24,8 @@ import android.os.Environment; import android.text.TextUtils; import android.util.AtomicFile; import android.util.Slog; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.VisibleForTesting; @@ -84,8 +86,7 @@ class TransferOwnershipMetadataManager { FileOutputStream stream = null; try { stream = atomicFile.startWrite(); - final XmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(stream, StandardCharsets.UTF_8.name()); + final TypedXmlSerializer serializer = Xml.resolveSerializer(stream); serializer.startDocument(null, true); insertSimpleTag(serializer, TAG_USER_ID, Integer.toString(params.userId)); insertSimpleTag(serializer, @@ -122,8 +123,7 @@ class TransferOwnershipMetadataManager { Slog.d(TAG, "Loading TransferOwnershipMetadataManager from " + transferOwnershipMetadataFile); try (FileInputStream stream = new FileInputStream(transferOwnershipMetadataFile)) { - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, null); + final TypedXmlPullParser parser = Xml.resolvePullParser(stream); return parseMetadataFile(parser); } catch (IOException | XmlPullParserException | IllegalArgumentException e) { Slog.e(TAG, "Caught exception while trying to load the " diff --git a/services/usb/java/com/android/server/usb/UsbProfileGroupSettingsManager.java b/services/usb/java/com/android/server/usb/UsbProfileGroupSettingsManager.java index 26ee03c25013..f63866054064 100644 --- a/services/usb/java/com/android/server/usb/UsbProfileGroupSettingsManager.java +++ b/services/usb/java/com/android/server/usb/UsbProfileGroupSettingsManager.java @@ -53,6 +53,8 @@ import android.util.Log; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -435,8 +437,7 @@ class UsbProfileGroupSettingsManager { FileInputStream fis = null; try { fis = new FileInputStream(sSingleUserSettingsFile); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(fis, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(fis); XmlUtils.nextElement(parser); while (parser.getEventType() != XmlPullParser.END_DOCUMENT) { @@ -470,8 +471,7 @@ class UsbProfileGroupSettingsManager { FileInputStream stream = null; try { stream = mSettingsFile.openRead(); - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(stream, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(stream); XmlUtils.nextElement(parser); while (parser.getEventType() != XmlPullParser.END_DOCUMENT) { @@ -516,8 +516,7 @@ class UsbProfileGroupSettingsManager { try { fos = mSettingsFile.startWrite(); - FastXmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(fos, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(fos); serializer.startDocument(null, true); serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); diff --git a/services/usb/java/com/android/server/usb/UsbUserPermissionManager.java b/services/usb/java/com/android/server/usb/UsbUserPermissionManager.java index e20b1a4d6c89..5874b4b9fd3e 100644 --- a/services/usb/java/com/android/server/usb/UsbUserPermissionManager.java +++ b/services/usb/java/com/android/server/usb/UsbUserPermissionManager.java @@ -47,6 +47,8 @@ import android.util.ArrayMap; import android.util.AtomicFile; import android.util.Slog; import android.util.SparseBooleanArray; +import android.util.TypedXmlPullParser; +import android.util.TypedXmlSerializer; import android.util.Xml; import com.android.internal.annotations.GuardedBy; @@ -355,8 +357,7 @@ class UsbUserPermissionManager { mAccessoryPersistentPermissionMap.clear(); try (FileInputStream in = mPermissionsFile.openRead()) { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(in, StandardCharsets.UTF_8.name()); + TypedXmlPullParser parser = Xml.resolvePullParser(in); XmlUtils.nextElement(parser); while (parser.getEventType() != XmlPullParser.END_DOCUMENT) { @@ -440,8 +441,7 @@ class UsbUserPermissionManager { FileOutputStream out = null; try { out = mPermissionsFile.startWrite(); - FastXmlSerializer serializer = new FastXmlSerializer(); - serializer.setOutput(out, StandardCharsets.UTF_8.name()); + TypedXmlSerializer serializer = Xml.resolveSerializer(out); serializer.startDocument(null, true); serializer.startTag(null, "permissions"); |