Cross-check and bump transliterated code markers to android-8.1.0_r22.
diff --git a/resources/src/main/java/org/robolectric/res/android/AConfiguration.java b/resources/src/main/java/org/robolectric/res/android/AConfiguration.java
index f6d9588..d4f9224 100644
--- a/resources/src/main/java/org/robolectric/res/android/AConfiguration.java
+++ b/resources/src/main/java/org/robolectric/res/android/AConfiguration.java
@@ -1,6 +1,6 @@
 package org.robolectric.res.android;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/native/+/android-8.0.0_r4/include/android/configuration.h
+// transliterated from https://android.googlesource.com/platform/frameworks/native/+/android-8.1.0_r22/include/android/configuration.h
 public class AConfiguration {
 /** Orientation: not specified. */
   public static final int ACONFIGURATION_ORIENTATION_ANY  = 0x0000;
diff --git a/resources/src/main/java/org/robolectric/res/android/AssetDir.java b/resources/src/main/java/org/robolectric/res/android/AssetDir.java
index 191884e..4910df7 100644
--- a/resources/src/main/java/org/robolectric/res/android/AssetDir.java
+++ b/resources/src/main/java/org/robolectric/res/android/AssetDir.java
@@ -2,8 +2,8 @@
 
 import org.robolectric.res.android.CppAssetManager.FileType;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/libs/androidfw/AssetDir.cpp and
-// https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/include/androidfw/AssetDir.h
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/AssetDir.cpp and
+// https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/AssetDir.h
 public class AssetDir {
 
   private SortedVector<FileInfo> mFileInfo;
diff --git a/resources/src/main/java/org/robolectric/res/android/ConfigDescription.java b/resources/src/main/java/org/robolectric/res/android/ConfigDescription.java
index da831bd..f3be76b 100644
--- a/resources/src/main/java/org/robolectric/res/android/ConfigDescription.java
+++ b/resources/src/main/java/org/robolectric/res/android/ConfigDescription.java
@@ -12,7 +12,7 @@
 
 /**
  * transliterated from
- * https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r4/tools/aapt2/ConfigDescription.cpp
+ * https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/tools/aapt2/ConfigDescription.cpp
  */
 public class ConfigDescription {
   public static final int SDK_CUPCAKE = 3;
@@ -980,7 +980,7 @@
     return false;
   }
 
-  // transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/tools/aapt/AaptConfig.cpp
+  // transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/tools/aapt/AaptConfig.cpp
   private static void applyVersionForCompatibility(ResTable_config config) {
     if (config == null) {
       return;
diff --git a/resources/src/main/java/org/robolectric/res/android/CppAssetManager.java b/resources/src/main/java/org/robolectric/res/android/CppAssetManager.java
index f4d2c6f..6faed79 100644
--- a/resources/src/main/java/org/robolectric/res/android/CppAssetManager.java
+++ b/resources/src/main/java/org/robolectric/res/android/CppAssetManager.java
@@ -33,7 +33,7 @@
 import org.robolectric.res.android.ZipFileRO.ZipEntryRO;
 import org.robolectric.util.PerfStatsCollector;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/libs/androidfw/AssetManager.cpp
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/AssetManager.cpp
 public class CppAssetManager {
 
   private static final boolean kIsDebug = false;
diff --git a/resources/src/main/java/org/robolectric/res/android/DynamicRefTable.java b/resources/src/main/java/org/robolectric/res/android/DynamicRefTable.java
index 6969a5a..48cf106 100644
--- a/resources/src/main/java/org/robolectric/res/android/DynamicRefTable.java
+++ b/resources/src/main/java/org/robolectric/res/android/DynamicRefTable.java
@@ -1,6 +1,6 @@
 package org.robolectric.res.android;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/include/androidfw/ResourceTypes.h
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h
 
 import static org.robolectric.res.android.Errors.NO_ERROR;
 import static org.robolectric.res.android.Errors.UNKNOWN_ERROR;
diff --git a/resources/src/main/java/org/robolectric/res/android/Errors.java b/resources/src/main/java/org/robolectric/res/android/Errors.java
index 3df6b19..1307705 100644
--- a/resources/src/main/java/org/robolectric/res/android/Errors.java
+++ b/resources/src/main/java/org/robolectric/res/android/Errors.java
@@ -1,6 +1,6 @@
 package org.robolectric.res.android;
 
-// transliterated from https://android.googlesource.com/platform/system/core/+/android-7.1.1_r13/include/utils/Errors.h
+// transliterated from https://android.googlesource.com/platform/system/core/+/android-8.1.0_r22/include/utils/Errors.h
 
 public class Errors {
 
diff --git a/resources/src/main/java/org/robolectric/res/android/IdmapEntries.java b/resources/src/main/java/org/robolectric/res/android/IdmapEntries.java
index 380e4e8..5a8067b 100644
--- a/resources/src/main/java/org/robolectric/res/android/IdmapEntries.java
+++ b/resources/src/main/java/org/robolectric/res/android/IdmapEntries.java
@@ -2,7 +2,7 @@
 
 import static org.robolectric.res.android.Errors.*;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/ResourceTypes.cpp
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
 public class IdmapEntries {
 
   public boolean hasEntries() {
diff --git a/resources/src/main/java/org/robolectric/res/android/LocaleData.java b/resources/src/main/java/org/robolectric/res/android/LocaleData.java
index ce40a1f..39e7aca 100644
--- a/resources/src/main/java/org/robolectric/res/android/LocaleData.java
+++ b/resources/src/main/java/org/robolectric/res/android/LocaleData.java
@@ -9,7 +9,7 @@
 import java.util.Arrays;
 import java.util.Map;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/LocaleData.cpp
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/LocaleData.cpp
 public class LocaleData {
 
   private static int packLocale(final byte[] language, final byte[] region) {
diff --git a/resources/src/main/java/org/robolectric/res/android/LocaleDataTables.java b/resources/src/main/java/org/robolectric/res/android/LocaleDataTables.java
index 96c80e1..f20eb63 100644
--- a/resources/src/main/java/org/robolectric/res/android/LocaleDataTables.java
+++ b/resources/src/main/java/org/robolectric/res/android/LocaleDataTables.java
@@ -6,10 +6,10 @@
 import java.util.Map;
 import java.util.Set;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/LocaleDataTables.cpp
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/LocaleDataTables.cpp
 public class LocaleDataTables {
 
-  // Auto-generated by frameworks/base/tools/localedata/extract_icu_data.py
+  // Auto-generated by ./tools/localedata/extract_icu_data.py
   static final byte[][] SCRIPT_CODES = {
     /* 0  */ {'A', 'h', 'o', 'm'},
     /* 1  */ {'A', 'r', 'a', 'b'},
diff --git a/resources/src/main/java/org/robolectric/res/android/ResStringPool.java b/resources/src/main/java/org/robolectric/res/android/ResStringPool.java
index b6cc1eb..6ef9785 100644
--- a/resources/src/main/java/org/robolectric/res/android/ResStringPool.java
+++ b/resources/src/main/java/org/robolectric/res/android/ResStringPool.java
@@ -1,7 +1,7 @@
 package org.robolectric.res.android;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/ResourceTypes.cpp
-//   and https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/include/androidfw/ResourceTypes.h
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
+//   and https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h
 
 import static org.robolectric.res.android.Errors.BAD_TYPE;
 import static org.robolectric.res.android.Errors.NAME_NOT_FOUND;
@@ -312,6 +312,12 @@
 //            byte[] bytes = new byte[u16len * 2];
 //            buf.position(bufOffset + str);
 //            buf.get(bytes);
+//               // Reject malformed (non null-terminated) strings
+//               if (str[encLen] != 0x00) {
+//                   ALOGW("Bad string block: string #%d is not null-terminated",
+//                         (int)idx);
+//                   return NULL;
+//               }
 //            return new String(bytes, StandardCharsets.UTF_16);
 //          } else {
 //            ALOGW("Bad string block: string #%d extends to %d, past end at %d\n",
diff --git a/resources/src/main/java/org/robolectric/res/android/ResStringPoolHeader.java b/resources/src/main/java/org/robolectric/res/android/ResStringPoolHeader.java
index 93c6787..045ec7c 100644
--- a/resources/src/main/java/org/robolectric/res/android/ResStringPoolHeader.java
+++ b/resources/src/main/java/org/robolectric/res/android/ResStringPoolHeader.java
@@ -17,7 +17,7 @@
  * into a style table starting at stylesStart.  Each entry in the
  * style table is an array of ResStringPool_span structures.
  */
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/include/androidfw/ResourceTypes.h#434
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h#434
 public class ResStringPoolHeader {
   public static final int SIZEOF = ResChunk_header.SIZEOF + 20;
 
diff --git a/resources/src/main/java/org/robolectric/res/android/ResTable.java b/resources/src/main/java/org/robolectric/res/android/ResTable.java
index 7c16eb4..b5a8eb7 100644
--- a/resources/src/main/java/org/robolectric/res/android/ResTable.java
+++ b/resources/src/main/java/org/robolectric/res/android/ResTable.java
@@ -46,8 +46,8 @@
 import org.robolectric.res.android.ResourceTypes.ResTable_typeSpec;
 import org.robolectric.res.android.ResourceTypes.Res_value;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/libs/androidfw/ResourceTypes.cpp
-//   and https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/include/androidfw/ResourceTypes.h
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
+//   and https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h
 public class ResTable {
 
   private static final int IDMAP_MAGIC             = 0x504D4449;
@@ -2473,6 +2473,7 @@
 //            delete typeList[j];
 //          }
 //        }
+//        typeList.clear();
 //      }
 //
 //      final int N = packages.size();
@@ -2573,8 +2574,6 @@
     final boolean isSystemAsset;
   }
 
-  // transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/ResourceTypes.cpp:3151
-
   // --------------------------------------------------------------------
 // --------------------------------------------------------------------
 // --------------------------------------------------------------------
diff --git a/resources/src/main/java/org/robolectric/res/android/ResTable_config.java b/resources/src/main/java/org/robolectric/res/android/ResTable_config.java
index 341af2b..e0ed96d 100644
--- a/resources/src/main/java/org/robolectric/res/android/ResTable_config.java
+++ b/resources/src/main/java/org/robolectric/res/android/ResTable_config.java
@@ -76,7 +76,7 @@
  * Describes a particular resource configuration.
  *
  * Transliterated from:
- * * https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/ResourceTypes.cpp
+ * * https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
  * * https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/include/androidfw/ResourceTypes.h (struct ResTable_config)
  *
  * Changes from 8.0.0_r4 partially applied.
@@ -1083,8 +1083,7 @@
 
 
 
-  // transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/libs/androidfw/ResourceTypes.cpp
-  // Changes from 8.0.0_r4 partially applied.
+  // transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
 
   public boolean isBetterThan(
       ResTable_config o, ResTable_config requested) {
diff --git a/resources/src/main/java/org/robolectric/res/android/ResourceTypes.java b/resources/src/main/java/org/robolectric/res/android/ResourceTypes.java
index e7d6b46..8b271f8 100644
--- a/resources/src/main/java/org/robolectric/res/android/ResourceTypes.java
+++ b/resources/src/main/java/org/robolectric/res/android/ResourceTypes.java
@@ -14,8 +14,8 @@
 import java.util.Map;
 import org.robolectric.res.android.ResourceTypes.ResStringPool_header.Writer;
 
-// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/libs/androidfw/ResourceTypes.cpp
-//   and https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/include/androidfw/ResourceTypes.h
+// transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/libs/androidfw/ResourceTypes.cpp
+//   and https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h
 public class ResourceTypes {
   public static final String ANDROID_NS = "http://schemas.android.com/apk/res/android";
   public static final String AUTO_NS = "http://schemas.android.com/apk/res-auto";
diff --git a/resources/src/main/java/org/robolectric/res/android/String8.java b/resources/src/main/java/org/robolectric/res/android/String8.java
index f653046..96d8f98 100644
--- a/resources/src/main/java/org/robolectric/res/android/String8.java
+++ b/resources/src/main/java/org/robolectric/res/android/String8.java
@@ -2,8 +2,8 @@
 
 import java.io.File;
 
-// transliterated from https://android.googlesource.com/platform/system/core/+/android-7.1.1_r13/libutils/String8.cpp
-// and https://android.googlesource.com/platform/system/core/+/android-7.1.1_r13/include/utils/String8.h
+// transliterated from https://android.googlesource.com/platform/system/core/+/android-8.1.0_r22/libutils/String8.cpp
+// and https://android.googlesource.com/platform/system/core/+/android-8.1.0_r22/include/utils/String8.h
 public class String8 {
 
   private StringBuilder mString;
diff --git a/resources/src/main/java/org/robolectric/res/android/StringPoolRef.java b/resources/src/main/java/org/robolectric/res/android/StringPoolRef.java
index 5c79837..ee3ea63 100644
--- a/resources/src/main/java/org/robolectric/res/android/StringPoolRef.java
+++ b/resources/src/main/java/org/robolectric/res/android/StringPoolRef.java
@@ -1,7 +1,7 @@
 package org.robolectric.res.android;
 
 /**
- * transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r13/include/androidfw/ResourceTypes.h:541
+ * transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/include/androidfw/ResourceTypes.h:541
  * Wrapper class that allows the caller to retrieve a string from a string pool without knowing
  * which string pool to look.
  */
diff --git a/shadows/framework/src/main/java/org/robolectric/android/ConfigurationV25.java b/shadows/framework/src/main/java/org/robolectric/android/ConfigurationV25.java
index 39779a5..2d74756 100644
--- a/shadows/framework/src/main/java/org/robolectric/android/ConfigurationV25.java
+++ b/shadows/framework/src/main/java/org/robolectric/android/ConfigurationV25.java
@@ -15,7 +15,7 @@
 import java.util.Locale;
 import org.robolectric.RuntimeEnvironment;
 
-// adapted from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r4/core/java/android/content/res/Configuration.java
+// adapted from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/core/java/android/content/res/Configuration.java
 public class ConfigurationV25 {
 
   private static String localesToResourceQualifier(List<Locale> locs) {
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager.java
index 448fbac..1a1cf30 100644
--- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager.java
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowArscAssetManager.java
@@ -77,7 +77,7 @@
 import org.robolectric.util.ReflectionHelpers;
 import org.robolectric.util.ReflectionHelpers.ClassParameter;
 
-// native method impls transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/core/jni/android_util_AssetManager.cpp
+// native method impls transliterated from https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r22/core/jni/android_util_AssetManager.cpp
 @Implements(value = AssetManager.class, maxSdk = VERSION_CODES.O_MR1,
     shadowPicker = Picker.class)
 public class ShadowArscAssetManager extends ShadowAssetManager {