Snap for 7550844 from 979db8934bf0ae522e92f9b16d71c297b1edc0da to mainline-conscrypt-release

Change-Id: Ia1545ee9e3e922964f1d4bfefb9b3be497a2d626
diff --git a/.prebuilt_info/prebuilt_info_common_ddmlib_ddmlib-prebuilt_jar.asciipb b/.prebuilt_info/prebuilt_info_common_ddmlib_ddmlib-prebuilt_jar.asciipb
new file mode 100644
index 0000000..a721582
--- /dev/null
+++ b/.prebuilt_info/prebuilt_info_common_ddmlib_ddmlib-prebuilt_jar.asciipb
@@ -0,0 +1,12 @@
+drops {
+  android_build_drop {
+    build_id: "7308957"
+    target: "studio_linux"
+    source_file: "artifacts/ddmlib.jar"
+  }
+  dest_file: "common/ddmlib/ddmlib-prebuilt.jar"
+  version: ""
+  version_group: ""
+  git_project: "platform/prebuilts/misc"
+  git_branch: "master"
+}
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..561e449
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,49 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-EPL",
+        "SPDX-license-identifier-GPL",
+        "SPDX-license-identifier-GPL-2.0",
+        "SPDX-license-identifier-LGPL",
+        "SPDX-license-identifier-MIT",
+        "SPDX-license-identifier-PSF-2.0",
+        "legacy_restricted",
+    ],
+    // large-scale-change unable to identify any license_text files
+}
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..c8b8c6e
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,8 @@
+third_party {
+  # would be NOTICE save for:
+  #   common/jacoco/lib/NOTICE.txt
+  # and RECIPROCAL save for:
+  #   common/jython/LICENSE
+  #   gdbserver/NOTICE
+  license_type: RESTRICTED
+}
diff --git a/common/android-support-test/Android.bp b/common/android-support-test/Android.bp
index 569f7e6..9fae52c 100644
--- a/common/android-support-test/Android.bp
+++ b/common/android-support-test/Android.bp
@@ -14,10 +14,20 @@
 
 // DEPRECATED! Use androidx-test libraries instead
 
+// Lock down visibility to prevent new usages
+// This library cannot removed entirely yet because there are
+// usages in Android.mk that cannot be eliminated quit yet. See b/172831930
+package {
+    default_visibility: [
+        "//visibility:private",
+    ],
+}
+
 // for Android JUnit runner, monitor and rules
 java_library_static {
     name: "android-support-test",
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "android-support-test-rules-nodep",
         "android-support-test-runner-nodep",
@@ -32,6 +42,7 @@
 java_library_static {
     name: "android-support-test-nodep",
     sdk_version: "23",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "android-support-test-rules-nodep",
         "android-support-test-runner-nodep",
@@ -43,24 +54,28 @@
     name: "android-support-test-rules-nodep",
     jars: ["rules/rules_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 java_import {
     name: "android-support-test-runner-nodep",
     jars: ["runner/runner_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 java_import {
     name: "android-support-test-monitor-nodep",
     jars: ["monitor/monitor_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 // for espresso-core
 java_library_static {
     name: "espresso-core",
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "espresso-core-nodep",
         "espresso-idling-resource-nodep",
@@ -79,12 +94,14 @@
     name: "espresso-core-nodep",
     jars: ["espresso/espresso_core_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 // for espresso-contrib
 java_library_static {
     name: "espresso-contrib",
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "espresso-core",
         "android-support-design",
@@ -97,6 +114,7 @@
     name: "espresso-contrib-nodep",
     jars: ["espresso/espresso_contrib_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 // for espresso-idling-resource
@@ -104,12 +122,14 @@
     name: "espresso-idling-resource-nodep",
     jars: ["espresso/espresso_idling_resource_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 // for espresso-intents
 java_library_static {
     name: "espresso-intents",
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "espresso-intents-nodep",
         "espresso-core",
@@ -121,12 +141,14 @@
     name: "espresso-intents-nodep",
     jars: ["espresso/espresso_intents_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
 
 // for espresso-web
 java_library_static {
     name: "espresso-web",
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
     static_libs: [
         "espresso-core",
         "android-support-annotations",
@@ -138,4 +160,5 @@
     name: "espresso-web-nodep",
     jars: ["espresso/espresso_web_release_no_deps.jar"],
     sdk_version: "15",
+    licenses: ["Android-Apache-2.0"],
 }
diff --git a/common/androidx-perf/ui_apks_compose-integration-tests-demos_compose-demos-testapp-release.apk b/common/androidx-perf/ui_apks_compose-integration-tests-demos_compose-demos-testapp-release.apk
new file mode 100644
index 0000000..46c5e77
--- /dev/null
+++ b/common/androidx-perf/ui_apks_compose-integration-tests-demos_compose-demos-testapp-release.apk
Binary files differ
diff --git a/common/androidx-test/Android.bp b/common/androidx-test/Android.bp
index 5c73919..601478f 100644
--- a/common/androidx-test/Android.bp
+++ b/common/androidx-test/Android.bp
@@ -1,10 +1,18 @@
 // Automatically generated with:
-// pom2bp -rewrite 'androidx.test:=androidx.test.' -rewrite 'androidx.test.ext:=androidx.test.ext.' -rewrite 'androidx.test.espresso:espresso-=androidx.test.espresso.' -rewrite 'androidx.test.janktesthelper:janktesthelper=androidx.test.janktesthelper' -rewrite 'androidx.test.uiautomator:uiautomator=androidx.test.uiautomator' -extra-libs androidx.test.rules=android.test.base -extra-libs androidx.test.uiautomator=android.test.base -rewrite 'com.google.truth:truth=truth-prebuilt' -rewrite 'net.sf.kxml:kxml2=kxml2-android' -rewrite 'androidx.lifecycle:lifecycle-common=androidx.lifecycle_lifecycle-common' -rewrite 'androidx.annotation:annotation=androidx.annotation_annotation' -rewrite 'org.hamcrest:hamcrest-integration=hamcrest' -rewrite 'javax.inject:javax.inject=jsr330' -rewrite 'com.google.android.material:material=com.google.android.material_material' -rewrite 'androidx.drawerlayout:drawerlayout=androidx.drawerlayout_drawerlayout' -rewrite 'androidx.viewpager:viewpager=androidx.viewpager_viewpager' -rewrite 'androidx.recyclerview:recyclerview=androidx.recyclerview_recyclerview' -rewrite 'androidx.core:core=androidx.core_core' -rewrite 'androidx.legacy:legacy-support-core-utils=androidx.legacy_legacy-support-core-utils' -sdk-version current -static-deps .
+// pom2bp -rewrite 'androidx.test:=androidx.test.' -rewrite 'androidx.test.ext:=androidx.test.ext.' -rewrite 'androidx.test.espresso:espresso-=androidx.test.espresso.' -rewrite 'androidx.test.janktesthelper:janktesthelper=androidx.test.janktesthelper' -rewrite 'androidx.test.uiautomator:uiautomator=androidx.test.uiautomator' -rewrite 'androidx.test.services:storage=androidx.test.services.storage' -extra-libs androidx.test.rules=android.test.base -extra-libs androidx.test.uiautomator=android.test.base -rewrite 'com.google.truth:truth=truth-prebuilt' -rewrite 'net.sf.kxml:kxml2=kxml2-android' -rewrite 'androidx.lifecycle:lifecycle-common=androidx.lifecycle_lifecycle-common' -rewrite 'androidx.annotation:annotation=androidx.annotation_annotation' -rewrite 'org.hamcrest:hamcrest-integration=hamcrest' -rewrite 'javax.inject:javax.inject=jsr330' -rewrite 'com.google.android.material:material=com.google.android.material_material' -rewrite 'androidx.drawerlayout:drawerlayout=androidx.drawerlayout_drawerlayout' -rewrite 'androidx.viewpager:viewpager=androidx.viewpager_viewpager' -rewrite 'androidx.recyclerview:recyclerview=androidx.recyclerview_recyclerview' -rewrite 'androidx.core:core=androidx.core_core' -rewrite 'androidx.legacy:legacy-support-core-utils=androidx.legacy_legacy-support-core-utils' -sdk-version current -static-deps .
+
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
 
 android_library_import {
     name: "androidx.test.core-nodeps",
-    aars: ["androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.aar"],
+    aars: ["androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.annotation_annotation",
@@ -16,6 +24,10 @@
 android_library {
     name: "androidx.test.core",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.core/AndroidManifest.xml",
     static_libs: [
@@ -29,8 +41,12 @@
 
 android_library_import {
     name: "androidx.test.espresso.contrib-nodeps",
-    aars: ["androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.aar"],
+    aars: ["androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "com.google.android.material_material",
@@ -48,6 +64,10 @@
 android_library {
     name: "androidx.test.espresso.contrib",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.espresso.contrib/AndroidManifest.xml",
     static_libs: [
@@ -67,8 +87,12 @@
 
 android_library_import {
     name: "androidx.test.espresso.core-nodeps",
-    aars: ["androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.aar"],
+    aars: ["androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "javawriter",
@@ -84,6 +108,10 @@
 android_library {
     name: "androidx.test.espresso.core",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.espresso.core/AndroidManifest.xml",
     static_libs: [
@@ -101,8 +129,12 @@
 
 android_library_import {
     name: "androidx.test.espresso.idling-resource-nodeps",
-    aars: ["androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.aar"],
+    aars: ["androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
     ],
@@ -111,6 +143,10 @@
 android_library {
     name: "androidx.test.espresso.idling-resource",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.espresso.idling-resource/AndroidManifest.xml",
     static_libs: [
@@ -121,8 +157,12 @@
 
 android_library_import {
     name: "androidx.test.espresso.intents-nodeps",
-    aars: ["androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.aar"],
+    aars: ["androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.test.espresso.core",
@@ -134,6 +174,10 @@
 android_library {
     name: "androidx.test.espresso.intents",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.espresso.intents/AndroidManifest.xml",
     static_libs: [
@@ -147,8 +191,12 @@
 
 android_library_import {
     name: "androidx.test.espresso.web-nodeps",
-    aars: ["androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.aar"],
+    aars: ["androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.annotation_annotation",
@@ -160,6 +208,10 @@
 android_library {
     name: "androidx.test.espresso.web",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.espresso.web/AndroidManifest.xml",
     static_libs: [
@@ -173,8 +225,12 @@
 
 android_library_import {
     name: "androidx.test.ext.junit-nodeps",
-    aars: ["androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.aar"],
+    aars: ["androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "junit",
@@ -187,6 +243,10 @@
 android_library {
     name: "androidx.test.ext.junit",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.ext.junit/AndroidManifest.xml",
     static_libs: [
@@ -201,8 +261,12 @@
 
 android_library_import {
     name: "androidx.test.ext.truth-nodeps",
-    aars: ["androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.aar"],
+    aars: ["androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "guava",
@@ -215,6 +279,10 @@
 android_library {
     name: "androidx.test.ext.truth",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.ext.truth/AndroidManifest.xml",
     static_libs: [
@@ -231,6 +299,10 @@
     name: "androidx.test.janktesthelper-nodeps",
     aars: ["androidx/test/janktesthelper/janktesthelper/1.0.1/janktesthelper-1.0.1.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "23",
     static_libs: [
         "androidx.test.runner",
@@ -241,6 +313,10 @@
 android_library {
     name: "androidx.test.janktesthelper",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "23",
     manifest: "manifests/androidx.test.janktesthelper/AndroidManifest.xml",
     static_libs: [
@@ -253,8 +329,12 @@
 
 android_library_import {
     name: "androidx.test.monitor-nodeps",
-    aars: ["androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.aar"],
+    aars: ["androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.annotation_annotation",
@@ -264,6 +344,10 @@
 android_library {
     name: "androidx.test.monitor",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.monitor/AndroidManifest.xml",
     static_libs: [
@@ -275,8 +359,12 @@
 
 android_library_import {
     name: "androidx.test.rules-nodeps",
-    aars: ["androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.aar"],
+    aars: ["androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.test.runner",
@@ -289,6 +377,10 @@
 android_library {
     name: "androidx.test.rules",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.rules/AndroidManifest.xml",
     static_libs: [
@@ -303,19 +395,28 @@
 
 android_library_import {
     name: "androidx.test.runner-nodeps",
-    aars: ["androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.aar"],
+    aars: ["androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     static_libs: [
         "androidx.annotation_annotation",
         "junit",
         "androidx.test.monitor",
+        "androidx.test.services.storage",
     ],
 }
 
 android_library {
     name: "androidx.test.runner",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "14",
     manifest: "manifests/androidx.test.runner/AndroidManifest.xml",
     static_libs: [
@@ -323,6 +424,39 @@
         "androidx.annotation_annotation",
         "junit",
         "androidx.test.monitor",
+        "androidx.test.services.storage",
+    ],
+    java_version: "1.7",
+}
+
+android_library_import {
+    name: "androidx.test.services.storage-nodeps",
+    aars: ["androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.aar"],
+    sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+    min_sdk_version: "14",
+    static_libs: [
+        "jsr305",
+        "androidx.test.monitor",
+    ],
+}
+
+android_library {
+    name: "androidx.test.services.storage",
+    sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+    min_sdk_version: "14",
+    manifest: "manifests/androidx.test.services.storage/AndroidManifest.xml",
+    static_libs: [
+        "androidx.test.services.storage-nodeps",
+        "jsr305",
+        "androidx.test.monitor",
     ],
     java_version: "1.7",
 }
@@ -331,6 +465,10 @@
     name: "androidx.test.uiautomator-nodeps",
     aars: ["androidx/test/uiautomator/uiautomator/2.2.0/uiautomator-2.2.0.aar"],
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "18",
     static_libs: [
     ],
@@ -342,6 +480,10 @@
 android_library {
     name: "androidx.test.uiautomator",
     sdk_version: "current",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
     min_sdk_version: "18",
     manifest: "manifests/androidx.test.uiautomator/AndroidManifest.xml",
     static_libs: [
diff --git a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.aar b/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.aar
deleted file mode 100644
index 45c8edf..0000000
--- a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03-sources.jar
similarity index 67%
rename from common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03-sources.jar
index 34398aa..2b2f08a 100644
--- a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.aar b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.aar
new file mode 100644
index 0000000..8fd9f18
--- /dev/null
+++ b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.pom b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.pom
similarity index 94%
rename from common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.pom
rename to common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.pom
index 6b21657..a058cb3 100644
--- a/common/androidx-test/androidx/test/core/1.3.0-beta02/core-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/core/1.3.1-alpha03/core-1.3.1-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test</groupId>
   <artifactId>core</artifactId>
-  <version>1.3.0-beta02</version>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -33,7 +33,7 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>monitor</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03-sources.jar
similarity index 83%
rename from common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03-sources.jar
index d3a6503..9330e1e 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.aar b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.aar
similarity index 70%
rename from common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.aar
rename to common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.aar
index 64c57e8..ef9e622 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.aar
+++ b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.pom b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.pom
similarity index 94%
rename from common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.pom
rename to common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.pom
index d369e81..d49e440 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-contrib/3.3.0-beta02/espresso-contrib-3.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/espresso/espresso-contrib/3.4.0-alpha03/espresso-contrib-3.4.0-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.espresso</groupId>
   <artifactId>espresso-contrib</artifactId>
-  <version>3.3.0-beta02</version>
+  <version>3.4.0-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,13 +27,13 @@
     <dependency>
       <groupId>androidx.test.espresso</groupId>
       <artifactId>espresso-core</artifactId>
-      <version>3.3.0-beta02</version>
+      <version>3.4.0-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>androidx.test.espresso</groupId>
       <artifactId>espresso-idling-resource</artifactId>
-      <version>3.3.0-beta02</version>
+      <version>3.4.0-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -75,7 +75,7 @@
     <dependency>
       <groupId>com.google.android.apps.common.testing.accessibility.framework</groupId>
       <artifactId>accessibility-test-framework</artifactId>
-      <version>2.0</version>
+      <version>3.1</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
diff --git a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.aar b/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.aar
deleted file mode 100644
index f28710d..0000000
--- a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03-sources.jar
similarity index 69%
rename from common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03-sources.jar
index 5a7f27b..dc97035 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.aar b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.aar
new file mode 100644
index 0000000..c1a14fe
--- /dev/null
+++ b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.pom b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.pom
similarity index 94%
rename from common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.pom
rename to common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.pom
index 949d8ec..f2f919a 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-core/3.3.0-beta02/espresso-core-3.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/espresso/espresso-core/3.4.0-alpha03/espresso-core-3.4.0-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.espresso</groupId>
   <artifactId>espresso-core</artifactId>
-  <version>3.3.0-beta02</version>
+  <version>3.4.0-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,13 +27,13 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>runner</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>androidx.test.espresso</groupId>
       <artifactId>espresso-idling-resource</artifactId>
-      <version>3.3.0-beta02</version>
+      <version>3.4.0-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.aar b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.aar
deleted file mode 100644
index 973eeff..0000000
--- a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03-sources.jar
similarity index 67%
rename from common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03-sources.jar
index 06569bd..abab3f7 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.aar b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.aar
new file mode 100644
index 0000000..4caa333
--- /dev/null
+++ b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.pom b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.pom
similarity index 96%
rename from common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.pom
rename to common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.pom
index 98f13e6..c6de4a3 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.3.0-beta02/espresso-idling-resource-3.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/espresso/espresso-idling-resource/3.4.0-alpha03/espresso-idling-resource-3.4.0-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.espresso</groupId>
   <artifactId>espresso-idling-resource</artifactId>
-  <version>3.3.0-beta02</version>
+  <version>3.4.0-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
diff --git a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02-sources.jar
deleted file mode 100644
index c502e53..0000000
--- a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02-sources.jar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.aar b/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.aar
deleted file mode 100644
index d5ec067..0000000
--- a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03-sources.jar
new file mode 100644
index 0000000..64f109a
--- /dev/null
+++ b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.aar b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.aar
new file mode 100644
index 0000000..948d760
--- /dev/null
+++ b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.pom b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.pom
similarity index 89%
rename from common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.pom
rename to common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.pom
index 31202a0..c7871d6 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-intents/3.3.0-beta02/espresso-intents-3.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/espresso/espresso-intents/3.4.0-alpha03/espresso-intents-3.4.0-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.espresso</groupId>
   <artifactId>espresso-intents</artifactId>
-  <version>3.3.0-beta02</version>
+  <version>3.4.0-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,19 +27,19 @@
     <dependency>
       <groupId>androidx.test.espresso</groupId>
       <artifactId>espresso-core</artifactId>
-      <version>3.3.0-beta02</version>
+      <version>3.4.0-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>core</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>rules</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
diff --git a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.aar b/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.aar
deleted file mode 100644
index a4cd8b2..0000000
--- a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03-sources.jar
similarity index 82%
rename from common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03-sources.jar
index 25a6f23..61aecc9 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.aar b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.aar
new file mode 100644
index 0000000..b5895c5
--- /dev/null
+++ b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.pom b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.pom
similarity index 94%
rename from common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.pom
rename to common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.pom
index 9f336d7..b265244 100644
--- a/common/androidx-test/androidx/test/espresso/espresso-web/3.3.0-beta02/espresso-web-3.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/espresso/espresso-web/3.4.0-alpha03/espresso-web-3.4.0-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.espresso</groupId>
   <artifactId>espresso-web</artifactId>
-  <version>3.3.0-beta02</version>
+  <version>3.4.0-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,7 +27,7 @@
     <dependency>
       <groupId>androidx.test.espresso</groupId>
       <artifactId>espresso-core</artifactId>
-      <version>3.3.0-beta02</version>
+      <version>3.4.0-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02-sources.jar b/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02-sources.jar
deleted file mode 100644
index 121fda8..0000000
--- a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02-sources.jar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.aar b/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.aar
deleted file mode 100644
index 6209909..0000000
--- a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03-sources.jar b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03-sources.jar
new file mode 100644
index 0000000..adb3044
--- /dev/null
+++ b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.aar b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.aar
new file mode 100644
index 0000000..760913e
--- /dev/null
+++ b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.pom b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.pom
similarity index 92%
rename from common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.pom
rename to common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.pom
index 6fa4a53..74e9c44 100644
--- a/common/androidx-test/androidx/test/ext/junit/1.1.2-beta02/junit-1.1.2-beta02.pom
+++ b/common/androidx-test/androidx/test/ext/junit/1.1.3-alpha03/junit-1.1.3-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.ext</groupId>
   <artifactId>junit</artifactId>
-  <version>1.1.2-beta02</version>
+  <version>1.1.3-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -33,13 +33,13 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>core</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>monitor</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03-sources.jar
similarity index 100%
rename from common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.aar b/common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.aar
similarity index 97%
rename from common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.aar
rename to common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.aar
index bc7bc10..0b16a9e 100644
--- a/common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.aar
+++ b/common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.pom b/common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.pom
similarity index 95%
rename from common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.pom
rename to common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.pom
index 04e7b55..ca6d4bb 100644
--- a/common/androidx-test/androidx/test/ext/truth/1.3.0-beta02/truth-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/ext/truth/1.3.1-alpha03/truth-1.3.1-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test.ext</groupId>
   <artifactId>truth</artifactId>
-  <version>1.3.0-beta02</version>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,7 +27,7 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>core</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.aar b/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.aar
deleted file mode 100644
index 88571d0..0000000
--- a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03-sources.jar
similarity index 72%
rename from common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03-sources.jar
index 69c0b7a..3c818cb 100644
--- a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.aar b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.aar
new file mode 100644
index 0000000..e4a60c4
--- /dev/null
+++ b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.pom b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.pom
similarity index 96%
rename from common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.pom
rename to common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.pom
index dbd68b4..2f42bf7 100644
--- a/common/androidx-test/androidx/test/monitor/1.3.0-beta02/monitor-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/monitor/1.3.1-alpha03/monitor-1.3.1-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test</groupId>
   <artifactId>monitor</artifactId>
-  <version>1.3.0-beta02</version>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
diff --git a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.aar b/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.aar
deleted file mode 100644
index 78d6b7d..0000000
--- a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03-sources.jar
similarity index 70%
rename from common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02-sources.jar
rename to common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03-sources.jar
index 52c8334..9970626 100644
--- a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02-sources.jar
+++ b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.aar b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.aar
new file mode 100644
index 0000000..5081909
--- /dev/null
+++ b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.pom b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.pom
similarity index 93%
rename from common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.pom
rename to common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.pom
index 8213f04..1deda4e 100644
--- a/common/androidx-test/androidx/test/rules/1.3.0-beta02/rules-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/rules/1.3.1-alpha03/rules-1.3.1-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test</groupId>
   <artifactId>rules</artifactId>
-  <version>1.3.0-beta02</version>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -27,7 +27,7 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>runner</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>1.3.1-alpha03</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
diff --git a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02-sources.jar b/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02-sources.jar
deleted file mode 100644
index 71bd822..0000000
--- a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02-sources.jar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.aar b/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.aar
deleted file mode 100644
index 484d996..0000000
--- a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.aar
+++ /dev/null
Binary files differ
diff --git a/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03-sources.jar b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03-sources.jar
new file mode 100644
index 0000000..e8d9aa3
--- /dev/null
+++ b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.aar b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.aar
new file mode 100644
index 0000000..0782917
--- /dev/null
+++ b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.pom
similarity index 84%
rename from common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom
rename to common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.pom
index 8c8d4d0..0c250f1 100644
--- a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/runner/1.3.1-alpha03/runner-1.3.1-alpha03.pom
@@ -5,7 +5,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>androidx.test</groupId>
   <artifactId>runner</artifactId>
-  <version>1.3.0-beta02</version>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -33,7 +33,13 @@
     <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>monitor</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>[1.3.1-alpha03]</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>androidx.test.services</groupId>
+      <artifactId>storage</artifactId>
+      <version>[1.3.1-alpha03]</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03-sources.jar b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03-sources.jar
new file mode 100644
index 0000000..3978eb7
--- /dev/null
+++ b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03-sources.jar
Binary files differ
diff --git a/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.aar b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.aar
new file mode 100644
index 0000000..98b0917
--- /dev/null
+++ b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.aar
Binary files differ
diff --git a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.pom
similarity index 72%
copy from common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom
copy to common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.pom
index 8c8d4d0..2ef2a77 100644
--- a/common/androidx-test/androidx/test/runner/1.3.0-beta02/runner-1.3.0-beta02.pom
+++ b/common/androidx-test/androidx/test/services/storage/1.3.1-alpha03/storage-1.3.1-alpha03.pom
@@ -3,9 +3,9 @@
     xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>
-  <groupId>androidx.test</groupId>
-  <artifactId>runner</artifactId>
-  <version>1.3.0-beta02</version>
+  <groupId>androidx.test.services</groupId>
+  <artifactId>storage</artifactId>
+  <version>1.3.1-alpha03</version>
   <packaging>aar</packaging>
   <name>AndroidX Test Library</name>
   <description>The AndroidX Test Library provides an extensive framework for testing Android apps</description>
@@ -25,21 +25,15 @@
   </developers>
   <dependencies>
     <dependency>
-      <groupId>androidx.annotation</groupId>
-      <artifactId>annotation</artifactId>
-      <version>1.0.0</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
       <groupId>androidx.test</groupId>
       <artifactId>monitor</artifactId>
-      <version>1.3.0-beta02</version>
+      <version>[1.3.1-alpha03]</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.12</version>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+      <version>2.0.1</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
diff --git a/common/androidx-test/manifests/androidx.test.core/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.core/AndroidManifest.xml
index 72ccd59..f16ef39 100644
--- a/common/androidx-test/manifests/androidx.test.core/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.core/AndroidManifest.xml
@@ -26,6 +26,7 @@
     <application>
         <activity
             android:name="androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity"
+            android:exported="true"
             android:theme="@android:style/Theme" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -33,6 +34,7 @@
         </activity>
         <activity
             android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity"
+            android:exported="true"
             android:theme="@android:style/Theme" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -40,6 +42,7 @@
         </activity>
         <activity
             android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity"
+            android:exported="true"
             android:theme="@android:style/Theme.Dialog" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/common/androidx-test/manifests/androidx.test.espresso.core/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.espresso.core/AndroidManifest.xml
index a48e3b0..82f8cb0 100644
--- a/common/androidx-test/manifests/androidx.test.espresso.core/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.espresso.core/AndroidManifest.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.test.espresso" >
+    package="androidx.test.espresso.core" >
 
     <uses-sdk
         android:minSdkVersion="14"
diff --git a/common/androidx-test/manifests/androidx.test.espresso.idling-resource/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.espresso.idling-resource/AndroidManifest.xml
index e201e84..7a50129 100644
--- a/common/androidx-test/manifests/androidx.test.espresso.idling-resource/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.espresso.idling-resource/AndroidManifest.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.test.espresso" >
+    package="androidx.test.espresso.idling.resource" >
 
     <uses-sdk
         android:minSdkVersion="14"
diff --git a/common/androidx-test/manifests/androidx.test.monitor/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.monitor/AndroidManifest.xml
index f3e4b2e..2cffb5c 100644
--- a/common/androidx-test/manifests/androidx.test.monitor/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.monitor/AndroidManifest.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.test" >
+    package="androidx.test.monitor" >
 
     <uses-sdk
         android:minSdkVersion="14"
diff --git a/common/androidx-test/manifests/androidx.test.rules/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.rules/AndroidManifest.xml
index f3e4b2e..654fd76 100644
--- a/common/androidx-test/manifests/androidx.test.rules/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.rules/AndroidManifest.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.test" >
+    package="androidx.test.rules" >
 
     <uses-sdk
         android:minSdkVersion="14"
diff --git a/common/androidx-test/manifests/androidx.test.runner/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.runner/AndroidManifest.xml
index f3e4b2e..df2fbe8 100644
--- a/common/androidx-test/manifests/androidx.test.runner/AndroidManifest.xml
+++ b/common/androidx-test/manifests/androidx.test.runner/AndroidManifest.xml
@@ -15,10 +15,19 @@
   ~ limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.test" >
+    package="androidx.test.runner" >
 
     <uses-sdk
         android:minSdkVersion="14"
-        android:targetSdkVersion="28" />
+        android:targetSdkVersion="30" />
+
+    <queries>
+        <package android:name="androidx.test.orchestrator" />
+        <package android:name="androidx.test.services" />
+        <package android:name="com.google.android.apps.common.testing.services" />
+    </queries>
+
+    <!-- support for androidx.test.orchestrator clearPackageData -->
+    <application android:forceQueryable="true" />
 
 </manifest>
\ No newline at end of file
diff --git a/common/androidx-test/manifests/androidx.test.services.storage/AndroidManifest.xml b/common/androidx-test/manifests/androidx.test.services.storage/AndroidManifest.xml
new file mode 100644
index 0000000..7fdecc5
--- /dev/null
+++ b/common/androidx-test/manifests/androidx.test.services.storage/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="androidx.test.services.storage" >
+
+    <uses-sdk
+        android:minSdkVersion="14"
+        android:targetSdkVersion="30" />
+
+</manifest>
\ No newline at end of file
diff --git a/common/androidx-test/update-from-gmaven.py b/common/androidx-test/update-from-gmaven.py
index eb32e48..aef12fd 100755
--- a/common/androidx-test/update-from-gmaven.py
+++ b/common/androidx-test/update-from-gmaven.py
@@ -18,12 +18,13 @@
 import subprocess
 import sys
 
-runnerVersion="1.3.0-beta02"
+runnerVersion="1.3.1-alpha03"
 rulesVersion=runnerVersion
-espressoVersion="3.3.0-beta02"
+espressoVersion="3.4.0-alpha03"
 coreVersion=runnerVersion
-extJUnitVersion="1.1.2-beta02"
+extJUnitVersion="1.1.3-alpha03"
 extTruthVersion=runnerVersion
+servicesVersion=runnerVersion
 jankTestHelperVersion="1.0.1"
 uiAutomatorVersion="2.2.0"
 
@@ -33,6 +34,7 @@
     "androidx.test.espresso:espresso-":"androidx.test.espresso.",
     "androidx.test.janktesthelper:janktesthelper":"androidx.test.janktesthelper",
     "androidx.test.uiautomator:uiautomator":"androidx.test.uiautomator",
+    "androidx.test.services:storage":"androidx.test.services.storage",
     }
 
 extraLibs = {
@@ -111,6 +113,7 @@
 downloadArtifact("androidx.test.ext", "truth", extTruthVersion)
 downloadArtifact("androidx.test.janktesthelper", "janktesthelper", jankTestHelperVersion)
 downloadArtifact("androidx.test.uiautomator", "uiautomator", uiAutomatorVersion)
+downloadArtifact("androidx.test.services", "storage", servicesVersion)
 
 atxRewriteStr = ""
 for name in mavenToBpPatternMap:
diff --git a/common/antlr/Android.bp b/common/antlr/Android.bp
index 33af3cf..115242c 100644
--- a/common/antlr/Android.bp
+++ b/common/antlr/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_antlr_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_antlr_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-BSD",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 java_import_host {
     name: "antlr",
     jars: ["antlr-3.4-complete.jar"],
diff --git a/common/args4j/Android.bp b/common/args4j/Android.bp
index 867b6ea..e4942c2 100644
--- a/common/args4j/Android.bp
+++ b/common/args4j/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_args4j_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_args4j_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 java_import_host {
     name: "args4j-2.0.28",
     jars: ["args4j-2.0.28.jar"],
diff --git a/common/asm/Android.bp b/common/asm/Android.bp
index d5a8a72..86ca4d6 100644
--- a/common/asm/Android.bp
+++ b/common/asm/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_asm_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_asm_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-BSD",
+    ],
+    license_text: [
+        "LICENSE.txt",
+    ],
+}
+
 java_import_host {
     name: "asm-5.2",
     jars: ["asm-5.2.jar"],
diff --git a/common/atf/Android.bp b/common/atf/Android.bp
index 1fb9398..4ec3b7b 100644
--- a/common/atf/Android.bp
+++ b/common/atf/Android.bp
@@ -12,8 +12,18 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-java_import_host {
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   legacy_restricted
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
+java_import {
     name: "atf-prebuilt-jars",
+    host_supported: true,
     jars: [
         "atf_classes.jar",
     ],
@@ -22,4 +32,4 @@
 java_library_host {
     name: "atf-prebuilt",
     static_libs: ["atf-prebuilt-jars"],
-}
\ No newline at end of file
+}
diff --git a/common/commons-cli/Android.bp b/common/commons-cli/Android.bp
index 9ee952d..cf12ca4 100644
--- a/common/commons-cli/Android.bp
+++ b/common/commons-cli/Android.bp
@@ -12,6 +12,29 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_commons-cli_license"],
+}
+
+// Added automatically by a large-scale-change
+//
+// large-scale-change included anything that looked like it might be a license
+// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
+//
+// Please consider removing redundant or irrelevant files from 'license_text:'.
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_commons-cli_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "LICENSE",
+        "NOTICE",
+    ],
+}
+
 java_import_host {
     name: "commons-cli-1.2",
     jars: ["commons-cli-1.2.jar"],
diff --git a/common/commons-compress/Android.bp b/common/commons-compress/Android.bp
index 931cc26..743a58b 100644
--- a/common/commons-compress/Android.bp
+++ b/common/commons-compress/Android.bp
@@ -12,6 +12,10 @@
 // # See the License for the specific language governing permissions and
 // # limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "commons-compress-prebuilt",
     jars: ["commons-compress-prebuilt.jar"],
diff --git a/common/ddmlib/Android.bp b/common/ddmlib/Android.bp
index ea35991..d929f66 100644
--- a/common/ddmlib/Android.bp
+++ b/common/ddmlib/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "ddmlib-prebuilt",
     jars: ["ddmlib-prebuilt.jar"],
diff --git a/common/ddmlib/OWNERS b/common/ddmlib/OWNERS
new file mode 100644
index 0000000..63aec3d
--- /dev/null
+++ b/common/ddmlib/OWNERS
@@ -0,0 +1,5 @@
+# Owners due to the impact of ddmlib update on test harnesses like Trade Federation, Atest, Cts
+guangzhu@google.com
+jdesprez@google.com
+moonk@google.com
+tsu@google.com
diff --git a/common/ddmlib/PREBUILT b/common/ddmlib/PREBUILT
index 709b89a..bc345c8 100644
--- a/common/ddmlib/PREBUILT
+++ b/common/ddmlib/PREBUILT
@@ -1,9 +1,7 @@
 The object in this prebuilt directory can be built from
 	platform/tools/base
 
-From the commit I690dab1afa84d0cbaa594ec750136cf06ef0eccc
-
-Jar is obtained from git_studio-master-dev@6569608
+Jar is obtained from studio_linux@7192265[] - git_studio-master-dev
 
 Note: Before dropping the ddmlib-prebuilt.jar, please run
 the following command to strip the jar manifest file,
diff --git a/common/ddmlib/ddmlib-prebuilt.jar b/common/ddmlib/ddmlib-prebuilt.jar
index fad1629..95c734e 100644
--- a/common/ddmlib/ddmlib-prebuilt.jar
+++ b/common/ddmlib/ddmlib-prebuilt.jar
Binary files differ
diff --git a/common/devtools-annotations/Android.bp b/common/devtools-annotations/Android.bp
index f91a6c8..c9771e5 100644
--- a/common/devtools-annotations/Android.bp
+++ b/common/devtools-annotations/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "devtools-annotations-prebuilt",
     jars: ["devtools-annotations-prebuilt.jar"],
diff --git a/common/droiddriver/Android.bp b/common/droiddriver/Android.bp
index fc5d57e..f7152fa 100644
--- a/common/droiddriver/Android.bp
+++ b/common/droiddriver/Android.bp
@@ -13,6 +13,23 @@
 // limitations under the License.
 
 //#################################
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_droiddriver_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_droiddriver_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 java_import {
     name: "droiddriver-0.9-prebuilt",
     jars: ["droiddriver-0.9.jar"],
diff --git a/common/error_prone_annotations/Android.bp b/common/error_prone_annotations/Android.bp
index 8fb3d7d..de5be80 100644
--- a/common/error_prone_annotations/Android.bp
+++ b/common/error_prone_annotations/Android.bp
@@ -12,6 +12,25 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: [
+        "prebuilts_misc_common_error_prone_annotations_license",
+    ],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_error_prone_annotations_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 java_import_host {
     name: "error_prone_annotations-2.0.18",
     jars: ["error_prone_annotations-2.0.18.jar"],
diff --git a/common/frameworks/Android.bp b/common/frameworks/Android.bp
index b199d11..00e4094 100644
--- a/common/frameworks/Android.bp
+++ b/common/frameworks/Android.bp
@@ -12,7 +12,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "platformprotos",
     jars: ["platformprotos-prebuilt.jar"],
 }
+
+java_import_host {
+    name: "platformtestprotos",
+    jars: ["platformtestprotos-prebuilt.jar"],
+}
diff --git a/common/frameworks/PREBUILT b/common/frameworks/PREBUILT
index 0124b2f..718cf37 100644
--- a/common/frameworks/PREBUILT
+++ b/common/frameworks/PREBUILT
@@ -1,9 +1,13 @@
-The object in this prebuilt directory can be built from
+The objects in this prebuilt directory can be built from
 	platform/frameworks/base
-From commit I757f06b69eefe26dbbbaa1bbde1abeca1b6a62f4.
+
+platformprotos-prebuilt.jar:
+Built from commit I757f06b69eefe26dbbbaa1bbde1abeca1b6a62f4.
 First AOSP build containing the change is aosp-master@5989172.
 
-Note: Before dropping the platformprotos-prebuilt.jar, please
-run the following command to strip the jar manifest file,
-which causes hidden dependency on jars in the Class-Path.
+platformtestprotos-prebuilt.jar:
+Built from change I82386a6c8a5e6ddf42d8377148001f4ede2f297f
+
+Note: Before dropping the jars, please run the following command to strip the
+jar manifest file, which causes hidden dependency on jars in the Class-Path.
 $ zip -d platformprotos-prebuilt.jar META-INF/MANIFEST.MF
diff --git a/common/frameworks/platformtestprotos-prebuilt.jar b/common/frameworks/platformtestprotos-prebuilt.jar
new file mode 100644
index 0000000..77b9419
--- /dev/null
+++ b/common/frameworks/platformtestprotos-prebuilt.jar
Binary files differ
diff --git a/common/guava/Android.bp b/common/guava/Android.bp
index 3952c5f..fd00bf2 100644
--- a/common/guava/Android.bp
+++ b/common/guava/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_guava_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_guava_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 java_import_host {
     name: "guava-21.0",
     jars: ["guava-21.0.jar"],
diff --git a/common/incfs/Android.bp b/common/incfs/Android.bp
new file mode 100644
index 0000000..3e6fb27
--- /dev/null
+++ b/common/incfs/Android.bp
@@ -0,0 +1,10 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_import {
+    name: "libincfs-prebuilt",
+    jars: ["libincfs-prebuilt.jar"],
+    installable: true,
+    host_supported: true,
+}
diff --git a/common/incfs/OWNERS b/common/incfs/OWNERS
new file mode 100644
index 0000000..645c53c
--- /dev/null
+++ b/common/incfs/OWNERS
@@ -0,0 +1,6 @@
+# Owners due to the impact of libincfs update on Incremental Cts tests
+alexbuy@google.com
+schfan@google.com
+toddke@google.com
+zyy@google.com
+patb@google.com
diff --git a/common/incfs/README.md b/common/incfs/README.md
new file mode 100644
index 0000000..3c1634e
--- /dev/null
+++ b/common/incfs/README.md
@@ -0,0 +1,9 @@
+The object in this prebuilt directory can be built from
+	platform/tools/base
+
+Jar is obtained from studio_linux@7320826[] - git_studio-master-dev
+
+Note: Before dropping the libincfs-prebuilt.jar, please run
+the following command to strip the jar manifest file,
+which causes hidden dependency on jars in the Class-Path.
+$ zip -d libincfs-prebuilt.jar META-INF/MANIFEST.MF
diff --git a/common/incfs/libincfs-prebuilt.jar b/common/incfs/libincfs-prebuilt.jar
new file mode 100644
index 0000000..8edbbea
--- /dev/null
+++ b/common/incfs/libincfs-prebuilt.jar
Binary files differ
diff --git a/common/jacoco/Android.bp b/common/jacoco/Android.bp
index 15950ac..9cd1065 100644
--- a/common/jacoco/Android.bp
+++ b/common/jacoco/Android.bp
@@ -1,14 +1,25 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-EPL
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
 java_library_host {
     name: "jvm-jacoco-reporter",
 
     srcs: ["src/main/java/**/*.java"],
 
     static_libs: [
-        "asm-analysis-prebuilt-host-jar",
-        "asm-commons-prebuilt-host-jar",
-        "asm-prebuilt-host-jar",
-        "asm-tree-prebuilt-host-jar",
-        "asm-util-prebuilt-host-jar",
+        "asm-analysis-7.0",
+        "asm-commons-7.0",
+        "asm-7.0",
+        "asm-tree-7.0",
+        "asm-util-7.0",
         "jvm-jacoco-report",
         "commons-cli-1.2",
     ],
diff --git a/common/json/Android.bp b/common/json/Android.bp
index 209f97d..68bab3b 100644
--- a/common/json/Android.bp
+++ b/common/json/Android.bp
@@ -12,6 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
 java_import {
     name: "json-prebuilt",
     jars: ["json-prebuilt.jar"],
diff --git a/common/jsr305/Android.bp b/common/jsr305/Android.bp
index 62d9548..0d6e846 100644
--- a/common/jsr305/Android.bp
+++ b/common/jsr305/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_jsr305_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_jsr305_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-BSD",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 java_import_host {
     name: "jsr305-3.0.1",
     jars: ["jsr305-3.0.1.jar"],
diff --git a/common/jython/Android.bp b/common/jython/Android.bp
index 7a8d47e..6961e8c 100644
--- a/common/jython/Android.bp
+++ b/common/jython/Android.bp
@@ -12,6 +12,46 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_jython_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+//
+// large-scale-change included anything that looked like it might be a license
+// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
+//
+// Please consider removing redundant or irrelevant files from 'license_text:'.
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_jython_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-GPL",
+        "SPDX-license-identifier-MIT",
+        "SPDX-license-identifier-PSF-2.0",
+    ],
+    license_text: [
+        "LICENSE",
+        "LICENSE_Apache.txt",
+        "LICENSE_CPython.txt",
+    ],
+}
+
 java_import_host {
     name: "jython",
     jars: ["jython.jar"],
diff --git a/common/kxml2/Android.bp b/common/kxml2/Android.bp
index fde2192..99b7abe 100644
--- a/common/kxml2/Android.bp
+++ b/common/kxml2/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["prebuilts_misc_common_kxml2_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_kxml2_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "license.txt",
+    ],
+}
+
 java_import {
     name: "kxml2-2.3.0",
     jars: ["kxml2-2.3.0.jar"],
diff --git a/common/layoutlib_api/Android.bp b/common/layoutlib_api/Android.bp
index 66e6733..b3ffcc0 100644
--- a/common/layoutlib_api/Android.bp
+++ b/common/layoutlib_api/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "layoutlib_api-prebuilt",
     jars: ["layoutlib_api-prebuilt.jar"],
diff --git a/common/layoutlib_api/PREBUILT b/common/layoutlib_api/PREBUILT
index 33a45df..ee73643 100644
--- a/common/layoutlib_api/PREBUILT
+++ b/common/layoutlib_api/PREBUILT
@@ -1 +1 @@
-layoutlib_api-prebuilt.jar was built from tools/base/layoutlib-api@3b69c0bf62dd53bb097792fd2e687de49e1617f1
+layoutlib_api-prebuilt.jar was built from tools/base/layoutlib-api@508b5c918b458394283eea486561f525037b5a5e
diff --git a/common/layoutlib_api/layoutlib_api-prebuilt.jar b/common/layoutlib_api/layoutlib_api-prebuilt.jar
index f75ad63..18d65b2 100644
--- a/common/layoutlib_api/layoutlib_api-prebuilt.jar
+++ b/common/layoutlib_api/layoutlib_api-prebuilt.jar
Binary files differ
diff --git a/common/layoutlib_api/layoutlib_api-sources.jar b/common/layoutlib_api/layoutlib_api-sources.jar
index 540da4a..1987a20 100644
--- a/common/layoutlib_api/layoutlib_api-sources.jar
+++ b/common/layoutlib_api/layoutlib_api-sources.jar
Binary files differ
diff --git a/common/nimbus-jose-jwt/Android.bp b/common/nimbus-jose-jwt/Android.bp
index e1246e8..a55b56b 100644
--- a/common/nimbus-jose-jwt/Android.bp
+++ b/common/nimbus-jose-jwt/Android.bp
@@ -1,3 +1,28 @@
+package {
+    default_applicable_licenses: [
+        "prebuilts_misc_common_nimbus-jose-jwt_license",
+    ],
+}
+
+// Added automatically by a large-scale-change
+//
+// large-scale-change included anything that looked like it might be a license
+// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
+//
+// Please consider removing redundant or irrelevant files from 'license_text:'.
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_common_nimbus-jose-jwt_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "COPYRIGHT.txt",
+        "LICENSE.txt",
+    ],
+}
+
 java_import_host {
     name: "nimbus_jose_jwt",
     jars: ["nimbus-jose-jwt-4.33.jar"],
diff --git a/common/ninepatch/Android.bp b/common/ninepatch/Android.bp
index 4422aab..0b1afa3 100644
--- a/common/ninepatch/Android.bp
+++ b/common/ninepatch/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "ninepatch-prebuilt",
     jars: ["ninepatch-prebuilt.jar"],
diff --git a/common/ninepatch/PREBUILT b/common/ninepatch/PREBUILT
index e53f4f0..d1af25b 100644
--- a/common/ninepatch/PREBUILT
+++ b/common/ninepatch/PREBUILT
@@ -1 +1 @@
-ninepatch-prebuilt.jar was built from tools/base/ninepatch@f1bc90f3b8f383c73aeb284b67bc0ccfae625911
+ninepatch-prebuilt.jar was built from tools/base/ninepatch@508b5c918b458394283eea486561f525037b5a5e
diff --git a/common/ninepatch/ninepatch-prebuilt-sources.jar b/common/ninepatch/ninepatch-prebuilt-sources.jar
index 78ade46..31e45b3 100644
--- a/common/ninepatch/ninepatch-prebuilt-sources.jar
+++ b/common/ninepatch/ninepatch-prebuilt-sources.jar
Binary files differ
diff --git a/common/ninepatch/ninepatch-prebuilt.jar b/common/ninepatch/ninepatch-prebuilt.jar
index 9ffa226..4250e6f 100644
--- a/common/ninepatch/ninepatch-prebuilt.jar
+++ b/common/ninepatch/ninepatch-prebuilt.jar
Binary files differ
diff --git a/common/perflib/Android.bp b/common/perflib/Android.bp
index 14d651c..e011cd0 100644
--- a/common/perflib/Android.bp
+++ b/common/perflib/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "perflib-prebuilt",
     jars: ["perflib-prebuilt.jar"],
diff --git a/common/robolectric/3.6.1/Android.bp b/common/robolectric/3.6.1/Android.bp
index 4501bea..157ce7f 100644
--- a/common/robolectric/3.6.1/Android.bp
+++ b/common/robolectric/3.6.1/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   legacy_restricted
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
 java_import {
     name: "platform-robolectric-3.6.1-prebuilt",
     sdk_version: "current",
diff --git a/common/robolectric/3.6.2/Android.bp b/common/robolectric/3.6.2/Android.bp
index d76c7f3..ae74b95 100644
--- a/common/robolectric/3.6.2/Android.bp
+++ b/common/robolectric/3.6.2/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   legacy_restricted
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
 java_import {
     name: "platform-robolectric-3.6.2-prebuilt",
     sdk_version: "current",
diff --git a/common/robolectric/4.3.1/Android.bp b/common/robolectric/4.3.1/Android.bp
index 717d084..377b3d3 100644
--- a/common/robolectric/4.3.1/Android.bp
+++ b/common/robolectric/4.3.1/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   legacy_restricted
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
+
 java_import {
     name: "platform-robolectric-4.3.1-prebuilt",
     sdk_version: "current",
@@ -16,4 +25,3 @@
         "lib/utils-4.3.1.jar",
     ],
 }
-
diff --git a/common/robolectric/4.4/Android.bp b/common/robolectric/4.4/Android.bp
new file mode 100644
index 0000000..8029d5d
--- /dev/null
+++ b/common/robolectric/4.4/Android.bp
@@ -0,0 +1,55 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_import {
+    name: "platform-robolectric-4.4-prebuilt",
+    sdk_version: "current",
+    jars: [
+        "lib/animal-sniffer-annotations-1.17.jar",
+        "lib/annotation-1.1.0.jar",
+        "lib/annotations-4.4.jar",
+        "lib/asm-6.0.jar",
+        "lib/asm-commons-6.0.jar",
+        "lib/asm-tree-6.0.jar",
+        "lib/asm-util-6.0.jar",
+        "lib/auto-value-annotations-1.6.2.jar",
+        "lib/bcprov-jdk15on-1.65.jar",
+        "lib/checker-qual-2.5.2.jar",
+        "lib/commons-codec-1.3.jar",
+        "lib/commons-logging-1.1.1.jar",
+        "lib/error_prone_annotations-2.2.0.jar",
+        "lib/failureaccess-1.0.1.jar",
+        "lib/guava-27.0.1-jre.jar",
+        "lib/httpclient-4.0.3.jar",
+        "lib/httpcore-4.0.1.jar",
+        "lib/icu4j-53.1.jar",
+        "lib/j2objc-annotations-1.1.jar",
+        "lib/javax.annotation-api-1.3.2.jar",
+        "lib/javax.inject-1.jar",
+        "lib/jsr305-3.0.2.jar",
+        "lib/junit-4.4.jar",
+        "lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+        "lib/monitor-1.3.0-rc03.aar",
+        "lib/pluginapi-4.4.jar",
+        "lib/plugins-maven-dependency-resolver-4.4.jar",
+        "lib/resources-4.4.jar",
+        "lib/robolectric-4.4.jar",
+        "lib/sandbox-4.4.jar",
+        "lib/shadowapi-4.4.jar",
+        "lib/shadows-framework-4.4.jar",
+        "lib/shadows-httpclient-4.4.jar",
+        "lib/shadows-multidex-4.4.jar",
+        "lib/shadows-playservices-4.4.jar",
+        "lib/shadows-supportv4-4.4.jar",
+        "lib/sqlite4java-0.282.jar",
+        "lib/utils-4.4.jar",
+        "lib/utils-reflector-4.4.jar",
+        "lib/vtd-xml-2.11.jar",
+    ],
+    exclude_files: [
+        "META-INF/*.SF",
+        "META-INF/*.DSA",
+        "META-INF/*.RSA",
+    ],
+}
diff --git a/common/robolectric/4.4/PREBUILT/download-libs.gradle b/common/robolectric/4.4/PREBUILT/download-libs.gradle
new file mode 100644
index 0000000..a01d969
--- /dev/null
+++ b/common/robolectric/4.4/PREBUILT/download-libs.gradle
@@ -0,0 +1,82 @@
+/*
+ * Modified from https://gist.github.com/xian/05c4f27da6d4156b9827842217c2cd5c
+ * Reference: http://robolectric.org/blog/2017/03/01/hermetic-builds/
+ */
+defaultTasks 'copyLibs'
+
+def shadowArtifacts = [
+        "org.robolectric:shadows-framework:${robolectricVersion}",
+        "org.robolectric:shadows-httpclient:${robolectricVersion}",
+        "org.robolectric:shadows-multidex:${robolectricVersion}",
+        "org.robolectric:shadows-playservices:${robolectricVersion}",
+        "org.robolectric:shadows-supportv4:${robolectricVersion}",
+]
+
+apply plugin: 'java'
+
+repositories {
+    mavenCentral()
+    google()
+}
+
+configurations {
+    sandbox
+    roboSources
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+    compile("org.robolectric:robolectric:${robolectricVersion}") {
+        // we don't need these MavenDependencyResolver in a hermetic build
+        exclude group: 'org.apache.maven', module: ''
+        exclude group: 'org.apache.ant', module: ''
+    }
+
+    compile('com.ximpleware:vtd-xml:2.11') { force = true }
+    // Force ASM dependency to be 6.0 for JDK9 support
+    compile('org.ow2.asm:asm:6.0') { force = true }
+    compile('org.ow2.asm:asm-commons:6.0') { force = true }
+    compile('org.ow2.asm:asm-util:6.0') { force = true }
+
+    shadowArtifacts.forEach { shadowArtifact ->
+        compile ("${shadowArtifact}")  {
+            // we don't need these MavenDependencyResolver in a hermetic build
+            exclude group: 'org.apache.maven', module: ''
+            exclude group: 'org.apache.ant', module: ''
+        }
+        sandbox ("${shadowArtifact}")  {
+            // we don't need these MavenDependencyResolver in a hermetic build
+            exclude group: 'org.apache.maven', module: ''
+            exclude group: 'org.apache.ant', module: ''
+        }
+    }
+
+    def shadowArtifactsSet = shadowArtifacts.collect {it.toString()}  toSet()
+    configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { ResolvedArtifact ra ->
+        ModuleVersionIdentifier id = ra.moduleVersion.id
+        // download only core sources. relax restriction if required
+        if ("org.robolectric".equals(id.group) && !shadowArtifactsSet.contains(id.toString())) {
+            roboSources("${id.group}:${id.name}:${id.version}:sources") {
+                transitive = false
+            }
+        }
+    }
+}
+
+
+task copyLibs(type: Copy) {
+    from configurations.compile
+    from configurations.roboSources
+    into "$buildDir/lib"
+
+    doLast {
+        def f = new File("$buildDir/classpath_jars.mk")
+        f.delete()
+        def jars = source.getFiles()
+            .collect { it.name }
+            .sort()
+            .findAll { !it.endsWith("sources.jar") }
+            .collect { "    lib/${it} " }
+        f << "my_robolectric_runtime_deps := \\\n" << jars.join("\\\n") << "\n"
+    }
+}
diff --git a/common/robolectric/4.4/PREBUILT/download-libs.sh b/common/robolectric/4.4/PREBUILT/download-libs.sh
new file mode 100755
index 0000000..9853825
--- /dev/null
+++ b/common/robolectric/4.4/PREBUILT/download-libs.sh
@@ -0,0 +1,78 @@
+#! /bin/bash
+
+set -e
+
+printusage() {
+    echo "Usage: ./download-libs.sh <robolectric-version> " >&2
+    echo "    -f <old-directory-to-copy-from>" >&2
+    exit 1
+}
+
+oldVersion=""
+roboVersion="$1"
+shift
+
+while getopts "f:h" opt; do
+    case "$opt" in
+        f)
+            oldVersion="$OPTARG"
+            ;;
+        h)
+            printusage
+            ;;
+    esac
+done
+
+if [[ -z $roboVersion ]] || [[ -z $oldVersion ]]; then
+    printusage
+fi
+
+mkdir -p ../"$roboVersion"/PREBUILT
+# Copy the scripts into the versioned directory for record
+cp download-libs.sh ../"$roboVersion"/PREBUILT/download-libs.sh
+cp download-libs.gradle ../"$roboVersion"/PREBUILT/download-libs.gradle
+
+cd ../"$roboVersion"
+gradle -b PREBUILT/download-libs.gradle \
+    -ProbolectricVersion="$roboVersion" \
+    -PshadowsVersion="$roboVersion" \
+    -PbuildDir="`pwd`"
+
+COPY_FROM_OLD_VERSION=(
+    "java-timeout"
+    "list_failed.sh"
+    "report-internal.mk"
+    "robotest-internal.mk"
+    "robotest.sh"
+    "run_robotests.mk"
+    "wrapper.sh"
+    "wrapper_test.sh"
+)
+
+for file in "${COPY_FROM_OLD_VERSION[@]}"; do
+    cp -n ../"$oldVersion"/$file ./$file
+done
+
+cat <<EOF > Android.bp
+java_import {
+    name: "platform-robolectric-${roboVersion}-prebuilt",
+    sdk_version: "current",
+    jars: [
+        "lib/annotations-${roboVersion}.jar",
+        "lib/asm-6.0.jar",
+        "lib/junit-${roboVersion}.jar",
+        "lib/resources-${roboVersion}.jar",
+        "lib/sandbox-${roboVersion}.jar",
+        "lib/shadowapi-${roboVersion}.jar",
+        "lib/shadows-framework-${roboVersion}.jar",
+        "lib/shadows-httpclient-${roboVersion}.jar",
+        "lib/shadows-multidex-${roboVersion}.jar",
+        "lib/shadows-supportv4-${roboVersion}.jar",
+        "lib/robolectric-${roboVersion}.jar",
+        "lib/utils-${roboVersion}.jar",
+    ],
+}
+
+EOF
+
+set +e
diff --git a/common/robolectric/4.4/classpath_jars.mk b/common/robolectric/4.4/classpath_jars.mk
new file mode 100644
index 0000000..d497060
--- /dev/null
+++ b/common/robolectric/4.4/classpath_jars.mk
@@ -0,0 +1,41 @@
+my_robolectric_runtime_deps := \
+    lib/animal-sniffer-annotations-1.17.jar \
+    lib/annotation-1.1.0.jar \
+    lib/annotations-4.4.jar \
+    lib/asm-6.0.jar \
+    lib/asm-commons-6.0.jar \
+    lib/asm-tree-6.0.jar \
+    lib/asm-util-6.0.jar \
+    lib/auto-value-annotations-1.6.2.jar \
+    lib/bcprov-jdk15on-1.65.jar \
+    lib/checker-qual-2.5.2.jar \
+    lib/commons-codec-1.3.jar \
+    lib/commons-logging-1.1.1.jar \
+    lib/error_prone_annotations-2.2.0.jar \
+    lib/failureaccess-1.0.1.jar \
+    lib/guava-27.0.1-jre.jar \
+    lib/httpclient-4.0.3.jar \
+    lib/httpcore-4.0.1.jar \
+    lib/icu4j-53.1.jar \
+    lib/j2objc-annotations-1.1.jar \
+    lib/javax.annotation-api-1.3.2.jar \
+    lib/javax.inject-1.jar \
+    lib/jsr305-3.0.2.jar \
+    lib/junit-4.4.jar \
+    lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar \
+    lib/monitor-1.3.0-rc03.aar \
+    lib/pluginapi-4.4.jar \
+    lib/plugins-maven-dependency-resolver-4.4.jar \
+    lib/resources-4.4.jar \
+    lib/robolectric-4.4.jar \
+    lib/sandbox-4.4.jar \
+    lib/shadowapi-4.4.jar \
+    lib/shadows-framework-4.4.jar \
+    lib/shadows-httpclient-4.4.jar \
+    lib/shadows-multidex-4.4.jar \
+    lib/shadows-playservices-4.4.jar \
+    lib/shadows-supportv4-4.4.jar \
+    lib/sqlite4java-0.282.jar \
+    lib/utils-4.4.jar \
+    lib/utils-reflector-4.4.jar \
+    lib/vtd-xml-2.11.jar 
diff --git a/common/robolectric/4.4/java-timeout b/common/robolectric/4.4/java-timeout
new file mode 100755
index 0000000..921fc80
--- /dev/null
+++ b/common/robolectric/4.4/java-timeout
@@ -0,0 +1,94 @@
+#!/bin/bash
+#
+# Script for running java with a timeout.
+#
+# The timeout in seconds must be the first argument.  The rest of the arguments
+# are passed to the java binary itself.
+#
+# For example:
+#     java-timeout 120 -cp classes.jar org.junit.runner.JUnitCore
+# runs:
+#     java -cp classes.jar org.junit.runner.JUnitCore
+# with a timeout of 2 minutes.
+
+set -euo pipefail
+
+# Prints a message and terminates the process.
+function fatal() {
+  echo "FATAL: $*"
+  exit 113
+}
+
+# Function that is invoked if java is terminated due to timeout.
+# It take the process ID of the java command as an argument if it has already
+# been started, or the empty string if not. It should very rarely receive the
+# empty string as the pid, but it is possible.
+function on_timeout() {
+  echo 'FATAL: command timed out'
+
+  local pid="${1-}"
+  shift || fatal '[on_timeout] missing argument: pid'
+  test $# = 0 || fatal '[on_timeout] too many arguments'
+
+  if [ "$pid" != '' ]; then
+    # It is possible that the process already terminated, but there is not much
+    # we can do about that.
+    kill -TERM -- "-$pid"  # Kill the entire process group.
+  fi
+}
+
+# Executes java with the given argument, waiting for a termination signal from
+# runalarm which this script is running under. The arguments are passed to the
+# java binary itself.
+function execute() {
+  # Trap SIGTERM, which is what we will receive if runalarm interrupts us.
+  local pid  # Set below after we run the process.
+  trap 'on_timeout $pid' SIGTERM
+  # Starts java within a new process group and saves it process ID before
+  # blocking waiting for it to complete. 'setsid' starts the process within a
+  # new process group, which means that it will not be killed when this shell
+  # command is killed. This is needed so that the signal handler in the trap
+  # command above to be invoked before the java command is terminated (and will
+  # in fact have to terminate it itself).
+  setsid -w java "$@" & pid="$!"; wait "$pid"
+}
+
+# Runs java with a timeout. The first argument is either the timeout in seconds
+# or the string 'execute', which is used internally to execute the command under
+# runalarm.
+function main() {
+  local timeout_secs="${1-}"
+  shift || fatal '[main]: missing argument: timeout_secs'
+  # The reset of the arguments are meant for the java binary itself.
+
+  if [[ $timeout_secs = '0' ]]; then
+    # Run without any timeout.
+    java "$@"
+  elif [[ $timeout_secs = 'execute' ]]; then
+    # This means we actually have to execute the command.
+    execute "$@"
+  elif (( timeout_secs < 30 )); then
+    # We want to have a timeout of at least 30 seconds, so that we are
+    # guaranteed to be able to start the java command in the subshell. This also
+    # catches non-numeric arguments.
+    fatal 'Must specify a timeout of at least 30 seconds.'
+  else
+    # Wrap the command with the standard timeout(1) if available.
+    # "runalarm" is a Google timeout clone, and Mac users who've installed
+    # GNU coreutils have timeout available as "gtimeout".
+    if type timeout > /dev/null 2>&1 ; then
+      timeout "${timeout_secs}" "$0" 'execute' "$@"
+    elif type runalarm > /dev/null 2>&1 ; then
+      runalarm -t "$timeout_secs" "$0" 'execute' "$@"
+    elif type gtimeout > /dev/null 2>&1 ; then
+      gtimeout "${timeout_secs}s" "$0" 'execute' "$@"
+    else
+      # No way to set a timeout available, just execute directly.
+      echo "Warning: unable to enforce timeout." 1>&2
+      java "$@"
+    fi
+  fi
+}
+
+
+main "$@"
diff --git a/common/robolectric/4.4/lib/animal-sniffer-annotations-1.17.jar b/common/robolectric/4.4/lib/animal-sniffer-annotations-1.17.jar
new file mode 100644
index 0000000..6ec7a60
--- /dev/null
+++ b/common/robolectric/4.4/lib/animal-sniffer-annotations-1.17.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/annotation-1.1.0.jar b/common/robolectric/4.4/lib/annotation-1.1.0.jar
new file mode 100644
index 0000000..0669512
--- /dev/null
+++ b/common/robolectric/4.4/lib/annotation-1.1.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/annotations-4.4-sources.jar b/common/robolectric/4.4/lib/annotations-4.4-sources.jar
new file mode 100644
index 0000000..fab488d
--- /dev/null
+++ b/common/robolectric/4.4/lib/annotations-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/annotations-4.4.jar b/common/robolectric/4.4/lib/annotations-4.4.jar
new file mode 100644
index 0000000..fe108db
--- /dev/null
+++ b/common/robolectric/4.4/lib/annotations-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/asm-6.0.jar b/common/robolectric/4.4/lib/asm-6.0.jar
new file mode 100644
index 0000000..cf2de27
--- /dev/null
+++ b/common/robolectric/4.4/lib/asm-6.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/asm-commons-6.0.jar b/common/robolectric/4.4/lib/asm-commons-6.0.jar
new file mode 100644
index 0000000..33ba0c4
--- /dev/null
+++ b/common/robolectric/4.4/lib/asm-commons-6.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/asm-tree-6.0.jar b/common/robolectric/4.4/lib/asm-tree-6.0.jar
new file mode 100644
index 0000000..2aa9815
--- /dev/null
+++ b/common/robolectric/4.4/lib/asm-tree-6.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/asm-util-6.0.jar b/common/robolectric/4.4/lib/asm-util-6.0.jar
new file mode 100644
index 0000000..9f9671c
--- /dev/null
+++ b/common/robolectric/4.4/lib/asm-util-6.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/auto-value-annotations-1.6.2.jar b/common/robolectric/4.4/lib/auto-value-annotations-1.6.2.jar
new file mode 100644
index 0000000..5f773d8
--- /dev/null
+++ b/common/robolectric/4.4/lib/auto-value-annotations-1.6.2.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/bcprov-jdk15on-1.65.jar b/common/robolectric/4.4/lib/bcprov-jdk15on-1.65.jar
new file mode 100644
index 0000000..32a83c7
--- /dev/null
+++ b/common/robolectric/4.4/lib/bcprov-jdk15on-1.65.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/checker-qual-2.5.2.jar b/common/robolectric/4.4/lib/checker-qual-2.5.2.jar
new file mode 100644
index 0000000..ae4e7f1
--- /dev/null
+++ b/common/robolectric/4.4/lib/checker-qual-2.5.2.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/commons-codec-1.3.jar b/common/robolectric/4.4/lib/commons-codec-1.3.jar
new file mode 100644
index 0000000..957b675
--- /dev/null
+++ b/common/robolectric/4.4/lib/commons-codec-1.3.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/commons-logging-1.1.1.jar b/common/robolectric/4.4/lib/commons-logging-1.1.1.jar
new file mode 100644
index 0000000..1deef14
--- /dev/null
+++ b/common/robolectric/4.4/lib/commons-logging-1.1.1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/error_prone_annotations-2.2.0.jar b/common/robolectric/4.4/lib/error_prone_annotations-2.2.0.jar
new file mode 100644
index 0000000..c8e27b5
--- /dev/null
+++ b/common/robolectric/4.4/lib/error_prone_annotations-2.2.0.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/failureaccess-1.0.1.jar b/common/robolectric/4.4/lib/failureaccess-1.0.1.jar
new file mode 100644
index 0000000..9b56dc7
--- /dev/null
+++ b/common/robolectric/4.4/lib/failureaccess-1.0.1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/guava-27.0.1-jre.jar b/common/robolectric/4.4/lib/guava-27.0.1-jre.jar
new file mode 100644
index 0000000..f164ce7
--- /dev/null
+++ b/common/robolectric/4.4/lib/guava-27.0.1-jre.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/httpclient-4.0.3.jar b/common/robolectric/4.4/lib/httpclient-4.0.3.jar
new file mode 100644
index 0000000..16e349a
--- /dev/null
+++ b/common/robolectric/4.4/lib/httpclient-4.0.3.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/httpcore-4.0.1.jar b/common/robolectric/4.4/lib/httpcore-4.0.1.jar
new file mode 100644
index 0000000..4aef35e
--- /dev/null
+++ b/common/robolectric/4.4/lib/httpcore-4.0.1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/icu4j-53.1.jar b/common/robolectric/4.4/lib/icu4j-53.1.jar
new file mode 100644
index 0000000..2c3ff8b
--- /dev/null
+++ b/common/robolectric/4.4/lib/icu4j-53.1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/j2objc-annotations-1.1.jar b/common/robolectric/4.4/lib/j2objc-annotations-1.1.jar
new file mode 100644
index 0000000..4b6f127
--- /dev/null
+++ b/common/robolectric/4.4/lib/j2objc-annotations-1.1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/javax.annotation-api-1.3.2.jar b/common/robolectric/4.4/lib/javax.annotation-api-1.3.2.jar
new file mode 100644
index 0000000..a8a470a
--- /dev/null
+++ b/common/robolectric/4.4/lib/javax.annotation-api-1.3.2.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/javax.inject-1.jar b/common/robolectric/4.4/lib/javax.inject-1.jar
new file mode 100644
index 0000000..b2a9d0b
--- /dev/null
+++ b/common/robolectric/4.4/lib/javax.inject-1.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/jsr305-3.0.2.jar b/common/robolectric/4.4/lib/jsr305-3.0.2.jar
new file mode 100644
index 0000000..59222d9
--- /dev/null
+++ b/common/robolectric/4.4/lib/jsr305-3.0.2.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/junit-4.4-sources.jar b/common/robolectric/4.4/lib/junit-4.4-sources.jar
new file mode 100644
index 0000000..1848597
--- /dev/null
+++ b/common/robolectric/4.4/lib/junit-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/junit-4.4.jar b/common/robolectric/4.4/lib/junit-4.4.jar
new file mode 100644
index 0000000..c28f0dc
--- /dev/null
+++ b/common/robolectric/4.4/lib/junit-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/common/robolectric/4.4/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
new file mode 100644
index 0000000..45832c0
--- /dev/null
+++ b/common/robolectric/4.4/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/monitor-1.3.0-rc03.aar b/common/robolectric/4.4/lib/monitor-1.3.0-rc03.aar
new file mode 100644
index 0000000..69841db
--- /dev/null
+++ b/common/robolectric/4.4/lib/monitor-1.3.0-rc03.aar
Binary files differ
diff --git a/common/robolectric/4.4/lib/pluginapi-4.4-sources.jar b/common/robolectric/4.4/lib/pluginapi-4.4-sources.jar
new file mode 100644
index 0000000..086467b
--- /dev/null
+++ b/common/robolectric/4.4/lib/pluginapi-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/pluginapi-4.4.jar b/common/robolectric/4.4/lib/pluginapi-4.4.jar
new file mode 100644
index 0000000..f16d361
--- /dev/null
+++ b/common/robolectric/4.4/lib/pluginapi-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4-sources.jar b/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4-sources.jar
new file mode 100644
index 0000000..d9bcf02
--- /dev/null
+++ b/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4.jar b/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4.jar
new file mode 100644
index 0000000..151c712
--- /dev/null
+++ b/common/robolectric/4.4/lib/plugins-maven-dependency-resolver-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/resources-4.4-sources.jar b/common/robolectric/4.4/lib/resources-4.4-sources.jar
new file mode 100644
index 0000000..f23fef7
--- /dev/null
+++ b/common/robolectric/4.4/lib/resources-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/resources-4.4.jar b/common/robolectric/4.4/lib/resources-4.4.jar
new file mode 100644
index 0000000..d578c63
--- /dev/null
+++ b/common/robolectric/4.4/lib/resources-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/robolectric-4.4-sources.jar b/common/robolectric/4.4/lib/robolectric-4.4-sources.jar
new file mode 100644
index 0000000..c738f8b
--- /dev/null
+++ b/common/robolectric/4.4/lib/robolectric-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/robolectric-4.4.jar b/common/robolectric/4.4/lib/robolectric-4.4.jar
new file mode 100644
index 0000000..0006986
--- /dev/null
+++ b/common/robolectric/4.4/lib/robolectric-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/sandbox-4.4-sources.jar b/common/robolectric/4.4/lib/sandbox-4.4-sources.jar
new file mode 100644
index 0000000..4cd75cd
--- /dev/null
+++ b/common/robolectric/4.4/lib/sandbox-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/sandbox-4.4.jar b/common/robolectric/4.4/lib/sandbox-4.4.jar
new file mode 100644
index 0000000..f39f7bf
--- /dev/null
+++ b/common/robolectric/4.4/lib/sandbox-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadowapi-4.4-sources.jar b/common/robolectric/4.4/lib/shadowapi-4.4-sources.jar
new file mode 100644
index 0000000..2c32cf2
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadowapi-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadowapi-4.4.jar b/common/robolectric/4.4/lib/shadowapi-4.4.jar
new file mode 100644
index 0000000..be685df
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadowapi-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadows-framework-4.4.jar b/common/robolectric/4.4/lib/shadows-framework-4.4.jar
new file mode 100644
index 0000000..c8d8d3b
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadows-framework-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadows-httpclient-4.4.jar b/common/robolectric/4.4/lib/shadows-httpclient-4.4.jar
new file mode 100644
index 0000000..375e814
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadows-httpclient-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadows-multidex-4.4.jar b/common/robolectric/4.4/lib/shadows-multidex-4.4.jar
new file mode 100644
index 0000000..2576bc4
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadows-multidex-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadows-playservices-4.4.jar b/common/robolectric/4.4/lib/shadows-playservices-4.4.jar
new file mode 100644
index 0000000..b86db72
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadows-playservices-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/shadows-supportv4-4.4.jar b/common/robolectric/4.4/lib/shadows-supportv4-4.4.jar
new file mode 100644
index 0000000..8d6d5ec
--- /dev/null
+++ b/common/robolectric/4.4/lib/shadows-supportv4-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/sqlite4java-0.282.jar b/common/robolectric/4.4/lib/sqlite4java-0.282.jar
new file mode 100644
index 0000000..686098f
--- /dev/null
+++ b/common/robolectric/4.4/lib/sqlite4java-0.282.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/utils-4.4-sources.jar b/common/robolectric/4.4/lib/utils-4.4-sources.jar
new file mode 100644
index 0000000..3c8dbb2
--- /dev/null
+++ b/common/robolectric/4.4/lib/utils-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/utils-4.4.jar b/common/robolectric/4.4/lib/utils-4.4.jar
new file mode 100644
index 0000000..b4add6a
--- /dev/null
+++ b/common/robolectric/4.4/lib/utils-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/utils-reflector-4.4-sources.jar b/common/robolectric/4.4/lib/utils-reflector-4.4-sources.jar
new file mode 100644
index 0000000..6248651
--- /dev/null
+++ b/common/robolectric/4.4/lib/utils-reflector-4.4-sources.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/utils-reflector-4.4.jar b/common/robolectric/4.4/lib/utils-reflector-4.4.jar
new file mode 100644
index 0000000..73f554d
--- /dev/null
+++ b/common/robolectric/4.4/lib/utils-reflector-4.4.jar
Binary files differ
diff --git a/common/robolectric/4.4/lib/vtd-xml-2.11.jar b/common/robolectric/4.4/lib/vtd-xml-2.11.jar
new file mode 100644
index 0000000..ecf0e2f
--- /dev/null
+++ b/common/robolectric/4.4/lib/vtd-xml-2.11.jar
Binary files differ
diff --git a/common/robolectric/4.4/list_failed.sh b/common/robolectric/4.4/list_failed.sh
new file mode 100755
index 0000000..1000ae1
--- /dev/null
+++ b/common/robolectric/4.4/list_failed.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# This script lists the tests which are failing in the output of Robolectric
+# tests.
+# TODO: Remove this script and move the functionality into a custom JUnit runner.
+
+# Matches the line specifying which test has failed and matches the test name
+# and class name as the first and second matching group, respectively.
+readonly FAILED_TEST_RE='^[1-9][0-9]*)\s\(\w\+\)(\(\(\w\|.\)\+\))$'
+
+# Fails with a message.
+function fatal() {
+  echo 1>&2 "FATAL: $@"
+  exit 113
+}
+
+function main() {
+  test $# = 0 || fatal "Too many arguments: $@"
+
+  sed -e '1,/^There \(was 1 failure\|were [0-9]* failures\):$/d' |
+      grep "$FAILED_TEST_RE" |
+      sed -e "s/$FAILED_TEST_RE/\2.\1/" ||
+      true
+}
+
+set -e
+set -o pipefail
+main "$@"
diff --git a/common/robolectric/4.4/report-internal.mk b/common/robolectric/4.4/report-internal.mk
new file mode 100644
index 0000000..4989632
--- /dev/null
+++ b/common/robolectric/4.4/report-internal.mk
@@ -0,0 +1,49 @@
+# Defines a target named $(my_target) for generating a coverage report.
+
+my_report_dir := $(my_coverage_dir)/reports
+my_coverage_output := $(my_report_dir)/coverage.xml
+
+# Private variables.
+$(my_coverage_output): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_coverage_output): PRIVATE_COVERAGE_FILE := $(my_coverage_file)
+$(my_coverage_output): PRIVATE_COVERAGE_SRCS_JARS := $(my_coverage_srcs_jars)
+$(my_coverage_output): PRIVATE_INSTRUMENT_SOURCE_DIRS := $(my_instrument_source_dirs)
+$(my_coverage_output): PRIVATE_COVERAGE_REPORT_CLASS := $(my_coverage_report_class)
+$(my_coverage_output): PRIVATE_COVERAGE_REPORT_JAR := $(my_coverage_report_jar)
+$(my_coverage_output): PRIVATE_REPORT_DIR := $(my_report_dir)
+
+# Generate the coverage report.
+$(my_coverage_output): $(my_collect_file) $(my_coverage_report_jar)
+	$(hide) rm -rf $(PRIVATE_REPORT_DIR)
+	$(hide) mkdir -p $(PRIVATE_REPORT_DIR)
+	$(hide) $(JAVA) \
+			-cp $(PRIVATE_COVERAGE_REPORT_JAR) \
+			$(PRIVATE_COVERAGE_REPORT_CLASS) \
+			-classpath $(strip $(call normalize-path-list, $(PRIVATE_COVERAGE_SRCS_JARS))) \
+			--exec-file $(PRIVATE_COVERAGE_FILE) \
+			--name $(PRIVATE_MODULE) \
+			--report-dir $(PRIVATE_REPORT_DIR)/ \
+			--srcs $(strip $(call normalize-path-list, $(PRIVATE_INSTRUMENT_SOURCE_DIRS))) \
+			>$(PRIVATE_REPORT_DIR)/reporter.txt 2>&1
+	@echo "Coverage report: file://"$(realpath $(PRIVATE_REPORT_DIR))"/index.html"
+
+
+# Generate a ZIP file of the coverage report.
+my_coverage_output_zip := $(my_coverage_dir)/report-html.zip
+
+$(my_coverage_output_zip): PRIVATE_REPORT_DIR := $(my_report_dir)
+$(my_coverage_output_zip): $(my_coverage_output)
+	$(hide) cd $(PRIVATE_REPORT_DIR) && zip --quiet -r $(PWD)/$@ .
+
+# Add coverage report zip to dist files.
+$(call dist-for-goals, $(my_report_target), \
+    $(my_coverage_output_zip):robotests-coverage/$(LOCAL_MODULE)/robolectric-html-coverage.zip \
+    $(my_coverage_output):robotests-coverage/$(LOCAL_MODULE)/robolectric-coverage.xml)
+
+# Running the coverage will always generate the report.
+$(my_target): $(my_coverage_output)
+
+# Reset local variables.
+my_coverage_output :=
+my_coverage_output_zip :=
+my_report_dir :=
diff --git a/common/robolectric/4.4/robotest-internal.mk b/common/robolectric/4.4/robotest-internal.mk
new file mode 100644
index 0000000..f8e4470
--- /dev/null
+++ b/common/robolectric/4.4/robotest-internal.mk
@@ -0,0 +1,97 @@
+# Defines a target named $(my_target) for running robolectric tests.
+
+# Running the tests is done in two stages: we first generate the test output to
+# $(my_target_output), which is also added to the dist list, and store the
+# return value of running the tests in $(my_target_retval). After that we
+# process the output and return value as part of $(my_target). This is needed
+# to make sure that we can install the test output even if the tests actually
+# fail.
+
+# Files in which to store the output and return value of the tests.
+my_target_xml := $(intermediates)/$(my_filename_stem)-output.xml
+my_target_output := $(intermediates)/$(my_filename_stem)-output.txt
+my_target_retval := $(intermediates)/$(my_filename_stem)-retval.txt
+
+# We should always re-run the tests, even if nothing has changed.
+# So until the build system has a dedicated "no cache" option, claim
+# to write a file that is never produced.
+my_target_nocache := $(intermediates)/$(my_filename_stem)-nocache
+
+# Private variables.
+$(my_target_output): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_target_output): PRIVATE_TESTS := $(my_tests)
+$(my_target_output): PRIVATE_JARS := $(my_jars)
+$(my_target_output): PRIVATE_JAVA_ARGS := $(my_java_args)
+$(my_target_output): PRIVATE_ROBOLECTRIC_PATH := $(my_robolectric_path)
+$(my_target_output): PRIVATE_ROBOLECTRIC_SCRIPT_PATH := $(my_robolectric_script_path)
+$(my_target_output): PRIVATE_TARGET_MESSAGE := $(my_target_message)
+$(my_target_output): PRIVATE_TARGET_OUTPUT := $(my_target_output)
+$(my_target_output): PRIVATE_TARGET_RETVAL := $(my_target_retval)
+$(my_target_output): PRIVATE_TARGET_NOCACHE := $(my_target_nocache)
+$(my_target_output): PRIVATE_TIMEOUT := $(my_timeout)
+# Pin java binary to 8 or 9, the highest robolectric 3.6.1 and ASM 6.0 support:
+$(my_target_output): PRIVATE_JAVA_PATH := $(if $(my_use_java8),$(ANDROID_JAVA8_HOME)/bin:,$(ANDROID_JAVA9_HOME)/bin:)
+$(my_target_output): PRIVATE_XML_OUTPUT_FILE := $(my_target_xml)
+$(my_target_output): .KATI_IMPLICIT_OUTPUTS := $(my_target_xml) $(my_target_retval) $(my_target_nocache)
+# Runs the Robolectric tests and saves the output and return value.
+$(my_target_output): $(my_jars)
+	@echo "host Robolectric: $(PRIVATE_MODULE)"
+	# Run `touch` to always create the output XML file, so the build doesn't break even if the
+	# runner failed to create the XML output
+	$(hide) touch "$(PRIVATE_XML_OUTPUT_FILE)"
+	$(hide) rm -f "$(PRIVATE_TARGET_NOCACHE)"
+	$(hide) \
+	  PRIVATE_INTERMEDIATES="$(dir $@)" \
+	  PRIVATE_JARS="$(PRIVATE_JARS)" \
+	  PRIVATE_JAVA_ARGS="$(PRIVATE_JAVA_ARGS)" \
+	  PRIVATE_ROBOLECTRIC_PATH="$(PRIVATE_ROBOLECTRIC_PATH)" \
+	  PRIVATE_ROBOLECTRIC_SCRIPT_PATH="$(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)" \
+	  PRIVATE_RUN_INDIVIDUALLY="$(ROBOTEST_RUN_INDIVIDUALLY)" \
+	  PRIVATE_TARGET_MESSAGE="$(PRIVATE_TARGET_MESSAGE)" \
+	  PRIVATE_TIMEOUT="$(PRIVATE_TIMEOUT)" \
+	  PRIVATE_TESTS="$(PRIVATE_TESTS)" \
+	  XML_OUTPUT_FILE="$(PRIVATE_XML_OUTPUT_FILE)" \
+	  TEST_WORKSPACE="$(PRIVATE_MODULE)" \
+	  PATH=$(PRIVATE_JAVA_PATH)$${PATH} \
+	  $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/wrapper.sh \
+	    "$(PRIVATE_MODULE)" \
+	    "$(PRIVATE_TARGET_OUTPUT)" \
+	    "$(PRIVATE_TARGET_RETVAL)" \
+	    wrap \
+	    $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/robotest.sh
+
+# Private variables.
+$(my_target): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_target): PRIVATE_TARGET_OUTPUT := $(my_target_output)
+$(my_target): PRIVATE_TARGET_RETVAL := $(my_target_retval)
+$(my_target): PRIVATE_FAILURE_FATAL := $(my_failure_fatal)
+$(my_target): PRIVATE_ROBOLECTRIC_SCRIPT_PATH := $(my_robolectric_script_path)
+# Process the output and the return value of the tests. This will fail if the
+# return value is non-zero.
+$(my_target): $(my_target_output) $(my_target_xml)
+	$(hide) \
+	  result=0; \
+	  $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/wrapper.sh \
+	    "$(PRIVATE_MODULE)" \
+	    "$(PRIVATE_TARGET_OUTPUT)" \
+	    "$(PRIVATE_TARGET_RETVAL)" \
+	    eval \
+	      || result=$$?; \
+	  if [ "$(strip $(PRIVATE_FAILURE_FATAL))" = true ]; then \
+	    exit "$$result"; \
+	  fi
+	$(hide) touch $@
+
+# Add the output of the tests to the dist list, so that we will include it even
+# if the tests fail.
+$(call dist-for-goals, $(my_phony_target), \
+    $(my_target_output):robotests/$(LOCAL_MODULE)-$(notdir $(my_target_output)) \
+    $(my_target_xml):robotests/$(LOCAL_MODULE)-$(notdir $(my_target_xml)))
+
+# Clean up local variables.
+my_target_output :=
+my_target_retval :=
+my_target_xml :=
+my_target_nocache :=
+my_filename_stem :=
+my_use_java8 :=
diff --git a/common/robolectric/4.4/robotest.sh b/common/robolectric/4.4/robotest.sh
new file mode 100755
index 0000000..160b533
--- /dev/null
+++ b/common/robolectric/4.4/robotest.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+#
+# Runs robolectric tests.
+
+set -euo pipefail
+
+# Terminate with a fatal error.
+function fatal() {
+  echo "Fatal: $*"
+  exit 113
+}
+
+# Ensures that the given variable is set.
+function validate_var() {
+  local name="$1"; shift || fatal "Missing argument: name"
+  test $# = 0 || fatal "Too many arguments"
+
+  eval [[ -n \${${name}+dummy} ]] || {
+    echo "Variable not set: $name";
+    return 1;
+  }
+}
+
+# Ensures that all the required variables are set.
+function validate_vars() {
+  test $# = 0 || fatal "Too many arguments"
+
+  validate_var 'PRIVATE_INTERMEDIATES'
+  validate_var 'PRIVATE_JARS'
+  validate_var 'PRIVATE_JAVA_ARGS'
+  validate_var 'PRIVATE_ROBOLECTRIC_PATH'
+  validate_var 'PRIVATE_ROBOLECTRIC_SCRIPT_PATH'
+  validate_var 'PRIVATE_RUN_INDIVIDUALLY'
+  validate_var 'PRIVATE_TARGET_MESSAGE'
+  validate_var 'PRIVATE_TESTS'
+  validate_var 'PRIVATE_TIMEOUT'
+
+  validate_var 'XML_OUTPUT_FILE'
+  validate_var 'TEST_WORKSPACE'
+}
+
+# Remove leading and trailing spaces around the given argument.
+function strip() {
+  local value="$1"; shift || fatal "Missing argument: value"
+  test $# = 0 || fatal "Too many arguments"
+
+  echo "$value" | sed -e 's/^ *//' -e 's/ *$//'
+}
+
+# Normalizes a list of paths and turns it into a colon-separated list.
+function normalize-path-list() {
+  echo "$@" | sed -e 's/^ *//' -e 's/ *$//' -e 's/  */ /g' -e 's/ /:/g'
+}
+
+function junit() {
+  # This adds the lib folder to the cp.
+  local classpath="$(strip "$(normalize-path-list "${PRIVATE_JARS}")")"
+  local command=(
+    "${PRIVATE_ROBOLECTRIC_SCRIPT_PATH}/java-timeout"
+    "${PRIVATE_TIMEOUT}"
+    ${PRIVATE_JAVA_ARGS}
+    -Drobolectric.dependency.dir="${PRIVATE_ROBOLECTRIC_PATH}"
+    -Drobolectric.offline=true
+    -Drobolectric.logging=stdout
+    -cp "$classpath"
+    com.android.junitxml.JUnitXmlRunner
+  )
+  echo "${command[@]}" "$@"
+  "${command[@]}" "$@"
+}
+
+function runtests() {
+  local tests="$1"; shift || fatal "Missing argument: tests"
+  test $# = 0 || fatal "Too many arguments"
+
+  if [[ "$(strip "${PRIVATE_RUN_INDIVIDUALLY}")" = 'true' ]]; then
+    local result=0
+    for test in ${tests}; do
+      echo "-------------------------------------------------------------------"
+      echo "Running $test:"
+      junit "${test}"
+    done
+    return "$result"
+  else
+    echo "-------------------------------------------------------------------"
+    echo "Running $tests:"
+    junit $tests  # Contains a space-separated list of tests.
+  fi
+}
+
+# Run the robolectric tests
+function run() {
+  test $# = 0 || fatal "Too many arguments"
+
+  [ "${PRIVATE_TARGET_MESSAGE}" == '' ] || echo "${PRIVATE_TARGET_MESSAGE}"
+  local tests="${PRIVATE_TESTS}"
+  if [ "$tests" = '' ]; then
+    # Somehow there are no tests to run. Assume this is failure.
+    echo "No tests to run."
+    exit 1
+  fi
+  local output="${PRIVATE_INTERMEDIATES}/output.out"
+  local failed="${PRIVATE_INTERMEDIATES}/failed.out"
+  local result=0
+  runtests "${tests}" >"$output" 2>&1 || result="$?"
+  echo "$output"
+  cat "$output"
+  if [ "$result" = 0 ]; then
+    return "$result"
+  fi
+  "${PRIVATE_ROBOLECTRIC_SCRIPT_PATH}/list_failed.sh" <"$output" >"$failed"
+  return "$result"
+}
+
+function main() {
+  test $# = 0 || fatal "Too many arguments"
+
+  validate_vars
+  run
+}
+
+main "$@"
diff --git a/common/robolectric/4.4/run_robotests.mk b/common/robolectric/4.4/run_robotests.mk
new file mode 100644
index 0000000..0001ea1
--- /dev/null
+++ b/common/robolectric/4.4/run_robotests.mk
@@ -0,0 +1,231 @@
+# Rules for running robolectric tests.
+#
+# Uses the following variables:
+#
+#   LOCAL_JAVA_LIBRARIES
+#   LOCAL_STATIC_JAVA_LIBRARIES
+#   LOCAL_ROBOTEST_FAILURE_FATAL
+#   LOCAL_ROBOTEST_TIMEOUT
+#   LOCAL_TEST_PACKAGE
+#   LOCAL_ROBOTEST_FILES
+#   ROBOTEST_FAILURE_FATAL
+#   ROBOTEST_FILTER
+#   ROBOTEST_RUN_INDIVIDUALLY
+#
+#
+# If ROBOTEST_FAILURE_FATAL is set to true then failing tests will cause a
+# build failure. Otherwise failures will be logged but ignored by make.
+#
+# If ROBOTEST_FILTER is set to a regex then only tests matching that pattern
+# will be run. This currently only works at the class level.
+#
+# TODO: Switch to a JUnit runner which can support method-level test
+# filtering and use that rather than grep to implement ROBOTEST_FILTER.
+#
+# If ROBOTEST_RUN_INDIVIDUALLY is set to true, each test class will be run by a
+# different JVM, preventing any interaction between different tests. This is
+# significantly slower than running all tests within the same JVM, but prevents
+# unwanted interactions.
+#
+# Tests classes are found by looking for *Test.java files in
+# LOCAL_PATH recursively.
+
+################################################
+# General settings, independent of the module. #
+################################################
+
+### Used for running tests.
+
+# Where to find Robolectric.
+my_robolectric_script_path := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
+# Explicitly define the jars and their classpath ordering.
+include $(my_robolectric_script_path)/classpath_jars.mk
+my_robolectric_jars := \
+    $(addprefix $(my_robolectric_script_path)/,$(my_robolectric_runtime_deps)) \
+    $(call java-lib-files,junit)
+
+my_collect_target := $(LOCAL_MODULE)-coverage
+my_report_target := $(LOCAL_MODULE)-jacoco
+.PHONY: $(my_collect_target) $(my_report_target)
+# Whether or not to ignore the result of running the robotests.
+# LOCAL_ROBOTEST_FAILURE_FATAL will take precedence over ROBOTEST_FAILURE_FATAL,
+# if present.
+my_failure_fatal := $(if $(LOCAL_ROBOTEST_FAILURE_FATAL)$(ROBOTEST_FAILURE_FATAL),true,false)
+# The timeout for the command. A value of '0' means no timeout. The default is
+# 10 minutes.
+my_timeout := $(if $(LOCAL_ROBOTEST_TIMEOUT),$(LOCAL_ROBOTEST_TIMEOUT),600)
+# Command to filter the list of test classes.
+# If not specified, defaults to including all the tests.
+my_test_filter_command := $(if $(ROBOTEST_FILTER),grep -E "$(ROBOTEST_FILTER)",cat)
+
+# The directory containing the sources.
+my_instrument_makefile_dir := $(dir $(ALL_MODULES.$(LOCAL_TEST_PACKAGE).MAKEFILE))
+my_instrument_source_dirs := $(if $(LOCAL_INSTRUMENT_SOURCE_DIRS),\
+    $(LOCAL_INSTRUMENT_SOURCE_DIRS),\
+    $(my_instrument_makefile_dir)src $(my_instrument_makefile_dir)java)
+
+##########################
+# Used by base_rules.mk. #
+##########################
+
+LOCAL_MODULE_CLASS := ROBOLECTRIC
+# This is actually a phony target that is never built.
+LOCAL_BUILT_MODULE_STEM := test.fake
+# Since it is not built, it cannot be installed. But we will define our own
+# dist files, depending on which of the specific targets is invoked.
+LOCAL_UNINSTALLABLE_MODULE := true
+# Do not build it for checkbuild or mma
+LOCAL_DONT_CHECK_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+
+#############################
+# Module specific settings. #
+#############################
+
+### Used for running tests.
+
+# The list of test classes. Robolectric requires an explicit list of tests to
+# run, which is compiled from the Java files ending in "Test" within the
+# directory from which this module is invoked.
+ifeq ($(strip $(LOCAL_ROBOTEST_FILES)),)
+    LOCAL_ROBOTEST_FILES := $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.)
+endif
+# Convert the paths into package names by removing .java extension and replacing "/" with "."
+my_tests := $(subst /,.,$(basename $(LOCAL_ROBOTEST_FILES)))
+my_tests := $(sort $(shell echo '$(my_tests)' | tr ' ' '\n' | $(my_test_filter_command)))
+# The source jars containing the tests.
+my_srcs_jars := \
+    $(foreach lib, \
+        $(LOCAL_JAVA_LIBRARIES) $(LOCAL_STATIC_JAVA_LIBRARIES), \
+        $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/classes-pre-proguard.jar) \
+    $(foreach lib, \
+        $(LOCAL_TEST_PACKAGE), \
+        $(call intermediates-dir-for,APPS,$(lib),,COMMON)/classes-pre-proguard.jar)
+# The jars needed to run the tests.
+my_jars := \
+    $(my_robolectric_jars) \
+    $(call resolve-prebuilt-sdk-jar-path,$(if $(LOCAL_SDK_VERSION),$(LOCAL_SDK_VERSION),current)) \
+    $(call java-lib-files,junitxml) \
+    $(my_srcs_jars)
+
+
+
+# Run tests.
+my_phony_target := $(LOCAL_MODULE)
+my_target := $(LOCAL_BUILT_MODULE)
+my_filename_stem := test
+
+android_all_lib_path := $(my_robolectric_script_path)/../android-all
+my_robolectric_path := $(intermediates.COMMON)/android-all
+android_all_jars := $(call find-files-in-subdirs,$(android_all_lib_path),*.jar,.)
+copy_android_all_jars := $(foreach j,$(android_all_jars),\
+    $(android_all_lib_path)/$(j):$(my_robolectric_path)/$(j))
+$(my_robolectric_path): $(call copy-many-files,$(copy_android_all_jars))
+$(my_target): $(my_robolectric_path)
+
+# Setting the DEBUG_ROBOLECTRIC environment variable will print additional logging from
+# Robolectric and also make it wait for a debugger to be connected.
+# For Android Studio / IntelliJ the debugger can be connected via the "remote" configuration:
+#     https://www.jetbrains.com/help/idea/2016.2/run-debug-configuration-remote.html
+# From command line the debugger can be connected via
+#     jdb -attach localhost:5005
+ifdef DEBUG_ROBOLECTRIC
+    # The arguments to the JVM needed to debug the tests.
+    # - server: wait for connection rather than connecting to a debugger
+    # - transport: how to accept debugger connections (sockets)
+    # - address: the port on which to accept debugger connections
+    # - timeout: how long (in ms) to wait for a debugger to connect
+    # - suspend: do not start running any code until the debugger connects
+    my_java_args := \
+        -Drobolectric.logging.enabled=true \
+        -Xdebug -agentlib:jdwp=server=y,transport=dt_socket,address=localhost:5005,suspend=y
+
+    # Remove the timeout so Robolectric doesn't get killed while debugging
+    my_timeout := 0
+endif
+
+include $(my_robolectric_script_path)/robotest-internal.mk
+# clean local variables
+my_java_args :=
+my_phony_target :=
+my_target :=
+
+# Target for running robolectric tests using jacoco
+my_phony_target := $(my_report_target)
+my_target := $(LOCAL_BUILT_MODULE)-coverage
+my_collect_file := $(my_target)
+my_filename_stem := coverage
+$(my_collect_target): $(my_target)
+$(my_target): $(call java-lib-files,jvm-jacoco-agent,true) $(my_robolectric_path)
+
+my_coverage_dir := $(intermediates)/coverage
+my_coverage_file := $(my_coverage_dir)/jacoco.exec
+
+# List of packages to exclude jacoco from running
+my_jacoco_excludes := \
+    org.robolectric.* \
+    org.mockito.* \
+    org.junit.* \
+    org.objectweb.* \
+    com.thoughtworks.xstream.*
+# The Jacoco agent JAR.
+my_jacoco_agent_jar := $(call java-lib-files,jvm-jacoco-agent,true)
+# Using Jacoco with Robolectric is broken in 0.7.3 <= version < 0.7.6.
+# In 0.7.6 or above, the parameter "inclnolocationclasses" is needed.
+# See https://github.com/jacoco/jacoco/pull/288 for more
+# In JDK9, if "inclnolocationclasses" is used, we also need to specify
+# exclclassloader=jdk.internal.reflect.DelegatingClassLoader
+# https://github.com/jacoco/jacoco/issues/16
+my_jacoco_agent_args = \
+    destfile=$(my_coverage_file) \
+    excludes=$(call normalize-path-list, $(my_jacoco_excludes)) \
+    inclnolocationclasses=true \
+    exclclassloader=jdk.internal.reflect.DelegatingClassLoader \
+    append=false
+my_java_args := \
+    -javaagent:$(my_jacoco_agent_jar)=$(call normalize-comma-list, $(my_jacoco_agent_args))
+include $(my_robolectric_script_path)/robotest-internal.mk
+# Clear temporary variables
+my_failure_fatal :=
+my_jacoco_agent_jar :=
+my_jacoco_agent_args :=
+my_jacoco_excludes :=
+my_java_args :=
+my_phony_target :=
+my_robolectric_jars :=
+my_target :=
+my_tests :=
+my_filename_stem :=
+
+# Target for generating code coverage reports using jacoco.exec
+my_target := $(LOCAL_BUILT_MODULE)-jacoco
+$(my_report_target): $(my_target)
+
+# The JAR file containing the report generation tool.
+my_coverage_report_class := com.google.android.jacoco.reporter.ReportGenerator
+my_coverage_report_jar := $(call java-lib-files,jvm-jacoco-reporter,true)
+my_coverage_srcs_jars := $(my_srcs_jars)
+my_coverage_report_dist_file := $(my_report_target)-html.zip
+
+## jacoco code coverage reports
+include $(my_robolectric_script_path)/report-internal.mk
+# Clear temporary variables
+my_coverage_dir :=
+my_coverage_file :=
+my_coverage_report_class :=
+my_coverage_report_dist_file :=
+my_coverage_report_jar :=
+my_coverage_srcs_jars :=
+my_robolectric_script_path :=
+my_robolectric_path :=
+my_srcs_jars :=
+my_target :=
+my_collect_file :=
+
+# Clear local variables specific to this build.
+LOCAL_ROBOTEST_FAILURE_FATAL :=
+LOCAL_ROBOTEST_TIMEOUT :=
+LOCAL_ROBOTEST_FILES :=
+LOCAL_INSTRUMENT_SOURCE_DIRS :=
diff --git a/common/robolectric/4.4/wrapper.sh b/common/robolectric/4.4/wrapper.sh
new file mode 100755
index 0000000..8d74246
--- /dev/null
+++ b/common/robolectric/4.4/wrapper.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# A simple script to wrap the execution of a command so that it stores its
+# output and return value into a file and then process it to later on.
+#
+# This is meant to be used in a makefile, specifically to allow for the output
+# of a command to be stored in a file and added to the dist list, even if the
+# command actually failed.
+#
+# For example, your makefile might include:
+#
+# my_target := lint
+# my_target_output := $(OUT_DIR)/lint-output.txt
+# my_target_retval := $(OUT_DIR)/lint-retval.txt
+#
+# $(my_target_output) $(my_target_retval): PRIVATE_MODULE := $(my_target)
+# $(my_target_output) $(my_target_retval): PRIVATE_OUTPUT := $(my_target_output)
+# $(my_target_output) $(my_target_retval): PRIVATE_RETVAL := $(my_target_retval)
+# $(my_target_output) $(my_target_retval):
+#         $(PATH)/wrapper.sh \
+#           $(PRIVATE_MODULE) \
+#           $(PRIVATE_OUTPUT) \
+#           $(PRIVATE_RETVAL) \
+#           wrap \
+#           $(PATH)/run-list.sh $(LOCAL_PATH)/src
+#
+# $(my_target): PRIVATE_MODULE := $(my_target)
+# $(my_target): PRIVATE_OUTPUT := $(my_target_output)
+# $(my_target): PRIVATE_RETVAL := $(my_target_retval)
+# $(my_target): $(my_target_output) $(my_target_retval)
+#         $(PATH)/wrapper.sh \
+#           $(PRIVATE_MODULE) \
+#           $(PRIVATE_OUTPUT) \
+#           $(PRIVATE_RETVAL) \
+#           eval
+
+set -euo pipefail
+
+# Terminate with a fatal error.
+function fatal() {
+  echo "Fatal: $*"
+  exit 113
+}
+
+function main() {
+  local module="${1-}"; shift || fatal "missing argument: module"
+  local output="${1-}"; shift || fatal "missing argument: output"
+  local retval="${1-}"; shift || fatal "missing argument: retval"
+  local action="${1-}"; shift || fatal "missing argument: action"
+  # The rest of the arguments are the command to run.
+
+  if [ "$action" = 'wrap' ]; then
+    # Run the command specified by the rest of arguments ("$@") and save output
+    # and return value.
+    echo 0 >"${retval}"
+    "$@" >"${output}" 2>&1 || echo "$?" >"${retval}"
+
+    # Wrapping itself is always successful.
+    return
+  elif [ "$action" = 'eval' ]; then
+    local result="$(cat "${retval}")"
+    if [ "$result" = 0 ]; then
+      # If successful only print the last few lines.
+      tail -n 5 "$output" | sed -e "s/^/${module}: /"
+    else
+      # Print the entire output on failure.
+      cat "$output" | sed -e "s/^/${module}: /"
+    fi
+    # Evaluating returns the stored return value.
+    return "$result"
+  else
+    fatal "invalid action: $action"
+  fi
+}
+
+main "$@"
diff --git a/common/robolectric/4.4/wrapper_test.sh b/common/robolectric/4.4/wrapper_test.sh
new file mode 100755
index 0000000..42a04c5
--- /dev/null
+++ b/common/robolectric/4.4/wrapper_test.sh
@@ -0,0 +1,172 @@
+#!/bin/bash
+#
+# Tests for wrapper.sh.
+
+set -euo pipefail
+
+# The location of the script under test.
+readonly WRAPPER="$(realpath "$(dirname "$0")/wrapper.sh")"
+# The name of the tests to run. Each test correspond to a function in this file
+# whose name is the name of the test prefixed by 'test'.
+readonly TEST_NAMES=(
+  SuccessfulCase
+  FailedCase
+  FailedSignalCase
+)
+
+# Fails with an error message.
+function fatal() {
+  echo 1>&2 "FATAL: $@"
+  exit 113
+}
+
+function withTestFiles() {
+  (
+    echo '1'
+    echo '2'
+    echo '3'
+    echo '4'
+    echo '5'
+    echo '6'
+    echo '7'
+  ) >testfile
+  (
+    echo 'module: 1'
+    echo 'module: 2'
+    echo 'module: 3'
+    echo 'module: 4'
+    echo 'module: 5'
+    echo 'module: 6'
+    echo 'module: 7'
+  ) >testfileWithModule
+  (
+    echo 'module: 3'
+    echo 'module: 4'
+    echo 'module: 5'
+    echo 'module: 6'
+    echo 'module: 7'
+  ) >testfileWithModuleTruncated
+}
+
+function expectNoWrapOutput() {
+  if [ "$(cat output-wrap)" != '' ]; then
+    echo 'Wrap should not generate any output'
+    diff testfile output || true
+    return 1
+  fi
+}
+
+function expectSavedOutput() {
+  if ! diff testfile output; then
+    echo 'Should have saved the correct output'
+    diff testfile output || true
+    return 1
+  fi
+}
+
+function expectFullOutputWithModule() {
+  if ! diff testfileWithModule output-eval; then
+    echo 'Should have printed the full output'
+    diff testfileWithModule output || true
+    return 1
+  fi
+}
+
+function expectTruncatedOutputWithModule() {
+  if ! diff testfileWithModuleTruncated output-eval; then
+    echo 'Should have printed the truncated output'
+    diff testfileWithModuleTruncated output || true
+    return 1
+  fi
+}
+
+function whenWrap() {
+  "$WRAPPER" module "$PWD/output" "$PWD/retval" 'wrap' "$@" \
+    2>/dev/null \
+    >output-wrap
+}
+
+function whenEval() {
+  "$WRAPPER" module "$PWD/output" "$PWD/retval" 'eval' "$@" \
+    >output-eval 2>&1
+}
+
+function testSuccessfulCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if ! whenEval; then
+    echo 'Should have run successfully'
+    return 1
+  fi
+  expectSavedOutput
+  expectTruncatedOutputWithModule
+}
+
+function testFailedCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+    echo 'exit 1'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if whenEval; then
+    echo 'Should have failed to run'
+    return 1
+  fi
+  expectSavedOutput
+  expectFullOutputWithModule
+}
+function testFailedSignalCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+    echo 'kill -TERM $$'
+    echo 'echo Should not be printed'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if whenEval; then
+    echo 'Should have failed to run'
+    return 1
+  fi
+  expectSavedOutput
+  expectFullOutputWithModule
+}
+
+
+function main() {
+  local result=0
+  local tmp="$(mktemp -d)"
+  for test_name in "${TEST_NAMES[@]}"; do
+    mkdir -p "$tmp/$test_name"
+    cd "$tmp/$test_name"
+    echo -n "Running $test_name..."
+    test"$test_name" >log || {
+      echo "FAILED";
+      sed -e "s/^/$test_name: /" <log
+      rm log
+      result=1;
+      continue;
+    }
+    echo "PASSED"
+    rm log
+  done
+  return "$result"
+}
+
+
+main "$@"
diff --git a/common/robolectric/4.5.1/Android.bp b/common/robolectric/4.5.1/Android.bp
new file mode 100644
index 0000000..c4f66b9
--- /dev/null
+++ b/common/robolectric/4.5.1/Android.bp
@@ -0,0 +1,55 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_import {
+    name: "platform-robolectric-4.5.1-prebuilt",
+    sdk_version: "current",
+    jars: [
+        "lib/animal-sniffer-annotations-1.17.jar",
+        "lib/annotation-1.1.0.jar",
+        "lib/annotations-4.5.1.jar",
+        "lib/asm-9.0.jar",
+        "lib/asm-analysis-9.0.jar",
+        "lib/asm-commons-9.0.jar",
+        "lib/asm-tree-9.0.jar",
+        "lib/asm-util-9.0.jar",
+        "lib/auto-value-annotations-1.6.2.jar",
+        "lib/bcprov-jdk15on-1.65.jar",
+        "lib/checker-qual-2.5.2.jar",
+        "lib/commons-codec-1.3.jar",
+        "lib/commons-logging-1.1.1.jar",
+        "lib/error_prone_annotations-2.2.0.jar",
+        "lib/failureaccess-1.0.1.jar",
+        "lib/guava-27.0.1-jre.jar",
+        "lib/httpclient-4.0.3.jar",
+        "lib/httpcore-4.0.1.jar",
+        "lib/icu4j-53.1.jar",
+        "lib/j2objc-annotations-1.1.jar",
+        "lib/javax.annotation-api-1.3.2.jar",
+        "lib/javax.inject-1.jar",
+        "lib/jsr305-3.0.2.jar",
+        "lib/junit-4.5.1.jar",
+        "lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+        "lib/monitor-1.3.0-rc03.aar",
+        "lib/pluginapi-4.5.1.jar",
+        "lib/plugins-maven-dependency-resolver-4.5.1.jar",
+        "lib/resources-4.5.1.jar",
+        "lib/robolectric-4.5.1.jar",
+        "lib/sandbox-4.5.1.jar",
+        "lib/shadowapi-4.5.1.jar",
+        "lib/shadows-framework-4.5.1.jar",
+        "lib/shadows-httpclient-4.5.1.jar",
+        "lib/shadows-multidex-4.5.1.jar",
+        "lib/shadows-playservices-4.5.1.jar",
+        "lib/shadows-supportv4-4.5.1.jar",
+        "lib/sqlite4java-1.0.392.jar",
+        "lib/utils-4.5.1.jar",
+        "lib/utils-reflector-4.5.1.jar",
+    ],
+    exclude_files: [
+        "META-INF/*.SF",
+        "META-INF/*.DSA",
+        "META-INF/*.RSA",
+    ],
+}
diff --git a/common/robolectric/4.5.1/PREBUILT/download-libs.gradle b/common/robolectric/4.5.1/PREBUILT/download-libs.gradle
new file mode 100644
index 0000000..52f241d
--- /dev/null
+++ b/common/robolectric/4.5.1/PREBUILT/download-libs.gradle
@@ -0,0 +1,76 @@
+/*
+ * Modified from https://gist.github.com/xian/05c4f27da6d4156b9827842217c2cd5c
+ * Reference: http://robolectric.org/blog/2017/03/01/hermetic-builds/
+ */
+defaultTasks 'copyLibs'
+
+def shadowArtifacts = [
+        "org.robolectric:shadows-framework:${robolectricVersion}",
+        "org.robolectric:shadows-httpclient:${robolectricVersion}",
+        "org.robolectric:shadows-multidex:${robolectricVersion}",
+        "org.robolectric:shadows-playservices:${robolectricVersion}",
+        "org.robolectric:shadows-supportv4:${robolectricVersion}",
+]
+
+apply plugin: 'java'
+
+repositories {
+    mavenCentral()
+    google()
+}
+
+configurations {
+    sandbox
+    roboSources
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+    compile("org.robolectric:robolectric:${robolectricVersion}") {
+        // we don't need these MavenDependencyResolver in a hermetic build
+        exclude group: 'org.apache.maven', module: ''
+        exclude group: 'org.apache.ant', module: ''
+    }
+
+    shadowArtifacts.forEach { shadowArtifact ->
+        compile ("${shadowArtifact}")  {
+            // we don't need these MavenDependencyResolver in a hermetic build
+            exclude group: 'org.apache.maven', module: ''
+            exclude group: 'org.apache.ant', module: ''
+        }
+        sandbox ("${shadowArtifact}")  {
+            // we don't need these MavenDependencyResolver in a hermetic build
+            exclude group: 'org.apache.maven', module: ''
+            exclude group: 'org.apache.ant', module: ''
+        }
+    }
+
+    def shadowArtifactsSet = shadowArtifacts.collect {it.toString()}  toSet()
+    configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { ResolvedArtifact ra ->
+        ModuleVersionIdentifier id = ra.moduleVersion.id
+        // download only core sources. relax restriction if required
+        if ("org.robolectric".equals(id.group) && !shadowArtifactsSet.contains(id.toString())) {
+            roboSources("${id.group}:${id.name}:${id.version}:sources") {
+                transitive = false
+            }
+        }
+    }
+}
+
+
+task copyLibs(type: Copy) {
+    from configurations.compile
+    from configurations.roboSources
+    into "$buildDir/lib"
+
+    doLast {
+        def f = new File("$buildDir/classpath_jars.mk")
+        f.delete()
+        def jars = source.getFiles()
+            .collect { it.name }
+            .sort()
+            .findAll { !it.endsWith("sources.jar") }
+            .collect { "    lib/${it} " }
+        f << "my_robolectric_runtime_deps := \\\n" << jars.join("\\\n") << "\n"
+    }
+}
diff --git a/common/robolectric/4.5.1/PREBUILT/download-libs.sh b/common/robolectric/4.5.1/PREBUILT/download-libs.sh
new file mode 100755
index 0000000..9853825
--- /dev/null
+++ b/common/robolectric/4.5.1/PREBUILT/download-libs.sh
@@ -0,0 +1,78 @@
+#! /bin/bash
+
+set -e
+
+printusage() {
+    echo "Usage: ./download-libs.sh <robolectric-version> " >&2
+    echo "    -f <old-directory-to-copy-from>" >&2
+    exit 1
+}
+
+oldVersion=""
+roboVersion="$1"
+shift
+
+while getopts "f:h" opt; do
+    case "$opt" in
+        f)
+            oldVersion="$OPTARG"
+            ;;
+        h)
+            printusage
+            ;;
+    esac
+done
+
+if [[ -z $roboVersion ]] || [[ -z $oldVersion ]]; then
+    printusage
+fi
+
+mkdir -p ../"$roboVersion"/PREBUILT
+# Copy the scripts into the versioned directory for record
+cp download-libs.sh ../"$roboVersion"/PREBUILT/download-libs.sh
+cp download-libs.gradle ../"$roboVersion"/PREBUILT/download-libs.gradle
+
+cd ../"$roboVersion"
+gradle -b PREBUILT/download-libs.gradle \
+    -ProbolectricVersion="$roboVersion" \
+    -PshadowsVersion="$roboVersion" \
+    -PbuildDir="`pwd`"
+
+COPY_FROM_OLD_VERSION=(
+    "java-timeout"
+    "list_failed.sh"
+    "report-internal.mk"
+    "robotest-internal.mk"
+    "robotest.sh"
+    "run_robotests.mk"
+    "wrapper.sh"
+    "wrapper_test.sh"
+)
+
+for file in "${COPY_FROM_OLD_VERSION[@]}"; do
+    cp -n ../"$oldVersion"/$file ./$file
+done
+
+cat <<EOF > Android.bp
+java_import {
+    name: "platform-robolectric-${roboVersion}-prebuilt",
+    sdk_version: "current",
+    jars: [
+        "lib/annotations-${roboVersion}.jar",
+        "lib/asm-6.0.jar",
+        "lib/junit-${roboVersion}.jar",
+        "lib/resources-${roboVersion}.jar",
+        "lib/sandbox-${roboVersion}.jar",
+        "lib/shadowapi-${roboVersion}.jar",
+        "lib/shadows-framework-${roboVersion}.jar",
+        "lib/shadows-httpclient-${roboVersion}.jar",
+        "lib/shadows-multidex-${roboVersion}.jar",
+        "lib/shadows-supportv4-${roboVersion}.jar",
+        "lib/robolectric-${roboVersion}.jar",
+        "lib/utils-${roboVersion}.jar",
+    ],
+}
+
+EOF
+
+set +e
diff --git a/common/robolectric/4.5.1/classpath_jars.mk b/common/robolectric/4.5.1/classpath_jars.mk
new file mode 100644
index 0000000..25c9ed0
--- /dev/null
+++ b/common/robolectric/4.5.1/classpath_jars.mk
@@ -0,0 +1,41 @@
+my_robolectric_runtime_deps := \
+    lib/animal-sniffer-annotations-1.17.jar \
+    lib/annotation-1.1.0.jar \
+    lib/annotations-4.5.1.jar \
+    lib/asm-9.0.jar \
+    lib/asm-analysis-9.0.jar \
+    lib/asm-commons-9.0.jar \
+    lib/asm-tree-9.0.jar \
+    lib/asm-util-9.0.jar \
+    lib/auto-value-annotations-1.6.2.jar \
+    lib/bcprov-jdk15on-1.65.jar \
+    lib/checker-qual-2.5.2.jar \
+    lib/commons-codec-1.3.jar \
+    lib/commons-logging-1.1.1.jar \
+    lib/error_prone_annotations-2.2.0.jar \
+    lib/failureaccess-1.0.1.jar \
+    lib/guava-27.0.1-jre.jar \
+    lib/httpclient-4.0.3.jar \
+    lib/httpcore-4.0.1.jar \
+    lib/icu4j-53.1.jar \
+    lib/j2objc-annotations-1.1.jar \
+    lib/javax.annotation-api-1.3.2.jar \
+    lib/javax.inject-1.jar \
+    lib/jsr305-3.0.2.jar \
+    lib/junit-4.5.1.jar \
+    lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar \
+    lib/monitor-1.3.0-rc03.aar \
+    lib/pluginapi-4.5.1.jar \
+    lib/plugins-maven-dependency-resolver-4.5.1.jar \
+    lib/resources-4.5.1.jar \
+    lib/robolectric-4.5.1.jar \
+    lib/sandbox-4.5.1.jar \
+    lib/shadowapi-4.5.1.jar \
+    lib/shadows-framework-4.5.1.jar \
+    lib/shadows-httpclient-4.5.1.jar \
+    lib/shadows-multidex-4.5.1.jar \
+    lib/shadows-playservices-4.5.1.jar \
+    lib/shadows-supportv4-4.5.1.jar \
+    lib/sqlite4java-1.0.392.jar \
+    lib/utils-4.5.1.jar \
+    lib/utils-reflector-4.5.1.jar 
diff --git a/common/robolectric/4.5.1/java-timeout b/common/robolectric/4.5.1/java-timeout
new file mode 100755
index 0000000..921fc80
--- /dev/null
+++ b/common/robolectric/4.5.1/java-timeout
@@ -0,0 +1,94 @@
+#!/bin/bash
+#
+# Script for running java with a timeout.
+#
+# The timeout in seconds must be the first argument.  The rest of the arguments
+# are passed to the java binary itself.
+#
+# For example:
+#     java-timeout 120 -cp classes.jar org.junit.runner.JUnitCore
+# runs:
+#     java -cp classes.jar org.junit.runner.JUnitCore
+# with a timeout of 2 minutes.
+
+set -euo pipefail
+
+# Prints a message and terminates the process.
+function fatal() {
+  echo "FATAL: $*"
+  exit 113
+}
+
+# Function that is invoked if java is terminated due to timeout.
+# It take the process ID of the java command as an argument if it has already
+# been started, or the empty string if not. It should very rarely receive the
+# empty string as the pid, but it is possible.
+function on_timeout() {
+  echo 'FATAL: command timed out'
+
+  local pid="${1-}"
+  shift || fatal '[on_timeout] missing argument: pid'
+  test $# = 0 || fatal '[on_timeout] too many arguments'
+
+  if [ "$pid" != '' ]; then
+    # It is possible that the process already terminated, but there is not much
+    # we can do about that.
+    kill -TERM -- "-$pid"  # Kill the entire process group.
+  fi
+}
+
+# Executes java with the given argument, waiting for a termination signal from
+# runalarm which this script is running under. The arguments are passed to the
+# java binary itself.
+function execute() {
+  # Trap SIGTERM, which is what we will receive if runalarm interrupts us.
+  local pid  # Set below after we run the process.
+  trap 'on_timeout $pid' SIGTERM
+  # Starts java within a new process group and saves it process ID before
+  # blocking waiting for it to complete. 'setsid' starts the process within a
+  # new process group, which means that it will not be killed when this shell
+  # command is killed. This is needed so that the signal handler in the trap
+  # command above to be invoked before the java command is terminated (and will
+  # in fact have to terminate it itself).
+  setsid -w java "$@" & pid="$!"; wait "$pid"
+}
+
+# Runs java with a timeout. The first argument is either the timeout in seconds
+# or the string 'execute', which is used internally to execute the command under
+# runalarm.
+function main() {
+  local timeout_secs="${1-}"
+  shift || fatal '[main]: missing argument: timeout_secs'
+  # The reset of the arguments are meant for the java binary itself.
+
+  if [[ $timeout_secs = '0' ]]; then
+    # Run without any timeout.
+    java "$@"
+  elif [[ $timeout_secs = 'execute' ]]; then
+    # This means we actually have to execute the command.
+    execute "$@"
+  elif (( timeout_secs < 30 )); then
+    # We want to have a timeout of at least 30 seconds, so that we are
+    # guaranteed to be able to start the java command in the subshell. This also
+    # catches non-numeric arguments.
+    fatal 'Must specify a timeout of at least 30 seconds.'
+  else
+    # Wrap the command with the standard timeout(1) if available.
+    # "runalarm" is a Google timeout clone, and Mac users who've installed
+    # GNU coreutils have timeout available as "gtimeout".
+    if type timeout > /dev/null 2>&1 ; then
+      timeout "${timeout_secs}" "$0" 'execute' "$@"
+    elif type runalarm > /dev/null 2>&1 ; then
+      runalarm -t "$timeout_secs" "$0" 'execute' "$@"
+    elif type gtimeout > /dev/null 2>&1 ; then
+      gtimeout "${timeout_secs}s" "$0" 'execute' "$@"
+    else
+      # No way to set a timeout available, just execute directly.
+      echo "Warning: unable to enforce timeout." 1>&2
+      java "$@"
+    fi
+  fi
+}
+
+
+main "$@"
diff --git a/common/robolectric/4.5.1/lib/animal-sniffer-annotations-1.17.jar b/common/robolectric/4.5.1/lib/animal-sniffer-annotations-1.17.jar
new file mode 100644
index 0000000..6ec7a60
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/animal-sniffer-annotations-1.17.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/annotation-1.1.0.jar b/common/robolectric/4.5.1/lib/annotation-1.1.0.jar
new file mode 100644
index 0000000..0669512
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/annotation-1.1.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/annotations-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/annotations-4.5.1-sources.jar
new file mode 100644
index 0000000..166af45c
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/annotations-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/annotations-4.5.1.jar b/common/robolectric/4.5.1/lib/annotations-4.5.1.jar
new file mode 100644
index 0000000..f6feee6
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/annotations-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/asm-9.0.jar b/common/robolectric/4.5.1/lib/asm-9.0.jar
new file mode 100644
index 0000000..a0f619d
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/asm-9.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/asm-analysis-9.0.jar b/common/robolectric/4.5.1/lib/asm-analysis-9.0.jar
new file mode 100644
index 0000000..a21aefa
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/asm-analysis-9.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/asm-commons-9.0.jar b/common/robolectric/4.5.1/lib/asm-commons-9.0.jar
new file mode 100644
index 0000000..398cf49
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/asm-commons-9.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/asm-tree-9.0.jar b/common/robolectric/4.5.1/lib/asm-tree-9.0.jar
new file mode 100644
index 0000000..6707423
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/asm-tree-9.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/asm-util-9.0.jar b/common/robolectric/4.5.1/lib/asm-util-9.0.jar
new file mode 100644
index 0000000..d5ee891
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/asm-util-9.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/auto-value-annotations-1.6.2.jar b/common/robolectric/4.5.1/lib/auto-value-annotations-1.6.2.jar
new file mode 100644
index 0000000..5f773d8
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/auto-value-annotations-1.6.2.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/bcprov-jdk15on-1.65.jar b/common/robolectric/4.5.1/lib/bcprov-jdk15on-1.65.jar
new file mode 100644
index 0000000..32a83c7
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/bcprov-jdk15on-1.65.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/checker-qual-2.5.2.jar b/common/robolectric/4.5.1/lib/checker-qual-2.5.2.jar
new file mode 100644
index 0000000..ae4e7f1
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/checker-qual-2.5.2.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/commons-codec-1.3.jar b/common/robolectric/4.5.1/lib/commons-codec-1.3.jar
new file mode 100644
index 0000000..957b675
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/commons-codec-1.3.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/commons-logging-1.1.1.jar b/common/robolectric/4.5.1/lib/commons-logging-1.1.1.jar
new file mode 100644
index 0000000..1deef14
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/commons-logging-1.1.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/error_prone_annotations-2.2.0.jar b/common/robolectric/4.5.1/lib/error_prone_annotations-2.2.0.jar
new file mode 100644
index 0000000..c8e27b5
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/error_prone_annotations-2.2.0.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/failureaccess-1.0.1.jar b/common/robolectric/4.5.1/lib/failureaccess-1.0.1.jar
new file mode 100644
index 0000000..9b56dc7
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/failureaccess-1.0.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/guava-27.0.1-jre.jar b/common/robolectric/4.5.1/lib/guava-27.0.1-jre.jar
new file mode 100644
index 0000000..f164ce7
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/guava-27.0.1-jre.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/httpclient-4.0.3.jar b/common/robolectric/4.5.1/lib/httpclient-4.0.3.jar
new file mode 100644
index 0000000..16e349a
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/httpclient-4.0.3.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/httpcore-4.0.1.jar b/common/robolectric/4.5.1/lib/httpcore-4.0.1.jar
new file mode 100644
index 0000000..4aef35e
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/httpcore-4.0.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/icu4j-53.1.jar b/common/robolectric/4.5.1/lib/icu4j-53.1.jar
new file mode 100644
index 0000000..2c3ff8b
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/icu4j-53.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/j2objc-annotations-1.1.jar b/common/robolectric/4.5.1/lib/j2objc-annotations-1.1.jar
new file mode 100644
index 0000000..4b6f127
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/j2objc-annotations-1.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/javax.annotation-api-1.3.2.jar b/common/robolectric/4.5.1/lib/javax.annotation-api-1.3.2.jar
new file mode 100644
index 0000000..a8a470a
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/javax.annotation-api-1.3.2.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/javax.inject-1.jar b/common/robolectric/4.5.1/lib/javax.inject-1.jar
new file mode 100644
index 0000000..b2a9d0b
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/javax.inject-1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/jsr305-3.0.2.jar b/common/robolectric/4.5.1/lib/jsr305-3.0.2.jar
new file mode 100644
index 0000000..59222d9
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/jsr305-3.0.2.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/junit-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/junit-4.5.1-sources.jar
new file mode 100644
index 0000000..f6fd220
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/junit-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/junit-4.5.1.jar b/common/robolectric/4.5.1/lib/junit-4.5.1.jar
new file mode 100644
index 0000000..e9a7dc4
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/junit-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/common/robolectric/4.5.1/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
new file mode 100644
index 0000000..45832c0
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/monitor-1.3.0-rc03.aar b/common/robolectric/4.5.1/lib/monitor-1.3.0-rc03.aar
new file mode 100644
index 0000000..69841db
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/monitor-1.3.0-rc03.aar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/pluginapi-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/pluginapi-4.5.1-sources.jar
new file mode 100644
index 0000000..75bec52
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/pluginapi-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/pluginapi-4.5.1.jar b/common/robolectric/4.5.1/lib/pluginapi-4.5.1.jar
new file mode 100644
index 0000000..39ac000
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/pluginapi-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1-sources.jar
new file mode 100644
index 0000000..ccc2055
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1.jar b/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1.jar
new file mode 100644
index 0000000..d0be72c
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/plugins-maven-dependency-resolver-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/resources-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/resources-4.5.1-sources.jar
new file mode 100644
index 0000000..6a016f3
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/resources-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/resources-4.5.1.jar b/common/robolectric/4.5.1/lib/resources-4.5.1.jar
new file mode 100644
index 0000000..28942f7
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/resources-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/robolectric-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/robolectric-4.5.1-sources.jar
new file mode 100644
index 0000000..73858a0
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/robolectric-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/robolectric-4.5.1.jar b/common/robolectric/4.5.1/lib/robolectric-4.5.1.jar
new file mode 100644
index 0000000..d8c10d4
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/robolectric-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/sandbox-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/sandbox-4.5.1-sources.jar
new file mode 100644
index 0000000..f4e66e9
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/sandbox-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/sandbox-4.5.1.jar b/common/robolectric/4.5.1/lib/sandbox-4.5.1.jar
new file mode 100644
index 0000000..202b186
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/sandbox-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadowapi-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/shadowapi-4.5.1-sources.jar
new file mode 100644
index 0000000..02dde74
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadowapi-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadowapi-4.5.1.jar b/common/robolectric/4.5.1/lib/shadowapi-4.5.1.jar
new file mode 100644
index 0000000..f1fc0c8
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadowapi-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadows-framework-4.5.1.jar b/common/robolectric/4.5.1/lib/shadows-framework-4.5.1.jar
new file mode 100644
index 0000000..6bb1f1a
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadows-framework-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadows-httpclient-4.5.1.jar b/common/robolectric/4.5.1/lib/shadows-httpclient-4.5.1.jar
new file mode 100644
index 0000000..b99245b
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadows-httpclient-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadows-multidex-4.5.1.jar b/common/robolectric/4.5.1/lib/shadows-multidex-4.5.1.jar
new file mode 100644
index 0000000..d15593b
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadows-multidex-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadows-playservices-4.5.1.jar b/common/robolectric/4.5.1/lib/shadows-playservices-4.5.1.jar
new file mode 100644
index 0000000..75e6e79
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadows-playservices-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/shadows-supportv4-4.5.1.jar b/common/robolectric/4.5.1/lib/shadows-supportv4-4.5.1.jar
new file mode 100644
index 0000000..15d6cc9
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/shadows-supportv4-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/sqlite4java-1.0.392.jar b/common/robolectric/4.5.1/lib/sqlite4java-1.0.392.jar
new file mode 100644
index 0000000..cfa8d8c
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/sqlite4java-1.0.392.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/utils-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/utils-4.5.1-sources.jar
new file mode 100644
index 0000000..0051410
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/utils-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/utils-4.5.1.jar b/common/robolectric/4.5.1/lib/utils-4.5.1.jar
new file mode 100644
index 0000000..4ff639b
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/utils-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/utils-reflector-4.5.1-sources.jar b/common/robolectric/4.5.1/lib/utils-reflector-4.5.1-sources.jar
new file mode 100644
index 0000000..407bb7d
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/utils-reflector-4.5.1-sources.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/lib/utils-reflector-4.5.1.jar b/common/robolectric/4.5.1/lib/utils-reflector-4.5.1.jar
new file mode 100644
index 0000000..79612a0
--- /dev/null
+++ b/common/robolectric/4.5.1/lib/utils-reflector-4.5.1.jar
Binary files differ
diff --git a/common/robolectric/4.5.1/list_failed.sh b/common/robolectric/4.5.1/list_failed.sh
new file mode 100755
index 0000000..1000ae1
--- /dev/null
+++ b/common/robolectric/4.5.1/list_failed.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# This script lists the tests which are failing in the output of Robolectric
+# tests.
+# TODO: Remove this script and move the functionality into a custom JUnit runner.
+
+# Matches the line specifying which test has failed and matches the test name
+# and class name as the first and second matching group, respectively.
+readonly FAILED_TEST_RE='^[1-9][0-9]*)\s\(\w\+\)(\(\(\w\|.\)\+\))$'
+
+# Fails with a message.
+function fatal() {
+  echo 1>&2 "FATAL: $@"
+  exit 113
+}
+
+function main() {
+  test $# = 0 || fatal "Too many arguments: $@"
+
+  sed -e '1,/^There \(was 1 failure\|were [0-9]* failures\):$/d' |
+      grep "$FAILED_TEST_RE" |
+      sed -e "s/$FAILED_TEST_RE/\2.\1/" ||
+      true
+}
+
+set -e
+set -o pipefail
+main "$@"
diff --git a/common/robolectric/4.5.1/report-internal.mk b/common/robolectric/4.5.1/report-internal.mk
new file mode 100644
index 0000000..4989632
--- /dev/null
+++ b/common/robolectric/4.5.1/report-internal.mk
@@ -0,0 +1,49 @@
+# Defines a target named $(my_target) for generating a coverage report.
+
+my_report_dir := $(my_coverage_dir)/reports
+my_coverage_output := $(my_report_dir)/coverage.xml
+
+# Private variables.
+$(my_coverage_output): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_coverage_output): PRIVATE_COVERAGE_FILE := $(my_coverage_file)
+$(my_coverage_output): PRIVATE_COVERAGE_SRCS_JARS := $(my_coverage_srcs_jars)
+$(my_coverage_output): PRIVATE_INSTRUMENT_SOURCE_DIRS := $(my_instrument_source_dirs)
+$(my_coverage_output): PRIVATE_COVERAGE_REPORT_CLASS := $(my_coverage_report_class)
+$(my_coverage_output): PRIVATE_COVERAGE_REPORT_JAR := $(my_coverage_report_jar)
+$(my_coverage_output): PRIVATE_REPORT_DIR := $(my_report_dir)
+
+# Generate the coverage report.
+$(my_coverage_output): $(my_collect_file) $(my_coverage_report_jar)
+	$(hide) rm -rf $(PRIVATE_REPORT_DIR)
+	$(hide) mkdir -p $(PRIVATE_REPORT_DIR)
+	$(hide) $(JAVA) \
+			-cp $(PRIVATE_COVERAGE_REPORT_JAR) \
+			$(PRIVATE_COVERAGE_REPORT_CLASS) \
+			-classpath $(strip $(call normalize-path-list, $(PRIVATE_COVERAGE_SRCS_JARS))) \
+			--exec-file $(PRIVATE_COVERAGE_FILE) \
+			--name $(PRIVATE_MODULE) \
+			--report-dir $(PRIVATE_REPORT_DIR)/ \
+			--srcs $(strip $(call normalize-path-list, $(PRIVATE_INSTRUMENT_SOURCE_DIRS))) \
+			>$(PRIVATE_REPORT_DIR)/reporter.txt 2>&1
+	@echo "Coverage report: file://"$(realpath $(PRIVATE_REPORT_DIR))"/index.html"
+
+
+# Generate a ZIP file of the coverage report.
+my_coverage_output_zip := $(my_coverage_dir)/report-html.zip
+
+$(my_coverage_output_zip): PRIVATE_REPORT_DIR := $(my_report_dir)
+$(my_coverage_output_zip): $(my_coverage_output)
+	$(hide) cd $(PRIVATE_REPORT_DIR) && zip --quiet -r $(PWD)/$@ .
+
+# Add coverage report zip to dist files.
+$(call dist-for-goals, $(my_report_target), \
+    $(my_coverage_output_zip):robotests-coverage/$(LOCAL_MODULE)/robolectric-html-coverage.zip \
+    $(my_coverage_output):robotests-coverage/$(LOCAL_MODULE)/robolectric-coverage.xml)
+
+# Running the coverage will always generate the report.
+$(my_target): $(my_coverage_output)
+
+# Reset local variables.
+my_coverage_output :=
+my_coverage_output_zip :=
+my_report_dir :=
diff --git a/common/robolectric/4.5.1/robotest-internal.mk b/common/robolectric/4.5.1/robotest-internal.mk
new file mode 100644
index 0000000..f8e4470
--- /dev/null
+++ b/common/robolectric/4.5.1/robotest-internal.mk
@@ -0,0 +1,97 @@
+# Defines a target named $(my_target) for running robolectric tests.
+
+# Running the tests is done in two stages: we first generate the test output to
+# $(my_target_output), which is also added to the dist list, and store the
+# return value of running the tests in $(my_target_retval). After that we
+# process the output and return value as part of $(my_target). This is needed
+# to make sure that we can install the test output even if the tests actually
+# fail.
+
+# Files in which to store the output and return value of the tests.
+my_target_xml := $(intermediates)/$(my_filename_stem)-output.xml
+my_target_output := $(intermediates)/$(my_filename_stem)-output.txt
+my_target_retval := $(intermediates)/$(my_filename_stem)-retval.txt
+
+# We should always re-run the tests, even if nothing has changed.
+# So until the build system has a dedicated "no cache" option, claim
+# to write a file that is never produced.
+my_target_nocache := $(intermediates)/$(my_filename_stem)-nocache
+
+# Private variables.
+$(my_target_output): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_target_output): PRIVATE_TESTS := $(my_tests)
+$(my_target_output): PRIVATE_JARS := $(my_jars)
+$(my_target_output): PRIVATE_JAVA_ARGS := $(my_java_args)
+$(my_target_output): PRIVATE_ROBOLECTRIC_PATH := $(my_robolectric_path)
+$(my_target_output): PRIVATE_ROBOLECTRIC_SCRIPT_PATH := $(my_robolectric_script_path)
+$(my_target_output): PRIVATE_TARGET_MESSAGE := $(my_target_message)
+$(my_target_output): PRIVATE_TARGET_OUTPUT := $(my_target_output)
+$(my_target_output): PRIVATE_TARGET_RETVAL := $(my_target_retval)
+$(my_target_output): PRIVATE_TARGET_NOCACHE := $(my_target_nocache)
+$(my_target_output): PRIVATE_TIMEOUT := $(my_timeout)
+# Pin java binary to 8 or 9, the highest robolectric 3.6.1 and ASM 6.0 support:
+$(my_target_output): PRIVATE_JAVA_PATH := $(if $(my_use_java8),$(ANDROID_JAVA8_HOME)/bin:,$(ANDROID_JAVA9_HOME)/bin:)
+$(my_target_output): PRIVATE_XML_OUTPUT_FILE := $(my_target_xml)
+$(my_target_output): .KATI_IMPLICIT_OUTPUTS := $(my_target_xml) $(my_target_retval) $(my_target_nocache)
+# Runs the Robolectric tests and saves the output and return value.
+$(my_target_output): $(my_jars)
+	@echo "host Robolectric: $(PRIVATE_MODULE)"
+	# Run `touch` to always create the output XML file, so the build doesn't break even if the
+	# runner failed to create the XML output
+	$(hide) touch "$(PRIVATE_XML_OUTPUT_FILE)"
+	$(hide) rm -f "$(PRIVATE_TARGET_NOCACHE)"
+	$(hide) \
+	  PRIVATE_INTERMEDIATES="$(dir $@)" \
+	  PRIVATE_JARS="$(PRIVATE_JARS)" \
+	  PRIVATE_JAVA_ARGS="$(PRIVATE_JAVA_ARGS)" \
+	  PRIVATE_ROBOLECTRIC_PATH="$(PRIVATE_ROBOLECTRIC_PATH)" \
+	  PRIVATE_ROBOLECTRIC_SCRIPT_PATH="$(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)" \
+	  PRIVATE_RUN_INDIVIDUALLY="$(ROBOTEST_RUN_INDIVIDUALLY)" \
+	  PRIVATE_TARGET_MESSAGE="$(PRIVATE_TARGET_MESSAGE)" \
+	  PRIVATE_TIMEOUT="$(PRIVATE_TIMEOUT)" \
+	  PRIVATE_TESTS="$(PRIVATE_TESTS)" \
+	  XML_OUTPUT_FILE="$(PRIVATE_XML_OUTPUT_FILE)" \
+	  TEST_WORKSPACE="$(PRIVATE_MODULE)" \
+	  PATH=$(PRIVATE_JAVA_PATH)$${PATH} \
+	  $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/wrapper.sh \
+	    "$(PRIVATE_MODULE)" \
+	    "$(PRIVATE_TARGET_OUTPUT)" \
+	    "$(PRIVATE_TARGET_RETVAL)" \
+	    wrap \
+	    $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/robotest.sh
+
+# Private variables.
+$(my_target): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(my_target): PRIVATE_TARGET_OUTPUT := $(my_target_output)
+$(my_target): PRIVATE_TARGET_RETVAL := $(my_target_retval)
+$(my_target): PRIVATE_FAILURE_FATAL := $(my_failure_fatal)
+$(my_target): PRIVATE_ROBOLECTRIC_SCRIPT_PATH := $(my_robolectric_script_path)
+# Process the output and the return value of the tests. This will fail if the
+# return value is non-zero.
+$(my_target): $(my_target_output) $(my_target_xml)
+	$(hide) \
+	  result=0; \
+	  $(PRIVATE_ROBOLECTRIC_SCRIPT_PATH)/wrapper.sh \
+	    "$(PRIVATE_MODULE)" \
+	    "$(PRIVATE_TARGET_OUTPUT)" \
+	    "$(PRIVATE_TARGET_RETVAL)" \
+	    eval \
+	      || result=$$?; \
+	  if [ "$(strip $(PRIVATE_FAILURE_FATAL))" = true ]; then \
+	    exit "$$result"; \
+	  fi
+	$(hide) touch $@
+
+# Add the output of the tests to the dist list, so that we will include it even
+# if the tests fail.
+$(call dist-for-goals, $(my_phony_target), \
+    $(my_target_output):robotests/$(LOCAL_MODULE)-$(notdir $(my_target_output)) \
+    $(my_target_xml):robotests/$(LOCAL_MODULE)-$(notdir $(my_target_xml)))
+
+# Clean up local variables.
+my_target_output :=
+my_target_retval :=
+my_target_xml :=
+my_target_nocache :=
+my_filename_stem :=
+my_use_java8 :=
diff --git a/common/robolectric/4.5.1/robotest.sh b/common/robolectric/4.5.1/robotest.sh
new file mode 100755
index 0000000..160b533
--- /dev/null
+++ b/common/robolectric/4.5.1/robotest.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+#
+# Runs robolectric tests.
+
+set -euo pipefail
+
+# Terminate with a fatal error.
+function fatal() {
+  echo "Fatal: $*"
+  exit 113
+}
+
+# Ensures that the given variable is set.
+function validate_var() {
+  local name="$1"; shift || fatal "Missing argument: name"
+  test $# = 0 || fatal "Too many arguments"
+
+  eval [[ -n \${${name}+dummy} ]] || {
+    echo "Variable not set: $name";
+    return 1;
+  }
+}
+
+# Ensures that all the required variables are set.
+function validate_vars() {
+  test $# = 0 || fatal "Too many arguments"
+
+  validate_var 'PRIVATE_INTERMEDIATES'
+  validate_var 'PRIVATE_JARS'
+  validate_var 'PRIVATE_JAVA_ARGS'
+  validate_var 'PRIVATE_ROBOLECTRIC_PATH'
+  validate_var 'PRIVATE_ROBOLECTRIC_SCRIPT_PATH'
+  validate_var 'PRIVATE_RUN_INDIVIDUALLY'
+  validate_var 'PRIVATE_TARGET_MESSAGE'
+  validate_var 'PRIVATE_TESTS'
+  validate_var 'PRIVATE_TIMEOUT'
+
+  validate_var 'XML_OUTPUT_FILE'
+  validate_var 'TEST_WORKSPACE'
+}
+
+# Remove leading and trailing spaces around the given argument.
+function strip() {
+  local value="$1"; shift || fatal "Missing argument: value"
+  test $# = 0 || fatal "Too many arguments"
+
+  echo "$value" | sed -e 's/^ *//' -e 's/ *$//'
+}
+
+# Normalizes a list of paths and turns it into a colon-separated list.
+function normalize-path-list() {
+  echo "$@" | sed -e 's/^ *//' -e 's/ *$//' -e 's/  */ /g' -e 's/ /:/g'
+}
+
+function junit() {
+  # This adds the lib folder to the cp.
+  local classpath="$(strip "$(normalize-path-list "${PRIVATE_JARS}")")"
+  local command=(
+    "${PRIVATE_ROBOLECTRIC_SCRIPT_PATH}/java-timeout"
+    "${PRIVATE_TIMEOUT}"
+    ${PRIVATE_JAVA_ARGS}
+    -Drobolectric.dependency.dir="${PRIVATE_ROBOLECTRIC_PATH}"
+    -Drobolectric.offline=true
+    -Drobolectric.logging=stdout
+    -cp "$classpath"
+    com.android.junitxml.JUnitXmlRunner
+  )
+  echo "${command[@]}" "$@"
+  "${command[@]}" "$@"
+}
+
+function runtests() {
+  local tests="$1"; shift || fatal "Missing argument: tests"
+  test $# = 0 || fatal "Too many arguments"
+
+  if [[ "$(strip "${PRIVATE_RUN_INDIVIDUALLY}")" = 'true' ]]; then
+    local result=0
+    for test in ${tests}; do
+      echo "-------------------------------------------------------------------"
+      echo "Running $test:"
+      junit "${test}"
+    done
+    return "$result"
+  else
+    echo "-------------------------------------------------------------------"
+    echo "Running $tests:"
+    junit $tests  # Contains a space-separated list of tests.
+  fi
+}
+
+# Run the robolectric tests
+function run() {
+  test $# = 0 || fatal "Too many arguments"
+
+  [ "${PRIVATE_TARGET_MESSAGE}" == '' ] || echo "${PRIVATE_TARGET_MESSAGE}"
+  local tests="${PRIVATE_TESTS}"
+  if [ "$tests" = '' ]; then
+    # Somehow there are no tests to run. Assume this is failure.
+    echo "No tests to run."
+    exit 1
+  fi
+  local output="${PRIVATE_INTERMEDIATES}/output.out"
+  local failed="${PRIVATE_INTERMEDIATES}/failed.out"
+  local result=0
+  runtests "${tests}" >"$output" 2>&1 || result="$?"
+  echo "$output"
+  cat "$output"
+  if [ "$result" = 0 ]; then
+    return "$result"
+  fi
+  "${PRIVATE_ROBOLECTRIC_SCRIPT_PATH}/list_failed.sh" <"$output" >"$failed"
+  return "$result"
+}
+
+function main() {
+  test $# = 0 || fatal "Too many arguments"
+
+  validate_vars
+  run
+}
+
+main "$@"
diff --git a/common/robolectric/4.5.1/run_robotests.mk b/common/robolectric/4.5.1/run_robotests.mk
new file mode 100644
index 0000000..0001ea1
--- /dev/null
+++ b/common/robolectric/4.5.1/run_robotests.mk
@@ -0,0 +1,231 @@
+# Rules for running robolectric tests.
+#
+# Uses the following variables:
+#
+#   LOCAL_JAVA_LIBRARIES
+#   LOCAL_STATIC_JAVA_LIBRARIES
+#   LOCAL_ROBOTEST_FAILURE_FATAL
+#   LOCAL_ROBOTEST_TIMEOUT
+#   LOCAL_TEST_PACKAGE
+#   LOCAL_ROBOTEST_FILES
+#   ROBOTEST_FAILURE_FATAL
+#   ROBOTEST_FILTER
+#   ROBOTEST_RUN_INDIVIDUALLY
+#
+#
+# If ROBOTEST_FAILURE_FATAL is set to true then failing tests will cause a
+# build failure. Otherwise failures will be logged but ignored by make.
+#
+# If ROBOTEST_FILTER is set to a regex then only tests matching that pattern
+# will be run. This currently only works at the class level.
+#
+# TODO: Switch to a JUnit runner which can support method-level test
+# filtering and use that rather than grep to implement ROBOTEST_FILTER.
+#
+# If ROBOTEST_RUN_INDIVIDUALLY is set to true, each test class will be run by a
+# different JVM, preventing any interaction between different tests. This is
+# significantly slower than running all tests within the same JVM, but prevents
+# unwanted interactions.
+#
+# Tests classes are found by looking for *Test.java files in
+# LOCAL_PATH recursively.
+
+################################################
+# General settings, independent of the module. #
+################################################
+
+### Used for running tests.
+
+# Where to find Robolectric.
+my_robolectric_script_path := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
+# Explicitly define the jars and their classpath ordering.
+include $(my_robolectric_script_path)/classpath_jars.mk
+my_robolectric_jars := \
+    $(addprefix $(my_robolectric_script_path)/,$(my_robolectric_runtime_deps)) \
+    $(call java-lib-files,junit)
+
+my_collect_target := $(LOCAL_MODULE)-coverage
+my_report_target := $(LOCAL_MODULE)-jacoco
+.PHONY: $(my_collect_target) $(my_report_target)
+# Whether or not to ignore the result of running the robotests.
+# LOCAL_ROBOTEST_FAILURE_FATAL will take precedence over ROBOTEST_FAILURE_FATAL,
+# if present.
+my_failure_fatal := $(if $(LOCAL_ROBOTEST_FAILURE_FATAL)$(ROBOTEST_FAILURE_FATAL),true,false)
+# The timeout for the command. A value of '0' means no timeout. The default is
+# 10 minutes.
+my_timeout := $(if $(LOCAL_ROBOTEST_TIMEOUT),$(LOCAL_ROBOTEST_TIMEOUT),600)
+# Command to filter the list of test classes.
+# If not specified, defaults to including all the tests.
+my_test_filter_command := $(if $(ROBOTEST_FILTER),grep -E "$(ROBOTEST_FILTER)",cat)
+
+# The directory containing the sources.
+my_instrument_makefile_dir := $(dir $(ALL_MODULES.$(LOCAL_TEST_PACKAGE).MAKEFILE))
+my_instrument_source_dirs := $(if $(LOCAL_INSTRUMENT_SOURCE_DIRS),\
+    $(LOCAL_INSTRUMENT_SOURCE_DIRS),\
+    $(my_instrument_makefile_dir)src $(my_instrument_makefile_dir)java)
+
+##########################
+# Used by base_rules.mk. #
+##########################
+
+LOCAL_MODULE_CLASS := ROBOLECTRIC
+# This is actually a phony target that is never built.
+LOCAL_BUILT_MODULE_STEM := test.fake
+# Since it is not built, it cannot be installed. But we will define our own
+# dist files, depending on which of the specific targets is invoked.
+LOCAL_UNINSTALLABLE_MODULE := true
+# Do not build it for checkbuild or mma
+LOCAL_DONT_CHECK_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+
+#############################
+# Module specific settings. #
+#############################
+
+### Used for running tests.
+
+# The list of test classes. Robolectric requires an explicit list of tests to
+# run, which is compiled from the Java files ending in "Test" within the
+# directory from which this module is invoked.
+ifeq ($(strip $(LOCAL_ROBOTEST_FILES)),)
+    LOCAL_ROBOTEST_FILES := $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.)
+endif
+# Convert the paths into package names by removing .java extension and replacing "/" with "."
+my_tests := $(subst /,.,$(basename $(LOCAL_ROBOTEST_FILES)))
+my_tests := $(sort $(shell echo '$(my_tests)' | tr ' ' '\n' | $(my_test_filter_command)))
+# The source jars containing the tests.
+my_srcs_jars := \
+    $(foreach lib, \
+        $(LOCAL_JAVA_LIBRARIES) $(LOCAL_STATIC_JAVA_LIBRARIES), \
+        $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/classes-pre-proguard.jar) \
+    $(foreach lib, \
+        $(LOCAL_TEST_PACKAGE), \
+        $(call intermediates-dir-for,APPS,$(lib),,COMMON)/classes-pre-proguard.jar)
+# The jars needed to run the tests.
+my_jars := \
+    $(my_robolectric_jars) \
+    $(call resolve-prebuilt-sdk-jar-path,$(if $(LOCAL_SDK_VERSION),$(LOCAL_SDK_VERSION),current)) \
+    $(call java-lib-files,junitxml) \
+    $(my_srcs_jars)
+
+
+
+# Run tests.
+my_phony_target := $(LOCAL_MODULE)
+my_target := $(LOCAL_BUILT_MODULE)
+my_filename_stem := test
+
+android_all_lib_path := $(my_robolectric_script_path)/../android-all
+my_robolectric_path := $(intermediates.COMMON)/android-all
+android_all_jars := $(call find-files-in-subdirs,$(android_all_lib_path),*.jar,.)
+copy_android_all_jars := $(foreach j,$(android_all_jars),\
+    $(android_all_lib_path)/$(j):$(my_robolectric_path)/$(j))
+$(my_robolectric_path): $(call copy-many-files,$(copy_android_all_jars))
+$(my_target): $(my_robolectric_path)
+
+# Setting the DEBUG_ROBOLECTRIC environment variable will print additional logging from
+# Robolectric and also make it wait for a debugger to be connected.
+# For Android Studio / IntelliJ the debugger can be connected via the "remote" configuration:
+#     https://www.jetbrains.com/help/idea/2016.2/run-debug-configuration-remote.html
+# From command line the debugger can be connected via
+#     jdb -attach localhost:5005
+ifdef DEBUG_ROBOLECTRIC
+    # The arguments to the JVM needed to debug the tests.
+    # - server: wait for connection rather than connecting to a debugger
+    # - transport: how to accept debugger connections (sockets)
+    # - address: the port on which to accept debugger connections
+    # - timeout: how long (in ms) to wait for a debugger to connect
+    # - suspend: do not start running any code until the debugger connects
+    my_java_args := \
+        -Drobolectric.logging.enabled=true \
+        -Xdebug -agentlib:jdwp=server=y,transport=dt_socket,address=localhost:5005,suspend=y
+
+    # Remove the timeout so Robolectric doesn't get killed while debugging
+    my_timeout := 0
+endif
+
+include $(my_robolectric_script_path)/robotest-internal.mk
+# clean local variables
+my_java_args :=
+my_phony_target :=
+my_target :=
+
+# Target for running robolectric tests using jacoco
+my_phony_target := $(my_report_target)
+my_target := $(LOCAL_BUILT_MODULE)-coverage
+my_collect_file := $(my_target)
+my_filename_stem := coverage
+$(my_collect_target): $(my_target)
+$(my_target): $(call java-lib-files,jvm-jacoco-agent,true) $(my_robolectric_path)
+
+my_coverage_dir := $(intermediates)/coverage
+my_coverage_file := $(my_coverage_dir)/jacoco.exec
+
+# List of packages to exclude jacoco from running
+my_jacoco_excludes := \
+    org.robolectric.* \
+    org.mockito.* \
+    org.junit.* \
+    org.objectweb.* \
+    com.thoughtworks.xstream.*
+# The Jacoco agent JAR.
+my_jacoco_agent_jar := $(call java-lib-files,jvm-jacoco-agent,true)
+# Using Jacoco with Robolectric is broken in 0.7.3 <= version < 0.7.6.
+# In 0.7.6 or above, the parameter "inclnolocationclasses" is needed.
+# See https://github.com/jacoco/jacoco/pull/288 for more
+# In JDK9, if "inclnolocationclasses" is used, we also need to specify
+# exclclassloader=jdk.internal.reflect.DelegatingClassLoader
+# https://github.com/jacoco/jacoco/issues/16
+my_jacoco_agent_args = \
+    destfile=$(my_coverage_file) \
+    excludes=$(call normalize-path-list, $(my_jacoco_excludes)) \
+    inclnolocationclasses=true \
+    exclclassloader=jdk.internal.reflect.DelegatingClassLoader \
+    append=false
+my_java_args := \
+    -javaagent:$(my_jacoco_agent_jar)=$(call normalize-comma-list, $(my_jacoco_agent_args))
+include $(my_robolectric_script_path)/robotest-internal.mk
+# Clear temporary variables
+my_failure_fatal :=
+my_jacoco_agent_jar :=
+my_jacoco_agent_args :=
+my_jacoco_excludes :=
+my_java_args :=
+my_phony_target :=
+my_robolectric_jars :=
+my_target :=
+my_tests :=
+my_filename_stem :=
+
+# Target for generating code coverage reports using jacoco.exec
+my_target := $(LOCAL_BUILT_MODULE)-jacoco
+$(my_report_target): $(my_target)
+
+# The JAR file containing the report generation tool.
+my_coverage_report_class := com.google.android.jacoco.reporter.ReportGenerator
+my_coverage_report_jar := $(call java-lib-files,jvm-jacoco-reporter,true)
+my_coverage_srcs_jars := $(my_srcs_jars)
+my_coverage_report_dist_file := $(my_report_target)-html.zip
+
+## jacoco code coverage reports
+include $(my_robolectric_script_path)/report-internal.mk
+# Clear temporary variables
+my_coverage_dir :=
+my_coverage_file :=
+my_coverage_report_class :=
+my_coverage_report_dist_file :=
+my_coverage_report_jar :=
+my_coverage_srcs_jars :=
+my_robolectric_script_path :=
+my_robolectric_path :=
+my_srcs_jars :=
+my_target :=
+my_collect_file :=
+
+# Clear local variables specific to this build.
+LOCAL_ROBOTEST_FAILURE_FATAL :=
+LOCAL_ROBOTEST_TIMEOUT :=
+LOCAL_ROBOTEST_FILES :=
+LOCAL_INSTRUMENT_SOURCE_DIRS :=
diff --git a/common/robolectric/4.5.1/wrapper.sh b/common/robolectric/4.5.1/wrapper.sh
new file mode 100755
index 0000000..8d74246
--- /dev/null
+++ b/common/robolectric/4.5.1/wrapper.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# A simple script to wrap the execution of a command so that it stores its
+# output and return value into a file and then process it to later on.
+#
+# This is meant to be used in a makefile, specifically to allow for the output
+# of a command to be stored in a file and added to the dist list, even if the
+# command actually failed.
+#
+# For example, your makefile might include:
+#
+# my_target := lint
+# my_target_output := $(OUT_DIR)/lint-output.txt
+# my_target_retval := $(OUT_DIR)/lint-retval.txt
+#
+# $(my_target_output) $(my_target_retval): PRIVATE_MODULE := $(my_target)
+# $(my_target_output) $(my_target_retval): PRIVATE_OUTPUT := $(my_target_output)
+# $(my_target_output) $(my_target_retval): PRIVATE_RETVAL := $(my_target_retval)
+# $(my_target_output) $(my_target_retval):
+#         $(PATH)/wrapper.sh \
+#           $(PRIVATE_MODULE) \
+#           $(PRIVATE_OUTPUT) \
+#           $(PRIVATE_RETVAL) \
+#           wrap \
+#           $(PATH)/run-list.sh $(LOCAL_PATH)/src
+#
+# $(my_target): PRIVATE_MODULE := $(my_target)
+# $(my_target): PRIVATE_OUTPUT := $(my_target_output)
+# $(my_target): PRIVATE_RETVAL := $(my_target_retval)
+# $(my_target): $(my_target_output) $(my_target_retval)
+#         $(PATH)/wrapper.sh \
+#           $(PRIVATE_MODULE) \
+#           $(PRIVATE_OUTPUT) \
+#           $(PRIVATE_RETVAL) \
+#           eval
+
+set -euo pipefail
+
+# Terminate with a fatal error.
+function fatal() {
+  echo "Fatal: $*"
+  exit 113
+}
+
+function main() {
+  local module="${1-}"; shift || fatal "missing argument: module"
+  local output="${1-}"; shift || fatal "missing argument: output"
+  local retval="${1-}"; shift || fatal "missing argument: retval"
+  local action="${1-}"; shift || fatal "missing argument: action"
+  # The rest of the arguments are the command to run.
+
+  if [ "$action" = 'wrap' ]; then
+    # Run the command specified by the rest of arguments ("$@") and save output
+    # and return value.
+    echo 0 >"${retval}"
+    "$@" >"${output}" 2>&1 || echo "$?" >"${retval}"
+
+    # Wrapping itself is always successful.
+    return
+  elif [ "$action" = 'eval' ]; then
+    local result="$(cat "${retval}")"
+    if [ "$result" = 0 ]; then
+      # If successful only print the last few lines.
+      tail -n 5 "$output" | sed -e "s/^/${module}: /"
+    else
+      # Print the entire output on failure.
+      cat "$output" | sed -e "s/^/${module}: /"
+    fi
+    # Evaluating returns the stored return value.
+    return "$result"
+  else
+    fatal "invalid action: $action"
+  fi
+}
+
+main "$@"
diff --git a/common/robolectric/4.5.1/wrapper_test.sh b/common/robolectric/4.5.1/wrapper_test.sh
new file mode 100755
index 0000000..42a04c5
--- /dev/null
+++ b/common/robolectric/4.5.1/wrapper_test.sh
@@ -0,0 +1,172 @@
+#!/bin/bash
+#
+# Tests for wrapper.sh.
+
+set -euo pipefail
+
+# The location of the script under test.
+readonly WRAPPER="$(realpath "$(dirname "$0")/wrapper.sh")"
+# The name of the tests to run. Each test correspond to a function in this file
+# whose name is the name of the test prefixed by 'test'.
+readonly TEST_NAMES=(
+  SuccessfulCase
+  FailedCase
+  FailedSignalCase
+)
+
+# Fails with an error message.
+function fatal() {
+  echo 1>&2 "FATAL: $@"
+  exit 113
+}
+
+function withTestFiles() {
+  (
+    echo '1'
+    echo '2'
+    echo '3'
+    echo '4'
+    echo '5'
+    echo '6'
+    echo '7'
+  ) >testfile
+  (
+    echo 'module: 1'
+    echo 'module: 2'
+    echo 'module: 3'
+    echo 'module: 4'
+    echo 'module: 5'
+    echo 'module: 6'
+    echo 'module: 7'
+  ) >testfileWithModule
+  (
+    echo 'module: 3'
+    echo 'module: 4'
+    echo 'module: 5'
+    echo 'module: 6'
+    echo 'module: 7'
+  ) >testfileWithModuleTruncated
+}
+
+function expectNoWrapOutput() {
+  if [ "$(cat output-wrap)" != '' ]; then
+    echo 'Wrap should not generate any output'
+    diff testfile output || true
+    return 1
+  fi
+}
+
+function expectSavedOutput() {
+  if ! diff testfile output; then
+    echo 'Should have saved the correct output'
+    diff testfile output || true
+    return 1
+  fi
+}
+
+function expectFullOutputWithModule() {
+  if ! diff testfileWithModule output-eval; then
+    echo 'Should have printed the full output'
+    diff testfileWithModule output || true
+    return 1
+  fi
+}
+
+function expectTruncatedOutputWithModule() {
+  if ! diff testfileWithModuleTruncated output-eval; then
+    echo 'Should have printed the truncated output'
+    diff testfileWithModuleTruncated output || true
+    return 1
+  fi
+}
+
+function whenWrap() {
+  "$WRAPPER" module "$PWD/output" "$PWD/retval" 'wrap' "$@" \
+    2>/dev/null \
+    >output-wrap
+}
+
+function whenEval() {
+  "$WRAPPER" module "$PWD/output" "$PWD/retval" 'eval' "$@" \
+    >output-eval 2>&1
+}
+
+function testSuccessfulCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if ! whenEval; then
+    echo 'Should have run successfully'
+    return 1
+  fi
+  expectSavedOutput
+  expectTruncatedOutputWithModule
+}
+
+function testFailedCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+    echo 'exit 1'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if whenEval; then
+    echo 'Should have failed to run'
+    return 1
+  fi
+  expectSavedOutput
+  expectFullOutputWithModule
+}
+function testFailedSignalCase() {
+  withTestFiles
+  (
+    echo '#!/bin/bash'
+    echo
+    echo 'cat testfile'
+    echo 'kill -TERM $$'
+    echo 'echo Should not be printed'
+  ) >script.sh
+  chmod 755 script.sh
+  whenWrap "$PWD/script.sh"
+  expectNoWrapOutput
+  if whenEval; then
+    echo 'Should have failed to run'
+    return 1
+  fi
+  expectSavedOutput
+  expectFullOutputWithModule
+}
+
+
+function main() {
+  local result=0
+  local tmp="$(mktemp -d)"
+  for test_name in "${TEST_NAMES[@]}"; do
+    mkdir -p "$tmp/$test_name"
+    cd "$tmp/$test_name"
+    echo -n "Running $test_name..."
+    test"$test_name" >log || {
+      echo "FAILED";
+      sed -e "s/^/$test_name: /" <log
+      rm log
+      result=1;
+      continue;
+    }
+    echo "PASSED"
+    rm log
+  done
+  return "$result"
+}
+
+
+main "$@"
diff --git a/common/robolectric/Android.bp b/common/robolectric/Android.bp
index 33c74b2..7ca6747 100644
--- a/common/robolectric/Android.bp
+++ b/common/robolectric/Android.bp
@@ -1,14 +1,14 @@
-// platform-robolectric-android-all-stubs is a stubbed out android-all JAR. This is used in place of
-// the SDK stubs JAR for apps that can use hidden APIs like Settings.
-// To use this, add this to libs / LOCAL_STATIC_JAVA_LIBRARIES of your test library.
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "prebuilts_misc_license"
+    // to get the below license kinds:
+    //   legacy_restricted
+    default_applicable_licenses: ["prebuilts_misc_license"],
+}
 
-// This jar is generated from the command
-//   java -jar \
-//     $ANDROID_HOST_OUT/framework/mkstubs.jar \
-//     $OUT/../../common/obj/JAVA_LIBRARIES/robolectric_android-all_intermediates/classes.jar \
-//     android-all-stubs.jar '+*'
-
-java_import {
-    name: "platform-robolectric-android-all-stubs",
-    jars: ["android-all/android-all-stubs.jar"],
+android_robolectric_runtimes {
+    name: "robolectric-android-all-prebuilts",
+    jars: ["android-all/*.jar"],
+    lib: "robolectric-host-android_all",
 }
diff --git a/common/robolectric/android-all/android-all-11-robolectric-6757853.jar b/common/robolectric/android-all/android-all-11-robolectric-6757853.jar
new file mode 100644
index 0000000..a8ee6a9
--- /dev/null
+++ b/common/robolectric/android-all/android-all-11-robolectric-6757853.jar
Binary files differ
diff --git a/common/robolectric/android-all/android-all-R-beta2-robolectric-6625208.jar b/common/robolectric/android-all/android-all-R-beta2-robolectric-6625208.jar
new file mode 100644
index 0000000..af33e5f
--- /dev/null
+++ b/common/robolectric/android-all/android-all-R-beta2-robolectric-6625208.jar
Binary files differ
diff --git a/common/robolectric/android-all/android-all-o-preview-4-robolectric-0.jar b/common/robolectric/android-all/android-all-o-preview-4-robolectric-0.jar
deleted file mode 100644
index 47c03b4..0000000
--- a/common/robolectric/android-all/android-all-o-preview-4-robolectric-0.jar
+++ /dev/null
Binary files differ
diff --git a/common/robolectric/android-all/android-all-stubs.jar b/common/robolectric/android-all/android-all-stubs.jar
deleted file mode 100644
index 00d8e4a..0000000
--- a/common/robolectric/android-all/android-all-stubs.jar
+++ /dev/null
Binary files differ
diff --git a/common/robolectric/android-all/android-all-stubs_removed_classes.txt b/common/robolectric/android-all/android-all-stubs_removed_classes.txt
deleted file mode 100644
index 93f92e0..0000000
--- a/common/robolectric/android-all/android-all-stubs_removed_classes.txt
+++ /dev/null
@@ -1,178 +0,0 @@
-com/android/server/backup/AccountManagerBackupHelper.class
-com/android/server/backup/AccountSyncSettingsBackupHelper.class
-com/android/server/backup/BackupManagerConstants.class
-com/android/server/backup/BackupManagerService$1.class
-com/android/server/backup/BackupManagerService$2.class
-com/android/server/backup/BackupManagerService$3.class
-com/android/server/backup/BackupManagerService$4.class
-com/android/server/backup/BackupManagerService$5.class
-com/android/server/backup/BackupManagerService$6.class
-com/android/server/backup/BackupManagerService$7.class
-com/android/server/backup/BackupManagerService$8.class
-com/android/server/backup/BackupManagerService$9.class
-com/android/server/backup/BackupManagerService$ActiveRestoreSession.class
-com/android/server/backup/BackupManagerService$ActiveRestoreSession$EndRestoreRunnable.class
-com/android/server/backup/BackupManagerService$AdbBackupParams.class
-com/android/server/backup/BackupManagerService$AdbParams.class
-com/android/server/backup/BackupManagerService$AdbRestoreFinishedLatch.class
-com/android/server/backup/BackupManagerService$AdbRestoreParams.class
-com/android/server/backup/BackupManagerService$BackupHandler.class
-com/android/server/backup/BackupManagerService$BackupParams.class
-com/android/server/backup/BackupManagerService$BackupRequest.class
-com/android/server/backup/BackupManagerService$BackupState.class
-com/android/server/backup/BackupManagerService.class
-com/android/server/backup/BackupManagerService$ClearDataObserver.class
-com/android/server/backup/BackupManagerService$ClearParams.class
-com/android/server/backup/BackupManagerService$ClearRetryParams.class
-com/android/server/backup/BackupManagerService$FullBackupEngine.class
-com/android/server/backup/BackupManagerService$FullBackupEngine$FullBackupRunner.class
-com/android/server/backup/BackupManagerService$FullBackupEntry.class
-com/android/server/backup/BackupManagerService$FullBackupObbConnection.class
-com/android/server/backup/BackupManagerService$FullBackupPreflight.class
-com/android/server/backup/BackupManagerService$FullBackupTask.class
-com/android/server/backup/BackupManagerService$FullRestoreEngine.class
-com/android/server/backup/BackupManagerService$FullRestoreEngine$RestoreDeleteObserver.class
-com/android/server/backup/BackupManagerService$FullRestoreEngine$RestoreFileRunnable.class
-com/android/server/backup/BackupManagerService$FullRestoreEngine$RestoreInstallObserver.class
-com/android/server/backup/BackupManagerServiceInterface.class
-com/android/server/backup/BackupManagerService$Lifecycle.class
-com/android/server/backup/BackupManagerService$Operation.class
-com/android/server/backup/BackupManagerService$PerformAdbBackupTask.class
-com/android/server/backup/BackupManagerService$PerformAdbRestoreTask.class
-com/android/server/backup/BackupManagerService$PerformAdbRestoreTask$RestoreDeleteObserver.class
-com/android/server/backup/BackupManagerService$PerformAdbRestoreTask$RestoreFileRunnable.class
-com/android/server/backup/BackupManagerService$PerformAdbRestoreTask$RestoreFinishedRunnable.class
-com/android/server/backup/BackupManagerService$PerformAdbRestoreTask$RestoreInstallObserver.class
-com/android/server/backup/BackupManagerService$PerformBackupTask.class
-com/android/server/backup/BackupManagerService$PerformClearTask.class
-com/android/server/backup/BackupManagerService$PerformFullTransportBackupTask.class
-com/android/server/backup/BackupManagerService$PerformFullTransportBackupTask$SinglePackageBackupPreflight.class
-com/android/server/backup/BackupManagerService$PerformFullTransportBackupTask$SinglePackageBackupRunner.class
-com/android/server/backup/BackupManagerService$PerformInitializeTask.class
-com/android/server/backup/BackupManagerService$PerformUnifiedRestoreTask.class
-com/android/server/backup/BackupManagerService$PerformUnifiedRestoreTask$EngineThread.class
-com/android/server/backup/BackupManagerService$PerformUnifiedRestoreTask$StreamFeederThread.class
-com/android/server/backup/BackupManagerService$ProvisionedObserver.class
-com/android/server/backup/BackupManagerService$RestoreEngine.class
-com/android/server/backup/BackupManagerService$RestoreGetSetsParams.class
-com/android/server/backup/BackupManagerService$RestoreParams.class
-com/android/server/backup/BackupManagerService$RestorePolicy.class
-com/android/server/backup/BackupManagerService$RunBackupReceiver.class
-com/android/server/backup/BackupManagerService$RunInitializeReceiver.class
-com/android/server/backup/BackupManagerService$UnifiedRestoreState.class
-com/android/server/backup/BackupPasswordManager$1.class
-com/android/server/backup/BackupPasswordManager$BackupPasswordHash.class
-com/android/server/backup/BackupPasswordManager.class
-com/android/server/backup/BackupPasswordManager$PasswordHashFileCodec.class
-com/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec.class
-com/android/server/backup/BackupRestoreTask.class
-com/android/server/backup/BackupUtils.class
-com/android/server/backup/DataChangedJournal.class
-com/android/server/backup/DataChangedJournal$Consumer.class
-com/android/server/backup/FileMetadata.class
-com/android/server/backup/fullbackup/FullBackupEngine.class
-com/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner.class
-com/android/server/backup/fullbackup/FullBackupEntry.class
-com/android/server/backup/fullbackup/FullBackupObbConnection.class
-com/android/server/backup/fullbackup/FullBackupPreflight.class
-com/android/server/backup/fullbackup/FullBackupTask.class
-com/android/server/backup/FullBackupJob.class
-com/android/server/backup/fullbackup/PerformAdbBackupTask.class
-com/android/server/backup/fullbackup/PerformFullTransportBackupTask.class
-com/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight.class
-com/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner.class
-com/android/server/backup/internal/BackupHandler.class
-com/android/server/backup/internal/BackupRequest.class
-com/android/server/backup/internal/BackupState.class
-com/android/server/backup/internal/ClearDataObserver.class
-com/android/server/backup/internal/Operation.class
-com/android/server/backup/internal/PerformBackupTask$1.class
-com/android/server/backup/internal/PerformBackupTask.class
-com/android/server/backup/internal/PerformClearTask.class
-com/android/server/backup/internal/PerformInitializeTask.class
-com/android/server/backup/internal/ProvisionedObserver.class
-com/android/server/backup/internal/RunBackupReceiver.class
-com/android/server/backup/internal/RunInitializeReceiver.class
-com/android/server/backup/KeyValueAdbBackupEngine.class
-com/android/server/backup/KeyValueAdbBackupEngine$KeyValueAdbBackupDataCopier.class
-com/android/server/backup/KeyValueAdbRestoreEngine.class
-com/android/server/backup/KeyValueBackupJob.class
-com/android/server/backup/NotificationBackupHelper.class
-com/android/server/backup/PackageManagerBackupAgent.class
-com/android/server/backup/PackageManagerBackupAgent$Metadata.class
-com/android/server/backup/params/AdbBackupParams.class
-com/android/server/backup/params/AdbParams.class
-com/android/server/backup/params/AdbRestoreParams.class
-com/android/server/backup/params/BackupParams.class
-com/android/server/backup/params/ClearParams.class
-com/android/server/backup/params/ClearRetryParams.class
-com/android/server/backup/params/RestoreGetSetsParams.class
-com/android/server/backup/params/RestoreParams.class
-com/android/server/backup/PermissionBackupHelper.class
-com/android/server/backup/PreferredActivityBackupHelper.class
-com/android/server/backup/ProcessedPackagesJournal.class
-com/android/server/backup/RefactoredBackupManagerService$1.class
-com/android/server/backup/RefactoredBackupManagerService$2.class
-com/android/server/backup/RefactoredBackupManagerService$3.class
-com/android/server/backup/RefactoredBackupManagerService$4.class
-com/android/server/backup/RefactoredBackupManagerService$5.class
-com/android/server/backup/RefactoredBackupManagerService$6.class
-com/android/server/backup/RefactoredBackupManagerService$7.class
-com/android/server/backup/RefactoredBackupManagerService$8.class
-com/android/server/backup/RefactoredBackupManagerService.class
-com/android/server/backup/RefactoredBackupManagerService$Lifecycle.class
-com/android/server/backup/restore/ActiveRestoreSession.class
-com/android/server/backup/restore/ActiveRestoreSession$EndRestoreRunnable.class
-com/android/server/backup/restore/AdbRestoreFinishedLatch.class
-com/android/server/backup/restore/FullRestoreEngine$1.class
-com/android/server/backup/restore/FullRestoreEngine$2.class
-com/android/server/backup/restore/FullRestoreEngine.class
-com/android/server/backup/restore/PerformAdbRestoreTask$1.class
-com/android/server/backup/restore/PerformAdbRestoreTask$2.class
-com/android/server/backup/restore/PerformAdbRestoreTask.class
-com/android/server/backup/restore/PerformAdbRestoreTask$RestoreFinishedRunnable.class
-com/android/server/backup/restore/PerformUnifiedRestoreTask$1.class
-com/android/server/backup/restore/PerformUnifiedRestoreTask.class
-com/android/server/backup/restore/PerformUnifiedRestoreTask$EngineThread.class
-com/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread.class
-com/android/server/backup/restore/RestoreDeleteObserver.class
-com/android/server/backup/restore/RestoreEngine.class
-com/android/server/backup/restore/RestoreFileRunnable.class
-com/android/server/backup/restore/RestoreInstallObserver.class
-com/android/server/backup/restore/RestorePolicy.class
-com/android/server/backup/restore/UnifiedRestoreState.class
-com/android/server/backup/ShortcutBackupHelper.class
-com/android/server/backup/SystemBackupAgent.class
-com/android/server/backup/Trampoline.class
-com/android/server/backup/TransportManager$1.class
-com/android/server/backup/TransportManager.class
-com/android/server/backup/TransportManager$RebindOnTimeoutHandler.class
-com/android/server/backup/TransportManager$TransportBoundListener.class
-com/android/server/backup/TransportManager$TransportConnection.class
-com/android/server/backup/TransportManager$TransportReadyCallback.class
-com/android/server/backup/UsageStatsBackupHelper.class
-com/android/server/backup/utils/AppBackupUtils.class
-com/android/server/backup/utils/BackupManagerMonitorUtils.class
-com/android/server/backup/utils/BackupObserverUtils.class
-com/android/server/backup/utils/BytesReadListener.class
-com/android/server/backup/utils/DataStreamCodec.class
-com/android/server/backup/utils/DataStreamFileCodec.class
-com/android/server/backup/utils/FullBackupRestoreObserverUtils.class
-com/android/server/backup/utils/FullBackupUtils.class
-com/android/server/backup/utils/PasswordUtils.class
-com/android/server/backup/utils/RestoreUtils.class
-com/android/server/backup/utils/SparseArrayUtils.class
-com/android/server/backup/utils/TarBackupReader.class
-com/android/server/location/GnssMeasurementsProvider$1.class
-com/android/server/location/GnssMeasurementsProvider$StatusChangedOperation.class
-com/android/server/location/GnssMeasurementsProvider.class
-com/android/server/location/GnssNavigationMessageProvider$1.class
-com/android/server/location/GnssNavigationMessageProvider$StatusChangedOperation.class
-com/android/server/location/GnssNavigationMessageProvider.class
-com/android/server/location/RemoteListenerHelper$1$1.class
-com/android/server/location/RemoteListenerHelper$1.class
-com/android/server/location/RemoteListenerHelper$2.class
-com/android/server/location/RemoteListenerHelper$HandlerRunnable.class
-com/android/server/location/RemoteListenerHelper$LinkedListener.class
-com/android/server/location/RemoteListenerHelper$ListenerOperation.class
-com/android/server/location/RemoteListenerHelper.class
diff --git a/common/robolectric/android-all/update.gradle b/common/robolectric/android-all/update.gradle
index 3ad0ace..7e5f9ca 100644
--- a/common/robolectric/android-all/update.gradle
+++ b/common/robolectric/android-all/update.gradle
@@ -33,6 +33,7 @@
         '8.1.0-robolectric-r4458339',
         '9-robolectric-4913185-2',
         '10-robolectric-5803371',
+        '11-robolectric-6757853',
 ]
 
 def buildDir = System.getProperty("user.dir")
diff --git a/common/robolectric/update-script/download-libs.gradle b/common/robolectric/update-script/download-libs.gradle
index a01d969..52f241d 100644
--- a/common/robolectric/update-script/download-libs.gradle
+++ b/common/robolectric/update-script/download-libs.gradle
@@ -32,12 +32,6 @@
         exclude group: 'org.apache.ant', module: ''
     }
 
-    compile('com.ximpleware:vtd-xml:2.11') { force = true }
-    // Force ASM dependency to be 6.0 for JDK9 support
-    compile('org.ow2.asm:asm:6.0') { force = true }
-    compile('org.ow2.asm:asm-commons:6.0') { force = true }
-    compile('org.ow2.asm:asm-util:6.0') { force = true }
-
     shadowArtifacts.forEach { shadowArtifact ->
         compile ("${shadowArtifact}")  {
             // we don't need these MavenDependencyResolver in a hermetic build
diff --git a/common/sdk-common/Android.bp b/common/sdk-common/Android.bp
index d85a3f5..63e167b 100644
--- a/common/sdk-common/Android.bp
+++ b/common/sdk-common/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "sdk-common",
     jars: ["sdk-common.jar"],
diff --git a/common/sdk-common/PREBUILT b/common/sdk-common/PREBUILT
index 71e93fd..bb95d5d 100644
--- a/common/sdk-common/PREBUILT
+++ b/common/sdk-common/PREBUILT
@@ -1 +1 @@
-sdk-common.jar was built from tools/base/sdk-common@3b69c0bf62dd53bb097792fd2e687de49e1617f1
+sdk-common.jar was built from tools/base/sdk-common@508b5c918b458394283eea486561f525037b5a5e
diff --git a/common/sdk-common/sdk-common-sources.jar b/common/sdk-common/sdk-common-sources.jar
index a8a643d..af5786e 100644
--- a/common/sdk-common/sdk-common-sources.jar
+++ b/common/sdk-common/sdk-common-sources.jar
Binary files differ
diff --git a/common/sdk-common/sdk-common.jar b/common/sdk-common/sdk-common.jar
index d24f76c..10c31aa 100644
--- a/common/sdk-common/sdk-common.jar
+++ b/common/sdk-common/sdk-common.jar
Binary files differ
diff --git a/common/sdklib/Android.bp b/common/sdklib/Android.bp
index 7fca36e..df17d7e 100644
--- a/common/sdklib/Android.bp
+++ b/common/sdklib/Android.bp
@@ -12,6 +12,10 @@
 // # See the License for the specific language governing permissions and
 // # limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "sdklib-prebuilt",
     jars: ["sdklib-prebuilt.jar"],
diff --git a/common/tools-common/Android.bp b/common/tools-common/Android.bp
index 73341c5..5525673 100644
--- a/common/tools-common/Android.bp
+++ b/common/tools-common/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "tools-common-prebuilt",
     jars: ["tools-common-prebuilt.jar"],
diff --git a/common/tools-common/PREBUILT b/common/tools-common/PREBUILT
index c2b455c..a40d37e 100644
--- a/common/tools-common/PREBUILT
+++ b/common/tools-common/PREBUILT
@@ -1 +1 @@
-tools-common-prebuilt.jar was built from tools/base/common@3b69c0bf62dd53bb097792fd2e687de49e1617f1
+tools-common-prebuilt.jar was built from tools/base/common@508b5c918b458394283eea486561f525037b5a5e
diff --git a/common/tools-common/tools-common-prebuilt-sources.jar b/common/tools-common/tools-common-prebuilt-sources.jar
index 2044c07..3f5d173 100644
--- a/common/tools-common/tools-common-prebuilt-sources.jar
+++ b/common/tools-common/tools-common-prebuilt-sources.jar
Binary files differ
diff --git a/common/tools-common/tools-common-prebuilt.jar b/common/tools-common/tools-common-prebuilt.jar
index ccbaed7..c903a7d 100644
--- a/common/tools-common/tools-common-prebuilt.jar
+++ b/common/tools-common/tools-common-prebuilt.jar
Binary files differ
diff --git a/common/tradefed/Android.bp b/common/tradefed/Android.bp
index 984321c..c12037d 100644
--- a/common/tradefed/Android.bp
+++ b/common/tradefed/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import_host {
     name: "tradefed-prebuilt-deprecated",
     jars: ["tradefed-prebuilt.jar"],
diff --git a/common/ub-janktesthelper/Android.bp b/common/ub-janktesthelper/Android.bp
index 0e2c72c..e7cf0b9 100644
--- a/common/ub-janktesthelper/Android.bp
+++ b/common/ub-janktesthelper/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import {
     name: "ub-janktesthelper",
     jars: ["ub-janktesthelper.jar"],
diff --git a/common/ub-uiautomator/Android.bp b/common/ub-uiautomator/Android.bp
index 990e622..b0095dc 100644
--- a/common/ub-uiautomator/Android.bp
+++ b/common/ub-uiautomator/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_import {
     name: "ub-uiautomator",
     jars: ["ub-uiautomator.jar"],
diff --git a/common/ub-uiautomator/PREBUILT b/common/ub-uiautomator/PREBUILT
index 380a458..a6b9fc7 100644
--- a/common/ub-uiautomator/PREBUILT
+++ b/common/ub-uiautomator/PREBUILT
@@ -1,8 +1,8 @@
 ub-uiautomator.jar
-	is obtained from ub-support-test (uiautomator-v18-2.1.4-release-no-dep.jar)
+	is obtained from ub-support-test (uiautomator-v18-2.1.5-release-no-dep.jar)
 	can be rebuilt from
 		project platform/frameworks/uiautomator
-		revision 917942d48a5412592f24f5af1343f88823236413
+		revision 4c4c25eb5e399e7e4e8532e2dedd48fa6efa17a6
 
 uiautomator-2.2.0-alpha4.jar
 	is obtained from
diff --git a/common/ub-uiautomator/ub-uiautomator.jar b/common/ub-uiautomator/ub-uiautomator.jar
index 56b027d..b6495c6 100644
--- a/common/ub-uiautomator/ub-uiautomator.jar
+++ b/common/ub-uiautomator/ub-uiautomator.jar
Binary files differ
diff --git a/common/winscope/intDefMapping.json b/common/winscope/intDefMapping.json
new file mode 100644
index 0000000..419a145
--- /dev/null
+++ b/common/winscope/intDefMapping.json
@@ -0,0 +1,11882 @@
+{
+  "android.accessibilityservice.AccessibilityGestureEvent.GestureId": {
+    "flag": false,
+    "values": {
+      "0": "GESTURE_UNKNOWN",
+      "-2": "GESTURE_TOUCH_EXPLORATION",
+      "19": "GESTURE_2_FINGER_SINGLE_TAP",
+      "43": "GESTURE_2_FINGER_SINGLE_TAP_AND_HOLD",
+      "20": "GESTURE_2_FINGER_DOUBLE_TAP",
+      "40": "GESTURE_2_FINGER_DOUBLE_TAP_AND_HOLD",
+      "21": "GESTURE_2_FINGER_TRIPLE_TAP",
+      "22": "GESTURE_3_FINGER_SINGLE_TAP",
+      "44": "GESTURE_3_FINGER_SINGLE_TAP_AND_HOLD",
+      "23": "GESTURE_3_FINGER_DOUBLE_TAP",
+      "41": "GESTURE_3_FINGER_DOUBLE_TAP_AND_HOLD",
+      "24": "GESTURE_3_FINGER_TRIPLE_TAP",
+      "45": "GESTURE_3_FINGER_TRIPLE_TAP_AND_HOLD",
+      "17": "GESTURE_DOUBLE_TAP",
+      "18": "GESTURE_DOUBLE_TAP_AND_HOLD",
+      "1": "GESTURE_SWIPE_UP",
+      "13": "GESTURE_SWIPE_UP_AND_LEFT",
+      "7": "GESTURE_SWIPE_UP_AND_DOWN",
+      "14": "GESTURE_SWIPE_UP_AND_RIGHT",
+      "2": "GESTURE_SWIPE_DOWN",
+      "15": "GESTURE_SWIPE_DOWN_AND_LEFT",
+      "8": "GESTURE_SWIPE_DOWN_AND_UP",
+      "16": "GESTURE_SWIPE_DOWN_AND_RIGHT",
+      "3": "GESTURE_SWIPE_LEFT",
+      "9": "GESTURE_SWIPE_LEFT_AND_UP",
+      "5": "GESTURE_SWIPE_LEFT_AND_RIGHT",
+      "10": "GESTURE_SWIPE_LEFT_AND_DOWN",
+      "4": "GESTURE_SWIPE_RIGHT",
+      "11": "GESTURE_SWIPE_RIGHT_AND_UP",
+      "6": "GESTURE_SWIPE_RIGHT_AND_LEFT",
+      "12": "GESTURE_SWIPE_RIGHT_AND_DOWN",
+      "26": "GESTURE_2_FINGER_SWIPE_DOWN",
+      "27": "GESTURE_2_FINGER_SWIPE_LEFT",
+      "28": "GESTURE_2_FINGER_SWIPE_RIGHT",
+      "25": "GESTURE_2_FINGER_SWIPE_UP",
+      "30": "GESTURE_3_FINGER_SWIPE_DOWN",
+      "31": "GESTURE_3_FINGER_SWIPE_LEFT",
+      "32": "GESTURE_3_FINGER_SWIPE_RIGHT",
+      "29": "GESTURE_3_FINGER_SWIPE_UP",
+      "38": "GESTURE_4_FINGER_DOUBLE_TAP",
+      "42": "GESTURE_4_FINGER_DOUBLE_TAP_AND_HOLD",
+      "37": "GESTURE_4_FINGER_SINGLE_TAP",
+      "34": "GESTURE_4_FINGER_SWIPE_DOWN",
+      "35": "GESTURE_4_FINGER_SWIPE_LEFT",
+      "36": "GESTURE_4_FINGER_SWIPE_RIGHT",
+      "33": "GESTURE_4_FINGER_SWIPE_UP",
+      "39": "GESTURE_4_FINGER_TRIPLE_TAP"
+    }
+  },
+  "android.accessibilityservice.AccessibilityService.ScreenshotErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR",
+      "2": "ERROR_TAKE_SCREENSHOT_NO_ACCESSIBILITY_ACCESS",
+      "3": "ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT",
+      "4": "ERROR_TAKE_SCREENSHOT_INVALID_DISPLAY"
+    }
+  },
+  "android.accessibilityservice.AccessibilityService.SoftKeyboardShowMode": {
+    "flag": false,
+    "values": {
+      "0": "SHOW_MODE_AUTO",
+      "1": "SHOW_MODE_HIDDEN",
+      "2": "SHOW_MODE_IGNORE_HARD_KEYBOARD"
+    }
+  },
+  "android.accessibilityservice.AccessibilityServiceInfo.FeedbackType": {
+    "flag": true,
+    "values": {
+      "4": "FEEDBACK_AUDIBLE",
+      "16": "FEEDBACK_GENERIC",
+      "2": "FEEDBACK_HAPTIC",
+      "1": "FEEDBACK_SPOKEN",
+      "8": "FEEDBACK_VISUAL",
+      "32": "FEEDBACK_BRAILLE"
+    }
+  },
+  "android.accounts.AccountManager.AccountVisibility": {
+    "flag": false,
+    "values": {
+      "0": "VISIBILITY_UNDEFINED",
+      "1": "VISIBILITY_VISIBLE",
+      "2": "VISIBILITY_USER_MANAGED_VISIBLE",
+      "3": "VISIBILITY_NOT_VISIBLE",
+      "4": "VISIBILITY_USER_MANAGED_NOT_VISIBLE"
+    }
+  },
+  "android.animation.ValueAnimator.RepeatMode": {
+    "flag": false,
+    "values": {
+      "1": "RESTART",
+      "2": "REVERSE"
+    }
+  },
+  "android.annotation.Dimension.Unit": {
+    "flag": false,
+    "values": {
+      "1": "PX",
+      "0": "DP",
+      "2": "SP"
+    }
+  },
+  "android.app.ActionBar.DisplayOptions": {
+    "flag": true,
+    "values": {
+      "1": "DISPLAY_USE_LOGO",
+      "2": "DISPLAY_SHOW_HOME",
+      "4": "DISPLAY_HOME_AS_UP",
+      "8": "DISPLAY_SHOW_TITLE",
+      "16": "DISPLAY_SHOW_CUSTOM",
+      "32": "DISPLAY_TITLE_MULTIPLE_LINES"
+    }
+  },
+  "android.app.ActionBar.NavigationMode": {
+    "flag": false,
+    "values": {
+      "0": "NAVIGATION_MODE_STANDARD",
+      "1": "NAVIGATION_MODE_LIST",
+      "2": "NAVIGATION_MODE_TABS"
+    }
+  },
+  "android.app.Activity.ContentCaptureNotificationType": {
+    "flag": false,
+    "values": {
+      "1": "CONTENT_CAPTURE_START",
+      "2": "CONTENT_CAPTURE_RESUME",
+      "3": "CONTENT_CAPTURE_PAUSE",
+      "4": "CONTENT_CAPTURE_STOP"
+    }
+  },
+  "android.app.Activity.DefaultKeyMode": {
+    "flag": false,
+    "values": {
+      "0": "DEFAULT_KEYS_DISABLE",
+      "1": "DEFAULT_KEYS_DIALER",
+      "2": "DEFAULT_KEYS_SHORTCUT",
+      "3": "DEFAULT_KEYS_SEARCH_LOCAL",
+      "4": "DEFAULT_KEYS_SEARCH_GLOBAL"
+    }
+  },
+  "android.app.ActivityManager.MoveTaskFlags": {
+    "flag": true,
+    "values": {
+      "1": "MOVE_TASK_WITH_HOME",
+      "2": "MOVE_TASK_NO_USER_ACTION"
+    }
+  },
+  "android.app.ActivityManager.ProcessCapability": {
+    "flag": true,
+    "values": {
+      "0": "PROCESS_CAPABILITY_NONE",
+      "1": "PROCESS_CAPABILITY_FOREGROUND_LOCATION",
+      "2": "PROCESS_CAPABILITY_FOREGROUND_CAMERA",
+      "4": "PROCESS_CAPABILITY_FOREGROUND_MICROPHONE"
+    }
+  },
+  "android.app.ActivityManager.ProcessState": {
+    "flag": false,
+    "values": {
+      "-1": "PROCESS_STATE_UNKNOWN",
+      "0": "PROCESS_STATE_PERSISTENT",
+      "1": "PROCESS_STATE_PERSISTENT_UI",
+      "2": "PROCESS_STATE_TOP",
+      "3": "PROCESS_STATE_BOUND_TOP",
+      "4": "PROCESS_STATE_FOREGROUND_SERVICE",
+      "5": "PROCESS_STATE_BOUND_FOREGROUND_SERVICE",
+      "6": "PROCESS_STATE_IMPORTANT_FOREGROUND",
+      "7": "PROCESS_STATE_IMPORTANT_BACKGROUND",
+      "8": "PROCESS_STATE_TRANSIENT_BACKGROUND",
+      "9": "PROCESS_STATE_BACKUP",
+      "10": "PROCESS_STATE_SERVICE",
+      "11": "PROCESS_STATE_RECEIVER",
+      "12": "PROCESS_STATE_TOP_SLEEPING",
+      "13": "PROCESS_STATE_HEAVY_WEIGHT",
+      "14": "PROCESS_STATE_HOME",
+      "15": "PROCESS_STATE_LAST_ACTIVITY",
+      "16": "PROCESS_STATE_CACHED_ACTIVITY",
+      "17": "PROCESS_STATE_CACHED_ACTIVITY_CLIENT",
+      "18": "PROCESS_STATE_CACHED_RECENT",
+      "19": "PROCESS_STATE_CACHED_EMPTY"
+    }
+  },
+  "android.app.ActivityManager.RunningAppProcessInfo.Importance": {
+    "flag": false,
+    "values": {
+      "100": "IMPORTANCE_FOREGROUND",
+      "125": "IMPORTANCE_FOREGROUND_SERVICE",
+      "325": "IMPORTANCE_TOP_SLEEPING",
+      "200": "IMPORTANCE_VISIBLE",
+      "230": "IMPORTANCE_PERCEPTIBLE",
+      "350": "IMPORTANCE_CANT_SAVE_STATE",
+      "300": "IMPORTANCE_SERVICE",
+      "400": "IMPORTANCE_CACHED",
+      "1000": "IMPORTANCE_GONE"
+    }
+  },
+  "android.app.ActivityOptions.SourceInfo.SourceType": {
+    "flag": true,
+    "values": {
+      "1": "TYPE_LAUNCHER",
+      "2": "TYPE_NOTIFICATION",
+      "3": "TYPE_LOCKSCREEN"
+    }
+  },
+  "android.app.AlarmManager.AlarmType": {
+    "flag": false,
+    "values": {
+      "0": "RTC_WAKEUP",
+      "1": "RTC",
+      "2": "ELAPSED_REALTIME_WAKEUP",
+      "3": "ELAPSED_REALTIME"
+    }
+  },
+  "android.app.AppOpsManager.HistoricalMode": {
+    "flag": true,
+    "values": {
+      "0": "HISTORICAL_MODE_DISABLED",
+      "1": "HISTORICAL_MODE_ENABLED_ACTIVE",
+      "2": "HISTORICAL_MODE_ENABLED_PASSIVE"
+    }
+  },
+  "android.app.AppOpsManager.HistoricalOpsRequestFilter": {
+    "flag": true,
+    "values": {
+      "1": "FILTER_BY_UID",
+      "2": "FILTER_BY_PACKAGE_NAME",
+      "4": "FILTER_BY_ATTRIBUTION_TAG",
+      "8": "FILTER_BY_OP_NAMES"
+    }
+  },
+  "android.app.AppOpsManager.Mode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_ALLOWED",
+      "1": "MODE_IGNORED",
+      "2": "MODE_ERRORED",
+      "3": "MODE_DEFAULT",
+      "4": "MODE_FOREGROUND"
+    }
+  },
+  "android.app.AppOpsManager.NotedOpCollectionMode": {
+    "flag": false,
+    "values": {
+      "0": "DONT_COLLECT",
+      "1": "COLLECT_SELF",
+      "2": "COLLECT_SYNC",
+      "3": "COLLECT_ASYNC"
+    }
+  },
+  "android.app.AppOpsManager.OpFlags": {
+    "flag": true,
+    "values": {
+      "1": "OP_FLAG_SELF",
+      "2": "OP_FLAG_TRUSTED_PROXY",
+      "4": "OP_FLAG_UNTRUSTED_PROXY",
+      "8": "OP_FLAG_TRUSTED_PROXIED",
+      "16": "OP_FLAG_UNTRUSTED_PROXIED"
+    }
+  },
+  "android.app.AppOpsManager.SamplingStrategy": {
+    "flag": false,
+    "values": {
+      "0": "SAMPLING_STRATEGY_DEFAULT",
+      "1": "SAMPLING_STRATEGY_UNIFORM",
+      "2": "SAMPLING_STRATEGY_RARELY_USED",
+      "3": "SAMPLING_STRATEGY_BOOT_TIME_SAMPLING",
+      "4": "SAMPLING_STRATEGY_UNIFORM_OPS"
+    }
+  },
+  "android.app.AppOpsManager.ShouldCollectNoteOp": {
+    "flag": true,
+    "values": {
+      "0": "SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED",
+      "1": "SHOULD_NOT_COLLECT_NOTE_OP",
+      "2": "SHOULD_COLLECT_NOTE_OP"
+    }
+  },
+  "android.app.AppOpsManager.UidState": {
+    "flag": false,
+    "values": {
+      "100": "UID_STATE_PERSISTENT",
+      "200": "UID_STATE_TOP",
+      "300": "UID_STATE_FOREGROUND_SERVICE_LOCATION",
+      "400": "UID_STATE_FOREGROUND_SERVICE",
+      "500": "UID_STATE_FOREGROUND",
+      "600": "UID_STATE_BACKGROUND",
+      "700": "UID_STATE_CACHED"
+    }
+  },
+  "android.app.ApplicationExitInfo.Reason": {
+    "flag": false,
+    "values": {
+      "0": "REASON_UNKNOWN",
+      "1": "REASON_EXIT_SELF",
+      "2": "REASON_SIGNALED",
+      "3": "REASON_LOW_MEMORY",
+      "4": "REASON_CRASH",
+      "5": "REASON_CRASH_NATIVE",
+      "6": "REASON_ANR",
+      "7": "REASON_INITIALIZATION_FAILURE",
+      "8": "REASON_PERMISSION_CHANGE",
+      "9": "REASON_EXCESSIVE_RESOURCE_USAGE",
+      "10": "REASON_USER_REQUESTED",
+      "11": "REASON_USER_STOPPED",
+      "12": "REASON_DEPENDENCY_DIED",
+      "13": "REASON_OTHER"
+    }
+  },
+  "android.app.ApplicationExitInfo.SubReason": {
+    "flag": false,
+    "values": {
+      "0": "SUBREASON_UNKNOWN",
+      "1": "SUBREASON_WAIT_FOR_DEBUGGER",
+      "2": "SUBREASON_TOO_MANY_CACHED",
+      "3": "SUBREASON_TOO_MANY_EMPTY",
+      "4": "SUBREASON_TRIM_EMPTY",
+      "5": "SUBREASON_LARGE_CACHED",
+      "6": "SUBREASON_MEMORY_PRESSURE",
+      "7": "SUBREASON_EXCESSIVE_CPU",
+      "8": "SUBREASON_SYSTEM_UPDATE_DONE",
+      "9": "SUBREASON_KILL_ALL_FG",
+      "10": "SUBREASON_KILL_ALL_BG_EXCEPT",
+      "11": "SUBREASON_KILL_UID",
+      "12": "SUBREASON_KILL_PID",
+      "13": "SUBREASON_INVALID_START",
+      "14": "SUBREASON_INVALID_STATE",
+      "15": "SUBREASON_IMPERCEPTIBLE",
+      "16": "SUBREASON_REMOVE_LRU",
+      "17": "SUBREASON_ISOLATED_NOT_NEEDED"
+    }
+  },
+  "android.app.ContextImpl.ContextType": {
+    "flag": false,
+    "values": {
+      "0": "CONTEXT_TYPE_NON_UI",
+      "1": "CONTEXT_TYPE_DISPLAY_CONTEXT",
+      "2": "CONTEXT_TYPE_ACTIVITY",
+      "3": "CONTEXT_TYPE_WINDOW_CONTEXT",
+      "4": "CONTEXT_TYPE_SYSTEM_OR_SYSTEM_UI"
+    }
+  },
+  "android.app.ContextImpl.ServiceInitializationState": {
+    "flag": false,
+    "values": {
+      "0": "STATE_UNINITIALIZED",
+      "1": "STATE_INITIALIZING",
+      "2": "STATE_READY",
+      "3": "STATE_NOT_FOUND"
+    }
+  },
+  "android.app.FragmentTransaction.Transit": {
+    "flag": false,
+    "values": {
+      "0": "TRANSIT_NONE",
+      "4097": "TRANSIT_FRAGMENT_OPEN",
+      "8194": "TRANSIT_FRAGMENT_CLOSE",
+      "4099": "TRANSIT_FRAGMENT_FADE"
+    }
+  },
+  "android.app.Instrumentation.UiAutomationFlags": {
+    "flag": false,
+    "values": {
+      "0": "FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES",
+      "1": "FLAG_DONT_USE_ACCESSIBILITY"
+    }
+  },
+  "android.app.KeyguardManager.LockTypes": {
+    "flag": false,
+    "values": {
+      "0": "PASSWORD",
+      "1": "PIN",
+      "2": "PATTERN"
+    }
+  },
+  "android.app.Notification.Action.SemanticAction": {
+    "flag": false,
+    "values": {
+      "0": "SEMANTIC_ACTION_NONE",
+      "1": "SEMANTIC_ACTION_REPLY",
+      "2": "SEMANTIC_ACTION_MARK_AS_READ",
+      "3": "SEMANTIC_ACTION_MARK_AS_UNREAD",
+      "4": "SEMANTIC_ACTION_DELETE",
+      "5": "SEMANTIC_ACTION_ARCHIVE",
+      "6": "SEMANTIC_ACTION_MUTE",
+      "7": "SEMANTIC_ACTION_UNMUTE",
+      "8": "SEMANTIC_ACTION_THUMBS_UP",
+      "9": "SEMANTIC_ACTION_THUMBS_DOWN",
+      "10": "SEMANTIC_ACTION_CALL"
+    }
+  },
+  "android.app.Notification.GroupAlertBehavior": {
+    "flag": false,
+    "values": {
+      "0": "GROUP_ALERT_ALL",
+      "2": "GROUP_ALERT_CHILDREN",
+      "1": "GROUP_ALERT_SUMMARY"
+    }
+  },
+  "android.app.Notification.MessagingStyle.ConversationType": {
+    "flag": false,
+    "values": {
+      "0": "CONVERSATION_TYPE_LEGACY",
+      "1": "CONVERSATION_TYPE_NORMAL",
+      "2": "CONVERSATION_TYPE_IMPORTANT"
+    }
+  },
+  "android.app.Notification.NotificationFlags": {
+    "flag": false,
+    "values": {
+      "1": "FLAG_SHOW_LIGHTS",
+      "2": "FLAG_ONGOING_EVENT",
+      "4": "FLAG_INSISTENT",
+      "8": "FLAG_ONLY_ALERT_ONCE",
+      "16": "FLAG_AUTO_CANCEL",
+      "32": "FLAG_NO_CLEAR",
+      "64": "FLAG_FOREGROUND_SERVICE",
+      "128": "FLAG_HIGH_PRIORITY",
+      "256": "FLAG_LOCAL_ONLY",
+      "512": "FLAG_GROUP_SUMMARY",
+      "1024": "FLAG_AUTOGROUP_SUMMARY",
+      "4096": "FLAG_BUBBLE",
+      "8192": "FLAG_IMMEDIATE_FGS_DISPLAY"
+    }
+  },
+  "android.app.Notification.Priority": {
+    "flag": false,
+    "values": {
+      "0": "PRIORITY_DEFAULT",
+      "-1": "PRIORITY_LOW",
+      "-2": "PRIORITY_MIN",
+      "1": "PRIORITY_HIGH",
+      "2": "PRIORITY_MAX"
+    }
+  },
+  "android.app.Notification.Visibility": {
+    "flag": false,
+    "values": {
+      "1": "VISIBILITY_PUBLIC",
+      "0": "VISIBILITY_PRIVATE",
+      "-1": "VISIBILITY_SECRET"
+    }
+  },
+  "android.app.NotificationManager.AutomaticZenRuleStatus": {
+    "flag": false,
+    "values": {
+      "1": "AUTOMATIC_RULE_STATUS_ENABLED",
+      "2": "AUTOMATIC_RULE_STATUS_DISABLED",
+      "3": "AUTOMATIC_RULE_STATUS_REMOVED",
+      "-1": "AUTOMATIC_RULE_STATUS_UNKNOWN"
+    }
+  },
+  "android.app.NotificationManager.Importance": {
+    "flag": false,
+    "values": {
+      "-1000": "IMPORTANCE_UNSPECIFIED",
+      "0": "IMPORTANCE_NONE",
+      "1": "IMPORTANCE_MIN",
+      "2": "IMPORTANCE_LOW",
+      "3": "IMPORTANCE_DEFAULT",
+      "4": "IMPORTANCE_HIGH"
+    }
+  },
+  "android.app.NotificationManager.InterruptionFilter": {
+    "flag": false,
+    "values": {
+      "3": "INTERRUPTION_FILTER_NONE",
+      "2": "INTERRUPTION_FILTER_PRIORITY",
+      "4": "INTERRUPTION_FILTER_ALARMS",
+      "1": "INTERRUPTION_FILTER_ALL",
+      "0": "INTERRUPTION_FILTER_UNKNOWN"
+    }
+  },
+  "android.app.NotificationManager.Policy.ConversationSenders": {
+    "flag": false,
+    "values": {
+      "1": "CONVERSATION_SENDERS_ANYONE",
+      "2": "CONVERSATION_SENDERS_IMPORTANT",
+      "3": "CONVERSATION_SENDERS_NONE"
+    }
+  },
+  "android.app.NotificationManager.Policy.PrioritySenders": {
+    "flag": false,
+    "values": {
+      "0": "PRIORITY_SENDERS_ANY",
+      "1": "PRIORITY_SENDERS_CONTACTS",
+      "2": "PRIORITY_SENDERS_STARRED"
+    }
+  },
+  "android.app.PendingIntent.Flags": {
+    "flag": true,
+    "values": {
+      "1073741824": "FLAG_ONE_SHOT",
+      "536870912": "FLAG_NO_CREATE",
+      "268435456": "FLAG_CANCEL_CURRENT",
+      "134217728": "FLAG_UPDATE_CURRENT",
+      "67108864": "FLAG_IMMUTABLE",
+      "33554432": "FLAG_MUTABLE_UNAUDITED",
+      "1": "FILL_IN_ACTION",
+      "2": "FILL_IN_DATA",
+      "4": "FILL_IN_CATEGORIES",
+      "8": "FILL_IN_COMPONENT",
+      "16": "FILL_IN_PACKAGE",
+      "32": "FILL_IN_SOURCE_BOUNDS",
+      "64": "FILL_IN_SELECTOR",
+      "128": "FILL_IN_CLIP_DATA"
+    }
+  },
+  "android.app.RemoteInput.EditChoicesBeforeSending": {
+    "flag": false,
+    "values": {
+      "0": "EDIT_CHOICES_BEFORE_SENDING_AUTO",
+      "1": "EDIT_CHOICES_BEFORE_SENDING_DISABLED",
+      "2": "EDIT_CHOICES_BEFORE_SENDING_ENABLED"
+    }
+  },
+  "android.app.RemoteInput.Source": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_FREE_FORM_INPUT",
+      "1": "SOURCE_CHOICE"
+    }
+  },
+  "android.app.Service.StartArgFlags": {
+    "flag": true,
+    "values": {
+      "1": "START_FLAG_REDELIVERY",
+      "2": "START_FLAG_RETRY"
+    }
+  },
+  "android.app.Service.StartResult": {
+    "flag": false,
+    "values": {
+      "0": "START_STICKY_COMPATIBILITY",
+      "1": "START_STICKY",
+      "2": "START_NOT_STICKY",
+      "3": "START_REDELIVER_INTENT"
+    }
+  },
+  "android.app.Service.StopForegroundFlags": {
+    "flag": true,
+    "values": {
+      "1": "STOP_FOREGROUND_REMOVE",
+      "2": "STOP_FOREGROUND_DETACH"
+    }
+  },
+  "android.app.StatusBarManager.Disable2Flags": {
+    "flag": true,
+    "values": {
+      "0": "DISABLE2_NONE",
+      "31": "DISABLE2_MASK",
+      "1": "DISABLE2_QUICK_SETTINGS",
+      "2": "DISABLE2_SYSTEM_ICONS",
+      "4": "DISABLE2_NOTIFICATION_SHADE",
+      "8": "DISABLE2_GLOBAL_ACTIONS",
+      "16": "DISABLE2_ROTATE_SUGGESTIONS"
+    }
+  },
+  "android.app.StatusBarManager.DisableFlags": {
+    "flag": true,
+    "values": {
+      "0": "DISABLE_NONE",
+      "65536": "DISABLE_EXPAND",
+      "131072": "DISABLE_NOTIFICATION_ICONS",
+      "262144": "DISABLE_NOTIFICATION_ALERTS",
+      "524288": "DISABLE_NOTIFICATION_TICKER",
+      "1048576": "DISABLE_SYSTEM_INFO",
+      "2097152": "DISABLE_HOME",
+      "16777216": "DISABLE_RECENT",
+      "4194304": "DISABLE_BACK",
+      "8388608": "DISABLE_CLOCK",
+      "33554432": "DISABLE_SEARCH"
+    }
+  },
+  "android.app.StatusBarManager.WindowType": {
+    "flag": true,
+    "values": {
+      "1": "WINDOW_STATUS_BAR",
+      "2": "WINDOW_NAVIGATION_BAR"
+    }
+  },
+  "android.app.StatusBarManager.WindowVisibleState": {
+    "flag": true,
+    "values": {
+      "0": "WINDOW_STATE_SHOWING",
+      "1": "WINDOW_STATE_HIDING",
+      "2": "WINDOW_STATE_HIDDEN"
+    }
+  },
+  "android.app.UiAutomation.ConnectionState": {
+    "flag": false,
+    "values": {
+      "0": "DISCONNECTED",
+      "1": "CONNECTING",
+      "2": "CONNECTED",
+      "3": "FAILED"
+    }
+  },
+  "android.app.UiModeManager.DisableCarMode": {
+    "flag": false,
+    "values": {
+      "1": "DISABLE_CAR_MODE_GO_HOME"
+    }
+  },
+  "android.app.UiModeManager.EnableCarMode": {
+    "flag": false,
+    "values": {
+      "1": "ENABLE_CAR_MODE_GO_CAR_HOME",
+      "2": "ENABLE_CAR_MODE_ALLOW_SLEEP"
+    }
+  },
+  "android.app.UiModeManager.NightMode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_NIGHT_AUTO",
+      "3": "MODE_NIGHT_CUSTOM",
+      "1": "MODE_NIGHT_NO",
+      "2": "MODE_NIGHT_YES"
+    }
+  },
+  "android.app.UiModeManager.ProjectionType": {
+    "flag": false,
+    "values": {
+      "0": "PROJECTION_TYPE_NONE",
+      "1": "PROJECTION_TYPE_AUTOMOTIVE",
+      "65535": "PROJECTION_TYPE_ALL"
+    }
+  },
+  "android.app.Vr2dDisplayProperties.Vr2dDisplayFlag": {
+    "flag": false,
+    "values": {
+      "1": "FLAG_VIRTUAL_DISPLAY_ENABLED"
+    }
+  },
+  "android.app.WaitResult.LaunchState": {
+    "flag": false,
+    "values": {
+      "0": "LAUNCH_STATE_UNKNOWN",
+      "1": "LAUNCH_STATE_COLD",
+      "2": "LAUNCH_STATE_WARM",
+      "3": "LAUNCH_STATE_HOT",
+      "4": "LAUNCH_STATE_RELAUNCH"
+    }
+  },
+  "android.app.WallpaperManager.SetWallpaperFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_SYSTEM",
+      "2": "FLAG_LOCK"
+    }
+  },
+  "android.app.WindowConfiguration.ActivityType": {
+    "flag": false,
+    "values": {
+      "0": "ACTIVITY_TYPE_UNDEFINED",
+      "1": "ACTIVITY_TYPE_STANDARD",
+      "2": "ACTIVITY_TYPE_HOME",
+      "3": "ACTIVITY_TYPE_RECENTS",
+      "4": "ACTIVITY_TYPE_ASSISTANT",
+      "5": "ACTIVITY_TYPE_DREAM"
+    }
+  },
+  "android.app.WindowConfiguration.AlwaysOnTop": {
+    "flag": false,
+    "values": {
+      "0": "ALWAYS_ON_TOP_UNDEFINED",
+      "1": "ALWAYS_ON_TOP_ON",
+      "2": "ALWAYS_ON_TOP_OFF"
+    }
+  },
+  "android.app.WindowConfiguration.WindowConfig": {
+    "flag": true,
+    "values": {
+      "1": "WINDOW_CONFIG_BOUNDS",
+      "2": "WINDOW_CONFIG_APP_BOUNDS",
+      "4": "WINDOW_CONFIG_MAX_BOUNDS",
+      "8": "WINDOW_CONFIG_WINDOWING_MODE",
+      "16": "WINDOW_CONFIG_ACTIVITY_TYPE",
+      "32": "WINDOW_CONFIG_ALWAYS_ON_TOP",
+      "64": "WINDOW_CONFIG_ROTATION",
+      "128": "WINDOW_CONFIG_DISPLAY_WINDOWING_MODE"
+    }
+  },
+  "android.app.WindowConfiguration.WindowingMode": {
+    "flag": false,
+    "values": {
+      "0": "WINDOWING_MODE_UNDEFINED",
+      "1": "WINDOWING_MODE_FULLSCREEN",
+      "6": "WINDOWING_MODE_MULTI_WINDOW",
+      "2": "WINDOWING_MODE_PINNED",
+      "3": "WINDOWING_MODE_SPLIT_SCREEN_PRIMARY",
+      "4": "WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY",
+      "5": "WINDOWING_MODE_FREEFORM"
+    }
+  },
+  "android.app.admin.DeviceAdminReceiver.BugreportFailureCode": {
+    "flag": false,
+    "values": {
+      "0": "BUGREPORT_FAILURE_FAILED_COMPLETING",
+      "1": "BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.AttestationIdType": {
+    "flag": true,
+    "values": {
+      "1": "ID_TYPE_BASE_INFO",
+      "2": "ID_TYPE_SERIAL",
+      "4": "ID_TYPE_IMEI",
+      "8": "ID_TYPE_MEID",
+      "16": "ID_TYPE_INDIVIDUAL_ATTESTATION"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.CreateAndManageUserFlags": {
+    "flag": true,
+    "values": {
+      "1": "SKIP_SETUP_WIZARD",
+      "2": "MAKE_USER_EPHEMERAL",
+      "4": "MAKE_USER_DEMO",
+      "16": "LEAVE_ALL_SYSTEM_APPS_ENABLED"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.DevicePolicyOperation": {
+    "flag": false,
+    "values": {
+      "1": "OPERATION_LOCK_NOW"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.InstallUpdateCallbackErrorConstants": {
+    "flag": false,
+    "values": {
+      "1": "UPDATE_ERROR_UNKNOWN",
+      "2": "UPDATE_ERROR_INCORRECT_OS_VERSION",
+      "3": "UPDATE_ERROR_UPDATE_FILE_INVALID",
+      "4": "UPDATE_ERROR_FILE_NOT_FOUND",
+      "5": "UPDATE_ERROR_BATTERY_LOW"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.LockNowFlag": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.LockTaskFeature": {
+    "flag": true,
+    "values": {
+      "0": "LOCK_TASK_FEATURE_NONE",
+      "1": "LOCK_TASK_FEATURE_SYSTEM_INFO",
+      "2": "LOCK_TASK_FEATURE_NOTIFICATIONS",
+      "4": "LOCK_TASK_FEATURE_HOME",
+      "8": "LOCK_TASK_FEATURE_OVERVIEW",
+      "16": "LOCK_TASK_FEATURE_GLOBAL_ACTIONS",
+      "32": "LOCK_TASK_FEATURE_KEYGUARD",
+      "64": "LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.PasswordComplexity": {
+    "flag": false,
+    "values": {
+      "0": "PASSWORD_COMPLEXITY_NONE",
+      "65536": "PASSWORD_COMPLEXITY_LOW",
+      "196608": "PASSWORD_COMPLEXITY_MEDIUM",
+      "327680": "PASSWORD_COMPLEXITY_HIGH"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.PermissionGrantState": {
+    "flag": false,
+    "values": {
+      "0": "PERMISSION_GRANT_STATE_DEFAULT",
+      "1": "PERMISSION_GRANT_STATE_GRANTED",
+      "2": "PERMISSION_GRANT_STATE_DENIED"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.PersonalAppsSuspensionReason": {
+    "flag": true,
+    "values": {
+      "0": "PERSONAL_APPS_NOT_SUSPENDED",
+      "1": "PERSONAL_APPS_SUSPENDED_EXPLICITLY",
+      "2": "PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.PrivateDnsMode": {
+    "flag": true,
+    "values": {
+      "0": "PRIVATE_DNS_MODE_UNKNOWN",
+      "1": "PRIVATE_DNS_MODE_OFF",
+      "2": "PRIVATE_DNS_MODE_OPPORTUNISTIC",
+      "3": "PRIVATE_DNS_MODE_PROVIDER_HOSTNAME"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.PrivateDnsModeErrorCodes": {
+    "flag": false,
+    "values": {
+      "0": "PRIVATE_DNS_SET_NO_ERROR",
+      "1": "PRIVATE_DNS_SET_ERROR_HOST_NOT_SERVING",
+      "2": "PRIVATE_DNS_SET_ERROR_FAILURE_SETTING"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.ProvisioningPreCondition": {
+    "flag": false,
+    "values": {
+      "0": "CODE_OK",
+      "1": "CODE_HAS_DEVICE_OWNER",
+      "2": "CODE_USER_HAS_PROFILE_OWNER",
+      "3": "CODE_USER_NOT_RUNNING",
+      "4": "CODE_USER_SETUP_COMPLETED",
+      "7": "CODE_NOT_SYSTEM_USER",
+      "8": "CODE_HAS_PAIRED",
+      "9": "CODE_MANAGED_USERS_NOT_SUPPORTED",
+      "10": "CODE_SYSTEM_USER",
+      "11": "CODE_CANNOT_ADD_MANAGED_PROFILE",
+      "12": "CODE_NOT_SYSTEM_USER_SPLIT",
+      "13": "CODE_DEVICE_ADMIN_NOT_SUPPORTED",
+      "14": "CODE_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER"
+    }
+  },
+  "android.app.admin.DevicePolicyManager.UserProvisioningState": {
+    "flag": false,
+    "values": {
+      "0": "STATE_USER_UNMANAGED",
+      "1": "STATE_USER_SETUP_INCOMPLETE",
+      "2": "STATE_USER_SETUP_COMPLETE",
+      "3": "STATE_USER_SETUP_FINALIZED",
+      "4": "STATE_USER_PROFILE_COMPLETE",
+      "5": "STATE_USER_PROFILE_FINALIZED"
+    }
+  },
+  "android.app.admin.PasswordMetrics.CharacterCatagory": {
+    "flag": false,
+    "values": {
+      "1": "CHAR_UPPER_CASE",
+      "0": "CHAR_LOWER_CASE",
+      "2": "CHAR_DIGIT",
+      "3": "CHAR_SYMBOL"
+    }
+  },
+  "android.app.admin.SecurityLog.SecurityLogLevel": {
+    "flag": false,
+    "values": {
+      "1": "LEVEL_INFO",
+      "2": "LEVEL_WARNING",
+      "3": "LEVEL_ERROR"
+    }
+  },
+  "android.app.admin.SecurityLog.SecurityLogTag": {
+    "flag": false,
+    "values": {
+      "210001": "TAG_ADB_SHELL_INTERACTIVE",
+      "210002": "TAG_ADB_SHELL_CMD",
+      "210003": "TAG_SYNC_RECV_FILE",
+      "210004": "TAG_SYNC_SEND_FILE",
+      "210005": "TAG_APP_PROCESS_START",
+      "210006": "TAG_KEYGUARD_DISMISSED",
+      "210007": "TAG_KEYGUARD_DISMISS_AUTH_ATTEMPT",
+      "210008": "TAG_KEYGUARD_SECURED",
+      "210009": "TAG_OS_STARTUP",
+      "210010": "TAG_OS_SHUTDOWN",
+      "210011": "TAG_LOGGING_STARTED",
+      "210012": "TAG_LOGGING_STOPPED",
+      "210013": "TAG_MEDIA_MOUNT",
+      "210014": "TAG_MEDIA_UNMOUNT",
+      "210015": "TAG_LOG_BUFFER_SIZE_CRITICAL",
+      "210016": "TAG_PASSWORD_EXPIRATION_SET",
+      "210017": "TAG_PASSWORD_COMPLEXITY_SET",
+      "210018": "TAG_PASSWORD_HISTORY_LENGTH_SET",
+      "210019": "TAG_MAX_SCREEN_LOCK_TIMEOUT_SET",
+      "210020": "TAG_MAX_PASSWORD_ATTEMPTS_SET",
+      "210021": "TAG_KEYGUARD_DISABLED_FEATURES_SET",
+      "210022": "TAG_REMOTE_LOCK",
+      "210027": "TAG_USER_RESTRICTION_ADDED",
+      "210028": "TAG_USER_RESTRICTION_REMOVED",
+      "210023": "TAG_WIPE_FAILURE",
+      "210024": "TAG_KEY_GENERATED",
+      "210025": "TAG_KEY_IMPORT",
+      "210026": "TAG_KEY_DESTRUCTION",
+      "210029": "TAG_CERT_AUTHORITY_INSTALLED",
+      "210030": "TAG_CERT_AUTHORITY_REMOVED",
+      "210031": "TAG_CRYPTO_SELF_TEST_COMPLETED",
+      "210032": "TAG_KEY_INTEGRITY_VIOLATION",
+      "210033": "TAG_CERT_VALIDATION_FAILURE",
+      "210034": "TAG_CAMERA_POLICY_SET"
+    }
+  },
+  "android.app.admin.SystemUpdateInfo.SecurityPatchState": {
+    "flag": false,
+    "values": {
+      "1": "SECURITY_PATCH_STATE_FALSE",
+      "2": "SECURITY_PATCH_STATE_TRUE",
+      "0": "SECURITY_PATCH_STATE_UNKNOWN"
+    }
+  },
+  "android.app.admin.SystemUpdatePolicy.InstallationOption.InstallationOptionType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_INSTALL_AUTOMATIC",
+      "4": "TYPE_PAUSE",
+      "3": "TYPE_POSTPONE"
+    }
+  },
+  "android.app.admin.SystemUpdatePolicy.SystemUpdatePolicyType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_INSTALL_AUTOMATIC",
+      "2": "TYPE_INSTALL_WINDOWED",
+      "3": "TYPE_POSTPONE"
+    }
+  },
+  "android.app.admin.SystemUpdatePolicy.ValidationFailedException.ValidationFailureType": {
+    "flag": false,
+    "values": {
+      "0": "ERROR_NONE",
+      "2": "ERROR_DUPLICATE_OR_OVERLAP",
+      "3": "ERROR_NEW_FREEZE_PERIOD_TOO_LONG",
+      "4": "ERROR_NEW_FREEZE_PERIOD_TOO_CLOSE",
+      "5": "ERROR_COMBINED_FREEZE_PERIOD_TOO_LONG",
+      "6": "ERROR_COMBINED_FREEZE_PERIOD_TOO_CLOSE",
+      "1": "ERROR_UNKNOWN"
+    }
+  },
+  "android.app.backup.BackupManager.OperationType": {
+    "flag": false,
+    "values": {
+      "0": "BACKUP",
+      "1": "MIGRATION"
+    }
+  },
+  "android.app.compat.ChangeIdStateQuery.QueryType": {
+    "flag": false,
+    "values": {
+      "0": "QUERY_BY_PACKAGE_NAME",
+      "1": "QUERY_BY_UID"
+    }
+  },
+  "android.app.job.JobInfo.BackoffPolicy": {
+    "flag": false,
+    "values": {
+      "0": "BACKOFF_POLICY_LINEAR",
+      "1": "BACKOFF_POLICY_EXPONENTIAL"
+    }
+  },
+  "android.app.job.JobInfo.NetworkType": {
+    "flag": false,
+    "values": {
+      "0": "NETWORK_TYPE_NONE",
+      "1": "NETWORK_TYPE_ANY",
+      "2": "NETWORK_TYPE_UNMETERED",
+      "3": "NETWORK_TYPE_NOT_ROAMING",
+      "4": "NETWORK_TYPE_CELLULAR"
+    }
+  },
+  "android.app.job.JobInfo.TriggerContentUri.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_NOTIFY_FOR_DESCENDANTS"
+    }
+  },
+  "android.app.job.JobScheduler.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_FAILURE",
+      "1": "RESULT_SUCCESS"
+    }
+  },
+  "android.app.prediction.AppTargetEvent.ActionType": {
+    "flag": false,
+    "values": {
+      "1": "ACTION_LAUNCH",
+      "2": "ACTION_DISMISS",
+      "3": "ACTION_PIN",
+      "4": "ACTION_UNPIN"
+    }
+  },
+  "android.app.role.RoleManager.ManageHoldersFlags": {
+    "flag": true,
+    "values": {
+      "1": "MANAGE_HOLDERS_FLAG_DONT_KILL_APP"
+    }
+  },
+  "android.app.servertransaction.ActivityLifecycleItem.LifecycleState": {
+    "flag": false,
+    "values": {
+      "-1": "UNDEFINED",
+      "0": "PRE_ON_CREATE",
+      "1": "ON_CREATE",
+      "2": "ON_START",
+      "3": "ON_RESUME",
+      "4": "ON_PAUSE",
+      "5": "ON_STOP",
+      "6": "ON_DESTROY",
+      "7": "ON_RESTART"
+    }
+  },
+  "android.app.time.TimeZoneCapabilities.CapabilityState": {
+    "flag": false,
+    "values": {
+      "10": "CAPABILITY_NOT_SUPPORTED",
+      "20": "CAPABILITY_NOT_ALLOWED",
+      "30": "CAPABILITY_NOT_APPLICABLE",
+      "40": "CAPABILITY_POSSESSED"
+    }
+  },
+  "android.app.timezone.Callback.AsyncResultCode": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "1": "ERROR_UNKNOWN_FAILURE",
+      "2": "ERROR_INSTALL_BAD_DISTRO_STRUCTURE",
+      "3": "ERROR_INSTALL_BAD_DISTRO_FORMAT_VERSION",
+      "4": "ERROR_INSTALL_RULES_TOO_OLD",
+      "5": "ERROR_INSTALL_VALIDATION_ERROR"
+    }
+  },
+  "android.app.timezone.RulesManager.ResultCode": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "2": "ERROR_UNKNOWN_FAILURE",
+      "1": "ERROR_OPERATION_IN_PROGRESS"
+    }
+  },
+  "android.app.timezone.RulesState.DistroStatus": {
+    "flag": false,
+    "values": {
+      "0": "DISTRO_STATUS_UNKNOWN",
+      "1": "DISTRO_STATUS_NONE",
+      "2": "DISTRO_STATUS_INSTALLED"
+    }
+  },
+  "android.app.timezone.RulesState.StagedOperationType": {
+    "flag": false,
+    "values": {
+      "0": "STAGED_OPERATION_UNKNOWN",
+      "1": "STAGED_OPERATION_NONE",
+      "2": "STAGED_OPERATION_UNINSTALL",
+      "3": "STAGED_OPERATION_INSTALL"
+    }
+  },
+  "android.app.timezonedetector.TelephonyTimeZoneSuggestion.MatchType": {
+    "flag": false,
+    "values": {
+      "0": "MATCH_TYPE_NA",
+      "2": "MATCH_TYPE_NETWORK_COUNTRY_ONLY",
+      "3": "MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET",
+      "4": "MATCH_TYPE_EMULATOR_ZONE_ID",
+      "5": "MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY"
+    }
+  },
+  "android.app.timezonedetector.TelephonyTimeZoneSuggestion.Quality": {
+    "flag": false,
+    "values": {
+      "0": "QUALITY_NA",
+      "1": "QUALITY_SINGLE_ZONE",
+      "2": "QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET",
+      "3": "QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS"
+    }
+  },
+  "android.app.usage.NetworkStats.Bucket.DefaultNetworkStatus": {
+    "flag": false,
+    "values": {
+      "-1": "DEFAULT_NETWORK_ALL",
+      "1": "DEFAULT_NETWORK_NO",
+      "2": "DEFAULT_NETWORK_YES"
+    }
+  },
+  "android.app.usage.NetworkStats.Bucket.Metered": {
+    "flag": false,
+    "values": {
+      "-1": "METERED_ALL",
+      "1": "METERED_NO",
+      "2": "METERED_YES"
+    }
+  },
+  "android.app.usage.NetworkStats.Bucket.Roaming": {
+    "flag": false,
+    "values": {
+      "-1": "ROAMING_ALL",
+      "1": "ROAMING_NO",
+      "2": "ROAMING_YES"
+    }
+  },
+  "android.app.usage.NetworkStats.Bucket.State": {
+    "flag": false,
+    "values": {
+      "-1": "STATE_ALL",
+      "1": "STATE_DEFAULT",
+      "2": "STATE_FOREGROUND"
+    }
+  },
+  "android.app.usage.UsageEvents.Event.EventFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_IS_PACKAGE_INSTANT_APP"
+    }
+  },
+  "android.app.usage.UsageStatsManager.StandbyBuckets": {
+    "flag": false,
+    "values": {
+      "5": "STANDBY_BUCKET_EXEMPTED",
+      "10": "STANDBY_BUCKET_ACTIVE",
+      "20": "STANDBY_BUCKET_WORKING_SET",
+      "30": "STANDBY_BUCKET_FREQUENT",
+      "40": "STANDBY_BUCKET_RARE",
+      "45": "STANDBY_BUCKET_RESTRICTED",
+      "50": "STANDBY_BUCKET_NEVER"
+    }
+  },
+  "android.app.usage.UsageStatsManager.SystemForcedReasons": {
+    "flag": true,
+    "values": {
+      "0": "REASON_SUB_FORCED_SYSTEM_FLAG_UNDEFINED",
+      "1": "REASON_SUB_FORCED_SYSTEM_FLAG_BACKGROUND_RESOURCE_USAGE",
+      "2": "REASON_SUB_FORCED_SYSTEM_FLAG_ABUSE",
+      "4": "REASON_SUB_FORCED_SYSTEM_FLAG_BUGGY"
+    }
+  },
+  "android.app.usage.UsageStatsManager.UsageSource": {
+    "flag": false,
+    "values": {
+      "1": "USAGE_SOURCE_TASK_ROOT_ACTIVITY",
+      "2": "USAGE_SOURCE_CURRENT_ACTIVITY"
+    }
+  },
+  "android.appwidget.AppWidgetProviderInfo.CategoryFlags": {
+    "flag": true,
+    "values": {
+      "1": "WIDGET_CATEGORY_HOME_SCREEN",
+      "2": "WIDGET_CATEGORY_KEYGUARD",
+      "4": "WIDGET_CATEGORY_SEARCHBOX"
+    }
+  },
+  "android.appwidget.AppWidgetProviderInfo.FeatureFlags": {
+    "flag": true,
+    "values": {
+      "1": "WIDGET_FEATURE_RECONFIGURABLE",
+      "2": "WIDGET_FEATURE_HIDE_FROM_PICKER"
+    }
+  },
+  "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags": {
+    "flag": true,
+    "values": {
+      "1": "RESIZE_HORIZONTAL",
+      "2": "RESIZE_VERTICAL"
+    }
+  },
+  "android.bluetooth.BluetoothA2dp.OptionalCodecsPreferenceStatus": {
+    "flag": false,
+    "values": {
+      "-1": "OPTIONAL_CODECS_PREF_UNKNOWN",
+      "0": "OPTIONAL_CODECS_PREF_DISABLED",
+      "1": "OPTIONAL_CODECS_PREF_ENABLED"
+    }
+  },
+  "android.bluetooth.BluetoothA2dp.OptionalCodecsSupportStatus": {
+    "flag": false,
+    "values": {
+      "-1": "OPTIONAL_CODECS_SUPPORT_UNKNOWN",
+      "0": "OPTIONAL_CODECS_NOT_SUPPORTED",
+      "1": "OPTIONAL_CODECS_SUPPORTED"
+    }
+  },
+  "android.bluetooth.BluetoothAdapter.ActiveDeviceUse": {
+    "flag": false,
+    "values": {
+      "0": "ACTIVE_DEVICE_AUDIO",
+      "1": "ACTIVE_DEVICE_PHONE_CALL",
+      "2": "ACTIVE_DEVICE_ALL"
+    }
+  },
+  "android.bluetooth.BluetoothAdapter.AdapterState": {
+    "flag": false,
+    "values": {
+      "10": "STATE_OFF",
+      "11": "STATE_TURNING_ON",
+      "12": "STATE_ON",
+      "13": "STATE_TURNING_OFF",
+      "14": "STATE_BLE_TURNING_ON",
+      "15": "STATE_BLE_ON",
+      "16": "STATE_BLE_TURNING_OFF"
+    }
+  },
+  "android.bluetooth.BluetoothAdapter.IoCapability": {
+    "flag": false,
+    "values": {
+      "0": "IO_CAPABILITY_OUT",
+      "1": "IO_CAPABILITY_IO",
+      "2": "IO_CAPABILITY_IN",
+      "3": "IO_CAPABILITY_NONE",
+      "4": "IO_CAPABILITY_KBDISP"
+    }
+  },
+  "android.bluetooth.BluetoothAdapter.ScanMode": {
+    "flag": false,
+    "values": {
+      "20": "SCAN_MODE_NONE",
+      "21": "SCAN_MODE_CONNECTABLE",
+      "23": "SCAN_MODE_CONNECTABLE_DISCOVERABLE"
+    }
+  },
+  "android.bluetooth.BluetoothCodecConfig.BitsPerSample": {
+    "flag": false,
+    "values": {
+      "0": "BITS_PER_SAMPLE_NONE",
+      "1": "BITS_PER_SAMPLE_16",
+      "2": "BITS_PER_SAMPLE_24",
+      "4": "BITS_PER_SAMPLE_32"
+    }
+  },
+  "android.bluetooth.BluetoothCodecConfig.ChannelMode": {
+    "flag": false,
+    "values": {
+      "0": "CHANNEL_MODE_NONE",
+      "1": "CHANNEL_MODE_MONO",
+      "2": "CHANNEL_MODE_STEREO"
+    }
+  },
+  "android.bluetooth.BluetoothCodecConfig.CodecPriority": {
+    "flag": false,
+    "values": {
+      "-1": "CODEC_PRIORITY_DISABLED",
+      "0": "CODEC_PRIORITY_DEFAULT",
+      "1000000": "CODEC_PRIORITY_HIGHEST"
+    }
+  },
+  "android.bluetooth.BluetoothCodecConfig.SampleRate": {
+    "flag": false,
+    "values": {
+      "0": "SAMPLE_RATE_NONE",
+      "1": "SAMPLE_RATE_44100",
+      "2": "SAMPLE_RATE_48000",
+      "4": "SAMPLE_RATE_88200",
+      "8": "SAMPLE_RATE_96000",
+      "16": "SAMPLE_RATE_176400",
+      "32": "SAMPLE_RATE_192000"
+    }
+  },
+  "android.bluetooth.BluetoothCodecConfig.SourceCodecType": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_CODEC_TYPE_SBC",
+      "1": "SOURCE_CODEC_TYPE_AAC",
+      "2": "SOURCE_CODEC_TYPE_APTX",
+      "3": "SOURCE_CODEC_TYPE_APTX_HD",
+      "4": "SOURCE_CODEC_TYPE_LDAC",
+      "5": "SOURCE_CODEC_TYPE_MAX",
+      "1000000": "SOURCE_CODEC_TYPE_INVALID"
+    }
+  },
+  "android.bluetooth.BluetoothDevice.AccessPermission": {
+    "flag": false,
+    "values": {
+      "0": "ACCESS_UNKNOWN",
+      "1": "ACCESS_ALLOWED",
+      "2": "ACCESS_REJECTED"
+    }
+  },
+  "android.bluetooth.BluetoothPan.LocalPanRole": {
+    "flag": false,
+    "values": {
+      "0": "PAN_ROLE_NONE",
+      "1": "LOCAL_NAP_ROLE",
+      "2": "LOCAL_PANU_ROLE"
+    }
+  },
+  "android.bluetooth.BluetoothPan.RemotePanRole": {
+    "flag": false,
+    "values": {
+      "0": "PAN_ROLE_NONE",
+      "1": "REMOTE_NAP_ROLE",
+      "2": "REMOTE_PANU_ROLE"
+    }
+  },
+  "android.bluetooth.BluetoothPan.TetheringState": {
+    "flag": false,
+    "values": {
+      "1": "TETHERING_STATE_OFF",
+      "2": "TETHERING_STATE_ON"
+    }
+  },
+  "android.bluetooth.BluetoothProfile.BtProfileState": {
+    "flag": false,
+    "values": {
+      "0": "STATE_DISCONNECTED",
+      "1": "STATE_CONNECTING",
+      "2": "STATE_CONNECTED",
+      "3": "STATE_DISCONNECTING"
+    }
+  },
+  "android.bluetooth.BluetoothProfile.ConnectionPolicy": {
+    "flag": false,
+    "values": {
+      "100": "CONNECTION_POLICY_ALLOWED",
+      "0": "CONNECTION_POLICY_FORBIDDEN",
+      "-1": "CONNECTION_POLICY_UNKNOWN"
+    }
+  },
+  "android.companion.DeviceFilter.MediumType": {
+    "flag": false,
+    "values": {
+      "0": "MEDIUM_TYPE_BLUETOOTH",
+      "1": "MEDIUM_TYPE_BLUETOOTH_LE",
+      "2": "MEDIUM_TYPE_WIFI"
+    }
+  },
+  "android.content.ComponentCallbacks2.TrimMemoryLevel": {
+    "flag": false,
+    "values": {
+      "80": "TRIM_MEMORY_COMPLETE",
+      "60": "TRIM_MEMORY_MODERATE",
+      "40": "TRIM_MEMORY_BACKGROUND",
+      "20": "TRIM_MEMORY_UI_HIDDEN",
+      "15": "TRIM_MEMORY_RUNNING_CRITICAL",
+      "10": "TRIM_MEMORY_RUNNING_LOW",
+      "5": "TRIM_MEMORY_RUNNING_MODERATE"
+    }
+  },
+  "android.content.ContentResolver.NotifyFlags": {
+    "flag": true,
+    "values": {
+      "1": "NOTIFY_SYNC_TO_NETWORK",
+      "2": "NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS",
+      "4": "NOTIFY_INSERT",
+      "8": "NOTIFY_UPDATE",
+      "16": "NOTIFY_DELETE"
+    }
+  },
+  "android.content.ContentResolver.QueryCollator": {
+    "flag": false,
+    "values": {
+      "0": "PRIMARY",
+      "1": "SECONDARY",
+      "2": "TERTIARY",
+      "3": "IDENTICAL"
+    }
+  },
+  "android.content.ContentResolver.SortDirection": {
+    "flag": false,
+    "values": {
+      "0": "QUERY_SORT_DIRECTION_ASCENDING",
+      "1": "QUERY_SORT_DIRECTION_DESCENDING"
+    }
+  },
+  "android.content.ContentResolver.SyncExemption": {
+    "flag": false,
+    "values": {
+      "0": "SYNC_EXEMPTION_NONE",
+      "1": "SYNC_EXEMPTION_PROMOTE_BUCKET",
+      "2": "SYNC_EXEMPTION_PROMOTE_BUCKET_WITH_TEMP"
+    }
+  },
+  "android.content.Context.BindServiceFlags": {
+    "flag": true,
+    "values": {
+      "1": "BIND_AUTO_CREATE",
+      "2": "BIND_DEBUG_UNBIND",
+      "4": "BIND_NOT_FOREGROUND",
+      "8": "BIND_ABOVE_CLIENT",
+      "16": "BIND_ALLOW_OOM_MANAGEMENT",
+      "32": "BIND_WAIVE_PRIORITY",
+      "64": "BIND_IMPORTANT",
+      "128": "BIND_ADJUST_WITH_ACTIVITY",
+      "256": "BIND_NOT_PERCEPTIBLE",
+      "4096": "BIND_INCLUDE_CAPABILITIES"
+    }
+  },
+  "android.content.Context.CreatePackageOptions": {
+    "flag": true,
+    "values": {
+      "1": "CONTEXT_INCLUDE_CODE",
+      "2": "CONTEXT_IGNORE_SECURITY",
+      "4": "CONTEXT_RESTRICTED",
+      "8": "CONTEXT_DEVICE_PROTECTED_STORAGE",
+      "16": "CONTEXT_CREDENTIAL_PROTECTED_STORAGE",
+      "1073741824": "CONTEXT_REGISTER_PACKAGE"
+    }
+  },
+  "android.content.Context.DatabaseMode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_PRIVATE",
+      "1": "MODE_WORLD_READABLE",
+      "2": "MODE_WORLD_WRITEABLE",
+      "8": "MODE_ENABLE_WRITE_AHEAD_LOGGING",
+      "16": "MODE_NO_LOCALIZED_COLLATORS"
+    }
+  },
+  "android.content.Context.FileMode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_PRIVATE",
+      "1": "MODE_WORLD_READABLE",
+      "2": "MODE_WORLD_WRITEABLE",
+      "32768": "MODE_APPEND"
+    }
+  },
+  "android.content.Context.PreferencesMode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_PRIVATE",
+      "1": "MODE_WORLD_READABLE",
+      "2": "MODE_WORLD_WRITEABLE",
+      "4": "MODE_MULTI_PROCESS"
+    }
+  },
+  "android.content.Context.RegisterReceiverFlags": {
+    "flag": true,
+    "values": {
+      "1": "RECEIVER_VISIBLE_TO_INSTANT_APPS"
+    }
+  },
+  "android.content.Intent.AccessUriMode": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_GRANT_READ_URI_PERMISSION",
+      "2": "FLAG_GRANT_WRITE_URI_PERMISSION"
+    }
+  },
+  "android.content.Intent.CopyMode": {
+    "flag": false,
+    "values": {
+      "0": "COPY_MODE_ALL",
+      "1": "COPY_MODE_FILTER",
+      "2": "COPY_MODE_HISTORY"
+    }
+  },
+  "android.content.Intent.FillInFlags": {
+    "flag": true,
+    "values": {
+      "1": "FILL_IN_ACTION",
+      "2": "FILL_IN_DATA",
+      "4": "FILL_IN_CATEGORIES",
+      "8": "FILL_IN_COMPONENT",
+      "16": "FILL_IN_PACKAGE",
+      "32": "FILL_IN_SOURCE_BOUNDS",
+      "64": "FILL_IN_SELECTOR",
+      "128": "FILL_IN_CLIP_DATA"
+    }
+  },
+  "android.content.Intent.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_GRANT_READ_URI_PERMISSION",
+      "2": "FLAG_GRANT_WRITE_URI_PERMISSION",
+      "4": "FLAG_FROM_BACKGROUND",
+      "8": "FLAG_DEBUG_LOG_RESOLUTION",
+      "16": "FLAG_EXCLUDE_STOPPED_PACKAGES",
+      "32": "FLAG_INCLUDE_STOPPED_PACKAGES",
+      "64": "FLAG_GRANT_PERSISTABLE_URI_PERMISSION",
+      "128": "FLAG_GRANT_PREFIX_URI_PERMISSION",
+      "256": "FLAG_DEBUG_TRIAGED_MISSING",
+      "512": "FLAG_ACTIVITY_REQUIRE_DEFAULT",
+      "2048": "FLAG_ACTIVITY_MATCH_EXTERNAL",
+      "1073741824": "FLAG_RECEIVER_REGISTERED_ONLY",
+      "536870912": "FLAG_RECEIVER_REPLACE_PENDING",
+      "268435456": "FLAG_RECEIVER_FOREGROUND",
+      "134217728": "FLAG_RECEIVER_NO_ABORT",
+      "67108864": "FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT",
+      "33554432": "FLAG_RECEIVER_BOOT_UPGRADE",
+      "16777216": "FLAG_RECEIVER_INCLUDE_BACKGROUND",
+      "8388608": "FLAG_RECEIVER_EXCLUDE_BACKGROUND",
+      "4194304": "FLAG_RECEIVER_FROM_SHELL",
+      "2097152": "FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS",
+      "1048576": "FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY",
+      "524288": "FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET",
+      "262144": "FLAG_ACTIVITY_NO_USER_ACTION",
+      "131072": "FLAG_ACTIVITY_REORDER_TO_FRONT",
+      "65536": "FLAG_ACTIVITY_NO_ANIMATION",
+      "32768": "FLAG_ACTIVITY_CLEAR_TASK",
+      "16384": "FLAG_ACTIVITY_TASK_ON_HOME",
+      "8192": "FLAG_ACTIVITY_RETAIN_IN_RECENTS",
+      "4096": "FLAG_ACTIVITY_LAUNCH_ADJACENT",
+      "1024": "FLAG_ACTIVITY_REQUIRE_NON_BROWSER",
+      "-2147483648": "FLAG_RECEIVER_OFFLOAD"
+    }
+  },
+  "android.content.Intent.GrantUriMode": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_GRANT_READ_URI_PERMISSION",
+      "2": "FLAG_GRANT_WRITE_URI_PERMISSION",
+      "64": "FLAG_GRANT_PERSISTABLE_URI_PERMISSION",
+      "128": "FLAG_GRANT_PREFIX_URI_PERMISSION"
+    }
+  },
+  "android.content.Intent.MutableFlags": {
+    "flag": true,
+    "values": {
+      "4": "FLAG_FROM_BACKGROUND",
+      "8": "FLAG_DEBUG_LOG_RESOLUTION",
+      "16": "FLAG_EXCLUDE_STOPPED_PACKAGES",
+      "32": "FLAG_INCLUDE_STOPPED_PACKAGES",
+      "256": "FLAG_DEBUG_TRIAGED_MISSING",
+      "512": "FLAG_IGNORE_EPHEMERAL",
+      "2048": "FLAG_ACTIVITY_MATCH_EXTERNAL",
+      "1073741824": "FLAG_RECEIVER_REGISTERED_ONLY",
+      "536870912": "FLAG_RECEIVER_REPLACE_PENDING",
+      "268435456": "FLAG_RECEIVER_FOREGROUND",
+      "134217728": "FLAG_RECEIVER_NO_ABORT",
+      "67108864": "FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT",
+      "33554432": "FLAG_RECEIVER_BOOT_UPGRADE",
+      "16777216": "FLAG_RECEIVER_INCLUDE_BACKGROUND",
+      "8388608": "FLAG_RECEIVER_EXCLUDE_BACKGROUND",
+      "4194304": "FLAG_RECEIVER_FROM_SHELL",
+      "2097152": "FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS",
+      "1048576": "FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY",
+      "524288": "FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET",
+      "262144": "FLAG_ACTIVITY_NO_USER_ACTION",
+      "131072": "FLAG_ACTIVITY_REORDER_TO_FRONT",
+      "65536": "FLAG_ACTIVITY_NO_ANIMATION",
+      "32768": "FLAG_ACTIVITY_CLEAR_TASK",
+      "16384": "FLAG_ACTIVITY_TASK_ON_HOME",
+      "8192": "FLAG_ACTIVITY_RETAIN_IN_RECENTS",
+      "4096": "FLAG_ACTIVITY_LAUNCH_ADJACENT",
+      "-2147483648": "FLAG_RECEIVER_OFFLOAD"
+    }
+  },
+  "android.content.Intent.UriFlags": {
+    "flag": true,
+    "values": {
+      "4": "URI_ALLOW_UNSAFE",
+      "2": "URI_ANDROID_APP_SCHEME",
+      "1": "URI_INTENT_SCHEME"
+    }
+  },
+  "android.content.IntentFilter.InstantAppVisibility": {
+    "flag": false,
+    "values": {
+      "0": "VISIBILITY_NONE",
+      "1": "VISIBILITY_EXPLICIT",
+      "2": "VISIBILITY_IMPLICIT"
+    }
+  },
+  "android.content.PermissionChecker.PermissionResult": {
+    "flag": false,
+    "values": {
+      "0": "PERMISSION_GRANTED",
+      "-2": "PERMISSION_SOFT_DENIED",
+      "-1": "PERMISSION_HARD_DENIED"
+    }
+  },
+  "android.content.integrity.AtomicFormula.Key": {
+    "flag": false,
+    "values": {
+      "0": "PACKAGE_NAME",
+      "1": "APP_CERTIFICATE",
+      "2": "INSTALLER_NAME",
+      "3": "INSTALLER_CERTIFICATE",
+      "4": "VERSION_CODE",
+      "5": "PRE_INSTALLED",
+      "6": "STAMP_TRUSTED",
+      "7": "STAMP_CERTIFICATE_HASH"
+    }
+  },
+  "android.content.integrity.AtomicFormula.Operator": {
+    "flag": false,
+    "values": {
+      "0": "EQ",
+      "1": "GT",
+      "2": "GTE"
+    }
+  },
+  "android.content.integrity.CompoundFormula.Connector": {
+    "flag": false,
+    "values": {
+      "0": "AND",
+      "1": "OR",
+      "2": "NOT"
+    }
+  },
+  "android.content.integrity.IntegrityFormula.Tag": {
+    "flag": false,
+    "values": {
+      "0": "COMPOUND_FORMULA_TAG",
+      "1": "STRING_ATOMIC_FORMULA_TAG",
+      "2": "LONG_ATOMIC_FORMULA_TAG",
+      "3": "BOOLEAN_ATOMIC_FORMULA_TAG",
+      "4": "INSTALLER_ALLOWED_BY_MANIFEST_FORMULA_TAG"
+    }
+  },
+  "android.content.integrity.Rule.Effect": {
+    "flag": false,
+    "values": {
+      "0": "DENY",
+      "1": "FORCE_ALLOW"
+    }
+  },
+  "android.content.om.OverlayInfo.State": {
+    "flag": false,
+    "values": {
+      "-1": "STATE_UNKNOWN",
+      "0": "STATE_MISSING_TARGET",
+      "1": "STATE_NO_IDMAP",
+      "2": "STATE_DISABLED",
+      "3": "STATE_ENABLED",
+      "6": "STATE_ENABLED_IMMUTABLE",
+      "5": "STATE_OVERLAY_IS_BEING_REPLACED"
+    }
+  },
+  "android.content.pm.ActivityInfo.ColorMode": {
+    "flag": false,
+    "values": {
+      "0": "COLOR_MODE_DEFAULT",
+      "1": "COLOR_MODE_WIDE_COLOR_GAMUT",
+      "2": "COLOR_MODE_HDR"
+    }
+  },
+  "android.content.pm.ActivityInfo.Config": {
+    "flag": true,
+    "values": {
+      "1": "CONFIG_MCC",
+      "2": "CONFIG_MNC",
+      "4": "CONFIG_LOCALE",
+      "8": "CONFIG_TOUCHSCREEN",
+      "16": "CONFIG_KEYBOARD",
+      "32": "CONFIG_KEYBOARD_HIDDEN",
+      "64": "CONFIG_NAVIGATION",
+      "128": "CONFIG_ORIENTATION",
+      "256": "CONFIG_SCREEN_LAYOUT",
+      "512": "CONFIG_UI_MODE",
+      "1024": "CONFIG_SCREEN_SIZE",
+      "2048": "CONFIG_SMALLEST_SCREEN_SIZE",
+      "4096": "CONFIG_DENSITY",
+      "8192": "CONFIG_LAYOUT_DIRECTION",
+      "16384": "CONFIG_COLOR_MODE",
+      "1073741824": "CONFIG_FONT_SCALE"
+    }
+  },
+  "android.content.pm.ActivityInfo.ScreenOrientation": {
+    "flag": false,
+    "values": {
+      "-2": "SCREEN_ORIENTATION_UNSET",
+      "-1": "SCREEN_ORIENTATION_UNSPECIFIED",
+      "0": "SCREEN_ORIENTATION_LANDSCAPE",
+      "1": "SCREEN_ORIENTATION_PORTRAIT",
+      "2": "SCREEN_ORIENTATION_USER",
+      "3": "SCREEN_ORIENTATION_BEHIND",
+      "4": "SCREEN_ORIENTATION_SENSOR",
+      "5": "SCREEN_ORIENTATION_NOSENSOR",
+      "6": "SCREEN_ORIENTATION_SENSOR_LANDSCAPE",
+      "7": "SCREEN_ORIENTATION_SENSOR_PORTRAIT",
+      "8": "SCREEN_ORIENTATION_REVERSE_LANDSCAPE",
+      "9": "SCREEN_ORIENTATION_REVERSE_PORTRAIT",
+      "10": "SCREEN_ORIENTATION_FULL_SENSOR",
+      "11": "SCREEN_ORIENTATION_USER_LANDSCAPE",
+      "12": "SCREEN_ORIENTATION_USER_PORTRAIT",
+      "13": "SCREEN_ORIENTATION_FULL_USER",
+      "14": "SCREEN_ORIENTATION_LOCKED"
+    }
+  },
+  "android.content.pm.ApplicationInfo.ApplicationInfoPrivateFlags": {
+    "flag": true,
+    "values": {
+      "1024": "PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE",
+      "4096": "PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION",
+      "2048": "PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_UNRESIZEABLE",
+      "8192": "PRIVATE_FLAG_BACKUP_IN_FOREGROUND",
+      "2": "PRIVATE_FLAG_CANT_SAVE_STATE",
+      "32": "PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE",
+      "64": "PRIVATE_FLAG_DIRECT_BOOT_AWARE",
+      "16": "PRIVATE_FLAG_HAS_DOMAIN_URLS",
+      "1": "PRIVATE_FLAG_HIDDEN",
+      "128": "PRIVATE_FLAG_INSTANT",
+      "268435456": "PRIVATE_FLAG_IS_RESOURCE_OVERLAY",
+      "32768": "PRIVATE_FLAG_ISOLATED_SPLIT_LOADING",
+      "131072": "PRIVATE_FLAG_OEM",
+      "256": "PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE",
+      "33554432": "PRIVATE_FLAG_USE_EMBEDDED_DEX",
+      "8": "PRIVATE_FLAG_PRIVILEGED",
+      "524288": "PRIVATE_FLAG_PRODUCT",
+      "2097152": "PRIVATE_FLAG_SYSTEM_EXT",
+      "8388608": "PRIVATE_FLAG_PROFILEABLE_BY_SHELL",
+      "512": "PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER",
+      "1048576": "PRIVATE_FLAG_SIGNED_WITH_PLATFORM_KEY",
+      "16384": "PRIVATE_FLAG_STATIC_SHARED_LIBRARY",
+      "262144": "PRIVATE_FLAG_VENDOR",
+      "65536": "PRIVATE_FLAG_VIRTUAL_PRELOAD",
+      "16777216": "PRIVATE_FLAG_HAS_FRAGILE_USER_DATA",
+      "67108864": "PRIVATE_FLAG_ALLOW_CLEAR_USER_DATA_ON_FAILED_RESTORE",
+      "134217728": "PRIVATE_FLAG_ALLOW_AUDIO_PLAYBACK_CAPTURE",
+      "536870912": "PRIVATE_FLAG_REQUEST_LEGACY_EXTERNAL_STORAGE",
+      "1073741824": "PRIVATE_FLAG_ODM",
+      "-2147483648": "PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING"
+    }
+  },
+  "android.content.pm.ApplicationInfo.Category": {
+    "flag": false,
+    "values": {
+      "-1": "CATEGORY_UNDEFINED",
+      "0": "CATEGORY_GAME",
+      "1": "CATEGORY_AUDIO",
+      "2": "CATEGORY_VIDEO",
+      "3": "CATEGORY_IMAGE",
+      "4": "CATEGORY_SOCIAL",
+      "5": "CATEGORY_NEWS",
+      "6": "CATEGORY_MAPS",
+      "7": "CATEGORY_PRODUCTIVITY"
+    }
+  },
+  "android.content.pm.ApplicationInfo.GwpAsanMode": {
+    "flag": false,
+    "values": {
+      "-1": "GWP_ASAN_DEFAULT",
+      "0": "GWP_ASAN_NEVER",
+      "1": "GWP_ASAN_ALWAYS"
+    }
+  },
+  "android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy": {
+    "flag": false,
+    "values": {
+      "-1": "HIDDEN_API_ENFORCEMENT_DEFAULT",
+      "0": "HIDDEN_API_ENFORCEMENT_DISABLED",
+      "1": "HIDDEN_API_ENFORCEMENT_JUST_WARN",
+      "2": "HIDDEN_API_ENFORCEMENT_ENABLED"
+    }
+  },
+  "android.content.pm.Checksum.Type": {
+    "flag": true,
+    "values": {
+      "1": "TYPE_WHOLE_MERKLE_ROOT_4K_SHA256",
+      "2": "TYPE_WHOLE_MD5",
+      "4": "TYPE_WHOLE_SHA1",
+      "8": "TYPE_WHOLE_SHA256",
+      "16": "TYPE_WHOLE_SHA512",
+      "32": "TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256",
+      "64": "TYPE_PARTIAL_MERKLE_ROOT_1M_SHA512"
+    }
+  },
+  "android.content.pm.LauncherApps.PinItemRequest.RequestType": {
+    "flag": false,
+    "values": {
+      "1": "REQUEST_TYPE_SHORTCUT",
+      "2": "REQUEST_TYPE_APPWIDGET"
+    }
+  },
+  "android.content.pm.LauncherApps.ShortcutCacheFlags": {
+    "flag": false,
+    "values": {
+      "0": "FLAG_CACHE_NOTIFICATION_SHORTCUTS",
+      "1": "FLAG_CACHE_BUBBLE_SHORTCUTS"
+    }
+  },
+  "android.content.pm.LauncherApps.ShortcutQuery.QueryFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_MATCH_DYNAMIC",
+      "2": "FLAG_MATCH_PINNED",
+      "8": "FLAG_MATCH_MANIFEST",
+      "16": "FLAG_MATCH_CACHED",
+      "4": "FLAG_GET_KEY_FIELDS_ONLY",
+      "2048": "FLAG_GET_PERSONS_DATA"
+    }
+  },
+  "android.content.pm.PackageInstaller.FileLocation": {
+    "flag": false,
+    "values": {
+      "0": "LOCATION_DATA_APP",
+      "1": "LOCATION_MEDIA_OBB",
+      "2": "LOCATION_MEDIA_DATA"
+    }
+  },
+  "android.content.pm.PackageInstaller.SessionInfo.StagedSessionErrorCode": {
+    "flag": false,
+    "values": {
+      "0": "STAGED_SESSION_NO_ERROR",
+      "1": "STAGED_SESSION_VERIFICATION_FAILED",
+      "2": "STAGED_SESSION_ACTIVATION_FAILED",
+      "3": "STAGED_SESSION_UNKNOWN",
+      "4": "STAGED_SESSION_CONFLICT"
+    }
+  },
+  "android.content.pm.PackageManager.ApplicationInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA",
+      "1024": "GET_SHARED_LIBRARY_FILES",
+      "8192": "GET_UNINSTALLED_PACKAGES",
+      "1048576": "MATCH_SYSTEM_ONLY",
+      "268435456": "MATCH_DEBUG_TRIAGED_MISSING",
+      "512": "MATCH_DISABLED_COMPONENTS",
+      "32768": "GET_DISABLED_UNTIL_USED_COMPONENTS",
+      "8388608": "MATCH_INSTANT",
+      "67108864": "MATCH_STATIC_SHARED_LIBRARIES",
+      "536870912": "MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS",
+      "1073741824": "MATCH_APEX"
+    }
+  },
+  "android.content.pm.PackageManager.CertificateInputType": {
+    "flag": false,
+    "values": {
+      "0": "CERT_INPUT_RAW_X509",
+      "1": "CERT_INPUT_SHA256"
+    }
+  },
+  "android.content.pm.PackageManager.ComponentInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA",
+      "1024": "GET_SHARED_LIBRARY_FILES",
+      "131072": "MATCH_ALL",
+      "268435456": "MATCH_DIRECT_BOOT_AUTO",
+      "65536": "MATCH_DEFAULT_ONLY",
+      "512": "GET_DISABLED_COMPONENTS",
+      "32768": "GET_DISABLED_UNTIL_USED_COMPONENTS",
+      "524288": "MATCH_DIRECT_BOOT_AWARE",
+      "262144": "MATCH_DIRECT_BOOT_UNAWARE",
+      "1048576": "MATCH_SYSTEM_ONLY",
+      "8192": "GET_UNINSTALLED_PACKAGES",
+      "8388608": "MATCH_INSTANT",
+      "67108864": "MATCH_STATIC_SHARED_LIBRARIES"
+    }
+  },
+  "android.content.pm.PackageManager.ComponentType": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "1": "TYPE_ACTIVITY",
+      "2": "TYPE_RECEIVER",
+      "3": "TYPE_SERVICE",
+      "4": "TYPE_PROVIDER"
+    }
+  },
+  "android.content.pm.PackageManager.DeleteFlags": {
+    "flag": true,
+    "values": {
+      "1": "DELETE_KEEP_DATA",
+      "2": "DELETE_ALL_USERS",
+      "4": "DELETE_SYSTEM_APP",
+      "8": "DELETE_DONT_KILL_APP",
+      "-2147483648": "DELETE_CHATTY"
+    }
+  },
+  "android.content.pm.PackageManager.DistractionRestriction": {
+    "flag": true,
+    "values": {
+      "0": "RESTRICTION_NONE",
+      "1": "RESTRICTION_HIDE_FROM_SUGGESTIONS",
+      "2": "RESTRICTION_HIDE_NOTIFICATIONS"
+    }
+  },
+  "android.content.pm.PackageManager.EnabledFlags": {
+    "flag": true,
+    "values": {
+      "1": "DONT_KILL_APP",
+      "2": "SYNCHRONOUS"
+    }
+  },
+  "android.content.pm.PackageManager.EnabledState": {
+    "flag": false,
+    "values": {
+      "0": "COMPONENT_ENABLED_STATE_DEFAULT",
+      "1": "COMPONENT_ENABLED_STATE_ENABLED",
+      "2": "COMPONENT_ENABLED_STATE_DISABLED",
+      "3": "COMPONENT_ENABLED_STATE_DISABLED_USER",
+      "4": "COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED"
+    }
+  },
+  "android.content.pm.PackageManager.InstallFlags": {
+    "flag": true,
+    "values": {
+      "2": "INSTALL_REPLACE_EXISTING",
+      "4": "INSTALL_ALLOW_TEST",
+      "16": "INSTALL_INTERNAL",
+      "32": "INSTALL_FROM_ADB",
+      "64": "INSTALL_ALL_USERS",
+      "128": "INSTALL_REQUEST_DOWNGRADE",
+      "256": "INSTALL_GRANT_RUNTIME_PERMISSIONS",
+      "4194304": "INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS",
+      "512": "INSTALL_FORCE_VOLUME_UUID",
+      "1024": "INSTALL_FORCE_PERMISSION_PROMPT",
+      "2048": "INSTALL_INSTANT_APP",
+      "4096": "INSTALL_DONT_KILL_APP",
+      "16384": "INSTALL_FULL_APP",
+      "32768": "INSTALL_ALLOCATE_AGGRESSIVE",
+      "65536": "INSTALL_VIRTUAL_PRELOAD",
+      "131072": "INSTALL_APEX",
+      "262144": "INSTALL_ENABLE_ROLLBACK",
+      "1048576": "INSTALL_ALLOW_DOWNGRADE",
+      "2097152": "INSTALL_STAGED"
+    }
+  },
+  "android.content.pm.PackageManager.InstallReason": {
+    "flag": false,
+    "values": {
+      "0": "INSTALL_REASON_UNKNOWN",
+      "1": "INSTALL_REASON_POLICY",
+      "2": "INSTALL_REASON_DEVICE_RESTORE",
+      "3": "INSTALL_REASON_DEVICE_SETUP",
+      "4": "INSTALL_REASON_USER",
+      "5": "INSTALL_REASON_ROLLBACK"
+    }
+  },
+  "android.content.pm.PackageManager.InstalledModulesFlags": {
+    "flag": true,
+    "values": {
+      "131072": "MATCH_ALL"
+    }
+  },
+  "android.content.pm.PackageManager.InstrumentationInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA"
+    }
+  },
+  "android.content.pm.PackageManager.ModuleInfoFlags": {
+    "flag": true,
+    "values": {
+      "1": "MODULE_APEX_NAME"
+    }
+  },
+  "android.content.pm.PackageManager.PackageInfoFlags": {
+    "flag": true,
+    "values": {
+      "1": "GET_ACTIVITIES",
+      "16384": "GET_CONFIGURATIONS",
+      "256": "GET_GIDS",
+      "16": "GET_INSTRUMENTATION",
+      "32": "GET_INTENT_FILTERS",
+      "128": "GET_META_DATA",
+      "4096": "GET_PERMISSIONS",
+      "8": "GET_PROVIDERS",
+      "2": "GET_RECEIVERS",
+      "4": "GET_SERVICES",
+      "1024": "GET_SHARED_LIBRARY_FILES",
+      "64": "GET_SIGNATURES",
+      "134217728": "GET_SIGNING_CERTIFICATES",
+      "2048": "GET_URI_PERMISSION_PATTERNS",
+      "8192": "GET_UNINSTALLED_PACKAGES",
+      "512": "GET_DISABLED_COMPONENTS",
+      "32768": "GET_DISABLED_UNTIL_USED_COMPONENTS",
+      "1048576": "MATCH_SYSTEM_ONLY",
+      "2097152": "MATCH_FACTORY_ONLY",
+      "268435456": "MATCH_DEBUG_TRIAGED_MISSING",
+      "8388608": "MATCH_INSTANT",
+      "1073741824": "MATCH_APEX",
+      "536870912": "MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS"
+    }
+  },
+  "android.content.pm.PackageManager.PermissionFlags": {
+    "flag": false,
+    "values": {
+      "1": "FLAG_PERMISSION_USER_SET",
+      "2": "FLAG_PERMISSION_USER_FIXED",
+      "4": "FLAG_PERMISSION_POLICY_FIXED",
+      "8": "FLAG_PERMISSION_REVOKED_COMPAT",
+      "16": "FLAG_PERMISSION_SYSTEM_FIXED",
+      "32": "FLAG_PERMISSION_GRANTED_BY_DEFAULT",
+      "256": "FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED",
+      "512": "FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED",
+      "8192": "FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT",
+      "4096": "FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT",
+      "2048": "FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT",
+      "16384": "FLAG_PERMISSION_APPLY_RESTRICTION",
+      "32768": "FLAG_PERMISSION_GRANTED_BY_ROLE",
+      "65536": "FLAG_PERMISSION_ONE_TIME",
+      "131072": "FLAG_PERMISSION_AUTO_REVOKED"
+    }
+  },
+  "android.content.pm.PackageManager.PermissionGroupInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA"
+    }
+  },
+  "android.content.pm.PackageManager.PermissionInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA"
+    }
+  },
+  "android.content.pm.PackageManager.PermissionResult": {
+    "flag": false,
+    "values": {
+      "0": "PERMISSION_GRANTED",
+      "-1": "PERMISSION_DENIED"
+    }
+  },
+  "android.content.pm.PackageManager.PermissionWhitelistFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_PERMISSION_WHITELIST_SYSTEM",
+      "2": "FLAG_PERMISSION_WHITELIST_INSTALLER",
+      "4": "FLAG_PERMISSION_WHITELIST_UPGRADE",
+      "8": "FLAG_PERMISSION_ALLOWLIST_ROLE"
+    }
+  },
+  "android.content.pm.PackageManager.PropertyLocation": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "1": "TYPE_ACTIVITY",
+      "2": "TYPE_RECEIVER",
+      "3": "TYPE_SERVICE",
+      "4": "TYPE_PROVIDER",
+      "5": "TYPE_APPLICATION"
+    }
+  },
+  "android.content.pm.PackageManager.ResolveInfoFlags": {
+    "flag": true,
+    "values": {
+      "128": "GET_META_DATA",
+      "64": "GET_RESOLVED_FILTER",
+      "1024": "GET_SHARED_LIBRARY_FILES",
+      "131072": "MATCH_ALL",
+      "268435456": "MATCH_DIRECT_BOOT_AUTO",
+      "512": "GET_DISABLED_COMPONENTS",
+      "32768": "GET_DISABLED_UNTIL_USED_COMPONENTS",
+      "65536": "MATCH_DEFAULT_ONLY",
+      "524288": "MATCH_DIRECT_BOOT_AWARE",
+      "262144": "MATCH_DIRECT_BOOT_UNAWARE",
+      "1048576": "MATCH_SYSTEM_ONLY",
+      "8192": "GET_UNINSTALLED_PACKAGES",
+      "8388608": "MATCH_INSTANT"
+    }
+  },
+  "android.content.pm.PackageManager.RollbackDataPolicy": {
+    "flag": false,
+    "values": {
+      "0": "RESTORE",
+      "1": "WIPE",
+      "2": "RETAIN"
+    }
+  },
+  "android.content.pm.PackageManager.SignatureResult": {
+    "flag": false,
+    "values": {
+      "0": "SIGNATURE_MATCH",
+      "1": "SIGNATURE_NEITHER_SIGNED",
+      "-1": "SIGNATURE_FIRST_NOT_SIGNED",
+      "-2": "SIGNATURE_SECOND_NOT_SIGNED",
+      "-3": "SIGNATURE_NO_MATCH",
+      "-4": "SIGNATURE_UNKNOWN_PACKAGE"
+    }
+  },
+  "android.content.pm.PackageManager.SystemAppState": {
+    "flag": false,
+    "values": {
+      "0": "SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN",
+      "1": "SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE",
+      "2": "SYSTEM_APP_STATE_INSTALLED",
+      "3": "SYSTEM_APP_STATE_UNINSTALLED"
+    }
+  },
+  "android.content.pm.PackageManager.UninstallReason": {
+    "flag": false,
+    "values": {
+      "0": "UNINSTALL_REASON_UNKNOWN",
+      "1": "UNINSTALL_REASON_USER_TYPE"
+    }
+  },
+  "android.content.pm.PackageManager.UnstartableReason": {
+    "flag": false,
+    "values": {
+      "0": "UNSTARTABLE_REASON_UNKNOWN",
+      "1": "UNSTARTABLE_REASON_CONNECTION_ERROR",
+      "2": "UNSTARTABLE_REASON_INSUFFICIENT_STORAGE"
+    }
+  },
+  "android.content.pm.PackageParser.ParseFlags": {
+    "flag": true,
+    "values": {
+      "-2147483648": "PARSE_CHATTY",
+      "32": "PARSE_COLLECT_CERTIFICATES",
+      "64": "PARSE_ENFORCE_CODE",
+      "8": "PARSE_EXTERNAL_STORAGE",
+      "2": "PARSE_IGNORE_PROCESSES",
+      "16": "PARSE_IS_SYSTEM_DIR",
+      "1": "PARSE_MUST_BE_APK"
+    }
+  },
+  "android.content.pm.PackageParser.SigningDetails.CertCapabilities": {
+    "flag": true,
+    "values": {
+      "1": "INSTALLED_DATA",
+      "2": "SHARED_USER_ID",
+      "4": "PERMISSION",
+      "8": "ROLLBACK"
+    }
+  },
+  "android.content.pm.PackageParser.SigningDetails.SignatureSchemeVersion": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN",
+      "1": "JAR",
+      "2": "SIGNING_BLOCK_V2",
+      "3": "SIGNING_BLOCK_V3",
+      "4": "SIGNING_BLOCK_V4"
+    }
+  },
+  "android.content.pm.PackagePartitions.PartitionType": {
+    "flag": true,
+    "values": {
+      "0": "PARTITION_SYSTEM",
+      "1": "PARTITION_VENDOR",
+      "2": "PARTITION_ODM",
+      "3": "PARTITION_OEM",
+      "4": "PARTITION_PRODUCT",
+      "5": "PARTITION_SYSTEM_EXT"
+    }
+  },
+  "android.content.pm.PermissionGroupInfo.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_PERSONAL_INFO"
+    }
+  },
+  "android.content.pm.PermissionInfo.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_COSTS_MONEY",
+      "2": "FLAG_REMOVED",
+      "4": "FLAG_HARD_RESTRICTED",
+      "8": "FLAG_SOFT_RESTRICTED",
+      "16": "FLAG_IMMUTABLY_RESTRICTED",
+      "1073741824": "FLAG_INSTALLED"
+    }
+  },
+  "android.content.pm.PermissionInfo.Protection": {
+    "flag": false,
+    "values": {
+      "0": "PROTECTION_NORMAL",
+      "1": "PROTECTION_DANGEROUS",
+      "2": "PROTECTION_SIGNATURE",
+      "3": "PROTECTION_SIGNATURE_OR_SYSTEM"
+    }
+  },
+  "android.content.pm.PermissionInfo.ProtectionFlags": {
+    "flag": true,
+    "values": {
+      "16": "PROTECTION_FLAG_SYSTEM",
+      "32": "PROTECTION_FLAG_DEVELOPMENT",
+      "64": "PROTECTION_FLAG_APPOP",
+      "128": "PROTECTION_FLAG_PRE23",
+      "256": "PROTECTION_FLAG_INSTALLER",
+      "512": "PROTECTION_FLAG_VERIFIER",
+      "1024": "PROTECTION_FLAG_PREINSTALLED",
+      "2048": "PROTECTION_FLAG_SETUP",
+      "4096": "PROTECTION_FLAG_INSTANT",
+      "8192": "PROTECTION_FLAG_RUNTIME_ONLY",
+      "16384": "PROTECTION_FLAG_OEM",
+      "32768": "PROTECTION_FLAG_VENDOR_PRIVILEGED",
+      "65536": "PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER",
+      "131072": "PROTECTION_FLAG_WELLBEING",
+      "262144": "PROTECTION_FLAG_DOCUMENTER",
+      "524288": "PROTECTION_FLAG_CONFIGURATOR",
+      "1048576": "PROTECTION_FLAG_INCIDENT_REPORT_APPROVER",
+      "2097152": "PROTECTION_FLAG_APP_PREDICTOR",
+      "8388608": "PROTECTION_FLAG_COMPANION",
+      "16777216": "PROTECTION_FLAG_RETAIL_DEMO",
+      "33554432": "PROTECTION_FLAG_RECENTS"
+    }
+  },
+  "android.content.pm.ServiceInfo.ForegroundServiceType": {
+    "flag": true,
+    "values": {
+      "-1": "FOREGROUND_SERVICE_TYPE_MANIFEST",
+      "0": "FOREGROUND_SERVICE_TYPE_NONE",
+      "1": "FOREGROUND_SERVICE_TYPE_DATA_SYNC",
+      "2": "FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK",
+      "4": "FOREGROUND_SERVICE_TYPE_PHONE_CALL",
+      "8": "FOREGROUND_SERVICE_TYPE_LOCATION",
+      "16": "FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE",
+      "32": "FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION",
+      "64": "FOREGROUND_SERVICE_TYPE_CAMERA",
+      "128": "FOREGROUND_SERVICE_TYPE_MICROPHONE"
+    }
+  },
+  "android.content.pm.SharedLibraryInfo.Type": {
+    "flag": true,
+    "values": {
+      "0": "TYPE_BUILTIN",
+      "1": "TYPE_DYNAMIC",
+      "2": "TYPE_STATIC"
+    }
+  },
+  "android.content.pm.ShortcutInfo.CloneFlags": {
+    "flag": true,
+    "values": {
+      "1": "CLONE_REMOVE_ICON",
+      "2": "CLONE_REMOVE_INTENT",
+      "4": "CLONE_REMOVE_NON_KEY_INFO",
+      "8": "CLONE_REMOVE_RES_NAMES",
+      "16": "CLONE_REMOVE_PERSON",
+      "9": "CLONE_REMOVE_FOR_APP_PREDICTION",
+      "27": "CLONE_REMOVE_FOR_LAUNCHER",
+      "26": "CLONE_REMOVE_FOR_LAUNCHER_APPROVAL"
+    }
+  },
+  "android.content.pm.ShortcutInfo.DisabledReason": {
+    "flag": false,
+    "values": {
+      "0": "DISABLED_REASON_NOT_DISABLED",
+      "1": "DISABLED_REASON_BY_APP",
+      "2": "DISABLED_REASON_APP_CHANGED",
+      "3": "DISABLED_REASON_UNKNOWN",
+      "100": "DISABLED_REASON_VERSION_LOWER",
+      "101": "DISABLED_REASON_BACKUP_NOT_SUPPORTED",
+      "102": "DISABLED_REASON_SIGNATURE_MISMATCH",
+      "103": "DISABLED_REASON_OTHER_RESTORE_ISSUE"
+    }
+  },
+  "android.content.pm.ShortcutInfo.ShortcutFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_DYNAMIC",
+      "2": "FLAG_PINNED",
+      "4": "FLAG_HAS_ICON_RES",
+      "8": "FLAG_HAS_ICON_FILE",
+      "16": "FLAG_KEY_FIELDS_ONLY",
+      "32": "FLAG_MANIFEST",
+      "64": "FLAG_DISABLED",
+      "128": "FLAG_STRINGS_RESOLVED",
+      "256": "FLAG_IMMUTABLE",
+      "512": "FLAG_ADAPTIVE_BITMAP",
+      "1024": "FLAG_RETURNED_BY_SERVICE",
+      "2048": "FLAG_ICON_FILE_PENDING_SAVE",
+      "4096": "FLAG_SHADOW",
+      "8192": "FLAG_LONG_LIVED",
+      "32768": "FLAG_HAS_ICON_URI",
+      "16384": "FLAG_CACHED_NOTIFICATIONS",
+      "1073741824": "FLAG_CACHED_BUBBLES"
+    }
+  },
+  "android.content.pm.ShortcutManager.ShortcutMatchFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_MATCH_MANIFEST",
+      "2": "FLAG_MATCH_DYNAMIC",
+      "4": "FLAG_MATCH_PINNED",
+      "8": "FLAG_MATCH_CACHED"
+    }
+  },
+  "android.content.pm.SuspendDialogInfo.ButtonAction": {
+    "flag": true,
+    "values": {
+      "0": "BUTTON_ACTION_MORE_DETAILS",
+      "1": "BUTTON_ACTION_UNSUSPEND"
+    }
+  },
+  "android.content.pm.UserInfo.UserInfoFlag": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_PRIMARY",
+      "2": "FLAG_ADMIN",
+      "4": "FLAG_GUEST",
+      "8": "FLAG_RESTRICTED",
+      "16": "FLAG_INITIALIZED",
+      "32": "FLAG_MANAGED_PROFILE",
+      "64": "FLAG_DISABLED",
+      "128": "FLAG_QUIET_MODE",
+      "256": "FLAG_EPHEMERAL",
+      "512": "FLAG_DEMO",
+      "1024": "FLAG_FULL",
+      "2048": "FLAG_SYSTEM",
+      "4096": "FLAG_PROFILE"
+    }
+  },
+  "android.content.pm.dex.ArtManager.ProfileType": {
+    "flag": true,
+    "values": {
+      "0": "PROFILE_APPS",
+      "1": "PROFILE_BOOT_IMAGE"
+    }
+  },
+  "android.content.pm.parsing.component.ParsedAttribution.Max": {
+    "flag": false,
+    "values": {
+      "50": "MAX_ATTRIBUTION_TAG_LEN",
+      "1000": "MAX_NUM_ATTRIBUTIONS"
+    }
+  },
+  "android.content.res.ApkAssets.FormatType": {
+    "flag": false,
+    "values": {
+      "0": "FORMAT_APK",
+      "1": "FORMAT_IDMAP",
+      "2": "FORMAT_ARSC",
+      "3": "FORMAT_DIR"
+    }
+  },
+  "android.content.res.ApkAssets.PropertyFlags": {
+    "flag": false,
+    "values": {
+      "1": "PROPERTY_SYSTEM",
+      "2": "PROPERTY_DYNAMIC",
+      "4": "PROPERTY_LOADER",
+      "8": "PROPERTY_OVERLAY"
+    }
+  },
+  "android.content.res.Configuration.NativeConfig": {
+    "flag": true,
+    "values": {
+      "1": "NATIVE_CONFIG_MCC",
+      "2": "NATIVE_CONFIG_MNC",
+      "4": "NATIVE_CONFIG_LOCALE",
+      "8": "NATIVE_CONFIG_TOUCHSCREEN",
+      "16": "NATIVE_CONFIG_KEYBOARD",
+      "32": "NATIVE_CONFIG_KEYBOARD_HIDDEN",
+      "64": "NATIVE_CONFIG_NAVIGATION",
+      "128": "NATIVE_CONFIG_ORIENTATION",
+      "256": "NATIVE_CONFIG_DENSITY",
+      "512": "NATIVE_CONFIG_SCREEN_SIZE",
+      "1024": "NATIVE_CONFIG_VERSION",
+      "2048": "NATIVE_CONFIG_SCREEN_LAYOUT",
+      "4096": "NATIVE_CONFIG_UI_MODE",
+      "8192": "NATIVE_CONFIG_SMALLEST_SCREEN_SIZE",
+      "16384": "NATIVE_CONFIG_LAYOUTDIR",
+      "65536": "NATIVE_CONFIG_COLOR_MODE"
+    }
+  },
+  "android.content.res.Configuration.Orientation": {
+    "flag": false,
+    "values": {
+      "0": "ORIENTATION_UNDEFINED",
+      "1": "ORIENTATION_PORTRAIT",
+      "2": "ORIENTATION_LANDSCAPE",
+      "3": "ORIENTATION_SQUARE"
+    }
+  },
+  "android.content.res.GradientColor.GradientTileMode": {
+    "flag": false,
+    "values": {
+      "0": "TILE_MODE_CLAMP",
+      "1": "TILE_MODE_REPEAT",
+      "2": "TILE_MODE_MIRROR"
+    }
+  },
+  "android.content.rollback.RollbackManager.Status": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_SUCCESS",
+      "1": "STATUS_FAILURE",
+      "2": "STATUS_FAILURE_ROLLBACK_UNAVAILABLE",
+      "3": "STATUS_FAILURE_INSTALL"
+    }
+  },
+  "android.database.Cursor.FieldType": {
+    "flag": false,
+    "values": {
+      "0": "FIELD_TYPE_NULL",
+      "1": "FIELD_TYPE_INTEGER",
+      "2": "FIELD_TYPE_FLOAT",
+      "3": "FIELD_TYPE_STRING",
+      "4": "FIELD_TYPE_BLOB"
+    }
+  },
+  "android.database.sqlite.SQLiteDatabase.DatabaseOpenFlags": {
+    "flag": true,
+    "values": {
+      "0": "OPEN_READWRITE",
+      "1": "OPEN_READONLY",
+      "268435456": "CREATE_IF_NECESSARY",
+      "16": "NO_LOCALIZED_COLLATORS",
+      "536870912": "ENABLE_WRITE_AHEAD_LOGGING"
+    }
+  },
+  "android.graphics.Canvas.Saveflags": {
+    "flag": true,
+    "values": {
+      "31": "ALL_SAVE_FLAG"
+    }
+  },
+  "android.graphics.HardwareRenderer.DumpFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_DUMP_FRAMESTATS",
+      "2": "FLAG_DUMP_RESET"
+    }
+  },
+  "android.graphics.HardwareRenderer.SyncAndDrawResult": {
+    "flag": false,
+    "values": {
+      "0": "SYNC_OK",
+      "1": "SYNC_REDRAW_REQUESTED",
+      "2": "SYNC_LOST_SURFACE_REWARD_IF_FOUND",
+      "4": "SYNC_CONTEXT_IS_STOPPED",
+      "8": "SYNC_FRAME_DROPPED"
+    }
+  },
+  "android.graphics.ImageDecoder.Allocator": {
+    "flag": false,
+    "values": {
+      "0": "ALLOCATOR_DEFAULT",
+      "1": "ALLOCATOR_SOFTWARE",
+      "2": "ALLOCATOR_SHARED_MEMORY",
+      "3": "ALLOCATOR_HARDWARE"
+    }
+  },
+  "android.graphics.ImageDecoder.DecodeException.Error": {
+    "flag": false,
+    "values": {
+      "1": "SOURCE_EXCEPTION",
+      "2": "SOURCE_INCOMPLETE",
+      "3": "SOURCE_MALFORMED_DATA"
+    }
+  },
+  "android.graphics.ImageDecoder.MemoryPolicy": {
+    "flag": false,
+    "values": {
+      "1": "MEMORY_POLICY_DEFAULT",
+      "0": "MEMORY_POLICY_LOW_RAM"
+    }
+  },
+  "android.graphics.ImageFormat.Format": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN",
+      "4": "RGB_565",
+      "842094169": "YV12",
+      "538982489": "Y8",
+      "540422489": "Y16",
+      "16": "NV16",
+      "17": "NV21",
+      "20": "YUY2",
+      "256": "JPEG",
+      "1768253795": "DEPTH_JPEG",
+      "35": "YUV_420_888",
+      "39": "YUV_422_888",
+      "40": "YUV_444_888",
+      "41": "FLEX_RGB_888",
+      "42": "FLEX_RGBA_8888",
+      "32": "RAW_SENSOR",
+      "36": "RAW_PRIVATE",
+      "37": "RAW10",
+      "38": "RAW12",
+      "1144402265": "DEPTH16",
+      "257": "DEPTH_POINT_CLOUD",
+      "4098": "RAW_DEPTH",
+      "4099": "RAW_DEPTH10",
+      "34": "PRIVATE",
+      "1212500294": "HEIC"
+    }
+  },
+  "android.graphics.Outline.Mode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_EMPTY",
+      "1": "MODE_ROUND_RECT",
+      "2": "MODE_PATH"
+    }
+  },
+  "android.graphics.Paint.CursorOption": {
+    "flag": false,
+    "values": {
+      "0": "CURSOR_AFTER",
+      "1": "CURSOR_AT_OR_AFTER",
+      "2": "CURSOR_BEFORE",
+      "3": "CURSOR_AT_OR_BEFORE"
+    }
+  },
+  "android.graphics.Paint.EndHyphenEdit": {
+    "flag": false,
+    "values": {
+      "0": "END_HYPHEN_EDIT_NO_EDIT",
+      "1": "END_HYPHEN_EDIT_REPLACE_WITH_HYPHEN",
+      "2": "END_HYPHEN_EDIT_INSERT_HYPHEN",
+      "3": "END_HYPHEN_EDIT_INSERT_ARMENIAN_HYPHEN",
+      "4": "END_HYPHEN_EDIT_INSERT_MAQAF",
+      "5": "END_HYPHEN_EDIT_INSERT_UCAS_HYPHEN",
+      "6": "END_HYPHEN_EDIT_INSERT_ZWJ_AND_HYPHEN"
+    }
+  },
+  "android.graphics.Paint.PaintFlag": {
+    "flag": true,
+    "values": {
+      "1": "ANTI_ALIAS_FLAG",
+      "2": "FILTER_BITMAP_FLAG",
+      "4": "DITHER_FLAG",
+      "8": "UNDERLINE_TEXT_FLAG",
+      "16": "STRIKE_THRU_TEXT_FLAG",
+      "32": "FAKE_BOLD_TEXT_FLAG",
+      "64": "LINEAR_TEXT_FLAG",
+      "128": "SUBPIXEL_TEXT_FLAG",
+      "1024": "EMBEDDED_BITMAP_TEXT_FLAG"
+    }
+  },
+  "android.graphics.Paint.StartHyphenEdit": {
+    "flag": false,
+    "values": {
+      "0": "START_HYPHEN_EDIT_NO_EDIT",
+      "1": "START_HYPHEN_EDIT_INSERT_HYPHEN",
+      "2": "START_HYPHEN_EDIT_INSERT_ZWJ"
+    }
+  },
+  "android.graphics.PixelFormat.Format": {
+    "flag": false,
+    "values": {
+      "1": "RGBA_8888",
+      "2": "RGBX_8888",
+      "22": "RGBA_F16",
+      "43": "RGBA_1010102",
+      "3": "RGB_888",
+      "4": "RGB_565"
+    }
+  },
+  "android.graphics.PixelFormat.Opacity": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN",
+      "-3": "TRANSLUCENT",
+      "-2": "TRANSPARENT",
+      "-1": "OPAQUE"
+    }
+  },
+  "android.graphics.RenderNode.UsageHint": {
+    "flag": false,
+    "values": {
+      "1": "USAGE_BACKGROUND"
+    }
+  },
+  "android.graphics.Typeface.Style": {
+    "flag": false,
+    "values": {
+      "0": "NORMAL",
+      "1": "BOLD",
+      "2": "ITALIC",
+      "3": "BOLD_ITALIC"
+    }
+  },
+  "android.graphics.drawable.GradientDrawable.GradientType": {
+    "flag": false,
+    "values": {
+      "0": "LINEAR_GRADIENT",
+      "1": "RADIAL_GRADIENT",
+      "2": "SWEEP_GRADIENT"
+    }
+  },
+  "android.graphics.drawable.GradientDrawable.RadiusType": {
+    "flag": false,
+    "values": {
+      "0": "RADIUS_TYPE_PIXELS",
+      "1": "RADIUS_TYPE_FRACTION",
+      "2": "RADIUS_TYPE_FRACTION_PARENT"
+    }
+  },
+  "android.graphics.drawable.GradientDrawable.Shape": {
+    "flag": false,
+    "values": {
+      "0": "RECTANGLE",
+      "1": "OVAL",
+      "2": "LINE",
+      "3": "RING"
+    }
+  },
+  "android.graphics.drawable.Icon.IconType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_BITMAP",
+      "2": "TYPE_RESOURCE",
+      "3": "TYPE_DATA",
+      "4": "TYPE_URI",
+      "5": "TYPE_ADAPTIVE_BITMAP",
+      "6": "TYPE_URI_ADAPTIVE_BITMAP"
+    }
+  },
+  "android.graphics.fonts.FontStyle.FontSlant": {
+    "flag": false,
+    "values": {
+      "0": "FONT_SLANT_UPRIGHT",
+      "1": "FONT_SLANT_ITALIC"
+    }
+  },
+  "android.graphics.pdf.PdfRenderer.RenderMode": {
+    "flag": false,
+    "values": {
+      "1": "RENDER_MODE_FOR_DISPLAY",
+      "2": "RENDER_MODE_FOR_PRINT"
+    }
+  },
+  "android.graphics.text.LineBreaker.BreakStrategy": {
+    "flag": false,
+    "values": {
+      "0": "BREAK_STRATEGY_SIMPLE",
+      "1": "BREAK_STRATEGY_HIGH_QUALITY",
+      "2": "BREAK_STRATEGY_BALANCED"
+    }
+  },
+  "android.graphics.text.LineBreaker.HyphenationFrequency": {
+    "flag": false,
+    "values": {
+      "1": "HYPHENATION_FREQUENCY_NORMAL",
+      "2": "HYPHENATION_FREQUENCY_FULL",
+      "0": "HYPHENATION_FREQUENCY_NONE"
+    }
+  },
+  "android.graphics.text.LineBreaker.JustificationMode": {
+    "flag": false,
+    "values": {
+      "0": "JUSTIFICATION_MODE_NONE",
+      "1": "JUSTIFICATION_MODE_INTER_WORD"
+    }
+  },
+  "android.hardware.HardwareBuffer.Format": {
+    "flag": false,
+    "values": {
+      "1": "RGBA_8888",
+      "22": "RGBA_FP16",
+      "43": "RGBA_1010102",
+      "2": "RGBX_8888",
+      "3": "RGB_888",
+      "4": "RGB_565",
+      "33": "BLOB",
+      "35": "YCBCR_420_888",
+      "48": "D_16",
+      "49": "D_24",
+      "50": "DS_24UI8",
+      "51": "D_FP32",
+      "52": "DS_FP32UI8",
+      "53": "S_UI8"
+    }
+  },
+  "android.hardware.SensorAdditionalInfo.AdditionalInfoType": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_FRAME_BEGIN",
+      "1": "TYPE_FRAME_END",
+      "65536": "TYPE_UNTRACKED_DELAY",
+      "65537": "TYPE_INTERNAL_TEMPERATURE",
+      "65538": "TYPE_VEC3_CALIBRATION",
+      "65539": "TYPE_SENSOR_PLACEMENT",
+      "65540": "TYPE_SAMPLING"
+    }
+  },
+  "android.hardware.SensorDirectChannel.MemoryType": {
+    "flag": true,
+    "values": {
+      "1": "TYPE_MEMORY_FILE",
+      "2": "TYPE_HARDWARE_BUFFER"
+    }
+  },
+  "android.hardware.SensorDirectChannel.RateLevel": {
+    "flag": true,
+    "values": {
+      "0": "RATE_STOP",
+      "1": "RATE_NORMAL",
+      "2": "RATE_FAST",
+      "3": "RATE_VERY_FAST"
+    }
+  },
+  "android.hardware.biometrics.BiometricAuthenticator.Modality": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_NONE",
+      "1": "TYPE_CREDENTIAL",
+      "2": "TYPE_FINGERPRINT",
+      "4": "TYPE_IRIS"
+    }
+  },
+  "android.hardware.biometrics.BiometricConstants.Acquired": {
+    "flag": false,
+    "values": {
+      "0": "BIOMETRIC_ACQUIRED_GOOD",
+      "1": "BIOMETRIC_ACQUIRED_PARTIAL",
+      "2": "BIOMETRIC_ACQUIRED_INSUFFICIENT",
+      "3": "BIOMETRIC_ACQUIRED_IMAGER_DIRTY",
+      "4": "BIOMETRIC_ACQUIRED_TOO_SLOW",
+      "5": "BIOMETRIC_ACQUIRED_TOO_FAST",
+      "6": "BIOMETRIC_ACQUIRED_VENDOR"
+    }
+  },
+  "android.hardware.biometrics.BiometricConstants.Errors": {
+    "flag": false,
+    "values": {
+      "0": "BIOMETRIC_SUCCESS",
+      "1": "BIOMETRIC_ERROR_HW_UNAVAILABLE",
+      "2": "BIOMETRIC_ERROR_UNABLE_TO_PROCESS",
+      "3": "BIOMETRIC_ERROR_TIMEOUT",
+      "4": "BIOMETRIC_ERROR_NO_SPACE",
+      "5": "BIOMETRIC_ERROR_CANCELED",
+      "6": "BIOMETRIC_ERROR_UNABLE_TO_REMOVE",
+      "7": "BIOMETRIC_ERROR_LOCKOUT",
+      "8": "BIOMETRIC_ERROR_VENDOR",
+      "9": "BIOMETRIC_ERROR_LOCKOUT_PERMANENT",
+      "10": "BIOMETRIC_ERROR_USER_CANCELED",
+      "11": "BIOMETRIC_ERROR_NO_BIOMETRICS",
+      "12": "BIOMETRIC_ERROR_HW_NOT_PRESENT",
+      "13": "BIOMETRIC_ERROR_NEGATIVE_BUTTON",
+      "14": "BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL",
+      "15": "BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED",
+      "100": "BIOMETRIC_PAUSED_REJECTED"
+    }
+  },
+  "android.hardware.biometrics.BiometricFingerprintConstants.FingerprintAcquired": {
+    "flag": false,
+    "values": {
+      "0": "FINGERPRINT_ACQUIRED_GOOD",
+      "1": "FINGERPRINT_ACQUIRED_PARTIAL",
+      "2": "FINGERPRINT_ACQUIRED_INSUFFICIENT",
+      "3": "FINGERPRINT_ACQUIRED_IMAGER_DIRTY",
+      "4": "FINGERPRINT_ACQUIRED_TOO_SLOW",
+      "5": "FINGERPRINT_ACQUIRED_TOO_FAST",
+      "6": "FINGERPRINT_ACQUIRED_VENDOR",
+      "7": "FINGERPRINT_ACQUIRED_START"
+    }
+  },
+  "android.hardware.biometrics.BiometricFingerprintConstants.FingerprintError": {
+    "flag": false,
+    "values": {
+      "1": "FINGERPRINT_ERROR_HW_UNAVAILABLE",
+      "2": "FINGERPRINT_ERROR_UNABLE_TO_PROCESS",
+      "3": "FINGERPRINT_ERROR_TIMEOUT",
+      "4": "FINGERPRINT_ERROR_NO_SPACE",
+      "5": "FINGERPRINT_ERROR_CANCELED",
+      "6": "FINGERPRINT_ERROR_UNABLE_TO_REMOVE",
+      "7": "FINGERPRINT_ERROR_LOCKOUT",
+      "8": "FINGERPRINT_ERROR_VENDOR",
+      "9": "FINGERPRINT_ERROR_LOCKOUT_PERMANENT",
+      "10": "FINGERPRINT_ERROR_USER_CANCELED",
+      "11": "FINGERPRINT_ERROR_NO_FINGERPRINTS",
+      "12": "FINGERPRINT_ERROR_HW_NOT_PRESENT",
+      "13": "FINGERPRINT_ERROR_NEGATIVE_BUTTON",
+      "14": "BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL",
+      "15": "BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED"
+    }
+  },
+  "android.hardware.biometrics.BiometricManager.Authenticators.Types": {
+    "flag": true,
+    "values": {
+      "15": "BIOMETRIC_STRONG",
+      "255": "BIOMETRIC_WEAK",
+      "4095": "BIOMETRIC_CONVENIENCE",
+      "32768": "DEVICE_CREDENTIAL"
+    }
+  },
+  "android.hardware.biometrics.BiometricManager.BiometricError": {
+    "flag": false,
+    "values": {
+      "0": "BIOMETRIC_SUCCESS",
+      "1": "BIOMETRIC_ERROR_HW_UNAVAILABLE",
+      "11": "BIOMETRIC_ERROR_NONE_ENROLLED",
+      "12": "BIOMETRIC_ERROR_NO_HARDWARE",
+      "15": "BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED"
+    }
+  },
+  "android.hardware.biometrics.BiometricPrompt.AuthenticationResultType": {
+    "flag": false,
+    "values": {
+      "1": "AUTHENTICATION_RESULT_TYPE_DEVICE_CREDENTIAL",
+      "2": "AUTHENTICATION_RESULT_TYPE_BIOMETRIC"
+    }
+  },
+  "android.hardware.biometrics.BiometricPrompt.DismissedReason": {
+    "flag": false,
+    "values": {
+      "1": "DISMISSED_REASON_BIOMETRIC_CONFIRMED",
+      "2": "DISMISSED_REASON_NEGATIVE",
+      "3": "DISMISSED_REASON_USER_CANCEL",
+      "4": "DISMISSED_REASON_BIOMETRIC_CONFIRM_NOT_REQUIRED",
+      "5": "DISMISSED_REASON_ERROR",
+      "6": "DISMISSED_REASON_SERVER_REQUESTED",
+      "7": "DISMISSED_REASON_CREDENTIAL_CONFIRMED"
+    }
+  },
+  "android.hardware.biometrics.SensorProperties.Strength": {
+    "flag": false,
+    "values": {
+      "0": "STRENGTH_CONVENIENCE",
+      "1": "STRENGTH_WEAK",
+      "2": "STRENGTH_STRONG"
+    }
+  },
+  "android.hardware.camera2.CameraAccessException.AccessError": {
+    "flag": false,
+    "values": {
+      "4": "CAMERA_IN_USE",
+      "5": "MAX_CAMERAS_IN_USE",
+      "1": "CAMERA_DISABLED",
+      "2": "CAMERA_DISCONNECTED",
+      "3": "CAMERA_ERROR"
+    }
+  },
+  "android.hardware.camera2.CameraDevice.CAMERA_AUDIO_RESTRICTION": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_RESTRICTION_NONE",
+      "1": "AUDIO_RESTRICTION_VIBRATION",
+      "3": "AUDIO_RESTRICTION_VIBRATION_SOUND"
+    }
+  },
+  "android.hardware.camera2.CameraDevice.RequestTemplate": {
+    "flag": false,
+    "values": {
+      "1": "TEMPLATE_PREVIEW",
+      "2": "TEMPLATE_STILL_CAPTURE",
+      "3": "TEMPLATE_RECORD",
+      "4": "TEMPLATE_VIDEO_SNAPSHOT",
+      "5": "TEMPLATE_ZERO_SHUTTER_LAG",
+      "6": "TEMPLATE_MANUAL"
+    }
+  },
+  "android.hardware.camera2.CameraDevice.SessionOperatingMode": {
+    "flag": false,
+    "values": {
+      "0": "SESSION_OPERATION_MODE_NORMAL",
+      "1": "SESSION_OPERATION_MODE_CONSTRAINED_HIGH_SPEED",
+      "32768": "SESSION_OPERATION_MODE_VENDOR_START"
+    }
+  },
+  "android.hardware.camera2.CameraDevice.StateCallback.ErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_CAMERA_IN_USE",
+      "2": "ERROR_MAX_CAMERAS_IN_USE",
+      "3": "ERROR_CAMERA_DISABLED",
+      "4": "ERROR_CAMERA_DEVICE",
+      "5": "ERROR_CAMERA_SERVICE"
+    }
+  },
+  "android.hardware.camera2.CameraOfflineSession.CameraOfflineSessionCallback.StatusCode": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_INTERNAL_ERROR"
+    }
+  },
+  "android.hardware.camera2.CaptureFailure.FailureReason": {
+    "flag": false,
+    "values": {
+      "0": "REASON_ERROR",
+      "1": "REASON_FLUSHED"
+    }
+  },
+  "android.hardware.camera2.params.RecommendedStreamConfigurationMap.RecommendedUsecase": {
+    "flag": false,
+    "values": {
+      "0": "USECASE_PREVIEW",
+      "1": "USECASE_RECORD",
+      "2": "USECASE_VIDEO_SNAPSHOT",
+      "3": "USECASE_SNAPSHOT",
+      "4": "USECASE_ZSL",
+      "5": "USECASE_RAW",
+      "6": "USECASE_LOW_LATENCY_SNAPSHOT"
+    }
+  },
+  "android.hardware.camera2.params.SessionConfiguration.SessionMode": {
+    "flag": false,
+    "values": {
+      "0": "SESSION_REGULAR",
+      "1": "SESSION_HIGH_SPEED"
+    }
+  },
+  "android.hardware.display.ColorDisplayManager.AutoMode": {
+    "flag": false,
+    "values": {
+      "0": "AUTO_MODE_DISABLED",
+      "1": "AUTO_MODE_CUSTOM_TIME",
+      "2": "AUTO_MODE_TWILIGHT"
+    }
+  },
+  "android.hardware.display.ColorDisplayManager.CapabilityType": {
+    "flag": false,
+    "values": {
+      "0": "CAPABILITY_NONE",
+      "1": "CAPABILITY_PROTECTED_CONTENT",
+      "2": "CAPABILITY_HARDWARE_ACCELERATION_GLOBAL",
+      "4": "CAPABILITY_HARDWARE_ACCELERATION_PER_APP"
+    }
+  },
+  "android.hardware.display.ColorDisplayManager.ColorMode": {
+    "flag": false,
+    "values": {
+      "0": "COLOR_MODE_NATURAL",
+      "1": "COLOR_MODE_BOOSTED",
+      "2": "COLOR_MODE_SATURATED",
+      "3": "COLOR_MODE_AUTOMATIC"
+    }
+  },
+  "android.hardware.display.DisplayViewport.ViewportType": {
+    "flag": false,
+    "values": {
+      "1": "VIEWPORT_INTERNAL",
+      "2": "VIEWPORT_EXTERNAL",
+      "3": "VIEWPORT_VIRTUAL"
+    }
+  },
+  "android.hardware.fingerprint.FingerprintManager.SensorId": {
+    "flag": false,
+    "values": {
+      "-1": "SENSOR_ID_ANY"
+    }
+  },
+  "android.hardware.fingerprint.FingerprintSensorProperties.SensorType": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "1": "TYPE_REAR",
+      "2": "TYPE_UDFPS_ULTRASONIC",
+      "3": "TYPE_UDFPS_OPTICAL",
+      "4": "TYPE_POWER_BUTTON",
+      "5": "TYPE_HOME_BUTTON"
+    }
+  },
+  "android.hardware.hdmi.HdmiControlManager.ControlCallbackResult": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_SUCCESS",
+      "1": "RESULT_TIMEOUT",
+      "2": "RESULT_SOURCE_NOT_AVAILABLE",
+      "3": "RESULT_TARGET_NOT_AVAILABLE",
+      "4": "RESULT_ALREADY_IN_PROGRESS",
+      "5": "RESULT_EXCEPTION",
+      "6": "RESULT_INCORRECT_MODE",
+      "7": "RESULT_COMMUNICATION_FAILED"
+    }
+  },
+  "android.hardware.hdmi.HdmiControlManager.HdmiCecControl": {
+    "flag": false,
+    "values": {
+      "1": "HDMI_CEC_CONTROL_ENABLED",
+      "0": "HDMI_CEC_CONTROL_DISABLED"
+    }
+  },
+  "android.hardware.hdmi.HdmiControlManager.HdmiCecVersion": {
+    "flag": false,
+    "values": {
+      "5": "HDMI_CEC_VERSION_1_4_b",
+      "6": "HDMI_CEC_VERSION_2_0"
+    }
+  },
+  "android.hardware.hdmi.HdmiControlManager.SystemAudioModeMuting": {
+    "flag": false,
+    "values": {
+      "1": "SYSTEM_AUDIO_MODE_MUTING_ENABLED",
+      "0": "SYSTEM_AUDIO_MODE_MUTING_DISABLED"
+    }
+  },
+  "android.hardware.hdmi.HdmiUtils.HdmiAddressRelativePosition": {
+    "flag": false,
+    "values": {
+      "0": "HDMI_RELATIVE_POSITION_UNKNOWN",
+      "1": "HDMI_RELATIVE_POSITION_DIRECTLY_BELOW",
+      "2": "HDMI_RELATIVE_POSITION_BELOW",
+      "3": "HDMI_RELATIVE_POSITION_SAME",
+      "4": "HDMI_RELATIVE_POSITION_DIRECTLY_ABOVE",
+      "5": "HDMI_RELATIVE_POSITION_ABOVE",
+      "6": "HDMI_RELATIVE_POSITION_SIBLING",
+      "7": "HDMI_RELATIVE_POSITION_DIFFERENT_BRANCH"
+    }
+  },
+  "android.hardware.input.InputManager.SwitchState": {
+    "flag": false,
+    "values": {
+      "-1": "SWITCH_STATE_UNKNOWN",
+      "0": "SWITCH_STATE_OFF",
+      "1": "SWITCH_STATE_ON"
+    }
+  },
+  "android.hardware.lights.LightsManager.LightType": {
+    "flag": false,
+    "values": {
+      "8": "LIGHT_TYPE_MICROPHONE"
+    }
+  },
+  "android.hardware.location.ContextHubManager.Event": {
+    "flag": false,
+    "values": {
+      "0": "EVENT_NANOAPP_LOADED",
+      "1": "EVENT_NANOAPP_UNLOADED",
+      "2": "EVENT_NANOAPP_ENABLED",
+      "3": "EVENT_NANOAPP_DISABLED",
+      "4": "EVENT_NANOAPP_ABORTED",
+      "5": "EVENT_NANOAPP_MESSAGE",
+      "6": "EVENT_HUB_RESET"
+    }
+  },
+  "android.hardware.location.ContextHubTransaction.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_SUCCESS",
+      "1": "RESULT_FAILED_UNKNOWN",
+      "2": "RESULT_FAILED_BAD_PARAMS",
+      "3": "RESULT_FAILED_UNINITIALIZED",
+      "4": "RESULT_FAILED_BUSY",
+      "5": "RESULT_FAILED_AT_HUB",
+      "6": "RESULT_FAILED_TIMEOUT",
+      "7": "RESULT_FAILED_SERVICE_INTERNAL_FAILURE",
+      "8": "RESULT_FAILED_HAL_UNAVAILABLE"
+    }
+  },
+  "android.hardware.location.ContextHubTransaction.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_LOAD_NANOAPP",
+      "1": "TYPE_UNLOAD_NANOAPP",
+      "2": "TYPE_ENABLE_NANOAPP",
+      "3": "TYPE_DISABLE_NANOAPP",
+      "4": "TYPE_QUERY_NANOAPPS"
+    }
+  },
+  "android.hardware.radio.Announcement.Type": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_EMERGENCY",
+      "2": "TYPE_WARNING",
+      "3": "TYPE_TRAFFIC",
+      "4": "TYPE_WEATHER",
+      "5": "TYPE_NEWS",
+      "6": "TYPE_EVENT",
+      "7": "TYPE_SPORT",
+      "8": "TYPE_MISC"
+    }
+  },
+  "android.hardware.radio.ProgramSelector.IdentifierType": {
+    "flag": false,
+    "values": {
+      "0": "IDENTIFIER_TYPE_INVALID",
+      "1": "IDENTIFIER_TYPE_AMFM_FREQUENCY",
+      "2": "IDENTIFIER_TYPE_RDS_PI",
+      "3": "IDENTIFIER_TYPE_HD_STATION_ID_EXT",
+      "4": "IDENTIFIER_TYPE_HD_SUBCHANNEL",
+      "10004": "IDENTIFIER_TYPE_HD_STATION_NAME",
+      "5": "IDENTIFIER_TYPE_DAB_SIDECC",
+      "6": "IDENTIFIER_TYPE_DAB_ENSEMBLE",
+      "7": "IDENTIFIER_TYPE_DAB_SCID",
+      "8": "IDENTIFIER_TYPE_DAB_FREQUENCY",
+      "9": "IDENTIFIER_TYPE_DRMO_SERVICE_ID",
+      "10": "IDENTIFIER_TYPE_DRMO_FREQUENCY",
+      "11": "IDENTIFIER_TYPE_DRMO_MODULATION",
+      "12": "IDENTIFIER_TYPE_SXM_SERVICE_ID",
+      "13": "IDENTIFIER_TYPE_SXM_CHANNEL"
+    }
+  },
+  "android.hardware.radio.ProgramSelector.ProgramType": {
+    "flag": false,
+    "values": {
+      "0": "PROGRAM_TYPE_INVALID",
+      "1": "PROGRAM_TYPE_AM",
+      "2": "PROGRAM_TYPE_FM",
+      "3": "PROGRAM_TYPE_AM_HD",
+      "4": "PROGRAM_TYPE_FM_HD",
+      "5": "PROGRAM_TYPE_DAB",
+      "6": "PROGRAM_TYPE_DRMO",
+      "7": "PROGRAM_TYPE_SXM"
+    }
+  },
+  "android.hardware.radio.RadioManager.Band": {
+    "flag": false,
+    "values": {
+      "-1": "BAND_INVALID",
+      "0": "BAND_AM",
+      "1": "BAND_FM",
+      "3": "BAND_AM_HD",
+      "2": "BAND_FM_HD"
+    }
+  },
+  "android.hardware.radio.RadioManager.ConfigFlag": {
+    "flag": false,
+    "values": {
+      "1": "CONFIG_FORCE_MONO",
+      "2": "CONFIG_FORCE_ANALOG",
+      "3": "CONFIG_FORCE_DIGITAL",
+      "4": "CONFIG_RDS_AF",
+      "5": "CONFIG_RDS_REG",
+      "6": "CONFIG_DAB_DAB_LINKING",
+      "7": "CONFIG_DAB_FM_LINKING",
+      "8": "CONFIG_DAB_DAB_SOFT_LINKING",
+      "9": "CONFIG_DAB_FM_SOFT_LINKING"
+    }
+  },
+  "android.hardware.soundtrigger.KeyphraseEnrollmentInfo.ManageActions": {
+    "flag": false,
+    "values": {
+      "0": "MANAGE_ACTION_ENROLL",
+      "1": "MANAGE_ACTION_RE_ENROLL",
+      "2": "MANAGE_ACTION_UN_ENROLL"
+    }
+  },
+  "android.hardware.soundtrigger.SoundTrigger.ModuleProperties.AudioCapabilities": {
+    "flag": true,
+    "values": {
+      "1": "AUDIO_CAPABILITY_ECHO_CANCELLATION",
+      "2": "AUDIO_CAPABILITY_NOISE_SUPPRESSION"
+    }
+  },
+  "android.hardware.soundtrigger.SoundTrigger.RecognitionModes": {
+    "flag": true,
+    "values": {
+      "1": "RECOGNITION_MODE_VOICE_TRIGGER",
+      "2": "RECOGNITION_MODE_USER_IDENTIFICATION",
+      "4": "RECOGNITION_MODE_USER_AUTHENTICATION",
+      "8": "RECOGNITION_MODE_GENERIC"
+    }
+  },
+  "android.hardware.soundtrigger.SoundTrigger.SoundModel.SoundModelType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_GENERIC_SOUND",
+      "0": "TYPE_KEYPHRASE",
+      "-1": "TYPE_UNKNOWN"
+    }
+  },
+  "android.hardware.usb.UsbManager.UsbGadgetHalVersion": {
+    "flag": true,
+    "values": {
+      "-1": "GADGET_HAL_NOT_SUPPORTED",
+      "10": "GADGET_HAL_V1_0",
+      "11": "GADGET_HAL_V1_1",
+      "12": "GADGET_HAL_V1_2"
+    }
+  },
+  "android.hardware.usb.UsbPortStatus.ContaminantDetectionStatus": {
+    "flag": true,
+    "values": {
+      "0": "CONTAMINANT_DETECTION_NOT_SUPPORTED",
+      "1": "CONTAMINANT_DETECTION_DISABLED",
+      "2": "CONTAMINANT_DETECTION_NOT_DETECTED",
+      "3": "CONTAMINANT_DETECTION_DETECTED"
+    }
+  },
+  "android.hardware.usb.UsbPortStatus.ContaminantProtectionStatus": {
+    "flag": true,
+    "values": {
+      "0": "CONTAMINANT_PROTECTION_NONE",
+      "1": "CONTAMINANT_PROTECTION_SINK",
+      "2": "CONTAMINANT_PROTECTION_SOURCE",
+      "4": "CONTAMINANT_PROTECTION_FORCE_DISABLE",
+      "8": "CONTAMINANT_PROTECTION_DISABLED"
+    }
+  },
+  "android.hardware.usb.UsbPortStatus.UsbDataRole": {
+    "flag": false,
+    "values": {
+      "0": "DATA_ROLE_NONE",
+      "1": "DATA_ROLE_HOST",
+      "2": "DATA_ROLE_DEVICE"
+    }
+  },
+  "android.hardware.usb.UsbPortStatus.UsbPortMode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_NONE",
+      "2": "MODE_DFP",
+      "1": "MODE_UFP",
+      "4": "MODE_AUDIO_ACCESSORY",
+      "8": "MODE_DEBUG_ACCESSORY"
+    }
+  },
+  "android.hardware.usb.UsbPortStatus.UsbPowerRole": {
+    "flag": false,
+    "values": {
+      "0": "POWER_ROLE_NONE",
+      "1": "POWER_ROLE_SOURCE",
+      "2": "POWER_ROLE_SINK"
+    }
+  },
+  "android.inputmethodservice.InputMethodService.BackDispositionMode": {
+    "flag": false,
+    "values": {
+      "0": "BACK_DISPOSITION_DEFAULT",
+      "1": "BACK_DISPOSITION_WILL_NOT_DISMISS",
+      "2": "BACK_DISPOSITION_WILL_DISMISS",
+      "3": "BACK_DISPOSITION_ADJUST_NOTHING"
+    }
+  },
+  "android.inputmethodservice.InputMethodService.SettingsObserver.ShowImeWithHardKeyboardType": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN",
+      "1": "FALSE",
+      "2": "TRUE"
+    }
+  },
+  "android.inputmethodservice.MultiClientInputMethodServiceDelegateImpl.InitializationPhase": {
+    "flag": false,
+    "values": {
+      "1": "INSTANTIATED",
+      "2": "ON_BIND_CALLED",
+      "3": "INITIALIZE_CALLED",
+      "4": "ON_UNBIND_CALLED",
+      "5": "ON_DESTROY_CALLED"
+    }
+  },
+  "android.inputmethodservice.SoftInputWindow.SoftInputWindowState": {
+    "flag": false,
+    "values": {
+      "0": "TOKEN_PENDING",
+      "1": "TOKEN_SET",
+      "2": "SHOWN_AT_LEAST_ONCE",
+      "3": "REJECTED_AT_LEAST_ONCE"
+    }
+  },
+  "android.location.Criteria.AccuracyRequirement": {
+    "flag": false,
+    "values": {
+      "0": "NO_REQUIREMENT",
+      "1": "ACCURACY_LOW",
+      "2": "ACCURACY_MEDIUM",
+      "3": "ACCURACY_HIGH"
+    }
+  },
+  "android.location.Criteria.LocationAccuracyRequirement": {
+    "flag": false,
+    "values": {
+      "0": "NO_REQUIREMENT",
+      "1": "ACCURACY_FINE",
+      "2": "ACCURACY_COARSE"
+    }
+  },
+  "android.location.Criteria.PowerRequirement": {
+    "flag": false,
+    "values": {
+      "0": "NO_REQUIREMENT",
+      "1": "POWER_LOW",
+      "2": "POWER_MEDIUM",
+      "3": "POWER_HIGH"
+    }
+  },
+  "android.location.GnssMeasurement.AdrState": {
+    "flag": true,
+    "values": {
+      "1": "ADR_STATE_VALID",
+      "2": "ADR_STATE_RESET",
+      "4": "ADR_STATE_CYCLE_SLIP",
+      "8": "ADR_STATE_HALF_CYCLE_RESOLVED",
+      "16": "ADR_STATE_HALF_CYCLE_REPORTED"
+    }
+  },
+  "android.location.GnssMeasurement.MultipathIndicator": {
+    "flag": false,
+    "values": {
+      "0": "MULTIPATH_INDICATOR_UNKNOWN",
+      "1": "MULTIPATH_INDICATOR_DETECTED",
+      "2": "MULTIPATH_INDICATOR_NOT_DETECTED"
+    }
+  },
+  "android.location.GnssMeasurement.State": {
+    "flag": true,
+    "values": {
+      "1": "STATE_CODE_LOCK",
+      "2": "STATE_BIT_SYNC",
+      "4": "STATE_SUBFRAME_SYNC",
+      "8": "STATE_TOW_DECODED",
+      "16": "STATE_MSEC_AMBIGUOUS",
+      "32": "STATE_SYMBOL_SYNC",
+      "64": "STATE_GLO_STRING_SYNC",
+      "128": "STATE_GLO_TOD_DECODED",
+      "256": "STATE_BDS_D2_BIT_SYNC",
+      "512": "STATE_BDS_D2_SUBFRAME_SYNC",
+      "1024": "STATE_GAL_E1BC_CODE_LOCK",
+      "2048": "STATE_GAL_E1C_2ND_CODE_LOCK",
+      "4096": "STATE_GAL_E1B_PAGE_SYNC",
+      "8192": "STATE_SBAS_SYNC",
+      "16384": "STATE_TOW_KNOWN",
+      "32768": "STATE_GLO_TOD_KNOWN",
+      "65536": "STATE_2ND_CODE_LOCK"
+    }
+  },
+  "android.location.GnssMeasurementsEvent.Callback.GnssMeasurementsStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_NOT_SUPPORTED",
+      "1": "STATUS_READY",
+      "2": "STATUS_LOCATION_DISABLED",
+      "3": "STATUS_NOT_ALLOWED"
+    }
+  },
+  "android.location.GnssNavigationMessage.Callback.GnssNavigationMessageStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_NOT_SUPPORTED",
+      "1": "STATUS_READY",
+      "2": "STATUS_LOCATION_DISABLED"
+    }
+  },
+  "android.location.GnssNavigationMessage.GnssNavigationMessageStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_UNKNOWN",
+      "1": "STATUS_PARITY_PASSED",
+      "2": "STATUS_PARITY_REBUILT"
+    }
+  },
+  "android.location.GnssNavigationMessage.GnssNavigationMessageType": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "257": "TYPE_GPS_L1CA",
+      "258": "TYPE_GPS_L2CNAV",
+      "259": "TYPE_GPS_L5CNAV",
+      "260": "TYPE_GPS_CNAV2",
+      "513": "TYPE_SBS",
+      "769": "TYPE_GLO_L1CA",
+      "1025": "TYPE_QZS_L1CA",
+      "1281": "TYPE_BDS_D1",
+      "1282": "TYPE_BDS_D2",
+      "1283": "TYPE_BDS_CNAV1",
+      "1284": "TYPE_BDS_CNAV2",
+      "1537": "TYPE_GAL_I",
+      "1538": "TYPE_GAL_F",
+      "1793": "TYPE_IRN_L5CA"
+    }
+  },
+  "android.location.GnssStatus.ConstellationType": {
+    "flag": false,
+    "values": {
+      "0": "CONSTELLATION_UNKNOWN",
+      "1": "CONSTELLATION_GPS",
+      "2": "CONSTELLATION_SBAS",
+      "3": "CONSTELLATION_GLONASS",
+      "4": "CONSTELLATION_QZSS",
+      "5": "CONSTELLATION_BEIDOU",
+      "6": "CONSTELLATION_GALILEO",
+      "7": "CONSTELLATION_IRNSS"
+    }
+  },
+  "android.location.LocationRequest.Quality": {
+    "flag": false,
+    "values": {
+      "104": "QUALITY_LOW_POWER",
+      "102": "QUALITY_BALANCED_POWER_ACCURACY",
+      "100": "QUALITY_HIGH_ACCURACY"
+    }
+  },
+  "android.media.AudioAttributes.AttributeContentType": {
+    "flag": false,
+    "values": {
+      "0": "CONTENT_TYPE_UNKNOWN",
+      "1": "CONTENT_TYPE_SPEECH",
+      "2": "CONTENT_TYPE_MUSIC",
+      "3": "CONTENT_TYPE_MOVIE",
+      "4": "CONTENT_TYPE_SONIFICATION"
+    }
+  },
+  "android.media.AudioAttributes.AttributeSdkUsage": {
+    "flag": false,
+    "values": {
+      "0": "USAGE_UNKNOWN",
+      "1": "USAGE_MEDIA",
+      "2": "USAGE_VOICE_COMMUNICATION",
+      "3": "USAGE_VOICE_COMMUNICATION_SIGNALLING",
+      "4": "USAGE_ALARM",
+      "5": "USAGE_NOTIFICATION",
+      "6": "USAGE_NOTIFICATION_RINGTONE",
+      "7": "USAGE_NOTIFICATION_COMMUNICATION_REQUEST",
+      "8": "USAGE_NOTIFICATION_COMMUNICATION_INSTANT",
+      "9": "USAGE_NOTIFICATION_COMMUNICATION_DELAYED",
+      "10": "USAGE_NOTIFICATION_EVENT",
+      "11": "USAGE_ASSISTANCE_ACCESSIBILITY",
+      "12": "USAGE_ASSISTANCE_NAVIGATION_GUIDANCE",
+      "13": "USAGE_ASSISTANCE_SONIFICATION",
+      "14": "USAGE_GAME",
+      "16": "USAGE_ASSISTANT"
+    }
+  },
+  "android.media.AudioAttributes.AttributeSystemUsage": {
+    "flag": false,
+    "values": {
+      "17": "USAGE_CALL_ASSISTANT",
+      "1000": "USAGE_EMERGENCY",
+      "1001": "USAGE_SAFETY",
+      "1002": "USAGE_VEHICLE_STATUS",
+      "1003": "USAGE_ANNOUNCEMENT"
+    }
+  },
+  "android.media.AudioAttributes.AttributeUsage": {
+    "flag": false,
+    "values": {
+      "0": "USAGE_UNKNOWN",
+      "1": "USAGE_MEDIA",
+      "2": "USAGE_VOICE_COMMUNICATION",
+      "3": "USAGE_VOICE_COMMUNICATION_SIGNALLING",
+      "4": "USAGE_ALARM",
+      "5": "USAGE_NOTIFICATION",
+      "6": "USAGE_NOTIFICATION_RINGTONE",
+      "7": "USAGE_NOTIFICATION_COMMUNICATION_REQUEST",
+      "8": "USAGE_NOTIFICATION_COMMUNICATION_INSTANT",
+      "9": "USAGE_NOTIFICATION_COMMUNICATION_DELAYED",
+      "10": "USAGE_NOTIFICATION_EVENT",
+      "11": "USAGE_ASSISTANCE_ACCESSIBILITY",
+      "12": "USAGE_ASSISTANCE_NAVIGATION_GUIDANCE",
+      "13": "USAGE_ASSISTANCE_SONIFICATION",
+      "14": "USAGE_GAME",
+      "16": "USAGE_ASSISTANT",
+      "17": "USAGE_CALL_ASSISTANT",
+      "1000": "USAGE_EMERGENCY",
+      "1001": "USAGE_SAFETY",
+      "1002": "USAGE_VEHICLE_STATUS",
+      "1003": "USAGE_ANNOUNCEMENT"
+    }
+  },
+  "android.media.AudioAttributes.CapturePolicy": {
+    "flag": false,
+    "values": {
+      "1": "ALLOW_CAPTURE_BY_ALL",
+      "2": "ALLOW_CAPTURE_BY_SYSTEM",
+      "3": "ALLOW_CAPTURE_BY_NONE"
+    }
+  },
+  "android.media.AudioDeviceAttributes.Role": {
+    "flag": false,
+    "values": {
+      "1": "ROLE_INPUT",
+      "2": "ROLE_OUTPUT"
+    }
+  },
+  "android.media.AudioDeviceInfo.AudioDeviceType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_BUILTIN_EARPIECE",
+      "2": "TYPE_BUILTIN_SPEAKER",
+      "3": "TYPE_WIRED_HEADSET",
+      "4": "TYPE_WIRED_HEADPHONES",
+      "7": "TYPE_BLUETOOTH_SCO",
+      "8": "TYPE_BLUETOOTH_A2DP",
+      "9": "TYPE_HDMI",
+      "13": "TYPE_DOCK",
+      "12": "TYPE_USB_ACCESSORY",
+      "11": "TYPE_USB_DEVICE",
+      "22": "TYPE_USB_HEADSET",
+      "18": "TYPE_TELEPHONY",
+      "5": "TYPE_LINE_ANALOG",
+      "10": "TYPE_HDMI_ARC",
+      "6": "TYPE_LINE_DIGITAL",
+      "14": "TYPE_FM",
+      "19": "TYPE_AUX_LINE",
+      "20": "TYPE_IP",
+      "21": "TYPE_BUS",
+      "23": "TYPE_HEARING_AID",
+      "15": "TYPE_BUILTIN_MIC",
+      "16": "TYPE_FM_TUNER",
+      "17": "TYPE_TV_TUNER",
+      "26": "TYPE_BLE_HEADSET",
+      "27": "TYPE_BLE_SPEAKER"
+    }
+  },
+  "android.media.AudioDeviceInfo.AudioDeviceTypeIn": {
+    "flag": false,
+    "values": {
+      "15": "TYPE_BUILTIN_MIC",
+      "7": "TYPE_BLUETOOTH_SCO",
+      "8": "TYPE_BLUETOOTH_A2DP",
+      "3": "TYPE_WIRED_HEADSET",
+      "9": "TYPE_HDMI",
+      "18": "TYPE_TELEPHONY",
+      "13": "TYPE_DOCK",
+      "12": "TYPE_USB_ACCESSORY",
+      "11": "TYPE_USB_DEVICE",
+      "22": "TYPE_USB_HEADSET",
+      "16": "TYPE_FM_TUNER",
+      "17": "TYPE_TV_TUNER",
+      "5": "TYPE_LINE_ANALOG",
+      "6": "TYPE_LINE_DIGITAL",
+      "20": "TYPE_IP",
+      "21": "TYPE_BUS",
+      "26": "TYPE_BLE_HEADSET"
+    }
+  },
+  "android.media.AudioDeviceInfo.AudioDeviceTypeOut": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_BUILTIN_EARPIECE",
+      "2": "TYPE_BUILTIN_SPEAKER",
+      "3": "TYPE_WIRED_HEADSET",
+      "4": "TYPE_WIRED_HEADPHONES",
+      "7": "TYPE_BLUETOOTH_SCO",
+      "8": "TYPE_BLUETOOTH_A2DP",
+      "9": "TYPE_HDMI",
+      "13": "TYPE_DOCK",
+      "12": "TYPE_USB_ACCESSORY",
+      "11": "TYPE_USB_DEVICE",
+      "22": "TYPE_USB_HEADSET",
+      "18": "TYPE_TELEPHONY",
+      "5": "TYPE_LINE_ANALOG",
+      "10": "TYPE_HDMI_ARC",
+      "6": "TYPE_LINE_DIGITAL",
+      "14": "TYPE_FM",
+      "19": "TYPE_AUX_LINE",
+      "20": "TYPE_IP",
+      "21": "TYPE_BUS",
+      "23": "TYPE_HEARING_AID",
+      "26": "TYPE_BLE_HEADSET",
+      "27": "TYPE_BLE_SPEAKER"
+    }
+  },
+  "android.media.AudioFormat.Encoding": {
+    "flag": false,
+    "values": {
+      "1": "ENCODING_DEFAULT",
+      "2": "ENCODING_PCM_16BIT",
+      "3": "ENCODING_PCM_8BIT",
+      "4": "ENCODING_PCM_FLOAT",
+      "5": "ENCODING_AC3",
+      "6": "ENCODING_E_AC3",
+      "7": "ENCODING_DTS",
+      "8": "ENCODING_DTS_HD",
+      "9": "ENCODING_MP3",
+      "10": "ENCODING_AAC_LC",
+      "11": "ENCODING_AAC_HE_V1",
+      "12": "ENCODING_AAC_HE_V2",
+      "13": "ENCODING_IEC61937",
+      "14": "ENCODING_DOLBY_TRUEHD",
+      "15": "ENCODING_AAC_ELD",
+      "16": "ENCODING_AAC_XHE",
+      "17": "ENCODING_AC4",
+      "18": "ENCODING_E_AC3_JOC",
+      "19": "ENCODING_DOLBY_MAT",
+      "20": "ENCODING_OPUS",
+      "21": "ENCODING_PCM_24BIT_PACKED",
+      "22": "ENCODING_PCM_32BIT"
+    }
+  },
+  "android.media.AudioFormat.SurroundSoundEncoding": {
+    "flag": false,
+    "values": {
+      "5": "ENCODING_AC3",
+      "6": "ENCODING_E_AC3",
+      "7": "ENCODING_DTS",
+      "8": "ENCODING_DTS_HD",
+      "10": "ENCODING_AAC_LC",
+      "14": "ENCODING_DOLBY_TRUEHD",
+      "17": "ENCODING_AC4",
+      "18": "ENCODING_E_AC3_JOC",
+      "19": "ENCODING_DOLBY_MAT"
+    }
+  },
+  "android.media.AudioManager.AudioDeviceRole": {
+    "flag": true,
+    "values": {
+      "1": "GET_DEVICES_INPUTS",
+      "2": "GET_DEVICES_OUTPUTS"
+    }
+  },
+  "android.media.AudioManager.AudioMode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_NORMAL",
+      "1": "MODE_RINGTONE",
+      "2": "MODE_IN_CALL",
+      "3": "MODE_IN_COMMUNICATION",
+      "4": "MODE_CALL_SCREENING"
+    }
+  },
+  "android.media.AudioManager.DeviceVolumeBehavior": {
+    "flag": false,
+    "values": {
+      "0": "DEVICE_VOLUME_BEHAVIOR_VARIABLE",
+      "1": "DEVICE_VOLUME_BEHAVIOR_FULL",
+      "2": "DEVICE_VOLUME_BEHAVIOR_FIXED",
+      "3": "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE",
+      "4": "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE"
+    }
+  },
+  "android.media.AudioManager.DeviceVolumeBehaviorState": {
+    "flag": false,
+    "values": {
+      "-1": "DEVICE_VOLUME_BEHAVIOR_UNSET",
+      "0": "DEVICE_VOLUME_BEHAVIOR_VARIABLE",
+      "1": "DEVICE_VOLUME_BEHAVIOR_FULL",
+      "2": "DEVICE_VOLUME_BEHAVIOR_FIXED",
+      "3": "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE",
+      "4": "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE"
+    }
+  },
+  "android.media.AudioManager.FocusRequestResult": {
+    "flag": false,
+    "values": {
+      "0": "AUDIOFOCUS_REQUEST_FAILED",
+      "1": "AUDIOFOCUS_REQUEST_GRANTED",
+      "2": "AUDIOFOCUS_REQUEST_DELAYED"
+    }
+  },
+  "android.media.AudioManager.PublicStreamTypes": {
+    "flag": false,
+    "values": {
+      "0": "STREAM_VOICE_CALL",
+      "1": "STREAM_SYSTEM",
+      "2": "STREAM_RING",
+      "3": "STREAM_MUSIC",
+      "4": "STREAM_ALARM",
+      "5": "STREAM_NOTIFICATION",
+      "8": "STREAM_DTMF",
+      "10": "STREAM_ACCESSIBILITY"
+    }
+  },
+  "android.media.AudioManager.VolumeAdjustment": {
+    "flag": false,
+    "values": {
+      "1": "ADJUST_RAISE",
+      "-1": "ADJUST_LOWER",
+      "0": "ADJUST_SAME",
+      "-100": "ADJUST_MUTE",
+      "100": "ADJUST_UNMUTE",
+      "101": "ADJUST_TOGGLE_MUTE"
+    }
+  },
+  "android.media.AudioPlaybackConfiguration.PlayerState": {
+    "flag": false,
+    "values": {
+      "-1": "PLAYER_STATE_UNKNOWN",
+      "0": "PLAYER_STATE_RELEASED",
+      "1": "PLAYER_STATE_IDLE",
+      "2": "PLAYER_STATE_STARTED",
+      "3": "PLAYER_STATE_PAUSED",
+      "4": "PLAYER_STATE_STOPPED"
+    }
+  },
+  "android.media.AudioPlaybackConfiguration.PlayerType": {
+    "flag": false,
+    "values": {
+      "-1": "PLAYER_TYPE_UNKNOWN",
+      "1": "PLAYER_TYPE_JAM_AUDIOTRACK",
+      "2": "PLAYER_TYPE_JAM_MEDIAPLAYER",
+      "3": "PLAYER_TYPE_JAM_SOUNDPOOL",
+      "11": "PLAYER_TYPE_SLES_AUDIOPLAYER_BUFFERQUEUE",
+      "12": "PLAYER_TYPE_SLES_AUDIOPLAYER_URI_FD"
+    }
+  },
+  "android.media.AudioPresentation.MasteringIndicationType": {
+    "flag": false,
+    "values": {
+      "0": "MASTERING_NOT_INDICATED",
+      "1": "MASTERED_FOR_STEREO",
+      "2": "MASTERED_FOR_SURROUND",
+      "3": "MASTERED_FOR_3D",
+      "4": "MASTERED_FOR_HEADPHONE"
+    }
+  },
+  "android.media.AudioRecord.ReadMode": {
+    "flag": false,
+    "values": {
+      "0": "READ_BLOCKING",
+      "1": "READ_NON_BLOCKING"
+    }
+  },
+  "android.media.AudioRecordingConfiguration.AudioSource": {
+    "flag": false,
+    "values": {
+      "0": "DEFAULT",
+      "1": "MIC",
+      "2": "VOICE_UPLINK",
+      "3": "VOICE_DOWNLINK",
+      "4": "VOICE_CALL",
+      "5": "CAMCORDER",
+      "6": "VOICE_RECOGNITION",
+      "7": "VOICE_COMMUNICATION",
+      "9": "UNPROCESSED",
+      "10": "VOICE_PERFORMANCE"
+    }
+  },
+  "android.media.AudioSystem.AudioFormatNativeEnumForBtCodec": {
+    "flag": false,
+    "values": {
+      "-1": "AUDIO_FORMAT_INVALID",
+      "0": "AUDIO_FORMAT_DEFAULT",
+      "67108864": "AUDIO_FORMAT_AAC",
+      "520093696": "AUDIO_FORMAT_SBC",
+      "536870912": "AUDIO_FORMAT_APTX",
+      "553648128": "AUDIO_FORMAT_APTX_HD",
+      "587202560": "AUDIO_FORMAT_LDAC"
+    }
+  },
+  "android.media.AudioSystem.AudioSystemError": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "-1": "ERROR",
+      "-2": "BAD_VALUE",
+      "-3": "INVALID_OPERATION",
+      "-4": "PERMISSION_DENIED",
+      "-5": "NO_INIT",
+      "-6": "DEAD_OBJECT",
+      "-7": "WOULD_BLOCK"
+    }
+  },
+  "android.media.AudioTimestamp.Timebase": {
+    "flag": false,
+    "values": {
+      "0": "TIMEBASE_MONOTONIC",
+      "1": "TIMEBASE_BOOTTIME"
+    }
+  },
+  "android.media.AudioTrack.DualMonoMode": {
+    "flag": false,
+    "values": {
+      "0": "DUAL_MONO_MODE_OFF",
+      "1": "DUAL_MONO_MODE_LR",
+      "2": "DUAL_MONO_MODE_LL",
+      "3": "DUAL_MONO_MODE_RR"
+    }
+  },
+  "android.media.AudioTrack.EncapsulationMetadataType": {
+    "flag": false,
+    "values": {
+      "0": "ENCAPSULATION_METADATA_TYPE_NONE",
+      "1": "ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER",
+      "2": "ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR"
+    }
+  },
+  "android.media.AudioTrack.EncapsulationMode": {
+    "flag": false,
+    "values": {
+      "0": "ENCAPSULATION_MODE_NONE",
+      "1": "ENCAPSULATION_MODE_ELEMENTARY_STREAM"
+    }
+  },
+  "android.media.AudioTrack.PerformanceMode": {
+    "flag": false,
+    "values": {
+      "0": "PERFORMANCE_MODE_NONE",
+      "1": "PERFORMANCE_MODE_LOW_LATENCY",
+      "2": "PERFORMANCE_MODE_POWER_SAVING"
+    }
+  },
+  "android.media.AudioTrack.TransferMode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_STATIC",
+      "1": "MODE_STREAM"
+    }
+  },
+  "android.media.AudioTrack.WriteMode": {
+    "flag": false,
+    "values": {
+      "0": "WRITE_BLOCKING",
+      "1": "WRITE_NON_BLOCKING"
+    }
+  },
+  "android.media.ExifInterface.ExifStreamType": {
+    "flag": false,
+    "values": {
+      "0": "STREAM_TYPE_FULL_IMAGE_DATA",
+      "1": "STREAM_TYPE_EXIF_DATA_ONLY"
+    }
+  },
+  "android.media.ExifInterface.IfdType": {
+    "flag": false,
+    "values": {
+      "0": "IFD_TYPE_PRIMARY",
+      "1": "IFD_TYPE_EXIF",
+      "2": "IFD_TYPE_GPS",
+      "3": "IFD_TYPE_INTEROPERABILITY",
+      "4": "IFD_TYPE_THUMBNAIL",
+      "5": "IFD_TYPE_PREVIEW",
+      "6": "IFD_TYPE_ORF_MAKER_NOTE",
+      "7": "IFD_TYPE_ORF_CAMERA_SETTINGS",
+      "8": "IFD_TYPE_ORF_IMAGE_PROCESSING",
+      "9": "IFD_TYPE_PEF"
+    }
+  },
+  "android.media.MediaCas.PluginStatus": {
+    "flag": false,
+    "values": {
+      "0": "PLUGIN_STATUS_PHYSICAL_MODULE_CHANGED",
+      "1": "PLUGIN_STATUS_SESSION_NUMBER_CHANGED"
+    }
+  },
+  "android.media.MediaCas.ScramblingMode": {
+    "flag": false,
+    "values": {
+      "0": "SCRAMBLING_MODE_RESERVED",
+      "1": "SCRAMBLING_MODE_DVB_CSA1",
+      "2": "SCRAMBLING_MODE_DVB_CSA2",
+      "3": "SCRAMBLING_MODE_DVB_CSA3_STANDARD",
+      "4": "SCRAMBLING_MODE_DVB_CSA3_MINIMAL",
+      "5": "SCRAMBLING_MODE_DVB_CSA3_ENHANCE",
+      "6": "SCRAMBLING_MODE_DVB_CISSA_V1",
+      "7": "SCRAMBLING_MODE_DVB_IDSA",
+      "8": "SCRAMBLING_MODE_MULTI2",
+      "9": "SCRAMBLING_MODE_AES128",
+      "10": "SCRAMBLING_MODE_AES_ECB",
+      "11": "SCRAMBLING_MODE_AES_SCTE52",
+      "12": "SCRAMBLING_MODE_TDES_ECB",
+      "13": "SCRAMBLING_MODE_TDES_SCTE52"
+    }
+  },
+  "android.media.MediaCas.SessionUsage": {
+    "flag": false,
+    "values": {
+      "0": "SESSION_USAGE_LIVE",
+      "1": "SESSION_USAGE_PLAYBACK",
+      "2": "SESSION_USAGE_RECORD",
+      "3": "SESSION_USAGE_TIMESHIFT"
+    }
+  },
+  "android.media.MediaCodec.BufferFlag": {
+    "flag": true,
+    "values": {
+      "1": "BUFFER_FLAG_KEY_FRAME",
+      "2": "BUFFER_FLAG_CODEC_CONFIG",
+      "4": "BUFFER_FLAG_END_OF_STREAM",
+      "8": "BUFFER_FLAG_PARTIAL_FRAME",
+      "16": "BUFFER_FLAG_MUXER_DATA"
+    }
+  },
+  "android.media.MediaCodec.CodecException.ReasonCode": {
+    "flag": false,
+    "values": {
+      "1100": "ERROR_INSUFFICIENT_RESOURCE",
+      "1101": "ERROR_RECLAIMED"
+    }
+  },
+  "android.media.MediaCodec.ConfigureFlag": {
+    "flag": true,
+    "values": {
+      "1": "CONFIGURE_FLAG_ENCODE",
+      "2": "CONFIGURE_FLAG_USE_BLOCK_MODEL"
+    }
+  },
+  "android.media.MediaCodec.CryptoException.CryptoErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_KEY",
+      "2": "ERROR_KEY_EXPIRED",
+      "3": "ERROR_RESOURCE_BUSY",
+      "4": "ERROR_INSUFFICIENT_OUTPUT_PROTECTION",
+      "5": "ERROR_SESSION_NOT_OPENED",
+      "6": "ERROR_UNSUPPORTED_OPERATION",
+      "7": "ERROR_INSUFFICIENT_SECURITY",
+      "8": "ERROR_FRAME_TOO_LARGE",
+      "9": "ERROR_LOST_STATE"
+    }
+  },
+  "android.media.MediaCodec.OutputBufferInfo": {
+    "flag": false,
+    "values": {
+      "-1": "INFO_TRY_AGAIN_LATER",
+      "-2": "INFO_OUTPUT_FORMAT_CHANGED",
+      "-3": "INFO_OUTPUT_BUFFERS_CHANGED"
+    }
+  },
+  "android.media.MediaCodec.VideoScalingMode": {
+    "flag": false,
+    "values": {
+      "1": "VIDEO_SCALING_MODE_SCALE_TO_FIT",
+      "2": "VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING"
+    }
+  },
+  "android.media.MediaDrm.CertificateType": {
+    "flag": false,
+    "values": {
+      "0": "CERTIFICATE_TYPE_NONE",
+      "1": "CERTIFICATE_TYPE_X509"
+    }
+  },
+  "android.media.MediaDrm.DrmEvent": {
+    "flag": false,
+    "values": {
+      "1": "EVENT_PROVISION_REQUIRED",
+      "2": "EVENT_KEY_REQUIRED",
+      "3": "EVENT_KEY_EXPIRED",
+      "4": "EVENT_VENDOR_DEFINED",
+      "5": "EVENT_SESSION_RECLAIMED"
+    }
+  },
+  "android.media.MediaDrm.HdcpLevel": {
+    "flag": false,
+    "values": {
+      "0": "HDCP_LEVEL_UNKNOWN",
+      "1": "HDCP_NONE",
+      "2": "HDCP_V1",
+      "3": "HDCP_V2",
+      "4": "HDCP_V2_1",
+      "5": "HDCP_V2_2",
+      "6": "HDCP_V2_3",
+      "2147483647": "HDCP_NO_DIGITAL_OUTPUT"
+    }
+  },
+  "android.media.MediaDrm.KeyRequest.RequestType": {
+    "flag": false,
+    "values": {
+      "0": "REQUEST_TYPE_INITIAL",
+      "1": "REQUEST_TYPE_RENEWAL",
+      "2": "REQUEST_TYPE_RELEASE",
+      "3": "REQUEST_TYPE_NONE",
+      "4": "REQUEST_TYPE_UPDATE"
+    }
+  },
+  "android.media.MediaDrm.KeyStatus.KeyStatusCode": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_USABLE",
+      "1": "STATUS_EXPIRED",
+      "2": "STATUS_OUTPUT_NOT_ALLOWED",
+      "3": "STATUS_PENDING",
+      "4": "STATUS_INTERNAL_ERROR",
+      "5": "STATUS_USABLE_IN_FUTURE"
+    }
+  },
+  "android.media.MediaDrm.KeyType": {
+    "flag": false,
+    "values": {
+      "1": "KEY_TYPE_STREAMING",
+      "2": "KEY_TYPE_OFFLINE",
+      "3": "KEY_TYPE_RELEASE"
+    }
+  },
+  "android.media.MediaDrm.OfflineLicenseState": {
+    "flag": false,
+    "values": {
+      "0": "OFFLINE_LICENSE_STATE_UNKNOWN",
+      "1": "OFFLINE_LICENSE_STATE_USABLE",
+      "2": "OFFLINE_LICENSE_STATE_RELEASED"
+    }
+  },
+  "android.media.MediaDrm.SecurityLevel": {
+    "flag": false,
+    "values": {
+      "0": "SECURITY_LEVEL_UNKNOWN",
+      "1": "SECURITY_LEVEL_SW_SECURE_CRYPTO",
+      "2": "SECURITY_LEVEL_SW_SECURE_DECODE",
+      "3": "SECURITY_LEVEL_HW_SECURE_CRYPTO",
+      "4": "SECURITY_LEVEL_HW_SECURE_DECODE",
+      "5": "SECURITY_LEVEL_HW_SECURE_ALL"
+    }
+  },
+  "android.media.MediaDrm.SessionException.SessionErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_RESOURCE_CONTENTION"
+    }
+  },
+  "android.media.MediaExtractor.SampleFlag": {
+    "flag": true,
+    "values": {
+      "1": "SAMPLE_FLAG_SYNC",
+      "2": "SAMPLE_FLAG_ENCRYPTED",
+      "4": "SAMPLE_FLAG_PARTIAL_FRAME"
+    }
+  },
+  "android.media.MediaExtractor.SeekMode": {
+    "flag": false,
+    "values": {
+      "0": "SEEK_TO_PREVIOUS_SYNC",
+      "1": "SEEK_TO_NEXT_SYNC",
+      "2": "SEEK_TO_CLOSEST_SYNC"
+    }
+  },
+  "android.media.MediaFormat.ColorRange": {
+    "flag": false,
+    "values": {
+      "2": "COLOR_RANGE_LIMITED",
+      "1": "COLOR_RANGE_FULL"
+    }
+  },
+  "android.media.MediaFormat.ColorStandard": {
+    "flag": false,
+    "values": {
+      "1": "COLOR_STANDARD_BT709",
+      "2": "COLOR_STANDARD_BT601_PAL",
+      "4": "COLOR_STANDARD_BT601_NTSC",
+      "6": "COLOR_STANDARD_BT2020"
+    }
+  },
+  "android.media.MediaFormat.ColorTransfer": {
+    "flag": false,
+    "values": {
+      "1": "COLOR_TRANSFER_LINEAR",
+      "3": "COLOR_TRANSFER_SDR_VIDEO",
+      "6": "COLOR_TRANSFER_ST2084",
+      "7": "COLOR_TRANSFER_HLG"
+    }
+  },
+  "android.media.MediaFormat.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_NULL",
+      "1": "TYPE_INTEGER",
+      "2": "TYPE_LONG",
+      "3": "TYPE_FLOAT",
+      "4": "TYPE_STRING",
+      "5": "TYPE_BYTE_BUFFER"
+    }
+  },
+  "android.media.MediaMetadataRetriever.Option": {
+    "flag": true,
+    "values": {
+      "0": "OPTION_PREVIOUS_SYNC",
+      "1": "OPTION_NEXT_SYNC",
+      "2": "OPTION_CLOSEST_SYNC",
+      "3": "OPTION_CLOSEST"
+    }
+  },
+  "android.media.MediaMuxer.Format": {
+    "flag": false,
+    "values": {
+      "0": "MUXER_OUTPUT_MPEG_4",
+      "1": "MUXER_OUTPUT_WEBM",
+      "2": "MUXER_OUTPUT_3GPP",
+      "3": "MUXER_OUTPUT_HEIF",
+      "4": "MUXER_OUTPUT_OGG"
+    }
+  },
+  "android.media.MediaPlayer.PlaybackRateAudioMode": {
+    "flag": false,
+    "values": {
+      "0": "PLAYBACK_RATE_AUDIO_MODE_DEFAULT",
+      "1": "PLAYBACK_RATE_AUDIO_MODE_STRETCH",
+      "2": "PLAYBACK_RATE_AUDIO_MODE_RESAMPLE"
+    }
+  },
+  "android.media.MediaPlayer.PrepareDrmStatusCode": {
+    "flag": false,
+    "values": {
+      "0": "PREPARE_DRM_STATUS_SUCCESS",
+      "1": "PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR",
+      "2": "PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR",
+      "3": "PREPARE_DRM_STATUS_PREPARATION_ERROR"
+    }
+  },
+  "android.media.MediaPlayer.SeekMode": {
+    "flag": false,
+    "values": {
+      "0": "SEEK_PREVIOUS_SYNC",
+      "1": "SEEK_NEXT_SYNC",
+      "2": "SEEK_CLOSEST_SYNC",
+      "3": "SEEK_CLOSEST"
+    }
+  },
+  "android.media.MediaPlayer.TrackInfo.TrackType": {
+    "flag": false,
+    "values": {
+      "0": "MEDIA_TRACK_TYPE_UNKNOWN",
+      "1": "MEDIA_TRACK_TYPE_VIDEO",
+      "2": "MEDIA_TRACK_TYPE_AUDIO",
+      "3": "MEDIA_TRACK_TYPE_TIMEDTEXT",
+      "4": "MEDIA_TRACK_TYPE_SUBTITLE",
+      "5": "MEDIA_TRACK_TYPE_METADATA"
+    }
+  },
+  "android.media.MediaRecorder.Source": {
+    "flag": false,
+    "values": {
+      "0": "DEFAULT",
+      "1": "MIC",
+      "2": "VOICE_UPLINK",
+      "3": "VOICE_DOWNLINK",
+      "4": "VOICE_CALL",
+      "5": "CAMCORDER",
+      "6": "VOICE_RECOGNITION",
+      "7": "VOICE_COMMUNICATION",
+      "9": "UNPROCESSED",
+      "10": "VOICE_PERFORMANCE"
+    }
+  },
+  "android.media.MediaRoute2Info.ConnectionState": {
+    "flag": false,
+    "values": {
+      "0": "CONNECTION_STATE_DISCONNECTED",
+      "1": "CONNECTION_STATE_CONNECTING",
+      "2": "CONNECTION_STATE_CONNECTED"
+    }
+  },
+  "android.media.MediaRoute2Info.PlaybackVolume": {
+    "flag": false,
+    "values": {
+      "0": "PLAYBACK_VOLUME_FIXED",
+      "1": "PLAYBACK_VOLUME_VARIABLE"
+    }
+  },
+  "android.media.MediaRoute2Info.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "2": "TYPE_BUILTIN_SPEAKER",
+      "3": "TYPE_WIRED_HEADSET",
+      "4": "TYPE_WIRED_HEADPHONES",
+      "8": "TYPE_BLUETOOTH_A2DP",
+      "9": "TYPE_HDMI",
+      "11": "TYPE_USB_DEVICE",
+      "12": "TYPE_USB_ACCESSORY",
+      "13": "TYPE_DOCK",
+      "22": "TYPE_USB_HEADSET",
+      "23": "TYPE_HEARING_AID",
+      "1001": "TYPE_REMOTE_TV",
+      "1002": "TYPE_REMOTE_SPEAKER",
+      "2000": "TYPE_GROUP"
+    }
+  },
+  "android.media.MediaRoute2ProviderService.Reason": {
+    "flag": false,
+    "values": {
+      "0": "REASON_UNKNOWN_ERROR",
+      "1": "REASON_REJECTED",
+      "2": "REASON_NETWORK_ERROR",
+      "3": "REASON_ROUTE_NOT_AVAILABLE",
+      "4": "REASON_INVALID_COMMAND"
+    }
+  },
+  "android.media.MediaRouter.RouteInfo.DeviceType": {
+    "flag": false,
+    "values": {
+      "0": "DEVICE_TYPE_UNKNOWN",
+      "1": "DEVICE_TYPE_TV",
+      "2": "DEVICE_TYPE_SPEAKER",
+      "3": "DEVICE_TYPE_BLUETOOTH"
+    }
+  },
+  "android.media.MediaRouter.RouteInfo.PlaybackType": {
+    "flag": false,
+    "values": {
+      "0": "PLAYBACK_TYPE_LOCAL",
+      "1": "PLAYBACK_TYPE_REMOTE"
+    }
+  },
+  "android.media.MediaRouter.RouteInfo.PlaybackVolume": {
+    "flag": false,
+    "values": {
+      "0": "PLAYBACK_VOLUME_FIXED",
+      "1": "PLAYBACK_VOLUME_VARIABLE"
+    }
+  },
+  "android.media.MediaTranscodeManager.TranscodingPriority": {
+    "flag": false,
+    "values": {
+      "0": "PRIORITY_UNKNOWN",
+      "1": "PRIORITY_REALTIME",
+      "2": "PRIORITY_OFFLINE"
+    }
+  },
+  "android.media.MediaTranscodeManager.TranscodingSession.Result": {
+    "flag": false,
+    "values": {
+      "1": "RESULT_NONE",
+      "2": "RESULT_SUCCESS",
+      "3": "RESULT_ERROR",
+      "4": "RESULT_CANCELED"
+    }
+  },
+  "android.media.MediaTranscodeManager.TranscodingSession.Status": {
+    "flag": false,
+    "values": {
+      "1": "STATUS_PENDING",
+      "2": "STATUS_RUNNING",
+      "3": "STATUS_FINISHED",
+      "4": "STATUS_PAUSED"
+    }
+  },
+  "android.media.MediaTranscodeManager.TranscodingType": {
+    "flag": false,
+    "values": {
+      "0": "TRANSCODING_TYPE_UNKNOWN",
+      "1": "TRANSCODING_TYPE_VIDEO",
+      "2": "TRANSCODING_TYPE_IMAGE"
+    }
+  },
+  "android.media.MicrophoneDirection.DirectionMode": {
+    "flag": false,
+    "values": {
+      "0": "MIC_DIRECTION_UNSPECIFIED",
+      "1": "MIC_DIRECTION_TOWARDS_USER",
+      "2": "MIC_DIRECTION_AWAY_FROM_USER",
+      "3": "MIC_DIRECTION_EXTERNAL"
+    }
+  },
+  "android.media.MicrophoneInfo.MicrophoneDirectionality": {
+    "values": {
+      "0": "DIRECTIONALITY_UNKNOWN",
+      "1": "DIRECTIONALITY_OMNI",
+      "2": "DIRECTIONALITY_BI_DIRECTIONAL",
+      "3": "DIRECTIONALITY_CARDIOID",
+      "4": "DIRECTIONALITY_HYPER_CARDIOID",
+      "5": "DIRECTIONALITY_SUPER_CARDIOID"
+    }
+  },
+  "android.media.MicrophoneInfo.MicrophoneLocation": {
+    "values": {
+      "0": "LOCATION_UNKNOWN",
+      "1": "LOCATION_MAINBODY",
+      "2": "LOCATION_MAINBODY_MOVABLE",
+      "3": "LOCATION_PERIPHERAL"
+    }
+  },
+  "android.media.PlaybackParams.AudioFallbackMode": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_FALLBACK_MODE_DEFAULT",
+      "1": "AUDIO_FALLBACK_MODE_MUTE",
+      "2": "AUDIO_FALLBACK_MODE_FAIL"
+    }
+  },
+  "android.media.PlaybackParams.AudioStretchMode": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_STRETCH_MODE_DEFAULT",
+      "1": "AUDIO_STRETCH_MODE_VOICE"
+    }
+  },
+  "android.media.Rating.StarStyle": {
+    "flag": false,
+    "values": {
+      "3": "RATING_3_STARS",
+      "4": "RATING_4_STARS",
+      "5": "RATING_5_STARS"
+    }
+  },
+  "android.media.Rating.Style": {
+    "flag": false,
+    "values": {
+      "0": "RATING_NONE",
+      "1": "RATING_HEART",
+      "2": "RATING_THUMB_UP_DOWN",
+      "3": "RATING_3_STARS",
+      "4": "RATING_4_STARS",
+      "5": "RATING_5_STARS",
+      "6": "RATING_PERCENTAGE"
+    }
+  },
+  "android.media.SyncParams.AudioAdjustMode": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_ADJUST_MODE_DEFAULT",
+      "1": "AUDIO_ADJUST_MODE_STRETCH",
+      "2": "AUDIO_ADJUST_MODE_RESAMPLE"
+    }
+  },
+  "android.media.SyncParams.SyncSource": {
+    "flag": false,
+    "values": {
+      "0": "SYNC_SOURCE_DEFAULT",
+      "1": "SYNC_SOURCE_SYSTEM_CLOCK",
+      "2": "SYNC_SOURCE_AUDIO",
+      "3": "SYNC_SOURCE_VSYNC"
+    }
+  },
+  "android.media.VolumeProvider.ControlType": {
+    "flag": false,
+    "values": {
+      "0": "VOLUME_CONTROL_FIXED",
+      "1": "VOLUME_CONTROL_RELATIVE",
+      "2": "VOLUME_CONTROL_ABSOLUTE"
+    }
+  },
+  "android.media.VolumeShaper.Configuration.InterpolatorType": {
+    "flag": false,
+    "values": {
+      "0": "INTERPOLATOR_TYPE_STEP",
+      "1": "INTERPOLATOR_TYPE_LINEAR",
+      "2": "INTERPOLATOR_TYPE_CUBIC",
+      "3": "INTERPOLATOR_TYPE_CUBIC_MONOTONIC"
+    }
+  },
+  "android.media.VolumeShaper.Configuration.OptionFlag": {
+    "flag": false,
+    "values": {
+      "1": "OPTION_FLAG_VOLUME_IN_DBFS",
+      "2": "OPTION_FLAG_CLOCK_TIME"
+    }
+  },
+  "android.media.VolumeShaper.Configuration.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_ID",
+      "1": "TYPE_SCALE"
+    }
+  },
+  "android.media.VolumeShaper.Operation.Flag": {
+    "flag": false,
+    "values": {
+      "0": "FLAG_NONE",
+      "1": "FLAG_REVERSE",
+      "2": "FLAG_TERMINATE",
+      "4": "FLAG_JOIN",
+      "8": "FLAG_DEFER"
+    }
+  },
+  "android.media.audiofx.Virtualizer.ForceVirtualizationMode": {
+    "flag": false,
+    "values": {
+      "1": "VIRTUALIZATION_MODE_AUTO",
+      "2": "VIRTUALIZATION_MODE_BINAURAL",
+      "3": "VIRTUALIZATION_MODE_TRANSAURAL"
+    }
+  },
+  "android.media.audiofx.Virtualizer.VirtualizationMode": {
+    "flag": false,
+    "values": {
+      "2": "VIRTUALIZATION_MODE_BINAURAL",
+      "3": "VIRTUALIZATION_MODE_TRANSAURAL"
+    }
+  },
+  "android.media.audiopolicy.AudioMix.RouteFlags": {
+    "flag": true,
+    "values": {
+      "1": "ROUTE_FLAG_RENDER",
+      "2": "ROUTE_FLAG_LOOP_BACK"
+    }
+  },
+  "android.media.audiopolicy.AudioPolicy.PolicyStatus": {
+    "flag": false,
+    "values": {
+      "2": "POLICY_STATUS_REGISTERED",
+      "1": "POLICY_STATUS_UNREGISTERED"
+    }
+  },
+  "android.media.browse.MediaBrowser.MediaItem.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_BROWSABLE",
+      "2": "FLAG_PLAYABLE"
+    }
+  },
+  "android.media.musicrecognition.MusicRecognitionManager.RecognitionFailureCode": {
+    "flag": false,
+    "values": {
+      "-1": "RECOGNITION_FAILED_UNKNOWN",
+      "1": "RECOGNITION_FAILED_NOT_FOUND",
+      "2": "RECOGNITION_FAILED_NO_CONNECTIVITY",
+      "3": "RECOGNITION_FAILED_SERVICE_UNAVAILABLE",
+      "5": "RECOGNITION_FAILED_SERVICE_KILLED",
+      "6": "RECOGNITION_FAILED_TIMEOUT",
+      "7": "RECOGNITION_FAILED_AUDIO_UNAVAILABLE"
+    }
+  },
+  "android.media.session.MediaController.PlaybackInfo.PlaybackType": {
+    "flag": false,
+    "values": {
+      "1": "PLAYBACK_TYPE_LOCAL",
+      "2": "PLAYBACK_TYPE_REMOTE"
+    }
+  },
+  "android.media.session.MediaSession.SessionFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_HANDLES_MEDIA_BUTTONS",
+      "2": "FLAG_HANDLES_TRANSPORT_CONTROLS",
+      "65536": "FLAG_EXCLUSIVE_GLOBAL_PRIORITY"
+    }
+  },
+  "android.media.session.PlaybackState.State": {
+    "flag": false,
+    "values": {
+      "0": "STATE_NONE",
+      "1": "STATE_STOPPED",
+      "2": "STATE_PAUSED",
+      "3": "STATE_PLAYING",
+      "4": "STATE_FAST_FORWARDING",
+      "5": "STATE_REWINDING",
+      "6": "STATE_BUFFERING",
+      "7": "STATE_ERROR",
+      "8": "STATE_CONNECTING",
+      "9": "STATE_SKIPPING_TO_PREVIOUS",
+      "10": "STATE_SKIPPING_TO_NEXT",
+      "11": "STATE_SKIPPING_TO_QUEUE_ITEM"
+    }
+  },
+  "android.media.soundtrigger.SoundTriggerDetector.RecognitionFlags": {
+    "flag": true,
+    "values": {
+      "0": "RECOGNITION_FLAG_NONE",
+      "1": "RECOGNITION_FLAG_CAPTURE_TRIGGER_AUDIO",
+      "2": "RECOGNITION_FLAG_ALLOW_MULTIPLE_TRIGGERS",
+      "4": "RECOGNITION_FLAG_ENABLE_AUDIO_ECHO_CANCELLATION",
+      "8": "RECOGNITION_FLAG_ENABLE_AUDIO_NOISE_SUPPRESSION"
+    }
+  },
+  "android.media.tv.TunedInfo.AppType": {
+    "flag": false,
+    "values": {
+      "1": "APP_TYPE_SELF",
+      "2": "APP_TYPE_SYSTEM",
+      "3": "APP_TYPE_NON_SYSTEM"
+    }
+  },
+  "android.media.tv.TvContract.PreviewProgramColumns.AspectRatio": {
+    "flag": false,
+    "values": {
+      "0": "ASPECT_RATIO_16_9",
+      "1": "ASPECT_RATIO_3_2",
+      "3": "ASPECT_RATIO_1_1",
+      "4": "ASPECT_RATIO_2_3",
+      "2": "ASPECT_RATIO_4_3"
+    }
+  },
+  "android.media.tv.TvContract.PreviewProgramColumns.Availability": {
+    "flag": false,
+    "values": {
+      "0": "AVAILABILITY_AVAILABLE",
+      "1": "AVAILABILITY_FREE_WITH_SUBSCRIPTION",
+      "2": "AVAILABILITY_PAID_CONTENT"
+    }
+  },
+  "android.media.tv.TvContract.PreviewProgramColumns.InteractionType": {
+    "flag": false,
+    "values": {
+      "0": "INTERACTION_TYPE_VIEWS",
+      "1": "INTERACTION_TYPE_LISTENS",
+      "2": "INTERACTION_TYPE_FOLLOWERS",
+      "3": "INTERACTION_TYPE_FANS",
+      "4": "INTERACTION_TYPE_LIKES",
+      "5": "INTERACTION_TYPE_THUMBS",
+      "6": "INTERACTION_TYPE_VIEWERS"
+    }
+  },
+  "android.media.tv.TvContract.PreviewProgramColumns.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_MOVIE",
+      "1": "TYPE_TV_SERIES",
+      "2": "TYPE_TV_SEASON",
+      "3": "TYPE_TV_EPISODE",
+      "4": "TYPE_CLIP",
+      "5": "TYPE_EVENT",
+      "6": "TYPE_CHANNEL",
+      "7": "TYPE_TRACK",
+      "8": "TYPE_ALBUM",
+      "9": "TYPE_ARTIST",
+      "10": "TYPE_PLAYLIST",
+      "11": "TYPE_STATION"
+    }
+  },
+  "android.media.tv.TvContract.ProgramColumns.ReviewRatingStyle": {
+    "flag": false,
+    "values": {
+      "0": "REVIEW_RATING_STYLE_STARS",
+      "1": "REVIEW_RATING_STYLE_THUMBS_UP_DOWN",
+      "2": "REVIEW_RATING_STYLE_PERCENTAGE"
+    }
+  },
+  "android.media.tv.TvContract.WatchNextPrograms.WatchNextType": {
+    "flag": false,
+    "values": {
+      "0": "WATCH_NEXT_TYPE_CONTINUE",
+      "1": "WATCH_NEXT_TYPE_NEXT",
+      "2": "WATCH_NEXT_TYPE_NEW",
+      "3": "WATCH_NEXT_TYPE_WATCHLIST"
+    }
+  },
+  "android.media.tv.TvInputHardwareInfo.CableConnectionStatus": {
+    "flag": false,
+    "values": {
+      "0": "CABLE_CONNECTION_STATUS_UNKNOWN",
+      "1": "CABLE_CONNECTION_STATUS_CONNECTED",
+      "2": "CABLE_CONNECTION_STATUS_DISCONNECTED"
+    }
+  },
+  "android.media.tv.TvInputInfo.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_TUNER",
+      "1000": "TYPE_OTHER",
+      "1001": "TYPE_COMPOSITE",
+      "1002": "TYPE_SVIDEO",
+      "1003": "TYPE_SCART",
+      "1004": "TYPE_COMPONENT",
+      "1005": "TYPE_VGA",
+      "1006": "TYPE_DVI",
+      "1007": "TYPE_HDMI",
+      "1008": "TYPE_DISPLAY_PORT"
+    }
+  },
+  "android.media.tv.TvInputManager.DvbDeviceType": {
+    "flag": false,
+    "values": {
+      "0": "DVB_DEVICE_DEMUX",
+      "1": "DVB_DEVICE_DVR",
+      "2": "DVB_DEVICE_FRONTEND"
+    }
+  },
+  "android.media.tv.TvInputManager.InputState": {
+    "flag": false,
+    "values": {
+      "0": "INPUT_STATE_CONNECTED",
+      "1": "INPUT_STATE_CONNECTED_STANDBY",
+      "2": "INPUT_STATE_DISCONNECTED"
+    }
+  },
+  "android.media.tv.TvInputManager.RecordingError": {
+    "flag": false,
+    "values": {
+      "0": "RECORDING_ERROR_UNKNOWN",
+      "1": "RECORDING_ERROR_INSUFFICIENT_SPACE",
+      "2": "RECORDING_ERROR_RESOURCE_BUSY"
+    }
+  },
+  "android.media.tv.TvInputManager.TimeShiftStatus": {
+    "flag": false,
+    "values": {
+      "0": "TIME_SHIFT_STATUS_UNKNOWN",
+      "1": "TIME_SHIFT_STATUS_UNSUPPORTED",
+      "2": "TIME_SHIFT_STATUS_UNAVAILABLE",
+      "3": "TIME_SHIFT_STATUS_AVAILABLE"
+    }
+  },
+  "android.media.tv.TvInputManager.VideoUnavailableReason": {
+    "flag": false,
+    "values": {
+      "0": "VIDEO_UNAVAILABLE_REASON_UNKNOWN",
+      "1": "VIDEO_UNAVAILABLE_REASON_TUNING",
+      "2": "VIDEO_UNAVAILABLE_REASON_WEAK_SIGNAL",
+      "3": "VIDEO_UNAVAILABLE_REASON_BUFFERING",
+      "4": "VIDEO_UNAVAILABLE_REASON_AUDIO_ONLY",
+      "6": "VIDEO_UNAVAILABLE_REASON_INSUFFICIENT_RESOURCE",
+      "7": "VIDEO_UNAVAILABLE_REASON_CAS_INSUFFICIENT_OUTPUT_PROTECTION",
+      "8": "VIDEO_UNAVAILABLE_REASON_CAS_PVR_RECORDING_NOT_ALLOWED",
+      "9": "VIDEO_UNAVAILABLE_REASON_CAS_NO_LICENSE",
+      "10": "VIDEO_UNAVAILABLE_REASON_CAS_LICENSE_EXPIRED",
+      "11": "VIDEO_UNAVAILABLE_REASON_CAS_NEED_ACTIVATION",
+      "12": "VIDEO_UNAVAILABLE_REASON_CAS_NEED_PAIRING",
+      "13": "VIDEO_UNAVAILABLE_REASON_CAS_NO_CARD",
+      "14": "VIDEO_UNAVAILABLE_REASON_CAS_CARD_MUTE",
+      "15": "VIDEO_UNAVAILABLE_REASON_CAS_CARD_INVALID",
+      "16": "VIDEO_UNAVAILABLE_REASON_CAS_BLACKOUT",
+      "17": "VIDEO_UNAVAILABLE_REASON_CAS_REBOOTING",
+      "18": "VIDEO_UNAVAILABLE_REASON_CAS_UNKNOWN"
+    }
+  },
+  "android.media.tv.TvInputService.PriorityHintUseCaseType": {
+    "flag": false,
+    "values": {
+      "100": "PRIORITY_HINT_USE_CASE_TYPE_BACKGROUND",
+      "200": "PRIORITY_HINT_USE_CASE_TYPE_SCAN",
+      "300": "PRIORITY_HINT_USE_CASE_TYPE_PLAYBACK",
+      "400": "PRIORITY_HINT_USE_CASE_TYPE_LIVE",
+      "500": "PRIORITY_HINT_USE_CASE_TYPE_RECORD"
+    }
+  },
+  "android.media.tv.TvTrackInfo.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_AUDIO",
+      "1": "TYPE_VIDEO",
+      "2": "TYPE_SUBTITLE"
+    }
+  },
+  "android.media.tv.tuner.DemuxCapabilities.FilterCapabilities": {
+    "flag": true,
+    "values": {
+      "1": "TYPE_TS",
+      "2": "TYPE_MMTP",
+      "4": "TYPE_IP",
+      "8": "TYPE_TLV",
+      "16": "TYPE_ALP"
+    }
+  },
+  "android.media.tv.tuner.Descrambler.PidType": {
+    "flag": false,
+    "values": {
+      "1": "PID_TYPE_T",
+      "2": "PID_TYPE_MMTP"
+    }
+  },
+  "android.media.tv.tuner.Lnb.EventType": {
+    "flag": false,
+    "values": {
+      "0": "EVENT_TYPE_DISEQC_RX_OVERFLOW",
+      "1": "EVENT_TYPE_DISEQC_RX_TIMEOUT",
+      "2": "EVENT_TYPE_DISEQC_RX_PARITY_ERROR",
+      "3": "EVENT_TYPE_LNB_OVERLOAD"
+    }
+  },
+  "android.media.tv.tuner.Lnb.Position": {
+    "flag": false,
+    "values": {
+      "0": "POSITION_UNDEFINED",
+      "1": "POSITION_A",
+      "2": "POSITION_B"
+    }
+  },
+  "android.media.tv.tuner.Lnb.Tone": {
+    "flag": false,
+    "values": {
+      "0": "TONE_NONE",
+      "1": "TONE_CONTINUOUS"
+    }
+  },
+  "android.media.tv.tuner.Lnb.Voltage": {
+    "flag": false,
+    "values": {
+      "0": "VOLTAGE_NONE",
+      "1": "VOLTAGE_5V",
+      "2": "VOLTAGE_11V",
+      "3": "VOLTAGE_12V",
+      "4": "VOLTAGE_13V",
+      "5": "VOLTAGE_14V",
+      "6": "VOLTAGE_15V",
+      "7": "VOLTAGE_18V",
+      "8": "VOLTAGE_19V"
+    }
+  },
+  "android.media.tv.tuner.Tuner.DvrType": {
+    "flag": false,
+    "values": {
+      "0": "DVR_TYPE_RECORD",
+      "1": "DVR_TYPE_PLAYBACK"
+    }
+  },
+  "android.media.tv.tuner.Tuner.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_SUCCESS",
+      "1": "RESULT_UNAVAILABLE",
+      "2": "RESULT_NOT_INITIALIZED",
+      "3": "RESULT_INVALID_STATE",
+      "4": "RESULT_INVALID_ARGUMENT",
+      "5": "RESULT_OUT_OF_MEMORY",
+      "6": "RESULT_UNKNOWN_ERROR"
+    }
+  },
+  "android.media.tv.tuner.Tuner.ScanType": {
+    "flag": false,
+    "values": {
+      "0": "SCAN_TYPE_UNDEFINED",
+      "1": "SCAN_TYPE_AUTO",
+      "2": "SCAN_TYPE_BLIND"
+    }
+  },
+  "android.media.tv.tuner.TunerVersionChecker.TunerVersion": {
+    "flag": false,
+    "values": {
+      "0": "TUNER_VERSION_UNKNOWN",
+      "65536": "TUNER_VERSION_1_0",
+      "65537": "TUNER_VERSION_1_1"
+    }
+  },
+  "android.media.tv.tuner.dvr.DvrPlayback.PlaybackStatus": {
+    "flag": false,
+    "values": {
+      "1": "PLAYBACK_STATUS_EMPTY",
+      "2": "PLAYBACK_STATUS_ALMOST_EMPTY",
+      "4": "PLAYBACK_STATUS_ALMOST_FULL",
+      "8": "PLAYBACK_STATUS_FULL"
+    }
+  },
+  "android.media.tv.tuner.dvr.DvrSettings.DataFormat": {
+    "flag": false,
+    "values": {
+      "0": "DATA_FORMAT_TS",
+      "1": "DATA_FORMAT_PES",
+      "2": "DATA_FORMAT_ES",
+      "3": "DATA_FORMAT_SHV_TLV"
+    }
+  },
+  "android.media.tv.tuner.filter.AlpFilterConfiguration.LengthType": {
+    "flag": false,
+    "values": {
+      "0": "LENGTH_TYPE_UNDEFINED",
+      "1": "LENGTH_TYPE_WITHOUT_ADDITIONAL_HEADER",
+      "2": "LENGTH_TYPE_WITH_ADDITIONAL_HEADER"
+    }
+  },
+  "android.media.tv.tuner.filter.AvSettings.AudioStreamType": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_STREAM_TYPE_UNDEFINED",
+      "1": "AUDIO_STREAM_TYPE_PCM",
+      "2": "AUDIO_STREAM_TYPE_MP3",
+      "3": "AUDIO_STREAM_TYPE_MPEG1",
+      "4": "AUDIO_STREAM_TYPE_MPEG2",
+      "5": "AUDIO_STREAM_TYPE_MPEGH",
+      "6": "AUDIO_STREAM_TYPE_AAC",
+      "7": "AUDIO_STREAM_TYPE_AC3",
+      "8": "AUDIO_STREAM_TYPE_EAC3",
+      "9": "AUDIO_STREAM_TYPE_AC4",
+      "10": "AUDIO_STREAM_TYPE_DTS",
+      "11": "AUDIO_STREAM_TYPE_DTS_HD",
+      "12": "AUDIO_STREAM_TYPE_WMA",
+      "13": "AUDIO_STREAM_TYPE_OPUS",
+      "14": "AUDIO_STREAM_TYPE_VORBIS",
+      "15": "AUDIO_STREAM_TYPE_DRA"
+    }
+  },
+  "android.media.tv.tuner.filter.AvSettings.VideoStreamType": {
+    "flag": false,
+    "values": {
+      "0": "VIDEO_STREAM_TYPE_UNDEFINED",
+      "1": "VIDEO_STREAM_TYPE_RESERVED",
+      "2": "VIDEO_STREAM_TYPE_MPEG1",
+      "3": "VIDEO_STREAM_TYPE_MPEG2",
+      "4": "VIDEO_STREAM_TYPE_MPEG4P2",
+      "5": "VIDEO_STREAM_TYPE_AVC",
+      "6": "VIDEO_STREAM_TYPE_HEVC",
+      "7": "VIDEO_STREAM_TYPE_VC1",
+      "8": "VIDEO_STREAM_TYPE_VP8",
+      "9": "VIDEO_STREAM_TYPE_VP9",
+      "10": "VIDEO_STREAM_TYPE_AV1",
+      "11": "VIDEO_STREAM_TYPE_AVS",
+      "12": "VIDEO_STREAM_TYPE_AVS2"
+    }
+  },
+  "android.media.tv.tuner.filter.Filter.MonitorEventTypeMask": {
+    "flag": true,
+    "values": {
+      "1": "MONITOR_EVENT_SCRAMBLING_STATUS",
+      "2": "MONITOR_EVENT_IP_CID_CHANGE"
+    }
+  },
+  "android.media.tv.tuner.filter.Filter.ScramblingStatus": {
+    "flag": true,
+    "values": {
+      "1": "SCRAMBLING_STATUS_UNKNOWN",
+      "2": "SCRAMBLING_STATUS_NOT_SCRAMBLED",
+      "4": "SCRAMBLING_STATUS_SCRAMBLED"
+    }
+  },
+  "android.media.tv.tuner.filter.Filter.Status": {
+    "flag": true,
+    "values": {
+      "1": "STATUS_DATA_READY",
+      "2": "STATUS_LOW_WATER",
+      "4": "STATUS_HIGH_WATER",
+      "8": "STATUS_OVERFLOW"
+    }
+  },
+  "android.media.tv.tuner.filter.Filter.Subtype": {
+    "flag": false,
+    "values": {
+      "0": "SUBTYPE_UNDEFINED",
+      "1": "SUBTYPE_SECTION",
+      "2": "SUBTYPE_PES",
+      "3": "SUBTYPE_AUDIO",
+      "4": "SUBTYPE_VIDEO",
+      "5": "SUBTYPE_DOWNLOAD",
+      "6": "SUBTYPE_RECORD",
+      "7": "SUBTYPE_TS",
+      "8": "SUBTYPE_PCR",
+      "9": "SUBTYPE_TEMI",
+      "10": "SUBTYPE_MMTP",
+      "11": "SUBTYPE_NTP",
+      "12": "SUBTYPE_IP_PAYLOAD",
+      "13": "SUBTYPE_IP",
+      "14": "SUBTYPE_PAYLOAD_THROUGH",
+      "15": "SUBTYPE_TLV",
+      "16": "SUBTYPE_PTP"
+    }
+  },
+  "android.media.tv.tuner.filter.Filter.Type": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_TS",
+      "2": "TYPE_MMTP",
+      "4": "TYPE_IP",
+      "8": "TYPE_TLV",
+      "16": "TYPE_ALP"
+    }
+  },
+  "android.media.tv.tuner.filter.RecordSettings.ScHevcIndex": {
+    "flag": true,
+    "values": {
+      "1": "SC_HEVC_INDEX_SPS",
+      "2": "SC_HEVC_INDEX_AUD",
+      "4": "SC_HEVC_INDEX_SLICE_CE_BLA_W_LP",
+      "8": "SC_HEVC_INDEX_SLICE_BLA_W_RADL",
+      "16": "SC_HEVC_INDEX_SLICE_BLA_N_LP",
+      "32": "SC_HEVC_INDEX_SLICE_IDR_W_RADL",
+      "64": "SC_HEVC_INDEX_SLICE_IDR_N_LP",
+      "128": "SC_HEVC_INDEX_SLICE_TRAIL_CRA"
+    }
+  },
+  "android.media.tv.tuner.filter.RecordSettings.ScIndex": {
+    "flag": true,
+    "values": {
+      "1": "SC_INDEX_I_FRAME",
+      "2": "SC_INDEX_P_FRAME",
+      "4": "SC_INDEX_B_FRAME",
+      "8": "SC_INDEX_SEQUENCE",
+      "16": "SC_INDEX_I_SLICE",
+      "32": "SC_INDEX_P_SLICE",
+      "64": "SC_INDEX_B_SLICE",
+      "128": "SC_INDEX_SI_SLICE",
+      "256": "SC_INDEX_SP_SLICE"
+    }
+  },
+  "android.media.tv.tuner.filter.RecordSettings.ScIndexMask": {
+    "flag": true,
+    "values": {
+      "1": "SC_HEVC_INDEX_SPS",
+      "2": "SC_HEVC_INDEX_AUD",
+      "4": "SC_HEVC_INDEX_SLICE_CE_BLA_W_LP",
+      "8": "SC_HEVC_INDEX_SLICE_BLA_W_RADL",
+      "16": "SC_HEVC_INDEX_SLICE_BLA_N_LP",
+      "32": "SC_HEVC_INDEX_SLICE_IDR_W_RADL",
+      "64": "SC_HEVC_INDEX_SLICE_IDR_N_LP",
+      "128": "SC_HEVC_INDEX_SLICE_TRAIL_CRA"
+    }
+  },
+  "android.media.tv.tuner.filter.RecordSettings.ScIndexType": {
+    "flag": false,
+    "values": {
+      "0": "INDEX_TYPE_NONE",
+      "1": "INDEX_TYPE_SC",
+      "2": "INDEX_TYPE_SC_HEVC"
+    }
+  },
+  "android.media.tv.tuner.filter.RecordSettings.TsIndexMask": {
+    "flag": true,
+    "values": {
+      "0": "TS_INDEX_INVALID",
+      "1": "TS_INDEX_FIRST_PACKET",
+      "2": "TS_INDEX_PAYLOAD_UNIT_START_INDICATOR",
+      "4": "TS_INDEX_CHANGE_TO_NOT_SCRAMBLED",
+      "8": "TS_INDEX_CHANGE_TO_EVEN_SCRAMBLED",
+      "16": "TS_INDEX_CHANGE_TO_ODD_SCRAMBLED",
+      "32": "TS_INDEX_DISCONTINUITY_INDICATOR",
+      "64": "TS_INDEX_RANDOM_ACCESS_INDICATOR",
+      "128": "TS_INDEX_PRIORITY_INDICATOR",
+      "256": "TS_INDEX_PCR_FLAG",
+      "512": "TS_INDEX_OPCR_FLAG",
+      "1024": "TS_INDEX_SPLICING_POINT_FLAG",
+      "2048": "TS_INDEX_PRIVATE_DATA",
+      "4096": "TS_INDEX_ADAPTATION_EXTENSION_FLAG",
+      "65536": "MPT_INDEX_MPT",
+      "131072": "MPT_INDEX_VIDEO",
+      "262144": "MPT_INDEX_AUDIO",
+      "524288": "MPT_INDEX_TIMESTAMP_TARGET_VIDEO",
+      "1048576": "MPT_INDEX_TIMESTAMP_TARGET_AUDIO"
+    }
+  },
+  "android.media.tv.tuner.frontend.AnalogFrontendSettings.AftFlag": {
+    "flag": false,
+    "values": {
+      "0": "AFT_FLAG_UNDEFINED",
+      "1": "AFT_FLAG_TRUE",
+      "2": "AFT_FLAG_FALSE"
+    }
+  },
+  "android.media.tv.tuner.frontend.AnalogFrontendSettings.SifStandard": {
+    "flag": true,
+    "values": {
+      "0": "SIF_UNDEFINED",
+      "1": "SIF_AUTO",
+      "2": "SIF_BG",
+      "4": "SIF_BG_A2",
+      "8": "SIF_BG_NICAM",
+      "16": "SIF_I",
+      "32": "SIF_DK",
+      "64": "SIF_DK1_A2",
+      "128": "SIF_DK2_A2",
+      "256": "SIF_DK3_A2",
+      "512": "SIF_DK_NICAM",
+      "1024": "SIF_L",
+      "2048": "SIF_M",
+      "4096": "SIF_M_BTSC",
+      "8192": "SIF_M_A2",
+      "16384": "SIF_M_EIAJ",
+      "32768": "SIF_I_NICAM",
+      "65536": "SIF_L_NICAM",
+      "131072": "SIF_L_PRIME"
+    }
+  },
+  "android.media.tv.tuner.frontend.AnalogFrontendSettings.SignalType": {
+    "flag": true,
+    "values": {
+      "0": "SIGNAL_TYPE_UNDEFINED",
+      "1": "SIGNAL_TYPE_AUTO",
+      "2": "SIGNAL_TYPE_PAL",
+      "4": "SIGNAL_TYPE_PAL_M",
+      "8": "SIGNAL_TYPE_PAL_N",
+      "16": "SIGNAL_TYPE_PAL_60",
+      "32": "SIGNAL_TYPE_NTSC",
+      "64": "SIGNAL_TYPE_NTSC_443",
+      "128": "SIGNAL_TYPE_SECAM"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.Bandwidth": {
+    "flag": true,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_AUTO",
+      "2": "BANDWIDTH_BANDWIDTH_6MHZ",
+      "4": "BANDWIDTH_BANDWIDTH_7MHZ",
+      "8": "BANDWIDTH_BANDWIDTH_8MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.CodeRate": {
+    "flag": true,
+    "values": {
+      "0": "CODERATE_UNDEFINED",
+      "1": "CODERATE_AUTO",
+      "2": "CODERATE_2_15",
+      "4": "CODERATE_3_15",
+      "8": "CODERATE_4_15",
+      "16": "CODERATE_5_15",
+      "32": "CODERATE_6_15",
+      "64": "CODERATE_7_15",
+      "128": "CODERATE_8_15",
+      "256": "CODERATE_9_15",
+      "512": "CODERATE_10_15",
+      "1024": "CODERATE_11_15",
+      "2048": "CODERATE_12_15",
+      "4096": "CODERATE_13_15"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.DemodOutputFormat": {
+    "flag": true,
+    "values": {
+      "0": "DEMOD_OUTPUT_FORMAT_UNDEFINED",
+      "1": "DEMOD_OUTPUT_FORMAT_ATSC3_LINKLAYER_PACKET",
+      "2": "DEMOD_OUTPUT_FORMAT_BASEBAND_PACKET"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.Fec": {
+    "flag": true,
+    "values": {
+      "0": "FEC_UNDEFINED",
+      "1": "FEC_AUTO",
+      "2": "FEC_BCH_LDPC_16K",
+      "4": "FEC_BCH_LDPC_64K",
+      "8": "FEC_CRC_LDPC_16K",
+      "16": "FEC_CRC_LDPC_64K",
+      "32": "FEC_LDPC_16K",
+      "64": "FEC_LDPC_64K"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_QPSK",
+      "4": "MODULATION_MOD_16QAM",
+      "8": "MODULATION_MOD_64QAM",
+      "16": "MODULATION_MOD_256QAM",
+      "32": "MODULATION_MOD_1024QAM",
+      "64": "MODULATION_MOD_4096QAM"
+    }
+  },
+  "android.media.tv.tuner.frontend.Atsc3FrontendSettings.TimeInterleaveMode": {
+    "flag": true,
+    "values": {
+      "0": "TIME_INTERLEAVE_MODE_UNDEFINED",
+      "1": "TIME_INTERLEAVE_MODE_AUTO",
+      "2": "TIME_INTERLEAVE_MODE_CTI",
+      "4": "TIME_INTERLEAVE_MODE_HTI"
+    }
+  },
+  "android.media.tv.tuner.frontend.AtscFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "4": "MODULATION_MOD_8VSB",
+      "8": "MODULATION_MOD_16VSB"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.Bandwidth": {
+    "flag": true,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_AUTO",
+      "4": "BANDWIDTH_6MHZ",
+      "2": "BANDWIDTH_8MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.CodeRate": {
+    "flag": true,
+    "values": {
+      "0": "CODERATE_UNDEFINED",
+      "1": "CODERATE_AUTO",
+      "2": "CODERATE_2_5",
+      "4": "CODERATE_3_5",
+      "8": "CODERATE_4_5"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.GuardInterval": {
+    "flag": true,
+    "values": {
+      "0": "GUARD_INTERVAL_UNDEFINED",
+      "1": "GUARD_INTERVAL_AUTO",
+      "2": "GUARD_INTERVAL_PN_420_VARIOUS",
+      "4": "GUARD_INTERVAL_PN_595_CONST",
+      "8": "GUARD_INTERVAL_PN_945_VARIOUS",
+      "16": "GUARD_INTERVAL_PN_420_CONST",
+      "32": "GUARD_INTERVAL_PN_945_CONST",
+      "64": "GUARD_INTERVAL_PN_RESERVED"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_CONSTELLATION_UNDEFINED",
+      "1": "MODULATION_CONSTELLATION_AUTO",
+      "2": "MODULATION_CONSTELLATION_4QAM",
+      "4": "MODULATION_CONSTELLATION_4QAM_NR",
+      "8": "MODULATION_CONSTELLATION_16QAM",
+      "16": "MODULATION_CONSTELLATION_32QAM",
+      "32": "MODULATION_CONSTELLATION_64QAM"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.TimeInterleaveMode": {
+    "flag": true,
+    "values": {
+      "0": "TIME_INTERLEAVE_MODE_UNDEFINED",
+      "1": "TIME_INTERLEAVE_MODE_AUTO",
+      "2": "TIME_INTERLEAVE_MODE_TIMER_INT_240",
+      "4": "TIME_INTERLEAVE_MODE_TIMER_INT_720"
+    }
+  },
+  "android.media.tv.tuner.frontend.DtmbFrontendSettings.TransmissionMode": {
+    "flag": true,
+    "values": {
+      "0": "TRANSMISSION_MODE_UNDEFINED",
+      "1": "TRANSMISSION_MODE_AUTO",
+      "2": "TRANSMISSION_MODE_C1",
+      "4": "TRANSMISSION_MODE_C3780"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.Annex": {
+    "flag": true,
+    "values": {
+      "0": "ANNEX_UNDEFINED",
+      "1": "ANNEX_A",
+      "2": "ANNEX_B",
+      "4": "ANNEX_C"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.Bandwidth": {
+    "flag": true,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_5MHZ",
+      "2": "BANDWIDTH_6MHZ",
+      "4": "BANDWIDTH_7MHZ",
+      "8": "BANDWIDTH_8MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_16QAM",
+      "4": "MODULATION_MOD_32QAM",
+      "8": "MODULATION_MOD_64QAM",
+      "16": "MODULATION_MOD_128QAM",
+      "32": "MODULATION_MOD_256QAM"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.OuterFec": {
+    "flag": false,
+    "values": {
+      "0": "OUTER_FEC_UNDEFINED",
+      "1": "OUTER_FEC_OUTER_FEC_NONE",
+      "2": "OUTER_FEC_OUTER_FEC_RS"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.SpectralInversion": {
+    "flag": false,
+    "values": {
+      "0": "SPECTRAL_INVERSION_UNDEFINED",
+      "1": "SPECTRAL_INVERSION_NORMAL",
+      "2": "SPECTRAL_INVERSION_INVERTED"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbcFrontendSettings.TimeInterleaveMode": {
+    "flag": true,
+    "values": {
+      "0": "TIME_INTERLEAVE_MODE_UNDEFINED",
+      "1": "TIME_INTERLEAVE_MODE_AUTO",
+      "2": "TIME_INTERLEAVE_MODE_128_1_0",
+      "4": "TIME_INTERLEAVE_MODE_128_1_1",
+      "8": "TIME_INTERLEAVE_MODE_64_2",
+      "16": "TIME_INTERLEAVE_MODE_32_4",
+      "32": "TIME_INTERLEAVE_MODE_16_8",
+      "64": "TIME_INTERLEAVE_MODE_8_16",
+      "128": "TIME_INTERLEAVE_MODE_128_2",
+      "256": "TIME_INTERLEAVE_MODE_128_3",
+      "512": "TIME_INTERLEAVE_MODE_128_4"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_QPSK",
+      "4": "MODULATION_MOD_8PSK",
+      "8": "MODULATION_MOD_16QAM",
+      "16": "MODULATION_MOD_16PSK",
+      "32": "MODULATION_MOD_32PSK",
+      "64": "MODULATION_MOD_ACM",
+      "128": "MODULATION_MOD_8APSK",
+      "256": "MODULATION_MOD_16APSK",
+      "512": "MODULATION_MOD_32APSK",
+      "1024": "MODULATION_MOD_64APSK",
+      "2048": "MODULATION_MOD_128APSK",
+      "4096": "MODULATION_MOD_256APSK",
+      "8192": "MODULATION_MOD_RESERVED"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.Pilot": {
+    "flag": false,
+    "values": {
+      "0": "PILOT_UNDEFINED",
+      "1": "PILOT_ON",
+      "2": "PILOT_OFF",
+      "3": "PILOT_AUTO"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.Rolloff": {
+    "flag": false,
+    "values": {
+      "0": "ROLLOFF_UNDEFINED",
+      "1": "ROLLOFF_0_35",
+      "2": "ROLLOFF_0_25",
+      "3": "ROLLOFF_0_20",
+      "4": "ROLLOFF_0_15",
+      "5": "ROLLOFF_0_10",
+      "6": "ROLLOFF_0_5"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.ScanType": {
+    "flag": true,
+    "values": {
+      "0": "SCAN_TYPE_UNDEFINED",
+      "1": "SCAN_TYPE_DIRECT",
+      "2": "SCAN_TYPE_DISEQC",
+      "3": "SCAN_TYPE_UNICABLE",
+      "4": "SCAN_TYPE_JESS"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.Standard": {
+    "flag": true,
+    "values": {
+      "1": "STANDARD_AUTO",
+      "2": "STANDARD_S",
+      "4": "STANDARD_S2",
+      "8": "STANDARD_S2X"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbsFrontendSettings.VcmMode": {
+    "flag": false,
+    "values": {
+      "0": "VCM_MODE_UNDEFINED",
+      "1": "VCM_MODE_AUTO",
+      "2": "VCM_MODE_MANUAL"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.Bandwidth": {
+    "flag": true,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_AUTO",
+      "2": "BANDWIDTH_8MHZ",
+      "4": "BANDWIDTH_7MHZ",
+      "8": "BANDWIDTH_6MHZ",
+      "16": "BANDWIDTH_5MHZ",
+      "32": "BANDWIDTH_1_7MHZ",
+      "64": "BANDWIDTH_10MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.CodeRate": {
+    "flag": true,
+    "values": {
+      "0": "CODERATE_UNDEFINED",
+      "1": "CODERATE_AUTO",
+      "2": "CODERATE_1_2",
+      "4": "CODERATE_2_3",
+      "8": "CODERATE_3_4",
+      "16": "CODERATE_5_6",
+      "32": "CODERATE_7_8",
+      "64": "CODERATE_3_5",
+      "128": "CODERATE_4_5",
+      "256": "CODERATE_6_7",
+      "512": "CODERATE_8_9"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.Constellation": {
+    "flag": true,
+    "values": {
+      "0": "CONSTELLATION_UNDEFINED",
+      "1": "CONSTELLATION_AUTO",
+      "2": "CONSTELLATION_QPSK",
+      "4": "CONSTELLATION_16QAM",
+      "8": "CONSTELLATION_64QAM",
+      "16": "CONSTELLATION_256QAM",
+      "32": "CONSTELLATION_QPSK_R",
+      "64": "CONSTELLATION_16QAM_R",
+      "128": "CONSTELLATION_64QAM_R",
+      "256": "CONSTELLATION_256QAM_R"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.GuardInterval": {
+    "flag": true,
+    "values": {
+      "0": "GUARD_INTERVAL_UNDEFINED",
+      "1": "GUARD_INTERVAL_AUTO",
+      "2": "GUARD_INTERVAL_1_32",
+      "4": "GUARD_INTERVAL_1_16",
+      "8": "GUARD_INTERVAL_1_8",
+      "16": "GUARD_INTERVAL_1_4",
+      "32": "GUARD_INTERVAL_1_128",
+      "64": "GUARD_INTERVAL_19_128",
+      "128": "GUARD_INTERVAL_19_256"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.Hierarchy": {
+    "flag": true,
+    "values": {
+      "0": "HIERARCHY_UNDEFINED",
+      "1": "HIERARCHY_AUTO",
+      "2": "HIERARCHY_NON_NATIVE",
+      "4": "HIERARCHY_1_NATIVE",
+      "8": "HIERARCHY_2_NATIVE",
+      "16": "HIERARCHY_4_NATIVE",
+      "32": "HIERARCHY_NON_INDEPTH",
+      "64": "HIERARCHY_1_INDEPTH",
+      "128": "HIERARCHY_2_INDEPTH",
+      "256": "HIERARCHY_4_INDEPTH"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.PlpMode": {
+    "flag": false,
+    "values": {
+      "0": "PLP_MODE_UNDEFINED",
+      "1": "PLP_MODE_AUTO",
+      "2": "PLP_MODE_MANUAL"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.Standard": {
+    "flag": true,
+    "values": {
+      "1": "STANDARD_AUTO",
+      "2": "STANDARD_T",
+      "4": "STANDARD_T2"
+    }
+  },
+  "android.media.tv.tuner.frontend.DvbtFrontendSettings.TransmissionMode": {
+    "flag": true,
+    "values": {
+      "0": "TRANSMISSION_MODE_UNDEFINED",
+      "1": "TRANSMISSION_MODE_AUTO",
+      "2": "TRANSMISSION_MODE_2K",
+      "4": "TRANSMISSION_MODE_8K",
+      "8": "TRANSMISSION_MODE_4K",
+      "16": "TRANSMISSION_MODE_1K",
+      "32": "TRANSMISSION_MODE_16K",
+      "64": "TRANSMISSION_MODE_32K"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendSettings.FrontendSpectralInversion": {
+    "flag": false,
+    "values": {
+      "0": "FRONTEND_SPECTRAL_INVERSION_UNDEFINED",
+      "1": "FRONTEND_SPECTRAL_INVERSION_NORMAL",
+      "2": "FRONTEND_SPECTRAL_INVERSION_INVERTED"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendSettings.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNDEFINED",
+      "1": "TYPE_ANALOG",
+      "2": "TYPE_ATSC",
+      "3": "TYPE_ATSC3",
+      "4": "TYPE_DVBC",
+      "5": "TYPE_DVBS",
+      "6": "TYPE_DVBT",
+      "7": "TYPE_ISDBS",
+      "8": "TYPE_ISDBS3",
+      "9": "TYPE_ISDBT",
+      "10": "TYPE_DTMB"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendBandwidth": {
+    "flag": false,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_AUTO",
+      "2": "BANDWIDTH_8MHZ",
+      "4": "BANDWIDTH_7MHZ",
+      "8": "BANDWIDTH_6MHZ",
+      "16": "BANDWIDTH_5MHZ",
+      "32": "BANDWIDTH_1_7MHZ",
+      "64": "BANDWIDTH_10MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendGuardInterval": {
+    "flag": false,
+    "values": {
+      "0": "GUARD_INTERVAL_UNDEFINED",
+      "1": "GUARD_INTERVAL_AUTO",
+      "2": "GUARD_INTERVAL_1_32",
+      "4": "GUARD_INTERVAL_1_16",
+      "8": "GUARD_INTERVAL_1_8",
+      "16": "GUARD_INTERVAL_1_4",
+      "32": "GUARD_INTERVAL_1_128",
+      "64": "GUARD_INTERVAL_19_128",
+      "128": "GUARD_INTERVAL_19_256"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendInterleaveMode": {
+    "flag": false,
+    "values": {
+      "0": "TIME_INTERLEAVE_MODE_UNDEFINED",
+      "1": "TIME_INTERLEAVE_MODE_AUTO",
+      "2": "TIME_INTERLEAVE_MODE_128_1_0",
+      "4": "TIME_INTERLEAVE_MODE_128_1_1",
+      "8": "TIME_INTERLEAVE_MODE_64_2",
+      "16": "TIME_INTERLEAVE_MODE_32_4",
+      "32": "TIME_INTERLEAVE_MODE_16_8",
+      "64": "TIME_INTERLEAVE_MODE_8_16",
+      "128": "TIME_INTERLEAVE_MODE_128_2",
+      "256": "TIME_INTERLEAVE_MODE_128_3",
+      "512": "TIME_INTERLEAVE_MODE_128_4"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendModulation": {
+    "flag": false,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "4": "MODULATION_MOD_QPSK",
+      "8": "MODULATION_MOD_16QAM",
+      "2": "MODULATION_MOD_DQPSK",
+      "16": "MODULATION_MOD_64QAM",
+      "32": "MODULATION_MOD_32APSK",
+      "64": "CONSTELLATION_16QAM_R",
+      "128": "CONSTELLATION_64QAM_R",
+      "256": "CONSTELLATION_256QAM_R",
+      "512": "MODULATION_MOD_32APSK",
+      "1024": "MODULATION_MOD_64APSK",
+      "2048": "MODULATION_MOD_128APSK",
+      "4096": "MODULATION_MOD_256APSK",
+      "8192": "MODULATION_MOD_RESERVED"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendRollOff": {
+    "flag": false,
+    "values": {
+      "0": "ROLLOFF_UNDEFINED",
+      "1": "ROLLOFF_0_35",
+      "2": "ROLLOFF_0_25",
+      "3": "ROLLOFF_0_20",
+      "4": "ROLLOFF_0_15",
+      "5": "ROLLOFF_0_10",
+      "6": "ROLLOFF_0_5"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendStatusType": {
+    "flag": false,
+    "values": {
+      "0": "FRONTEND_STATUS_TYPE_DEMOD_LOCK",
+      "1": "FRONTEND_STATUS_TYPE_SNR",
+      "2": "FRONTEND_STATUS_TYPE_BER",
+      "3": "FRONTEND_STATUS_TYPE_PER",
+      "4": "FRONTEND_STATUS_TYPE_PRE_BER",
+      "5": "FRONTEND_STATUS_TYPE_SIGNAL_QUALITY",
+      "6": "FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH",
+      "7": "FRONTEND_STATUS_TYPE_SYMBOL_RATE",
+      "8": "FRONTEND_STATUS_TYPE_FEC",
+      "9": "FRONTEND_STATUS_TYPE_MODULATION",
+      "10": "FRONTEND_STATUS_TYPE_SPECTRAL",
+      "11": "FRONTEND_STATUS_TYPE_LNB_VOLTAGE",
+      "12": "FRONTEND_STATUS_TYPE_PLP_ID",
+      "13": "FRONTEND_STATUS_TYPE_EWBS",
+      "14": "FRONTEND_STATUS_TYPE_AGC",
+      "15": "FRONTEND_STATUS_TYPE_LNA",
+      "16": "FRONTEND_STATUS_TYPE_LAYER_ERROR",
+      "17": "FRONTEND_STATUS_TYPE_MER",
+      "18": "FRONTEND_STATUS_TYPE_FREQ_OFFSET",
+      "19": "FRONTEND_STATUS_TYPE_HIERARCHY",
+      "20": "FRONTEND_STATUS_TYPE_RF_LOCK",
+      "21": "FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO",
+      "23": "FRONTEND_STATUS_TYPE_BERS",
+      "24": "FRONTEND_STATUS_TYPE_CODERATES",
+      "25": "FRONTEND_STATUS_TYPE_BANDWIDTH",
+      "26": "FRONTEND_STATUS_TYPE_GUARD_INTERVAL",
+      "27": "FRONTEND_STATUS_TYPE_TRANSMISSION_MODE",
+      "28": "FRONTEND_STATUS_TYPE_UEC",
+      "29": "FRONTEND_STATUS_TYPE_T2_SYSTEM_ID",
+      "30": "FRONTEND_STATUS_TYPE_INTERLEAVINGS",
+      "31": "FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS",
+      "32": "FRONTEND_STATUS_TYPE_TS_DATA_RATES",
+      "22": "FRONTEND_STATUS_TYPE_MODULATIONS_EXT",
+      "33": "FRONTEND_STATUS_TYPE_ROLL_OFF",
+      "34": "FRONTEND_STATUS_TYPE_IS_MISO",
+      "35": "FRONTEND_STATUS_TYPE_IS_LINEAR",
+      "36": "FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES"
+    }
+  },
+  "android.media.tv.tuner.frontend.FrontendStatus.FrontendTransmissionMode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_UNDEFINED",
+      "1": "MODE_AUTO",
+      "2": "MODE_1",
+      "4": "MODE_2",
+      "8": "MODE_3",
+      "16": "TRANSMISSION_MODE_1K",
+      "32": "TRANSMISSION_MODE_16K",
+      "64": "TRANSMISSION_MODE_32K"
+    }
+  },
+  "android.media.tv.tuner.frontend.Isdbs3FrontendSettings.CodeRate": {
+    "flag": true,
+    "values": {
+      "0": "CODERATE_UNDEFINED",
+      "1": "CODERATE_AUTO",
+      "2": "CODERATE_1_3",
+      "4": "CODERATE_2_5",
+      "8": "CODERATE_1_2",
+      "16": "CODERATE_3_5",
+      "32": "CODERATE_2_3",
+      "64": "CODERATE_3_4",
+      "128": "CODERATE_7_9",
+      "256": "CODERATE_4_5",
+      "512": "CODERATE_5_6",
+      "1024": "CODERATE_7_8",
+      "2048": "CODERATE_9_10"
+    }
+  },
+  "android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_BPSK",
+      "4": "MODULATION_MOD_QPSK",
+      "8": "MODULATION_MOD_8PSK",
+      "16": "MODULATION_MOD_16APSK",
+      "32": "MODULATION_MOD_32APSK"
+    }
+  },
+  "android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Rolloff": {
+    "flag": false,
+    "values": {
+      "0": "ROLLOFF_UNDEFINED",
+      "1": "ROLLOFF_0_03"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbsFrontendSettings.CodeRate": {
+    "flag": true,
+    "values": {
+      "0": "CODERATE_UNDEFINED",
+      "1": "CODERATE_AUTO",
+      "2": "CODERATE_1_2",
+      "4": "CODERATE_2_3",
+      "8": "CODERATE_3_4",
+      "16": "CODERATE_5_6",
+      "32": "CODERATE_7_8"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbsFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_BPSK",
+      "4": "MODULATION_MOD_QPSK",
+      "8": "MODULATION_MOD_TC8PSK"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbsFrontendSettings.Rolloff": {
+    "flag": false,
+    "values": {
+      "0": "ROLLOFF_UNDEFINED",
+      "1": "ROLLOFF_0_35"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbsFrontendSettings.StreamIdType": {
+    "flag": false,
+    "values": {
+      "0": "STREAM_ID_TYPE_ID",
+      "1": "STREAM_ID_TYPE_RELATIVE_NUMBER"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbtFrontendSettings.Bandwidth": {
+    "flag": true,
+    "values": {
+      "0": "BANDWIDTH_UNDEFINED",
+      "1": "BANDWIDTH_AUTO",
+      "2": "BANDWIDTH_8MHZ",
+      "4": "BANDWIDTH_7MHZ",
+      "8": "BANDWIDTH_6MHZ"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbtFrontendSettings.Mode": {
+    "flag": true,
+    "values": {
+      "0": "MODE_UNDEFINED",
+      "1": "MODE_AUTO",
+      "2": "MODE_1",
+      "4": "MODE_2",
+      "8": "MODE_3"
+    }
+  },
+  "android.media.tv.tuner.frontend.IsdbtFrontendSettings.Modulation": {
+    "flag": true,
+    "values": {
+      "0": "MODULATION_UNDEFINED",
+      "1": "MODULATION_AUTO",
+      "2": "MODULATION_MOD_DQPSK",
+      "4": "MODULATION_MOD_QPSK",
+      "8": "MODULATION_MOD_16QAM",
+      "16": "MODULATION_MOD_64QAM"
+    }
+  },
+  "android.media.tv.tuner.frontend.OnTuneEventListener.TuneEvent": {
+    "flag": false,
+    "values": {
+      "0": "SIGNAL_LOCKED",
+      "1": "SIGNAL_NO_SIGNAL",
+      "2": "SIGNAL_LOST_LOCK"
+    }
+  },
+  "android.media.tv.tunerresourcemanager.TunerResourceManager.TunerResourceType": {
+    "flag": false,
+    "values": {
+      "0": "TUNER_RESOURCE_TYPE_FRONTEND",
+      "1": "TUNER_RESOURCE_TYPE_DEMUX",
+      "2": "TUNER_RESOURCE_TYPE_DESCRAMBLER",
+      "3": "TUNER_RESOURCE_TYPE_LNB",
+      "4": "TUNER_RESOURCE_TYPE_CAS_SESSION",
+      "5": "TUNER_RESOURCE_TYPE_MAX"
+    }
+  },
+  "android.net.CaptivePortal.EventId": {
+    "flag": false,
+    "values": {
+      "1004": "ACTION_CAPTIVE_PORTAL_LOGIN_ACTIVITY",
+      "1005": "ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_DISMISSED",
+      "1006": "ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_UNWANTED",
+      "1007": "ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_WANTED_AS_IS",
+      "1013": "CAPTIVE_PORTAL_LOGIN_ACTIVITY_SSL_ERROR"
+    }
+  },
+  "android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NetworkProbe": {
+    "flag": false,
+    "values": {
+      "4": "NETWORK_PROBE_DNS",
+      "8": "NETWORK_PROBE_HTTP",
+      "16": "NETWORK_PROBE_HTTPS",
+      "32": "NETWORK_PROBE_FALLBACK",
+      "64": "NETWORK_PROBE_PRIVATE_DNS"
+    }
+  },
+  "android.net.ConnectivityDiagnosticsManager.ConnectivityReport.NetworkValidationResult": {
+    "flag": false,
+    "values": {
+      "0": "NETWORK_VALIDATION_RESULT_INVALID",
+      "1": "NETWORK_VALIDATION_RESULT_VALID",
+      "2": "NETWORK_VALIDATION_RESULT_PARTIALLY_VALID",
+      "3": "NETWORK_VALIDATION_RESULT_SKIPPED"
+    }
+  },
+  "android.net.ConnectivityDiagnosticsManager.DataStallReport.DetectionMethod": {
+    "flag": false,
+    "values": {
+      "1": "DETECTION_METHOD_DNS_EVENTS",
+      "2": "DETECTION_METHOD_TCP_METRICS"
+    }
+  },
+  "android.net.ConnectivityManager.EntitlementResultCode": {
+    "flag": false,
+    "values": {
+      "0": "TETHER_ERROR_NO_ERROR",
+      "11": "TETHER_ERROR_PROVISION_FAILED",
+      "13": "TETHER_ERROR_ENTITLEMENT_UNKONWN"
+    }
+  },
+  "android.net.ConnectivityManager.LegacyNetworkType": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_NONE",
+      "0": "TYPE_MOBILE",
+      "1": "TYPE_WIFI",
+      "2": "TYPE_MOBILE_MMS",
+      "3": "TYPE_MOBILE_SUPL",
+      "4": "TYPE_MOBILE_DUN",
+      "5": "TYPE_MOBILE_HIPRI",
+      "6": "TYPE_WIMAX",
+      "7": "TYPE_BLUETOOTH",
+      "8": "TYPE_DUMMY",
+      "9": "TYPE_ETHERNET",
+      "10": "TYPE_MOBILE_FOTA",
+      "11": "TYPE_MOBILE_IMS",
+      "12": "TYPE_MOBILE_CBS",
+      "13": "TYPE_WIFI_P2P",
+      "14": "TYPE_MOBILE_IA",
+      "15": "TYPE_MOBILE_EMERGENCY",
+      "16": "TYPE_PROXY",
+      "17": "TYPE_VPN",
+      "18": "TYPE_TEST"
+    }
+  },
+  "android.net.ConnectivityManager.MultipathPreference": {
+    "flag": true,
+    "values": {
+      "1": "MULTIPATH_PREFERENCE_HANDOVER",
+      "2": "MULTIPATH_PREFERENCE_RELIABILITY",
+      "4": "MULTIPATH_PREFERENCE_PERFORMANCE"
+    }
+  },
+  "android.net.ConnectivityManager.RestrictBackgroundStatus": {
+    "flag": false,
+    "values": {
+      "1": "RESTRICT_BACKGROUND_STATUS_DISABLED",
+      "2": "RESTRICT_BACKGROUND_STATUS_WHITELISTED",
+      "3": "RESTRICT_BACKGROUND_STATUS_ENABLED"
+    }
+  },
+  "android.net.DnsResolver.DnsError": {
+    "flag": false,
+    "values": {
+      "0": "ERROR_PARSE",
+      "1": "ERROR_SYSTEM"
+    }
+  },
+  "android.net.DnsResolver.QueryClass": {
+    "flag": false,
+    "values": {
+      "1": "CLASS_IN"
+    }
+  },
+  "android.net.DnsResolver.QueryFlag": {
+    "flag": false,
+    "values": {
+      "0": "FLAG_EMPTY",
+      "1": "FLAG_NO_RETRY",
+      "2": "FLAG_NO_CACHE_STORE",
+      "4": "FLAG_NO_CACHE_LOOKUP"
+    }
+  },
+  "android.net.DnsResolver.QueryType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_A",
+      "28": "TYPE_AAAA"
+    }
+  },
+  "android.net.InvalidPacketException.ErrorCode": {
+    "flag": false,
+    "values": {
+      "-21": "ERROR_INVALID_IP_ADDRESS",
+      "-22": "ERROR_INVALID_PORT",
+      "-23": "ERROR_INVALID_LENGTH"
+    }
+  },
+  "android.net.IpSecTransform.EncapType": {
+    "flag": false,
+    "values": {
+      "0": "ENCAP_NONE",
+      "2": "ENCAP_ESPINUDP",
+      "1": "ENCAP_ESPINUDP_NON_IKE"
+    }
+  },
+  "android.net.MacAddress.MacAddressType": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_UNKNOWN",
+      "1": "TYPE_UNICAST",
+      "2": "TYPE_MULTICAST",
+      "3": "TYPE_BROADCAST"
+    }
+  },
+  "android.net.NetworkAgent.ValidationStatus": {
+    "flag": false,
+    "values": {
+      "1": "VALIDATION_STATUS_VALID",
+      "2": "VALIDATION_STATUS_NOT_VALID"
+    }
+  },
+  "android.net.NetworkBadging.Badging": {
+    "flag": false,
+    "values": {
+      "0": "BADGING_NONE",
+      "10": "BADGING_SD",
+      "20": "BADGING_HD",
+      "30": "BADGING_4K"
+    }
+  },
+  "android.net.NetworkCapabilities.NetCapability": {
+    "flag": false,
+    "values": {
+      "0": "NET_CAPABILITY_MMS",
+      "1": "NET_CAPABILITY_SUPL",
+      "2": "NET_CAPABILITY_DUN",
+      "3": "NET_CAPABILITY_FOTA",
+      "4": "NET_CAPABILITY_IMS",
+      "5": "NET_CAPABILITY_CBS",
+      "6": "NET_CAPABILITY_WIFI_P2P",
+      "7": "NET_CAPABILITY_IA",
+      "8": "NET_CAPABILITY_RCS",
+      "9": "NET_CAPABILITY_XCAP",
+      "10": "NET_CAPABILITY_EIMS",
+      "11": "NET_CAPABILITY_NOT_METERED",
+      "12": "NET_CAPABILITY_INTERNET",
+      "13": "NET_CAPABILITY_NOT_RESTRICTED",
+      "14": "NET_CAPABILITY_TRUSTED",
+      "15": "NET_CAPABILITY_NOT_VPN",
+      "16": "NET_CAPABILITY_VALIDATED",
+      "17": "NET_CAPABILITY_CAPTIVE_PORTAL",
+      "18": "NET_CAPABILITY_NOT_ROAMING",
+      "19": "NET_CAPABILITY_FOREGROUND",
+      "20": "NET_CAPABILITY_NOT_CONGESTED",
+      "21": "NET_CAPABILITY_NOT_SUSPENDED",
+      "22": "NET_CAPABILITY_OEM_PAID",
+      "23": "NET_CAPABILITY_MCX",
+      "24": "NET_CAPABILITY_PARTIAL_CONNECTIVITY",
+      "25": "NET_CAPABILITY_TEMPORARILY_NOT_METERED",
+      "26": "NET_CAPABILITY_OEM_PRIVATE"
+    }
+  },
+  "android.net.NetworkCapabilities.Transport": {
+    "flag": false,
+    "values": {
+      "0": "TRANSPORT_CELLULAR",
+      "1": "TRANSPORT_WIFI",
+      "2": "TRANSPORT_BLUETOOTH",
+      "3": "TRANSPORT_ETHERNET",
+      "4": "TRANSPORT_VPN",
+      "5": "TRANSPORT_WIFI_AWARE",
+      "6": "TRANSPORT_LOWPAN",
+      "7": "TRANSPORT_TEST"
+    }
+  },
+  "android.net.NetworkKey.NetworkType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_WIFI"
+    }
+  },
+  "android.net.NetworkPolicyManager.SubscriptionOverrideMask": {
+    "flag": true,
+    "values": {
+      "1": "SUBSCRIPTION_OVERRIDE_UNMETERED",
+      "2": "SUBSCRIPTION_OVERRIDE_CONGESTED"
+    }
+  },
+  "android.net.NetworkScoreManager.RecommendationsEnabledSetting": {
+    "flag": false,
+    "values": {
+      "-1": "RECOMMENDATIONS_ENABLED_FORCED_OFF",
+      "0": "RECOMMENDATIONS_ENABLED_OFF",
+      "1": "RECOMMENDATIONS_ENABLED_ON"
+    }
+  },
+  "android.net.NetworkScoreManager.ScoreUpdateFilter": {
+    "flag": false,
+    "values": {
+      "0": "SCORE_FILTER_NONE",
+      "1": "SCORE_FILTER_CURRENT_NETWORK",
+      "2": "SCORE_FILTER_SCAN_RESULTS"
+    }
+  },
+  "android.net.NetworkStats.DefaultNetwork": {
+    "flag": false,
+    "values": {
+      "-1": "DEFAULT_NETWORK_ALL",
+      "0": "DEFAULT_NETWORK_NO",
+      "1": "DEFAULT_NETWORK_YES"
+    }
+  },
+  "android.net.NetworkStats.Meteredness": {
+    "flag": false,
+    "values": {
+      "-1": "METERED_ALL",
+      "0": "METERED_NO",
+      "1": "METERED_YES"
+    }
+  },
+  "android.net.NetworkStats.Roaming": {
+    "flag": false,
+    "values": {
+      "-1": "ROAMING_ALL",
+      "0": "ROAMING_NO",
+      "1": "ROAMING_YES"
+    }
+  },
+  "android.net.NetworkStats.State": {
+    "flag": false,
+    "values": {
+      "-1": "SET_ALL",
+      "0": "SET_DEFAULT",
+      "1": "SET_FOREGROUND",
+      "1000": "SET_DEBUG_START",
+      "1001": "SET_DBG_VPN_IN",
+      "1002": "SET_DBG_VPN_OUT"
+    }
+  },
+  "android.net.NetworkStats.StatsType": {
+    "flag": false,
+    "values": {
+      "0": "STATS_PER_IFACE",
+      "1": "STATS_PER_UID"
+    }
+  },
+  "android.net.OemNetworkPreferences.OemNetworkPreference": {
+    "flag": false,
+    "values": {
+      "0": "OEM_NETWORK_PREFERENCE_DEFAULT",
+      "1": "OEM_NETWORK_PREFERENCE_OEM_PAID",
+      "2": "OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK",
+      "3": "OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY",
+      "4": "OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY"
+    }
+  },
+  "android.net.PlatformVpnProfile.PlatformVpnType": {
+    "flag": false,
+    "values": {
+      "6": "TYPE_IKEV2_IPSEC_USER_PASS",
+      "7": "TYPE_IKEV2_IPSEC_PSK",
+      "8": "TYPE_IKEV2_IPSEC_RSA"
+    }
+  },
+  "android.net.RouteInfo.RouteType": {
+    "flag": false,
+    "values": {
+      "1": "RTN_UNICAST",
+      "7": "RTN_UNREACHABLE",
+      "9": "RTN_THROW"
+    }
+  },
+  "android.net.SocketKeepalive.ErrorCode": {
+    "flag": false,
+    "values": {
+      "-20": "ERROR_INVALID_NETWORK",
+      "-21": "ERROR_INVALID_IP_ADDRESS",
+      "-22": "ERROR_INVALID_PORT",
+      "-23": "ERROR_INVALID_LENGTH",
+      "-24": "ERROR_INVALID_INTERVAL",
+      "-25": "ERROR_INVALID_SOCKET",
+      "-26": "ERROR_SOCKET_NOT_IDLE"
+    }
+  },
+  "android.net.SocketKeepalive.KeepaliveEvent": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "-23": "ERROR_INVALID_LENGTH",
+      "-30": "ERROR_HARDWARE_UNSUPPORTED",
+      "-32": "ERROR_INSUFFICIENT_RESOURCES"
+    }
+  },
+  "android.net.VpnManager.VpnType": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_VPN_NONE",
+      "1": "TYPE_VPN_SERVICE",
+      "2": "TYPE_VPN_PLATFORM"
+    }
+  },
+  "android.net.annotations.PolicyDirection": {
+    "flag": false,
+    "values": {
+      "0": "DIRECTION_IN",
+      "1": "DIRECTION_OUT"
+    }
+  },
+  "android.net.metrics.ApfProgramEvent.Flags": {
+    "flag": true,
+    "values": {
+      "0": "FLAG_MULTICAST_FILTER_ON",
+      "1": "FLAG_HAS_IPV4_ADDRESS"
+    }
+  },
+  "android.net.metrics.IpManagerEvent.EventType": {
+    "flag": false,
+    "values": {
+      "1": "PROVISIONING_OK",
+      "2": "PROVISIONING_FAIL",
+      "3": "COMPLETE_LIFECYCLE",
+      "4": "ERROR_STARTING_IPV4",
+      "5": "ERROR_STARTING_IPV6",
+      "6": "ERROR_STARTING_IPREACHABILITYMONITOR",
+      "7": "ERROR_INVALID_PROVISIONING",
+      "8": "ERROR_INTERFACE_NOT_FOUND"
+    }
+  },
+  "android.net.metrics.NetworkEvent.EventType": {
+    "flag": false,
+    "values": {
+      "1": "NETWORK_CONNECTED",
+      "2": "NETWORK_VALIDATED",
+      "3": "NETWORK_VALIDATION_FAILED",
+      "4": "NETWORK_CAPTIVE_PORTAL_FOUND",
+      "5": "NETWORK_LINGER",
+      "6": "NETWORK_UNLINGER",
+      "7": "NETWORK_DISCONNECTED",
+      "8": "NETWORK_FIRST_VALIDATION_SUCCESS",
+      "9": "NETWORK_REVALIDATION_SUCCESS",
+      "10": "NETWORK_FIRST_VALIDATION_PORTAL_FOUND",
+      "11": "NETWORK_REVALIDATION_PORTAL_FOUND",
+      "12": "NETWORK_CONSECUTIVE_DNS_TIMEOUT_FOUND",
+      "13": "NETWORK_PARTIAL_CONNECTIVITY"
+    }
+  },
+  "android.net.metrics.ValidationProbeEvent.ReturnCode": {
+    "flag": false,
+    "values": {
+      "0": "DNS_FAILURE",
+      "1": "DNS_SUCCESS"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.Bandwidth": {
+    "flag": false,
+    "values": {
+      "0": "CHANNEL_WIDTH_INVALID",
+      "1": "CHANNEL_WIDTH_20MHZ_NOHT",
+      "2": "CHANNEL_WIDTH_20MHZ",
+      "3": "CHANNEL_WIDTH_40MHZ",
+      "4": "CHANNEL_WIDTH_80MHZ",
+      "5": "CHANNEL_WIDTH_80MHZ_PLUS_MHZ",
+      "6": "CHANNEL_WIDTH_160MHZ"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.ChannelWidth": {
+    "flag": false,
+    "values": {
+      "0": "CHANNEL_WIDTH_20MHZ",
+      "1": "CHANNEL_WIDTH_40MHZ",
+      "2": "CHANNEL_WIDTH_80MHZ",
+      "3": "CHANNEL_WIDTH_160MHZ",
+      "4": "CHANNEL_WIDTH_80MHZ_PLUS_MHZ"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.Cipher": {
+    "flag": false,
+    "values": {
+      "0": "CIPHER_NONE",
+      "1": "CIPHER_NO_GROUP_ADDRESSED",
+      "2": "CIPHER_TKIP",
+      "3": "CIPHER_CCMP",
+      "4": "CIPHER_GCMP_256",
+      "5": "CIPHER_SMS4"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.KeyMgmt": {
+    "flag": false,
+    "values": {
+      "0": "KEY_MGMT_NONE",
+      "1": "KEY_MGMT_PSK",
+      "2": "KEY_MGMT_EAP",
+      "3": "KEY_MGMT_FT_PSK",
+      "4": "KEY_MGMT_FT_EAP",
+      "5": "KEY_MGMT_PSK_SHA256",
+      "6": "KEY_MGMT_EAP_SHA256",
+      "7": "KEY_MGMT_OSEN",
+      "8": "KEY_MGMT_SAE",
+      "9": "KEY_MGMT_OWE",
+      "10": "KEY_MGMT_EAP_SUITE_B_192",
+      "11": "KEY_MGMT_FT_SAE",
+      "12": "KEY_MGMT_OWE_TRANSITION",
+      "13": "KEY_MGMT_WAPI_PSK",
+      "14": "KEY_MGMT_WAPI_CERT"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.Protocol": {
+    "flag": false,
+    "values": {
+      "0": "PROTOCOL_NONE",
+      "1": "PROTOCOL_WPA",
+      "2": "PROTOCOL_RSN",
+      "3": "PROTOCOL_OSEN",
+      "4": "PROTOCOL_WAPI"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.ScanType": {
+    "flag": false,
+    "values": {
+      "0": "SCAN_TYPE_LOW_LATENCY",
+      "1": "SCAN_TYPE_LOW_POWER",
+      "2": "SCAN_TYPE_HIGH_ACCURACY"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.WifiBandBasic": {
+    "flag": false,
+    "values": {
+      "0": "WIFI_BAND_UNSPECIFIED",
+      "1": "WIFI_BAND_24_GHZ",
+      "2": "WIFI_BAND_5_GHZ",
+      "4": "WIFI_BAND_5_GHZ_DFS_ONLY",
+      "8": "WIFI_BAND_6_GHZ"
+    }
+  },
+  "android.net.wifi.WifiAnnotations.WifiStandard": {
+    "flag": false,
+    "values": {
+      "0": "WIFI_STANDARD_UNKNOWN",
+      "1": "WIFI_STANDARD_LEGACY",
+      "4": "WIFI_STANDARD_11N",
+      "5": "WIFI_STANDARD_11AC",
+      "6": "WIFI_STANDARD_11AX"
+    }
+  },
+  "android.net.wifi.WifiMigration.SharedStoreFileId": {
+    "flag": false,
+    "values": {
+      "0": "STORE_FILE_SHARED_GENERAL",
+      "1": "STORE_FILE_SHARED_SOFTAP"
+    }
+  },
+  "android.net.wifi.WifiMigration.UserStoreFileId": {
+    "flag": false,
+    "values": {
+      "2": "STORE_FILE_USER_GENERAL",
+      "3": "STORE_FILE_USER_NETWORK_SUGGESTIONS"
+    }
+  },
+  "android.net.wifi.nl80211.NativeScanResult.BssCapabilityBits": {
+    "flag": true,
+    "values": {
+      "1": "BSS_CAPABILITY_DMG_IBSS",
+      "2": "BSS_CAPABILITY_IBSS",
+      "4": "BSS_CAPABILITY_CF_POLLABLE",
+      "8": "BSS_CAPABILITY_CF_POLL_REQUEST",
+      "16": "BSS_CAPABILITY_PRIVACY",
+      "32": "BSS_CAPABILITY_SHORT_PREAMBLE",
+      "64": "BSS_CAPABILITY_PBCC",
+      "128": "BSS_CAPABILITY_CHANNEL_AGILITY",
+      "256": "BSS_CAPABILITY_SPECTRUM_MANAGEMENT",
+      "512": "BSS_CAPABILITY_QOS",
+      "1024": "BSS_CAPABILITY_SHORT_SLOT_TIME",
+      "2048": "BSS_CAPABILITY_APSD",
+      "4096": "BSS_CAPABILITY_RADIO_MANAGEMENT",
+      "8192": "BSS_CAPABILITY_DSSS_OFDM",
+      "16384": "BSS_CAPABILITY_DELAYED_BLOCK_ACK",
+      "32768": "BSS_CAPABILITY_IMMEDIATE_BLOCK_ACK",
+      "3": "BSS_CAPABILITY_DMG_ESS"
+    }
+  },
+  "android.net.wifi.nl80211.WifiNl80211Manager.ScanResultType": {
+    "flag": false,
+    "values": {
+      "0": "SCAN_TYPE_SINGLE_SCAN",
+      "1": "SCAN_TYPE_PNO_SCAN"
+    }
+  },
+  "android.net.wifi.nl80211.WifiNl80211Manager.SendMgmtFrameError": {
+    "flag": false,
+    "values": {
+      "1": "SEND_MGMT_FRAME_ERROR_UNKNOWN",
+      "2": "SEND_MGMT_FRAME_ERROR_MCS_UNSUPPORTED",
+      "3": "SEND_MGMT_FRAME_ERROR_NO_ACK",
+      "4": "SEND_MGMT_FRAME_ERROR_TIMEOUT",
+      "5": "SEND_MGMT_FRAME_ERROR_ALREADY_STARTED"
+    }
+  },
+  "android.os.BatteryStats.StatName": {
+    "flag": true,
+    "values": {
+      "0": "STATS_SINCE_CHARGED",
+      "1": "STATS_CURRENT",
+      "2": "STATS_SINCE_UNPLUGGED"
+    }
+  },
+  "android.os.BatteryStatsManager.WifiState": {
+    "flag": true,
+    "values": {
+      "0": "WIFI_STATE_OFF",
+      "1": "WIFI_STATE_OFF_SCANNING",
+      "2": "WIFI_STATE_ON_NO_NETWORKS",
+      "3": "WIFI_STATE_ON_DISCONNECTED",
+      "4": "WIFI_STATE_ON_CONNECTED_STA",
+      "5": "WIFI_STATE_ON_CONNECTED_P2P",
+      "6": "WIFI_STATE_ON_CONNECTED_STA_P2P",
+      "7": "WIFI_STATE_SOFT_AP"
+    }
+  },
+  "android.os.BatteryStatsManager.WifiSupplState": {
+    "flag": true,
+    "values": {
+      "0": "WIFI_SUPPL_STATE_INVALID",
+      "1": "WIFI_SUPPL_STATE_DISCONNECTED",
+      "2": "WIFI_SUPPL_STATE_INTERFACE_DISABLED",
+      "3": "WIFI_SUPPL_STATE_INACTIVE",
+      "4": "WIFI_SUPPL_STATE_SCANNING",
+      "5": "WIFI_SUPPL_STATE_AUTHENTICATING",
+      "6": "WIFI_SUPPL_STATE_ASSOCIATING",
+      "7": "WIFI_SUPPL_STATE_ASSOCIATED",
+      "8": "WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE",
+      "9": "WIFI_SUPPL_STATE_GROUP_HANDSHAKE",
+      "10": "WIFI_SUPPL_STATE_COMPLETED",
+      "11": "WIFI_SUPPL_STATE_DORMANT",
+      "12": "WIFI_SUPPL_STATE_UNINITIALIZED"
+    }
+  },
+  "android.os.BugreportManager.BugreportCallback.BugreportErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "BUGREPORT_ERROR_INVALID_INPUT",
+      "2": "BUGREPORT_ERROR_RUNTIME",
+      "3": "BUGREPORT_ERROR_USER_DENIED_CONSENT",
+      "4": "BUGREPORT_ERROR_USER_CONSENT_TIMED_OUT",
+      "5": "BUGREPORT_ERROR_ANOTHER_REPORT_IN_PROGRESS"
+    }
+  },
+  "android.os.BugreportParams.BugreportMode": {
+    "flag": false,
+    "values": {
+      "0": "BUGREPORT_MODE_FULL",
+      "1": "BUGREPORT_MODE_INTERACTIVE",
+      "2": "BUGREPORT_MODE_REMOTE",
+      "3": "BUGREPORT_MODE_WEAR",
+      "4": "BUGREPORT_MODE_TELEPHONY",
+      "5": "BUGREPORT_MODE_WIFI"
+    }
+  },
+  "android.os.CoolingDevice.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_FAN",
+      "1": "TYPE_BATTERY",
+      "2": "TYPE_CPU",
+      "3": "TYPE_GPU",
+      "4": "TYPE_MODEM",
+      "5": "TYPE_NPU",
+      "6": "TYPE_COMPONENT"
+    }
+  },
+  "android.os.FileObserver.NotifyEventType": {
+    "flag": true,
+    "values": {
+      "1": "ACCESS",
+      "2": "MODIFY",
+      "4": "ATTRIB",
+      "8": "CLOSE_WRITE",
+      "16": "CLOSE_NOWRITE",
+      "32": "OPEN",
+      "64": "MOVED_FROM",
+      "128": "MOVED_TO",
+      "256": "CREATE",
+      "512": "DELETE",
+      "1024": "DELETE_SELF",
+      "2048": "MOVE_SELF"
+    }
+  },
+  "android.os.HardwarePropertiesManager.DeviceTemperatureType": {
+    "flag": false,
+    "values": {
+      "0": "DEVICE_TEMPERATURE_CPU",
+      "1": "DEVICE_TEMPERATURE_GPU",
+      "2": "DEVICE_TEMPERATURE_BATTERY",
+      "3": "DEVICE_TEMPERATURE_SKIN"
+    }
+  },
+  "android.os.HardwarePropertiesManager.TemperatureSource": {
+    "flag": false,
+    "values": {
+      "0": "TEMPERATURE_CURRENT",
+      "1": "TEMPERATURE_THROTTLING",
+      "2": "TEMPERATURE_SHUTDOWN",
+      "3": "TEMPERATURE_THROTTLING_BELOW_VR_MIN"
+    }
+  },
+  "android.os.HwParcel.Status": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_SUCCESS"
+    }
+  },
+  "android.os.IncidentManager.PrivacyPolicy": {
+    "flag": false,
+    "values": {
+      "200": "PRIVACY_POLICY_AUTO",
+      "100": "PRIVACY_POLICY_EXPLICIT",
+      "0": "PRIVACY_POLICY_LOCAL"
+    }
+  },
+  "android.os.MessageQueue.OnFileDescriptorEventListener.Events": {
+    "flag": true,
+    "values": {
+      "1": "EVENT_INPUT",
+      "2": "EVENT_OUTPUT",
+      "4": "EVENT_ERROR"
+    }
+  },
+  "android.os.Parcelable.ContentsFlags": {
+    "flag": true,
+    "values": {
+      "1": "CONTENTS_FILE_DESCRIPTOR"
+    }
+  },
+  "android.os.Parcelable.Stability": {
+    "flag": true,
+    "values": {
+      "0": "PARCELABLE_STABILITY_LOCAL",
+      "1": "PARCELABLE_STABILITY_VINTF"
+    }
+  },
+  "android.os.Parcelable.WriteFlags": {
+    "flag": true,
+    "values": {
+      "1": "PARCELABLE_WRITE_RETURN_VALUE",
+      "2": "PARCELABLE_ELIDE_DUPLICATES"
+    }
+  },
+  "android.os.PowerManager.AutoPowerSaveModeTriggers": {
+    "flag": false,
+    "values": {
+      "0": "POWER_SAVE_MODE_TRIGGER_PERCENTAGE",
+      "1": "POWER_SAVE_MODE_TRIGGER_DYNAMIC"
+    }
+  },
+  "android.os.PowerManager.BrightnessConstraint": {
+    "flag": false,
+    "values": {
+      "0": "BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM",
+      "1": "BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM",
+      "2": "BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT",
+      "3": "BRIGHTNESS_CONSTRAINT_TYPE_DIM",
+      "4": "BRIGHTNESS_CONSTRAINT_TYPE_DOZE",
+      "5": "BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR",
+      "6": "BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR",
+      "7": "BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_VR"
+    }
+  },
+  "android.os.PowerManager.LocationPowerSaveMode": {
+    "flag": false,
+    "values": {
+      "0": "LOCATION_MODE_NO_CHANGE",
+      "1": "LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF",
+      "2": "LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF",
+      "3": "LOCATION_MODE_FOREGROUND_ONLY",
+      "4": "LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF"
+    }
+  },
+  "android.os.PowerManager.ServiceType": {
+    "flag": false,
+    "values": {
+      "1": "LOCATION",
+      "2": "VIBRATION",
+      "3": "ANIMATION",
+      "4": "FULL_BACKUP",
+      "5": "KEYVALUE_BACKUP",
+      "6": "NETWORK_FIREWALL",
+      "7": "SCREEN_BRIGHTNESS",
+      "8": "SOUND",
+      "9": "BATTERY_STATS",
+      "10": "DATA_SAVER",
+      "11": "FORCE_ALL_APPS_STANDBY",
+      "12": "FORCE_BACKGROUND_CHECK",
+      "13": "OPTIONAL_SENSORS",
+      "14": "AOD",
+      "15": "QUICK_DOZE",
+      "16": "NIGHT_MODE"
+    }
+  },
+  "android.os.PowerManager.ShutdownReason": {
+    "flag": false,
+    "values": {
+      "0": "SHUTDOWN_REASON_UNKNOWN",
+      "1": "SHUTDOWN_REASON_SHUTDOWN",
+      "2": "SHUTDOWN_REASON_REBOOT",
+      "3": "SHUTDOWN_REASON_USER_REQUESTED",
+      "4": "SHUTDOWN_REASON_THERMAL_SHUTDOWN",
+      "5": "SHUTDOWN_REASON_LOW_BATTERY",
+      "6": "SHUTDOWN_REASON_BATTERY_THERMAL"
+    }
+  },
+  "android.os.PowerManager.ThermalStatus": {
+    "flag": false,
+    "values": {
+      "0": "THERMAL_STATUS_NONE",
+      "1": "THERMAL_STATUS_LIGHT",
+      "2": "THERMAL_STATUS_MODERATE",
+      "3": "THERMAL_STATUS_SEVERE",
+      "4": "THERMAL_STATUS_CRITICAL",
+      "5": "THERMAL_STATUS_EMERGENCY",
+      "6": "THERMAL_STATUS_SHUTDOWN"
+    }
+  },
+  "android.os.PowerManager.WakeReason": {
+    "flag": false,
+    "values": {
+      "0": "WAKE_REASON_UNKNOWN",
+      "1": "WAKE_REASON_POWER_BUTTON",
+      "2": "WAKE_REASON_APPLICATION",
+      "3": "WAKE_REASON_PLUGGED_IN",
+      "4": "WAKE_REASON_GESTURE",
+      "5": "WAKE_REASON_CAMERA_LAUNCH",
+      "6": "WAKE_REASON_WAKE_KEY",
+      "7": "WAKE_REASON_WAKE_MOTION",
+      "8": "WAKE_REASON_HDMI"
+    }
+  },
+  "android.os.PowerWhitelistManager.WhitelistEvent": {
+    "flag": false,
+    "values": {
+      "0": "EVENT_UNSPECIFIED",
+      "1": "EVENT_SMS",
+      "2": "EVENT_MMS"
+    }
+  },
+  "android.os.StrictMode.ThreadPolicyMask": {
+    "flag": true,
+    "values": {
+      "1": "DETECT_THREAD_DISK_WRITE",
+      "2": "DETECT_THREAD_DISK_READ",
+      "4": "DETECT_THREAD_NETWORK",
+      "8": "DETECT_THREAD_CUSTOM",
+      "16": "DETECT_THREAD_RESOURCE_MISMATCH",
+      "32": "DETECT_THREAD_UNBUFFERED_IO",
+      "64": "DETECT_THREAD_EXPLICIT_GC",
+      "-2147483648": "PENALTY_GATHER",
+      "1073741824": "PENALTY_LOG",
+      "536870912": "PENALTY_DIALOG",
+      "268435456": "PENALTY_DEATH",
+      "134217728": "PENALTY_FLASH",
+      "67108864": "PENALTY_DROPBOX",
+      "33554432": "PENALTY_DEATH_ON_NETWORK",
+      "16777216": "PENALTY_DEATH_ON_CLEARTEXT_NETWORK",
+      "8388608": "PENALTY_DEATH_ON_FILE_URI_EXPOSURE"
+    }
+  },
+  "android.os.StrictMode.VmPolicyMask": {
+    "flag": true,
+    "values": {
+      "1": "DETECT_VM_CURSOR_LEAKS",
+      "2": "DETECT_VM_CLOSABLE_LEAKS",
+      "4": "DETECT_VM_ACTIVITY_LEAKS",
+      "8": "DETECT_VM_INSTANCE_LEAKS",
+      "16": "DETECT_VM_REGISTRATION_LEAKS",
+      "32": "DETECT_VM_FILE_URI_EXPOSURE",
+      "64": "DETECT_VM_CLEARTEXT_NETWORK",
+      "128": "DETECT_VM_CONTENT_URI_WITHOUT_PERMISSION",
+      "256": "DETECT_VM_UNTAGGED_SOCKET",
+      "512": "DETECT_VM_NON_SDK_API_USAGE",
+      "1024": "DETECT_VM_IMPLICIT_DIRECT_BOOT",
+      "4096": "DETECT_VM_INCORRECT_CONTEXT_USE",
+      "-2147483648": "PENALTY_GATHER",
+      "1073741824": "PENALTY_LOG",
+      "536870912": "PENALTY_DIALOG",
+      "268435456": "PENALTY_DEATH",
+      "134217728": "PENALTY_FLASH",
+      "67108864": "PENALTY_DROPBOX",
+      "33554432": "PENALTY_DEATH_ON_NETWORK",
+      "16777216": "PENALTY_DEATH_ON_CLEARTEXT_NETWORK",
+      "8388608": "PENALTY_DEATH_ON_FILE_URI_EXPOSURE"
+    }
+  },
+  "android.os.Temperature.ThrottlingStatus": {
+    "flag": false,
+    "values": {
+      "0": "THROTTLING_NONE",
+      "1": "THROTTLING_LIGHT",
+      "2": "THROTTLING_MODERATE",
+      "3": "THROTTLING_SEVERE",
+      "4": "THROTTLING_CRITICAL",
+      "5": "THROTTLING_EMERGENCY",
+      "6": "THROTTLING_SHUTDOWN"
+    }
+  },
+  "android.os.Temperature.Type": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_UNKNOWN",
+      "0": "TYPE_CPU",
+      "1": "TYPE_GPU",
+      "2": "TYPE_BATTERY",
+      "3": "TYPE_SKIN",
+      "4": "TYPE_USB_PORT",
+      "5": "TYPE_POWER_AMPLIFIER",
+      "6": "TYPE_BCL_VOLTAGE",
+      "7": "TYPE_BCL_CURRENT",
+      "8": "TYPE_BCL_PERCENTAGE",
+      "9": "TYPE_NPU"
+    }
+  },
+  "android.os.UpdateEngine.ErrorCode": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "1": "ERROR",
+      "4": "FILESYSTEM_COPIER_ERROR",
+      "5": "POST_INSTALL_RUNNER_ERROR",
+      "6": "PAYLOAD_MISMATCHED_TYPE_ERROR",
+      "7": "INSTALL_DEVICE_OPEN_ERROR",
+      "8": "KERNEL_DEVICE_OPEN_ERROR",
+      "9": "DOWNLOAD_TRANSFER_ERROR",
+      "10": "PAYLOAD_HASH_MISMATCH_ERROR",
+      "11": "PAYLOAD_SIZE_MISMATCH_ERROR",
+      "12": "DOWNLOAD_PAYLOAD_VERIFICATION_ERROR",
+      "51": "PAYLOAD_TIMESTAMP_ERROR",
+      "52": "UPDATED_BUT_NOT_ACTIVE",
+      "60": "NOT_ENOUGH_SPACE",
+      "61": "DEVICE_CORRUPTED"
+    }
+  },
+  "android.os.UserManager.QuietModeFlag": {
+    "flag": true,
+    "values": {
+      "1": "QUIET_MODE_DISABLE_ONLY_IF_CREDENTIAL_NOT_REQUIRED",
+      "2": "QUIET_MODE_DISABLE_DONT_ASK_CREDENTIAL"
+    }
+  },
+  "android.os.UserManager.RemoveResult": {
+    "flag": false,
+    "values": {
+      "0": "REMOVE_RESULT_REMOVED",
+      "1": "REMOVE_RESULT_SET_EPHEMERAL",
+      "2": "REMOVE_RESULT_ALREADY_BEING_REMOVED",
+      "3": "REMOVE_RESULT_ERROR"
+    }
+  },
+  "android.os.UserManager.UserOperationResult": {
+    "flag": false,
+    "values": {
+      "0": "USER_OPERATION_SUCCESS",
+      "1": "USER_OPERATION_ERROR_UNKNOWN",
+      "2": "USER_OPERATION_ERROR_MANAGED_PROFILE",
+      "3": "USER_OPERATION_ERROR_MAX_RUNNING_USERS",
+      "4": "USER_OPERATION_ERROR_CURRENT_USER",
+      "5": "USER_OPERATION_ERROR_LOW_STORAGE",
+      "6": "USER_OPERATION_ERROR_MAX_USERS"
+    }
+  },
+  "android.os.UserManager.UserRestrictionSource": {
+    "flag": true,
+    "values": {
+      "0": "RESTRICTION_NOT_SET",
+      "1": "RESTRICTION_SOURCE_SYSTEM",
+      "2": "RESTRICTION_SOURCE_DEVICE_OWNER",
+      "4": "RESTRICTION_SOURCE_PROFILE_OWNER"
+    }
+  },
+  "android.os.UserManager.UserSwitchabilityResult": {
+    "flag": true,
+    "values": {
+      "0": "SWITCHABILITY_STATUS_OK",
+      "1": "SWITCHABILITY_STATUS_USER_IN_CALL",
+      "2": "SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED",
+      "4": "SWITCHABILITY_STATUS_SYSTEM_USER_LOCKED"
+    }
+  },
+  "android.os.VibrationAttributes.Flag": {
+    "flag": false,
+    "values": {
+      "1": "FLAG_BYPASS_INTERRUPTION_POLICY"
+    }
+  },
+  "android.os.VibrationAttributes.Usage": {
+    "flag": false,
+    "values": {
+      "0": "USAGE_UNKNOWN",
+      "17": "USAGE_ALARM",
+      "33": "USAGE_RINGTONE",
+      "49": "USAGE_NOTIFICATION",
+      "65": "USAGE_COMMUNICATION_REQUEST",
+      "18": "USAGE_TOUCH",
+      "34": "USAGE_PHYSICAL_EMULATION",
+      "50": "USAGE_HARDWARE_FEEDBACK"
+    }
+  },
+  "android.os.VibrationAttributes.UsageClass": {
+    "flag": false,
+    "values": {
+      "0": "USAGE_CLASS_UNKNOWN",
+      "1": "USAGE_CLASS_ALARM",
+      "2": "USAGE_CLASS_FEEDBACK"
+    }
+  },
+  "android.os.VibrationEffect.Composition.Primitive": {
+    "flag": false,
+    "values": {
+      "1": "PRIMITIVE_CLICK",
+      "2": "PRIMITIVE_THUD",
+      "3": "PRIMITIVE_SPIN",
+      "4": "PRIMITIVE_QUICK_RISE",
+      "5": "PRIMITIVE_SLOW_RISE",
+      "6": "PRIMITIVE_QUICK_FALL",
+      "7": "PRIMITIVE_TICK"
+    }
+  },
+  "android.os.VibrationEffect.EffectType": {
+    "flag": false,
+    "values": {
+      "2": "EFFECT_TICK",
+      "0": "EFFECT_CLICK",
+      "5": "EFFECT_HEAVY_CLICK",
+      "1": "EFFECT_DOUBLE_CLICK"
+    }
+  },
+  "android.os.Vibrator.VibrationEffectSupport": {
+    "flag": false,
+    "values": {
+      "0": "VIBRATION_EFFECT_SUPPORT_UNKNOWN",
+      "1": "VIBRATION_EFFECT_SUPPORT_YES",
+      "2": "VIBRATION_EFFECT_SUPPORT_NO"
+    }
+  },
+  "android.os.Vibrator.VibrationIntensity": {
+    "flag": false,
+    "values": {
+      "0": "VIBRATION_INTENSITY_OFF",
+      "1": "VIBRATION_INTENSITY_LOW",
+      "2": "VIBRATION_INTENSITY_MEDIUM",
+      "3": "VIBRATION_INTENSITY_HIGH"
+    }
+  },
+  "android.os.connectivity.WifiActivityEnergyInfo.StackState": {
+    "flag": false,
+    "values": {
+      "0": "STACK_STATE_INVALID",
+      "1": "STACK_STATE_STATE_ACTIVE",
+      "2": "STACK_STATE_STATE_SCANNING",
+      "3": "STACK_STATE_STATE_IDLE"
+    }
+  },
+  "android.os.image.DynamicSystemClient.InstallationStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_UNKNOWN",
+      "1": "STATUS_NOT_STARTED",
+      "2": "STATUS_IN_PROGRESS",
+      "3": "STATUS_READY",
+      "4": "STATUS_IN_USE"
+    }
+  },
+  "android.os.image.DynamicSystemClient.StatusChangedCause": {
+    "flag": false,
+    "values": {
+      "0": "CAUSE_NOT_SPECIFIED",
+      "1": "CAUSE_INSTALL_COMPLETED",
+      "2": "CAUSE_INSTALL_CANCELLED",
+      "3": "CAUSE_ERROR_IO",
+      "4": "CAUSE_ERROR_INVALID_URL",
+      "5": "CAUSE_ERROR_IPC",
+      "6": "CAUSE_ERROR_EXCEPTION"
+    }
+  },
+  "android.os.incremental.IncrementalManager.CreateMode": {
+    "flag": false,
+    "values": {
+      "1": "CREATE_MODE_TEMPORARY_BIND",
+      "2": "CREATE_MODE_PERMANENT_BIND",
+      "4": "CREATE_MODE_CREATE",
+      "8": "CREATE_MODE_OPEN_EXISTING"
+    }
+  },
+  "android.os.storage.StorageManager.AllocateFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_ALLOCATE_AGGRESSIVE",
+      "2": "FLAG_ALLOCATE_DEFY_ALL_RESERVED",
+      "4": "FLAG_ALLOCATE_DEFY_HALF_RESERVED",
+      "8": "FLAG_ALLOCATE_NON_CACHE_ONLY",
+      "16": "FLAG_ALLOCATE_CACHE_ONLY"
+    }
+  },
+  "android.os.storage.StorageManager.QuotaType": {
+    "flag": false,
+    "values": {
+      "0": "QUOTA_TYPE_MEDIA_NONE",
+      "2": "QUOTA_TYPE_MEDIA_AUDIO",
+      "3": "QUOTA_TYPE_MEDIA_VIDEO",
+      "1": "QUOTA_TYPE_MEDIA_IMAGE"
+    }
+  },
+  "android.permission.PermissionControllerManager.CountPermissionAppsFlag": {
+    "flag": true,
+    "values": {
+      "1": "COUNT_ONLY_WHEN_GRANTED",
+      "2": "COUNT_WHEN_SYSTEM"
+    }
+  },
+  "android.permission.PermissionControllerManager.Reason": {
+    "flag": false,
+    "values": {
+      "1": "REASON_MALWARE",
+      "2": "REASON_INSTALLER_POLICY_VIOLATION"
+    }
+  },
+  "android.print.PrintAttributes.ColorMode": {
+    "flag": true,
+    "values": {
+      "1": "COLOR_MODE_MONOCHROME",
+      "2": "COLOR_MODE_COLOR"
+    }
+  },
+  "android.print.PrintAttributes.DuplexMode": {
+    "flag": true,
+    "values": {
+      "1": "DUPLEX_MODE_NONE",
+      "2": "DUPLEX_MODE_LONG_EDGE",
+      "4": "DUPLEX_MODE_SHORT_EDGE"
+    }
+  },
+  "android.print.PrintDocumentInfo.ContentType": {
+    "flag": false,
+    "values": {
+      "-1": "CONTENT_TYPE_UNKNOWN",
+      "0": "CONTENT_TYPE_DOCUMENT",
+      "1": "CONTENT_TYPE_PHOTO"
+    }
+  },
+  "android.print.PrintJobInfo.State": {
+    "flag": false,
+    "values": {
+      "1": "STATE_CREATED",
+      "2": "STATE_QUEUED",
+      "3": "STATE_STARTED",
+      "4": "STATE_BLOCKED",
+      "5": "STATE_COMPLETED",
+      "6": "STATE_FAILED",
+      "7": "STATE_CANCELED"
+    }
+  },
+  "android.print.PrinterInfo.Status": {
+    "flag": false,
+    "values": {
+      "1": "STATUS_IDLE",
+      "2": "STATUS_BUSY",
+      "3": "STATUS_UNAVAILABLE"
+    }
+  },
+  "android.provider.BlockedNumberContract.BlockStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_NOT_BLOCKED",
+      "1": "STATUS_BLOCKED_IN_LIST",
+      "2": "STATUS_BLOCKED_RESTRICTED",
+      "3": "STATUS_BLOCKED_UNKNOWN_NUMBER",
+      "4": "STATUS_BLOCKED_PAYPHONE",
+      "5": "STATUS_BLOCKED_NOT_IN_CONTACTS"
+    }
+  },
+  "android.provider.FontsContract.FontFamilyResult.FontResultStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_OK",
+      "1": "STATUS_WRONG_CERTIFICATES",
+      "2": "STATUS_UNEXPECTED_DATA_PROVIDED"
+    }
+  },
+  "android.provider.FontsContract.FontRequestCallback.FontRequestFailReason": {
+    "flag": false,
+    "values": {
+      "-1": "FAIL_REASON_PROVIDER_NOT_FOUND",
+      "-3": "FAIL_REASON_FONT_LOAD_ERROR",
+      "1": "FAIL_REASON_FONT_NOT_FOUND",
+      "2": "FAIL_REASON_FONT_UNAVAILABLE",
+      "3": "FAIL_REASON_MALFORMED_QUERY"
+    }
+  },
+  "android.provider.Settings.AddWifiResult": {
+    "flag": false,
+    "values": {
+      "0": "ADD_WIFI_RESULT_SUCCESS",
+      "1": "ADD_WIFI_RESULT_ADD_OR_UPDATE_FAILED",
+      "2": "ADD_WIFI_RESULT_ALREADY_EXISTS"
+    }
+  },
+  "android.provider.Settings.EnableMmsDataReason": {
+    "flag": false,
+    "values": {
+      "0": "ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_MMS",
+      "1": "ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS"
+    }
+  },
+  "android.provider.Settings.ResetMode": {
+    "flag": false,
+    "values": {
+      "1": "RESET_MODE_PACKAGE_DEFAULTS",
+      "2": "RESET_MODE_UNTRUSTED_DEFAULTS",
+      "3": "RESET_MODE_UNTRUSTED_CHANGES",
+      "4": "RESET_MODE_TRUSTED_DEFAULTS"
+    }
+  },
+  "android.provider.Settings.Secure.UserSetupPersonalization": {
+    "flag": false,
+    "values": {
+      "0": "USER_SETUP_PERSONALIZATION_NOT_STARTED",
+      "1": "USER_SETUP_PERSONALIZATION_STARTED",
+      "2": "USER_SETUP_PERSONALIZATION_PAUSED",
+      "10": "USER_SETUP_PERSONALIZATION_COMPLETE"
+    }
+  },
+  "android.provider.Telephony.Carriers.EditStatus": {
+    "flag": false,
+    "values": {
+      "0": "UNEDITED",
+      "1": "USER_EDITED",
+      "2": "USER_DELETED",
+      "5": "CARRIER_DELETED",
+      "4": "CARRIER_EDITED"
+    }
+  },
+  "android.renderscript.ScriptIntrinsicBLAS.Diag": {
+    "flag": false,
+    "values": {
+      "131": "NON_UNIT",
+      "132": "UNIT"
+    }
+  },
+  "android.renderscript.ScriptIntrinsicBLAS.Side": {
+    "flag": false,
+    "values": {
+      "141": "LEFT",
+      "142": "RIGHT"
+    }
+  },
+  "android.renderscript.ScriptIntrinsicBLAS.Transpose": {
+    "flag": false,
+    "values": {
+      "111": "NO_TRANSPOSE",
+      "112": "TRANSPOSE",
+      "113": "CONJ_TRANSPOSE"
+    }
+  },
+  "android.renderscript.ScriptIntrinsicBLAS.Uplo": {
+    "flag": false,
+    "values": {
+      "121": "UPPER",
+      "122": "LOWER"
+    }
+  },
+  "android.security.identity.IdentityCredentialStore.Ciphersuite": {
+    "flag": false,
+    "values": {
+      "1": "CIPHERSUITE_ECDHE_HKDF_ECDSA_WITH_AES_256_GCM_SHA256"
+    }
+  },
+  "android.security.identity.ResultData.Status": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_OK",
+      "1": "STATUS_NO_SUCH_ENTRY",
+      "2": "STATUS_NOT_REQUESTED",
+      "3": "STATUS_NOT_IN_REQUEST_MESSAGE",
+      "4": "STATUS_USER_AUTHENTICATION_FAILED",
+      "5": "STATUS_READER_AUTHENTICATION_FAILED",
+      "6": "STATUS_NO_ACCESS_CONTROL_PROFILES"
+    }
+  },
+  "android.security.keystore.KeyProperties.AuthEnum": {
+    "flag": true,
+    "values": {
+      "2": "AUTH_BIOMETRIC_STRONG",
+      "1": "AUTH_DEVICE_CREDENTIAL"
+    }
+  },
+  "android.security.keystore.KeyProperties.OriginEnum": {
+    "flag": false,
+    "values": {
+      "1": "ORIGIN_GENERATED",
+      "2": "ORIGIN_IMPORTED",
+      "4": "ORIGIN_UNKNOWN"
+    }
+  },
+  "android.security.keystore.KeyProperties.PurposeEnum": {
+    "flag": true,
+    "values": {
+      "1": "PURPOSE_ENCRYPT",
+      "2": "PURPOSE_DECRYPT",
+      "4": "PURPOSE_SIGN",
+      "8": "PURPOSE_VERIFY",
+      "32": "PURPOSE_WRAP_KEY"
+    }
+  },
+  "android.security.keystore.KeyProperties.SecurityLevelEnum": {
+    "flag": false,
+    "values": {
+      "-2": "SECURITY_LEVEL_UNKNOWN",
+      "-1": "SECURITY_LEVEL_UNKNOWN_SECURE",
+      "0": "SECURITY_LEVEL_SOFTWARE",
+      "1": "SECURITY_LEVEL_TRUSTED_ENVIRONMENT",
+      "2": "SECURITY_LEVEL_STRONGBOX"
+    }
+  },
+  "android.security.keystore.recovery.KeyChainProtectionParams.LockScreenUiFormat": {
+    "flag": false,
+    "values": {
+      "1": "UI_FORMAT_PIN",
+      "2": "UI_FORMAT_PASSWORD",
+      "3": "UI_FORMAT_PATTERN"
+    }
+  },
+  "android.security.keystore.recovery.KeyChainProtectionParams.UserSecretType": {
+    "flag": false,
+    "values": {
+      "100": "TYPE_LOCKSCREEN"
+    }
+  },
+  "android.security.keystore.recovery.KeyDerivationParams.KeyDerivationAlgorithm": {
+    "flag": false,
+    "values": {
+      "1": "ALGORITHM_SHA256",
+      "2": "ALGORITHM_SCRYPT"
+    }
+  },
+  "android.service.attention.AttentionService.AttentionFailureCodes": {
+    "flag": false,
+    "values": {
+      "2": "ATTENTION_FAILURE_UNKNOWN",
+      "3": "ATTENTION_FAILURE_CANCELLED",
+      "4": "ATTENTION_FAILURE_PREEMPTED",
+      "5": "ATTENTION_FAILURE_TIMED_OUT",
+      "6": "ATTENTION_FAILURE_CAMERA_PERMISSION_ABSENT"
+    }
+  },
+  "android.service.attention.AttentionService.AttentionSuccessCodes": {
+    "flag": false,
+    "values": {
+      "0": "ATTENTION_SUCCESS_ABSENT",
+      "1": "ATTENTION_SUCCESS_PRESENT"
+    }
+  },
+  "android.service.autofill.FillEventHistory.Event.EventIds": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_DATASET_SELECTED",
+      "1": "TYPE_DATASET_AUTHENTICATION_SELECTED",
+      "2": "TYPE_AUTHENTICATION_SELECTED",
+      "3": "TYPE_SAVE_SHOWN",
+      "4": "TYPE_CONTEXT_COMMITTED",
+      "5": "TYPE_DATASETS_SHOWN"
+    }
+  },
+  "android.service.autofill.FillEventHistory.Event.NoSaveReason": {
+    "flag": false,
+    "values": {
+      "0": "NO_SAVE_REASON_NONE",
+      "1": "NO_SAVE_REASON_NO_SAVE_INFO",
+      "2": "NO_SAVE_REASON_WITH_DELAY_SAVE_FLAG",
+      "3": "NO_SAVE_REASON_HAS_EMPTY_REQUIRED",
+      "4": "NO_SAVE_REASON_NO_VALUE_CHANGED",
+      "5": "NO_SAVE_REASON_FIELD_VALIDATION_FAILED",
+      "6": "NO_SAVE_REASON_DATASET_MATCH"
+    }
+  },
+  "android.service.autofill.FillRequest.RequestFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_MANUAL_REQUEST",
+      "2": "FLAG_COMPATIBILITY_MODE_REQUEST",
+      "4": "FLAG_PASSWORD_INPUT_TYPE",
+      "16": "FLAG_VIEW_NOT_FOCUSED"
+    }
+  },
+  "android.service.autofill.FillResponse.FillResponseFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_TRACK_CONTEXT_COMMITED",
+      "2": "FLAG_DISABLE_ACTIVITY_ONLY"
+    }
+  },
+  "android.service.autofill.SaveInfo.NegativeButtonStyle": {
+    "flag": false,
+    "values": {
+      "0": "NEGATIVE_BUTTON_STYLE_CANCEL",
+      "1": "NEGATIVE_BUTTON_STYLE_REJECT",
+      "2": "NEGATIVE_BUTTON_STYLE_NEVER"
+    }
+  },
+  "android.service.autofill.SaveInfo.PositiveButtonStyle": {
+    "flag": false,
+    "values": {
+      "0": "POSITIVE_BUTTON_STYLE_SAVE",
+      "1": "POSITIVE_BUTTON_STYLE_CONTINUE"
+    }
+  },
+  "android.service.autofill.SaveInfo.SaveDataType": {
+    "flag": true,
+    "values": {
+      "0": "SAVE_DATA_TYPE_GENERIC",
+      "1": "SAVE_DATA_TYPE_PASSWORD",
+      "2": "SAVE_DATA_TYPE_ADDRESS",
+      "4": "SAVE_DATA_TYPE_CREDIT_CARD",
+      "8": "SAVE_DATA_TYPE_USERNAME",
+      "16": "SAVE_DATA_TYPE_EMAIL_ADDRESS",
+      "32": "SAVE_DATA_TYPE_DEBIT_CARD",
+      "64": "SAVE_DATA_TYPE_PAYMENT_CARD",
+      "128": "SAVE_DATA_TYPE_GENERIC_CARD"
+    }
+  },
+  "android.service.autofill.SaveInfo.SaveInfoFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE",
+      "2": "FLAG_DONT_SAVE_ON_FINISH",
+      "4": "FLAG_DELAY_SAVE"
+    }
+  },
+  "android.service.autofill.augmented.AugmentedAutofillService.AutofillProxy.ReportEvent": {
+    "flag": false,
+    "values": {
+      "1": "REPORT_EVENT_NO_RESPONSE",
+      "2": "REPORT_EVENT_UI_SHOWN",
+      "3": "REPORT_EVENT_UI_DESTROYED",
+      "4": "REPORT_EVENT_INLINE_RESPONSE"
+    }
+  },
+  "android.service.contentcapture.ActivityEvent.ActivityEventType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_ACTIVITY_RESUMED",
+      "2": "TYPE_ACTIVITY_PAUSED",
+      "23": "TYPE_ACTIVITY_STOPPED",
+      "24": "TYPE_ACTIVITY_DESTROYED"
+    }
+  },
+  "android.service.controls.Control.Status": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_UNKNOWN",
+      "1": "STATUS_OK",
+      "2": "STATUS_NOT_FOUND",
+      "3": "STATUS_ERROR",
+      "4": "STATUS_DISABLED"
+    }
+  },
+  "android.service.controls.DeviceTypes.DeviceType": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_GENERIC_ON_OFF",
+      "-2": "TYPE_GENERIC_START_STOP",
+      "-3": "TYPE_GENERIC_OPEN_CLOSE",
+      "-4": "TYPE_GENERIC_LOCK_UNLOCK",
+      "-5": "TYPE_GENERIC_ARM_DISARM",
+      "-6": "TYPE_GENERIC_TEMP_SETTING",
+      "-7": "TYPE_GENERIC_VIEWSTREAM",
+      "0": "TYPE_UNKNOWN",
+      "1": "TYPE_AC_HEATER",
+      "2": "TYPE_AC_UNIT",
+      "3": "TYPE_AIR_FRESHENER",
+      "4": "TYPE_AIR_PURIFIER",
+      "5": "TYPE_COFFEE_MAKER",
+      "6": "TYPE_DEHUMIDIFIER",
+      "7": "TYPE_DISPLAY",
+      "8": "TYPE_FAN",
+      "10": "TYPE_HOOD",
+      "11": "TYPE_HUMIDIFIER",
+      "12": "TYPE_KETTLE",
+      "13": "TYPE_LIGHT",
+      "14": "TYPE_MICROWAVE",
+      "15": "TYPE_OUTLET",
+      "16": "TYPE_RADIATOR",
+      "17": "TYPE_REMOTE_CONTROL",
+      "18": "TYPE_SET_TOP",
+      "19": "TYPE_STANDMIXER",
+      "20": "TYPE_STYLER",
+      "21": "TYPE_SWITCH",
+      "22": "TYPE_TV",
+      "23": "TYPE_WATER_HEATER",
+      "24": "TYPE_DISHWASHER",
+      "25": "TYPE_DRYER",
+      "26": "TYPE_MOP",
+      "27": "TYPE_MOWER",
+      "28": "TYPE_MULTICOOKER",
+      "29": "TYPE_SHOWER",
+      "30": "TYPE_SPRINKLER",
+      "31": "TYPE_WASHER",
+      "32": "TYPE_VACUUM",
+      "33": "TYPE_AWNING",
+      "34": "TYPE_BLINDS",
+      "35": "TYPE_CLOSET",
+      "36": "TYPE_CURTAIN",
+      "37": "TYPE_DOOR",
+      "38": "TYPE_DRAWER",
+      "39": "TYPE_GARAGE",
+      "40": "TYPE_GATE",
+      "41": "TYPE_PERGOLA",
+      "42": "TYPE_SHUTTER",
+      "43": "TYPE_WINDOW",
+      "44": "TYPE_VALVE",
+      "45": "TYPE_LOCK",
+      "46": "TYPE_SECURITY_SYSTEM",
+      "47": "TYPE_HEATER",
+      "48": "TYPE_REFRIGERATOR",
+      "49": "TYPE_THERMOSTAT",
+      "50": "TYPE_CAMERA",
+      "51": "TYPE_DOORBELL",
+      "52": "TYPE_ROUTINE"
+    }
+  },
+  "android.service.controls.actions.ControlAction.ActionType": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_ERROR",
+      "1": "TYPE_BOOLEAN",
+      "2": "TYPE_FLOAT",
+      "4": "TYPE_MODE",
+      "5": "TYPE_COMMAND"
+    }
+  },
+  "android.service.controls.actions.ControlAction.ResponseResult": {
+    "flag": false,
+    "values": {
+      "0": "RESPONSE_UNKNOWN",
+      "1": "RESPONSE_OK",
+      "2": "RESPONSE_FAIL",
+      "3": "RESPONSE_CHALLENGE_ACK",
+      "4": "RESPONSE_CHALLENGE_PIN",
+      "5": "RESPONSE_CHALLENGE_PASSPHRASE"
+    }
+  },
+  "android.service.controls.templates.ControlTemplate.TemplateType": {
+    "flag": false,
+    "values": {
+      "-1": "TYPE_ERROR",
+      "0": "TYPE_NO_TEMPLATE",
+      "1": "TYPE_TOGGLE",
+      "2": "TYPE_RANGE",
+      "3": "TYPE_THUMBNAIL",
+      "6": "TYPE_TOGGLE_RANGE",
+      "7": "TYPE_TEMPERATURE",
+      "8": "TYPE_STATELESS"
+    }
+  },
+  "android.service.controls.templates.TemperatureControlTemplate.Mode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_UNKNOWN",
+      "1": "MODE_OFF",
+      "2": "MODE_HEAT",
+      "3": "MODE_COOL",
+      "4": "MODE_HEAT_COOL",
+      "5": "MODE_ECO"
+    }
+  },
+  "android.service.controls.templates.TemperatureControlTemplate.ModeFlag": {
+    "flag": true,
+    "values": {
+      "2": "FLAG_MODE_OFF",
+      "4": "FLAG_MODE_HEAT",
+      "8": "FLAG_MODE_COOL",
+      "16": "FLAG_MODE_HEAT_COOL",
+      "32": "FLAG_MODE_ECO"
+    }
+  },
+  "android.service.euicc.EuiccProfileInfo.PolicyRule": {
+    "flag": true,
+    "values": {
+      "1": "POLICY_RULE_DO_NOT_DISABLE",
+      "2": "POLICY_RULE_DO_NOT_DELETE",
+      "4": "POLICY_RULE_DELETE_AFTER_DISABLING"
+    }
+  },
+  "android.service.euicc.EuiccProfileInfo.ProfileClass": {
+    "flag": false,
+    "values": {
+      "0": "PROFILE_CLASS_TESTING",
+      "1": "PROFILE_CLASS_PROVISIONING",
+      "2": "PROFILE_CLASS_OPERATIONAL",
+      "-1": "PROFILE_CLASS_UNSET"
+    }
+  },
+  "android.service.euicc.EuiccProfileInfo.ProfileState": {
+    "flag": false,
+    "values": {
+      "0": "PROFILE_STATE_DISABLED",
+      "1": "PROFILE_STATE_ENABLED",
+      "-1": "PROFILE_STATE_UNSET"
+    }
+  },
+  "android.service.euicc.EuiccService.ResolvableError": {
+    "flag": true,
+    "values": {
+      "1": "RESOLVABLE_ERROR_CONFIRMATION_CODE",
+      "2": "RESOLVABLE_ERROR_POLICY_RULES"
+    }
+  },
+  "android.service.euicc.EuiccService.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_OK",
+      "-1": "RESULT_MUST_DEACTIVATE_SIM",
+      "-2": "RESULT_NEED_CONFIRMATION_CODE",
+      "1": "RESULT_FIRST_USER"
+    }
+  },
+  "android.service.media.MediaBrowserService.ResultFlags": {
+    "flag": true,
+    "values": {
+      "1": "RESULT_FLAG_OPTION_NOT_HANDLED",
+      "2": "RESULT_FLAG_ON_LOAD_ITEM_NOT_IMPLEMENTED"
+    }
+  },
+  "android.service.notification.Condition.State": {
+    "flag": false,
+    "values": {
+      "0": "STATE_FALSE",
+      "1": "STATE_TRUE",
+      "2": "STATE_UNKNOWN",
+      "3": "STATE_ERROR"
+    }
+  },
+  "android.service.notification.NotificationAssistantService.Source": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_FROM_APP",
+      "1": "SOURCE_FROM_ASSISTANT"
+    }
+  },
+  "android.service.notification.NotificationListenerService.ChannelOrGroupModificationTypes": {
+    "flag": false,
+    "values": {
+      "1": "NOTIFICATION_CHANNEL_OR_GROUP_ADDED",
+      "2": "NOTIFICATION_CHANNEL_OR_GROUP_UPDATED",
+      "3": "NOTIFICATION_CHANNEL_OR_GROUP_DELETED"
+    }
+  },
+  "android.service.notification.NotificationListenerService.NotificationCancelReason": {
+    "flag": false,
+    "values": {
+      "1": "REASON_CLICK",
+      "2": "REASON_CANCEL",
+      "3": "REASON_CANCEL_ALL",
+      "4": "REASON_ERROR",
+      "5": "REASON_PACKAGE_CHANGED",
+      "6": "REASON_USER_STOPPED",
+      "7": "REASON_PACKAGE_BANNED",
+      "8": "REASON_APP_CANCEL",
+      "9": "REASON_APP_CANCEL_ALL",
+      "10": "REASON_LISTENER_CANCEL",
+      "11": "REASON_LISTENER_CANCEL_ALL",
+      "12": "REASON_GROUP_SUMMARY_CANCELED",
+      "13": "REASON_GROUP_OPTIMIZATION",
+      "14": "REASON_PACKAGE_SUSPENDED",
+      "15": "REASON_PROFILE_TURNED_OFF",
+      "16": "REASON_UNAUTOBUNDLED",
+      "17": "REASON_CHANNEL_BANNED",
+      "18": "REASON_SNOOZED",
+      "19": "REASON_TIMEOUT"
+    }
+  },
+  "android.service.notification.NotificationListenerService.Ranking.RankingAdjustment": {
+    "flag": false,
+    "values": {
+      "1": "RANKING_PROMOTED",
+      "-1": "RANKING_DEMOTED",
+      "0": "RANKING_UNCHANGED"
+    }
+  },
+  "android.service.notification.NotificationListenerService.Ranking.UserSentiment": {
+    "flag": false,
+    "values": {
+      "-1": "USER_SENTIMENT_NEGATIVE",
+      "0": "USER_SENTIMENT_NEUTRAL",
+      "1": "USER_SENTIMENT_POSITIVE"
+    }
+  },
+  "android.service.notification.NotificationStats.DismissalSentiment": {
+    "flag": false,
+    "values": {
+      "-1000": "DISMISS_SENTIMENT_UNKNOWN",
+      "0": "DISMISS_SENTIMENT_NEGATIVE",
+      "1": "DISMISS_SENTIMENT_NEUTRAL",
+      "2": "DISMISS_SENTIMENT_POSITIVE"
+    }
+  },
+  "android.service.notification.NotificationStats.DismissalSurface": {
+    "flag": false,
+    "values": {
+      "-1": "DISMISSAL_NOT_DISMISSED",
+      "0": "DISMISSAL_OTHER",
+      "1": "DISMISSAL_PEEK",
+      "2": "DISMISSAL_AOD",
+      "3": "DISMISSAL_SHADE"
+    }
+  },
+  "android.service.notification.ZenPolicy.ConversationSenders": {
+    "flag": false,
+    "values": {
+      "0": "CONVERSATION_SENDERS_UNSET",
+      "1": "CONVERSATION_SENDERS_ANYONE",
+      "2": "CONVERSATION_SENDERS_IMPORTANT",
+      "3": "CONVERSATION_SENDERS_NONE"
+    }
+  },
+  "android.service.notification.ZenPolicy.PeopleType": {
+    "flag": false,
+    "values": {
+      "0": "PEOPLE_TYPE_UNSET",
+      "1": "PEOPLE_TYPE_ANYONE",
+      "2": "PEOPLE_TYPE_CONTACTS",
+      "3": "PEOPLE_TYPE_STARRED",
+      "4": "PEOPLE_TYPE_NONE"
+    }
+  },
+  "android.service.notification.ZenPolicy.PriorityCategory": {
+    "flag": false,
+    "values": {
+      "0": "PRIORITY_CATEGORY_REMINDERS",
+      "1": "PRIORITY_CATEGORY_EVENTS",
+      "2": "PRIORITY_CATEGORY_MESSAGES",
+      "3": "PRIORITY_CATEGORY_CALLS",
+      "4": "PRIORITY_CATEGORY_REPEAT_CALLERS",
+      "5": "PRIORITY_CATEGORY_ALARMS",
+      "6": "PRIORITY_CATEGORY_MEDIA",
+      "7": "PRIORITY_CATEGORY_SYSTEM",
+      "8": "PRIORITY_CATEGORY_CONVERSATIONS"
+    }
+  },
+  "android.service.notification.ZenPolicy.State": {
+    "flag": false,
+    "values": {
+      "0": "STATE_UNSET",
+      "1": "STATE_ALLOW",
+      "2": "STATE_DISALLOW"
+    }
+  },
+  "android.service.notification.ZenPolicy.VisualEffect": {
+    "flag": false,
+    "values": {
+      "0": "VISUAL_EFFECT_FULL_SCREEN_INTENT",
+      "1": "VISUAL_EFFECT_LIGHTS",
+      "2": "VISUAL_EFFECT_PEEK",
+      "3": "VISUAL_EFFECT_STATUS_BAR",
+      "4": "VISUAL_EFFECT_BADGE",
+      "5": "VISUAL_EFFECT_AMBIENT",
+      "6": "VISUAL_EFFECT_NOTIFICATION_LIST"
+    }
+  },
+  "android.service.persistentdata.PersistentDataBlockManager.FlashLockState": {
+    "flag": false,
+    "values": {
+      "-1": "FLASH_LOCK_UNKNOWN",
+      "1": "FLASH_LOCK_LOCKED",
+      "0": "FLASH_LOCK_UNLOCKED"
+    }
+  },
+  "android.service.quickaccesswallet.WalletServiceEvent.EventType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_NFC_PAYMENT_STARTED",
+      "2": "TYPE_WALLET_CARDS_UPDATED"
+    }
+  },
+  "android.service.settings.suggestions.Suggestion.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_HAS_BUTTON",
+      "2": "FLAG_ICON_TINTABLE"
+    }
+  },
+  "android.service.storage.ExternalStorageService.SessionFlag": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_SESSION_TYPE_FUSE",
+      "2": "FLAG_SESSION_ATTRIBUTE_INDEXABLE"
+    }
+  },
+  "android.service.textclassifier.TextClassifierService.ConnectionState": {
+    "flag": false,
+    "values": {
+      "0": "CONNECTED",
+      "1": "DISCONNECTED"
+    }
+  },
+  "android.service.trust.TrustAgentService.GrantTrustFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_GRANT_TRUST_INITIATED_BY_USER",
+      "2": "FLAG_GRANT_TRUST_DISMISS_KEYGUARD"
+    }
+  },
+  "android.service.trust.TrustAgentService.TokenState": {
+    "flag": true,
+    "values": {
+      "1": "TOKEN_STATE_ACTIVE",
+      "0": "TOKEN_STATE_INACTIVE"
+    }
+  },
+  "android.service.voice.AlwaysOnHotwordDetector.AudioCapabilities": {
+    "flag": true,
+    "values": {
+      "1": "AUDIO_CAPABILITY_ECHO_CANCELLATION",
+      "2": "AUDIO_CAPABILITY_NOISE_SUPPRESSION"
+    }
+  },
+  "android.service.voice.AlwaysOnHotwordDetector.ModelParams": {
+    "flag": true,
+    "values": {
+      "0": "MODEL_PARAM_THRESHOLD_FACTOR"
+    }
+  },
+  "android.service.voice.AlwaysOnHotwordDetector.RecognitionFlags": {
+    "flag": true,
+    "values": {
+      "0": "RECOGNITION_FLAG_NONE",
+      "1": "RECOGNITION_FLAG_CAPTURE_TRIGGER_AUDIO",
+      "2": "RECOGNITION_FLAG_ALLOW_MULTIPLE_TRIGGERS",
+      "4": "RECOGNITION_FLAG_ENABLE_AUDIO_ECHO_CANCELLATION",
+      "8": "RECOGNITION_FLAG_ENABLE_AUDIO_NOISE_SUPPRESSION"
+    }
+  },
+  "android.service.voice.AlwaysOnHotwordDetector.RecognitionModes": {
+    "flag": true,
+    "values": {
+      "1": "RECOGNITION_MODE_VOICE_TRIGGER",
+      "2": "RECOGNITION_MODE_USER_IDENTIFICATION"
+    }
+  },
+  "android.speech.tts.SynthesisCallback.SupportedAudioFormat": {
+    "flag": false,
+    "values": {
+      "3": "ENCODING_PCM_8BIT",
+      "2": "ENCODING_PCM_16BIT",
+      "4": "ENCODING_PCM_FLOAT"
+    }
+  },
+  "android.speech.tts.TextToSpeech.Error": {
+    "flag": false,
+    "values": {
+      "-3": "ERROR_SYNTHESIS",
+      "-4": "ERROR_SERVICE",
+      "-5": "ERROR_OUTPUT",
+      "-6": "ERROR_NETWORK",
+      "-7": "ERROR_NETWORK_TIMEOUT",
+      "-8": "ERROR_INVALID_REQUEST",
+      "-9": "ERROR_NOT_INSTALLED_YET"
+    }
+  },
+  "android.telecom.Call.Callback.HandoverFailureErrors": {
+    "flag": false,
+    "values": {
+      "1": "HANDOVER_FAILURE_DEST_APP_REJECTED",
+      "2": "HANDOVER_FAILURE_NOT_SUPPORTED",
+      "3": "HANDOVER_FAILURE_USER_REJECTED",
+      "4": "HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL",
+      "5": "HANDOVER_FAILURE_UNKNOWN"
+    }
+  },
+  "android.telecom.Call.Details.CallDirection": {
+    "flag": false,
+    "values": {
+      "-1": "DIRECTION_UNKNOWN",
+      "0": "DIRECTION_INCOMING",
+      "1": "DIRECTION_OUTGOING"
+    }
+  },
+  "android.telecom.Call.RejectReason": {
+    "flag": false,
+    "values": {
+      "1": "REJECT_REASON_DECLINED",
+      "2": "REJECT_REASON_UNWANTED"
+    }
+  },
+  "android.telecom.Call.RttCall.RttAudioMode": {
+    "flag": false,
+    "values": {
+      "0": "RTT_MODE_INVALID",
+      "1": "RTT_MODE_FULL",
+      "2": "RTT_MODE_HCO",
+      "3": "RTT_MODE_VCO"
+    }
+  },
+  "android.telecom.CallAudioState.CallAudioRoute": {
+    "flag": true,
+    "values": {
+      "1": "ROUTE_EARPIECE",
+      "2": "ROUTE_BLUETOOTH",
+      "4": "ROUTE_WIRED_HEADSET",
+      "8": "ROUTE_SPEAKER"
+    }
+  },
+  "android.telecom.Connection.AudioCodec": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_CODEC_NONE",
+      "1": "AUDIO_CODEC_AMR",
+      "2": "AUDIO_CODEC_AMR_WB",
+      "3": "AUDIO_CODEC_QCELP13K",
+      "4": "AUDIO_CODEC_EVRC",
+      "5": "AUDIO_CODEC_EVRC_B",
+      "6": "AUDIO_CODEC_EVRC_WB",
+      "7": "AUDIO_CODEC_EVRC_NW",
+      "8": "AUDIO_CODEC_GSM_EFR",
+      "9": "AUDIO_CODEC_GSM_FR",
+      "10": "AUDIO_CODEC_GSM_HR",
+      "11": "AUDIO_CODEC_G711U",
+      "12": "AUDIO_CODEC_G723",
+      "13": "AUDIO_CODEC_G711A",
+      "14": "AUDIO_CODEC_G722",
+      "15": "AUDIO_CODEC_G711AB",
+      "16": "AUDIO_CODEC_G729",
+      "17": "AUDIO_CODEC_EVS_NB",
+      "19": "AUDIO_CODEC_EVS_SWB",
+      "20": "AUDIO_CODEC_EVS_FB"
+    }
+  },
+  "android.telecom.Connection.VerificationStatus": {
+    "flag": false,
+    "values": {
+      "0": "VERIFICATION_STATUS_NOT_VERIFIED",
+      "1": "VERIFICATION_STATUS_PASSED",
+      "2": "VERIFICATION_STATUS_FAILED"
+    }
+  },
+  "android.telecom.PhoneAccountSuggestion.SuggestionReason": {
+    "flag": false,
+    "values": {
+      "0": "REASON_NONE",
+      "1": "REASON_INTRA_CARRIER",
+      "2": "REASON_FREQUENT",
+      "3": "REASON_USER_SET",
+      "4": "REASON_OTHER"
+    }
+  },
+  "android.telecom.TelecomManager.Presentation": {
+    "flag": false,
+    "values": {
+      "1": "PRESENTATION_ALLOWED",
+      "2": "PRESENTATION_RESTRICTED",
+      "3": "PRESENTATION_UNKNOWN",
+      "4": "PRESENTATION_PAYPHONE"
+    }
+  },
+  "android.telecom.TelecomManager.TtyMode": {
+    "flag": false,
+    "values": {
+      "0": "TTY_MODE_OFF",
+      "1": "TTY_MODE_FULL",
+      "2": "TTY_MODE_HCO",
+      "3": "TTY_MODE_VCO"
+    }
+  },
+  "android.telecom.VideoProfile.VideoQuality": {
+    "flag": false,
+    "values": {
+      "0": "QUALITY_UNKNOWN",
+      "1": "QUALITY_HIGH",
+      "2": "QUALITY_MEDIUM",
+      "3": "QUALITY_LOW",
+      "4": "QUALITY_DEFAULT"
+    }
+  },
+  "android.telecom.VideoProfile.VideoState": {
+    "flag": true,
+    "values": {
+      "0": "STATE_AUDIO_ONLY",
+      "1": "STATE_TX_ENABLED",
+      "2": "STATE_RX_ENABLED",
+      "3": "STATE_BIDIRECTIONAL",
+      "4": "STATE_PAUSED"
+    }
+  },
+  "android.telephony.AccessNetworkConstants.NgranBands.FrequencyRangeGroup": {
+    "flag": false,
+    "values": {
+      "0": "FREQUENCY_RANGE_GROUP_UNKNOWN",
+      "1": "FREQUENCY_RANGE_GROUP_1",
+      "2": "FREQUENCY_RANGE_GROUP_2"
+    }
+  },
+  "android.telephony.AccessNetworkConstants.NgranBands.NgranBand": {
+    "flag": false,
+    "values": {
+      "1": "BAND_1",
+      "2": "BAND_2",
+      "3": "BAND_3",
+      "5": "BAND_5",
+      "7": "BAND_7",
+      "8": "BAND_8",
+      "12": "BAND_12",
+      "14": "BAND_14",
+      "18": "BAND_18",
+      "20": "BAND_20",
+      "25": "BAND_25",
+      "28": "BAND_28",
+      "29": "BAND_29",
+      "30": "BAND_30",
+      "34": "BAND_34",
+      "38": "BAND_38",
+      "39": "BAND_39",
+      "40": "BAND_40",
+      "41": "BAND_41",
+      "48": "BAND_48",
+      "50": "BAND_50",
+      "51": "BAND_51",
+      "65": "BAND_65",
+      "66": "BAND_66",
+      "70": "BAND_70",
+      "71": "BAND_71",
+      "74": "BAND_74",
+      "75": "BAND_75",
+      "76": "BAND_76",
+      "77": "BAND_77",
+      "78": "BAND_78",
+      "79": "BAND_79",
+      "80": "BAND_80",
+      "81": "BAND_81",
+      "82": "BAND_82",
+      "83": "BAND_83",
+      "84": "BAND_84",
+      "86": "BAND_86",
+      "89": "BAND_89",
+      "90": "BAND_90",
+      "91": "BAND_91",
+      "92": "BAND_92",
+      "93": "BAND_93",
+      "94": "BAND_94",
+      "95": "BAND_95",
+      "257": "BAND_257",
+      "258": "BAND_258",
+      "260": "BAND_260",
+      "261": "BAND_261"
+    }
+  },
+  "android.telephony.AccessNetworkConstants.RadioAccessNetworkType": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN",
+      "1": "GERAN",
+      "2": "UTRAN",
+      "3": "EUTRAN",
+      "4": "CDMA2000",
+      "5": "IWLAN",
+      "6": "NGRAN"
+    }
+  },
+  "android.telephony.AccessNetworkConstants.TransportType": {
+    "flag": false,
+    "values": {
+      "-1": "TRANSPORT_TYPE_INVALID",
+      "1": "TRANSPORT_TYPE_WWAN",
+      "2": "TRANSPORT_TYPE_WLAN"
+    }
+  },
+  "android.telephony.Annotation.ApnType": {
+    "flag": true,
+    "values": {
+      "17": "TYPE_DEFAULT",
+      "2": "TYPE_MMS",
+      "4": "TYPE_SUPL",
+      "8": "TYPE_DUN",
+      "16": "TYPE_HIPRI",
+      "32": "TYPE_FOTA",
+      "64": "TYPE_IMS",
+      "128": "TYPE_CBS",
+      "256": "TYPE_IA",
+      "512": "TYPE_EMERGENCY",
+      "1024": "TYPE_MCX",
+      "2048": "TYPE_XCAP"
+    }
+  },
+  "android.telephony.Annotation.CallState": {
+    "flag": false,
+    "values": {
+      "0": "CALL_STATE_IDLE",
+      "1": "CALL_STATE_RINGING",
+      "2": "CALL_STATE_OFFHOOK"
+    }
+  },
+  "android.telephony.Annotation.CarrierPrivilegeStatus": {
+    "flag": false,
+    "values": {
+      "1": "CARRIER_PRIVILEGE_STATUS_HAS_ACCESS",
+      "0": "CARRIER_PRIVILEGE_STATUS_NO_ACCESS",
+      "-1": "CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED",
+      "-2": "CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES"
+    }
+  },
+  "android.telephony.Annotation.DataActivityType": {
+    "flag": false,
+    "values": {
+      "0": "DATA_ACTIVITY_NONE",
+      "1": "DATA_ACTIVITY_IN",
+      "2": "DATA_ACTIVITY_OUT",
+      "3": "DATA_ACTIVITY_INOUT",
+      "4": "DATA_ACTIVITY_DORMANT"
+    }
+  },
+  "android.telephony.Annotation.DataFailureCause": {
+    "flag": false,
+    "values": {
+      "0": "NONE",
+      "8": "OPERATOR_BARRED",
+      "14": "NAS_SIGNALLING",
+      "25": "LLC_SNDCP",
+      "26": "INSUFFICIENT_RESOURCES",
+      "27": "MISSING_UNKNOWN_APN",
+      "28": "UNKNOWN_PDP_ADDRESS_TYPE",
+      "29": "USER_AUTHENTICATION",
+      "30": "ACTIVATION_REJECT_GGSN",
+      "31": "ACTIVATION_REJECT_UNSPECIFIED",
+      "32": "SERVICE_OPTION_NOT_SUPPORTED",
+      "33": "SERVICE_OPTION_NOT_SUBSCRIBED",
+      "34": "SERVICE_OPTION_OUT_OF_ORDER",
+      "35": "NSAPI_IN_USE",
+      "36": "REGULAR_DEACTIVATION",
+      "37": "QOS_NOT_ACCEPTED",
+      "38": "NETWORK_FAILURE",
+      "39": "UMTS_REACTIVATION_REQ",
+      "40": "FEATURE_NOT_SUPP",
+      "41": "TFT_SEMANTIC_ERROR",
+      "42": "TFT_SYTAX_ERROR",
+      "43": "UNKNOWN_PDP_CONTEXT",
+      "44": "FILTER_SEMANTIC_ERROR",
+      "45": "FILTER_SYTAX_ERROR",
+      "46": "PDP_WITHOUT_ACTIVE_TFT",
+      "48": "ACTIVATION_REJECTED_BCM_VIOLATION",
+      "50": "ONLY_IPV4_ALLOWED",
+      "51": "ONLY_IPV6_ALLOWED",
+      "52": "ONLY_SINGLE_BEARER_ALLOWED",
+      "53": "ESM_INFO_NOT_RECEIVED",
+      "54": "PDN_CONN_DOES_NOT_EXIST",
+      "55": "MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED",
+      "56": "COLLISION_WITH_NETWORK_INITIATED_REQUEST",
+      "57": "ONLY_IPV4V6_ALLOWED",
+      "58": "ONLY_NON_IP_ALLOWED",
+      "59": "UNSUPPORTED_QCI_VALUE",
+      "60": "BEARER_HANDLING_NOT_SUPPORTED",
+      "65": "ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED",
+      "66": "UNSUPPORTED_APN_IN_CURRENT_PLMN",
+      "81": "INVALID_TRANSACTION_ID",
+      "95": "MESSAGE_INCORRECT_SEMANTIC",
+      "96": "INVALID_MANDATORY_INFO",
+      "97": "MESSAGE_TYPE_UNSUPPORTED",
+      "98": "MSG_TYPE_NONCOMPATIBLE_STATE",
+      "99": "UNKNOWN_INFO_ELEMENT",
+      "100": "CONDITIONAL_IE_ERROR",
+      "101": "MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE",
+      "111": "PROTOCOL_ERRORS",
+      "112": "APN_TYPE_CONFLICT",
+      "113": "INVALID_PCSCF_ADDR",
+      "114": "INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN",
+      "115": "EMM_ACCESS_BARRED",
+      "116": "EMERGENCY_IFACE_ONLY",
+      "117": "IFACE_MISMATCH",
+      "118": "COMPANION_IFACE_IN_USE",
+      "119": "IP_ADDRESS_MISMATCH",
+      "120": "IFACE_AND_POL_FAMILY_MISMATCH",
+      "121": "EMM_ACCESS_BARRED_INFINITE_RETRY",
+      "122": "AUTH_FAILURE_ON_EMERGENCY_CALL",
+      "123": "INVALID_DNS_ADDR",
+      "124": "INVALID_PCSCF_OR_DNS_ADDRESS",
+      "127": "CALL_PREEMPT_BY_EMERGENCY_APN",
+      "128": "UE_INITIATED_DETACH_OR_DISCONNECT",
+      "2000": "MIP_FA_REASON_UNSPECIFIED",
+      "2001": "MIP_FA_ADMIN_PROHIBITED",
+      "2002": "MIP_FA_INSUFFICIENT_RESOURCES",
+      "2003": "MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE",
+      "2004": "MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE",
+      "2005": "MIP_FA_REQUESTED_LIFETIME_TOO_LONG",
+      "2006": "MIP_FA_MALFORMED_REQUEST",
+      "2007": "MIP_FA_MALFORMED_REPLY",
+      "2008": "MIP_FA_ENCAPSULATION_UNAVAILABLE",
+      "2009": "MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE",
+      "2010": "MIP_FA_REVERSE_TUNNEL_UNAVAILABLE",
+      "2011": "MIP_FA_REVERSE_TUNNEL_IS_MANDATORY",
+      "2012": "MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED",
+      "2013": "MIP_FA_MISSING_NAI",
+      "2014": "MIP_FA_MISSING_HOME_AGENT",
+      "2015": "MIP_FA_MISSING_HOME_ADDRESS",
+      "2016": "MIP_FA_UNKNOWN_CHALLENGE",
+      "2017": "MIP_FA_MISSING_CHALLENGE",
+      "2018": "MIP_FA_STALE_CHALLENGE",
+      "2019": "MIP_HA_REASON_UNSPECIFIED",
+      "2020": "MIP_HA_ADMIN_PROHIBITED",
+      "2021": "MIP_HA_INSUFFICIENT_RESOURCES",
+      "2022": "MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE",
+      "2023": "MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE",
+      "2024": "MIP_HA_REGISTRATION_ID_MISMATCH",
+      "2025": "MIP_HA_MALFORMED_REQUEST",
+      "2026": "MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS",
+      "2027": "MIP_HA_REVERSE_TUNNEL_UNAVAILABLE",
+      "2028": "MIP_HA_REVERSE_TUNNEL_IS_MANDATORY",
+      "2029": "MIP_HA_ENCAPSULATION_UNAVAILABLE",
+      "2030": "CLOSE_IN_PROGRESS",
+      "2031": "NETWORK_INITIATED_TERMINATION",
+      "2032": "MODEM_APP_PREEMPTED",
+      "2033": "PDN_IPV4_CALL_DISALLOWED",
+      "2034": "PDN_IPV4_CALL_THROTTLED",
+      "2035": "PDN_IPV6_CALL_DISALLOWED",
+      "2036": "PDN_IPV6_CALL_THROTTLED",
+      "2037": "MODEM_RESTART",
+      "2038": "PDP_PPP_NOT_SUPPORTED",
+      "2039": "UNPREFERRED_RAT",
+      "2040": "PHYSICAL_LINK_CLOSE_IN_PROGRESS",
+      "2041": "APN_PENDING_HANDOVER",
+      "2042": "PROFILE_BEARER_INCOMPATIBLE",
+      "2043": "SIM_CARD_CHANGED",
+      "2044": "LOW_POWER_MODE_OR_POWERING_DOWN",
+      "2045": "APN_DISABLED",
+      "2046": "MAX_PPP_INACTIVITY_TIMER_EXPIRED",
+      "2047": "IPV6_ADDRESS_TRANSFER_FAILED",
+      "2048": "TRAT_SWAP_FAILED",
+      "2049": "EHRPD_TO_HRPD_FALLBACK",
+      "2050": "MIP_CONFIG_FAILURE",
+      "2051": "PDN_INACTIVITY_TIMER_EXPIRED",
+      "2052": "MAX_IPV4_CONNECTIONS",
+      "2053": "MAX_IPV6_CONNECTIONS",
+      "2054": "APN_MISMATCH",
+      "2055": "IP_VERSION_MISMATCH",
+      "2056": "DUN_CALL_DISALLOWED",
+      "2057": "INTERNAL_EPC_NONEPC_TRANSITION",
+      "2058": "INTERFACE_IN_USE",
+      "2059": "APN_DISALLOWED_ON_ROAMING",
+      "2060": "APN_PARAMETERS_CHANGED",
+      "2061": "NULL_APN_DISALLOWED",
+      "2062": "THERMAL_MITIGATION",
+      "2063": "DATA_SETTINGS_DISABLED",
+      "2064": "DATA_ROAMING_SETTINGS_DISABLED",
+      "2065": "DDS_SWITCHED",
+      "2066": "FORBIDDEN_APN_NAME",
+      "2067": "DDS_SWITCH_IN_PROGRESS",
+      "2068": "CALL_DISALLOWED_IN_ROAMING",
+      "2069": "NON_IP_NOT_SUPPORTED",
+      "2070": "PDN_NON_IP_CALL_THROTTLED",
+      "2071": "PDN_NON_IP_CALL_DISALLOWED",
+      "2072": "CDMA_LOCK",
+      "2073": "CDMA_INTERCEPT",
+      "2074": "CDMA_REORDER",
+      "2075": "CDMA_RELEASE_DUE_TO_SO_REJECTION",
+      "2076": "CDMA_INCOMING_CALL",
+      "2077": "CDMA_ALERT_STOP",
+      "2078": "CHANNEL_ACQUISITION_FAILURE",
+      "2079": "MAX_ACCESS_PROBE",
+      "2080": "CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION",
+      "2081": "NO_RESPONSE_FROM_BASE_STATION",
+      "2082": "REJECTED_BY_BASE_STATION",
+      "2083": "CONCURRENT_SERVICES_INCOMPATIBLE",
+      "2084": "NO_CDMA_SERVICE",
+      "2085": "RUIM_NOT_PRESENT",
+      "2086": "CDMA_RETRY_ORDER",
+      "2087": "ACCESS_BLOCK",
+      "2088": "ACCESS_BLOCK_ALL",
+      "2089": "IS707B_MAX_ACCESS_PROBES",
+      "2090": "THERMAL_EMERGENCY",
+      "2091": "CONCURRENT_SERVICES_NOT_ALLOWED",
+      "2092": "INCOMING_CALL_REJECTED",
+      "2093": "NO_SERVICE_ON_GATEWAY",
+      "2094": "NO_GPRS_CONTEXT",
+      "2095": "ILLEGAL_MS",
+      "2096": "ILLEGAL_ME",
+      "2097": "GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED",
+      "2098": "GPRS_SERVICES_NOT_ALLOWED",
+      "2099": "MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK",
+      "2100": "IMPLICITLY_DETACHED",
+      "2101": "PLMN_NOT_ALLOWED",
+      "2102": "LOCATION_AREA_NOT_ALLOWED",
+      "2103": "GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN",
+      "2104": "PDP_DUPLICATE",
+      "2105": "UE_RAT_CHANGE",
+      "2106": "CONGESTION",
+      "2107": "NO_PDP_CONTEXT_ACTIVATED",
+      "2108": "ACCESS_CLASS_DSAC_REJECTION",
+      "2109": "PDP_ACTIVATE_MAX_RETRY_FAILED",
+      "2110": "RADIO_ACCESS_BEARER_FAILURE",
+      "2111": "ESM_UNKNOWN_EPS_BEARER_CONTEXT",
+      "2112": "DRB_RELEASED_BY_RRC",
+      "2113": "CONNECTION_RELEASED",
+      "2114": "EMM_DETACHED",
+      "2115": "EMM_ATTACH_FAILED",
+      "2116": "EMM_ATTACH_STARTED",
+      "2117": "LTE_NAS_SERVICE_REQUEST_FAILED",
+      "2118": "DUPLICATE_BEARER_ID",
+      "2119": "ESM_COLLISION_SCENARIOS",
+      "2120": "ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK",
+      "2121": "ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER",
+      "2122": "ESM_BAD_OTA_MESSAGE",
+      "2123": "ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL",
+      "2124": "ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT",
+      "2125": "DS_EXPLICIT_DEACTIVATION",
+      "2126": "ESM_LOCAL_CAUSE_NONE",
+      "2127": "LTE_THROTTLING_NOT_REQUIRED",
+      "2128": "ACCESS_CONTROL_LIST_CHECK_FAILURE",
+      "2129": "SERVICE_NOT_ALLOWED_ON_PLMN",
+      "2130": "EMM_T3417_EXPIRED",
+      "2131": "EMM_T3417_EXT_EXPIRED",
+      "2132": "RRC_UPLINK_DATA_TRANSMISSION_FAILURE",
+      "2133": "RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER",
+      "2134": "RRC_UPLINK_CONNECTION_RELEASE",
+      "2135": "RRC_UPLINK_RADIO_LINK_FAILURE",
+      "2136": "RRC_UPLINK_ERROR_REQUEST_FROM_NAS",
+      "2137": "RRC_CONNECTION_ACCESS_STRATUM_FAILURE",
+      "2138": "RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS",
+      "2139": "RRC_CONNECTION_ACCESS_BARRED",
+      "2140": "RRC_CONNECTION_CELL_RESELECTION",
+      "2141": "RRC_CONNECTION_CONFIG_FAILURE",
+      "2142": "RRC_CONNECTION_TIMER_EXPIRED",
+      "2143": "RRC_CONNECTION_LINK_FAILURE",
+      "2144": "RRC_CONNECTION_CELL_NOT_CAMPED",
+      "2145": "RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE",
+      "2146": "RRC_CONNECTION_REJECT_BY_NETWORK",
+      "2147": "RRC_CONNECTION_NORMAL_RELEASE",
+      "2148": "RRC_CONNECTION_RADIO_LINK_FAILURE",
+      "2149": "RRC_CONNECTION_REESTABLISHMENT_FAILURE",
+      "2150": "RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER",
+      "2151": "RRC_CONNECTION_ABORT_REQUEST",
+      "2152": "RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR",
+      "2153": "NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH",
+      "2154": "NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH",
+      "2155": "ESM_PROCEDURE_TIME_OUT",
+      "2156": "INVALID_CONNECTION_ID",
+      "2157": "MAXIMIUM_NSAPIS_EXCEEDED",
+      "2158": "INVALID_PRIMARY_NSAPI",
+      "2159": "CANNOT_ENCODE_OTA_MESSAGE",
+      "2160": "RADIO_ACCESS_BEARER_SETUP_FAILURE",
+      "2161": "PDP_ESTABLISH_TIMEOUT_EXPIRED",
+      "2162": "PDP_MODIFY_TIMEOUT_EXPIRED",
+      "2163": "PDP_INACTIVE_TIMEOUT_EXPIRED",
+      "2164": "PDP_LOWERLAYER_ERROR",
+      "2165": "PDP_MODIFY_COLLISION",
+      "2166": "MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED",
+      "2167": "NAS_REQUEST_REJECTED_BY_NETWORK",
+      "2168": "RRC_CONNECTION_INVALID_REQUEST",
+      "2169": "RRC_CONNECTION_TRACKING_AREA_ID_CHANGED",
+      "2170": "RRC_CONNECTION_RF_UNAVAILABLE",
+      "2171": "RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE",
+      "2172": "RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE",
+      "2173": "RRC_CONNECTION_ABORTED_AFTER_HANDOVER",
+      "2174": "RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE",
+      "2175": "RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE",
+      "2176": "IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER",
+      "2177": "IMEI_NOT_ACCEPTED",
+      "2178": "EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED",
+      "2179": "EPS_SERVICES_NOT_ALLOWED_IN_PLMN",
+      "2180": "MSC_TEMPORARILY_NOT_REACHABLE",
+      "2181": "CS_DOMAIN_NOT_AVAILABLE",
+      "2182": "ESM_FAILURE",
+      "2183": "MAC_FAILURE",
+      "2184": "SYNCHRONIZATION_FAILURE",
+      "2185": "UE_SECURITY_CAPABILITIES_MISMATCH",
+      "2186": "SECURITY_MODE_REJECTED",
+      "2187": "UNACCEPTABLE_NON_EPS_AUTHENTICATION",
+      "2188": "CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED",
+      "2189": "NO_EPS_BEARER_CONTEXT_ACTIVATED",
+      "2190": "INVALID_EMM_STATE",
+      "2191": "NAS_LAYER_FAILURE",
+      "2192": "MULTIPLE_PDP_CALL_NOT_ALLOWED",
+      "2193": "EMBMS_NOT_ENABLED",
+      "2194": "IRAT_HANDOVER_FAILED",
+      "2195": "EMBMS_REGULAR_DEACTIVATION",
+      "2196": "TEST_LOOPBACK_REGULAR_DEACTIVATION",
+      "2197": "LOWER_LAYER_REGISTRATION_FAILURE",
+      "2198": "DATA_PLAN_EXPIRED",
+      "2199": "UMTS_HANDOVER_TO_IWLAN",
+      "2200": "EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY",
+      "2201": "EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE",
+      "2202": "EVDO_HDR_CHANGED",
+      "2203": "EVDO_HDR_EXITED",
+      "2204": "EVDO_HDR_NO_SESSION",
+      "2205": "EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL",
+      "2206": "EVDO_HDR_CONNECTION_SETUP_TIMEOUT",
+      "2207": "FAILED_TO_ACQUIRE_COLOCATED_HDR",
+      "2208": "OTASP_COMMIT_IN_PROGRESS",
+      "2209": "NO_HYBRID_HDR_SERVICE",
+      "2210": "HDR_NO_LOCK_GRANTED",
+      "2211": "DBM_OR_SMS_IN_PROGRESS",
+      "2212": "HDR_FADE",
+      "2213": "HDR_ACCESS_FAILURE",
+      "2214": "UNSUPPORTED_1X_PREV",
+      "2215": "LOCAL_END",
+      "2216": "NO_SERVICE",
+      "2217": "FADE",
+      "2218": "NORMAL_RELEASE",
+      "2219": "ACCESS_ATTEMPT_ALREADY_IN_PROGRESS",
+      "2220": "REDIRECTION_OR_HANDOFF_IN_PROGRESS",
+      "2221": "EMERGENCY_MODE",
+      "2222": "PHONE_IN_USE",
+      "2223": "INVALID_MODE",
+      "2224": "INVALID_SIM_STATE",
+      "2225": "NO_COLLOCATED_HDR",
+      "2226": "UE_IS_ENTERING_POWERSAVE_MODE",
+      "2227": "DUAL_SWITCH",
+      "2228": "PPP_TIMEOUT",
+      "2229": "PPP_AUTH_FAILURE",
+      "2230": "PPP_OPTION_MISMATCH",
+      "2231": "PPP_PAP_FAILURE",
+      "2232": "PPP_CHAP_FAILURE",
+      "2233": "PPP_CLOSE_IN_PROGRESS",
+      "2234": "LIMITED_TO_IPV4",
+      "2235": "LIMITED_TO_IPV6",
+      "2236": "VSNCP_TIMEOUT",
+      "2237": "VSNCP_GEN_ERROR",
+      "2238": "VSNCP_APN_UNAUTHORIZED",
+      "2239": "VSNCP_PDN_LIMIT_EXCEEDED",
+      "2240": "VSNCP_NO_PDN_GATEWAY_ADDRESS",
+      "2241": "VSNCP_PDN_GATEWAY_UNREACHABLE",
+      "2242": "VSNCP_PDN_GATEWAY_REJECT",
+      "2243": "VSNCP_INSUFFICIENT_PARAMETERS",
+      "2244": "VSNCP_RESOURCE_UNAVAILABLE",
+      "2245": "VSNCP_ADMINISTRATIVELY_PROHIBITED",
+      "2246": "VSNCP_PDN_ID_IN_USE",
+      "2247": "VSNCP_SUBSCRIBER_LIMITATION",
+      "2248": "VSNCP_PDN_EXISTS_FOR_THIS_APN",
+      "2249": "VSNCP_RECONNECT_NOT_ALLOWED",
+      "2250": "IPV6_PREFIX_UNAVAILABLE",
+      "2251": "HANDOFF_PREFERENCE_CHANGED",
+      "4097": "OEM_DCFAILCAUSE_1",
+      "4098": "OEM_DCFAILCAUSE_2",
+      "4099": "OEM_DCFAILCAUSE_3",
+      "4100": "OEM_DCFAILCAUSE_4",
+      "4101": "OEM_DCFAILCAUSE_5",
+      "4102": "OEM_DCFAILCAUSE_6",
+      "4103": "OEM_DCFAILCAUSE_7",
+      "4104": "OEM_DCFAILCAUSE_8",
+      "4105": "OEM_DCFAILCAUSE_9",
+      "4106": "OEM_DCFAILCAUSE_10",
+      "4107": "OEM_DCFAILCAUSE_11",
+      "4108": "OEM_DCFAILCAUSE_12",
+      "4109": "OEM_DCFAILCAUSE_13",
+      "4110": "OEM_DCFAILCAUSE_14",
+      "4111": "OEM_DCFAILCAUSE_15",
+      "-1": "REGISTRATION_FAIL",
+      "-2": "GPRS_REGISTRATION_FAIL",
+      "-3": "SIGNAL_LOST",
+      "-4": "PREF_RADIO_TECH_CHANGED",
+      "-5": "RADIO_POWER_OFF",
+      "-6": "TETHERED_CALL_ACTIVE",
+      "65535": "ERROR_UNSPECIFIED",
+      "65536": "UNKNOWN",
+      "65537": "RADIO_NOT_AVAILABLE",
+      "65538": "UNACCEPTABLE_NETWORK_PARAMETER",
+      "65540": "LOST_CONNECTION"
+    }
+  },
+  "android.telephony.Annotation.DataState": {
+    "flag": false,
+    "values": {
+      "-1": "DATA_UNKNOWN",
+      "0": "DATA_DISCONNECTED",
+      "1": "DATA_CONNECTING",
+      "2": "DATA_CONNECTED",
+      "3": "DATA_SUSPENDED"
+    }
+  },
+  "android.telephony.Annotation.DisconnectCauses": {
+    "flag": false,
+    "values": {
+      "-1": "NOT_VALID",
+      "0": "NOT_DISCONNECTED",
+      "1": "INCOMING_MISSED",
+      "2": "NORMAL",
+      "3": "LOCAL",
+      "4": "BUSY",
+      "5": "CONGESTION",
+      "6": "MMI",
+      "7": "INVALID_NUMBER",
+      "8": "NUMBER_UNREACHABLE",
+      "9": "SERVER_UNREACHABLE",
+      "10": "INVALID_CREDENTIALS",
+      "11": "OUT_OF_NETWORK",
+      "12": "SERVER_ERROR",
+      "13": "TIMED_OUT",
+      "14": "LOST_SIGNAL",
+      "15": "LIMIT_EXCEEDED",
+      "16": "INCOMING_REJECTED",
+      "17": "POWER_OFF",
+      "18": "OUT_OF_SERVICE",
+      "19": "ICC_ERROR",
+      "20": "CALL_BARRED",
+      "21": "FDN_BLOCKED",
+      "22": "CS_RESTRICTED",
+      "23": "CS_RESTRICTED_NORMAL",
+      "24": "CS_RESTRICTED_EMERGENCY",
+      "25": "UNOBTAINABLE_NUMBER",
+      "26": "CDMA_LOCKED_UNTIL_POWER_CYCLE",
+      "27": "CDMA_DROP",
+      "28": "CDMA_INTERCEPT",
+      "29": "CDMA_REORDER",
+      "30": "CDMA_SO_REJECT",
+      "31": "CDMA_RETRY_ORDER",
+      "32": "CDMA_ACCESS_FAILURE",
+      "33": "CDMA_PREEMPTED",
+      "34": "CDMA_NOT_EMERGENCY",
+      "35": "CDMA_ACCESS_BLOCKED",
+      "36": "ERROR_UNSPECIFIED"
+    }
+  },
+  "android.telephony.Annotation.ImsAudioCodec": {
+    "flag": false,
+    "values": {
+      "0": "AUDIO_CODEC_NONE",
+      "1": "AUDIO_CODEC_AMR",
+      "2": "AUDIO_CODEC_AMR_WB",
+      "3": "AUDIO_CODEC_QCELP13K",
+      "4": "AUDIO_CODEC_EVRC",
+      "5": "AUDIO_CODEC_EVRC_B",
+      "6": "AUDIO_CODEC_EVRC_WB",
+      "7": "AUDIO_CODEC_EVRC_NW",
+      "8": "AUDIO_CODEC_GSM_EFR",
+      "9": "AUDIO_CODEC_GSM_FR",
+      "11": "AUDIO_CODEC_G711U",
+      "12": "AUDIO_CODEC_G723",
+      "13": "AUDIO_CODEC_G711A",
+      "14": "AUDIO_CODEC_G722",
+      "15": "AUDIO_CODEC_G711AB",
+      "16": "AUDIO_CODEC_G729",
+      "17": "AUDIO_CODEC_EVS_NB",
+      "18": "AUDIO_CODEC_EVS_WB",
+      "19": "AUDIO_CODEC_EVS_SWB",
+      "20": "AUDIO_CODEC_EVS_FB"
+    }
+  },
+  "android.telephony.Annotation.NetworkType": {
+    "flag": false,
+    "values": {
+      "0": "NETWORK_TYPE_UNKNOWN",
+      "1": "NETWORK_TYPE_GPRS",
+      "2": "NETWORK_TYPE_EDGE",
+      "3": "NETWORK_TYPE_UMTS",
+      "4": "NETWORK_TYPE_CDMA",
+      "5": "NETWORK_TYPE_EVDO_0",
+      "6": "NETWORK_TYPE_EVDO_A",
+      "7": "NETWORK_TYPE_1xRTT",
+      "8": "NETWORK_TYPE_HSDPA",
+      "9": "NETWORK_TYPE_HSUPA",
+      "10": "NETWORK_TYPE_HSPA",
+      "11": "NETWORK_TYPE_IDEN",
+      "12": "NETWORK_TYPE_EVDO_B",
+      "13": "NETWORK_TYPE_LTE",
+      "14": "NETWORK_TYPE_EHRPD",
+      "15": "NETWORK_TYPE_HSPAP",
+      "16": "NETWORK_TYPE_GSM",
+      "17": "NETWORK_TYPE_TD_SCDMA",
+      "18": "NETWORK_TYPE_IWLAN",
+      "20": "NETWORK_TYPE_NR"
+    }
+  },
+  "android.telephony.Annotation.OverrideNetworkType": {
+    "flag": false,
+    "values": {
+      "0": "OVERRIDE_NETWORK_TYPE_NONE",
+      "1": "OVERRIDE_NETWORK_TYPE_LTE_CA",
+      "2": "OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO",
+      "3": "OVERRIDE_NETWORK_TYPE_NR_NSA",
+      "4": "OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE"
+    }
+  },
+  "android.telephony.Annotation.PreciseCallStates": {
+    "flag": false,
+    "values": {
+      "-1": "PRECISE_CALL_STATE_NOT_VALID",
+      "0": "PRECISE_CALL_STATE_IDLE",
+      "1": "PRECISE_CALL_STATE_ACTIVE",
+      "2": "PRECISE_CALL_STATE_HOLDING",
+      "3": "PRECISE_CALL_STATE_DIALING",
+      "4": "PRECISE_CALL_STATE_ALERTING",
+      "5": "PRECISE_CALL_STATE_INCOMING",
+      "6": "PRECISE_CALL_STATE_WAITING",
+      "7": "PRECISE_CALL_STATE_DISCONNECTED",
+      "8": "PRECISE_CALL_STATE_DISCONNECTING"
+    }
+  },
+  "android.telephony.Annotation.PreciseDisconnectCauses": {
+    "flag": false,
+    "values": {
+      "-1": "NOT_VALID",
+      "0": "NO_DISCONNECT_CAUSE_AVAILABLE",
+      "1": "UNOBTAINABLE_NUMBER",
+      "16": "NORMAL",
+      "17": "BUSY",
+      "22": "NUMBER_CHANGED",
+      "30": "STATUS_ENQUIRY",
+      "31": "NORMAL_UNSPECIFIED",
+      "34": "NO_CIRCUIT_AVAIL",
+      "41": "TEMPORARY_FAILURE",
+      "42": "SWITCHING_CONGESTION",
+      "44": "CHANNEL_NOT_AVAIL",
+      "49": "QOS_NOT_AVAIL",
+      "58": "BEARER_NOT_AVAIL",
+      "68": "ACM_LIMIT_EXCEEDED",
+      "240": "CALL_BARRED",
+      "241": "FDN_BLOCKED",
+      "242": "IMSI_UNKNOWN_IN_VLR",
+      "243": "IMEI_NOT_ACCEPTED",
+      "1000": "CDMA_LOCKED_UNTIL_POWER_CYCLE",
+      "1001": "CDMA_DROP",
+      "1002": "CDMA_INTERCEPT",
+      "1003": "CDMA_REORDER",
+      "1004": "CDMA_SO_REJECT",
+      "1005": "CDMA_RETRY_ORDER",
+      "1006": "CDMA_ACCESS_FAILURE",
+      "1007": "CDMA_PREEMPTED",
+      "1008": "CDMA_NOT_EMERGENCY",
+      "1009": "CDMA_ACCESS_BLOCKED",
+      "65535": "ERROR_UNSPECIFIED"
+    }
+  },
+  "android.telephony.Annotation.RadioPowerState": {
+    "flag": false,
+    "values": {
+      "0": "RADIO_POWER_OFF",
+      "1": "RADIO_POWER_ON",
+      "2": "RADIO_POWER_UNAVAILABLE"
+    }
+  },
+  "android.telephony.Annotation.SimActivationState": {
+    "flag": false,
+    "values": {
+      "0": "SIM_ACTIVATION_STATE_UNKNOWN",
+      "1": "SIM_ACTIVATION_STATE_ACTIVATING",
+      "2": "SIM_ACTIVATION_STATE_ACTIVATED",
+      "3": "SIM_ACTIVATION_STATE_DEACTIVATED",
+      "4": "SIM_ACTIVATION_STATE_RESTRICTED"
+    }
+  },
+  "android.telephony.Annotation.SrvccState": {
+    "flag": false,
+    "values": {
+      "-1": "SRVCC_STATE_HANDOVER_NONE",
+      "0": "SRVCC_STATE_HANDOVER_STARTED",
+      "1": "SRVCC_STATE_HANDOVER_COMPLETED",
+      "2": "SRVCC_STATE_HANDOVER_FAILED",
+      "3": "SRVCC_STATE_HANDOVER_CANCELED"
+    }
+  },
+  "android.telephony.Annotation.ThermalMitigationResult": {
+    "flag": false,
+    "values": {
+      "0": "THERMAL_MITIGATION_RESULT_SUCCESS",
+      "1": "THERMAL_MITIGATION_RESULT_MODEM_ERROR",
+      "3": "THERMAL_MITIGATION_RESULT_INVALID_STATE",
+      "4": "THERMAL_MITIGATION_RESULT_UNKNOWN_ERROR"
+    }
+  },
+  "android.telephony.Annotation.UiccAppType": {
+    "flag": false,
+    "values": {
+      "1": "APPTYPE_SIM",
+      "2": "APPTYPE_USIM",
+      "3": "APPTYPE_RUIM",
+      "4": "APPTYPE_CSIM",
+      "5": "APPTYPE_ISIM"
+    }
+  },
+  "android.telephony.BarringInfo.BarringServiceInfo.BarringType": {
+    "flag": false,
+    "values": {
+      "0": "BARRING_TYPE_NONE",
+      "2": "BARRING_TYPE_UNCONDITIONAL",
+      "1": "BARRING_TYPE_CONDITIONAL",
+      "-1": "BARRING_TYPE_UNKNOWN"
+    }
+  },
+  "android.telephony.BarringInfo.BarringServiceType": {
+    "flag": false,
+    "values": {
+      "0": "BARRING_SERVICE_TYPE_CS_SERVICE",
+      "1": "BARRING_SERVICE_TYPE_PS_SERVICE",
+      "2": "BARRING_SERVICE_TYPE_CS_VOICE",
+      "3": "BARRING_SERVICE_TYPE_MO_SIGNALLING",
+      "4": "BARRING_SERVICE_TYPE_MO_DATA",
+      "5": "BARRING_SERVICE_TYPE_CS_FALLBACK",
+      "6": "BARRING_SERVICE_TYPE_MMTEL_VOICE",
+      "7": "BARRING_SERVICE_TYPE_MMTEL_VIDEO",
+      "8": "BARRING_SERVICE_TYPE_EMERGENCY",
+      "9": "BARRING_SERVICE_TYPE_SMS"
+    }
+  },
+  "android.telephony.CallForwardingInfo.CallForwardingReason": {
+    "flag": true,
+    "values": {
+      "0": "REASON_UNCONDITIONAL",
+      "1": "REASON_BUSY",
+      "2": "REASON_NO_REPLY",
+      "3": "REASON_NOT_REACHABLE",
+      "4": "REASON_ALL",
+      "5": "REASON_ALL_CONDITIONAL"
+    }
+  },
+  "android.telephony.CallQuality.CallQualityLevel": {
+    "flag": false,
+    "values": {
+      "0": "CALL_QUALITY_EXCELLENT",
+      "1": "CALL_QUALITY_GOOD",
+      "2": "CALL_QUALITY_FAIR",
+      "3": "CALL_QUALITY_POOR",
+      "4": "CALL_QUALITY_BAD",
+      "5": "CALL_QUALITY_NOT_AVAILABLE"
+    }
+  },
+  "android.telephony.CarrierRestrictionRules.CarrierRestrictionDefault": {
+    "flag": false,
+    "values": {
+      "0": "CARRIER_RESTRICTION_DEFAULT_NOT_ALLOWED",
+      "1": "CARRIER_RESTRICTION_DEFAULT_ALLOWED"
+    }
+  },
+  "android.telephony.CarrierRestrictionRules.MultiSimPolicy": {
+    "flag": false,
+    "values": {
+      "0": "MULTISIM_POLICY_NONE",
+      "1": "MULTISIM_POLICY_ONE_VALID_SIM_MUST_BE_PRESENT"
+    }
+  },
+  "android.telephony.CellInfo.CellConnectionStatus": {
+    "flag": false,
+    "values": {
+      "0": "CONNECTION_NONE",
+      "1": "CONNECTION_PRIMARY_SERVING",
+      "2": "CONNECTION_SECONDARY_SERVING",
+      "2147483647": "CONNECTION_UNKNOWN"
+    }
+  },
+  "android.telephony.CellInfo.Type": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_GSM",
+      "2": "TYPE_CDMA",
+      "3": "TYPE_LTE",
+      "4": "TYPE_WCDMA",
+      "5": "TYPE_TDSCDMA",
+      "6": "TYPE_NR"
+    }
+  },
+  "android.telephony.CellSignalStrengthNr.SignalLevelAndReportCriteriaSource": {
+    "flag": true,
+    "values": {
+      "1": "USE_SSRSRP",
+      "2": "USE_SSRSRQ",
+      "4": "USE_SSSINR"
+    }
+  },
+  "android.telephony.DataThrottlingRequest.DataThrottlingAction": {
+    "flag": false,
+    "values": {
+      "0": "DATA_THROTTLING_ACTION_NO_DATA_THROTTLING",
+      "1": "DATA_THROTTLING_ACTION_THROTTLE_SECONDARY_CARRIER",
+      "2": "DATA_THROTTLING_ACTION_THROTTLE_PRIMARY_CARRIER",
+      "3": "DATA_THROTTLING_ACTION_HOLD"
+    }
+  },
+  "android.telephony.LteVopsSupportInfo.LteVopsStatus": {
+    "flag": false,
+    "values": {
+      "1": "LTE_STATUS_NOT_AVAILABLE",
+      "2": "LTE_STATUS_SUPPORTED",
+      "3": "LTE_STATUS_NOT_SUPPORTED"
+    }
+  },
+  "android.telephony.MbmsDownloadSession.DownloadResultCode": {
+    "flag": false,
+    "values": {
+      "1": "RESULT_SUCCESSFUL",
+      "2": "RESULT_CANCELLED",
+      "3": "RESULT_EXPIRED",
+      "4": "RESULT_IO_ERROR",
+      "5": "RESULT_SERVICE_ID_NOT_DEFINED",
+      "6": "RESULT_DOWNLOAD_FAILURE",
+      "7": "RESULT_OUT_OF_STORAGE",
+      "8": "RESULT_FILE_ROOT_UNREACHABLE"
+    }
+  },
+  "android.telephony.MbmsDownloadSession.DownloadStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_UNKNOWN",
+      "1": "STATUS_ACTIVELY_DOWNLOADING",
+      "2": "STATUS_PENDING_DOWNLOAD",
+      "3": "STATUS_PENDING_REPAIR",
+      "4": "STATUS_PENDING_DOWNLOAD_WINDOW"
+    }
+  },
+  "android.telephony.ModemActivityInfo.TxPowerLevel": {
+    "flag": false,
+    "values": {
+      "0": "TX_POWER_LEVEL_0",
+      "1": "TX_POWER_LEVEL_1",
+      "2": "TX_POWER_LEVEL_2",
+      "3": "TX_POWER_LEVEL_3",
+      "4": "TX_POWER_LEVEL_4"
+    }
+  },
+  "android.telephony.NetworkRegistrationInfo.Domain": {
+    "flag": false,
+    "values": {
+      "0": "DOMAIN_UNKNOWN",
+      "1": "DOMAIN_CS",
+      "2": "DOMAIN_PS",
+      "3": "DOMAIN_CS_PS"
+    }
+  },
+  "android.telephony.NetworkRegistrationInfo.NRState": {
+    "flag": false,
+    "values": {
+      "0": "NR_STATE_NONE",
+      "1": "NR_STATE_RESTRICTED",
+      "2": "NR_STATE_NOT_RESTRICTED",
+      "3": "NR_STATE_CONNECTED"
+    }
+  },
+  "android.telephony.NetworkRegistrationInfo.RegistrationState": {
+    "flag": false,
+    "values": {
+      "0": "REGISTRATION_STATE_NOT_REGISTERED_OR_SEARCHING",
+      "1": "REGISTRATION_STATE_HOME",
+      "2": "REGISTRATION_STATE_NOT_REGISTERED_SEARCHING",
+      "3": "REGISTRATION_STATE_DENIED",
+      "4": "REGISTRATION_STATE_UNKNOWN",
+      "5": "REGISTRATION_STATE_ROAMING"
+    }
+  },
+  "android.telephony.NetworkRegistrationInfo.ServiceType": {
+    "flag": false,
+    "values": {
+      "0": "SERVICE_TYPE_UNKNOWN",
+      "1": "SERVICE_TYPE_VOICE",
+      "2": "SERVICE_TYPE_DATA",
+      "3": "SERVICE_TYPE_SMS",
+      "4": "SERVICE_TYPE_VIDEO",
+      "5": "SERVICE_TYPE_EMERGENCY"
+    }
+  },
+  "android.telephony.NetworkScan.ScanErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_MODEM_ERROR",
+      "2": "ERROR_INVALID_SCAN",
+      "3": "ERROR_MODEM_UNAVAILABLE",
+      "4": "ERROR_UNSUPPORTED",
+      "10000": "ERROR_RADIO_INTERFACE_ERROR",
+      "10001": "ERROR_INVALID_SCANID",
+      "10002": "ERROR_INTERRUPTED"
+    }
+  },
+  "android.telephony.NetworkScanRequest.ScanType": {
+    "flag": false,
+    "values": {
+      "0": "SCAN_TYPE_ONE_SHOT",
+      "1": "SCAN_TYPE_PERIODIC"
+    }
+  },
+  "android.telephony.NetworkServiceCallback.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_SUCCESS",
+      "1": "RESULT_ERROR_UNSUPPORTED",
+      "2": "RESULT_ERROR_INVALID_ARG",
+      "3": "RESULT_ERROR_BUSY",
+      "4": "RESULT_ERROR_ILLEGAL_STATE",
+      "5": "RESULT_ERROR_FAILED"
+    }
+  },
+  "android.telephony.NumberVerificationCallback.NumberVerificationFailureReason": {
+    "flag": false,
+    "values": {
+      "0": "REASON_UNSPECIFIED",
+      "1": "REASON_TIMED_OUT",
+      "2": "REASON_NETWORK_NOT_AVAILABLE",
+      "3": "REASON_TOO_MANY_CALLS",
+      "4": "REASON_CONCURRENT_REQUESTS",
+      "5": "REASON_IN_ECBM",
+      "6": "REASON_IN_EMERGENCY_CALL"
+    }
+  },
+  "android.telephony.PhoneNumberUtils.BcdExtendType": {
+    "flag": false,
+    "values": {
+      "1": "BCD_EXTENDED_TYPE_EF_ADN",
+      "2": "BCD_EXTENDED_TYPE_CALLED_PARTY"
+    }
+  },
+  "android.telephony.PhysicalChannelConfig.ConnectionStatus": {
+    "flag": false,
+    "values": {
+      "1": "CONNECTION_PRIMARY_SERVING",
+      "2": "CONNECTION_SECONDARY_SERVING",
+      "-1": "CONNECTION_UNKNOWN"
+    }
+  },
+  "android.telephony.PinResult.PinResultType": {
+    "flag": false,
+    "values": {
+      "0": "PIN_RESULT_TYPE_SUCCESS",
+      "1": "PIN_RESULT_TYPE_INCORRECT",
+      "2": "PIN_RESULT_TYPE_FAILURE",
+      "3": "PIN_RESULT_TYPE_ABORTED"
+    }
+  },
+  "android.telephony.ServiceState.DuplexMode": {
+    "flag": false,
+    "values": {
+      "0": "DUPLEX_MODE_UNKNOWN",
+      "1": "DUPLEX_MODE_FDD",
+      "2": "DUPLEX_MODE_TDD"
+    }
+  },
+  "android.telephony.ServiceState.FrequencyRange": {
+    "flag": false,
+    "values": {
+      "0": "FREQUENCY_RANGE_UNKNOWN",
+      "1": "FREQUENCY_RANGE_LOW",
+      "2": "FREQUENCY_RANGE_MID",
+      "3": "FREQUENCY_RANGE_HIGH",
+      "4": "FREQUENCY_RANGE_MMWAVE"
+    }
+  },
+  "android.telephony.ServiceState.RegState": {
+    "flag": false,
+    "values": {
+      "0": "STATE_IN_SERVICE",
+      "1": "STATE_OUT_OF_SERVICE",
+      "2": "STATE_EMERGENCY_ONLY",
+      "3": "STATE_POWER_OFF"
+    }
+  },
+  "android.telephony.ServiceState.RilRadioTechnology": {
+    "flag": false,
+    "values": {
+      "0": "RIL_RADIO_TECHNOLOGY_UNKNOWN",
+      "1": "RIL_RADIO_TECHNOLOGY_GPRS",
+      "2": "RIL_RADIO_TECHNOLOGY_EDGE",
+      "3": "RIL_RADIO_TECHNOLOGY_UMTS",
+      "4": "RIL_RADIO_TECHNOLOGY_IS95A",
+      "5": "RIL_RADIO_TECHNOLOGY_IS95B",
+      "6": "RIL_RADIO_TECHNOLOGY_1xRTT",
+      "7": "RIL_RADIO_TECHNOLOGY_EVDO_0",
+      "8": "RIL_RADIO_TECHNOLOGY_EVDO_A",
+      "9": "RIL_RADIO_TECHNOLOGY_HSDPA",
+      "10": "RIL_RADIO_TECHNOLOGY_HSUPA",
+      "11": "RIL_RADIO_TECHNOLOGY_HSPA",
+      "12": "RIL_RADIO_TECHNOLOGY_EVDO_B",
+      "13": "RIL_RADIO_TECHNOLOGY_EHRPD",
+      "14": "RIL_RADIO_TECHNOLOGY_LTE",
+      "15": "RIL_RADIO_TECHNOLOGY_HSPAP",
+      "16": "RIL_RADIO_TECHNOLOGY_GSM",
+      "17": "RIL_RADIO_TECHNOLOGY_TD_SCDMA",
+      "18": "RIL_RADIO_TECHNOLOGY_IWLAN",
+      "19": "RIL_RADIO_TECHNOLOGY_LTE_CA",
+      "20": "RIL_RADIO_TECHNOLOGY_NR"
+    }
+  },
+  "android.telephony.ServiceState.RoamingType": {
+    "flag": false,
+    "values": {
+      "0": "ROAMING_TYPE_NOT_ROAMING",
+      "1": "ROAMING_TYPE_UNKNOWN",
+      "2": "ROAMING_TYPE_DOMESTIC",
+      "3": "ROAMING_TYPE_INTERNATIONAL"
+    }
+  },
+  "android.telephony.SignalThresholdInfo.SignalMeasurementType": {
+    "flag": false,
+    "values": {
+      "1": "SIGNAL_RSSI",
+      "2": "SIGNAL_RSCP",
+      "3": "SIGNAL_RSRP",
+      "4": "SIGNAL_RSRQ",
+      "5": "SIGNAL_RSSNR",
+      "6": "SIGNAL_SSRSRP",
+      "7": "SIGNAL_SSRSRQ",
+      "8": "SIGNAL_SSSINR"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.Category": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_CATEGORY_GEO",
+      "1": "CMAS_CATEGORY_MET",
+      "2": "CMAS_CATEGORY_SAFETY",
+      "3": "CMAS_CATEGORY_SECURITY",
+      "4": "CMAS_CATEGORY_RESCUE",
+      "5": "CMAS_CATEGORY_FIRE",
+      "6": "CMAS_CATEGORY_HEALTH",
+      "7": "CMAS_CATEGORY_ENV",
+      "8": "CMAS_CATEGORY_TRANSPORT",
+      "9": "CMAS_CATEGORY_INFRA",
+      "10": "CMAS_CATEGORY_CBRNE",
+      "11": "CMAS_CATEGORY_OTHER",
+      "-1": "CMAS_CATEGORY_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.Certainty": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_CERTAINTY_OBSERVED",
+      "1": "CMAS_CERTAINTY_LIKELY",
+      "-1": "CMAS_CERTAINTY_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.Class": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_CLASS_PRESIDENTIAL_LEVEL_ALERT",
+      "1": "CMAS_CLASS_EXTREME_THREAT",
+      "2": "CMAS_CLASS_SEVERE_THREAT",
+      "3": "CMAS_CLASS_CHILD_ABDUCTION_EMERGENCY",
+      "4": "CMAS_CLASS_REQUIRED_MONTHLY_TEST",
+      "5": "CMAS_CLASS_CMAS_EXERCISE",
+      "6": "CMAS_CLASS_OPERATOR_DEFINED_USE",
+      "-1": "CMAS_CLASS_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.ResponseType": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_RESPONSE_TYPE_SHELTER",
+      "1": "CMAS_RESPONSE_TYPE_EVACUATE",
+      "2": "CMAS_RESPONSE_TYPE_PREPARE",
+      "3": "CMAS_RESPONSE_TYPE_EXECUTE",
+      "4": "CMAS_RESPONSE_TYPE_MONITOR",
+      "5": "CMAS_RESPONSE_TYPE_AVOID",
+      "6": "CMAS_RESPONSE_TYPE_ASSESS",
+      "7": "CMAS_RESPONSE_TYPE_NONE",
+      "-1": "CMAS_RESPONSE_TYPE_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.Severity": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_SEVERITY_EXTREME",
+      "1": "CMAS_SEVERITY_SEVERE",
+      "-1": "CMAS_SEVERITY_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbCmasInfo.Urgency": {
+    "flag": false,
+    "values": {
+      "0": "CMAS_URGENCY_IMMEDIATE",
+      "1": "CMAS_URGENCY_EXPECTED",
+      "-1": "CMAS_URGENCY_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbEtwsInfo.WarningType": {
+    "flag": false,
+    "values": {
+      "0": "ETWS_WARNING_TYPE_EARTHQUAKE",
+      "1": "ETWS_WARNING_TYPE_TSUNAMI",
+      "2": "ETWS_WARNING_TYPE_EARTHQUAKE_AND_TSUNAMI",
+      "3": "ETWS_WARNING_TYPE_TEST_MESSAGE",
+      "4": "ETWS_WARNING_TYPE_OTHER_EMERGENCY",
+      "-1": "ETWS_WARNING_TYPE_UNKNOWN"
+    }
+  },
+  "android.telephony.SmsCbMessage.GeographicalScope": {
+    "flag": false,
+    "values": {
+      "0": "GEOGRAPHICAL_SCOPE_CELL_WIDE_IMMEDIATE",
+      "1": "GEOGRAPHICAL_SCOPE_PLMN_WIDE",
+      "2": "GEOGRAPHICAL_SCOPE_LOCATION_AREA_WIDE",
+      "3": "GEOGRAPHICAL_SCOPE_CELL_WIDE"
+    }
+  },
+  "android.telephony.SmsCbMessage.MessageFormat": {
+    "flag": false,
+    "values": {
+      "1": "MESSAGE_FORMAT_3GPP",
+      "2": "MESSAGE_FORMAT_3GPP2"
+    }
+  },
+  "android.telephony.SmsCbMessage.MessagePriority": {
+    "flag": false,
+    "values": {
+      "0": "MESSAGE_PRIORITY_NORMAL",
+      "1": "MESSAGE_PRIORITY_INTERACTIVE",
+      "2": "MESSAGE_PRIORITY_URGENT",
+      "3": "MESSAGE_PRIORITY_EMERGENCY"
+    }
+  },
+  "android.telephony.SmsManager.PremiumSmsConsent": {
+    "flag": false,
+    "values": {
+      "0": "PREMIUM_SMS_CONSENT_UNKNOWN",
+      "1": "PREMIUM_SMS_CONSENT_ASK_USER",
+      "2": "PREMIUM_SMS_CONSENT_NEVER_ALLOW",
+      "3": "PREMIUM_SMS_CONSENT_ALWAYS_ALLOW"
+    }
+  },
+  "android.telephony.SmsManager.Result": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_ERROR_NONE",
+      "1": "RESULT_ERROR_GENERIC_FAILURE",
+      "2": "RESULT_ERROR_RADIO_OFF",
+      "3": "RESULT_ERROR_NULL_PDU",
+      "4": "RESULT_ERROR_NO_SERVICE",
+      "5": "RESULT_ERROR_LIMIT_EXCEEDED",
+      "6": "RESULT_ERROR_FDN_CHECK_FAILURE",
+      "7": "RESULT_ERROR_SHORT_CODE_NOT_ALLOWED",
+      "8": "RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED",
+      "9": "RESULT_RADIO_NOT_AVAILABLE",
+      "10": "RESULT_NETWORK_REJECT",
+      "11": "RESULT_INVALID_ARGUMENTS",
+      "12": "RESULT_INVALID_STATE",
+      "13": "RESULT_NO_MEMORY",
+      "14": "RESULT_INVALID_SMS_FORMAT",
+      "15": "RESULT_SYSTEM_ERROR",
+      "16": "RESULT_MODEM_ERROR",
+      "17": "RESULT_NETWORK_ERROR",
+      "19": "RESULT_INVALID_SMSC_ADDRESS",
+      "20": "RESULT_OPERATION_NOT_ALLOWED",
+      "21": "RESULT_INTERNAL_ERROR",
+      "22": "RESULT_NO_RESOURCES",
+      "23": "RESULT_CANCELLED",
+      "24": "RESULT_REQUEST_NOT_SUPPORTED",
+      "25": "RESULT_NO_BLUETOOTH_SERVICE",
+      "26": "RESULT_INVALID_BLUETOOTH_ADDRESS",
+      "27": "RESULT_BLUETOOTH_DISCONNECTED",
+      "28": "RESULT_UNEXPECTED_EVENT_STOP_SENDING",
+      "29": "RESULT_SMS_BLOCKED_DURING_EMERGENCY",
+      "30": "RESULT_SMS_SEND_RETRY_FAILED",
+      "31": "RESULT_REMOTE_EXCEPTION",
+      "32": "RESULT_NO_DEFAULT_SMS_APP",
+      "100": "RESULT_RIL_RADIO_NOT_AVAILABLE",
+      "101": "RESULT_RIL_SMS_SEND_FAIL_RETRY",
+      "102": "RESULT_RIL_NETWORK_REJECT",
+      "103": "RESULT_RIL_INVALID_STATE",
+      "104": "RESULT_RIL_INVALID_ARGUMENTS",
+      "105": "RESULT_RIL_NO_MEMORY",
+      "106": "RESULT_RIL_REQUEST_RATE_LIMITED",
+      "107": "RESULT_RIL_INVALID_SMS_FORMAT",
+      "108": "RESULT_RIL_SYSTEM_ERR",
+      "109": "RESULT_RIL_ENCODING_ERR",
+      "110": "RESULT_RIL_INVALID_SMSC_ADDRESS",
+      "111": "RESULT_RIL_MODEM_ERR",
+      "112": "RESULT_RIL_NETWORK_ERR",
+      "113": "RESULT_RIL_INTERNAL_ERR",
+      "114": "RESULT_RIL_REQUEST_NOT_SUPPORTED",
+      "115": "RESULT_RIL_INVALID_MODEM_STATE",
+      "116": "RESULT_RIL_NETWORK_NOT_READY",
+      "117": "RESULT_RIL_OPERATION_NOT_ALLOWED",
+      "118": "RESULT_RIL_NO_RESOURCES",
+      "119": "RESULT_RIL_CANCELLED",
+      "120": "RESULT_RIL_SIM_ABSENT",
+      "121": "RESULT_RIL_SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED",
+      "122": "RESULT_RIL_ACCESS_BARRED",
+      "123": "RESULT_RIL_BLOCKED_DUE_TO_CALL"
+    }
+  },
+  "android.telephony.SmsManager.SmsShortCodeCategory": {
+    "flag": false,
+    "values": {
+      "0": "SMS_CATEGORY_NOT_SHORT_CODE",
+      "1": "SMS_CATEGORY_FREE_SHORT_CODE",
+      "2": "SMS_CATEGORY_STANDARD_SHORT_CODE",
+      "3": "SMS_CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE",
+      "4": "SMS_CATEGORY_PREMIUM_SHORT_CODE"
+    }
+  },
+  "android.telephony.SmsManager.StatusOnIcc": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_ON_ICC_FREE",
+      "1": "STATUS_ON_ICC_READ",
+      "3": "STATUS_ON_ICC_UNREAD",
+      "5": "STATUS_ON_ICC_SENT",
+      "7": "STATUS_ON_ICC_UNSENT"
+    }
+  },
+  "android.telephony.SmsMessage.EncodingSize": {
+    "flag": false,
+    "values": {
+      "0": "ENCODING_UNKNOWN",
+      "1": "ENCODING_7BIT",
+      "2": "ENCODING_8BIT",
+      "3": "ENCODING_16BIT"
+    }
+  },
+  "android.telephony.SubscriptionManager.ProfileClass": {
+    "flag": false,
+    "values": {
+      "0": "PROFILE_CLASS_TESTING",
+      "1": "PROFILE_CLASS_PROVISIONING",
+      "2": "PROFILE_CLASS_OPERATIONAL",
+      "-1": "PROFILE_CLASS_UNSET"
+    }
+  },
+  "android.telephony.SubscriptionManager.SimDisplayNameSource": {
+    "flag": false,
+    "values": {
+      "0": "NAME_SOURCE_CARRIER_ID",
+      "1": "NAME_SOURCE_SIM_SPN",
+      "2": "NAME_SOURCE_USER_INPUT",
+      "3": "NAME_SOURCE_CARRIER",
+      "4": "NAME_SOURCE_SIM_PNN"
+    }
+  },
+  "android.telephony.SubscriptionManager.SubscriptionType": {
+    "flag": false,
+    "values": {
+      "0": "SUBSCRIPTION_TYPE_LOCAL_SIM",
+      "1": "SUBSCRIPTION_TYPE_REMOTE_SIM"
+    }
+  },
+  "android.telephony.SubscriptionPlan.LimitBehavior": {
+    "flag": false,
+    "values": {
+      "-1": "LIMIT_BEHAVIOR_UNKNOWN",
+      "0": "LIMIT_BEHAVIOR_DISABLED",
+      "1": "LIMIT_BEHAVIOR_BILLED",
+      "2": "LIMIT_BEHAVIOR_THROTTLED"
+    }
+  },
+  "android.telephony.TelephonyManager.AllowedNetworkTypesReason": {
+    "flag": false,
+    "values": {
+      "0": "ALLOWED_NETWORK_TYPES_REASON_POWER"
+    }
+  },
+  "android.telephony.TelephonyManager.CallForwardingInfoCallback.CallForwardingError": {
+    "flag": false,
+    "values": {
+      "1": "RESULT_ERROR_UNKNOWN",
+      "3": "RESULT_ERROR_NOT_SUPPORTED",
+      "2": "RESULT_ERROR_FDN_CHECK_FAILURE"
+    }
+  },
+  "android.telephony.TelephonyManager.CallWaitingStatus": {
+    "flag": false,
+    "values": {
+      "1": "CALL_WAITING_STATUS_ENABLED",
+      "2": "CALL_WAITING_STATUS_DISABLED",
+      "3": "CALL_WAITING_STATUS_UNKNOWN_ERROR",
+      "4": "CALL_WAITING_STATUS_NOT_SUPPORTED"
+    }
+  },
+  "android.telephony.TelephonyManager.CdmaRoamingMode": {
+    "flag": false,
+    "values": {
+      "-1": "CDMA_ROAMING_MODE_RADIO_DEFAULT",
+      "0": "CDMA_ROAMING_MODE_HOME",
+      "1": "CDMA_ROAMING_MODE_AFFILIATED",
+      "2": "CDMA_ROAMING_MODE_ANY"
+    }
+  },
+  "android.telephony.TelephonyManager.CdmaSubscription": {
+    "flag": true,
+    "values": {
+      "-1": "CDMA_SUBSCRIPTION_UNKNOWN",
+      "0": "CDMA_SUBSCRIPTION_RUIM_SIM",
+      "1": "CDMA_SUBSCRIPTION_NV"
+    }
+  },
+  "android.telephony.TelephonyManager.CellInfoCallback.CellInfoCallbackError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_TIMEOUT",
+      "2": "ERROR_MODEM_ERROR"
+    }
+  },
+  "android.telephony.TelephonyManager.DataEnabledReason": {
+    "flag": false,
+    "values": {
+      "0": "DATA_ENABLED_REASON_USER",
+      "1": "DATA_ENABLED_REASON_POLICY",
+      "2": "DATA_ENABLED_REASON_CARRIER",
+      "3": "DATA_ENABLED_REASON_THERMAL"
+    }
+  },
+  "android.telephony.TelephonyManager.DataState": {
+    "flag": false,
+    "values": {
+      "-1": "DATA_UNKNOWN",
+      "0": "DATA_DISCONNECTED",
+      "1": "DATA_CONNECTING",
+      "2": "DATA_CONNECTED",
+      "3": "DATA_SUSPENDED",
+      "4": "DATA_DISCONNECTING"
+    }
+  },
+  "android.telephony.TelephonyManager.DefaultSubscriptionSelectType": {
+    "flag": false,
+    "values": {
+      "0": "EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE",
+      "1": "EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA",
+      "2": "EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_VOICE",
+      "3": "EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_SMS",
+      "4": "EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL"
+    }
+  },
+  "android.telephony.TelephonyManager.EnableNrDualConnectivityResult": {
+    "flag": false,
+    "values": {
+      "0": "ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS",
+      "1": "ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED",
+      "4": "ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE",
+      "2": "ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE",
+      "3": "ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR"
+    }
+  },
+  "android.telephony.TelephonyManager.EriIconIndex": {
+    "flag": false,
+    "values": {
+      "0": "ERI_ON",
+      "1": "ERI_OFF",
+      "2": "ERI_FLASH"
+    }
+  },
+  "android.telephony.TelephonyManager.EriIconMode": {
+    "flag": false,
+    "values": {
+      "0": "ERI_ICON_MODE_NORMAL",
+      "1": "ERI_ICON_MODE_FLASH"
+    }
+  },
+  "android.telephony.TelephonyManager.IsMultiSimSupportedResult": {
+    "flag": false,
+    "values": {
+      "0": "MULTISIM_ALLOWED",
+      "1": "MULTISIM_NOT_SUPPORTED_BY_HARDWARE",
+      "2": "MULTISIM_NOT_SUPPORTED_BY_CARRIER"
+    }
+  },
+  "android.telephony.TelephonyManager.KeyType": {
+    "flag": false,
+    "values": {
+      "1": "KEY_TYPE_EPDG",
+      "2": "KEY_TYPE_WLAN"
+    }
+  },
+  "android.telephony.TelephonyManager.MobileDataPolicy": {
+    "flag": false,
+    "values": {
+      "1": "MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL",
+      "2": "MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED"
+    }
+  },
+  "android.telephony.TelephonyManager.ModemActivityInfoException.ModemActivityInfoError": {
+    "flag": false,
+    "values": {
+      "0": "ERROR_UNKNOWN",
+      "1": "ERROR_PHONE_NOT_AVAILABLE",
+      "2": "ERROR_INVALID_INFO_RECEIVED",
+      "3": "ERROR_MODEM_RESPONSE_ERROR"
+    }
+  },
+  "android.telephony.TelephonyManager.NetworkSelectionMode": {
+    "flag": false,
+    "values": {
+      "0": "NETWORK_SELECTION_MODE_UNKNOWN",
+      "1": "NETWORK_SELECTION_MODE_AUTO",
+      "2": "NETWORK_SELECTION_MODE_MANUAL"
+    }
+  },
+  "android.telephony.TelephonyManager.NrDualConnectivityState": {
+    "flag": false,
+    "values": {
+      "1": "NR_DUAL_CONNECTIVITY_ENABLE",
+      "2": "NR_DUAL_CONNECTIVITY_DISABLE",
+      "3": "NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE"
+    }
+  },
+  "android.telephony.TelephonyManager.PrefNetworkMode": {
+    "flag": false,
+    "values": {
+      "0": "NETWORK_MODE_WCDMA_PREF",
+      "1": "NETWORK_MODE_GSM_ONLY",
+      "2": "NETWORK_MODE_WCDMA_ONLY",
+      "3": "NETWORK_MODE_GSM_UMTS",
+      "4": "NETWORK_MODE_CDMA_EVDO",
+      "5": "NETWORK_MODE_CDMA_NO_EVDO",
+      "6": "NETWORK_MODE_EVDO_NO_CDMA",
+      "7": "NETWORK_MODE_GLOBAL",
+      "8": "NETWORK_MODE_LTE_CDMA_EVDO",
+      "9": "NETWORK_MODE_LTE_GSM_WCDMA",
+      "10": "NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA",
+      "11": "NETWORK_MODE_LTE_ONLY",
+      "12": "NETWORK_MODE_LTE_WCDMA",
+      "13": "NETWORK_MODE_TDSCDMA_ONLY",
+      "14": "NETWORK_MODE_TDSCDMA_WCDMA",
+      "15": "NETWORK_MODE_LTE_TDSCDMA",
+      "16": "NETWORK_MODE_TDSCDMA_GSM",
+      "17": "NETWORK_MODE_LTE_TDSCDMA_GSM",
+      "18": "NETWORK_MODE_TDSCDMA_GSM_WCDMA",
+      "19": "NETWORK_MODE_LTE_TDSCDMA_WCDMA",
+      "20": "NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA",
+      "21": "NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA",
+      "22": "NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA",
+      "23": "NETWORK_MODE_NR_ONLY",
+      "24": "NETWORK_MODE_NR_LTE",
+      "25": "NETWORK_MODE_NR_LTE_CDMA_EVDO",
+      "26": "NETWORK_MODE_NR_LTE_GSM_WCDMA",
+      "27": "NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA",
+      "28": "NETWORK_MODE_NR_LTE_WCDMA",
+      "29": "NETWORK_MODE_NR_LTE_TDSCDMA",
+      "30": "NETWORK_MODE_NR_LTE_TDSCDMA_GSM",
+      "31": "NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA",
+      "32": "NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA",
+      "33": "NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA"
+    }
+  },
+  "android.telephony.TelephonyManager.RadioInterfaceCapability": {
+    "flag": false,
+    "values": {}
+  },
+  "android.telephony.TelephonyManager.SetCarrierRestrictionResult": {
+    "flag": false,
+    "values": {
+      "0": "SET_CARRIER_RESTRICTION_SUCCESS",
+      "1": "SET_CARRIER_RESTRICTION_NOT_SUPPORTED",
+      "2": "SET_CARRIER_RESTRICTION_ERROR"
+    }
+  },
+  "android.telephony.TelephonyManager.SetOpportunisticSubscriptionResult": {
+    "flag": false,
+    "values": {
+      "0": "SET_OPPORTUNISTIC_SUB_SUCCESS",
+      "1": "SET_OPPORTUNISTIC_SUB_VALIDATION_FAILED",
+      "2": "SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION",
+      "3": "SET_OPPORTUNISTIC_SUB_NO_OPPORTUNISTIC_SUB_AVAILABLE",
+      "4": "SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION"
+    }
+  },
+  "android.telephony.TelephonyManager.SimCombinationWarningType": {
+    "flag": false,
+    "values": {
+      "0": "EXTRA_SIM_COMBINATION_WARNING_TYPE_NONE",
+      "1": "EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA"
+    }
+  },
+  "android.telephony.TelephonyManager.SimState": {
+    "flag": false,
+    "values": {
+      "0": "SIM_STATE_UNKNOWN",
+      "1": "SIM_STATE_ABSENT",
+      "2": "SIM_STATE_PIN_REQUIRED",
+      "3": "SIM_STATE_PUK_REQUIRED",
+      "4": "SIM_STATE_NETWORK_LOCKED",
+      "5": "SIM_STATE_READY",
+      "6": "SIM_STATE_NOT_READY",
+      "7": "SIM_STATE_PERM_DISABLED",
+      "8": "SIM_STATE_CARD_IO_ERROR",
+      "9": "SIM_STATE_CARD_RESTRICTED",
+      "10": "SIM_STATE_LOADED",
+      "11": "SIM_STATE_PRESENT"
+    }
+  },
+  "android.telephony.TelephonyManager.UpdateAvailableNetworksResult": {
+    "flag": false,
+    "values": {
+      "0": "UPDATE_AVAILABLE_NETWORKS_SUCCESS",
+      "1": "UPDATE_AVAILABLE_NETWORKS_UNKNOWN_FAILURE",
+      "2": "UPDATE_AVAILABLE_NETWORKS_ABORTED",
+      "3": "UPDATE_AVAILABLE_NETWORKS_INVALID_ARGUMENTS",
+      "4": "UPDATE_AVAILABLE_NETWORKS_NO_CARRIER_PRIVILEGE",
+      "5": "UPDATE_AVAILABLE_NETWORKS_DISABLE_MODEM_FAIL",
+      "6": "UPDATE_AVAILABLE_NETWORKS_ENABLE_MODEM_FAIL",
+      "7": "UPDATE_AVAILABLE_NETWORKS_MULTIPLE_NETWORKS_NOT_SUPPORTED",
+      "8": "UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE",
+      "9": "UPDATE_AVAILABLE_NETWORKS_REMOTE_SERVICE_EXCEPTION",
+      "10": "UPDATE_AVAILABLE_NETWORKS_SERVICE_IS_DISABLED"
+    }
+  },
+  "android.telephony.ThermalMitigationRequest.ThermalMitigationAction": {
+    "flag": false,
+    "values": {
+      "0": "THERMAL_MITIGATION_ACTION_DATA_THROTTLING",
+      "1": "THERMAL_MITIGATION_ACTION_VOICE_ONLY",
+      "2": "THERMAL_MITIGATION_ACTION_RADIO_OFF"
+    }
+  },
+  "android.telephony.UiccSlotInfo.CardStateInfo": {
+    "flag": false,
+    "values": {
+      "1": "CARD_STATE_INFO_ABSENT",
+      "2": "CARD_STATE_INFO_PRESENT",
+      "3": "CARD_STATE_INFO_ERROR",
+      "4": "CARD_STATE_INFO_RESTRICTED"
+    }
+  },
+  "android.telephony.cdma.CdmaSmsCbProgramData.Category": {
+    "flag": false,
+    "values": {
+      "4096": "CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT",
+      "4097": "CATEGORY_CMAS_EXTREME_THREAT",
+      "4098": "CATEGORY_CMAS_SEVERE_THREAT",
+      "4099": "CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY",
+      "4100": "CATEGORY_CMAS_TEST_MESSAGE",
+      "4351": "CATEGORY_CMAS_LAST_RESERVED_VALUE"
+    }
+  },
+  "android.telephony.cdma.CdmaSmsCbProgramData.Operation": {
+    "flag": false,
+    "values": {
+      "0": "OPERATION_DELETE_CATEGORY",
+      "1": "OPERATION_ADD_CATEGORY",
+      "2": "OPERATION_CLEAR_CATEGORIES"
+    }
+  },
+  "android.telephony.data.ApnSetting.AuthType": {
+    "flag": false,
+    "values": {
+      "0": "AUTH_TYPE_NONE",
+      "1": "AUTH_TYPE_PAP",
+      "2": "AUTH_TYPE_CHAP",
+      "3": "AUTH_TYPE_PAP_OR_CHAP"
+    }
+  },
+  "android.telephony.data.ApnSetting.MvnoType": {
+    "flag": false,
+    "values": {
+      "0": "MVNO_TYPE_SPN",
+      "1": "MVNO_TYPE_IMSI",
+      "2": "MVNO_TYPE_GID",
+      "3": "MVNO_TYPE_ICCID"
+    }
+  },
+  "android.telephony.data.ApnSetting.ProtocolType": {
+    "flag": false,
+    "values": {
+      "0": "PROTOCOL_IP",
+      "1": "PROTOCOL_IPV6",
+      "2": "PROTOCOL_IPV4V6",
+      "3": "PROTOCOL_PPP",
+      "4": "PROTOCOL_NON_IP",
+      "5": "PROTOCOL_UNSTRUCTURED"
+    }
+  },
+  "android.telephony.data.ApnSetting.Skip464XlatStatus": {
+    "flag": false,
+    "values": {
+      "-1": "SKIP_464XLAT_DEFAULT",
+      "0": "SKIP_464XLAT_DISABLE",
+      "1": "SKIP_464XLAT_ENABLE"
+    }
+  },
+  "android.telephony.data.ApnThrottleStatus.RetryType": {
+    "flag": true,
+    "values": {
+      "1": "RETRY_TYPE_NONE",
+      "2": "RETRY_TYPE_NEW_CONNECTION",
+      "3": "RETRY_TYPE_HANDOVER"
+    }
+  },
+  "android.telephony.data.ApnThrottleStatus.ThrottleType": {
+    "flag": true,
+    "values": {
+      "1": "THROTTLE_TYPE_NONE",
+      "2": "THROTTLE_TYPE_ELAPSED_TIME"
+    }
+  },
+  "android.telephony.data.DataCallResponse.HandoverFailureMode": {
+    "flag": false,
+    "values": {
+      "-1": "HANDOVER_FAILURE_MODE_UNKNOWN",
+      "0": "HANDOVER_FAILURE_MODE_LEGACY",
+      "1": "HANDOVER_FAILURE_MODE_DO_FALLBACK",
+      "2": "HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER",
+      "3": "HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL"
+    }
+  },
+  "android.telephony.data.DataCallResponse.LinkStatus": {
+    "flag": false,
+    "values": {
+      "-1": "LINK_STATUS_UNKNOWN",
+      "0": "LINK_STATUS_INACTIVE",
+      "1": "LINK_STATUS_DORMANT",
+      "2": "LINK_STATUS_ACTIVE"
+    }
+  },
+  "android.telephony.data.DataProfile.Type": {
+    "flag": false,
+    "values": {
+      "0": "TYPE_COMMON",
+      "1": "TYPE_3GPP",
+      "2": "TYPE_3GPP2"
+    }
+  },
+  "android.telephony.data.DataService.DeactivateDataReason": {
+    "flag": false,
+    "values": {
+      "0": "REQUEST_REASON_UNKNOWN",
+      "1": "REQUEST_REASON_NORMAL",
+      "2": "REQUEST_REASON_SHUTDOWN",
+      "3": "REQUEST_REASON_HANDOVER"
+    }
+  },
+  "android.telephony.data.DataService.SetupDataReason": {
+    "flag": false,
+    "values": {
+      "0": "REQUEST_REASON_UNKNOWN",
+      "1": "REQUEST_REASON_NORMAL",
+      "3": "REQUEST_REASON_HANDOVER"
+    }
+  },
+  "android.telephony.data.DataServiceCallback.ResultCode": {
+    "flag": false,
+    "values": {
+      "0": "RESULT_SUCCESS",
+      "1": "RESULT_ERROR_UNSUPPORTED",
+      "2": "RESULT_ERROR_INVALID_ARG",
+      "3": "RESULT_ERROR_BUSY",
+      "4": "RESULT_ERROR_ILLEGAL_STATE"
+    }
+  },
+  "android.telephony.data.Qos.QosType": {
+    "flag": false,
+    "values": {
+      "1": "QOS_TYPE_EPS",
+      "2": "QOS_TYPE_NR"
+    }
+  },
+  "android.telephony.data.QosFilter.QosFilterDirection": {
+    "flag": false,
+    "values": {
+      "0": "QOS_FILTER_DIRECTION_DOWNLINK",
+      "1": "QOS_FILTER_DIRECTION_UPLINK",
+      "2": "QOS_FILTER_DIRECTION_BIDIRECTIONAL"
+    }
+  },
+  "android.telephony.data.QosFilter.QosProtocol": {
+    "flag": false,
+    "values": {
+      "-1": "QOS_PROTOCOL_UNSPECIFIED",
+      "6": "QOS_PROTOCOL_TCP",
+      "17": "QOS_PROTOCOL_UDP",
+      "50": "QOS_PROTOCOL_ESP",
+      "51": "QOS_PROTOCOL_AH"
+    }
+  },
+  "android.telephony.emergency.EmergencyNumber.EmergencyCallRouting": {
+    "flag": false,
+    "values": {
+      "0": "EMERGENCY_CALL_ROUTING_UNKNOWN",
+      "1": "EMERGENCY_CALL_ROUTING_EMERGENCY",
+      "2": "EMERGENCY_CALL_ROUTING_NORMAL"
+    }
+  },
+  "android.telephony.emergency.EmergencyNumber.EmergencyNumberSources": {
+    "flag": true,
+    "values": {
+      "1": "EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING",
+      "2": "EMERGENCY_NUMBER_SOURCE_SIM",
+      "16": "EMERGENCY_NUMBER_SOURCE_DATABASE",
+      "4": "EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG",
+      "8": "EMERGENCY_NUMBER_SOURCE_DEFAULT"
+    }
+  },
+  "android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories": {
+    "flag": true,
+    "values": {
+      "0": "EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED",
+      "1": "EMERGENCY_SERVICE_CATEGORY_POLICE",
+      "2": "EMERGENCY_SERVICE_CATEGORY_AMBULANCE",
+      "4": "EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE",
+      "8": "EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD",
+      "16": "EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE",
+      "32": "EMERGENCY_SERVICE_CATEGORY_MIEC",
+      "64": "EMERGENCY_SERVICE_CATEGORY_AIEC"
+    }
+  },
+  "android.telephony.euicc.EuiccCardManager.CancelReason": {
+    "flag": false,
+    "values": {
+      "0": "CANCEL_REASON_END_USER_REJECTED",
+      "1": "CANCEL_REASON_POSTPONED",
+      "2": "CANCEL_REASON_TIMEOUT",
+      "3": "CANCEL_REASON_PPR_NOT_ALLOWED"
+    }
+  },
+  "android.telephony.euicc.EuiccCardManager.ResetOption": {
+    "flag": true,
+    "values": {
+      "1": "RESET_OPTION_DELETE_OPERATIONAL_PROFILES",
+      "2": "RESET_OPTION_DELETE_FIELD_LOADED_TEST_PROFILES",
+      "4": "RESET_OPTION_RESET_DEFAULT_SMDP_ADDRESS"
+    }
+  },
+  "android.telephony.euicc.EuiccManager.ErrorCode": {
+    "flag": false,
+    "values": {
+      "10000": "ERROR_CARRIER_LOCKED",
+      "10001": "ERROR_INVALID_ACTIVATION_CODE",
+      "10002": "ERROR_INVALID_CONFIRMATION_CODE",
+      "10003": "ERROR_INCOMPATIBLE_CARRIER",
+      "10004": "ERROR_EUICC_INSUFFICIENT_MEMORY",
+      "10005": "ERROR_TIME_OUT",
+      "10006": "ERROR_EUICC_MISSING",
+      "10007": "ERROR_UNSUPPORTED_VERSION",
+      "10008": "ERROR_SIM_MISSING",
+      "10009": "ERROR_INSTALL_PROFILE",
+      "10010": "ERROR_DISALLOWED_BY_PPR",
+      "10011": "ERROR_ADDRESS_MISSING",
+      "10012": "ERROR_CERTIFICATE_ERROR",
+      "10013": "ERROR_NO_PROFILES_AVAILABLE",
+      "10014": "ERROR_CONNECTION_ERROR",
+      "10015": "ERROR_INVALID_RESPONSE",
+      "10016": "ERROR_OPERATION_BUSY"
+    }
+  },
+  "android.telephony.euicc.EuiccManager.EuiccActivationType": {
+    "flag": false,
+    "values": {
+      "1": "EUICC_ACTIVATION_TYPE_DEFAULT",
+      "2": "EUICC_ACTIVATION_TYPE_BACKUP",
+      "3": "EUICC_ACTIVATION_TYPE_TRANSFER",
+      "4": "EUICC_ACTIVATION_TYPE_ACCOUNT_REQUIRED"
+    }
+  },
+  "android.telephony.euicc.EuiccManager.OperationCode": {
+    "flag": false,
+    "values": {
+      "1": "OPERATION_SYSTEM",
+      "2": "OPERATION_SIM_SLOT",
+      "3": "OPERATION_EUICC_CARD",
+      "4": "OPERATION_SWITCH",
+      "5": "OPERATION_DOWNLOAD",
+      "6": "OPERATION_METADATA",
+      "7": "OPERATION_EUICC_GSMA",
+      "8": "OPERATION_APDU",
+      "9": "OPERATION_SMDX",
+      "11": "OPERATION_HTTP",
+      "10": "OPERATION_SMDX_SUBJECT_REASON_CODE"
+    }
+  },
+  "android.telephony.euicc.EuiccManager.OtaStatus": {
+    "flag": false,
+    "values": {
+      "1": "EUICC_OTA_IN_PROGRESS",
+      "2": "EUICC_OTA_FAILED",
+      "3": "EUICC_OTA_SUCCEEDED",
+      "4": "EUICC_OTA_NOT_NEEDED",
+      "5": "EUICC_OTA_STATUS_UNAVAILABLE"
+    }
+  },
+  "android.telephony.euicc.EuiccNotification.Event": {
+    "flag": true,
+    "values": {
+      "1": "EVENT_INSTALL",
+      "2": "EVENT_ENABLE",
+      "4": "EVENT_DISABLE",
+      "8": "EVENT_DELETE"
+    }
+  },
+  "android.telephony.euicc.EuiccRulesAuthTable.PolicyRuleFlag": {
+    "flag": true,
+    "values": {
+      "1": "POLICY_RULE_FLAG_CONSENT_REQUIRED"
+    }
+  },
+  "android.telephony.ims.DelegateRegistrationState.DeregisteredReason": {
+    "flag": false,
+    "values": {
+      "0": "DEREGISTERED_REASON_UNKNOWN",
+      "1": "DEREGISTERED_REASON_NOT_PROVISIONED",
+      "2": "DEREGISTERED_REASON_NOT_REGISTERED"
+    }
+  },
+  "android.telephony.ims.DelegateRegistrationState.DeregisteringReason": {
+    "flag": false,
+    "values": {
+      "3": "DEREGISTERING_REASON_PDN_CHANGE",
+      "4": "DEREGISTERING_REASON_PROVISIONING_CHANGE",
+      "5": "DEREGISTERING_REASON_FEATURE_TAGS_CHANGING",
+      "6": "DEREGISTERING_REASON_DESTROY_PENDING"
+    }
+  },
+  "android.telephony.ims.ImsCallForwardInfo.CallForwardReasons": {
+    "flag": false,
+    "values": {
+      "0": "CDIV_CF_REASON_UNCONDITIONAL",
+      "1": "CDIV_CF_REASON_BUSY",
+      "2": "CDIV_CF_REASON_NO_REPLY",
+      "3": "CDIV_CF_REASON_NOT_REACHABLE",
+      "4": "CDIV_CF_REASON_ALL",
+      "5": "CDIV_CF_REASON_ALL_CONDITIONAL",
+      "6": "CDIV_CF_REASON_NOT_LOGGED_IN"
+    }
+  },
+  "android.telephony.ims.ImsCallForwardInfo.CallForwardStatus": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_NOT_ACTIVE",
+      "1": "STATUS_ACTIVE"
+    }
+  },
+  "android.telephony.ims.ImsCallForwardInfo.TypeOfAddress": {
+    "flag": false,
+    "values": {
+      "145": "TYPE_OF_ADDRESS_INTERNATIONAL",
+      "129": "TYPE_OF_ADDRESS_UNKNOWN"
+    }
+  },
+  "android.telephony.ims.ImsCallProfile.CallRestrictCause": {
+    "flag": false,
+    "values": {
+      "0": "CALL_RESTRICT_CAUSE_NONE",
+      "1": "CALL_RESTRICT_CAUSE_RAT",
+      "2": "CALL_RESTRICT_CAUSE_DISABLED",
+      "3": "CALL_RESTRICT_CAUSE_HD"
+    }
+  },
+  "android.telephony.ims.ImsCallProfile.VerificationStatus": {
+    "flag": false,
+    "values": {
+      "0": "VERIFICATION_STATUS_NOT_VERIFIED",
+      "1": "VERIFICATION_STATUS_PASSED",
+      "2": "VERIFICATION_STATUS_FAILED"
+    }
+  },
+  "android.telephony.ims.ImsException.ImsErrorCode": {
+    "flag": false,
+    "values": {
+      "0": "CODE_ERROR_UNSPECIFIED",
+      "1": "CODE_ERROR_SERVICE_UNAVAILABLE",
+      "2": "CODE_ERROR_UNSUPPORTED_OPERATION",
+      "3": "CODE_ERROR_INVALID_SUBSCRIPTION"
+    }
+  },
+  "android.telephony.ims.ImsExternalCallState.ExternalCallState": {
+    "flag": true,
+    "values": {
+      "1": "CALL_STATE_CONFIRMED",
+      "2": "CALL_STATE_TERMINATED"
+    }
+  },
+  "android.telephony.ims.ImsExternalCallState.ExternalCallType": {
+    "flag": true,
+    "values": {
+      "2": "CALL_TYPE_VOICE",
+      "5": "CALL_TYPE_VT_TX",
+      "6": "CALL_TYPE_VT_RX",
+      "4": "CALL_TYPE_VT"
+    }
+  },
+  "android.telephony.ims.ImsMmTelManager.WiFiCallingMode": {
+    "flag": false,
+    "values": {
+      "0": "WIFI_MODE_WIFI_ONLY",
+      "1": "WIFI_MODE_CELLULAR_PREFERRED",
+      "2": "WIFI_MODE_WIFI_PREFERRED"
+    }
+  },
+  "android.telephony.ims.ImsReasonInfo.ImsCode": {
+    "flag": false,
+    "values": {
+      "0": "CODE_UNSPECIFIED",
+      "101": "CODE_LOCAL_ILLEGAL_ARGUMENT",
+      "102": "CODE_LOCAL_ILLEGAL_STATE",
+      "103": "CODE_LOCAL_INTERNAL_ERROR",
+      "106": "CODE_LOCAL_IMS_SERVICE_DOWN",
+      "107": "CODE_LOCAL_NO_PENDING_CALL",
+      "108": "CODE_LOCAL_ENDED_BY_CONFERENCE_MERGE",
+      "111": "CODE_LOCAL_POWER_OFF",
+      "112": "CODE_LOCAL_LOW_BATTERY",
+      "121": "CODE_LOCAL_NETWORK_NO_SERVICE",
+      "122": "CODE_LOCAL_NETWORK_NO_LTE_COVERAGE",
+      "123": "CODE_LOCAL_NETWORK_ROAMING",
+      "124": "CODE_LOCAL_NETWORK_IP_CHANGED",
+      "131": "CODE_LOCAL_SERVICE_UNAVAILABLE",
+      "132": "CODE_LOCAL_NOT_REGISTERED",
+      "141": "CODE_LOCAL_CALL_EXCEEDED",
+      "142": "CODE_LOCAL_CALL_BUSY",
+      "143": "CODE_LOCAL_CALL_DECLINE",
+      "144": "CODE_LOCAL_CALL_VCC_ON_PROGRESSING",
+      "145": "CODE_LOCAL_CALL_RESOURCE_RESERVATION_FAILED",
+      "146": "CODE_LOCAL_CALL_CS_RETRY_REQUIRED",
+      "147": "CODE_LOCAL_CALL_VOLTE_RETRY_REQUIRED",
+      "148": "CODE_LOCAL_CALL_TERMINATED",
+      "149": "CODE_LOCAL_HO_NOT_FEASIBLE",
+      "201": "CODE_TIMEOUT_1XX_WAITING",
+      "202": "CODE_TIMEOUT_NO_ANSWER",
+      "203": "CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE",
+      "240": "CODE_CALL_BARRED",
+      "241": "CODE_FDN_BLOCKED",
+      "243": "CODE_IMEI_NOT_ACCEPTED",
+      "244": "CODE_DIAL_MODIFIED_TO_USSD",
+      "245": "CODE_DIAL_MODIFIED_TO_SS",
+      "246": "CODE_DIAL_MODIFIED_TO_DIAL",
+      "247": "CODE_DIAL_MODIFIED_TO_DIAL_VIDEO",
+      "248": "CODE_DIAL_VIDEO_MODIFIED_TO_DIAL",
+      "249": "CODE_DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO",
+      "250": "CODE_DIAL_VIDEO_MODIFIED_TO_SS",
+      "251": "CODE_DIAL_VIDEO_MODIFIED_TO_USSD",
+      "321": "CODE_SIP_REDIRECTED",
+      "331": "CODE_SIP_BAD_REQUEST",
+      "332": "CODE_SIP_FORBIDDEN",
+      "333": "CODE_SIP_NOT_FOUND",
+      "334": "CODE_SIP_NOT_SUPPORTED",
+      "335": "CODE_SIP_REQUEST_TIMEOUT",
+      "336": "CODE_SIP_TEMPRARILY_UNAVAILABLE",
+      "337": "CODE_SIP_BAD_ADDRESS",
+      "338": "CODE_SIP_BUSY",
+      "339": "CODE_SIP_REQUEST_CANCELLED",
+      "340": "CODE_SIP_NOT_ACCEPTABLE",
+      "341": "CODE_SIP_NOT_REACHABLE",
+      "342": "CODE_SIP_CLIENT_ERROR",
+      "343": "CODE_SIP_TRANSACTION_DOES_NOT_EXIST",
+      "351": "CODE_SIP_SERVER_INTERNAL_ERROR",
+      "352": "CODE_SIP_SERVICE_UNAVAILABLE",
+      "353": "CODE_SIP_SERVER_TIMEOUT",
+      "354": "CODE_SIP_SERVER_ERROR",
+      "361": "CODE_SIP_USER_REJECTED",
+      "362": "CODE_SIP_GLOBAL_ERROR",
+      "363": "CODE_EMERGENCY_TEMP_FAILURE",
+      "364": "CODE_EMERGENCY_PERM_FAILURE",
+      "365": "CODE_SIP_USER_MARKED_UNWANTED",
+      "366": "CODE_SIP_METHOD_NOT_ALLOWED",
+      "367": "CODE_SIP_PROXY_AUTHENTICATION_REQUIRED",
+      "368": "CODE_SIP_REQUEST_ENTITY_TOO_LARGE",
+      "369": "CODE_SIP_REQUEST_URI_TOO_LARGE",
+      "370": "CODE_SIP_EXTENSION_REQUIRED",
+      "371": "CODE_SIP_INTERVAL_TOO_BRIEF",
+      "372": "CODE_SIP_CALL_OR_TRANS_DOES_NOT_EXIST",
+      "373": "CODE_SIP_LOOP_DETECTED",
+      "374": "CODE_SIP_TOO_MANY_HOPS",
+      "376": "CODE_SIP_AMBIGUOUS",
+      "377": "CODE_SIP_REQUEST_PENDING",
+      "378": "CODE_SIP_UNDECIPHERABLE",
+      "401": "CODE_MEDIA_INIT_FAILED",
+      "402": "CODE_MEDIA_NO_DATA",
+      "403": "CODE_MEDIA_NOT_ACCEPTABLE",
+      "404": "CODE_MEDIA_UNSPECIFIED",
+      "501": "CODE_USER_TERMINATED",
+      "502": "CODE_USER_NOANSWER",
+      "503": "CODE_USER_IGNORE",
+      "504": "CODE_USER_DECLINE",
+      "505": "CODE_LOW_BATTERY",
+      "506": "CODE_BLACKLISTED_CALL_ID",
+      "510": "CODE_USER_TERMINATED_BY_REMOTE",
+      "511": "CODE_USER_REJECTED_SESSION_MODIFICATION",
+      "512": "CODE_USER_CANCELLED_SESSION_MODIFICATION",
+      "1517": "CODE_SESSION_MODIFICATION_FAILED",
+      "801": "CODE_UT_NOT_SUPPORTED",
+      "802": "CODE_UT_SERVICE_UNAVAILABLE",
+      "803": "CODE_UT_OPERATION_NOT_ALLOWED",
+      "804": "CODE_UT_NETWORK_ERROR",
+      "821": "CODE_UT_CB_PASSWORD_MISMATCH",
+      "822": "CODE_UT_SS_MODIFIED_TO_DIAL",
+      "823": "CODE_UT_SS_MODIFIED_TO_USSD",
+      "824": "CODE_UT_SS_MODIFIED_TO_SS",
+      "825": "CODE_UT_SS_MODIFIED_TO_DIAL_VIDEO",
+      "901": "CODE_ECBM_NOT_SUPPORTED",
+      "902": "CODE_MULTIENDPOINT_NOT_SUPPORTED",
+      "1000": "CODE_REGISTRATION_ERROR",
+      "1014": "CODE_ANSWERED_ELSEWHERE",
+      "1015": "CODE_CALL_PULL_OUT_OF_SYNC",
+      "1016": "CODE_CALL_END_CAUSE_CALL_PULL",
+      "1100": "CODE_CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE",
+      "1017": "CODE_REJECTED_ELSEWHERE",
+      "1201": "CODE_SUPP_SVC_FAILED",
+      "1202": "CODE_SUPP_SVC_CANCELLED",
+      "1203": "CODE_SUPP_SVC_REINVITE_COLLISION",
+      "1300": "CODE_IWLAN_DPD_FAILURE",
+      "1400": "CODE_EPDG_TUNNEL_ESTABLISH_FAILURE",
+      "1401": "CODE_EPDG_TUNNEL_REKEY_FAILURE",
+      "1402": "CODE_EPDG_TUNNEL_LOST_CONNECTION",
+      "1403": "CODE_MAXIMUM_NUMBER_OF_CALLS_REACHED",
+      "1404": "CODE_REMOTE_CALL_DECLINE",
+      "1405": "CODE_DATA_LIMIT_REACHED",
+      "1406": "CODE_DATA_DISABLED",
+      "1407": "CODE_WIFI_LOST",
+      "1408": "CODE_IKEV2_AUTH_FAILURE",
+      "1500": "CODE_RADIO_OFF",
+      "1501": "CODE_NO_VALID_SIM",
+      "1502": "CODE_RADIO_INTERNAL_ERROR",
+      "1503": "CODE_NETWORK_RESP_TIMEOUT",
+      "1504": "CODE_NETWORK_REJECT",
+      "1505": "CODE_RADIO_ACCESS_FAILURE",
+      "1506": "CODE_RADIO_LINK_FAILURE",
+      "1507": "CODE_RADIO_LINK_LOST",
+      "1508": "CODE_RADIO_UPLINK_FAILURE",
+      "1509": "CODE_RADIO_SETUP_FAILURE",
+      "1510": "CODE_RADIO_RELEASE_NORMAL",
+      "1511": "CODE_RADIO_RELEASE_ABNORMAL",
+      "1512": "CODE_ACCESS_CLASS_BLOCKED",
+      "1513": "CODE_NETWORK_DETACH",
+      "1514": "CODE_SIP_ALTERNATE_EMERGENCY_CALL",
+      "1515": "CODE_UNOBTAINABLE_NUMBER",
+      "1516": "CODE_NO_CSFB_IN_CS_ROAM",
+      "1600": "CODE_REJECT_UNKNOWN",
+      "1601": "CODE_REJECT_ONGOING_CALL_WAITING_DISABLED",
+      "1602": "CODE_REJECT_CALL_ON_OTHER_SUB",
+      "1603": "CODE_REJECT_1X_COLLISION",
+      "1604": "CODE_REJECT_SERVICE_NOT_REGISTERED",
+      "1605": "CODE_REJECT_CALL_TYPE_NOT_ALLOWED",
+      "1606": "CODE_REJECT_ONGOING_E911_CALL",
+      "1607": "CODE_REJECT_ONGOING_CALL_SETUP",
+      "1608": "CODE_REJECT_MAX_CALL_LIMIT_REACHED",
+      "1609": "CODE_REJECT_UNSUPPORTED_SIP_HEADERS",
+      "1610": "CODE_REJECT_UNSUPPORTED_SDP_HEADERS",
+      "1611": "CODE_REJECT_ONGOING_CALL_TRANSFER",
+      "1612": "CODE_REJECT_INTERNAL_ERROR",
+      "1613": "CODE_REJECT_QOS_FAILURE",
+      "1614": "CODE_REJECT_ONGOING_HANDOVER",
+      "1615": "CODE_REJECT_VT_TTY_NOT_ALLOWED",
+      "1616": "CODE_REJECT_ONGOING_CALL_UPGRADE",
+      "1617": "CODE_REJECT_CONFERENCE_TTY_NOT_ALLOWED",
+      "1618": "CODE_REJECT_ONGOING_CONFERENCE_CALL",
+      "1619": "CODE_REJECT_VT_AVPF_NOT_ALLOWED",
+      "1620": "CODE_REJECT_ONGOING_ENCRYPTED_CALL",
+      "1621": "CODE_REJECT_ONGOING_CS_CALL",
+      "3001": "CODE_RETRY_ON_IMS_WITHOUT_RTT",
+      "61441": "CODE_OEM_CAUSE_1",
+      "61442": "CODE_OEM_CAUSE_2",
+      "61443": "CODE_OEM_CAUSE_3",
+      "61444": "CODE_OEM_CAUSE_4",
+      "61445": "CODE_OEM_CAUSE_5",
+      "61446": "CODE_OEM_CAUSE_6",
+      "61447": "CODE_OEM_CAUSE_7",
+      "61448": "CODE_OEM_CAUSE_8",
+      "61449": "CODE_OEM_CAUSE_9",
+      "61450": "CODE_OEM_CAUSE_10",
+      "61451": "CODE_OEM_CAUSE_11",
+      "61452": "CODE_OEM_CAUSE_12",
+      "61453": "CODE_OEM_CAUSE_13",
+      "61454": "CODE_OEM_CAUSE_14",
+      "61455": "CODE_OEM_CAUSE_15"
+    }
+  },
+  "android.telephony.ims.ImsReasonInfo.UtReason": {
+    "flag": false,
+    "values": {
+      "801": "CODE_UT_NOT_SUPPORTED",
+      "802": "CODE_UT_SERVICE_UNAVAILABLE",
+      "803": "CODE_UT_OPERATION_NOT_ALLOWED",
+      "804": "CODE_UT_NETWORK_ERROR",
+      "821": "CODE_UT_CB_PASSWORD_MISMATCH",
+      "822": "CODE_UT_SS_MODIFIED_TO_DIAL",
+      "823": "CODE_UT_SS_MODIFIED_TO_USSD",
+      "824": "CODE_UT_SS_MODIFIED_TO_SS",
+      "825": "CODE_UT_SS_MODIFIED_TO_DIAL_VIDEO"
+    }
+  },
+  "android.telephony.ims.ImsSsData.RequestType": {
+    "flag": true,
+    "values": {
+      "0": "SS_ACTIVATION",
+      "1": "SS_DEACTIVATION",
+      "2": "SS_INTERROGATION",
+      "3": "SS_REGISTRATION",
+      "4": "SS_ERASURE"
+    }
+  },
+  "android.telephony.ims.ImsSsData.ServiceClassFlags": {
+    "flag": true,
+    "values": {
+      "0": "SERVICE_CLASS_NONE",
+      "1": "SERVICE_CLASS_VOICE",
+      "2": "SERVICE_CLASS_DATA",
+      "4": "SERVICE_CLASS_FAX",
+      "8": "SERVICE_CLASS_SMS",
+      "16": "SERVICE_CLASS_DATA_CIRCUIT_SYNC",
+      "32": "SERVICE_CLASS_DATA_CIRCUIT_ASYNC",
+      "64": "SERVICE_CLASS_DATA_PACKET_ACCESS",
+      "128": "SERVICE_CLASS_DATA_PAD"
+    }
+  },
+  "android.telephony.ims.ImsSsData.ServiceType": {
+    "flag": true,
+    "values": {
+      "0": "SS_CFU",
+      "1": "SS_CF_BUSY",
+      "2": "SS_CF_NO_REPLY",
+      "3": "SS_CF_NOT_REACHABLE",
+      "4": "SS_CF_ALL",
+      "5": "SS_CF_ALL_CONDITIONAL",
+      "6": "SS_CFUT",
+      "7": "SS_CLIP",
+      "8": "SS_CLIR",
+      "9": "SS_COLP",
+      "10": "SS_COLR",
+      "11": "SS_CNAP",
+      "12": "SS_WAIT",
+      "13": "SS_BAOC",
+      "14": "SS_BAOIC",
+      "15": "SS_BAOIC_EXC_HOME",
+      "16": "SS_BAIC",
+      "17": "SS_BAIC_ROAMING",
+      "18": "SS_ALL_BARRING",
+      "19": "SS_OUTGOING_BARRING",
+      "20": "SS_INCOMING_BARRING",
+      "21": "SS_INCOMING_BARRING_DN",
+      "22": "SS_INCOMING_BARRING_ANONYMOUS"
+    }
+  },
+  "android.telephony.ims.ImsSsData.TeleserviceType": {
+    "flag": true,
+    "values": {
+      "0": "SS_ALL_TELE_AND_BEARER_SERVICES",
+      "1": "SS_ALL_TELESEVICES",
+      "2": "SS_TELEPHONY",
+      "3": "SS_ALL_DATA_TELESERVICES",
+      "4": "SS_SMS_SERVICES",
+      "5": "SS_ALL_TELESERVICES_EXCEPT_SMS"
+    }
+  },
+  "android.telephony.ims.ImsSsInfo.ClirInterrogationStatus": {
+    "flag": false,
+    "values": {
+      "0": "CLIR_STATUS_NOT_PROVISIONED",
+      "1": "CLIR_STATUS_PROVISIONED_PERMANENT",
+      "2": "CLIR_STATUS_UNKNOWN",
+      "3": "CLIR_STATUS_TEMPORARILY_RESTRICTED",
+      "4": "CLIR_STATUS_TEMPORARILY_ALLOWED"
+    }
+  },
+  "android.telephony.ims.ImsSsInfo.ClirOutgoingState": {
+    "flag": false,
+    "values": {
+      "0": "CLIR_OUTGOING_DEFAULT",
+      "1": "CLIR_OUTGOING_INVOCATION",
+      "2": "CLIR_OUTGOING_SUPPRESSION"
+    }
+  },
+  "android.telephony.ims.ImsSsInfo.ServiceProvisionStatus": {
+    "flag": false,
+    "values": {
+      "-1": "SERVICE_PROVISIONING_UNKNOWN",
+      "0": "SERVICE_NOT_PROVISIONED",
+      "1": "SERVICE_PROVISIONED"
+    }
+  },
+  "android.telephony.ims.ImsSsInfo.ServiceStatus": {
+    "flag": false,
+    "values": {
+      "-1": "NOT_REGISTERED",
+      "0": "DISABLED",
+      "1": "ENABLED"
+    }
+  },
+  "android.telephony.ims.RcsContactUceCapability.CapabilityMechanism": {
+    "flag": false,
+    "values": {
+      "1": "CAPABILITY_MECHANISM_PRESENCE",
+      "2": "CAPABILITY_MECHANISM_OPTIONS"
+    }
+  },
+  "android.telephony.ims.RcsContactUceCapability.RequestResult": {
+    "flag": false,
+    "values": {
+      "0": "REQUEST_RESULT_NOT_ONLINE",
+      "1": "REQUEST_RESULT_NOT_FOUND",
+      "2": "REQUEST_RESULT_FOUND",
+      "3": "REQUEST_RESULT_UNKNOWN"
+    }
+  },
+  "android.telephony.ims.RcsContactUceCapability.SourceType": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_TYPE_NETWORK",
+      "1": "SOURCE_TYPE_CACHED"
+    }
+  },
+  "android.telephony.ims.RcsUceAdapter.ErrorCode": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_GENERIC_FAILURE",
+      "2": "ERROR_NOT_ENABLED",
+      "3": "ERROR_NOT_AVAILABLE",
+      "4": "ERROR_NOT_REGISTERED",
+      "5": "ERROR_NOT_AUTHORIZED",
+      "6": "ERROR_FORBIDDEN",
+      "7": "ERROR_NOT_FOUND",
+      "8": "ERROR_REQUEST_TOO_LARGE",
+      "10": "ERROR_REQUEST_TIMEOUT",
+      "11": "ERROR_INSUFFICIENT_MEMORY",
+      "12": "ERROR_LOST_NETWORK",
+      "13": "ERROR_SERVER_UNAVAILABLE"
+    }
+  },
+  "android.telephony.ims.RcsUceAdapter.PublishState": {
+    "flag": false,
+    "values": {
+      "1": "PUBLISH_STATE_OK",
+      "2": "PUBLISH_STATE_NOT_PUBLISHED",
+      "3": "PUBLISH_STATE_VOLTE_PROVISION_ERROR",
+      "4": "PUBLISH_STATE_RCS_PROVISION_ERROR",
+      "5": "PUBLISH_STATE_REQUEST_TIMEOUT",
+      "6": "PUBLISH_STATE_OTHER_ERROR"
+    }
+  },
+  "android.telephony.ims.RcsUceAdapter.RcsImsCapabilityFlag": {
+    "flag": false,
+    "values": {
+      "1": "CAPABILITY_TYPE_OPTIONS_UCE",
+      "2": "CAPABILITY_TYPE_PRESENCE_UCE"
+    }
+  },
+  "android.telephony.ims.RcsUceAdapter.StackPublishTriggerType": {
+    "flag": false,
+    "values": {
+      "0": "CAPABILITY_UPDATE_TRIGGER_ETAG_EXPIRED",
+      "1": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_LTE_VOPS_DISABLED",
+      "2": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_LTE_VOPS_ENABLED",
+      "3": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_EHRPD",
+      "4": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_HSPAPLUS",
+      "5": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_3G",
+      "6": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_2G",
+      "7": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_WLAN",
+      "8": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_IWLAN",
+      "9": "CAPABILITY_UPDATE_TRIGGER_UNKNOWN",
+      "10": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_NR5G_VOPS_DISABLED",
+      "11": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_NR5G_VOPS_ENABLED"
+    }
+  },
+  "android.telephony.ims.RegistrationManager.ImsRegistrationState": {
+    "flag": false,
+    "values": {
+      "0": "REGISTRATION_STATE_NOT_REGISTERED",
+      "1": "REGISTRATION_STATE_REGISTERING",
+      "2": "REGISTRATION_STATE_REGISTERED"
+    }
+  },
+  "android.telephony.ims.SipDelegateManager.DeniedReason": {
+    "flag": false,
+    "values": {
+      "0": "DENIED_REASON_UNKNOWN",
+      "1": "DENIED_REASON_IN_USE_BY_ANOTHER_DELEGATE",
+      "2": "DENIED_REASON_NOT_ALLOWED",
+      "3": "DENIED_REASON_SINGLE_REGISTRATION_NOT_ALLOWED",
+      "4": "DENIED_REASON_INVALID"
+    }
+  },
+  "android.telephony.ims.SipDelegateManager.MessageFailureReason": {
+    "flag": false,
+    "values": {
+      "0": "MESSAGE_FAILURE_REASON_UNKNOWN",
+      "1": "MESSAGE_FAILURE_REASON_DELEGATE_DEAD",
+      "2": "MESSAGE_FAILURE_REASON_DELEGATE_CLOSED",
+      "3": "MESSAGE_FAILURE_REASON_INVALID_START_LINE",
+      "4": "MESSAGE_FAILURE_REASON_INVALID_HEADER_FIELDS",
+      "5": "MESSAGE_FAILURE_REASON_INVALID_BODY_CONTENT",
+      "6": "MESSAGE_FAILURE_REASON_INVALID_FEATURE_TAG",
+      "7": "MESSAGE_FAILURE_REASON_TAG_NOT_ENABLED_FOR_DELEGATE",
+      "8": "MESSAGE_FAILURE_REASON_NETWORK_NOT_AVAILABLE",
+      "9": "MESSAGE_FAILURE_REASON_NOT_REGISTERED",
+      "10": "MESSAGE_FAILURE_REASON_STALE_IMS_CONFIGURATION",
+      "11": "MESSAGE_FAILURE_REASON_INTERNAL_DELEGATE_STATE_TRANSITION"
+    }
+  },
+  "android.telephony.ims.SipDelegateManager.SipDelegateDestroyReason": {
+    "flag": false,
+    "values": {
+      "0": "SIP_DELEGATE_DESTROY_REASON_UNKNOWN",
+      "1": "SIP_DELEGATE_DESTROY_REASON_SERVICE_DEAD",
+      "2": "SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP",
+      "3": "SIP_DELEGATE_DESTROY_REASON_USER_DISABLED_RCS",
+      "4": "SIP_DELEGATE_DESTROY_REASON_SUBSCRIPTION_TORN_DOWN"
+    }
+  },
+  "android.telephony.ims.compat.feature.ImsFeature.ImsState": {
+    "flag": true,
+    "values": {
+      "0": "STATE_NOT_AVAILABLE",
+      "1": "STATE_INITIALIZING",
+      "2": "STATE_READY"
+    }
+  },
+  "android.telephony.ims.feature.ImsFeature.FeatureType": {
+    "flag": true,
+    "values": {
+      "0": "FEATURE_EMERGENCY_MMTEL",
+      "1": "FEATURE_MMTEL",
+      "2": "FEATURE_RCS"
+    }
+  },
+  "android.telephony.ims.feature.ImsFeature.ImsCapabilityError": {
+    "flag": true,
+    "values": {
+      "-1": "CAPABILITY_ERROR_GENERIC",
+      "0": "CAPABILITY_SUCCESS"
+    }
+  },
+  "android.telephony.ims.feature.ImsFeature.ImsState": {
+    "flag": true,
+    "values": {
+      "0": "STATE_UNAVAILABLE",
+      "1": "STATE_INITIALIZING",
+      "2": "STATE_READY"
+    }
+  },
+  "android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability": {
+    "flag": true,
+    "values": {
+      "1": "CAPABILITY_TYPE_VOICE",
+      "2": "CAPABILITY_TYPE_VIDEO",
+      "4": "CAPABILITY_TYPE_UT",
+      "8": "CAPABILITY_TYPE_SMS"
+    }
+  },
+  "android.telephony.ims.feature.MmTelFeature.ProcessCallResult": {
+    "flag": true,
+    "values": {
+      "0": "PROCESS_CALL_IMS",
+      "1": "PROCESS_CALL_CSFB"
+    }
+  },
+  "android.telephony.ims.feature.RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag": {
+    "flag": true,
+    "values": {
+      "0": "CAPABILITY_TYPE_NONE",
+      "1": "CAPABILITY_TYPE_OPTIONS_UCE",
+      "2": "CAPABILITY_TYPE_PRESENCE_UCE"
+    }
+  },
+  "android.telephony.ims.stub.ImsConfigImplBase.SetConfigResult": {
+    "flag": false,
+    "values": {
+      "0": "CONFIG_RESULT_SUCCESS",
+      "1": "CONFIG_RESULT_FAILED"
+    }
+  },
+  "android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech": {
+    "flag": true,
+    "values": {
+      "-1": "REGISTRATION_TECH_NONE",
+      "0": "REGISTRATION_TECH_LTE",
+      "1": "REGISTRATION_TECH_IWLAN"
+    }
+  },
+  "android.telephony.ims.stub.ImsSmsImplBase.DeliverStatusResult": {
+    "flag": false,
+    "values": {
+      "1": "DELIVER_STATUS_OK",
+      "2": "DELIVER_STATUS_ERROR_GENERIC",
+      "3": "DELIVER_STATUS_ERROR_NO_MEMORY",
+      "4": "DELIVER_STATUS_ERROR_REQUEST_NOT_SUPPORTED"
+    }
+  },
+  "android.telephony.ims.stub.ImsSmsImplBase.SendStatusResult": {
+    "flag": false,
+    "values": {
+      "1": "SEND_STATUS_OK",
+      "2": "SEND_STATUS_ERROR",
+      "3": "SEND_STATUS_ERROR_RETRY",
+      "4": "SEND_STATUS_ERROR_FALLBACK"
+    }
+  },
+  "android.telephony.ims.stub.ImsSmsImplBase.StatusReportResult": {
+    "flag": false,
+    "values": {
+      "1": "STATUS_REPORT_STATUS_OK",
+      "2": "STATUS_REPORT_STATUS_ERROR"
+    }
+  },
+  "android.telephony.ims.stub.ImsUtImplBase.CallBarringMode": {
+    "flag": false,
+    "values": {
+      "1": "CALL_BARRING_ALL_INCOMING",
+      "2": "CALL_BARRING_ALL_OUTGOING",
+      "3": "CALL_BARRING_OUTGOING_INTL",
+      "4": "CALL_BARRING_OUTGOING_INTL_EXCL_HOME",
+      "5": "CALL_BLOCKING_INCOMING_WHEN_ROAMING",
+      "6": "CALL_BARRING_ANONYMOUS_INCOMING",
+      "7": "CALL_BARRING_ALL",
+      "8": "CALL_BARRING_OUTGOING_ALL_SERVICES",
+      "9": "CALL_BARRING_INCOMING_ALL_SERVICES",
+      "10": "CALL_BARRING_SPECIFIC_INCOMING_CALLS"
+    }
+  },
+  "android.telephony.ims.stub.RcsCapabilityExchange.CommandCode": {
+    "flag": false,
+    "values": {
+      "0": "COMMAND_CODE_SERVICE_UNKNOWN",
+      "1": "COMMAND_CODE_SUCCESS",
+      "2": "COMMAND_CODE_GENERIC_FAILURE",
+      "3": "COMMAND_CODE_INVALID_PARAM",
+      "4": "COMMAND_CODE_FETCH_ERROR",
+      "5": "COMMAND_CODE_REQUEST_TIMEOUT",
+      "6": "COMMAND_CODE_INSUFFICIENT_MEMORY",
+      "7": "COMMAND_CODE_LOST_NETWORK_CONNECTION",
+      "8": "COMMAND_CODE_NOT_SUPPORTED",
+      "9": "COMMAND_CODE_NOT_FOUND",
+      "10": "COMMAND_CODE_SERVICE_UNAVAILABLE",
+      "11": "COMMAND_CODE_NO_CHANGE_IN_CAP"
+    }
+  },
+  "android.telephony.ims.stub.RcsCapabilityExchangeImplBase.CommandCode": {
+    "flag": false,
+    "values": {
+      "0": "COMMAND_CODE_SERVICE_UNKNOWN",
+      "1": "COMMAND_CODE_GENERIC_FAILURE",
+      "2": "COMMAND_CODE_INVALID_PARAM",
+      "3": "COMMAND_CODE_FETCH_ERROR",
+      "4": "COMMAND_CODE_REQUEST_TIMEOUT",
+      "5": "COMMAND_CODE_INSUFFICIENT_MEMORY",
+      "6": "COMMAND_CODE_LOST_NETWORK_CONNECTION",
+      "7": "COMMAND_CODE_NOT_SUPPORTED",
+      "8": "COMMAND_CODE_NOT_FOUND",
+      "9": "COMMAND_CODE_SERVICE_UNAVAILABLE",
+      "10": "COMMAND_CODE_NO_CHANGE"
+    }
+  },
+  "android.telephony.ims.stub.RcsPresenceExchangeImplBase.PresenceResponseCode": {
+    "flag": false,
+    "values": {
+      "-1": "RESPONSE_SUBSCRIBE_GENERIC_FAILURE",
+      "0": "RESPONSE_SUCCESS",
+      "1": "RESPONSE_NOT_REGISTERED",
+      "2": "RESPONSE_NOT_AUTHORIZED_FOR_PRESENCE",
+      "3": "RESPONSE_FORBIDDEN",
+      "4": "RESPONSE_NOT_FOUND",
+      "5": "RESPONSE_SIP_REQUEST_TIMEOUT",
+      "6": "RESPONSE_SUBSCRIBE_TOO_LARGE",
+      "7": "RESPONSE_SIP_INTERVAL_TOO_SHORT",
+      "8": "RESPONSE_SIP_SERVICE_UNAVAILABLE"
+    }
+  },
+  "android.telephony.ims.stub.RcsPresenceExchangeImplBase.StackPublishTriggerType": {
+    "flag": false,
+    "values": {
+      "0": "CAPABILITY_UPDATE_TRIGGER_ETAG_EXPIRED",
+      "1": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_LTE_VOPS_DISABLED",
+      "2": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_LTE_VOPS_ENABLED",
+      "3": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_EHRPD",
+      "4": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_HSPAPLUS",
+      "5": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_3G",
+      "6": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_2G",
+      "7": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_WLAN",
+      "8": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_IWLAN",
+      "9": "CAPABILITY_UPDATE_TRIGGER_UNKNOWN",
+      "10": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_NR5G_VOPS_DISABLED",
+      "11": "CAPABILITY_UPDATE_TRIGGER_MOVE_TO_NR5G_VOPS_ENABLED"
+    }
+  },
+  "android.telephony.ims.stub.RcsSipOptionsImplBase.SipResponseCode": {
+    "flag": false,
+    "values": {
+      "-1": "RESPONSE_GENERIC_FAILURE",
+      "0": "RESPONSE_SUCCESS",
+      "1": "RESPONSE_TEMPORARILY_UNAVAILABLE",
+      "2": "RESPONSE_REQUEST_TIMEOUT",
+      "3": "RESPONSE_NOT_FOUND",
+      "4": "RESPONSE_DOES_NOT_EXIST_ANYWHERE",
+      "5": "RESPONSE_BAD_REQUEST"
+    }
+  },
+  "android.telephony.mbms.GroupCall.GroupCallState": {
+    "flag": false,
+    "values": {
+      "1": "STATE_STOPPED",
+      "2": "STATE_STARTED",
+      "3": "STATE_STALLED"
+    }
+  },
+  "android.telephony.mbms.GroupCall.GroupCallStateChangeReason": {
+    "flag": false,
+    "values": {
+      "1": "REASON_BY_USER_REQUEST",
+      "3": "REASON_FREQUENCY_CONFLICT",
+      "4": "REASON_OUT_OF_MEMORY",
+      "5": "REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE",
+      "6": "REASON_LEFT_MBMS_BROADCAST_AREA",
+      "0": "REASON_NONE"
+    }
+  },
+  "android.telephony.mbms.GroupCallCallback.GroupCallError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED"
+    }
+  },
+  "android.telephony.mbms.MbmsDownloadSessionCallback.DownloadError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "102": "ERROR_APP_PERMISSIONS_NOT_GRANTED",
+      "101": "ERROR_DUPLICATE_INITIALIZE",
+      "103": "ERROR_UNABLE_TO_INITIALIZE",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED",
+      "401": "ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT",
+      "402": "ERROR_UNKNOWN_DOWNLOAD_REQUEST",
+      "403": "ERROR_UNKNOWN_FILE_INFO"
+    }
+  },
+  "android.telephony.mbms.MbmsErrors.MbmsError": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "101": "ERROR_DUPLICATE_INITIALIZE",
+      "102": "ERROR_APP_PERMISSIONS_NOT_GRANTED",
+      "103": "ERROR_UNABLE_TO_INITIALIZE",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED",
+      "301": "ERROR_CONCURRENT_SERVICE_LIMIT_REACHED",
+      "302": "ERROR_UNABLE_TO_START_SERVICE",
+      "303": "ERROR_DUPLICATE_START_STREAM",
+      "401": "ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT",
+      "402": "ERROR_UNKNOWN_DOWNLOAD_REQUEST",
+      "403": "ERROR_UNKNOWN_FILE_INFO",
+      "404": "ERROR_MALFORMED_SERVICE_ANNOUNCEMENT",
+      "501": "ERROR_UNABLE_TO_START_SERVICE",
+      "502": "ERROR_DUPLICATE_START_GROUP_CALL"
+    }
+  },
+  "android.telephony.mbms.MbmsGroupCallSessionCallback.GroupCallError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "102": "ERROR_APP_PERMISSIONS_NOT_GRANTED",
+      "101": "ERROR_DUPLICATE_INITIALIZE",
+      "103": "ERROR_UNABLE_TO_INITIALIZE",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED"
+    }
+  },
+  "android.telephony.mbms.MbmsStreamingSessionCallback.StreamingError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "102": "ERROR_APP_PERMISSIONS_NOT_GRANTED",
+      "101": "ERROR_DUPLICATE_INITIALIZE",
+      "103": "ERROR_UNABLE_TO_INITIALIZE",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED",
+      "301": "ERROR_CONCURRENT_SERVICE_LIMIT_REACHED",
+      "302": "ERROR_UNABLE_TO_START_SERVICE",
+      "303": "ERROR_DUPLICATE_START_STREAM"
+    }
+  },
+  "android.telephony.mbms.StreamingService.StreamingState": {
+    "flag": false,
+    "values": {
+      "1": "STATE_STOPPED",
+      "2": "STATE_STARTED",
+      "3": "STATE_STALLED"
+    }
+  },
+  "android.telephony.mbms.StreamingService.StreamingStateChangeReason": {
+    "flag": false,
+    "values": {
+      "1": "REASON_BY_USER_REQUEST",
+      "2": "REASON_END_OF_SESSION",
+      "3": "REASON_FREQUENCY_CONFLICT",
+      "4": "REASON_OUT_OF_MEMORY",
+      "5": "REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE",
+      "6": "REASON_LEFT_MBMS_BROADCAST_AREA",
+      "0": "REASON_NONE"
+    }
+  },
+  "android.telephony.mbms.StreamingServiceCallback.StreamingServiceError": {
+    "flag": false,
+    "values": {
+      "1": "ERROR_NO_UNIQUE_MIDDLEWARE",
+      "3": "ERROR_MIDDLEWARE_LOST",
+      "2": "ERROR_MIDDLEWARE_NOT_BOUND",
+      "201": "ERROR_MIDDLEWARE_NOT_YET_READY",
+      "202": "ERROR_OUT_OF_MEMORY",
+      "203": "ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE",
+      "204": "ERROR_IN_E911",
+      "205": "ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE",
+      "206": "ERROR_UNABLE_TO_READ_SIM",
+      "207": "ERROR_CARRIER_CHANGE_NOT_ALLOWED",
+      "301": "ERROR_CONCURRENT_SERVICE_LIMIT_REACHED",
+      "302": "ERROR_UNABLE_TO_START_SERVICE",
+      "303": "ERROR_DUPLICATE_START_STREAM"
+    }
+  },
+  "android.text.FontConfig.Family.Variant": {
+    "flag": false,
+    "values": {
+      "0": "VARIANT_DEFAULT",
+      "1": "VARIANT_COMPACT",
+      "2": "VARIANT_ELEGANT"
+    }
+  },
+  "android.text.Layout.BreakStrategy": {
+    "flag": false,
+    "values": {
+      "0": "BREAK_STRATEGY_SIMPLE",
+      "1": "BREAK_STRATEGY_HIGH_QUALITY",
+      "2": "BREAK_STRATEGY_BALANCED"
+    }
+  },
+  "android.text.Layout.Direction": {
+    "flag": false,
+    "values": {
+      "1": "DIR_LEFT_TO_RIGHT",
+      "-1": "DIR_RIGHT_TO_LEFT"
+    }
+  },
+  "android.text.Layout.HyphenationFrequency": {
+    "flag": false,
+    "values": {
+      "1": "HYPHENATION_FREQUENCY_NORMAL",
+      "2": "HYPHENATION_FREQUENCY_FULL",
+      "0": "HYPHENATION_FREQUENCY_NONE"
+    }
+  },
+  "android.text.Layout.JustificationMode": {
+    "flag": false,
+    "values": {
+      "0": "JUSTIFICATION_MODE_NONE",
+      "1": "JUSTIFICATION_MODE_INTER_WORD"
+    }
+  },
+  "android.text.Layout.TextSelectionLayout": {
+    "flag": false,
+    "values": {
+      "0": "TEXT_SELECTION_LAYOUT_RIGHT_TO_LEFT",
+      "1": "TEXT_SELECTION_LAYOUT_LEFT_TO_RIGHT"
+    }
+  },
+  "android.text.PrecomputedText.Params.CheckResultUsableResult": {
+    "flag": false,
+    "values": {
+      "0": "UNUSABLE",
+      "1": "NEED_RECOMPUTE",
+      "2": "USABLE"
+    }
+  },
+  "android.text.TextUtils.SafeStringFlags": {
+    "flag": true,
+    "values": {
+      "1": "SAFE_STRING_FLAG_TRIM",
+      "2": "SAFE_STRING_FLAG_SINGLE_LINE",
+      "4": "SAFE_STRING_FLAG_FIRST_LINE"
+    }
+  },
+  "android.text.style.DynamicDrawableSpan.AlignmentType": {
+    "flag": false,
+    "values": {
+      "0": "ALIGN_BOTTOM",
+      "1": "ALIGN_BASELINE",
+      "2": "ALIGN_CENTER"
+    }
+  },
+  "android.text.util.Linkify.LinkifyMask": {
+    "flag": true,
+    "values": {
+      "1": "WEB_URLS",
+      "2": "EMAIL_ADDRESSES",
+      "4": "PHONE_NUMBERS",
+      "8": "MAP_ADDRESSES",
+      "15": "ALL"
+    }
+  },
+  "android.transition.Slide.GravityFlag": {
+    "flag": false,
+    "values": {
+      "3": "LEFT",
+      "48": "TOP",
+      "5": "RIGHT",
+      "80": "BOTTOM",
+      "8388611": "START",
+      "8388613": "END"
+    }
+  },
+  "android.transition.Visibility.VisibilityMode": {
+    "flag": true,
+    "values": {
+      "1": "IN",
+      "2": "OUT"
+    }
+  },
+  "android.util.Log.Level": {
+    "flag": false,
+    "values": {
+      "7": "ASSERT",
+      "6": "ERROR",
+      "5": "WARN",
+      "4": "INFO",
+      "3": "DEBUG",
+      "2": "VERBOSE"
+    }
+  },
+  "android.util.proto.ProtoStream.WireType": {
+    "flag": false,
+    "values": {
+      "0": "WIRE_TYPE_VARINT",
+      "1": "WIRE_TYPE_FIXED64",
+      "2": "WIRE_TYPE_LENGTH_DELIMITED",
+      "3": "WIRE_TYPE_START_GROUP",
+      "4": "WIRE_TYPE_END_GROUP",
+      "5": "WIRE_TYPE_FIXED32"
+    }
+  },
+  "android.uwb.RangingMeasurement.Status": {
+    "flag": false,
+    "values": {
+      "0": "RANGING_STATUS_SUCCESS",
+      "1": "RANGING_STATUS_FAILURE_OUT_OF_RANGE",
+      "-1": "RANGING_STATUS_FAILURE_UNKNOWN_ERROR"
+    }
+  },
+  "android.uwb.RangingSession.Callback.CloseReason": {
+    "flag": false,
+    "values": {
+      "0": "CLOSE_REASON_UNKNOWN",
+      "1": "CLOSE_REASON_LOCAL_CLOSE_API",
+      "2": "CLOSE_REASON_LOCAL_BAD_PARAMETERS",
+      "3": "CLOSE_REASON_LOCAL_GENERIC_ERROR",
+      "4": "CLOSE_REASON_LOCAL_MAX_SESSIONS_REACHED",
+      "5": "CLOSE_REASON_LOCAL_SYSTEM_POLICY",
+      "6": "CLOSE_REASON_REMOTE_GENERIC_ERROR",
+      "7": "CLOSE_REASON_REMOTE_REQUEST"
+    }
+  },
+  "android.uwb.UwbManager.AdapterStateCallback.StateChangedReason": {
+    "flag": false,
+    "values": {
+      "0": "STATE_CHANGED_REASON_SESSION_STARTED",
+      "1": "STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED",
+      "2": "STATE_CHANGED_REASON_SYSTEM_POLICY",
+      "3": "STATE_CHANGED_REASON_SYSTEM_BOOT",
+      "4": "STATE_CHANGED_REASON_ERROR_UNKNOWN"
+    }
+  },
+  "android.uwb.UwbManager.AngleOfArrivalSupportType": {
+    "flag": false,
+    "values": {
+      "1": "ANGLE_OF_ARRIVAL_SUPPORT_TYPE_NONE",
+      "2": "ANGLE_OF_ARRIVAL_SUPPORT_TYPE_2D",
+      "3": "ANGLE_OF_ARRIVAL_SUPPORT_TYPE_3D_HEMISPHERICAL",
+      "4": "ANGLE_OF_ARRIVAL_SUPPORT_TYPE_3D_SPHERICAL"
+    }
+  },
+  "android.view.Display.ColorMode": {
+    "flag": false,
+    "values": {
+      "-1": "COLOR_MODE_INVALID",
+      "0": "COLOR_MODE_DEFAULT",
+      "1": "COLOR_MODE_BT601_625",
+      "2": "COLOR_MODE_BT601_625_UNADJUSTED",
+      "3": "COLOR_MODE_BT601_525",
+      "4": "COLOR_MODE_BT601_525_UNADJUSTED",
+      "5": "COLOR_MODE_BT709",
+      "6": "COLOR_MODE_DCI_P3",
+      "7": "COLOR_MODE_SRGB",
+      "8": "COLOR_MODE_ADOBE_RGB",
+      "9": "COLOR_MODE_DISPLAY_P3"
+    }
+  },
+  "android.view.Display.HdrCapabilities.HdrType": {
+    "flag": false,
+    "values": {
+      "1": "HDR_TYPE_DOLBY_VISION",
+      "2": "HDR_TYPE_HDR10",
+      "3": "HDR_TYPE_HLG",
+      "4": "HDR_TYPE_HDR10_PLUS"
+    }
+  },
+  "android.view.DisplayCutout.BoundsPosition": {
+    "flag": false,
+    "values": {
+      "0": "BOUNDS_POSITION_LEFT",
+      "1": "BOUNDS_POSITION_TOP",
+      "2": "BOUNDS_POSITION_RIGHT",
+      "3": "BOUNDS_POSITION_BOTTOM"
+    }
+  },
+  "android.view.FrameMetrics.Index": {
+    "flag": false,
+    "values": {
+      "0": "FLAGS",
+      "1": "FRAME_TIMELINE_VSYNC_ID",
+      "2": "INTENDED_VSYNC",
+      "3": "VSYNC",
+      "4": "OLDEST_INPUT_EVENT",
+      "5": "NEWEST_INPUT_EVENT",
+      "6": "HANDLE_INPUT_START",
+      "7": "ANIMATION_START",
+      "8": "PERFORM_TRAVERSALS_START",
+      "9": "DRAW_START",
+      "10": "FRAME_DEADLINE",
+      "11": "SYNC_QUEUED",
+      "12": "SYNC_START",
+      "13": "ISSUE_DRAW_COMMANDS_START",
+      "14": "SWAP_BUFFERS",
+      "15": "FRAME_COMPLETED"
+    }
+  },
+  "android.view.FrameMetrics.Metric": {
+    "flag": false,
+    "values": {
+      "0": "UNKNOWN_DELAY_DURATION",
+      "1": "INPUT_HANDLING_DURATION",
+      "2": "ANIMATION_DURATION",
+      "3": "LAYOUT_MEASURE_DURATION",
+      "4": "DRAW_DURATION",
+      "5": "SYNC_DURATION",
+      "6": "COMMAND_ISSUE_DURATION",
+      "7": "SWAP_BUFFERS_DURATION",
+      "8": "TOTAL_DURATION",
+      "9": "FIRST_DRAW_FRAME",
+      "10": "INTENDED_VSYNC_TIMESTAMP",
+      "11": "VSYNC_TIMESTAMP"
+    }
+  },
+  "android.view.Gravity.GravityFlags": {
+    "flag": true,
+    "values": {
+      "119": "FILL",
+      "7": "FILL_HORIZONTAL",
+      "112": "FILL_VERTICAL",
+      "8388611": "START",
+      "8388613": "END",
+      "3": "LEFT",
+      "5": "RIGHT",
+      "48": "TOP",
+      "80": "BOTTOM",
+      "17": "CENTER",
+      "1": "CENTER_HORIZONTAL",
+      "16": "CENTER_VERTICAL",
+      "16777216": "DISPLAY_CLIP_HORIZONTAL",
+      "268435456": "DISPLAY_CLIP_VERTICAL",
+      "8": "CLIP_HORIZONTAL",
+      "128": "CLIP_VERTICAL",
+      "0": "NO_GRAVITY"
+    }
+  },
+  "android.view.InputDevice.InputSourceClass": {
+    "flag": true,
+    "values": {
+      "0": "SOURCE_CLASS_NONE",
+      "1": "SOURCE_CLASS_BUTTON",
+      "2": "SOURCE_CLASS_POINTER",
+      "4": "SOURCE_CLASS_TRACKBALL",
+      "8": "SOURCE_CLASS_POSITION",
+      "16": "SOURCE_CLASS_JOYSTICK"
+    }
+  },
+  "android.view.InsetsController.AnimationType": {
+    "flag": false,
+    "values": {
+      "-1": "ANIMATION_TYPE_NONE",
+      "0": "ANIMATION_TYPE_SHOW",
+      "1": "ANIMATION_TYPE_HIDE",
+      "2": "ANIMATION_TYPE_USER"
+    }
+  },
+  "android.view.InsetsController.LayoutInsetsDuringAnimation": {
+    "flag": false,
+    "values": {
+      "0": "LAYOUT_INSETS_DURING_ANIMATION_SHOWN",
+      "1": "LAYOUT_INSETS_DURING_ANIMATION_HIDDEN"
+    }
+  },
+  "android.view.InsetsSourceConsumer.ShowResult": {
+    "flag": false,
+    "values": {
+      "0": "SHOW_IMMEDIATELY",
+      "1": "IME_SHOW_DELAYED",
+      "2": "IME_SHOW_FAILED"
+    }
+  },
+  "android.view.InsetsState.InternalInsetsSide": {
+    "flag": false,
+    "values": {
+      "0": "ISIDE_LEFT",
+      "1": "ISIDE_TOP",
+      "2": "ISIDE_RIGHT",
+      "3": "ISIDE_BOTTOM",
+      "4": "ISIDE_FLOATING",
+      "5": "ISIDE_UNKNOWN"
+    }
+  },
+  "android.view.InsetsState.InternalInsetsType": {
+    "flag": false,
+    "values": {
+      "0": "ITYPE_STATUS_BAR",
+      "1": "ITYPE_NAVIGATION_BAR",
+      "2": "ITYPE_CAPTION_BAR",
+      "3": "ITYPE_TOP_GESTURES",
+      "4": "ITYPE_BOTTOM_GESTURES",
+      "5": "ITYPE_LEFT_GESTURES",
+      "6": "ITYPE_RIGHT_GESTURES",
+      "7": "ITYPE_TOP_MANDATORY_GESTURES",
+      "8": "ITYPE_BOTTOM_MANDATORY_GESTURES",
+      "9": "ITYPE_LEFT_MANDATORY_GESTURES",
+      "10": "ITYPE_RIGHT_MANDATORY_GESTURES",
+      "11": "ITYPE_TOP_TAPPABLE_ELEMENT",
+      "12": "ITYPE_BOTTOM_TAPPABLE_ELEMENT",
+      "13": "ITYPE_LEFT_DISPLAY_CUTOUT",
+      "14": "ITYPE_TOP_DISPLAY_CUTOUT",
+      "15": "ITYPE_RIGHT_DISPLAY_CUTOUT",
+      "16": "ITYPE_BOTTOM_DISPLAY_CUTOUT",
+      "17": "ITYPE_IME",
+      "18": "ITYPE_CLIMATE_BAR",
+      "19": "ITYPE_EXTRA_NAVIGATION_BAR"
+    }
+  },
+  "android.view.MotionEvent.Classification": {
+    "flag": false,
+    "values": {
+      "0": "CLASSIFICATION_NONE",
+      "1": "CLASSIFICATION_AMBIGUOUS_GESTURE",
+      "2": "CLASSIFICATION_DEEP_PRESS"
+    }
+  },
+  "android.view.OnReceiveContentListener.Payload.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_CONVERT_TO_PLAIN_TEXT"
+    }
+  },
+  "android.view.OnReceiveContentListener.Payload.Source": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_APP",
+      "1": "SOURCE_CLIPBOARD",
+      "2": "SOURCE_INPUT_METHOD",
+      "3": "SOURCE_DRAG_AND_DROP",
+      "4": "SOURCE_AUTOFILL",
+      "5": "SOURCE_PROCESS_TEXT"
+    }
+  },
+  "android.view.PixelCopy.CopyResultStatus": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS",
+      "1": "ERROR_UNKNOWN",
+      "2": "ERROR_TIMEOUT",
+      "3": "ERROR_SOURCE_NO_DATA",
+      "4": "ERROR_SOURCE_INVALID",
+      "5": "ERROR_DESTINATION_INVALID"
+    }
+  },
+  "android.view.RemoteAnimationTarget.Mode": {
+    "flag": false,
+    "values": {
+      "0": "MODE_OPENING",
+      "1": "MODE_CLOSING",
+      "2": "MODE_CHANGING"
+    }
+  },
+  "android.view.Surface.FrameRateCompatibility": {
+    "flag": false,
+    "values": {
+      "0": "FRAME_RATE_COMPATIBILITY_DEFAULT",
+      "1": "FRAME_RATE_COMPATIBILITY_FIXED_SOURCE"
+    }
+  },
+  "android.view.Surface.Rotation": {
+    "flag": false,
+    "values": {
+      "0": "ROTATION_0",
+      "1": "ROTATION_90",
+      "2": "ROTATION_180",
+      "3": "ROTATION_270"
+    }
+  },
+  "android.view.Surface.ScalingMode": {
+    "flag": false,
+    "values": {
+      "0": "SCALING_MODE_FREEZE",
+      "1": "SCALING_MODE_SCALE_TO_WINDOW",
+      "2": "SCALING_MODE_SCALE_CROP",
+      "3": "SCALING_MODE_NO_SCALE_CROP"
+    }
+  },
+  "android.view.VelocityTracker.VelocityTrackerStrategy": {
+    "flag": false,
+    "values": {
+      "-1": "VELOCITY_TRACKER_STRATEGY_DEFAULT",
+      "0": "VELOCITY_TRACKER_STRATEGY_IMPULSE",
+      "1": "VELOCITY_TRACKER_STRATEGY_LSQ1",
+      "2": "VELOCITY_TRACKER_STRATEGY_LSQ2",
+      "3": "VELOCITY_TRACKER_STRATEGY_LSQ3",
+      "4": "VELOCITY_TRACKER_STRATEGY_WLSQ2_DELTA",
+      "5": "VELOCITY_TRACKER_STRATEGY_WLSQ2_CENTRAL",
+      "6": "VELOCITY_TRACKER_STRATEGY_WLSQ2_RECENT",
+      "7": "VELOCITY_TRACKER_STRATEGY_INT1",
+      "8": "VELOCITY_TRACKER_STRATEGY_INT2",
+      "9": "VELOCITY_TRACKER_STRATEGY_LEGACY"
+    }
+  },
+  "android.view.VerifiedInputEvent.VerifiedInputEventType": {
+    "flag": false,
+    "values": {
+      "1": "VERIFIED_KEY",
+      "2": "VERIFIED_MOTION"
+    }
+  },
+  "android.view.VerifiedKeyEvent.KeyEventAction": {
+    "flag": false,
+    "values": {
+      "0": "ACTION_DOWN",
+      "1": "ACTION_UP"
+    }
+  },
+  "android.view.VerifiedMotionEvent.MotionEventAction": {
+    "flag": false,
+    "values": {
+      "0": "ACTION_DOWN",
+      "5": "ACTION_POINTER_DOWN",
+      "3": "ACTION_CANCEL",
+      "6": "ACTION_POINTER_UP",
+      "1": "ACTION_UP"
+    }
+  },
+  "android.view.View.AutofillFlags": {
+    "flag": true,
+    "values": {
+      "1": "AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS"
+    }
+  },
+  "android.view.View.AutofillImportance": {
+    "flag": false,
+    "values": {
+      "0": "IMPORTANT_FOR_AUTOFILL_AUTO",
+      "1": "IMPORTANT_FOR_AUTOFILL_YES",
+      "2": "IMPORTANT_FOR_AUTOFILL_NO",
+      "4": "IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS",
+      "8": "IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS"
+    }
+  },
+  "android.view.View.AutofillType": {
+    "flag": false,
+    "values": {
+      "0": "AUTOFILL_TYPE_NONE",
+      "1": "AUTOFILL_TYPE_TEXT",
+      "2": "AUTOFILL_TYPE_TOGGLE",
+      "3": "AUTOFILL_TYPE_LIST",
+      "4": "AUTOFILL_TYPE_DATE",
+      "5": "AUTOFILL_TYPE_RICH_CONTENT"
+    }
+  },
+  "android.view.View.ContentCaptureImportance": {
+    "flag": false,
+    "values": {
+      "0": "IMPORTANT_FOR_CONTENT_CAPTURE_AUTO",
+      "1": "IMPORTANT_FOR_CONTENT_CAPTURE_YES",
+      "2": "IMPORTANT_FOR_CONTENT_CAPTURE_NO",
+      "4": "IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS",
+      "8": "IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS"
+    }
+  },
+  "android.view.View.DrawingCacheQuality": {
+    "flag": false,
+    "values": {
+      "524288": "DRAWING_CACHE_QUALITY_LOW",
+      "1048576": "DRAWING_CACHE_QUALITY_HIGH",
+      "0": "DRAWING_CACHE_QUALITY_AUTO"
+    }
+  },
+  "android.view.View.FindViewFlags": {
+    "flag": true,
+    "values": {
+      "1": "FIND_VIEWS_WITH_TEXT",
+      "2": "FIND_VIEWS_WITH_CONTENT_DESCRIPTION"
+    }
+  },
+  "android.view.View.FocusDirection": {
+    "flag": false,
+    "values": {
+      "1": "FOCUS_BACKWARD",
+      "2": "FOCUS_FORWARD",
+      "17": "FOCUS_LEFT",
+      "33": "FOCUS_UP",
+      "66": "FOCUS_RIGHT",
+      "130": "FOCUS_DOWN"
+    }
+  },
+  "android.view.View.FocusRealDirection": {
+    "flag": false,
+    "values": {
+      "17": "FOCUS_LEFT",
+      "33": "FOCUS_UP",
+      "66": "FOCUS_RIGHT",
+      "130": "FOCUS_DOWN"
+    }
+  },
+  "android.view.View.Focusable": {
+    "flag": false,
+    "values": {
+      "0": "NOT_FOCUSABLE",
+      "1": "FOCUSABLE",
+      "16": "FOCUSABLE_AUTO"
+    }
+  },
+  "android.view.View.FocusableMode": {
+    "flag": true,
+    "values": {
+      "0": "FOCUSABLES_ALL",
+      "1": "FOCUSABLES_TOUCH_MODE"
+    }
+  },
+  "android.view.View.LayerType": {
+    "flag": false,
+    "values": {
+      "0": "LAYER_TYPE_NONE",
+      "1": "LAYER_TYPE_SOFTWARE",
+      "2": "LAYER_TYPE_HARDWARE"
+    }
+  },
+  "android.view.View.LayoutDir": {
+    "flag": false,
+    "values": {
+      "0": "LAYOUT_DIRECTION_LTR",
+      "1": "LAYOUT_DIRECTION_RTL",
+      "2": "LAYOUT_DIRECTION_INHERIT",
+      "3": "LAYOUT_DIRECTION_LOCALE"
+    }
+  },
+  "android.view.View.MeasureSpec.MeasureSpecMode": {
+    "flag": false,
+    "values": {
+      "0": "UNSPECIFIED",
+      "1073741824": "EXACTLY",
+      "-2147483648": "AT_MOST"
+    }
+  },
+  "android.view.View.ResolvedLayoutDir": {
+    "flag": false,
+    "values": {
+      "0": "LAYOUT_DIRECTION_LTR",
+      "1": "LAYOUT_DIRECTION_RTL"
+    }
+  },
+  "android.view.View.ScrollBarStyle": {
+    "flag": false,
+    "values": {
+      "0": "SCROLLBARS_INSIDE_OVERLAY",
+      "16777216": "SCROLLBARS_INSIDE_INSET",
+      "33554432": "SCROLLBARS_OUTSIDE_OVERLAY",
+      "50331648": "SCROLLBARS_OUTSIDE_INSET"
+    }
+  },
+  "android.view.View.ScrollCaptureHint": {
+    "flag": true,
+    "values": {
+      "0": "SCROLL_CAPTURE_HINT_AUTO",
+      "1": "SCROLL_CAPTURE_HINT_EXCLUDE",
+      "2": "SCROLL_CAPTURE_HINT_INCLUDE",
+      "4": "SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS"
+    }
+  },
+  "android.view.View.ScrollIndicators": {
+    "flag": true,
+    "values": {
+      "1": "SCROLL_INDICATOR_TOP",
+      "2": "SCROLL_INDICATOR_BOTTOM",
+      "4": "SCROLL_INDICATOR_LEFT",
+      "8": "SCROLL_INDICATOR_RIGHT",
+      "16": "SCROLL_INDICATOR_START",
+      "32": "SCROLL_INDICATOR_END"
+    }
+  },
+  "android.view.View.SystemUiVisibility": {
+    "flag": true,
+    "values": {
+      "1": "SYSTEM_UI_FLAG_LOW_PROFILE",
+      "2": "SYSTEM_UI_FLAG_HIDE_NAVIGATION",
+      "4": "SYSTEM_UI_FLAG_FULLSCREEN",
+      "256": "SYSTEM_UI_FLAG_LAYOUT_STABLE",
+      "512": "SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION",
+      "1024": "SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN",
+      "2048": "SYSTEM_UI_FLAG_IMMERSIVE",
+      "4096": "SYSTEM_UI_FLAG_IMMERSIVE_STICKY",
+      "8192": "SYSTEM_UI_FLAG_LIGHT_STATUS_BAR",
+      "16": "SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR",
+      "65536": "STATUS_BAR_DISABLE_EXPAND",
+      "131072": "STATUS_BAR_DISABLE_NOTIFICATION_ICONS",
+      "262144": "STATUS_BAR_DISABLE_NOTIFICATION_ALERTS",
+      "524288": "STATUS_BAR_DISABLE_NOTIFICATION_TICKER",
+      "1048576": "STATUS_BAR_DISABLE_SYSTEM_INFO",
+      "2097152": "STATUS_BAR_DISABLE_HOME",
+      "4194304": "STATUS_BAR_DISABLE_BACK",
+      "8388608": "STATUS_BAR_DISABLE_CLOCK",
+      "16777216": "STATUS_BAR_DISABLE_RECENT",
+      "33554432": "STATUS_BAR_DISABLE_SEARCH"
+    }
+  },
+  "android.view.View.TextAlignment": {
+    "flag": false,
+    "values": {
+      "0": "TEXT_ALIGNMENT_INHERIT",
+      "1": "TEXT_ALIGNMENT_GRAVITY",
+      "4": "TEXT_ALIGNMENT_CENTER",
+      "2": "TEXT_ALIGNMENT_TEXT_START",
+      "3": "TEXT_ALIGNMENT_TEXT_END",
+      "5": "TEXT_ALIGNMENT_VIEW_START",
+      "6": "TEXT_ALIGNMENT_VIEW_END"
+    }
+  },
+  "android.view.View.ViewStructureType": {
+    "flag": true,
+    "values": {
+      "0": "VIEW_STRUCTURE_FOR_ASSIST",
+      "1": "VIEW_STRUCTURE_FOR_AUTOFILL",
+      "2": "VIEW_STRUCTURE_FOR_CONTENT_CAPTURE"
+    }
+  },
+  "android.view.View.Visibility": {
+    "flag": false,
+    "values": {
+      "0": "VISIBLE",
+      "4": "INVISIBLE",
+      "8": "GONE"
+    }
+  },
+  "android.view.WindowInsets.Side.InsetsSide": {
+    "flag": true,
+    "values": {
+      "1": "LEFT",
+      "2": "TOP",
+      "4": "RIGHT",
+      "8": "BOTTOM"
+    }
+  },
+  "android.view.WindowInsets.Type.InsetsType": {
+    "flag": true,
+    "values": {
+      "1": "STATUS_BARS",
+      "2": "NAVIGATION_BARS",
+      "4": "CAPTION_BAR",
+      "8": "IME",
+      "256": "WINDOW_DECOR",
+      "16": "SYSTEM_GESTURES",
+      "32": "MANDATORY_SYSTEM_GESTURES",
+      "64": "TAPPABLE_ELEMENT",
+      "128": "DISPLAY_CUTOUT"
+    }
+  },
+  "android.view.WindowInsetsAnimation.Callback.DispatchMode": {
+    "flag": false,
+    "values": {
+      "0": "DISPATCH_MODE_STOP",
+      "1": "DISPATCH_MODE_CONTINUE_ON_SUBTREE"
+    }
+  },
+  "android.view.WindowInsetsController.Appearance": {
+    "flag": true,
+    "values": {
+      "1": "APPEARANCE_OPAQUE_STATUS_BARS",
+      "2": "APPEARANCE_OPAQUE_NAVIGATION_BARS",
+      "4": "APPEARANCE_LOW_PROFILE_BARS",
+      "8": "APPEARANCE_LIGHT_STATUS_BARS",
+      "16": "APPEARANCE_LIGHT_NAVIGATION_BARS",
+      "32": "APPEARANCE_SEMI_TRANSPARENT_STATUS_BARS",
+      "64": "APPEARANCE_SEMI_TRANSPARENT_NAVIGATION_BARS"
+    }
+  },
+  "android.view.WindowInsetsController.Behavior": {
+    "flag": false,
+    "values": {
+      "0": "BEHAVIOR_SHOW_BARS_BY_TOUCH",
+      "1": "BEHAVIOR_SHOW_BARS_BY_SWIPE",
+      "2": "BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE"
+    }
+  },
+  "android.view.WindowManager.DisplayImePolicy": {
+    "flag": false,
+    "values": {
+      "0": "DISPLAY_IME_POLICY_LOCAL",
+      "1": "DISPLAY_IME_POLICY_FALLBACK_DISPLAY",
+      "2": "DISPLAY_IME_POLICY_HIDE"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_ALLOW_LOCK_WHILE_SCREEN_ON",
+      "2": "FLAG_DIM_BEHIND",
+      "4": "FLAG_BLUR_BEHIND",
+      "8": "FLAG_NOT_FOCUSABLE",
+      "16": "FLAG_NOT_TOUCHABLE",
+      "32": "FLAG_NOT_TOUCH_MODAL",
+      "64": "FLAG_TOUCHABLE_WHEN_WAKING",
+      "128": "FLAG_KEEP_SCREEN_ON",
+      "256": "FLAG_LAYOUT_IN_SCREEN",
+      "512": "FLAG_LAYOUT_NO_LIMITS",
+      "1024": "FLAG_FULLSCREEN",
+      "2048": "FLAG_FORCE_NOT_FULLSCREEN",
+      "4096": "FLAG_DITHER",
+      "8192": "FLAG_SECURE",
+      "16384": "FLAG_SCALED",
+      "32768": "FLAG_IGNORE_CHEEK_PRESSES",
+      "65536": "FLAG_LAYOUT_INSET_DECOR",
+      "131072": "FLAG_ALT_FOCUSABLE_IM",
+      "262144": "FLAG_WATCH_OUTSIDE_TOUCH",
+      "524288": "FLAG_SHOW_WHEN_LOCKED",
+      "1048576": "FLAG_SHOW_WALLPAPER",
+      "2097152": "FLAG_TURN_SCREEN_ON",
+      "4194304": "FLAG_DISMISS_KEYGUARD",
+      "8388608": "FLAG_SPLIT_TOUCH",
+      "16777216": "FLAG_HARDWARE_ACCELERATED",
+      "33554432": "FLAG_LAYOUT_IN_OVERSCAN",
+      "67108864": "FLAG_TRANSLUCENT_STATUS",
+      "134217728": "FLAG_TRANSLUCENT_NAVIGATION",
+      "268435456": "FLAG_LOCAL_FOCUS_MODE",
+      "536870912": "FLAG_SLIPPERY",
+      "1073741824": "FLAG_LAYOUT_ATTACHED_IN_DECOR",
+      "-2147483648": "FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.InputFeatureFlags": {
+    "flag": true,
+    "values": {
+      "1": "INPUT_FEATURE_DISABLE_POINTER_GESTURES",
+      "2": "INPUT_FEATURE_NO_INPUT_CHANNEL",
+      "4": "INPUT_FEATURE_DISABLE_USER_ACTIVITY"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.LayoutInDisplayCutoutMode": {
+    "flag": false,
+    "values": {
+      "0": "LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT",
+      "1": "LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES",
+      "2": "LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER",
+      "3": "LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.PrivateFlags": {
+    "flag": true,
+    "values": {
+      "1": "PRIVATE_FLAG_FAKE_HARDWARE_ACCELERATED",
+      "2": "PRIVATE_FLAG_FORCE_HARDWARE_ACCELERATED",
+      "4": "PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS",
+      "16": "SYSTEM_FLAG_SHOW_FOR_ALL_USERS",
+      "64": "PRIVATE_FLAG_NO_MOVE_ANIMATION",
+      "128": "PRIVATE_FLAG_COMPATIBLE_WINDOW",
+      "256": "PRIVATE_FLAG_SYSTEM_ERROR",
+      "2048": "PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS",
+      "4096": "PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR",
+      "8192": "PRIVATE_FLAG_PRESERVE_GEOMETRY",
+      "16384": "PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY",
+      "32768": "PRIVATE_FLAG_WILL_NOT_REPLACE_ON_RELAUNCH",
+      "65536": "PRIVATE_FLAG_LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME",
+      "131072": "PRIVATE_FLAG_FORCE_DRAW_BAR_BACKGROUNDS",
+      "262144": "PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE",
+      "524288": "SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS",
+      "1048576": "PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY",
+      "8388608": "PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION",
+      "16777216": "PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC",
+      "33554432": "PRIVATE_FLAG_USE_BLAST",
+      "67108864": "PRIVATE_FLAG_APPEARANCE_CONTROLLED",
+      "134217728": "PRIVATE_FLAG_BEHAVIOR_CONTROLLED",
+      "268435456": "PRIVATE_FLAG_FIT_INSETS_CONTROLLED",
+      "536870912": "PRIVATE_FLAG_TRUSTED_OVERLAY",
+      "1073741824": "PRIVATE_FLAG_INSET_PARENT_FRAME_BY_IME",
+      "-2147483648": "PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.SoftInputModeFlags": {
+    "flag": true,
+    "values": {
+      "0": "SOFT_INPUT_ADJUST_UNSPECIFIED",
+      "1": "SOFT_INPUT_STATE_UNCHANGED",
+      "2": "SOFT_INPUT_STATE_HIDDEN",
+      "3": "SOFT_INPUT_STATE_ALWAYS_HIDDEN",
+      "4": "SOFT_INPUT_STATE_VISIBLE",
+      "5": "SOFT_INPUT_STATE_ALWAYS_VISIBLE",
+      "16": "SOFT_INPUT_ADJUST_RESIZE",
+      "32": "SOFT_INPUT_ADJUST_PAN",
+      "48": "SOFT_INPUT_ADJUST_NOTHING",
+      "256": "SOFT_INPUT_IS_FORWARD_NAVIGATION"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.SystemFlags": {
+    "flag": true,
+    "values": {
+      "524288": "SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS",
+      "16": "SYSTEM_FLAG_SHOW_FOR_ALL_USERS"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.SystemUiVisibilityFlags": {
+    "flag": true,
+    "values": {
+      "0": "SYSTEM_UI_FLAG_VISIBLE",
+      "1": "SYSTEM_UI_FLAG_LOW_PROFILE",
+      "2": "SYSTEM_UI_FLAG_HIDE_NAVIGATION",
+      "4": "SYSTEM_UI_FLAG_FULLSCREEN",
+      "16": "SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR",
+      "256": "SYSTEM_UI_FLAG_LAYOUT_STABLE",
+      "512": "SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION",
+      "1024": "SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN",
+      "2048": "SYSTEM_UI_FLAG_IMMERSIVE",
+      "4096": "SYSTEM_UI_FLAG_IMMERSIVE_STICKY",
+      "8192": "SYSTEM_UI_FLAG_LIGHT_STATUS_BAR",
+      "65536": "STATUS_BAR_DISABLE_EXPAND",
+      "131072": "STATUS_BAR_DISABLE_NOTIFICATION_ICONS",
+      "262144": "STATUS_BAR_DISABLE_NOTIFICATION_ALERTS",
+      "524288": "STATUS_BAR_DISABLE_NOTIFICATION_TICKER",
+      "1048576": "STATUS_BAR_DISABLE_SYSTEM_INFO",
+      "2097152": "STATUS_BAR_DISABLE_HOME",
+      "4194304": "STATUS_BAR_DISABLE_BACK",
+      "8388608": "STATUS_BAR_DISABLE_CLOCK",
+      "16777216": "STATUS_BAR_DISABLE_RECENT",
+      "33554432": "STATUS_BAR_DISABLE_SEARCH"
+    }
+  },
+  "android.view.WindowManager.LayoutParams.WindowType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_BASE_APPLICATION",
+      "2": "TYPE_APPLICATION",
+      "3": "TYPE_APPLICATION_STARTING",
+      "4": "TYPE_DRAWN_APPLICATION",
+      "1000": "TYPE_APPLICATION_PANEL",
+      "1001": "TYPE_APPLICATION_MEDIA",
+      "1002": "TYPE_APPLICATION_SUB_PANEL",
+      "1003": "TYPE_APPLICATION_ATTACHED_DIALOG",
+      "1004": "TYPE_APPLICATION_MEDIA_OVERLAY",
+      "1005": "TYPE_APPLICATION_ABOVE_SUB_PANEL",
+      "2000": "TYPE_STATUS_BAR",
+      "2001": "TYPE_SEARCH_BAR",
+      "2002": "TYPE_PHONE",
+      "2003": "TYPE_SYSTEM_ALERT",
+      "2004": "TYPE_KEYGUARD",
+      "2005": "TYPE_TOAST",
+      "2006": "TYPE_SYSTEM_OVERLAY",
+      "2007": "TYPE_PRIORITY_PHONE",
+      "2008": "TYPE_SYSTEM_DIALOG",
+      "2009": "TYPE_KEYGUARD_DIALOG",
+      "2010": "TYPE_SYSTEM_ERROR",
+      "2011": "TYPE_INPUT_METHOD",
+      "2012": "TYPE_INPUT_METHOD_DIALOG",
+      "2013": "TYPE_WALLPAPER",
+      "2014": "TYPE_STATUS_BAR_PANEL",
+      "2015": "TYPE_SECURE_SYSTEM_OVERLAY",
+      "2016": "TYPE_DRAG",
+      "2017": "TYPE_STATUS_BAR_SUB_PANEL",
+      "2018": "TYPE_POINTER",
+      "2019": "TYPE_NAVIGATION_BAR",
+      "2020": "TYPE_VOLUME_OVERLAY",
+      "2021": "TYPE_BOOT_PROGRESS",
+      "2022": "TYPE_INPUT_CONSUMER",
+      "2024": "TYPE_NAVIGATION_BAR_PANEL",
+      "2026": "TYPE_DISPLAY_OVERLAY",
+      "2027": "TYPE_MAGNIFICATION_OVERLAY",
+      "2030": "TYPE_PRIVATE_PRESENTATION",
+      "2031": "TYPE_VOICE_INTERACTION",
+      "2032": "TYPE_ACCESSIBILITY_OVERLAY",
+      "2033": "TYPE_VOICE_INTERACTION_STARTING",
+      "2034": "TYPE_DOCK_DIVIDER",
+      "2035": "TYPE_QS_DIALOG",
+      "2036": "TYPE_SCREENSHOT",
+      "2037": "TYPE_PRESENTATION",
+      "2038": "TYPE_APPLICATION_OVERLAY",
+      "2039": "TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY",
+      "2040": "TYPE_NOTIFICATION_SHADE",
+      "2041": "TYPE_STATUS_BAR_ADDITIONAL"
+    }
+  },
+  "android.view.WindowManager.RemoveContentMode": {
+    "flag": false,
+    "values": {
+      "0": "REMOVE_CONTENT_MODE_UNDEFINED",
+      "1": "REMOVE_CONTENT_MODE_MOVE_TO_PRIMARY",
+      "2": "REMOVE_CONTENT_MODE_DESTROY"
+    }
+  },
+  "android.view.WindowManager.ScreenshotSource": {
+    "flag": false,
+    "values": {
+      "0": "SCREENSHOT_GLOBAL_ACTIONS",
+      "1": "SCREENSHOT_KEY_CHORD",
+      "2": "SCREENSHOT_KEY_OTHER",
+      "3": "SCREENSHOT_OVERVIEW",
+      "4": "SCREENSHOT_ACCESSIBILITY_ACTIONS",
+      "5": "SCREENSHOT_OTHER",
+      "6": "SCREENSHOT_VENDOR_GESTURE"
+    }
+  },
+  "android.view.WindowManager.ShellRootLayer": {
+    "flag": false,
+    "values": {
+      "0": "SHELL_ROOT_LAYER_DIVIDER",
+      "1": "SHELL_ROOT_LAYER_PIP"
+    }
+  },
+  "android.view.WindowManager.TransitionFlags": {
+    "flag": true,
+    "values": {
+      "1": "TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE",
+      "2": "TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION",
+      "4": "TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER",
+      "8": "TRANSIT_FLAG_KEYGUARD_GOING_AWAY_SUBTLE_ANIMATION",
+      "16": "TRANSIT_FLAG_APP_CRASHED",
+      "32": "TRANSIT_FLAG_OPEN_BEHIND"
+    }
+  },
+  "android.view.WindowManager.TransitionOldType": {
+    "flag": false,
+    "values": {
+      "-1": "TRANSIT_OLD_UNSET",
+      "0": "TRANSIT_OLD_NONE",
+      "6": "TRANSIT_OLD_ACTIVITY_OPEN",
+      "7": "TRANSIT_OLD_ACTIVITY_CLOSE",
+      "8": "TRANSIT_OLD_TASK_OPEN",
+      "9": "TRANSIT_OLD_TASK_CLOSE",
+      "10": "TRANSIT_OLD_TASK_TO_FRONT",
+      "11": "TRANSIT_OLD_TASK_TO_BACK",
+      "12": "TRANSIT_OLD_WALLPAPER_CLOSE",
+      "13": "TRANSIT_OLD_WALLPAPER_OPEN",
+      "14": "TRANSIT_OLD_WALLPAPER_INTRA_OPEN",
+      "15": "TRANSIT_OLD_WALLPAPER_INTRA_CLOSE",
+      "16": "TRANSIT_OLD_TASK_OPEN_BEHIND",
+      "18": "TRANSIT_OLD_ACTIVITY_RELAUNCH",
+      "20": "TRANSIT_OLD_KEYGUARD_GOING_AWAY",
+      "21": "TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER",
+      "22": "TRANSIT_OLD_KEYGUARD_OCCLUDE",
+      "23": "TRANSIT_OLD_KEYGUARD_UNOCCLUDE",
+      "24": "TRANSIT_OLD_TRANSLUCENT_ACTIVITY_OPEN",
+      "25": "TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE",
+      "26": "TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE",
+      "27": "TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE"
+    }
+  },
+  "android.view.WindowManager.TransitionType": {
+    "flag": false,
+    "values": {
+      "0": "TRANSIT_NONE",
+      "1": "TRANSIT_OPEN",
+      "2": "TRANSIT_CLOSE",
+      "3": "TRANSIT_TO_FRONT",
+      "4": "TRANSIT_TO_BACK",
+      "5": "TRANSIT_RELAUNCH",
+      "6": "TRANSIT_CHANGE_WINDOWING_MODE",
+      "7": "TRANSIT_KEYGUARD_GOING_AWAY",
+      "8": "TRANSIT_KEYGUARD_OCCLUDE",
+      "9": "TRANSIT_KEYGUARD_UNOCCLUDE"
+    }
+  },
+  "android.view.WindowManagerPolicyConstants.OnReason": {
+    "flag": false,
+    "values": {
+      "1": "ON_BECAUSE_OF_USER",
+      "2": "ON_BECAUSE_OF_APPLICATION",
+      "3": "ON_BECAUSE_OF_UNKNOWN"
+    }
+  },
+  "android.view.accessibility.AccessibilityEvent.ContentChangeTypes": {
+    "flag": true,
+    "values": {
+      "0": "CONTENT_CHANGE_TYPE_UNDEFINED",
+      "1": "CONTENT_CHANGE_TYPE_SUBTREE",
+      "2": "CONTENT_CHANGE_TYPE_TEXT",
+      "4": "CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION",
+      "64": "CONTENT_CHANGE_TYPE_STATE_DESCRIPTION",
+      "8": "CONTENT_CHANGE_TYPE_PANE_TITLE",
+      "16": "CONTENT_CHANGE_TYPE_PANE_APPEARED",
+      "32": "CONTENT_CHANGE_TYPE_PANE_DISAPPEARED"
+    }
+  },
+  "android.view.accessibility.AccessibilityEvent.EventType": {
+    "flag": true,
+    "values": {
+      "1": "TYPE_VIEW_CLICKED",
+      "2": "TYPE_VIEW_LONG_CLICKED",
+      "4": "TYPE_VIEW_SELECTED",
+      "8": "TYPE_VIEW_FOCUSED",
+      "16": "TYPE_VIEW_TEXT_CHANGED",
+      "32": "TYPE_WINDOW_STATE_CHANGED",
+      "64": "TYPE_NOTIFICATION_STATE_CHANGED",
+      "128": "TYPE_VIEW_HOVER_ENTER",
+      "256": "TYPE_VIEW_HOVER_EXIT",
+      "512": "TYPE_TOUCH_EXPLORATION_GESTURE_START",
+      "1024": "TYPE_TOUCH_EXPLORATION_GESTURE_END",
+      "2048": "TYPE_WINDOW_CONTENT_CHANGED",
+      "4096": "TYPE_VIEW_SCROLLED",
+      "8192": "TYPE_VIEW_TEXT_SELECTION_CHANGED",
+      "16384": "TYPE_ANNOUNCEMENT",
+      "32768": "TYPE_VIEW_ACCESSIBILITY_FOCUSED",
+      "65536": "TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED",
+      "131072": "TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY",
+      "262144": "TYPE_GESTURE_DETECTION_START",
+      "524288": "TYPE_GESTURE_DETECTION_END",
+      "1048576": "TYPE_TOUCH_INTERACTION_START",
+      "2097152": "TYPE_TOUCH_INTERACTION_END",
+      "4194304": "TYPE_WINDOWS_CHANGED",
+      "8388608": "TYPE_VIEW_CONTEXT_CLICKED",
+      "16777216": "TYPE_ASSIST_READING_CONTEXT"
+    }
+  },
+  "android.view.accessibility.AccessibilityEvent.WindowsChangeTypes": {
+    "flag": true,
+    "values": {
+      "1": "WINDOWS_CHANGE_ADDED",
+      "2": "WINDOWS_CHANGE_REMOVED",
+      "4": "WINDOWS_CHANGE_TITLE",
+      "8": "WINDOWS_CHANGE_BOUNDS",
+      "16": "WINDOWS_CHANGE_LAYER",
+      "32": "WINDOWS_CHANGE_ACTIVE",
+      "64": "WINDOWS_CHANGE_FOCUSED",
+      "128": "WINDOWS_CHANGE_ACCESSIBILITY_FOCUSED",
+      "256": "WINDOWS_CHANGE_PARENT",
+      "512": "WINDOWS_CHANGE_CHILDREN",
+      "1024": "WINDOWS_CHANGE_PIP"
+    }
+  },
+  "android.view.accessibility.AccessibilityManager.ContentFlag": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_CONTENT_ICONS",
+      "2": "FLAG_CONTENT_TEXT",
+      "4": "FLAG_CONTENT_CONTROLS"
+    }
+  },
+  "android.view.accessibility.AccessibilityManager.ShortcutType": {
+    "flag": false,
+    "values": {
+      "0": "ACCESSIBILITY_BUTTON",
+      "1": "ACCESSIBILITY_SHORTCUT_KEY"
+    }
+  },
+  "android.view.accessibility.AccessibilityRequestPreparer.RequestTypes": {
+    "flag": true,
+    "values": {
+      "1": "REQUEST_TYPE_EXTRA_DATA"
+    }
+  },
+  "android.view.autofill.AutofillManager.AutofillCallback.AutofillEventType": {
+    "flag": false,
+    "values": {
+      "1": "EVENT_INPUT_SHOWN",
+      "2": "EVENT_INPUT_HIDDEN",
+      "3": "EVENT_INPUT_UNAVAILABLE"
+    }
+  },
+  "android.view.autofill.AutofillManager.SmartSuggestionMode": {
+    "flag": false,
+    "values": {
+      "0": "FLAG_SMART_SUGGESTION_OFF",
+      "1": "FLAG_SMART_SUGGESTION_SYSTEM"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureCondition.Flags": {
+    "flag": true,
+    "values": {
+      "2": "FLAG_IS_REGEX"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureContext.ContextCreationFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_DISABLED_BY_APP",
+      "2": "FLAG_DISABLED_BY_FLAG_SECURE",
+      "4": "FLAG_RECONNECTED"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureEvent.EventType": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_VIEW_APPEARED",
+      "2": "TYPE_VIEW_DISAPPEARED",
+      "3": "TYPE_VIEW_TEXT_CHANGED",
+      "4": "TYPE_VIEW_TREE_APPEARING",
+      "5": "TYPE_VIEW_TREE_APPEARED",
+      "6": "TYPE_CONTEXT_UPDATED",
+      "8": "TYPE_SESSION_PAUSED",
+      "7": "TYPE_SESSION_RESUMED",
+      "9": "TYPE_VIEW_INSETS_CHANGED"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureManager.DataShareError": {
+    "flag": false,
+    "values": {
+      "1": "DATA_SHARE_ERROR_UNKNOWN",
+      "2": "DATA_SHARE_ERROR_CONCURRENT_REQUEST",
+      "3": "DATA_SHARE_ERROR_TIMEOUT_INTERRUPTED"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureManager.LoggingLevel": {
+    "flag": false,
+    "values": {
+      "0": "LOGGING_LEVEL_OFF",
+      "1": "LOGGING_LEVEL_DEBUG",
+      "2": "LOGGING_LEVEL_VERBOSE"
+    }
+  },
+  "android.view.contentcapture.ContentCaptureSession.FlushReason": {
+    "flag": false,
+    "values": {
+      "1": "FLUSH_REASON_FULL",
+      "2": "FLUSH_REASON_VIEW_ROOT_ENTERED",
+      "3": "FLUSH_REASON_SESSION_STARTED",
+      "4": "FLUSH_REASON_SESSION_FINISHED",
+      "5": "FLUSH_REASON_IDLE_TIMEOUT",
+      "6": "FLUSH_REASON_TEXT_CHANGE_TIMEOUT",
+      "7": "FLUSH_REASON_SESSION_CONNECTED"
+    }
+  },
+  "android.view.contentcapture.DataRemovalRequest.Flags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_IS_PREFIX"
+    }
+  },
+  "android.view.inputmethod.EditorInfo.TrimPolicy": {
+    "flag": false,
+    "values": {
+      "0": "HEAD",
+      "1": "TAIL"
+    }
+  },
+  "android.view.inputmethod.InputConnection.GetTextType": {
+    "flag": true,
+    "values": {
+      "1": "GET_TEXT_WITH_STYLES"
+    }
+  },
+  "android.view.inputmethod.InputConnectionInspector.MissingMethodFlags": {
+    "flag": false,
+    "values": {
+      "1": "GET_SELECTED_TEXT",
+      "2": "SET_COMPOSING_REGION",
+      "4": "COMMIT_CORRECTION",
+      "8": "REQUEST_CURSOR_UPDATES",
+      "16": "DELETE_SURROUNDING_TEXT_IN_CODE_POINTS",
+      "32": "GET_HANDLER",
+      "64": "CLOSE_CONNECTION",
+      "128": "COMMIT_CONTENT",
+      "256": "GET_SURROUNDING_TEXT"
+    }
+  },
+  "android.view.textclassifier.SelectionEvent.ActionType": {
+    "flag": false,
+    "values": {
+      "100": "ACTION_OVERTYPE",
+      "101": "ACTION_COPY",
+      "102": "ACTION_PASTE",
+      "103": "ACTION_CUT",
+      "104": "ACTION_SHARE",
+      "105": "ACTION_SMART_SHARE",
+      "106": "ACTION_DRAG",
+      "107": "ACTION_ABANDON",
+      "108": "ACTION_OTHER",
+      "200": "ACTION_SELECT_ALL",
+      "201": "ACTION_RESET"
+    }
+  },
+  "android.view.textclassifier.SelectionEvent.EventType": {
+    "flag": false,
+    "values": {
+      "100": "ACTION_OVERTYPE",
+      "101": "ACTION_COPY",
+      "102": "ACTION_PASTE",
+      "103": "ACTION_CUT",
+      "104": "ACTION_SHARE",
+      "105": "ACTION_SMART_SHARE",
+      "106": "ACTION_DRAG",
+      "107": "ACTION_ABANDON",
+      "108": "ACTION_OTHER",
+      "200": "ACTION_SELECT_ALL",
+      "201": "ACTION_RESET",
+      "1": "EVENT_SELECTION_STARTED",
+      "2": "EVENT_SELECTION_MODIFIED",
+      "3": "EVENT_SMART_SELECTION_SINGLE",
+      "4": "EVENT_SMART_SELECTION_MULTI",
+      "5": "EVENT_AUTO_SELECTION"
+    }
+  },
+  "android.view.textclassifier.SelectionEvent.InvocationMethod": {
+    "flag": false,
+    "values": {
+      "1": "INVOCATION_MANUAL",
+      "2": "INVOCATION_LINK",
+      "0": "INVOCATION_UNKNOWN"
+    }
+  },
+  "android.view.textclassifier.TextClassification.IntentType": {
+    "flag": false,
+    "values": {
+      "-1": "UNSUPPORTED",
+      "0": "ACTIVITY",
+      "1": "SERVICE"
+    }
+  },
+  "android.view.textclassifier.TextClassifier.TextClassifierType": {
+    "flag": false,
+    "values": {
+      "0": "LOCAL",
+      "1": "SYSTEM",
+      "2": "DEFAULT_SYSTEM"
+    }
+  },
+  "android.view.textclassifier.TextClassifierEvent.Category": {
+    "flag": false,
+    "values": {
+      "1": "CATEGORY_SELECTION",
+      "2": "CATEGORY_LINKIFY",
+      "3": "CATEGORY_CONVERSATION_ACTIONS",
+      "4": "CATEGORY_LANGUAGE_DETECTION"
+    }
+  },
+  "android.view.textclassifier.TextClassifierEvent.Type": {
+    "flag": false,
+    "values": {
+      "1": "TYPE_SELECTION_STARTED",
+      "2": "TYPE_SELECTION_MODIFIED",
+      "3": "TYPE_SMART_SELECTION_SINGLE",
+      "4": "TYPE_SMART_SELECTION_MULTI",
+      "5": "TYPE_AUTO_SELECTION",
+      "6": "TYPE_ACTIONS_SHOWN",
+      "7": "TYPE_LINK_CLICKED",
+      "8": "TYPE_OVERTYPE",
+      "9": "TYPE_COPY_ACTION",
+      "10": "TYPE_PASTE_ACTION",
+      "11": "TYPE_CUT_ACTION",
+      "12": "TYPE_SHARE_ACTION",
+      "13": "TYPE_SMART_ACTION",
+      "14": "TYPE_SELECTION_DRAG",
+      "15": "TYPE_SELECTION_DESTROYED",
+      "16": "TYPE_OTHER_ACTION",
+      "17": "TYPE_SELECT_ALL",
+      "18": "TYPE_SELECTION_RESET",
+      "19": "TYPE_MANUAL_REPLY",
+      "20": "TYPE_ACTIONS_GENERATED",
+      "21": "TYPE_LINKS_GENERATED"
+    }
+  },
+  "android.view.textclassifier.TextLinks.ApplyStrategy": {
+    "flag": false,
+    "values": {
+      "0": "APPLY_STRATEGY_IGNORE",
+      "1": "APPLY_STRATEGY_REPLACE"
+    }
+  },
+  "android.view.textclassifier.TextLinks.Status": {
+    "flag": false,
+    "values": {
+      "0": "STATUS_LINKS_APPLIED",
+      "1": "STATUS_NO_LINKS_FOUND",
+      "2": "STATUS_NO_LINKS_APPLIED",
+      "3": "STATUS_DIFFERENT_TEXT",
+      "4": "STATUS_UNSUPPORTED_CHARACTER"
+    }
+  },
+  "android.view.textclassifier.TextLinks.TextLinkSpan.InvocationMethod": {
+    "flag": false,
+    "values": {
+      "-1": "INVOCATION_METHOD_UNSPECIFIED",
+      "0": "INVOCATION_METHOD_TOUCH",
+      "1": "INVOCATION_METHOD_KEYBOARD"
+    }
+  },
+  "android.webkit.TracingConfig.PredefinedCategories": {
+    "flag": true,
+    "values": {
+      "0": "CATEGORIES_NONE",
+      "1": "CATEGORIES_ALL",
+      "2": "CATEGORIES_ANDROID_WEBVIEW",
+      "4": "CATEGORIES_WEB_DEVELOPER",
+      "8": "CATEGORIES_INPUT_LATENCY",
+      "16": "CATEGORIES_RENDERING",
+      "32": "CATEGORIES_JAVASCRIPT_AND_RENDERING",
+      "64": "CATEGORIES_FRAME_VIEWER"
+    }
+  },
+  "android.webkit.TracingConfig.TracingMode": {
+    "flag": false,
+    "values": {
+      "0": "RECORD_UNTIL_FULL",
+      "1": "RECORD_CONTINUOUSLY"
+    }
+  },
+  "android.webkit.WebSettings.CacheMode": {
+    "flag": false,
+    "values": {
+      "-1": "LOAD_DEFAULT",
+      "0": "LOAD_NORMAL",
+      "1": "LOAD_CACHE_ELSE_NETWORK",
+      "2": "LOAD_NO_CACHE",
+      "3": "LOAD_CACHE_ONLY"
+    }
+  },
+  "android.webkit.WebSettings.ForceDark": {
+    "flag": false,
+    "values": {
+      "0": "FORCE_DARK_OFF",
+      "1": "FORCE_DARK_AUTO",
+      "2": "FORCE_DARK_ON"
+    }
+  },
+  "android.webkit.WebSettings.MenuItemFlags": {
+    "flag": true,
+    "values": {
+      "0": "MENU_ITEM_NONE",
+      "1": "MENU_ITEM_SHARE",
+      "2": "MENU_ITEM_WEB_SEARCH",
+      "4": "MENU_ITEM_PROCESS_TEXT"
+    }
+  },
+  "android.webkit.WebView.RendererPriority": {
+    "flag": false,
+    "values": {
+      "0": "RENDERER_PRIORITY_WAIVED",
+      "1": "RENDERER_PRIORITY_BOUND",
+      "2": "RENDERER_PRIORITY_IMPORTANT"
+    }
+  },
+  "android.webkit.WebViewClient.SafeBrowsingThreat": {
+    "flag": false,
+    "values": {
+      "0": "SAFE_BROWSING_THREAT_UNKNOWN",
+      "1": "SAFE_BROWSING_THREAT_MALWARE",
+      "2": "SAFE_BROWSING_THREAT_PHISHING",
+      "3": "SAFE_BROWSING_THREAT_UNWANTED_SOFTWARE",
+      "4": "SAFE_BROWSING_THREAT_BILLING"
+    }
+  },
+  "android.widget.AutoCompleteTextView.InputMethodMode": {
+    "flag": false,
+    "values": {
+      "0": "INPUT_METHOD_FROM_FOCUSABLE",
+      "1": "INPUT_METHOD_NEEDED",
+      "2": "INPUT_METHOD_NOT_NEEDED"
+    }
+  },
+  "android.widget.DatePicker.DatePickerMode": {
+    "flag": false,
+    "values": {
+      "1": "MODE_SPINNER",
+      "2": "MODE_CALENDAR"
+    }
+  },
+  "android.widget.Editor.HandleType": {
+    "flag": false,
+    "values": {
+      "0": "HANDLE_TYPE_SELECTION_START",
+      "1": "HANDLE_TYPE_SELECTION_END"
+    }
+  },
+  "android.widget.Editor.MagnifierHandleTrigger": {
+    "flag": false,
+    "values": {
+      "1": "SELECTION_START",
+      "2": "SELECTION_END",
+      "0": "INSERTION"
+    }
+  },
+  "android.widget.Editor.TextActionMode": {
+    "flag": false,
+    "values": {
+      "0": "SELECTION",
+      "1": "INSERTION",
+      "2": "TEXT_LINK"
+    }
+  },
+  "android.widget.Editor.UndoInputFilter.MergeMode": {
+    "flag": false,
+    "values": {
+      "0": "MERGE_EDIT_MODE_FORCE_MERGE",
+      "1": "MERGE_EDIT_MODE_NEVER_MERGE",
+      "2": "MERGE_EDIT_MODE_NORMAL"
+    }
+  },
+  "android.widget.EditorTouchState.MultiTapStatus": {
+    "flag": false,
+    "values": {
+      "0": "NONE",
+      "1": "FIRST_TAP",
+      "2": "DOUBLE_TAP",
+      "3": "TRIPLE_CLICK"
+    }
+  },
+  "android.widget.GridLayout.AlignmentMode": {
+    "flag": false,
+    "values": {
+      "0": "ALIGN_BOUNDS",
+      "1": "ALIGN_MARGINS"
+    }
+  },
+  "android.widget.GridLayout.Orientation": {
+    "flag": false,
+    "values": {
+      "0": "HORIZONTAL",
+      "1": "VERTICAL"
+    }
+  },
+  "android.widget.GridView.StretchMode": {
+    "flag": false,
+    "values": {
+      "0": "NO_STRETCH",
+      "1": "STRETCH_SPACING",
+      "2": "STRETCH_COLUMN_WIDTH",
+      "3": "STRETCH_SPACING_UNIFORM"
+    }
+  },
+  "android.widget.LinearLayout.DividerMode": {
+    "flag": true,
+    "values": {
+      "0": "SHOW_DIVIDER_NONE",
+      "1": "SHOW_DIVIDER_BEGINNING",
+      "2": "SHOW_DIVIDER_MIDDLE",
+      "4": "SHOW_DIVIDER_END"
+    }
+  },
+  "android.widget.LinearLayout.OrientationMode": {
+    "flag": false,
+    "values": {
+      "0": "HORIZONTAL",
+      "1": "VERTICAL"
+    }
+  },
+  "android.widget.Magnifier.SourceBound": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_BOUND_MAX_IN_SURFACE",
+      "1": "SOURCE_BOUND_MAX_VISIBLE"
+    }
+  },
+  "android.widget.NumberPicker.OnScrollListener.ScrollState": {
+    "flag": false,
+    "values": {
+      "0": "SCROLL_STATE_IDLE",
+      "1": "SCROLL_STATE_TOUCH_SCROLL",
+      "2": "SCROLL_STATE_FLING"
+    }
+  },
+  "android.widget.RadialTimePickerView.PickerType": {
+    "flag": false,
+    "values": {
+      "0": "HOURS",
+      "1": "MINUTES"
+    }
+  },
+  "android.widget.RemoteViews.ApplyFlags": {
+    "flag": true,
+    "values": {
+      "1": "FLAG_REAPPLY_DISALLOWED",
+      "2": "FLAG_WIDGET_IS_COLLECTION_CHILD",
+      "4": "FLAG_USE_LIGHT_BACKGROUND_LAYOUT"
+    }
+  },
+  "android.widget.SmartSelectSprite.RectangleList.DisplayType": {
+    "flag": false,
+    "values": {
+      "0": "RECTANGLES",
+      "1": "POLYGON"
+    }
+  },
+  "android.widget.SmartSelectSprite.RoundedRectangleShape.ExpansionDirection": {
+    "flag": false,
+    "values": {
+      "-1": "LEFT",
+      "0": "CENTER",
+      "1": "RIGHT"
+    }
+  },
+  "android.widget.TextView.AutoSizeTextType": {
+    "flag": false,
+    "values": {
+      "0": "AUTO_SIZE_TEXT_TYPE_NONE",
+      "1": "AUTO_SIZE_TEXT_TYPE_UNIFORM"
+    }
+  },
+  "android.widget.TextView.XMLTypefaceAttr": {
+    "flag": false,
+    "values": {
+      "-1": "DEFAULT_TYPEFACE",
+      "1": "SANS",
+      "2": "SERIF",
+      "3": "MONOSPACE"
+    }
+  },
+  "android.widget.TimePicker.TimePickerMode": {
+    "flag": false,
+    "values": {
+      "1": "MODE_SPINNER",
+      "2": "MODE_CLOCK"
+    }
+  },
+  "android.widget.TimePickerClockDelegate.ChangeSource": {
+    "flag": false,
+    "values": {
+      "0": "FROM_EXTERNAL_API",
+      "1": "FROM_RADIAL_PICKER",
+      "2": "FROM_INPUT_PICKER"
+    }
+  },
+  "android.widget.Toast.Duration": {
+    "flag": false,
+    "values": {
+      "0": "LENGTH_SHORT",
+      "1": "LENGTH_LONG"
+    }
+  },
+  "android.window.TransitionInfo.TransitionMode": {
+    "flag": false,
+    "values": {
+      "0": "TRANSIT_NONE",
+      "1": "TRANSIT_OPEN",
+      "2": "TRANSIT_CLOSE",
+      "3": "TRANSIT_SHOW",
+      "4": "TRANSIT_HIDE",
+      "5": "TRANSIT_CHANGE"
+    }
+  },
+  "com.android.internal.accessibility.AccessibilityShortcutController.DialogStaus": {
+    "flag": false,
+    "values": {
+      "0": "NOT_SHOWN",
+      "1": "SHOWN"
+    }
+  },
+  "com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType": {
+    "flag": false,
+    "values": {
+      "0": "VOLUME_SHORTCUT_TOGGLE",
+      "1": "INVISIBLE_TOGGLE",
+      "2": "TOGGLE",
+      "3": "LAUNCH_ACTIVITY"
+    }
+  },
+  "com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode": {
+    "flag": false,
+    "values": {
+      "0": "LAUNCH",
+      "1": "EDIT"
+    }
+  },
+  "com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType": {
+    "flag": false,
+    "values": {
+      "0": "DEFAULT",
+      "1": "SOFTWARE",
+      "2": "HARDWARE",
+      "4": "TRIPLETAP"
+    }
+  },
+  "com.android.internal.app.AbstractMultiProfilePagerAdapter.Profile": {
+    "flag": false,
+    "values": {
+      "0": "PROFILE_PERSONAL",
+      "1": "PROFILE_WORK"
+    }
+  },
+  "com.android.internal.app.ChooserActivity.ContentPreviewType": {
+    "flag": false,
+    "values": {
+      "2": "CONTENT_PREVIEW_FILE",
+      "1": "CONTENT_PREVIEW_IMAGE",
+      "3": "CONTENT_PREVIEW_TEXT"
+    }
+  },
+  "com.android.internal.app.ChooserActivity.ShareTargetType": {
+    "flag": false,
+    "values": {
+      "0": "TARGET_TYPE_DEFAULT",
+      "1": "TARGET_TYPE_CHOOSER_TARGET",
+      "2": "TARGET_TYPE_SHORTCUTS_FROM_SHORTCUT_MANAGER",
+      "3": "TARGET_TYPE_SHORTCUTS_FROM_PREDICTION_SERVICE"
+    }
+  },
+  "com.android.internal.compat.ChangeReporter.Source": {
+    "flag": false,
+    "values": {
+      "0": "SOURCE_UNKNOWN_SOURCE",
+      "1": "SOURCE_APP_PROCESS",
+      "2": "SOURCE_SYSTEM_SERVER"
+    }
+  },
+  "com.android.internal.compat.ChangeReporter.State": {
+    "flag": false,
+    "values": {
+      "0": "STATE_UNKNOWN_STATE",
+      "1": "STATE_ENABLED",
+      "2": "STATE_DISABLED",
+      "3": "STATE_LOGGED"
+    }
+  },
+  "com.android.internal.compat.OverrideAllowedState.State": {
+    "flag": false,
+    "values": {
+      "0": "ALLOWED",
+      "1": "DISABLED_NOT_DEBUGGABLE",
+      "2": "DISABLED_NON_TARGET_SDK",
+      "3": "DISABLED_TARGET_SDK_TOO_HIGH",
+      "4": "PACKAGE_DOES_NOT_EXIST",
+      "5": "LOGGING_ONLY_CHANGE"
+    }
+  },
+  "com.android.internal.inputmethod.SoftInputShowHideReason": {
+    "flag": false,
+    "values": {
+      "0": "SHOW_SOFT_INPUT",
+      "1": "ATTACH_NEW_INPUT",
+      "2": "SHOW_MY_SOFT_INPUT",
+      "3": "HIDE_SOFT_INPUT",
+      "4": "HIDE_MY_SOFT_INPUT",
+      "5": "SHOW_AUTO_EDITOR_FORWARD_NAV",
+      "6": "SHOW_STATE_VISIBLE_FORWARD_NAV",
+      "7": "SHOW_STATE_ALWAYS_VISIBLE",
+      "8": "SHOW_SETTINGS_ON_CHANGE",
+      "9": "HIDE_SWITCH_USER",
+      "10": "HIDE_INVALID_USER",
+      "11": "HIDE_UNSPECIFIED_WINDOW",
+      "12": "HIDE_STATE_HIDDEN_FORWARD_NAV",
+      "13": "HIDE_ALWAYS_HIDDEN_STATE",
+      "14": "HIDE_RESET_SHELL_COMMAND",
+      "15": "HIDE_SETTINGS_ON_CHANGE",
+      "16": "HIDE_POWER_BUTTON_GO_HOME",
+      "17": "HIDE_DOCKED_STACK_ATTACHED",
+      "18": "HIDE_RECENTS_ANIMATION",
+      "19": "HIDE_BUBBLES",
+      "20": "HIDE_SAME_WINDOW_FOCUSED_WITHOUT_EDITOR"
+    }
+  },
+  "com.android.internal.inputmethod.StartInputFlags": {
+    "flag": true,
+    "values": {
+      "1": "VIEW_HAS_FOCUS",
+      "2": "IS_TEXT_EDITOR",
+      "4": "INITIAL_CONNECTION"
+    }
+  },
+  "com.android.internal.inputmethod.StartInputReason": {
+    "flag": false,
+    "values": {
+      "0": "UNSPECIFIED",
+      "1": "WINDOW_FOCUS_GAIN",
+      "2": "WINDOW_FOCUS_GAIN_REPORT_WITH_CONNECTION",
+      "3": "WINDOW_FOCUS_GAIN_REPORT_WITHOUT_CONNECTION",
+      "4": "APP_CALLED_RESTART_INPUT_API",
+      "5": "CHECK_FOCUS",
+      "6": "BOUND_TO_IMMS",
+      "7": "UNBOUND_FROM_IMMS",
+      "8": "ACTIVATED_BY_IMMS",
+      "9": "DEACTIVATED_BY_IMMS",
+      "10": "SESSION_CREATED_BY_IME"
+    }
+  },
+  "com.android.internal.inputmethod.UnbindReason": {
+    "flag": false,
+    "values": {
+      "0": "UNSPECIFIED",
+      "1": "SWITCH_CLIENT",
+      "2": "SWITCH_IME",
+      "3": "DISCONNECT_IME",
+      "4": "NO_IME",
+      "5": "SWITCH_IME_FAILED",
+      "6": "SWITCH_USER"
+    }
+  },
+  "com.android.internal.jank.InteractionJankMonitor.CujType": {
+    "flag": false,
+    "values": {
+      "0": "CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE",
+      "1": "CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE_LOCK",
+      "2": "CUJ_NOTIFICATION_SHADE_SCROLL_FLING",
+      "3": "CUJ_NOTIFICATION_SHADE_ROW_EXPAND",
+      "4": "CUJ_NOTIFICATION_SHADE_ROW_SWIPE",
+      "5": "CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE",
+      "6": "CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE",
+      "7": "CUJ_LAUNCHER_APP_LAUNCH_FROM_RECENTS",
+      "8": "CUJ_LAUNCHER_APP_LAUNCH_FROM_ICON",
+      "9": "CUJ_LAUNCHER_APP_CLOSE_TO_HOME",
+      "10": "CUJ_LAUNCHER_APP_CLOSE_TO_PIP",
+      "11": "CUJ_LAUNCHER_QUICK_SWITCH",
+      "12": "CUJ_NOTIFICATION_HEADS_UP_APPEAR",
+      "13": "CUJ_NOTIFICATION_HEADS_UP_DISAPPEAR",
+      "14": "CUJ_NOTIFICATION_ADD",
+      "15": "CUJ_NOTIFICATION_REMOVE",
+      "16": "CUJ_NOTIFICATION_APP_START"
+    }
+  },
+  "com.android.internal.location.ProviderProperties.Accuracy": {
+    "flag": false,
+    "values": {
+      "1": "ACCURACY_FINE",
+      "2": "ACCURACY_COARSE"
+    }
+  },
+  "com.android.internal.location.ProviderProperties.PowerRequirement": {
+    "flag": false,
+    "values": {
+      "1": "POWER_LOW",
+      "2": "POWER_MEDIUM",
+      "3": "POWER_HIGH"
+    }
+  },
+  "com.android.internal.location.timezone.LocationTimeZoneEvent.EventType": {
+    "flag": false,
+    "values": {
+      "0": "EVENT_TYPE_UNKNOWN",
+      "1": "EVENT_TYPE_PERMANENT_FAILURE",
+      "2": "EVENT_TYPE_SUCCESS",
+      "3": "EVENT_TYPE_UNCERTAIN"
+    }
+  },
+  "com.android.internal.policy.TaskResizingAlgorithm.CtrlType": {
+    "flag": true,
+    "values": {
+      "0": "CTRL_NONE",
+      "1": "CTRL_LEFT",
+      "2": "CTRL_RIGHT",
+      "4": "CTRL_TOP",
+      "8": "CTRL_BOTTOM"
+    }
+  },
+  "com.android.internal.power.MeasuredEnergyArray.MeasuredEnergySubsystem": {
+    "flag": false,
+    "values": {
+      "-1": "SUBSYSTEM_UNKNOWN",
+      "0": "SUBSYSTEM_DISPLAY"
+    }
+  },
+  "com.android.internal.power.MeasuredEnergyStats.EnergyBucket": {
+    "flag": false,
+    "values": {
+      "-1": "ENERGY_BUCKET_UNKNOWN",
+      "0": "ENERGY_BUCKET_SCREEN_ON",
+      "1": "ENERGY_BUCKET_SCREEN_DOZE",
+      "2": "ENERGY_BUCKET_SCREEN_OTHER"
+    }
+  },
+  "com.android.internal.util.LocationPermissionChecker.LocationPermissionCheckStatus": {
+    "flag": false,
+    "values": {
+      "0": "SUCCEEDED",
+      "1": "ERROR_LOCATION_MODE_OFF",
+      "2": "ERROR_LOCATION_PERMISSION_MISSING"
+    }
+  },
+  "com.android.internal.view.InputBindResult.ResultCode": {
+    "flag": false,
+    "values": {
+      "0": "SUCCESS_WITH_IME_SESSION",
+      "1": "SUCCESS_WAITING_IME_SESSION",
+      "2": "SUCCESS_WAITING_IME_BINDING",
+      "4": "SUCCESS_REPORT_WINDOW_FOCUS_ONLY",
+      "5": "ERROR_NULL",
+      "6": "ERROR_NO_IME",
+      "7": "ERROR_INVALID_PACKAGE_NAME",
+      "8": "ERROR_SYSTEM_NOT_READY",
+      "9": "ERROR_IME_NOT_CONNECTED",
+      "10": "ERROR_INVALID_USER",
+      "11": "ERROR_NULL_EDITOR_INFO",
+      "12": "ERROR_NOT_IME_TARGET_WINDOW",
+      "13": "ERROR_NO_EDITOR",
+      "14": "ERROR_DISPLAY_ID_MISMATCH",
+      "15": "ERROR_INVALID_DISPLAY_ID",
+      "16": "ERROR_INVALID_CLIENT"
+    }
+  },
+  "com.android.internal.view.menu.CascadingMenuPopup.HorizPosition": {
+    "flag": false,
+    "values": {
+      "0": "HORIZ_POSITION_LEFT",
+      "1": "HORIZ_POSITION_RIGHT"
+    }
+  },
+  "com.android.internal.widget.LockPatternUtils.CredentialType": {
+    "flag": false,
+    "values": {
+      "-1": "CREDENTIAL_TYPE_NONE",
+      "1": "CREDENTIAL_TYPE_PATTERN",
+      "4": "CREDENTIAL_TYPE_PASSWORD",
+      "3": "CREDENTIAL_TYPE_PIN"
+    }
+  },
+  "com.android.internal.widget.LockPatternUtils.StrongAuthTracker.StrongAuthFlags": {
+    "flag": true,
+    "values": {
+      "0": "STRONG_AUTH_NOT_REQUIRED",
+      "1": "STRONG_AUTH_REQUIRED_AFTER_BOOT",
+      "2": "STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW",
+      "4": "SOME_AUTH_REQUIRED_AFTER_USER_REQUEST",
+      "8": "STRONG_AUTH_REQUIRED_AFTER_LOCKOUT",
+      "16": "STRONG_AUTH_REQUIRED_AFTER_TIMEOUT",
+      "32": "STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN",
+      "128": "STRONG_AUTH_REQUIRED_AFTER_NON_STRONG_BIOMETRICS_TIMEOUT"
+    }
+  },
+  "com.android.internal.widget.LockPatternUtils.VerifyFlag": {
+    "flag": true,
+    "values": {
+      "1": "VERIFY_FLAG_REQUEST_GK_PW_HANDLE"
+    }
+  },
+  "com.android.internal.widget.MessagingGroup.ImageDisplayLocation": {
+    "flag": false,
+    "values": {
+      "0": "IMAGE_DISPLAY_LOCATION_INLINE",
+      "1": "IMAGE_DISPLAY_LOCATION_AT_END",
+      "2": "IMAGE_DISPLAY_LOCATION_EXTERNAL"
+    }
+  },
+  "com.android.internal.widget.RecyclerView.ItemAnimator.AdapterChanges": {
+    "flag": true,
+    "values": {
+      "2": "FLAG_CHANGED",
+      "8": "FLAG_REMOVED",
+      "2048": "FLAG_MOVED",
+      "4": "FLAG_INVALIDATED",
+      "4096": "FLAG_APPEARED_IN_PRE_LAYOUT"
+    }
+  },
+  "com.android.internal.widget.RecyclerView.State.LayoutState": {
+    "flag": true,
+    "values": {
+      "1": "STEP_START",
+      "2": "STEP_LAYOUT",
+      "4": "STEP_ANIMATIONS"
+    }
+  },
+  "com.android.internal.widget.VerifyCredentialResponse.ResponseCode": {
+    "flag": false,
+    "values": {
+      "-1": "RESPONSE_ERROR",
+      "0": "RESPONSE_OK",
+      "1": "RESPONSE_RETRY"
+    }
+  },
+  "com.android.server.deviceidle.IDeviceIdleConstraint.MinimumState": {
+    "flag": false,
+    "values": {
+      "0": "ACTIVE",
+      "1": "SENSING_OR_ABOVE"
+    }
+  }
+}
diff --git a/darwin-x86/protobuf/MODULE_LICENSE_BSD_LIKE b/darwin-x86/protobuf/MODULE_LICENSE_BSD_LIKE
deleted file mode 100644
index e69de29..0000000
--- a/darwin-x86/protobuf/MODULE_LICENSE_BSD_LIKE
+++ /dev/null
diff --git a/darwin-x86/protobuf/PREBUILT b/darwin-x86/protobuf/PREBUILT
deleted file mode 100644
index e9fcf94..0000000
--- a/darwin-x86/protobuf/PREBUILT
+++ /dev/null
@@ -1,2 +0,0 @@
-The binaries in this prebuilt directory can be rebuilt using
-the source in external/protobuf with build command "make aprotoc".
diff --git a/darwin-x86/protobuf/aprotoc b/darwin-x86/protobuf/aprotoc
deleted file mode 100755
index 01ba7f7..0000000
--- a/darwin-x86/protobuf/aprotoc
+++ /dev/null
Binary files differ
diff --git a/gdbserver/Android.bp b/gdbserver/Android.bp
index 8e9c86d..f0328c0 100644
--- a/gdbserver/Android.bp
+++ b/gdbserver/Android.bp
@@ -1,3 +1,36 @@
+package {
+    default_applicable_licenses: ["prebuilts_misc_gdbserver_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "prebuilts_misc_gdbserver_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-GPL",
+        "SPDX-license-identifier-GPL-2.0",
+        "SPDX-license-identifier-LGPL",
+        "SPDX-license-identifier-MIT",
+        "SPDX-license-identifier-PSF-2.0",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 cc_prebuilt_binary {
     name: "gdbserver",
     compile_multilib: "both",
@@ -20,12 +53,6 @@
         android_arm64: {
             srcs: ["android-arm64/gdbserver64"],
         },
-        android_mips: {
-            srcs: ["android-mips/gdbserver"],
-        },
-        android_mips64: {
-            srcs: ["android-mips64/gdbserver64"],
-        },
         android_x86: {
             srcs: ["android-x86/gdbserver"],
         },
diff --git a/linux-x86/protobuf/MODULE_LICENSE_BSD_LIKE b/linux-x86/protobuf/MODULE_LICENSE_BSD_LIKE
deleted file mode 100644
index e69de29..0000000
--- a/linux-x86/protobuf/MODULE_LICENSE_BSD_LIKE
+++ /dev/null
diff --git a/linux-x86/protobuf/PREBUILT b/linux-x86/protobuf/PREBUILT
deleted file mode 100644
index e9fcf94..0000000
--- a/linux-x86/protobuf/PREBUILT
+++ /dev/null
@@ -1,2 +0,0 @@
-The binaries in this prebuilt directory can be rebuilt using
-the source in external/protobuf with build command "make aprotoc".
diff --git a/linux-x86/protobuf/aprotoc b/linux-x86/protobuf/aprotoc
deleted file mode 100755
index 96a9314..0000000
--- a/linux-x86/protobuf/aprotoc
+++ /dev/null
Binary files differ
diff --git a/scripts/vboot_signer/Android.bp b/scripts/vboot_signer/Android.bp
index a5c0c2c..e333bf2 100644
--- a/scripts/vboot_signer/Android.bp
+++ b/scripts/vboot_signer/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 sh_binary_host {
     name: "vboot_signer",
     src: "vboot_signer.sh",