Merge "Use plain bytes for rule serializers"
diff --git a/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java b/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
index 7ecd624..d4f41eb 100644
--- a/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
+++ b/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
@@ -32,7 +32,7 @@
     }
 
     @Override
-    public String serialize(List<Rule> rules, Optional<Integer> formatVersion) {
+    public byte[] serialize(List<Rule> rules, Optional<Integer> formatVersion) {
         // TODO: Implement text serializer.
         return null;
     }
diff --git a/services/core/java/com/android/server/integrity/serializer/RuleSerializer.java b/services/core/java/com/android/server/integrity/serializer/RuleSerializer.java
index 1125f78..4fcff65 100644
--- a/services/core/java/com/android/server/integrity/serializer/RuleSerializer.java
+++ b/services/core/java/com/android/server/integrity/serializer/RuleSerializer.java
@@ -29,7 +29,7 @@
     void serialize(List<Rule> rules, Optional<Integer> formatVersion, OutputStream outputStream)
             throws RuleSerializeException;
 
-    /** Serialize rules to a string. */
-    String serialize(List<Rule> rule, Optional<Integer> formatVersion)
+    /** Serialize rules to a ByteArray. */
+    byte[] serialize(List<Rule> rule, Optional<Integer> formatVersion)
             throws RuleSerializeException;
 }
diff --git a/services/core/java/com/android/server/integrity/serializer/RuleXmlSerializer.java b/services/core/java/com/android/server/integrity/serializer/RuleXmlSerializer.java
index 254baba..3ec9cf2 100644
--- a/services/core/java/com/android/server/integrity/serializer/RuleXmlSerializer.java
+++ b/services/core/java/com/android/server/integrity/serializer/RuleXmlSerializer.java
@@ -62,14 +62,14 @@
     }
 
     @Override
-    public String serialize(List<Rule> rules, Optional<Integer> formatVersion)
+    public byte[] serialize(List<Rule> rules, Optional<Integer> formatVersion)
             throws RuleSerializeException {
         try {
             XmlSerializer xmlSerializer = Xml.newSerializer();
             StringWriter writer = new StringWriter();
             xmlSerializer.setOutput(writer);
             serializeRules(rules, xmlSerializer);
-            return writer.toString();
+            return writer.toString().getBytes(StandardCharsets.UTF_8);
         } catch (Exception e) {
             throw new RuleSerializeException(e.getMessage(), e);
         }
diff --git a/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleXmlSerializerTest.java b/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleXmlSerializerTest.java
index 180de2f..5903b5a 100644
--- a/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleXmlSerializerTest.java
+++ b/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleXmlSerializerTest.java
@@ -34,6 +34,7 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedHashMap;
@@ -49,11 +50,11 @@
         RuleSerializer xmlSerializer = new RuleXmlSerializer();
         String expectedRules = "<RL />";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -82,11 +83,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Arrays.asList(rule1, rule2), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -128,8 +129,8 @@
                 /* formatVersion= */ Optional.empty(),
                 outputStream);
 
-        String actualRules = outputStream.toString();
-        assertEquals(expectedRules, actualRules);
+        byte[] actualRules = outputStream.toString().getBytes(StandardCharsets.UTF_8);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -165,11 +166,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -215,11 +216,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -265,11 +266,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -297,11 +298,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -327,11 +328,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test
@@ -355,11 +356,11 @@
                         + "</R>"
                         + "</RL>";
 
-        String actualRules =
+        byte[] actualRules =
                 xmlSerializer.serialize(
                         Collections.singletonList(rule), /* formatVersion= */ Optional.empty());
 
-        assertEquals(expectedRules, actualRules);
+        assertEquals(expectedRules, new String(actualRules, StandardCharsets.UTF_8));
     }
 
     @Test