Merge changes from topic "ipsec-sync-with-pi"

* changes:
  Disable the AppOp Restriction for IpSec Tunnels
  Rework Exception Handling for IpSecManager
  Update IpSecManager to use InetAddress and prefixLen
  Add AppOps Checks for MANAGE_IPSEC_TUNNELS
  Add MANAGE_IPSEC_TUNNELS Permission
diff --git a/Android.bp b/Android.bp
index 5e79504..58cb9af 100644
--- a/Android.bp
+++ b/Android.bp
@@ -164,8 +164,6 @@
         "core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl",
         "core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl",
         "core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl",
-        "core/java/android/hardware/location/IFusedLocationHardware.aidl",
-        "core/java/android/hardware/location/IFusedLocationHardwareSink.aidl",
         "core/java/android/hardware/location/IGeofenceHardware.aidl",
         "core/java/android/hardware/location/IGeofenceHardwareCallback.aidl",
         "core/java/android/hardware/location/IGeofenceHardwareMonitorCallback.aidl",
@@ -388,7 +386,6 @@
         "location/java/android/location/IBatchedLocationCallback.aidl",
         "location/java/android/location/ICountryDetector.aidl",
         "location/java/android/location/ICountryListener.aidl",
-        "location/java/android/location/IFusedProvider.aidl",
         "location/java/android/location/IGeocodeProvider.aidl",
         "location/java/android/location/IGeofenceProvider.aidl",
         "location/java/android/location/IGnssStatusListener.aidl",
@@ -1040,6 +1037,7 @@
         "core/java/overview.html",
         ":current-support-api",
     ],
+    dex_api_filename: "public-dex.txt",
     private_dex_api_filename: "private-dex.txt",
     removed_dex_api_filename: "removed-dex.txt",
     args: framework_docs_args +
@@ -1073,3 +1071,87 @@
         "core/java/com/android/internal/util/HexDump.java",
     ],
 }
+
+metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.xml) " +
+    "--hide-package com.android.okhttp " +
+    "--hide-package com.android.org.conscrypt --hide-package com.android.server " +
+    "--hide RequiresPermission " +
+    "--hide MissingPermission --hide BroadcastBehavior " +
+    "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
+    "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo"
+
+doc_defaults {
+    name: "metalava-framework-docs-default",
+    srcs: [
+        // test mock src files.
+        "test-mock/src/android/test/mock/**/*.java",
+        // test runner excluding mock src files.
+        "test-runner/src/**/*.java",
+        "test-base/src/**/*.java",
+        ":opt-telephony-srcs",
+        ":opt-net-voip-srcs",
+        ":openjdk_javadoc_files",
+        ":non_openjdk_javadoc_files",
+        ":android_icu4j_src_files_for_docs",
+        ":gen-ojluni-jaif-annotated-srcs",
+    ],
+    exclude_srcs: [
+        ":annotated_ojluni_files",
+    ],
+    srcs_lib: "framework",
+    srcs_lib_whitelist_dirs: frameworks_base_subdirs,
+    srcs_lib_whitelist_pkgs: packages_to_document,
+    libs: [
+        "core-oj",
+        "core-libart",
+        "conscrypt",
+        "bouncycastle",
+        "okhttp",
+        "ext",
+        "framework",
+        "voip-common",
+        "android.test.mock",
+    ],
+    local_sourcepaths: frameworks_base_subdirs,
+    installable: false,
+    metalava_enabled: true,
+}
+
+droiddoc {
+    name: "metalava-api-stubs-docs",
+    defaults: ["metalava-framework-docs-default"],
+    api_tag_name: "METALAVA_PUBLIC",
+    api_filename: "public_api.txt",
+    private_api_filename: "private.txt",
+    removed_api_filename: "removed.txt",
+    arg_files: [
+        "core/res/AndroidManifest.xml",
+    ],
+    args: metalava_framework_docs_args,
+}
+
+droiddoc {
+    name: "metalava-system-api-stubs-docs",
+    defaults: ["metalava-framework-docs-default"],
+    api_tag_name: "METALAVA_SYSTEM",
+    api_filename: "system-api.txt",
+    private_api_filename: "system-private.txt",
+    private_dex_api_filename: "system-private-dex.txt",
+    removed_api_filename: "system-removed.txt",
+    arg_files: [
+        "core/res/AndroidManifest.xml",
+    ],
+    args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi",
+}
+
+droiddoc {
+    name: "metalava-test-api-stubs-docs",
+    defaults: ["metalava-framework-docs-default"],
+    api_tag_name: "METALAVA_TEST",
+    api_filename: "test-api.txt",
+    removed_api_filename: "test-removed.txt",
+    arg_files: [
+        "core/res/AndroidManifest.xml",
+    ],
+    args: metalava_framework_docs_args + " --show-annotation android.annotation.TestApi",
+}
diff --git a/Android.mk b/Android.mk
index a6566eb..eddcada 100644
--- a/Android.mk
+++ b/Android.mk
@@ -594,6 +594,7 @@
 LOCAL_SRC_GREYLIST := frameworks/base/config/hiddenapi-light-greylist.txt
 LOCAL_SRC_VENDOR_LIST := frameworks/base/config/hiddenapi-vendor-list.txt
 LOCAL_SRC_FORCE_BLACKLIST := frameworks/base/config/hiddenapi-force-blacklist.txt
+LOCAL_SRC_PUBLIC_API := $(INTERNAL_PLATFORM_DEX_API_FILE)
 LOCAL_SRC_PRIVATE_API := $(INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE)
 LOCAL_SRC_REMOVED_API := $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE)
 
@@ -601,6 +602,7 @@
 	$(LOCAL_SRC_GREYLIST) \
 	$(LOCAL_SRC_VENDOR_LIST) \
 	$(LOCAL_SRC_FORCE_BLACKLIST) \
+	$(LOCAL_SRC_PUBLIC_API) \
 	$(LOCAL_SRC_PRIVATE_API) \
 	$(LOCAL_SRC_REMOVED_API)
 
@@ -673,7 +675,8 @@
 #   (4) subtract entries shared with LOCAL_LIGHT_GREYLIST
 $(LOCAL_DARK_GREYLIST): $(LOCAL_SRC_ALL) $(LOCAL_LIGHT_GREYLIST)
 	comm -13 <(sort $(LOCAL_LIGHT_GREYLIST) $(LOCAL_SRC_FORCE_BLACKLIST)) \
-	         <(sed 's/\->.*//' $(LOCAL_LIGHT_GREYLIST) | sed 's/\(.*\/\).*/\1/' | sort | uniq | \
+	         <(cat $(LOCAL_SRC_PUBLIC_API) $(LOCAL_LIGHT_GREYLIST) | \
+	               sed 's/\->.*//' | sed 's/\(.*\/\).*/\1/' | sort | uniq | \
 	               while read PKG_NAME; do \
 	                   grep -E "^$${PKG_NAME}[^/;]*;" $(LOCAL_SRC_PRIVATE_API); \
 	               done | sort | uniq) \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index e728897..cc0e762 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -243,6 +243,7 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/hardware)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/core/java/android/os/storage/*)
 $(call add-clean-step, rm -rf $(OUT_DIR)/host/common/obj/JAVA_LIBRARIES/platformprotos_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/com.android.mediadrm.signer.jar)
 # ******************************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
 # ******************************************************************
diff --git a/api/current.txt b/api/current.txt
index 07dc4d2..5b15e6f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -26057,6 +26057,8 @@
 
   public class NetworkRequest implements android.os.Parcelable {
     method public int describeContents();
+    method public boolean hasCapability(int);
+    method public boolean hasTransport(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.NetworkRequest> CREATOR;
   }
@@ -68706,7 +68708,7 @@
     method public java.util.regex.Matcher reset();
     method public java.util.regex.Matcher reset(java.lang.CharSequence);
     method public int start();
-    method public int start(int) throws java.lang.IllegalStateException;
+    method public int start(int);
     method public int start(java.lang.String);
     method public java.util.regex.MatchResult toMatchResult();
     method public java.util.regex.Matcher useAnchoringBounds(boolean);
diff --git a/api/system-current.txt b/api/system-current.txt
index 7e57ee1..9a54ac6 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -2637,6 +2637,10 @@
     field public static final int ERROR_INVALID_NETWORK = 1; // 0x1
   }
 
+  public final class NetworkCapabilities implements android.os.Parcelable {
+    field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
+  }
+
   public class NetworkKey implements android.os.Parcelable {
     ctor public NetworkKey(android.net.WifiKey);
     method public int describeContents();
@@ -4725,6 +4729,7 @@
 package android.telephony.ims {
 
   public final class ImsCallForwardInfo implements android.os.Parcelable {
+    ctor public ImsCallForwardInfo(int, int, int, int, java.lang.String, int);
     method public int describeContents();
     method public int getCondition();
     method public java.lang.String getNumber();
@@ -4970,6 +4975,28 @@
     field public static final int CODE_RADIO_SETUP_FAILURE = 1509; // 0x5e5
     field public static final int CODE_RADIO_UPLINK_FAILURE = 1508; // 0x5e4
     field public static final int CODE_REGISTRATION_ERROR = 1000; // 0x3e8
+    field public static final int CODE_REJECT_1X_COLLISION = 1603; // 0x643
+    field public static final int CODE_REJECT_CALL_ON_OTHER_SUB = 1602; // 0x642
+    field public static final int CODE_REJECT_CALL_TYPE_NOT_ALLOWED = 1605; // 0x645
+    field public static final int CODE_REJECT_CONFERENCE_TTY_NOT_ALLOWED = 1617; // 0x651
+    field public static final int CODE_REJECT_INTERNAL_ERROR = 1612; // 0x64c
+    field public static final int CODE_REJECT_MAX_CALL_LIMIT_REACHED = 1608; // 0x648
+    field public static final int CODE_REJECT_ONGOING_CALL_SETUP = 1607; // 0x647
+    field public static final int CODE_REJECT_ONGOING_CALL_TRANSFER = 1611; // 0x64b
+    field public static final int CODE_REJECT_ONGOING_CALL_UPGRADE = 1616; // 0x650
+    field public static final int CODE_REJECT_ONGOING_CALL_WAITING_DISABLED = 1601; // 0x641
+    field public static final int CODE_REJECT_ONGOING_CONFERENCE_CALL = 1618; // 0x652
+    field public static final int CODE_REJECT_ONGOING_CS_CALL = 1621; // 0x655
+    field public static final int CODE_REJECT_ONGOING_E911_CALL = 1606; // 0x646
+    field public static final int CODE_REJECT_ONGOING_ENCRYPTED_CALL = 1620; // 0x654
+    field public static final int CODE_REJECT_ONGOING_HANDOVER = 1614; // 0x64e
+    field public static final int CODE_REJECT_QOS_FAILURE = 1613; // 0x64d
+    field public static final int CODE_REJECT_SERVICE_NOT_REGISTERED = 1604; // 0x644
+    field public static final int CODE_REJECT_UNKNOWN = 1600; // 0x640
+    field public static final int CODE_REJECT_UNSUPPORTED_SDP_HEADERS = 1610; // 0x64a
+    field public static final int CODE_REJECT_UNSUPPORTED_SIP_HEADERS = 1609; // 0x649
+    field public static final int CODE_REJECT_VT_AVPF_NOT_ALLOWED = 1619; // 0x653
+    field public static final int CODE_REJECT_VT_TTY_NOT_ALLOWED = 1615; // 0x64f
     field public static final int CODE_REMOTE_CALL_DECLINE = 1404; // 0x57c
     field public static final int CODE_SIP_ALTERNATE_EMERGENCY_CALL = 1514; // 0x5ea
     field public static final int CODE_SIP_BAD_ADDRESS = 337; // 0x151
@@ -5034,7 +5061,7 @@
   }
 
   public final class ImsSsData implements android.os.Parcelable {
-    ctor public ImsSsData();
+    ctor public ImsSsData(int, int, int, int, int);
     method public int describeContents();
     method public boolean isTypeBarring();
     method public boolean isTypeCf();
@@ -5085,7 +5112,7 @@
   }
 
   public final class ImsSsInfo implements android.os.Parcelable {
-    ctor public ImsSsInfo();
+    ctor public ImsSsInfo(int, java.lang.String);
     method public int describeContents();
     method public java.lang.String getIcbNum();
     method public int getStatus();
@@ -5241,6 +5268,7 @@
     method public android.telephony.ims.stub.ImsUtImplBase getUt();
     method public final void notifyCapabilitiesStatusChanged(android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
     method public final void notifyIncomingCall(android.telephony.ims.stub.ImsCallSessionImplBase, android.os.Bundle);
+    method public final void notifyRejectedCall(android.telephony.ims.ImsCallProfile, android.telephony.ims.ImsReasonInfo);
     method public final void notifyVoiceMessageCountUpdate(int);
     method public void onFeatureReady();
     method public void onFeatureRemoved();
diff --git a/api/test-current.txt b/api/test-current.txt
index 709b37e..24c22df 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -253,6 +253,11 @@
     field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0
   }
 
+  public final class NetworkCapabilities implements android.os.Parcelable {
+    method public int[] getCapabilities();
+    method public int[] getTransportTypes();
+  }
+
   public class TrafficStats {
     method public static long getLoopbackRxBytes();
     method public static long getLoopbackRxPackets();
@@ -426,6 +431,14 @@
 
 }
 
+package android.telecom {
+
+  public final class CallAudioState implements android.os.Parcelable {
+    ctor public CallAudioState(boolean, int, int, android.bluetooth.BluetoothDevice, java.util.Collection<android.bluetooth.BluetoothDevice>);
+  }
+
+}
+
 package android.telephony {
 
   public class MbmsDownloadSession implements java.lang.AutoCloseable {
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index 21f6739..59719d7 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -3375,8 +3375,6 @@
 HPLandroid/location/ICountryListener$Stub;->asBinder()Landroid/os/IBinder;
 HPLandroid/location/ICountryListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryListener;
 HPLandroid/location/ICountryListener;->onCountryDetected(Landroid/location/Country;)V
-HPLandroid/location/IFusedProvider$Stub;-><init>()V
-HPLandroid/location/IFusedProvider;->onFusedLocationHardwareChange(Landroid/hardware/location/IFusedLocationHardware;)V
 HPLandroid/location/IGeocodeProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HPLandroid/location/IGeocodeProvider$Stub$Proxy;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 HPLandroid/location/IGeocodeProvider$Stub;-><init>()V
diff --git a/config/generate-preloaded-classes.sh b/config/generate-preloaded-classes.sh
index e36e148..0ad3a02 100755
--- a/config/generate-preloaded-classes.sh
+++ b/config/generate-preloaded-classes.sh
@@ -36,4 +36,4 @@
 extra_classes_files=("$@")
 
 # Disable locale to enable lexicographical sorting
-LC_ALL=C sort "$input" "${extra_classes_files[@]}" | uniq | grep -f "$blacklist" -v -F -x
+LC_ALL=C sort "$input" "${extra_classes_files[@]}" | uniq | grep -f "$blacklist" -v -F -x | grep -v "\$NoPreloadHolder"
diff --git a/config/hiddenapi-force-blacklist.txt b/config/hiddenapi-force-blacklist.txt
index 0c689e8..3a9e2d1 100644
--- a/config/hiddenapi-force-blacklist.txt
+++ b/config/hiddenapi-force-blacklist.txt
@@ -1,4 +1,5 @@
 Ldalvik/system/VMRuntime;->setHiddenApiExemptions([Ljava/lang/String;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
 Ljava/lang/invoke/VarHandle;->acquireFence()V
 Ljava/lang/invoke/VarHandle;->compareAndExchange([[Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/lang/invoke/VarHandle;->compareAndExchangeAcquire([[Ljava/lang/Object;)Ljava/lang/Object;
diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt
index ee90684..31914a6 100644
--- a/config/hiddenapi-light-greylist.txt
+++ b/config/hiddenapi-light-greylist.txt
@@ -19,6 +19,8 @@
 Landroid/accounts/AccountManager;->confirmCredentialsAsUser(Landroid/accounts/Account;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/accounts/AccountManagerFuture;
 Landroid/accounts/AccountManager;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;
 Landroid/accounts/AccountManager;->mContext:Landroid/content/Context;
+Landroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V
+Landroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/accounts/IAccountAuthenticator$Stub;-><init>()V
@@ -72,10 +74,14 @@
 Landroid/app/Activity;->mComponent:Landroid/content/ComponentName;
 Landroid/app/Activity;->mConfigChangeFlags:I
 Landroid/app/Activity;->mCurrentConfig:Landroid/content/res/Configuration;
+Landroid/app/Activity;->mDestroyed:Z
+Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
 Landroid/app/Activity;->mFinished:Z
 Landroid/app/Activity;->mFragments:Landroid/app/FragmentController;
 Landroid/app/Activity;->mHandler:Landroid/os/Handler;
+Landroid/app/Activity;->mIdent:I
 Landroid/app/Activity;->mInstrumentation:Landroid/app/Instrumentation;
+Landroid/app/Activity;->mIntent:Landroid/content/Intent;
 Landroid/app/Activity;->mLastNonConfigurationInstances:Landroid/app/Activity$NonConfigurationInstances;
 Landroid/app/Activity;->mMainThread:Landroid/app/ActivityThread;
 Landroid/app/Activity;->mParent:Landroid/app/Activity;
@@ -87,11 +93,13 @@
 Landroid/app/Activity;->mTitle:Ljava/lang/CharSequence;
 Landroid/app/Activity;->mToken:Landroid/os/IBinder;
 Landroid/app/Activity;->mVisibleFromClient:Z
+Landroid/app/Activity;->mVoiceInteractor:Landroid/app/VoiceInteractor;
 Landroid/app/Activity;->mWindow:Landroid/view/Window;
 Landroid/app/Activity;->mWindowAdded:Z
 Landroid/app/Activity;->mWindowManager:Landroid/view/WindowManager;
 Landroid/app/Activity;->performCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
 Landroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V
+Landroid/app/Activity;->setParent(Landroid/app/Activity;)V
 Landroid/app/Activity;->setPersistent(Z)V
 Landroid/app/Activity;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 Landroid/app/Activity;->startActivityForResult(Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;)V
@@ -151,8 +159,8 @@
 Landroid/app/ActivityManager;->PROCESS_STATE_RECEIVER:I
 Landroid/app/ActivityManager;->PROCESS_STATE_SERVICE:I
 Landroid/app/ActivityManager;->PROCESS_STATE_TOP:I
-Landroid/app/ActivityManager;->setPersistentVrThread(I)V
 Landroid/app/ActivityManager;->staticGetMemoryClass()I
+Landroid/app/ActivityManager;->switchUser(I)Z
 Landroid/app/ActivityManagerNative;-><init>()V
 Landroid/app/ActivityManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
 Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
@@ -168,6 +176,7 @@
 Landroid/app/ActivityThread$ActivityClientRecord;->stopped:Z
 Landroid/app/ActivityThread$ActivityClientRecord;->token:Landroid/os/IBinder;
 Landroid/app/ActivityThread$AppBindData;->appInfo:Landroid/content/pm/ApplicationInfo;
+Landroid/app/ActivityThread$AppBindData;->compatInfo:Landroid/content/res/CompatibilityInfo;
 Landroid/app/ActivityThread$AppBindData;->instrumentationArgs:Landroid/os/Bundle;
 Landroid/app/ActivityThread$AppBindData;->persistent:Z
 Landroid/app/ActivityThread$AppBindData;->processName:Ljava/lang/String;
@@ -202,6 +211,8 @@
 Landroid/app/ActivityThread$ServiceArgsData;->args:Landroid/content/Intent;
 Landroid/app/ActivityThread$ServiceArgsData;->token:Landroid/os/IBinder;
 Landroid/app/ActivityThread;-><init>()V
+Landroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
+Landroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
 Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread;
 Landroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
 Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
@@ -216,6 +227,9 @@
 Landroid/app/ActivityThread;->getProcessName()Ljava/lang/String;
 Landroid/app/ActivityThread;->getSystemContext()Landroid/app/ContextImpl;
 Landroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThread$AppBindData;)V
+Landroid/app/ActivityThread;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V
+Landroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V
+Landroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V
 Landroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V
 Landroid/app/ActivityThread;->installProvider(Landroid/content/Context;Landroid/app/ContentProviderHolder;Landroid/content/pm/ProviderInfo;ZZZ)Landroid/app/ContentProviderHolder;
 Landroid/app/ActivityThread;->installSystemProviders(Ljava/util/List;)V
@@ -241,8 +255,10 @@
 Landroid/app/ActivityThread;->mResourcePackages:Landroid/util/ArrayMap;
 Landroid/app/ActivityThread;->mResourcesManager:Landroid/app/ResourcesManager;
 Landroid/app/ActivityThread;->mServices:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mSystemContext:Landroid/app/ContextImpl;
 Landroid/app/ActivityThread;->performNewIntents(Landroid/os/IBinder;Ljava/util/List;Z)V
 Landroid/app/ActivityThread;->performStopActivity(Landroid/os/IBinder;ZLjava/lang/String;)V
+Landroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z
 Landroid/app/ActivityThread;->scheduleGcIdler()V
 Landroid/app/ActivityThread;->sCurrentActivityThread:Landroid/app/ActivityThread;
 Landroid/app/ActivityThread;->sendActivityResult(Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/Intent;)V
@@ -336,7 +352,6 @@
 Landroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I
 Landroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;)I
 Landroid/app/AppOpsManager;->opToName(I)Ljava/lang/String;
-Landroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String;
 Landroid/app/AppOpsManager;->opToSwitch(I)I
 Landroid/app/AppOpsManager;->OP_ACCEPT_HANDOVER:I
 Landroid/app/AppOpsManager;->OP_ACCESS_NOTIFICATIONS:I
@@ -408,12 +423,18 @@
 Landroid/app/AppOpsManager;->OP_WRITE_SETTINGS:I
 Landroid/app/AppOpsManager;->OP_WRITE_SMS:I
 Landroid/app/AppOpsManager;->OP_WRITE_WALLPAPER:I
-Landroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I
 Landroid/app/AppOpsManager;->resetAllModes()V
 Landroid/app/AppOpsManager;->setRestriction(III[Ljava/lang/String;)V
 Landroid/app/AppOpsManager;->sOpPerms:[Ljava/lang/String;
-Landroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
 Landroid/app/AppOpsManager;->_NUM_OP:I
+Landroid/app/assist/AssistContent;-><init>(Landroid/os/Parcel;)V
+Landroid/app/assist/AssistContent;->mClipData:Landroid/content/ClipData;
+Landroid/app/assist/AssistContent;->mExtras:Landroid/os/Bundle;
+Landroid/app/assist/AssistContent;->mIntent:Landroid/content/Intent;
+Landroid/app/assist/AssistContent;->mIsAppProvidedIntent:Z
+Landroid/app/assist/AssistContent;->mStructuredData:Ljava/lang/String;
+Landroid/app/assist/AssistContent;->mUri:Landroid/net/Uri;
+Landroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V
 Landroid/app/backup/BackupDataInput$EntityHeader;->dataSize:I
 Landroid/app/backup/BackupDataInput$EntityHeader;->key:Ljava/lang/String;
 Landroid/app/backup/BackupDataInputStream;->dataSize:I
@@ -445,7 +466,9 @@
 Landroid/app/ContentProviderHolder;-><init>(Landroid/content/pm/ProviderInfo;)V
 Landroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ContentProviderHolder;->info:Landroid/content/pm/ProviderInfo;
+Landroid/app/ContentProviderHolder;->noReleaseNeeded:Z
 Landroid/app/ContentProviderHolder;->provider:Landroid/content/IContentProvider;
+Landroid/app/ContextImpl$ApplicationContentResolver;->mMainThread:Landroid/app/ActivityThread;
 Landroid/app/ContextImpl;->createActivityContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;ILandroid/content/res/Configuration;)Landroid/app/ContextImpl;
 Landroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
 Landroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl;
@@ -466,6 +489,7 @@
 Landroid/app/ContextImpl;->mPreferencesDir:Ljava/io/File;
 Landroid/app/ContextImpl;->mResources:Landroid/content/res/Resources;
 Landroid/app/ContextImpl;->mServiceCache:[Ljava/lang/Object;
+Landroid/app/ContextImpl;->mSharedPrefsPaths:Landroid/util/ArrayMap;
 Landroid/app/ContextImpl;->mTheme:Landroid/content/res/Resources$Theme;
 Landroid/app/ContextImpl;->mThemeResource:I
 Landroid/app/ContextImpl;->scheduleFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
@@ -475,15 +499,19 @@
 Landroid/app/Dialog;->CANCEL:I
 Landroid/app/Dialog;->dismissDialog()V
 Landroid/app/Dialog;->mCancelMessage:Landroid/os/Message;
+Landroid/app/Dialog;->mContext:Landroid/content/Context;
 Landroid/app/Dialog;->mDismissMessage:Landroid/os/Message;
 Landroid/app/Dialog;->mHandler:Landroid/os/Handler;
 Landroid/app/Dialog;->mListenersHandler:Landroid/os/Handler;
 Landroid/app/Dialog;->mOnKeyListener:Landroid/content/DialogInterface$OnKeyListener;
 Landroid/app/Dialog;->mOwnerActivity:Landroid/app/Activity;
+Landroid/app/Dialog;->mShowing:Z
 Landroid/app/Dialog;->mShowMessage:Landroid/os/Message;
 Landroid/app/Dialog;->mWindow:Landroid/view/Window;
+Landroid/app/DialogFragment;->mBackStackId:I
 Landroid/app/DialogFragment;->mDismissed:Z
 Landroid/app/DialogFragment;->mShownByMe:Z
+Landroid/app/DialogFragment;->mViewDestroyed:Z
 Landroid/app/DialogFragment;->showAllowingStateLoss(Landroid/app/FragmentManager;Ljava/lang/String;)V
 Landroid/app/DownloadManager$Query;->orderBy(Ljava/lang/String;I)Landroid/app/DownloadManager$Query;
 Landroid/app/DownloadManager$Query;->setOnlyIncludeVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Query;
@@ -504,9 +532,11 @@
 Landroid/app/Fragment;->mSavedFragmentState:Landroid/os/Bundle;
 Landroid/app/Fragment;->mView:Landroid/view/View;
 Landroid/app/Fragment;->mWho:Ljava/lang/String;
+Landroid/app/Fragment;->sClassMap:Landroid/util/ArrayMap;
 Landroid/app/FragmentController;->mHost:Landroid/app/FragmentHostCallback;
 Landroid/app/FragmentHostCallback;->mLoadersStarted:Z
 Landroid/app/FragmentManagerImpl;->loadAnimator(Landroid/app/Fragment;IZI)Landroid/animation/Animator;
+Landroid/app/FragmentManagerImpl;->mActive:Landroid/util/SparseArray;
 Landroid/app/FragmentManagerImpl;->mAdded:Ljava/util/ArrayList;
 Landroid/app/FragmentManagerImpl;->mStateSaved:Z
 Landroid/app/FragmentManagerImpl;->noteStateNotSaved()V
@@ -519,11 +549,14 @@
 Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J
 Landroid/app/IActivityManager$Stub$Proxy;->isAppForeground(I)Z
 Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V
+Landroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
 Landroid/app/IActivityManager;->bindService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;I)I
 Landroid/app/IActivityManager;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 Landroid/app/IActivityManager;->checkPermission(Ljava/lang/String;II)I
 Landroid/app/IActivityManager;->enterSafeMode()V
 Landroid/app/IActivityManager;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
+Landroid/app/IActivityManager;->finishHeavyWeightApp()V
 Landroid/app/IActivityManager;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
 Landroid/app/IActivityManager;->forceStopPackage(Ljava/lang/String;I)V
 Landroid/app/IActivityManager;->getAllStackInfos()Ljava/util/List;
@@ -544,6 +577,7 @@
 Landroid/app/IActivityManager;->hang(Landroid/os/IBinder;Z)V
 Landroid/app/IActivityManager;->isInLockTaskMode()Z
 Landroid/app/IActivityManager;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager;->isTopOfTask(Landroid/os/IBinder;)Z
 Landroid/app/IActivityManager;->isUserRunning(II)Z
 Landroid/app/IActivityManager;->killAllBackgroundProcesses()V
 Landroid/app/IActivityManager;->killApplicationProcess(Ljava/lang/String;I)V
@@ -556,6 +590,7 @@
 Landroid/app/IActivityManager;->profileControl(Ljava/lang/String;IZLandroid/app/ProfilerInfo;I)Z
 Landroid/app/IActivityManager;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
 Landroid/app/IActivityManager;->registerProcessObserver(Landroid/app/IProcessObserver;)V
+Landroid/app/IActivityManager;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
 Landroid/app/IActivityManager;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
 Landroid/app/IActivityManager;->removeContentProviderExternal(Ljava/lang/String;Landroid/os/IBinder;)V
 Landroid/app/IActivityManager;->removeStack(I)V
@@ -566,6 +601,7 @@
 Landroid/app/IActivityManager;->restart()V
 Landroid/app/IActivityManager;->resumeAppSwitches()V
 Landroid/app/IActivityManager;->sendIdleJobTrigger()V
+Landroid/app/IActivityManager;->serviceDoneExecuting(Landroid/os/IBinder;III)V
 Landroid/app/IActivityManager;->setActivityController(Landroid/app/IActivityController;Z)V
 Landroid/app/IActivityManager;->setAlwaysFinish(Z)V
 Landroid/app/IActivityManager;->setDebugApp(Ljava/lang/String;ZZ)V
@@ -594,6 +630,7 @@
 Landroid/app/IActivityManager;->unregisterProcessObserver(Landroid/app/IProcessObserver;)V
 Landroid/app/IActivityManager;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
 Landroid/app/IActivityManager;->unstableProviderDied(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->updateConfiguration(Landroid/content/res/Configuration;)Z
 Landroid/app/IActivityManager;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V
 Landroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAlarmManager$Stub;-><init>()V
@@ -601,6 +638,7 @@
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_remove:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_set:I
 Landroid/app/IAlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+Landroid/app/IAlarmManager;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 Landroid/app/IApplicationThread;->processInBackground()V
 Landroid/app/IApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
 Landroid/app/IApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
@@ -613,13 +651,16 @@
 Landroid/app/IApplicationThread;->updateTimeZone()V
 Landroid/app/IAppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
 Landroid/app/IBackupAgent$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IBackupAgent;
+Landroid/app/IInputForwarder;->forwardEvent(Landroid/view/InputEvent;)Z
 Landroid/app/IInstrumentationWatcher$Stub;-><init>()V
 Landroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
 Landroid/app/IInstrumentationWatcher;->instrumentationFinished(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
 Landroid/app/IInstrumentationWatcher;->instrumentationStatus(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
 Landroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
 Landroid/app/INotificationManager$Stub;-><init>()V
 Landroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager;
+Landroid/app/INotificationManager;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
 Landroid/app/INotificationManager;->cancelAllNotifications(Ljava/lang/String;I)V
 Landroid/app/INotificationManager;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/app/INotificationManager;->cancelToast(Ljava/lang/String;Landroid/app/ITransientNotification;)V
@@ -643,6 +684,7 @@
 Landroid/app/ISearchManager$Stub$Proxy;->getWebSearchActivity()Landroid/content/ComponentName;
 Landroid/app/ISearchManager$Stub;-><init>()V
 Landroid/app/ISearchManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManager;
+Landroid/app/ISearchManager;->getGlobalSearchActivity()Landroid/content/ComponentName;
 Landroid/app/IServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IServiceConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IServiceConnection$Stub;-><init>()V
@@ -654,7 +696,10 @@
 Landroid/app/IStopUserCallback;->userStopped(I)V
 Landroid/app/ITransientNotification$Stub;-><init>()V
 Landroid/app/ITransientNotification;->hide()V
+Landroid/app/ITransientNotification;->show(Landroid/os/IBinder;)V
 Landroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
+Landroid/app/IUiModeManager;->disableCarMode(I)V
 Landroid/app/IUserSwitchObserver$Stub;-><init>()V
 Landroid/app/IWallpaperManager$Stub;-><init>()V
 Landroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
@@ -682,12 +727,21 @@
 Landroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
 Landroid/app/job/IJobService;->startJob(Landroid/app/job/JobParameters;)V
 Landroid/app/job/IJobService;->stopJob(Landroid/app/job/JobParameters;)V
+Landroid/app/job/JobInfo$Builder;->setFlags(I)Landroid/app/job/JobInfo$Builder;
+Landroid/app/job/JobInfo$Builder;->setPriority(I)Landroid/app/job/JobInfo$Builder;
 Landroid/app/job/JobInfo;->flags:I
+Landroid/app/job/JobInfo;->FLAG_WILL_BE_FOREGROUND:I
 Landroid/app/job/JobInfo;->jobId:I
+Landroid/app/job/JobInfo;->PRIORITY_FOREGROUND_APP:I
 Landroid/app/job/JobInfo;->service:Landroid/content/ComponentName;
 Landroid/app/job/JobParameters;->callback:Landroid/os/IBinder;
 Landroid/app/job/JobParameters;->getCallback()Landroid/app/job/IJobCallback;
 Landroid/app/job/JobParameters;->jobId:I
+Landroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V
+Landroid/app/job/JobWorkItem;->mDeliveryCount:I
+Landroid/app/job/JobWorkItem;->mGrants:Ljava/lang/Object;
+Landroid/app/job/JobWorkItem;->mIntent:Landroid/content/Intent;
+Landroid/app/job/JobWorkItem;->mWorkId:I
 Landroid/app/KeyguardManager;->isDeviceSecure(I)Z
 Landroid/app/LoadedApk$ReceiverDispatcher;->getIIntentReceiver()Landroid/content/IIntentReceiver;
 Landroid/app/LoadedApk$ReceiverDispatcher;->getIntentReceiver()Landroid/content/BroadcastReceiver;
@@ -698,6 +752,7 @@
 Landroid/app/LoadedApk$ServiceDispatcher;->getIServiceConnection()Landroid/app/IServiceConnection;
 Landroid/app/LoadedApk$ServiceDispatcher;->mConnection:Landroid/content/ServiceConnection;
 Landroid/app/LoadedApk$ServiceDispatcher;->mContext:Landroid/content/Context;
+Landroid/app/LoadedApk;->getAppDir()Ljava/lang/String;
 Landroid/app/LoadedApk;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
 Landroid/app/LoadedApk;->getAssets()Landroid/content/res/AssetManager;
 Landroid/app/LoadedApk;->getClassLoader()Ljava/lang/ClassLoader;
@@ -707,6 +762,7 @@
 Landroid/app/LoadedApk;->getPackageName()Ljava/lang/String;
 Landroid/app/LoadedApk;->getResDir()Ljava/lang/String;
 Landroid/app/LoadedApk;->getResources()Landroid/content/res/Resources;
+Landroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
 Landroid/app/LoadedApk;->getSplitResDirs()[Ljava/lang/String;
 Landroid/app/LoadedApk;->mActivityThread:Landroid/app/ActivityThread;
 Landroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
@@ -728,6 +784,7 @@
 Landroid/app/LoadedApk;->rewriteRValues(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
 Landroid/app/LocalActivityManager;->mActivities:Ljava/util/Map;
 Landroid/app/LocalActivityManager;->mActivityArray:Ljava/util/ArrayList;
+Landroid/app/LocalActivityManager;->moveToState(Landroid/app/LocalActivityManager$LocalActivityRecord;I)V
 Landroid/app/LocalActivityManager;->mParent:Landroid/app/Activity;
 Landroid/app/LocalActivityManager;->mResumed:Landroid/app/LocalActivityManager$LocalActivityRecord;
 Landroid/app/LocalActivityManager;->mSingleMode:Z
@@ -768,12 +825,15 @@
 Landroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
 Landroid/app/PendingIntent;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
 Landroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
+Landroid/app/PendingIntent;->getTag(Ljava/lang/String;)Ljava/lang/String;
 Landroid/app/PendingIntent;->isActivity()Z
 Landroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V
 Landroid/app/PictureInPictureArgs;-><init>()V
 Landroid/app/PictureInPictureArgs;->setActions(Ljava/util/List;)V
 Landroid/app/PictureInPictureArgs;->setAspectRatio(F)V
+Landroid/app/PictureInPictureParams;->getActions()Ljava/util/List;
 Landroid/app/PictureInPictureParams;->getAspectRatio()F
+Landroid/app/PictureInPictureParams;->getSourceRectHint()Landroid/graphics/Rect;
 Landroid/app/Presentation;->createPresentationContext(Landroid/content/Context;Landroid/view/Display;I)Landroid/content/Context;
 Landroid/app/ProgressDialog;->mMessageView:Landroid/widget/TextView;
 Landroid/app/ProgressDialog;->mProgress:Landroid/widget/ProgressBar;
@@ -849,26 +909,44 @@
 Landroid/app/UiAutomation;->disconnect()V
 Landroid/app/UiAutomationConnection;-><init>()V
 Landroid/app/UiModeManager;-><init>()V
+Landroid/app/usage/ConfigurationStats;->mActivationCount:I
+Landroid/app/usage/ConfigurationStats;->mBeginTimeStamp:J
+Landroid/app/usage/ConfigurationStats;->mConfiguration:Landroid/content/res/Configuration;
+Landroid/app/usage/ConfigurationStats;->mEndTimeStamp:J
+Landroid/app/usage/ConfigurationStats;->mLastTimeActive:J
+Landroid/app/usage/ConfigurationStats;->mTotalTimeActive:J
 Landroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
 Landroid/app/usage/IUsageStatsManager;->isAppInactive(Ljava/lang/String;I)Z
 Landroid/app/usage/IUsageStatsManager;->queryConfigurationStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
 Landroid/app/usage/IUsageStatsManager;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
 Landroid/app/usage/IUsageStatsManager;->setAppInactive(Ljava/lang/String;ZI)V
 Landroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;)V
+Landroid/app/usage/UsageEvents$Event;->mClass:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mConfiguration:Landroid/content/res/Configuration;
+Landroid/app/usage/UsageEvents$Event;->mEventType:I
+Landroid/app/usage/UsageEvents$Event;->mPackage:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mTimeStamp:J
+Landroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
+Landroid/app/usage/UsageEvents;->findStringIndex(Ljava/lang/String;)I
+Landroid/app/usage/UsageEvents;->mEventCount:I
+Landroid/app/usage/UsageEvents;->mEventsToWrite:Ljava/util/List;
+Landroid/app/usage/UsageEvents;->mIndex:I
+Landroid/app/usage/UsageEvents;->mParcel:Landroid/os/Parcel;
+Landroid/app/usage/UsageEvents;->mStringPool:[Ljava/lang/String;
+Landroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V
+Landroid/app/usage/UsageEvents;->writeEventToParcel(Landroid/app/usage/UsageEvents$Event;Landroid/os/Parcel;I)V
+Landroid/app/usage/UsageStats;->mBeginTimeStamp:J
+Landroid/app/usage/UsageStats;->mEndTimeStamp:J
 Landroid/app/usage/UsageStats;->mLastEvent:I
+Landroid/app/usage/UsageStats;->mLastTimeUsed:J
 Landroid/app/usage/UsageStats;->mLaunchCount:I
+Landroid/app/usage/UsageStats;->mPackageName:Ljava/lang/String;
 Landroid/app/usage/UsageStats;->mTotalTimeInForeground:J
+Landroid/app/usage/UsageStatsManager;->mContext:Landroid/content/Context;
 Landroid/app/usage/UsageStatsManager;->mService:Landroid/app/usage/IUsageStatsManager;
+Landroid/app/usage/UsageStatsManager;->sEmptyResults:Landroid/app/usage/UsageEvents;
 Landroid/app/UserSwitchObserver;-><init>()V
-Landroid/app/Vr2dDisplayProperties$Builder;-><init>()V
-Landroid/app/Vr2dDisplayProperties$Builder;->build()Landroid/app/Vr2dDisplayProperties;
-Landroid/app/Vr2dDisplayProperties$Builder;->setEnabled(Z)Landroid/app/Vr2dDisplayProperties$Builder;
-Landroid/app/Vr2dDisplayProperties;-><init>(III)V
-Landroid/app/VrManager;->getPersistentVrModeEnabled()Z
 Landroid/app/VrManager;->mService:Landroid/service/vr/IVrManager;
-Landroid/app/VrManager;->registerVrStateCallback(Landroid/app/VrStateCallback;Landroid/os/Handler;)V
-Landroid/app/VrManager;->setVr2dDisplayProperties(Landroid/app/Vr2dDisplayProperties;)V
-Landroid/app/VrManager;->unregisterVrStateCallback(Landroid/app/VrStateCallback;)V
 Landroid/app/WallpaperColors;->getColorHints()I
 Landroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;I)V
 Landroid/app/WallpaperManager;->getBitmap()Landroid/graphics/Bitmap;
@@ -915,6 +993,7 @@
 Landroid/bluetooth/BluetoothA2dp;->setOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;I)V
 Landroid/bluetooth/BluetoothA2dp;->stateToString(I)Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dp;->supportsOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothA2dpSink;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothAdapter;->disable(Z)Z
 Landroid/bluetooth/BluetoothAdapter;->factoryReset()Z
 Landroid/bluetooth/BluetoothAdapter;->getBluetoothManager()Landroid/bluetooth/IBluetoothManager;
@@ -990,6 +1069,7 @@
 Landroid/bluetooth/BluetoothDevice;->EXTRA_SDP_SEARCH_STATUS:Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevice;->getAlias()Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevice;->getAliasName()Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->getBatteryLevel()I
 Landroid/bluetooth/BluetoothDevice;->getMessageAccessPermission()I
 Landroid/bluetooth/BluetoothDevice;->getPhonebookAccessPermission()I
 Landroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
@@ -1050,6 +1130,7 @@
 Landroid/bluetooth/BluetoothHearingAid;->ACTION_ACTIVE_DEVICE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHearingAid;->getActiveDevices()Ljava/util/List;
 Landroid/bluetooth/BluetoothHearingAid;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothMapClient;->sendMessage(Landroid/bluetooth/BluetoothDevice;[Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)Z
 Landroid/bluetooth/BluetoothPan;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothPan;->close()V
@@ -1061,11 +1142,13 @@
 Landroid/bluetooth/BluetoothPan;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothPan;->log(Ljava/lang/String;)V
 Landroid/bluetooth/BluetoothPan;->setBluetoothTethering(Z)V
+Landroid/bluetooth/BluetoothPbap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothProfile;->A2DP_SINK:I
 Landroid/bluetooth/BluetoothProfile;->AVRCP_CONTROLLER:I
 Landroid/bluetooth/BluetoothProfile;->PAN:I
 Landroid/bluetooth/BluetoothProfile;->PRIORITY_AUTO_CONNECT:I
 Landroid/bluetooth/BluetoothProfile;->PRIORITY_UNDEFINED:I
+Landroid/bluetooth/BluetoothSap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothServerSocket;->mSocket:Landroid/bluetooth/BluetoothSocket;
 Landroid/bluetooth/BluetoothSocket;->EADDRINUSE:I
 Landroid/bluetooth/BluetoothSocket;->flush()V
@@ -1149,6 +1232,7 @@
 Landroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/ComponentName;->printShortString(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
+Landroid/content/ContentProvider;->mAuthorities:[Ljava/lang/String;
 Landroid/content/ContentProvider;->mAuthority:Ljava/lang/String;
 Landroid/content/ContentProvider;->maybeAddUserId(Landroid/net/Uri;I)Landroid/net/Uri;
 Landroid/content/ContentProvider;->mContext:Landroid/content/Context;
@@ -1195,6 +1279,7 @@
 Landroid/content/Context;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
 Landroid/content/Context;->COUNTRY_DETECTOR:Ljava/lang/String;
 Landroid/content/Context;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
+Landroid/content/Context;->ETHERNET_SERVICE:Ljava/lang/String;
 Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
 Landroid/content/Context;->getDisplay()Landroid/view/Display;
 Landroid/content/Context;->getSharedPrefsFile(Ljava/lang/String;)Ljava/io/File;
@@ -1217,6 +1302,8 @@
 Landroid/content/CursorEntityIterator;-><init>(Landroid/database/Cursor;)V
 Landroid/content/CursorLoader;->mCancellationSignal:Landroid/os/CancellationSignal;
 Landroid/content/CursorLoader;->mObserver:Landroid/content/Loader$ForceLoadContentObserver;
+Landroid/content/Entity;->mSubValues:Ljava/util/ArrayList;
+Landroid/content/Entity;->mValues:Landroid/content/ContentValues;
 Landroid/content/IClipboard$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IClipboard$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IClipboard;
 Landroid/content/IContentProvider;->bulkInsert(Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
@@ -1295,6 +1382,8 @@
 Landroid/content/pm/ActivityInfo;->isResizeableMode(I)Z
 Landroid/content/pm/ActivityInfo;->resizeMode:I
 Landroid/content/pm/ActivityInfo;->supportsPictureInPicture()Z
+Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->mPM:Landroid/content/pm/PackageManager;
+Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->sCollator:Ljava/text/Collator;
 Landroid/content/pm/ApplicationInfo;->disableCompatibilityMode()V
 Landroid/content/pm/ApplicationInfo;->enabledSetting:I
 Landroid/content/pm/ApplicationInfo;->fullBackupContent:I
@@ -1303,15 +1392,19 @@
 Landroid/content/pm/ApplicationInfo;->hasRtlSupport()Z
 Landroid/content/pm/ApplicationInfo;->installLocation:I
 Landroid/content/pm/ApplicationInfo;->isForwardLocked()Z
+Landroid/content/pm/ApplicationInfo;->isPackageUnavailable(Landroid/content/pm/PackageManager;)Z
 Landroid/content/pm/ApplicationInfo;->nativeLibraryRootDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->primaryCpuAbi:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->privateFlags:I
 Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_PRIVILEGED:I
+Landroid/content/pm/ApplicationInfo;->resourceDirs:[Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->scanPublicSourceDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->scanSourceDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->secondaryCpuAbi:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->secondaryNativeLibraryDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->versionCode:I
+Landroid/content/pm/BaseParceledListSlice;->getList()Ljava/util/List;
+Landroid/content/pm/BaseParceledListSlice;->writeParcelableCreator(Ljava/lang/Object;Landroid/os/Parcel;)V
 Landroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName;
 Landroid/content/pm/IPackageDataObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageDataObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -1341,6 +1434,7 @@
 Landroid/content/pm/IPackageInstallObserver2$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallObserver2;
 Landroid/content/pm/IPackageInstallObserver2;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/pm/IPackageInstallObserver2;->onUserActionRequired(Landroid/content/Intent;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstallLocation()I
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
@@ -1412,10 +1506,13 @@
 Landroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
 Landroid/content/pm/LauncherActivityInfo;->mActivityInfo:Landroid/content/pm/ActivityInfo;
 Landroid/content/pm/LauncherApps;->mPm:Landroid/content/pm/PackageManager;
+Landroid/content/pm/LauncherApps;->mService:Landroid/content/pm/ILauncherApps;
 Landroid/content/pm/LauncherApps;->startShortcut(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)V
+Landroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageInfo;->coreApp:Z
 Landroid/content/pm/PackageInfo;->INSTALL_LOCATION_UNSPECIFIED:I
 Landroid/content/pm/PackageInfo;->overlayTarget:Ljava/lang/String;
+Landroid/content/pm/PackageInfoLite;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageInstaller$Session;->addProgress(F)V
 Landroid/content/pm/PackageInstaller$SessionInfo;-><init>()V
 Landroid/content/pm/PackageInstaller$SessionInfo;->active:Z
@@ -1525,6 +1622,7 @@
 Landroid/content/pm/PackageParser$Package;->mPreferredOrder:I
 Landroid/content/pm/PackageParser$Package;->mSharedUserId:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->mSharedUserLabel:I
+Landroid/content/pm/PackageParser$Package;->mUpgradeKeySets:Landroid/util/ArraySet;
 Landroid/content/pm/PackageParser$Package;->mVersionCode:I
 Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
@@ -1572,8 +1670,11 @@
 Landroid/content/pm/PackageParser;->parsePackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
 Landroid/content/pm/PackageParser;->setCompatibilityModeEnabled(Z)V
 Landroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V
+Landroid/content/pm/PackageStats;->userHandle:I
 Landroid/content/pm/PackageUserState;-><init>()V
 Landroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V
+Landroid/content/pm/ParceledListSlice;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;
+Landroid/content/pm/ParceledListSlice;->writeParcelableCreator(Landroid/os/Parcelable;Landroid/os/Parcel;)V
 Landroid/content/pm/PermissionInfo;->protectionToString(I)Ljava/lang/String;
 Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->componentName:Landroid/content/ComponentName;
 Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->type:Ljava/lang/Object;
@@ -1583,6 +1684,7 @@
 Landroid/content/pm/ResolveInfo;->handleAllWebDataURI:Z
 Landroid/content/pm/ResolveInfo;->system:Z
 Landroid/content/pm/ResolveInfo;->targetUserId:I
+Landroid/content/pm/ShortcutInfo;->getIcon()Landroid/graphics/drawable/Icon;
 Landroid/content/pm/ShortcutManager;->mService:Landroid/content/pm/IShortcutService;
 Landroid/content/pm/Signature;->getPublicKey()Ljava/security/PublicKey;
 Landroid/content/pm/UserInfo;-><init>(ILjava/lang/String;I)V
@@ -1714,6 +1816,7 @@
 Landroid/content/res/ResourcesImpl;->sPreloadedDrawables:[Landroid/util/LongSparseArray;
 Landroid/content/res/ResourcesImpl;->TRACE_FOR_MISS_PRELOAD:Z
 Landroid/content/res/ResourcesImpl;->TRACE_FOR_PRELOAD:Z
+Landroid/content/res/ResourcesKey;-><init>(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V
 Landroid/content/res/ResourcesKey;->mResDir:Ljava/lang/String;
 Landroid/content/res/ResourcesKey;->mSplitResDirs:[Ljava/lang/String;
 Landroid/content/res/StringBlock;-><init>(JZ)V
@@ -1740,13 +1843,18 @@
 Landroid/content/RestrictionsManager;->mService:Landroid/content/IRestrictionsManager;
 Landroid/content/SearchRecentSuggestionsProvider;->mSuggestionProjection:[Ljava/lang/String;
 Landroid/content/SyncAdaptersCache;-><init>(Landroid/content/Context;)V
+Landroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/SyncAdapterType;->allowParallelSyncs:Z
 Landroid/content/SyncAdapterType;->isAlwaysSyncable:Z
 Landroid/content/SyncAdapterType;->settingsActivity:Ljava/lang/String;
+Landroid/content/SyncAdapterType;->supportsUploading:Z
+Landroid/content/SyncAdapterType;->userVisible:Z
 Landroid/content/SyncContext;-><init>(Landroid/content/ISyncContext;)V
 Landroid/content/SyncContext;->setStatusText(Ljava/lang/String;)V
 Landroid/content/SyncInfo;-><init>(ILandroid/accounts/Account;Ljava/lang/String;J)V
+Landroid/content/SyncInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/SyncInfo;->authorityId:I
+Landroid/content/SyncInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/SyncRequest;->mAccountToSync:Landroid/accounts/Account;
 Landroid/content/SyncRequest;->mAuthority:Ljava/lang/String;
 Landroid/content/SyncRequest;->mExtras:Landroid/os/Bundle;
@@ -1828,9 +1936,6 @@
 Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
 Landroid/database/sqlite/SQLiteDatabase;->reopenReadWrite()V
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->maxSqlCacheSize:I
-Landroid/database/sqlite/SQLiteDebug$PagerStats;->largestMemAlloc:I
-Landroid/database/sqlite/SQLiteDebug$PagerStats;->memoryUsed:I
-Landroid/database/sqlite/SQLiteDebug$PagerStats;->pageCacheOverflow:I
 Landroid/database/sqlite/SQLiteOpenHelper;->mName:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteProgram;->mBindArgs:[Ljava/lang/Object;
 Landroid/database/sqlite/SQLiteProgram;->mSql:Ljava/lang/String;
@@ -1914,12 +2019,10 @@
 Landroid/graphics/BaseCanvas;->mNativeCanvasWrapper:J
 Landroid/graphics/Bitmap$Config;->nativeInt:I
 Landroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config;
-Landroid/graphics/Bitmap;-><init>(JIIIZZ[BLandroid/graphics/NinePatch$InsetStruct;)V
 Landroid/graphics/Bitmap;->createAshmemBitmap()Landroid/graphics/Bitmap;
 Landroid/graphics/Bitmap;->createAshmemBitmap(Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
 Landroid/graphics/Bitmap;->getDefaultDensity()I
 Landroid/graphics/Bitmap;->mHeight:I
-Landroid/graphics/Bitmap;->mIsMutable:Z
 Landroid/graphics/Bitmap;->mNativePtr:J
 Landroid/graphics/Bitmap;->mNinePatchChunk:[B
 Landroid/graphics/Bitmap;->mNinePatchInsets:Landroid/graphics/NinePatch$InsetStruct;
@@ -1947,6 +2050,8 @@
 Landroid/graphics/Canvas;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/graphics/Canvas;->release()V
 Landroid/graphics/Canvas;->setScreenDensity(I)V
+Landroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty;
+Landroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty;
 Landroid/graphics/ColorMatrixColorFilter;->mMatrix:Landroid/graphics/ColorMatrix;
 Landroid/graphics/ColorMatrixColorFilter;->setColorMatrix(Landroid/graphics/ColorMatrix;)V
 Landroid/graphics/drawable/AnimatedRotateDrawable;->setFramesCount(I)V
@@ -1956,9 +2061,9 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable;->mState:Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
 Landroid/graphics/drawable/AnimatedVectorDrawable;->forceAnimationOnUI()V
-Landroid/graphics/drawable/AnimatedVectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatedVectorState:Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatorSet:Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;
 Landroid/graphics/drawable/AnimationDrawable;->mCurFrame:I
-Landroid/graphics/drawable/BitmapDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/BitmapDrawable;->getTint()Landroid/content/res/ColorStateList;
 Landroid/graphics/drawable/BitmapDrawable;->getTintMode()Landroid/graphics/PorterDuff$Mode;
 Landroid/graphics/drawable/BitmapDrawable;->mBitmapState:Landroid/graphics/drawable/BitmapDrawable$BitmapState;
@@ -1967,7 +2072,6 @@
 Landroid/graphics/drawable/ClipDrawable;->mState:Landroid/graphics/drawable/ClipDrawable$ClipState;
 Landroid/graphics/drawable/ColorDrawable$ColorState;->mUseColor:I
 Landroid/graphics/drawable/ColorDrawable;->mPaint:Landroid/graphics/Paint;
-Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/Drawable;->inflateWithAttributes(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/TypedArray;I)V
 Landroid/graphics/drawable/Drawable;->mCallback:Ljava/lang/ref/WeakReference;
 Landroid/graphics/drawable/Drawable;->mSrcDensityOverride:I
@@ -1976,11 +2080,9 @@
 Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantPadding:Landroid/graphics/Rect;
 Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDrawables:[Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mHasColorFilter:Z
-Landroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/DrawableContainer;->mDrawableContainerState:Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
 Landroid/graphics/drawable/DrawableContainer;->mLastDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/DrawableInflater;->mClassLoader:Ljava/lang/ClassLoader;
-Landroid/graphics/drawable/DrawableWrapper;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/DrawableWrapper;->mState:Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mAngle:I
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradient:I
@@ -2001,7 +2103,6 @@
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mThickness:I
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mThicknessRatio:F
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mWidth:I
-Landroid/graphics/drawable/GradientDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/GradientDrawable;->mFillPaint:Landroid/graphics/Paint;
 Landroid/graphics/drawable/GradientDrawable;->mGradientState:Landroid/graphics/drawable/GradientDrawable$GradientState;
 Landroid/graphics/drawable/GradientDrawable;->mPadding:Landroid/graphics/Rect;
@@ -2015,7 +2116,6 @@
 Landroid/graphics/drawable/Icon;->hasTint()Z
 Landroid/graphics/drawable/Icon;->mString1:Ljava/lang/String;
 Landroid/graphics/drawable/Icon;->mType:I
-Landroid/graphics/drawable/InsetDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/InsetDrawable;->mState:Landroid/graphics/drawable/InsetDrawable$InsetState;
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/LayerDrawable$LayerState;->mChildren:[Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
@@ -2023,20 +2123,16 @@
 Landroid/graphics/drawable/LayerDrawable;->ensurePadding()V
 Landroid/graphics/drawable/LayerDrawable;->mLayerState:Landroid/graphics/drawable/LayerDrawable$LayerState;
 Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mNinePatch:Landroid/graphics/NinePatch;
-Landroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/NinePatchDrawable;->mNinePatchState:Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;
 Landroid/graphics/drawable/RippleDrawable$RippleState;->mColor:Landroid/content/res/ColorStateList;
 Landroid/graphics/drawable/RippleDrawable;->getRipplePaint()Landroid/graphics/Paint;
 Landroid/graphics/drawable/RippleDrawable;->mDensity:I
 Landroid/graphics/drawable/RippleDrawable;->mState:Landroid/graphics/drawable/RippleDrawable$RippleState;
 Landroid/graphics/drawable/RippleDrawable;->setForceSoftware(Z)V
+Landroid/graphics/drawable/RotateDrawable;->mState:Landroid/graphics/drawable/RotateDrawable$RotateState;
 Landroid/graphics/drawable/ScaleDrawable;->mState:Landroid/graphics/drawable/ScaleDrawable$ScaleState;
 Landroid/graphics/drawable/StateListDrawable$StateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;)I
 Landroid/graphics/drawable/StateListDrawable;->extractStateSet(Landroid/util/AttributeSet;)[I
-Landroid/graphics/drawable/StateListDrawable;->getStateCount()I
-Landroid/graphics/drawable/StateListDrawable;->getStateDrawable(I)Landroid/graphics/drawable/Drawable;
-Landroid/graphics/drawable/StateListDrawable;->getStateDrawableIndex([I)I
-Landroid/graphics/drawable/StateListDrawable;->getStateSet(I)[I
 Landroid/graphics/drawable/StateListDrawable;->mStateListState:Landroid/graphics/drawable/StateListDrawable$StateListState;
 Landroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/TransitionDrawable;->mAlpha:I
@@ -2047,7 +2143,6 @@
 Landroid/graphics/drawable/VectorDrawable$VGroup;->setRotation(F)V
 Landroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateX(F)V
 Landroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateY(F)V
-Landroid/graphics/drawable/VectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/VectorDrawable;->getTargetByName(Ljava/lang/String;)Ljava/lang/Object;
 Landroid/graphics/drawable/VectorDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
 Landroid/graphics/drawable/VectorDrawable;->setAllowCaching(Z)V
@@ -2062,13 +2157,9 @@
 Landroid/graphics/GraphicBuffer;->createFromExisting(IIIIJ)Landroid/graphics/GraphicBuffer;
 Landroid/graphics/GraphicBuffer;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/graphics/GraphicBuffer;->mNativeObject:J
-Landroid/graphics/Insets;->bottom:I
-Landroid/graphics/Insets;->left:I
-Landroid/graphics/Insets;->NONE:Landroid/graphics/Insets;
-Landroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets;
-Landroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets;
-Landroid/graphics/Insets;->right:I
-Landroid/graphics/Insets;->top:I
+Landroid/graphics/ImageFormat;->Y8:I
+Landroid/graphics/LightingColorFilter;->setColorAdd(I)V
+Landroid/graphics/LightingColorFilter;->setColorMultiply(I)V
 Landroid/graphics/LinearGradient;->mColor0:I
 Landroid/graphics/LinearGradient;->mColor1:I
 Landroid/graphics/LinearGradient;->mColors:[I
@@ -2085,9 +2176,12 @@
 Landroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
 Landroid/graphics/NinePatch;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/graphics/NinePatch;->mNativeChunk:J
+Landroid/graphics/Outline;->mRect:Landroid/graphics/Rect;
 Landroid/graphics/Paint;->getNativeInstance()J
 Landroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F
 Landroid/graphics/Paint;->getTextRunCursor([CIIIII)I
+Landroid/graphics/Paint;->mNativePaint:J
+Landroid/graphics/Paint;->mTypeface:Landroid/graphics/Typeface;
 Landroid/graphics/Paint;->setCompatibilityScaling(F)V
 Landroid/graphics/Paint;->setHyphenEdit(I)V
 Landroid/graphics/Path;->isSimplePath:Z
@@ -2098,8 +2192,6 @@
 Landroid/graphics/PorterDuff$Mode;->nativeInt:I
 Landroid/graphics/PorterDuffColorFilter;->getColor()I
 Landroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode;
-Landroid/graphics/PorterDuffColorFilter;->setColor(I)V
-Landroid/graphics/PorterDuffColorFilter;->setMode(Landroid/graphics/PorterDuff$Mode;)V
 Landroid/graphics/RadialGradient;->mCenterColor:I
 Landroid/graphics/RadialGradient;->mColors:[I
 Landroid/graphics/RadialGradient;->mEdgeColor:I
@@ -2117,6 +2209,7 @@
 Landroid/graphics/Region;->scale(F)V
 Landroid/graphics/Shader$TileMode;->nativeInt:I
 Landroid/graphics/SurfaceTexture;->mFrameAvailableListener:J
+Landroid/graphics/SurfaceTexture;->mOnFrameAvailableHandler:Landroid/os/Handler;
 Landroid/graphics/SurfaceTexture;->mProducer:J
 Landroid/graphics/SurfaceTexture;->mSurfaceTexture:J
 Landroid/graphics/SurfaceTexture;->nativeDetachFromGLContext()I
@@ -2130,9 +2223,11 @@
 Landroid/graphics/TableMaskFilter;->CreateClipTable(II)Landroid/graphics/TableMaskFilter;
 Landroid/graphics/TemporaryBuffer;->obtain(I)[C
 Landroid/graphics/TemporaryBuffer;->recycle([C)V
+Landroid/graphics/Typeface;-><init>(J)V
 Landroid/graphics/Typeface;->createFromFamilies([Landroid/graphics/FontFamily;)Landroid/graphics/Typeface;
 Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;II)Landroid/graphics/Typeface;
 Landroid/graphics/Typeface;->mStyle:I
+Landroid/graphics/Typeface;->nativeCreateFromArray([JII)J
 Landroid/graphics/Typeface;->nativeCreateWeightAlias(JI)J
 Landroid/graphics/Typeface;->native_instance:J
 Landroid/graphics/Typeface;->sDefaults:[Landroid/graphics/Typeface;
@@ -2171,6 +2266,7 @@
 Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Landroid/hardware/camera2/utils/TypeReference;)V
 Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;J)V
 Landroid/hardware/camera2/CaptureRequest$Key;->getNativeKey()Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+Landroid/hardware/camera2/CaptureRequest;->getTargets()Ljava/util/Collection;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_COORDINATES:Landroid/hardware/camera2/CaptureRequest$Key;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_PROCESSING_METHOD:Landroid/hardware/camera2/CaptureRequest$Key;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_TIMESTAMP:Landroid/hardware/camera2/CaptureRequest$Key;
@@ -2203,6 +2299,7 @@
 Landroid/hardware/camera2/CaptureResult;->TONEMAP_CURVE_RED:Landroid/hardware/camera2/CaptureResult$Key;
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getTag()I
 Landroid/hardware/camera2/impl/CameraMetadataNative;->mMetadataPtr:J
+Landroid/hardware/camera2/utils/SurfaceUtils;->getSurfaceSize(Landroid/view/Surface;)Landroid/util/Size;
 Landroid/hardware/camera2/utils/TypeReference;-><init>()V
 Landroid/hardware/camera2/utils/TypeReference;->createSpecializedTypeReference(Ljava/lang/reflect/Type;)Landroid/hardware/camera2/utils/TypeReference;
 Landroid/hardware/Camera;->addCallbackBuffer([BI)V
@@ -2216,6 +2313,7 @@
 Landroid/hardware/Camera;->openLegacy(II)Landroid/hardware/Camera;
 Landroid/hardware/Camera;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
 Landroid/hardware/Camera;->previewEnabled()Z
+Landroid/hardware/Camera;->setPreviewSurface(Landroid/view/Surface;)V
 Landroid/hardware/display/DisplayManager;->ACTION_WIFI_DISPLAY_STATUS_CHANGED:Ljava/lang/String;
 Landroid/hardware/display/DisplayManager;->connectWifiDisplay(Ljava/lang/String;)V
 Landroid/hardware/display/DisplayManager;->disconnectWifiDisplay()V
@@ -2256,6 +2354,7 @@
 Landroid/hardware/display/WifiDisplayStatus;->SCAN_STATE_NOT_SCANNING:I
 Landroid/hardware/fingerprint/Fingerprint;->getFingerId()I
 Landroid/hardware/fingerprint/Fingerprint;->getName()Ljava/lang/CharSequence;
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->getFingerprint()Landroid/hardware/fingerprint/Fingerprint;
 Landroid/hardware/fingerprint/FingerprintManager;->getAuthenticatorId()J
 Landroid/hardware/fingerprint/FingerprintManager;->getEnrolledFingerprints()Ljava/util/List;
 Landroid/hardware/fingerprint/FingerprintManager;->getEnrolledFingerprints(I)Ljava/util/List;
@@ -2268,6 +2367,7 @@
 Landroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_injectInputEvent:I
 Landroid/hardware/input/IInputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
+Landroid/hardware/input/InputManager;->createInputForwarder(I)Landroid/app/IInputForwarder;
 Landroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
 Landroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
 Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I
@@ -2383,6 +2483,7 @@
 Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Ljava/lang/String;)V
 Landroid/icu/text/Transliterator;->transliterate(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/text/UFormat;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
+Landroid/icu/text/UForwardCharacterIterator;->DONE:I
 Landroid/icu/util/Calendar;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
 Landroid/icu/util/PersianCalendar;-><init>(Ljava/util/Locale;)V
 Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;
@@ -2404,6 +2505,8 @@
 Landroid/inputmethodservice/Keyboard;->mModifierKeys:Ljava/util/List;
 Landroid/inputmethodservice/Keyboard;->mTotalHeight:I
 Landroid/inputmethodservice/Keyboard;->mTotalWidth:I
+Landroid/inputmethodservice/KeyboardView;->mKeyBackground:Landroid/graphics/drawable/Drawable;
+Landroid/inputmethodservice/KeyboardView;->mLabelTextSize:I
 Landroid/inputmethodservice/KeyboardView;->mPreviewText:Landroid/widget/TextView;
 Landroid/inputmethodservice/KeyboardView;->openPopupIfRequired(Landroid/view/MotionEvent;)Z
 Landroid/inputmethodservice/KeyboardView;->repeatKey()Z
@@ -2441,9 +2544,20 @@
 Landroid/location/Location;->mProvider:Ljava/lang/String;
 Landroid/location/LocationManager;->mService:Landroid/location/ILocationManager;
 Landroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->sendNiResponse(II)Z
+Landroid/location/LocationRequest;->checkDisplacement(F)V
+Landroid/location/LocationRequest;->checkInterval(J)V
+Landroid/location/LocationRequest;->checkProvider(Ljava/lang/String;)V
+Landroid/location/LocationRequest;->checkQuality(I)V
+Landroid/location/LocationRequest;->mExpireAt:J
+Landroid/location/LocationRequest;->mExplicitFastestInterval:Z
+Landroid/location/LocationRequest;->mFastestInterval:J
 Landroid/location/LocationRequest;->mHideFromAppOps:Z
 Landroid/location/LocationRequest;->mInterval:J
+Landroid/location/LocationRequest;->mNumUpdates:I
 Landroid/location/LocationRequest;->mProvider:Ljava/lang/String;
+Landroid/location/LocationRequest;->mQuality:I
+Landroid/location/LocationRequest;->mSmallestDisplacement:F
 Landroid/location/LocationRequest;->mWorkSource:Landroid/os/WorkSource;
 Landroid/media/AmrInputStream;-><init>(Ljava/io/InputStream;)V
 Landroid/media/AsyncPlayer;->setUsesWakeLock(Landroid/content/Context;)V
@@ -2635,6 +2749,7 @@
 Landroid/media/AudioTrack;->native_release()V
 Landroid/media/AudioTrack;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
 Landroid/media/CamcorderProfile;->native_get_camcorder_profile(II)Landroid/media/CamcorderProfile;
+Landroid/media/CamcorderProfile;->native_init()V
 Landroid/media/DecoderCapabilities$AudioDecoder;->AUDIO_DECODER_WMA:Landroid/media/DecoderCapabilities$AudioDecoder;
 Landroid/media/DecoderCapabilities$VideoDecoder;->VIDEO_DECODER_WMV:Landroid/media/DecoderCapabilities$VideoDecoder;
 Landroid/media/DecoderCapabilities;->getAudioDecoders()Ljava/util/List;
@@ -2645,8 +2760,13 @@
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinFrameHeight:I
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinFrameWidth:I
 Landroid/media/EncoderCapabilities;->getVideoEncoders()Ljava/util/List;
+Landroid/media/ExifInterface;->convertRationalLatLonToFloat(Ljava/lang/String;Ljava/lang/String;)F
 Landroid/media/ExifInterface;->getDateTime()J
+Landroid/media/ExifInterface;->getGpsDateTime()J
 Landroid/media/ExifInterface;->mAttributes:[Ljava/util/HashMap;
+Landroid/media/ExifInterface;->mFilename:Ljava/lang/String;
+Landroid/media/ExifInterface;->mHasThumbnail:Z
+Landroid/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat;
 Landroid/media/IAudioFocusDispatcher;->dispatchAudioFocusChange(ILjava/lang/String;)V
 Landroid/media/IAudioRoutesObserver$Stub;-><init>()V
 Landroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -2670,8 +2790,10 @@
 Landroid/media/JetPlayer;->postEventFromNative(Ljava/lang/Object;III)V
 Landroid/media/MediaCodec$CodecException;-><init>(IILjava/lang/String;)V
 Landroid/media/MediaCodec;->getBuffers(Z)[Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec;->mNativeContext:J
 Landroid/media/MediaCodec;->releaseOutputBuffer(IZZJ)V
 Landroid/media/MediaCodec;->setParameters([Ljava/lang/String;[Ljava/lang/Object;)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->create(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$VideoCapabilities;
 Landroid/media/MediaFile$MediaFileType;->fileType:I
 Landroid/media/MediaFile$MediaFileType;->mimeType:Ljava/lang/String;
 Landroid/media/MediaFile;-><init>()V
@@ -2708,7 +2830,11 @@
 Landroid/media/MediaHTTPConnection;->readAt(JI)I
 Landroid/media/MediaHTTPService;->createHttpServiceBinderIfNecessary(Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/media/MediaInserter;->flushAll()V
+Landroid/media/MediaMetadata;->getKeyFromMetadataEditorKey(I)Ljava/lang/String;
 Landroid/media/MediaMetadataRetriever;->getEmbeddedPicture(I)[B
+Landroid/media/MediaMetadataRetriever;->native_finalize()V
+Landroid/media/MediaMetadataRetriever;->native_init()V
+Landroid/media/MediaMetadataRetriever;->native_setup()V
 Landroid/media/MediaMuxer;->mCloseGuard:Ldalvik/system/CloseGuard;
 Landroid/media/MediaMuxer;->mNativeObject:J
 Landroid/media/MediaMuxer;->mState:I
@@ -2735,16 +2861,28 @@
 Landroid/media/MediaPlayer;->setParameter(ILandroid/os/Parcel;)Z
 Landroid/media/MediaPlayer;->setRetransmitEndpoint(Ljava/net/InetSocketAddress;)V
 Landroid/media/MediaPlayer;->setSubtitleAnchor(Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
+Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
+Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
+Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
+Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
+Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
+Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
+Landroid/media/MediaRecorder;->native_finalize()V
+Landroid/media/MediaRecorder;->native_init()V
+Landroid/media/MediaRecorder;->native_reset()V
 Landroid/media/MediaRecorder;->native_setup(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
+Landroid/media/MediaRecorder;->_prepare()V
 Landroid/media/MediaRouter$RouteInfo;->getDeviceAddress()Ljava/lang/String;
 Landroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
 Landroid/media/MediaRouter$RouteInfo;->getStatusCode()I
+Landroid/media/MediaRouter$RouteInfo;->isDefault()Z
 Landroid/media/MediaRouter$RouteInfo;->isSelected()Z
 Landroid/media/MediaRouter$RouteInfo;->matchesTypes(I)Z
 Landroid/media/MediaRouter$RouteInfo;->mNameResId:I
 Landroid/media/MediaRouter$RouteInfo;->select()V
 Landroid/media/MediaRouter$RouteInfo;->STATUS_CONNECTING:I
+Landroid/media/MediaRouter;->getSelectedRoute()Landroid/media/MediaRouter$RouteInfo;
 Landroid/media/MediaRouter;->selectRouteInt(ILandroid/media/MediaRouter$RouteInfo;Z)V
 Landroid/media/MediaScanner$FileEntry;-><init>(JLjava/lang/String;JI)V
 Landroid/media/MediaScanner$FileEntry;->mLastModifiedChanged:Z
@@ -2837,7 +2975,6 @@
 Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->getData()[B
 Landroid/media/soundtrigger/SoundTriggerManager;->isRecognitionActive(Ljava/util/UUID;)Z
 Landroid/media/soundtrigger/SoundTriggerManager;->loadSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)I
-Landroid/media/soundtrigger/SoundTriggerManager;->startRecognition(Ljava/util/UUID;Landroid/app/PendingIntent;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
 Landroid/media/soundtrigger/SoundTriggerManager;->stopRecognition(Ljava/util/UUID;)I
 Landroid/media/soundtrigger/SoundTriggerManager;->unloadSoundModel(Ljava/util/UUID;)I
 Landroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
@@ -2851,11 +2988,91 @@
 Landroid/media/SubtitleTrack$RenderingWidget;->onDetachedFromWindow()V
 Landroid/media/SubtitleTrack$RenderingWidget;->setOnChangedListener(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
 Landroid/media/SubtitleTrack$RenderingWidget;->setSize(II)V
+Landroid/media/ThumbnailUtils;->closeSilently(Landroid/os/ParcelFileDescriptor;)V
+Landroid/media/ThumbnailUtils;->computeInitialSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
+Landroid/media/ThumbnailUtils;->computeSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
 Landroid/media/ThumbnailUtils;->createImageThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/media/ThumbnailUtils;->createThumbnailFromEXIF(Ljava/lang/String;IILandroid/media/ThumbnailUtils$SizedThumbnailBitmap;)V
+Landroid/media/ThumbnailUtils;->makeInputStream(Landroid/net/Uri;Landroid/content/ContentResolver;)Landroid/os/ParcelFileDescriptor;
 Landroid/media/ThumbnailUtils;->TARGET_SIZE_MICRO_THUMBNAIL:I
+Landroid/media/ThumbnailUtils;->transform(Landroid/graphics/Matrix;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
 Landroid/media/TimedText;->getObject(I)Ljava/lang/Object;
 Landroid/media/ToneGenerator;->mNativeContext:J
 Landroid/media/TtmlRenderer;-><init>(Landroid/content/Context;)V
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_16_9:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_1_1:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_2_3:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_3_2:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_4_3:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_AVAILABLE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_FREE_WITH_SUBSCRIPTION:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_PAID_CONTENT:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_AUTHOR:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_AVAILABILITY:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_BROWSABLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_CONTENT_ID:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_DURATION_MILLIS:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTENT_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERACTION_COUNT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERACTION_TYPE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERNAL_PROVIDER_ID:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_ITEM_COUNT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LAST_PLAYBACK_POSITION_MILLIS:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LIVE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LOGO_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_OFFER_PRICE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_POSTER_ART_ASPECT_RATIO:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_PREVIEW_VIDEO_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_RELEASE_DATE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_STARTING_PRICE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_THUMBNAIL_ASPECT_RATIO:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_TRANSIENT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_TYPE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_FANS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_FOLLOWERS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_LIKES:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_LISTENS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_THUMBS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_VIEWERS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_VIEWS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_ALBUM:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_ARTIST:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_CHANNEL:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_CLIP:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_EVENT:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_MOVIE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_PLAYLIST:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_STATION:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TRACK:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_EPISODE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_SEASON:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_SERIES:I
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_AUDIO_LANGUAGE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_CANONICAL_GENRE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_CONTENT_RATING:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_EPISODE_DISPLAY_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_EPISODE_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_DATA:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG1:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG2:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG3:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG4:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_LONG_DESCRIPTION:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_POSTER_ART_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_REVIEW_RATING:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_REVIEW_RATING_STYLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEARCHABLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEASON_DISPLAY_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEASON_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SHORT_DESCRIPTION:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_THUMBNAIL_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VERSION_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VIDEO_HEIGHT:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VIDEO_WIDTH:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_PERCENTAGE:I
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_STARS:I
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_THUMBS_UP_DOWN:I
 Landroid/media/tv/TvInputInfo;->getComponent()Landroid/content/ComponentName;
 Landroid/media/tv/TvInputService$Session;->mOverlayFrame:Landroid/graphics/Rect;
 Landroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[F)V
@@ -2920,11 +3137,21 @@
 Landroid/net/ConnectivityManager;->TYPE_PROXY:I
 Landroid/net/ConnectivityManager;->TYPE_WIFI_P2P:I
 Landroid/net/ConnectivityManager;->unregisterNetworkFactory(Landroid/os/Messenger;)V
+Landroid/net/EthernetManager$Listener;->onAvailabilityChanged(Ljava/lang/String;Z)V
+Landroid/net/EthernetManager;->addListener(Landroid/net/EthernetManager$Listener;)V
+Landroid/net/EthernetManager;->getAvailableInterfaces()[Ljava/lang/String;
+Landroid/net/EthernetManager;->getConfiguration(Ljava/lang/String;)Landroid/net/IpConfiguration;
+Landroid/net/EthernetManager;->isAvailable()Z
+Landroid/net/EthernetManager;->isAvailable(Ljava/lang/String;)Z
+Landroid/net/EthernetManager;->removeListener(Landroid/net/EthernetManager$Listener;)V
+Landroid/net/EthernetManager;->setConfiguration(Ljava/lang/String;Landroid/net/IpConfiguration;)V
 Landroid/net/http/SslCertificate;->getDigest(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Ljava/lang/String;
 Landroid/net/http/SslCertificate;->getSerialNumber(Ljava/security/cert/X509Certificate;)Ljava/lang/String;
 Landroid/net/http/SslCertificate;->inflateCertificateView(Landroid/content/Context;)Landroid/view/View;
 Landroid/net/http/SslCertificate;->mX509Certificate:Ljava/security/cert/X509Certificate;
 Landroid/net/http/SslError;->mCertificate:Landroid/net/http/SslCertificate;
+Landroid/net/http/SslError;->mErrors:I
+Landroid/net/http/SslError;->mUrl:Ljava/lang/String;
 Landroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveLinkProperties()Landroid/net/LinkProperties;
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
@@ -2940,11 +3167,13 @@
 Landroid/net/IConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
 Landroid/net/IConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
 Landroid/net/IConnectivityManager;->getLastTetherError(Ljava/lang/String;)I
+Landroid/net/IConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
 Landroid/net/IConnectivityManager;->getTetherableIfaces()[Ljava/lang/String;
 Landroid/net/IConnectivityManager;->getTetherableUsbRegexs()[Ljava/lang/String;
 Landroid/net/IConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
 Landroid/net/IConnectivityManager;->getTetheredIfaces()[Ljava/lang/String;
 Landroid/net/IConnectivityManager;->getTetheringErroredIfaces()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->reportInetCondition(II)V
 Landroid/net/IConnectivityManager;->setAirplaneMode(Z)V
 Landroid/net/IConnectivityManager;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;)V
 Landroid/net/INetworkManagementEventObserver$Stub;-><init>()V
@@ -2961,6 +3190,8 @@
 Landroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
 Landroid/net/INetworkStatsService;->forceUpdate()V
 Landroid/net/INetworkStatsService;->getMobileIfaces()[Ljava/lang/String;
+Landroid/net/INetworkStatsService;->openSession()Landroid/net/INetworkStatsSession;
+Landroid/net/INetworkStatsService;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
 Landroid/net/INetworkStatsSession;->close()V
 Landroid/net/INetworkStatsSession;->getSummaryForAllUid(Landroid/net/NetworkTemplate;JJZ)Landroid/net/NetworkStats;
 Landroid/net/INetworkStatsSession;->getSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
@@ -2973,12 +3204,16 @@
 Landroid/net/IpConfiguration$ProxySettings;->NONE:Landroid/net/IpConfiguration$ProxySettings;
 Landroid/net/IpConfiguration;-><init>(Landroid/net/IpConfiguration$IpAssignment;Landroid/net/IpConfiguration$ProxySettings;Landroid/net/StaticIpConfiguration;Landroid/net/ProxyInfo;)V
 Landroid/net/IpConfiguration;->httpProxy:Landroid/net/ProxyInfo;
+Landroid/net/LinkAddress;->address:Ljava/net/InetAddress;
 Landroid/net/LinkAddress;->getNetworkPrefixLength()I
+Landroid/net/LinkAddress;->prefixLength:I
 Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
 Landroid/net/LinkProperties;->getAddresses()Ljava/util/List;
 Landroid/net/LinkProperties;->getAllAddresses()Ljava/util/List;
 Landroid/net/LinkProperties;->getAllLinkAddresses()Ljava/util/List;
+Landroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z
 Landroid/net/LinkProperties;->isIdenticalInterfaceName(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->mIfaceName:Ljava/lang/String;
 Landroid/net/LinkProperties;->setHttpProxy(Landroid/net/ProxyInfo;)V
 Landroid/net/LinkQualityInfo;->setDataSampleDuration(I)V
 Landroid/net/LinkQualityInfo;->setLastDataSampleTime(J)V
@@ -3007,8 +3242,6 @@
 Landroid/net/NetworkCapabilities;-><init>()V
 Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
 Landroid/net/NetworkCapabilities;->addTransportType(I)Landroid/net/NetworkCapabilities;
-Landroid/net/NetworkCapabilities;->getCapabilities()[I
-Landroid/net/NetworkCapabilities;->getTransportTypes()[I
 Landroid/net/NetworkCapabilities;->mNetworkCapabilities:J
 Landroid/net/NetworkCapabilities;->mSignalStrength:I
 Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
@@ -3088,6 +3321,7 @@
 Landroid/net/NetworkStatsHistory;->getValues(JJJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
 Landroid/net/NetworkStatsHistory;->recordEntireHistory(Landroid/net/NetworkStatsHistory;)V
 Landroid/net/NetworkStatsHistory;->size()I
+Landroid/net/NetworkTemplate;-><init>(ILjava/lang/String;Ljava/lang/String;)V
 Landroid/net/NetworkTemplate;->buildTemplateEthernet()Landroid/net/NetworkTemplate;
 Landroid/net/NetworkTemplate;->buildTemplateMobileWildcard()Landroid/net/NetworkTemplate;
 Landroid/net/NetworkTemplate;->buildTemplateWifi()Landroid/net/NetworkTemplate;
@@ -3104,9 +3338,14 @@
 Landroid/net/nsd/INsdManager;->getMessenger()Landroid/os/Messenger;
 Landroid/net/nsd/NsdServiceInfo;->setAttribute(Ljava/lang/String;[B)V
 Landroid/net/Proxy;->getProxy(Landroid/content/Context;Ljava/lang/String;)Ljava/net/Proxy;
+Landroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
 Landroid/net/ProxyInfo;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;)V
 Landroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;Ljava/lang/String;)V
 Landroid/net/RouteInfo;-><init>(Ljava/net/InetAddress;)V
+Landroid/net/RouteInfo;->isHost()Z
+Landroid/net/RouteInfo;->mGateway:Ljava/net/InetAddress;
+Landroid/net/RouteInfo;->mIsHost:Z
 Landroid/net/SntpClient;-><init>()V
 Landroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V
 Landroid/net/SSLCertificateSocketFactory;->castToOpenSSLSocket(Ljava/net/Socket;)Lcom/android/org/conscrypt/OpenSSLSocketImpl;
@@ -3165,6 +3404,12 @@
 Landroid/net/wifi/IWifiScanner$Stub;-><init>()V
 Landroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->createRequest(Ljava/lang/String;II)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;-><init>(Ljava/util/List;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->mQueryList:Ljava/util/List;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;-><init>(ILjava/lang/String;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/p2p/WifiP2pConfig;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/p2p/WifiP2pConfig;->MIN_GROUP_OWNER_INTENT:I
 Landroid/net/wifi/p2p/WifiP2pConfig;->netId:I
@@ -3277,6 +3522,7 @@
 Landroid/net/wifi/WifiInfo;->getWifiSsid()Landroid/net/wifi/WifiSsid;
 Landroid/net/wifi/WifiInfo;->INVALID_RSSI:I
 Landroid/net/wifi/WifiInfo;->isEphemeral()Z
+Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
 Landroid/net/wifi/WifiInfo;->mIpAddress:Ljava/net/InetAddress;
 Landroid/net/wifi/WifiInfo;->mMacAddress:Ljava/lang/String;
 Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
@@ -3293,6 +3539,7 @@
 Landroid/net/wifi/WifiManager;->disable(ILandroid/net/wifi/WifiManager$ActionListener;)V
 Landroid/net/wifi/WifiManager;->enableVerboseLogging(I)V
 Landroid/net/wifi/WifiManager;->forget(ILandroid/net/wifi/WifiManager$ActionListener;)V
+Landroid/net/wifi/WifiManager;->getCountryCode()Ljava/lang/String;
 Landroid/net/wifi/WifiManager;->getCurrentNetwork()Landroid/net/Network;
 Landroid/net/wifi/WifiManager;->getMatchingWifiConfig(Landroid/net/wifi/ScanResult;)Landroid/net/wifi/WifiConfiguration;
 Landroid/net/wifi/WifiManager;->getVerboseLoggingLevel()I
@@ -3372,6 +3619,7 @@
 Landroid/os/AsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
 Landroid/os/AsyncTask;->setDefaultExecutor(Ljava/util/concurrent/Executor;)V
 Landroid/os/BaseBundle;->mMap:Landroid/util/ArrayMap;
+Landroid/os/BaseBundle;->mParcelledData:Landroid/os/Parcel;
 Landroid/os/BaseBundle;->unparcel()V
 Landroid/os/BatteryManager;->EXTRA_CHARGE_COUNTER:Ljava/lang/String;
 Landroid/os/BatteryManager;->EXTRA_INVALID_CHARGER:Ljava/lang/String;
@@ -3383,22 +3631,32 @@
 Landroid/os/BatteryStats$HistoryItem;->batteryPlugType:B
 Landroid/os/BatteryStats$HistoryItem;->batteryStatus:B
 Landroid/os/BatteryStats$HistoryItem;->batteryVoltage:C
+Landroid/os/BatteryStats$HistoryItem;->clear()V
 Landroid/os/BatteryStats$HistoryItem;->CMD_UPDATE:B
+Landroid/os/BatteryStats$HistoryItem;->next:Landroid/os/BatteryStats$HistoryItem;
+Landroid/os/BatteryStats$HistoryItem;->same(Landroid/os/BatteryStats$HistoryItem;)Z
+Landroid/os/BatteryStats$HistoryItem;->setTo(JBLandroid/os/BatteryStats$HistoryItem;)V
+Landroid/os/BatteryStats$HistoryItem;->setTo(Landroid/os/BatteryStats$HistoryItem;)V
 Landroid/os/BatteryStats$HistoryItem;->states2:I
+Landroid/os/BatteryStats$Timer;-><init>()V
 Landroid/os/BatteryStats$Timer;->getTotalTimeLocked(JI)J
 Landroid/os/BatteryStats$Uid$Pkg$Serv;->getLaunches(I)I
 Landroid/os/BatteryStats$Uid$Pkg$Serv;->getStartTime(JI)J
+Landroid/os/BatteryStats$Uid$Pkg;-><init>()V
 Landroid/os/BatteryStats$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
 Landroid/os/BatteryStats$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->overTime:J
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->type:I
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->usedTime:J
+Landroid/os/BatteryStats$Uid$Proc;-><init>()V
 Landroid/os/BatteryStats$Uid$Proc;->countExcessivePowers()I
 Landroid/os/BatteryStats$Uid$Proc;->getExcessivePower(I)Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
 Landroid/os/BatteryStats$Uid$Proc;->getForegroundTime(I)J
 Landroid/os/BatteryStats$Uid$Proc;->getStarts(I)I
 Landroid/os/BatteryStats$Uid$Proc;->getSystemTime(I)J
 Landroid/os/BatteryStats$Uid$Proc;->getUserTime(I)J
+Landroid/os/BatteryStats$Uid$Sensor;-><init>()V
 Landroid/os/BatteryStats$Uid$Sensor;->getHandle()I
 Landroid/os/BatteryStats$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
 Landroid/os/BatteryStats$Uid$Sensor;->GPS:I
@@ -3416,6 +3674,7 @@
 Landroid/os/BatteryStats$Uid;->getWifiBatchedScanTime(IJI)J
 Landroid/os/BatteryStats$Uid;->getWifiMulticastTime(JI)J
 Landroid/os/BatteryStats$Uid;->getWifiScanTime(JI)J
+Landroid/os/BatteryStats;-><init>()V
 Landroid/os/BatteryStats;->computeBatteryTimeRemaining(J)J
 Landroid/os/BatteryStats;->computeBatteryUptime(JI)J
 Landroid/os/BatteryStats;->computeChargeTimeRemaining(J)J
@@ -3441,6 +3700,11 @@
 Landroid/os/Bundle;->putIBinder(Ljava/lang/String;Landroid/os/IBinder;)V
 Landroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V
 Landroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle;
+Landroid/os/CancellationSignal;->mCancelInProgress:Z
+Landroid/os/CancellationSignal;->mIsCanceled:Z
+Landroid/os/CancellationSignal;->mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
+Landroid/os/CancellationSignal;->mRemote:Landroid/os/ICancellationSignal;
+Landroid/os/CancellationSignal;->waitForCancelFinishedLocked()V
 Landroid/os/Debug$MemoryInfo;->dalvikPrivateClean:I
 Landroid/os/Debug$MemoryInfo;->dalvikSharedClean:I
 Landroid/os/Debug$MemoryInfo;->dalvikSwappablePss:I
@@ -3492,6 +3756,7 @@
 Landroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment;->buildExternalStorageAppObbDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment;->getDataSystemDirectory()Ljava/io/File;
 Landroid/os/Environment;->getLegacyExternalStorageObbDirectory()Ljava/io/File;
 Landroid/os/Environment;->getOemDirectory()Ljava/io/File;
 Landroid/os/Environment;->getStorageDirectory()Ljava/io/File;
@@ -3518,8 +3783,8 @@
 Landroid/os/Handler;-><init>(Z)V
 Landroid/os/Handler;->getIMessenger()Landroid/os/IMessenger;
 Landroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message;
-Landroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z
 Landroid/os/Handler;->mCallback:Landroid/os/Handler$Callback;
+Landroid/os/Handler;->mLooper:Landroid/os/Looper;
 Landroid/os/Handler;->mMessenger:Landroid/os/IMessenger;
 Landroid/os/health/HealthKeys$Constants;-><init>(Ljava/lang/Class;)V
 Landroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
@@ -3544,6 +3809,7 @@
 Landroid/os/IDeviceIdleController;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V
 Landroid/os/IDeviceIdleController;->getAppIdTempWhitelist()[I
 Landroid/os/IDeviceIdleController;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/INetworkManagementService;->disableNat(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/INetworkManagementService;->enableNat(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/INetworkManagementService;->getInterfaceConfig(Ljava/lang/String;)Landroid/net/InterfaceConfiguration;
@@ -3588,6 +3854,7 @@
 Landroid/os/MemoryFile;->getFileDescriptor()Ljava/io/FileDescriptor;
 Landroid/os/MemoryFile;->getSize(Ljava/io/FileDescriptor;)I
 Landroid/os/MemoryFile;->native_get_size(Ljava/io/FileDescriptor;)I
+Landroid/os/MemoryFile;->native_pin(Ljava/io/FileDescriptor;Z)Z
 Landroid/os/Message;->callback:Ljava/lang/Runnable;
 Landroid/os/Message;->flags:I
 Landroid/os/Message;->markInUse()V
@@ -3638,8 +3905,11 @@
 Landroid/os/PerformanceCollector;->endSnapshot()Landroid/os/Bundle;
 Landroid/os/PerformanceCollector;->startTiming(Ljava/lang/String;)V
 Landroid/os/PerformanceCollector;->stopTiming(Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/os/PowerManager$WakeLock;->mFlags:I
+Landroid/os/PowerManager$WakeLock;->mTag:Ljava/lang/String;
 Landroid/os/PowerManager;->ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED:Ljava/lang/String;
 Landroid/os/PowerManager;->ACTION_POWER_SAVE_MODE_CHANGING:Ljava/lang/String;
+Landroid/os/PowerManager;->BRIGHTNESS_ON:I
 Landroid/os/PowerManager;->EXTRA_POWER_SAVE_MODE:Ljava/lang/String;
 Landroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I
 Landroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
@@ -3680,6 +3950,7 @@
 Landroid/os/Process;->readProcFile(Ljava/lang/String;[I[Ljava/lang/String;[J[F)Z
 Landroid/os/Process;->readProcLines(Ljava/lang/String;[Ljava/lang/String;[J)V
 Landroid/os/Process;->ROOT_UID:I
+Landroid/os/Process;->sendSignalQuiet(II)V
 Landroid/os/Process;->setArgV0(Ljava/lang/String;)V
 Landroid/os/Process;->setProcessGroup(II)V
 Landroid/os/Process;->SHELL_UID:I
@@ -3708,12 +3979,12 @@
 Landroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
 Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/os/ServiceManager;->listServices()[Ljava/lang/String;
-Landroid/os/ServiceManager;->sCache:Ljava/util/HashMap;
 Landroid/os/ServiceManager;->sServiceManager:Landroid/os/IServiceManager;
 Landroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
 Landroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V
 Landroid/os/SharedMemory;->getFd()I
 Landroid/os/ShellCommand;->peekNextArg()Ljava/lang/String;
+Landroid/os/StatFs;->mStat:Landroid/system/StructStatVfs;
 Landroid/os/storage/DiskInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/os/storage/DiskInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/os/storage/DiskInfo;->flags:I
@@ -3757,15 +4028,21 @@
 Landroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
 Landroid/os/storage/StorageManager;->getVolumeState(Ljava/lang/String;)Ljava/lang/String;
 Landroid/os/storage/StorageManager;->isFileEncryptedNativeOnly()Z
+Landroid/os/storage/StorageManager;->isUsbMassStorageConnected()Z
 Landroid/os/storage/StorageManager;->isUsbMassStorageEnabled()Z
+Landroid/os/storage/StorageManager;->partitionPublic(Ljava/lang/String;)V
 Landroid/os/storage/StorageManager;->unmount(Ljava/lang/String;)V
 Landroid/os/storage/StorageVolume;->allowMassStorage()Z
 Landroid/os/storage/StorageVolume;->getFatVolumeId()I
 Landroid/os/storage/StorageVolume;->getMaxFileSize()J
+Landroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;
 Landroid/os/storage/StorageVolume;->getPath()Ljava/lang/String;
 Landroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File;
 Landroid/os/storage/StorageVolume;->getUserLabel()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mDescription:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mId:Ljava/lang/String;
 Landroid/os/storage/StorageVolume;->mPath:Ljava/io/File;
+Landroid/os/storage/StorageVolume;->mPrimary:Z
 Landroid/os/storage/StorageVolume;->mRemovable:Z
 Landroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/os/storage/VolumeInfo;->buildBrowseIntent()Landroid/content/Intent;
@@ -3811,14 +4088,23 @@
 Landroid/os/StrictMode;->getThreadPolicyMask()I
 Landroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V
 Landroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V
+Landroid/os/StrictMode;->onWebViewMethodCalledOnWrongThread(Ljava/lang/Throwable;)V
 Landroid/os/StrictMode;->sLastVmViolationTime:Ljava/util/HashMap;
+Landroid/os/StrictMode;->sWindowManager:Landroid/util/Singleton;
 Landroid/os/StrictMode;->violationsBeingTimed:Ljava/lang/ThreadLocal;
 Landroid/os/SystemClock;->currentThreadTimeMicro()J
 Landroid/os/SystemClock;->currentTimeMicro()J
 Landroid/os/SystemProperties;-><init>()V
 Landroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V
+Landroid/os/SystemProperties;->native_add_change_callback()V
 Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/SystemProperties;->native_get_boolean(Ljava/lang/String;Z)Z
+Landroid/os/SystemProperties;->native_get_int(Ljava/lang/String;I)I
+Landroid/os/SystemProperties;->native_get_long(Ljava/lang/String;J)J
+Landroid/os/SystemProperties;->native_set(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/SystemProperties;->PROP_NAME_MAX:I
+Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
 Landroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V
 Landroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V
@@ -3835,6 +4121,7 @@
 Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String;
 Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/os/UEventObserver;-><init>()V
+Landroid/os/UEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
 Landroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V
 Landroid/os/UEventObserver;->stopObserving()V
 Landroid/os/UpdateLock;->acquire()V
@@ -3853,12 +4140,13 @@
 Landroid/os/UserHandle;->CURRENT:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->CURRENT_OR_SELF:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->ERR_GID:I
+Landroid/os/UserHandle;->formatUid(Ljava/io/PrintWriter;I)V
 Landroid/os/UserHandle;->getAppIdFromSharedAppGid(I)I
 Landroid/os/UserHandle;->getCallingUserId()I
 Landroid/os/UserHandle;->getUid(II)I
 Landroid/os/UserHandle;->getUserId(I)I
-Landroid/os/UserHandle;->isApp(I)Z
 Landroid/os/UserHandle;->isIsolated(I)Z
+Landroid/os/UserHandle;->mHandle:I
 Landroid/os/UserHandle;->MU_ENABLED:Z
 Landroid/os/UserHandle;->OWNER:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->PER_USER_RANGE:I
@@ -3916,7 +4204,13 @@
 Landroid/os/WorkSource;->mNum:I
 Landroid/os/WorkSource;->mUids:[I
 Landroid/os/WorkSource;->setReturningDiffs(Landroid/os/WorkSource;)[Landroid/os/WorkSource;
+Landroid/os/WorkSource;->sGoneWork:Landroid/os/WorkSource;
 Landroid/os/WorkSource;->size()I
+Landroid/os/WorkSource;->sNewbWork:Landroid/os/WorkSource;
+Landroid/os/WorkSource;->sTmpWorkSource:Landroid/os/WorkSource;
+Landroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
+Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/String;)V
+Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/Throwable;)V
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService;->onRevokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/preference/DialogPreference;->mBuilder:Landroid/app/AlertDialog$Builder;
 Landroid/preference/DialogPreference;->mDialog:Landroid/app/Dialog;
@@ -4010,6 +4304,9 @@
 Landroid/provider/CalendarContract$CalendarAlerts;->rescheduleMissedAlarms(Landroid/content/ContentResolver;Landroid/content/Context;Landroid/app/AlarmManager;)V
 Landroid/provider/CalendarContract$CalendarAlerts;->scheduleAlarm(Landroid/content/Context;Landroid/app/AlarmManager;J)V
 Landroid/provider/CallLog$Calls;->addCall(Lcom/android/internal/telephony/CallerInfo;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILandroid/telecom/PhoneAccountHandle;JILjava/lang/Long;ZLandroid/os/UserHandle;Z)Landroid/net/Uri;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX:Ljava/lang/String;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_COUNTS:Ljava/lang/String;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_TITLES:Ljava/lang/String;
 Landroid/provider/ContactsContract$Contacts$AggregationSuggestions;->builder()Landroid/provider/ContactsContract$Contacts$AggregationSuggestions$Builder;
 Landroid/provider/ContactsContract$Contacts;->CORP_CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/ContactsContract$QuickContact;->composeQuickContactsIntent(Landroid/content/Context;Landroid/graphics/Rect;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/content/Intent;
@@ -4050,9 +4347,11 @@
 Landroid/provider/Downloads$Impl;->isStatusSuccess(I)Z
 Landroid/provider/Downloads$Impl;->PUBLICLY_ACCESSIBLE_DOWNLOADS_URI:Landroid/net/Uri;
 Landroid/provider/MediaStore$Files$FileColumns;->FORMAT:Ljava/lang/String;
+Landroid/provider/MediaStore$Files$FileColumns;->STORAGE_ID:Ljava/lang/String;
 Landroid/provider/MediaStore$Files;->getMtpObjectsUri(Ljava/lang/String;)Landroid/net/Uri;
 Landroid/provider/MediaStore$Files;->getMtpObjectsUri(Ljava/lang/String;J)Landroid/net/Uri;
 Landroid/provider/MediaStore$Files;->getMtpReferencesUri(Ljava/lang/String;J)Landroid/net/Uri;
+Landroid/provider/MediaStore$MediaColumns;->IS_DRM:Ljava/lang/String;
 Landroid/provider/Settings$Bookmarks;->add(Landroid/content/ContentResolver;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;CI)Landroid/net/Uri;
 Landroid/provider/Settings$Bookmarks;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Settings$ContentProviderHolder;->mContentProvider:Landroid/content/IContentProvider;
@@ -4061,6 +4360,7 @@
 Landroid/provider/Settings$Global;->HEADS_UP_OFF:I
 Landroid/provider/Settings$Global;->HEADS_UP_ON:I
 Landroid/provider/Settings$Global;->MOBILE_DATA:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_USER_PREFERRED_SUBS:[Ljava/lang/String;
 Landroid/provider/Settings$Global;->MULTI_SIM_VOICE_PROMPT:Ljava/lang/String;
 Landroid/provider/Settings$Global;->NETWORK_SCORER_APP:Ljava/lang/String;
 Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_ENABLE:Ljava/lang/String;
@@ -4068,6 +4368,7 @@
 Landroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
 Landroid/provider/Settings$Global;->REQUIRE_PASSWORD_TO_DECRYPT:Ljava/lang/String;
 Landroid/provider/Settings$Global;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings$Global;->sProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
 Landroid/provider/Settings$Global;->WEBVIEW_PROVIDER:Ljava/lang/String;
 Landroid/provider/Settings$Global;->WIFI_SAVED_STATE:Ljava/lang/String;
 Landroid/provider/Settings$Global;->WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED:Ljava/lang/String;
@@ -4080,6 +4381,7 @@
 Landroid/provider/Settings$NameValueCache;->mProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_ENABLED:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_TYPEFACE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_LARGE_POINTER_ICON:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ANR_SHOW_BACKGROUND:Ljava/lang/String;
@@ -4094,6 +4396,7 @@
 Landroid/provider/Settings$Secure;->ENABLED_PRINT_SERVICES:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
 Landroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
+Landroid/provider/Settings$Secure;->IMMERSIVE_MODE_CONFIRMATIONS:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->LOCK_SCREEN_LOCK_AFTER_TIMEOUT:Ljava/lang/String;
@@ -4126,19 +4429,24 @@
 Landroid/provider/Settings$System;->LOCKSCREEN_SOUNDS_ENABLED:Ljava/lang/String;
 Landroid/provider/Settings$System;->LOCK_SOUND:Ljava/lang/String;
 Landroid/provider/Settings$System;->MASTER_MONO:Ljava/lang/String;
+Landroid/provider/Settings$System;->NOTIFICATION_LIGHT_PULSE:Ljava/lang/String;
 Landroid/provider/Settings$System;->POINTER_LOCATION:Ljava/lang/String;
 Landroid/provider/Settings$System;->POINTER_SPEED:Ljava/lang/String;
+Landroid/provider/Settings$System;->PRIVATE_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$System;->PUBLIC_SETTINGS:Ljava/util/Set;
 Landroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
 Landroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
 Landroid/provider/Settings$System;->SCREEN_AUTO_BRIGHTNESS_ADJ:Ljava/lang/String;
 Landroid/provider/Settings$System;->SETTINGS_TO_BACKUP:[Ljava/lang/String;
 Landroid/provider/Settings$System;->SHOW_TOUCHES:Ljava/lang/String;
 Landroid/provider/Settings$System;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings$System;->sProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
 Landroid/provider/Settings$System;->TTY_MODE:Ljava/lang/String;
 Landroid/provider/Settings$System;->UNLOCK_SOUND:Ljava/lang/String;
 Landroid/provider/Settings$System;->VIBRATE_IN_SILENT:Ljava/lang/String;
 Landroid/provider/Settings;->ACTION_TRUSTED_CREDENTIALS_USER:Ljava/lang/String;
 Landroid/provider/Settings;->ACTION_USER_DICTIONARY_INSERT:Ljava/lang/String;
+Landroid/provider/Settings;->EXTRA_APP_UID:Ljava/lang/String;
 Landroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
 Landroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;ZI[Ljava/lang/String;Z)Z
 Landroid/provider/Settings;->isCallingPackageAllowedToWriteSettings(Landroid/content/Context;ILjava/lang/String;Z)Z
@@ -4157,6 +4465,8 @@
 Landroid/provider/Telephony$Sms;->isOutgoingFolder(I)Z
 Landroid/provider/Telephony$Sms;->moveMessageToFolder(Landroid/content/Context;Landroid/net/Uri;II)Z
 Landroid/provider/Telephony$Sms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/provider/Telephony$Threads;->ID_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Telephony$Threads;->THREAD_ID_CONTENT_URI:Landroid/net/Uri;
 Landroid/R$styleable;->ActionBar:[I
 Landroid/R$styleable;->ActionBar_background:I
 Landroid/R$styleable;->ActionBar_backgroundSplit:I
@@ -4246,6 +4556,7 @@
 Landroid/R$styleable;->ProgressBar_progressDrawable:I
 Landroid/R$styleable;->RingtonePreference:[I
 Landroid/R$styleable;->ScrollView:[I
+Landroid/R$styleable;->SearchView:[I
 Landroid/R$styleable;->SeekBar:[I
 Landroid/R$styleable;->SeekBar_thumb:I
 Landroid/R$styleable;->SeekBar_thumbOffset:I
@@ -4521,6 +4832,7 @@
 Landroid/security/IKeystoreService;->clear_uid(J)I
 Landroid/security/IKeystoreService;->del(Ljava/lang/String;I)I
 Landroid/security/IKeystoreService;->exist(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
 Landroid/security/IKeystoreService;->get(Ljava/lang/String;I)[B
 Landroid/security/IKeystoreService;->getState(I)I
 Landroid/security/IKeystoreService;->get_pubkey(Ljava/lang/String;)[B
@@ -4536,6 +4848,9 @@
 Landroid/security/keymaster/KeyCharacteristics;-><init>()V
 Landroid/security/keymaster/KeyCharacteristics;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeymasterArguments;-><init>()V
+Landroid/security/keymaster/KeymasterArguments;->addEnum(II)V
+Landroid/security/keymaster/KeymasterArguments;->addUnsignedInt(IJ)V
+Landroid/security/keymaster/KeymasterArguments;->addUnsignedLong(ILjava/math/BigInteger;)V
 Landroid/security/keymaster/KeymasterArguments;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/security/keymaster/KeymasterArguments;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeymasterBlob;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -4549,6 +4864,7 @@
 Landroid/security/KeyStore;->get(Ljava/lang/String;)[B
 Landroid/security/KeyStore;->getApplicationContext()Landroid/content/Context;
 Landroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
+Landroid/security/KeyStore;->getKeyStoreException(I)Landroid/security/KeyStoreException;
 Landroid/security/KeyStore;->isEmpty()Z
 Landroid/security/KeyStore;->NO_ERROR:I
 Landroid/security/KeyStore;->reset()Z
@@ -4591,13 +4907,24 @@
 Landroid/service/media/MediaBrowserService;->KEY_MEDIA_ITEM:Ljava/lang/String;
 Landroid/service/notification/INotificationListener$Stub;-><init>()V
 Landroid/service/notification/NotificationListenerService$Ranking;->getVisibilityOverride()I
+Landroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager;
 Landroid/service/notification/NotificationListenerService;->isBound()Z
 Landroid/service/notification/NotificationListenerService;->mHandler:Landroid/os/Handler;
+Landroid/service/notification/NotificationListenerService;->mNoMan:Landroid/app/INotificationManager;
+Landroid/service/notification/NotificationListenerService;->mWrapper:Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;
+Landroid/service/notification/NotificationListenerService;->TAG:Ljava/lang/String;
 Landroid/service/notification/StatusBarNotification;->getInitialPid()I
 Landroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
 Landroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context;
 Landroid/service/notification/StatusBarNotification;->getUid()I
+Landroid/service/notification/StatusBarNotification;->id:I
+Landroid/service/notification/StatusBarNotification;->initialPid:I
+Landroid/service/notification/StatusBarNotification;->notification:Landroid/app/Notification;
+Landroid/service/notification/StatusBarNotification;->pkg:Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->postTime:J
+Landroid/service/notification/StatusBarNotification;->tag:Ljava/lang/String;
 Landroid/service/notification/StatusBarNotification;->uid:I
+Landroid/service/notification/StatusBarNotification;->user:Landroid/os/UserHandle;
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->days:[I
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->endHour:I
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->endMinute:I
@@ -4702,6 +5029,9 @@
 Landroid/telecom/Connection$VideoProvider;-><init>(Landroid/os/Looper;)V
 Landroid/telecom/Phone;->setProximitySensorOff(Z)V
 Landroid/telecom/Phone;->setProximitySensorOn()V
+Landroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/PhoneAccountHandle;->mComponentName:Landroid/content/ComponentName;
+Landroid/telecom/PhoneAccountHandle;->mId:Ljava/lang/String;
 Landroid/telecom/TelecomManager;->EXTRA_IS_HANDOVER:Ljava/lang/String;
 Landroid/telecom/TelecomManager;->getCallCapablePhoneAccounts(Z)Ljava/util/List;
 Landroid/telecom/TelecomManager;->getCurrentTtyMode()I
@@ -4713,7 +5043,14 @@
 Landroid/telecom/TelecomManager;->TTY_MODE_OFF:I
 Landroid/telecom/VideoCallImpl;->destroy()V
 Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL:Ljava/lang/String;
 Landroid/telephony/CarrierMessagingServiceManager;-><init>()V
+Landroid/telephony/cdma/CdmaCellLocation;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationId:I
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLatitude:I
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLongitude:I
+Landroid/telephony/cdma/CdmaCellLocation;->mNetworkId:I
+Landroid/telephony/cdma/CdmaCellLocation;->mSystemId:I
 Landroid/telephony/CellBroadcastMessage;-><init>(Landroid/telephony/SmsCbMessage;)V
 Landroid/telephony/CellBroadcastMessage;->createFromCursor(Landroid/database/Cursor;)Landroid/telephony/CellBroadcastMessage;
 Landroid/telephony/CellBroadcastMessage;->getContentValues()Landroid/content/ContentValues;
@@ -4729,6 +5066,7 @@
 Landroid/telephony/CellBroadcastMessage;->isEtwsMessage()Z
 Landroid/telephony/CellBroadcastMessage;->isRead()Z
 Landroid/telephony/CellIdentityCdma;-><init>(IIIII)V
+Landroid/telephony/CellIdentityGsm;-><init>()V
 Landroid/telephony/CellIdentityGsm;->mArfcn:I
 Landroid/telephony/CellIdentityGsm;->mBsic:I
 Landroid/telephony/CellIdentityLte;-><init>()V
@@ -4752,6 +5090,7 @@
 Landroid/telephony/CellLocation;->fillInNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/CellLocation;->isEmpty()Z
 Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
+Landroid/telephony/CellSignalStrengthGsm;-><init>()V
 Landroid/telephony/CellSignalStrengthGsm;->mBitErrorRate:I
 Landroid/telephony/CellSignalStrengthGsm;->mSignalStrength:I
 Landroid/telephony/CellSignalStrengthGsm;->mTimingAdvance:I
@@ -4767,6 +5106,11 @@
 Landroid/telephony/DisconnectCause;->toString(I)Ljava/lang/String;
 Landroid/telephony/euicc/EuiccInfo;->osVersion:Ljava/lang/String;
 Landroid/telephony/gsm/GsmCellLocation;->setPsc(I)V
+Landroid/telephony/NeighboringCellInfo;->mCid:I
+Landroid/telephony/NeighboringCellInfo;->mLac:I
+Landroid/telephony/NeighboringCellInfo;->mNetworkType:I
+Landroid/telephony/NeighboringCellInfo;->mPsc:I
+Landroid/telephony/NeighboringCellInfo;->mRssi:I
 Landroid/telephony/PhoneNumberFormattingTextWatcher;->mFormatter:Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;
 Landroid/telephony/PhoneNumberUtils;->cdmaCheckAndProcessPlusCode(Ljava/lang/String;)Ljava/lang/String;
 Landroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;Z)Z
@@ -4779,6 +5123,7 @@
 Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
 Landroid/telephony/PhoneNumberUtils;->isNanp(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z
 Landroid/telephony/PhoneNumberUtils;->isUriNumber(Ljava/lang/String;)Z
 Landroid/telephony/PhoneNumberUtils;->isVoiceMailNumber(Landroid/content/Context;ILjava/lang/String;)Z
 Landroid/telephony/PhoneNumberUtils;->MIN_MATCH:I
@@ -4813,6 +5158,7 @@
 Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/telephony/ServiceState;->bearerBitmapHasCdma(I)Z
+Landroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
 Landroid/telephony/ServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/ServiceState;->getCdmaDefaultRoamingIndicator()I
 Landroid/telephony/ServiceState;->getCdmaEriIconIndex()I
@@ -4830,6 +5176,14 @@
 Landroid/telephony/ServiceState;->getVoiceOperatorNumeric()Ljava/lang/String;
 Landroid/telephony/ServiceState;->getVoiceRoaming()Z
 Landroid/telephony/ServiceState;->getVoiceRoamingType()I
+Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
+Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
+Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
+Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
+Landroid/telephony/ServiceState;->mCssIndicator:Z
+Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
+Landroid/telephony/ServiceState;->mNetworkId:I
+Landroid/telephony/ServiceState;->mSystemId:I
 Landroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState;
 Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IWLAN:I
 Landroid/telephony/ServiceState;->setCdmaDefaultRoamingIndicator(I)V
@@ -4842,13 +5196,16 @@
 Landroid/telephony/ServiceState;->setDataRoamingFromRegistration(Z)V
 Landroid/telephony/ServiceState;->setDataRoamingType(I)V
 Landroid/telephony/ServiceState;->setEmergencyOnly(Z)V
+Landroid/telephony/ServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/ServiceState;->setOperatorAlphaLong(Ljava/lang/String;)V
 Landroid/telephony/ServiceState;->setVoiceRegState(I)V
 Landroid/telephony/ServiceState;->setVoiceRoaming(Z)V
 Landroid/telephony/ServiceState;->setVoiceRoamingType(I)V
 Landroid/telephony/SignalStrength;-><init>()V
+Landroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/SignalStrength;-><init>(Landroid/telephony/SignalStrength;)V
 Landroid/telephony/SignalStrength;-><init>(Z)V
+Landroid/telephony/SignalStrength;->copyFrom(Landroid/telephony/SignalStrength;)V
 Landroid/telephony/SignalStrength;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telephony/SignalStrength;->fillInNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/SignalStrength;->getAsuLevel()I
@@ -4871,6 +5228,11 @@
 Landroid/telephony/SignalStrength;->getTdScdmaAsuLevel()I
 Landroid/telephony/SignalStrength;->getTdScdmaDbm()I
 Landroid/telephony/SignalStrength;->getTdScdmaLevel()I
+Landroid/telephony/SignalStrength;->mCdmaDbm:I
+Landroid/telephony/SignalStrength;->mCdmaEcio:I
+Landroid/telephony/SignalStrength;->mEvdoDbm:I
+Landroid/telephony/SignalStrength;->mEvdoEcio:I
+Landroid/telephony/SignalStrength;->mEvdoSnr:I
 Landroid/telephony/SignalStrength;->mGsmBitErrorRate:I
 Landroid/telephony/SignalStrength;->mGsmSignalStrength:I
 Landroid/telephony/SignalStrength;->mLteCqi:I
@@ -4883,6 +5245,7 @@
 Landroid/telephony/SignalStrength;->mWcdmaRscp:I
 Landroid/telephony/SignalStrength;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/SignalStrength;
 Landroid/telephony/SignalStrength;->NUM_SIGNAL_STRENGTH_BINS:I
+Landroid/telephony/SignalStrength;->setFromNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GOOD:I
 Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GREAT:I
 Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_MODERATE:I
@@ -4895,6 +5258,7 @@
 Landroid/telephony/SmsManager;->enableCellBroadcastRange(III)Z
 Landroid/telephony/SmsManager;->getAllMessagesFromIcc()Ljava/util/ArrayList;
 Landroid/telephony/SmsManager;->isSMSPromptEnabled()Z
+Landroid/telephony/SmsManager;->mSubId:I
 Landroid/telephony/SmsManager;->sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;IZI)V
 Landroid/telephony/SmsManager;->sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V
 Landroid/telephony/SmsManager;->sendTextMessageWithoutPersisting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V
@@ -4923,6 +5287,7 @@
 Landroid/telephony/SubscriptionManager;->setDataRoaming(II)I
 Landroid/telephony/SubscriptionManager;->setDefaultDataSubId(I)V
 Landroid/telephony/SubscriptionManager;->setDefaultSmsSubId(I)V
+Landroid/telephony/SubscriptionManager;->setDisplayNumber(Ljava/lang/String;I)I
 Landroid/telephony/TelephonyManager$MultiSimVariants;->TSTS:Landroid/telephony/TelephonyManager$MultiSimVariants;
 Landroid/telephony/TelephonyManager$MultiSimVariants;->UNKNOWN:Landroid/telephony/TelephonyManager$MultiSimVariants;
 Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants;
@@ -4934,8 +5299,6 @@
 Landroid/telephony/TelephonyManager;->getCdmaEriIconIndex(I)I
 Landroid/telephony/TelephonyManager;->getCdmaEriIconMode(I)I
 Landroid/telephony/TelephonyManager;->getCdmaEriText(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber(I)Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->getDataNetworkType(I)I
 Landroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
 Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion(I)Ljava/lang/String;
@@ -4966,6 +5329,8 @@
 Landroid/telephony/TelephonyManager;->getOtaSpNumberSchemaForPhone(ILjava/lang/String;)Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->getPhoneId(I)I
 Landroid/telephony/TelephonyManager;->getPhoneType(I)I
+Landroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I
+Landroid/telephony/TelephonyManager;->getProcCmdLine()Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->getSimCount()I
 Landroid/telephony/TelephonyManager;->getSimCountryIso(I)Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String;
@@ -5046,9 +5411,11 @@
 Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;
 Landroid/text/Layout;->shouldClampCursor(I)Z
 Landroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
+Landroid/text/method/HideReturnsTransformationMethod;->sInstance:Landroid/text/method/HideReturnsTransformationMethod;
 Landroid/text/method/LinkMovementMethod;->sInstance:Landroid/text/method/LinkMovementMethod;
 Landroid/text/method/MetaKeyKeyListener;->startSelecting(Landroid/view/View;Landroid/text/Spannable;)V
 Landroid/text/method/MetaKeyKeyListener;->stopSelecting(Landroid/view/View;Landroid/text/Spannable;)V
+Landroid/text/method/PasswordTransformationMethod;->DOT:C
 Landroid/text/method/PasswordTransformationMethod;->sInstance:Landroid/text/method/PasswordTransformationMethod;
 Landroid/text/method/TransformationMethod2;->setLengthChangesAllowed(Z)V
 Landroid/text/method/WordIterator;-><init>(Ljava/util/Locale;)V
@@ -5121,6 +5488,9 @@
 Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;
 Landroid/text/StaticLayout;->mLines:[I
 Landroid/text/StaticLayout;->mMaximumVisibleLineCount:I
+Landroid/text/style/BulletSpan;->mColor:I
+Landroid/text/style/BulletSpan;->mGapWidth:I
+Landroid/text/style/BulletSpan;->mWantColor:Z
 Landroid/text/style/DynamicDrawableSpan;->mDrawableRef:Ljava/lang/ref/WeakReference;
 Landroid/text/style/EasyEditSpan;->getPendingIntent()Landroid/app/PendingIntent;
 Landroid/text/style/EasyEditSpan;->isDeleteEnabled()Z
@@ -5145,6 +5515,7 @@
 Landroid/text/TextUtils;->packRangeInLong(II)J
 Landroid/text/TextUtils;->unpackRangeEndFromLong(J)I
 Landroid/text/TextUtils;->unpackRangeStartFromLong(J)I
+Landroid/text/util/Linkify;->gatherTelLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Landroid/content/Context;)V
 Landroid/transition/ChangeBounds;->BOTTOM_RIGHT_ONLY_PROPERTY:Landroid/util/Property;
 Landroid/transition/ChangeBounds;->POSITION_PROPERTY:Landroid/util/Property;
 Landroid/transition/Scene;->mEnterAction:Ljava/lang/Runnable;
@@ -5155,19 +5526,29 @@
 Landroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
 Landroid/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
 Landroid/transition/TransitionManager;->sRunningTransitions:Ljava/lang/ThreadLocal;
+Landroid/util/ArrayMap;->allocArrays(I)V
 Landroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V
 Landroid/util/ArrayMap;->CACHE_SIZE:I
+Landroid/util/ArrayMap;->EMPTY:Landroid/util/ArrayMap;
+Landroid/util/ArrayMap;->EMPTY_IMMUTABLE_INTS:[I
+Landroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
 Landroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I
 Landroid/util/ArrayMap;->indexOfNull()I
 Landroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I
 Landroid/util/ArrayMap;->mArray:[Ljava/lang/Object;
 Landroid/util/ArrayMap;->mBaseCache:[Ljava/lang/Object;
 Landroid/util/ArrayMap;->mBaseCacheSize:I
+Landroid/util/ArrayMap;->mHashes:[I
 Landroid/util/ArrayMap;->mSize:I
 Landroid/util/ArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
 Landroid/util/ArrayMap;->mTwiceBaseCacheSize:I
 Landroid/util/ArraySet;-><init>(Ljava/util/Collection;)V
+Landroid/util/ArraySet;->allocArrays(I)V
+Landroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V
+Landroid/util/ArraySet;->indexOf(Ljava/lang/Object;I)I
+Landroid/util/ArraySet;->indexOfNull()I
 Landroid/util/ArraySet;->mArray:[Ljava/lang/Object;
+Landroid/util/ArraySet;->mHashes:[I
 Landroid/util/ArraySet;->mSize:I
 Landroid/util/Base64;-><init>()V
 Landroid/util/Base64OutputStream;-><init>(Ljava/io/OutputStream;IZ)V
@@ -5190,6 +5571,7 @@
 Landroid/util/MathUtils;->constrain(FFF)F
 Landroid/util/MathUtils;->constrain(III)I
 Landroid/util/MathUtils;->lerp(FFF)F
+Landroid/util/MathUtils;->max(II)F
 Landroid/util/NtpTrustedTime;->forceRefresh()Z
 Landroid/util/NtpTrustedTime;->getCachedNtpTime()J
 Landroid/util/NtpTrustedTime;->getCachedNtpTimeReference()J
@@ -5217,6 +5599,7 @@
 Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Slog;->wtfStack(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/util/SparseArray;->mKeys:[I
 Landroid/util/SparseArray;->mSize:I
 Landroid/util/SparseArray;->mValues:[Ljava/lang/Object;
@@ -5226,14 +5609,19 @@
 Landroid/util/SparseIntArray;->mKeys:[I
 Landroid/util/SparseIntArray;->mSize:I
 Landroid/util/SparseIntArray;->mValues:[I
+Landroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;)V
+Landroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;I)V
 Landroid/util/TimeUtils;->logTimeOfDay(J)Ljava/lang/String;
 Landroid/util/TrustedTime;->currentTimeMillis()J
 Landroid/util/TrustedTime;->forceRefresh()Z
 Landroid/util/TrustedTime;->getCacheAge()J
 Landroid/util/TrustedTime;->hasCache()Z
+Landroid/view/accessibility/AccessibilityEvent;->mAction:I
+Landroid/view/accessibility/AccessibilityEvent;->mEventType:I
 Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache()V
 Landroid/view/accessibility/AccessibilityInteractionClient;->getInstance()Landroid/view/accessibility/AccessibilityInteractionClient;
 Landroid/view/accessibility/AccessibilityInteractionClient;->setSameThreadMessage(Landroid/os/Message;)V
+Landroid/view/accessibility/AccessibilityManager;->DALTONIZER_SIMULATE_MONOCHROMACY:I
 Landroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
 Landroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
 Landroid/view/accessibility/AccessibilityManager;->mAccessibilityStateChangeListeners:Landroid/util/ArrayMap;
@@ -5243,6 +5631,7 @@
 Landroid/view/accessibility/AccessibilityManager;->mLock:Ljava/lang/Object;
 Landroid/view/accessibility/AccessibilityManager;->mService:Landroid/view/accessibility/IAccessibilityManager;
 Landroid/view/accessibility/AccessibilityManager;->mUserId:I
+Landroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
 Landroid/view/accessibility/AccessibilityManager;->sInstance:Landroid/view/accessibility/AccessibilityManager;
 Landroid/view/accessibility/AccessibilityManager;->sInstanceSync:Ljava/lang/Object;
 Landroid/view/accessibility/AccessibilityNodeInfo;->getAccessibilityViewId(J)I
@@ -5270,6 +5659,7 @@
 Landroid/view/ActionProvider;->reset()V
 Landroid/view/ActionProvider;->setSubUiVisibilityListener(Landroid/view/ActionProvider$SubUiVisibilityListener;)V
 Landroid/view/animation/Animation;->detach()V
+Landroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
 Landroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
 Landroid/view/animation/Animation;->mListener:Landroid/view/animation/Animation$AnimationListener;
 Landroid/view/animation/Animation;->mPreviousRegion:Landroid/graphics/RectF;
@@ -5325,10 +5715,12 @@
 Landroid/view/DisplayEventReceiver;->onHotplug(JIZ)V
 Landroid/view/DisplayEventReceiver;->onVsync(JII)V
 Landroid/view/DisplayEventReceiver;->scheduleVsync()V
+Landroid/view/DisplayInfo;-><init>()V
 Landroid/view/DisplayInfo;->logicalHeight:I
 Landroid/view/DisplayInfo;->logicalWidth:I
 Landroid/view/DisplayInfo;->rotation:I
 Landroid/view/DisplayListCanvas;->callDrawGLFunction2(J)V
+Landroid/view/DisplayListCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
 Landroid/view/DisplayListCanvas;->drawGLFunctor2(JLjava/lang/Runnable;)V
 Landroid/view/DragEvent;->mClipData:Landroid/content/ClipData;
 Landroid/view/DragEvent;->mClipDescription:Landroid/content/ClipDescription;
@@ -5362,10 +5754,10 @@
 Landroid/view/InputEventConsistencyVerifier;->onTouchEvent(Landroid/view/MotionEvent;I)V
 Landroid/view/InputEventConsistencyVerifier;->onUnhandledEvent(Landroid/view/InputEvent;I)V
 Landroid/view/InputEventReceiver;->dispatchBatchedInputEventPending()V
-Landroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;I)V
 Landroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
 Landroid/view/InputFilter;-><init>(Landroid/os/Looper;)V
 Landroid/view/InputFilter;->onInputEvent(Landroid/view/InputEvent;I)V
+Landroid/view/inputmethod/InputMethodInfo;->isDefault(Landroid/content/Context;)Z
 Landroid/view/inputmethod/InputMethodInfo;->mSubtypes:Landroid/view/inputmethod/InputMethodSubtypeArray;
 Landroid/view/inputmethod/InputMethodManager;->checkFocus()V
 Landroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V
@@ -5422,6 +5814,7 @@
 Landroid/view/IWindowManager;->getAnimationScales()[F
 Landroid/view/IWindowManager;->getBaseDisplaySize(ILandroid/graphics/Point;)V
 Landroid/view/IWindowManager;->getDockedStackSide()I
+Landroid/view/IWindowManager;->getInitialDisplayDensity(I)I
 Landroid/view/IWindowManager;->getInitialDisplaySize(ILandroid/graphics/Point;)V
 Landroid/view/IWindowManager;->getPendingAppTransition()I
 Landroid/view/IWindowManager;->hasNavigationBar()Z
@@ -5451,7 +5844,6 @@
 Landroid/view/KeyCharacterMap$FallbackAction;->keyCode:I
 Landroid/view/KeyCharacterMap$FallbackAction;->metaState:I
 Landroid/view/KeyCharacterMap;-><init>(J)V
-Landroid/view/KeyEvent;->actionToString(I)Ljava/lang/String;
 Landroid/view/KeyEvent;->isConfirmKey(I)Z
 Landroid/view/KeyEvent;->isDown()Z
 Landroid/view/KeyEvent;->mAction:I
@@ -5505,6 +5897,7 @@
 Landroid/view/MotionEvent;->scale(F)V
 Landroid/view/MotionEvent;->setDownTime(J)V
 Landroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent;
+Landroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/view/PointerIcon;->load(Landroid/content/Context;)Landroid/view/PointerIcon;
 Landroid/view/PointerIcon;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/view/PointerIcon;->mBitmapFrames:[Landroid/graphics/Bitmap;
@@ -5516,9 +5909,13 @@
 Landroid/view/RenderNode;->offsetLeftAndRight(I)Z
 Landroid/view/RenderNode;->output()V
 Landroid/view/RenderNode;->setHasOverlappingRendering(Z)Z
+Landroid/view/RenderNode;->setProjectBackwards(Z)Z
 Landroid/view/RenderNodeAnimator;-><init>(IF)V
+Landroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
+Landroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
 Landroid/view/RenderNodeAnimator;->callOnFinished(Landroid/view/RenderNodeAnimator;)V
 Landroid/view/RenderNodeAnimator;->mapViewPropertyToRenderProperty(I)I
+Landroid/view/RenderNodeAnimator;->setStartValue(F)V
 Landroid/view/RenderNodeAnimator;->setTarget(Landroid/view/View;)V
 Landroid/view/ScaleGestureDetector;->mListener:Landroid/view/ScaleGestureDetector$OnScaleGestureListener;
 Landroid/view/ScaleGestureDetector;->mMinSpan:I
@@ -5588,6 +5985,7 @@
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;I)V
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V
+Landroid/view/textservice/SpellCheckerSession;->mSpellCheckerSessionListener:Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;
 Landroid/view/textservice/TextServicesManager;->getCurrentSpellChecker()Landroid/view/textservice/SpellCheckerInfo;
 Landroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
 Landroid/view/textservice/TextServicesManager;->getEnabledSpellCheckers()[Landroid/view/textservice/SpellCheckerInfo;
@@ -5596,9 +5994,17 @@
 Landroid/view/TextureView;->destroyHardwareLayer()V
 Landroid/view/TextureView;->destroyHardwareResources()V
 Landroid/view/TextureView;->mNativeWindow:J
+Landroid/view/TextureView;->mOpaque:Z
 Landroid/view/TextureView;->mSurface:Landroid/graphics/SurfaceTexture;
 Landroid/view/TextureView;->mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
+Landroid/view/TextureView;->mUpdateSurface:Z
+Landroid/view/TextureView;->nCreateNativeWindow(Landroid/graphics/SurfaceTexture;)V
+Landroid/view/TextureView;->nDestroyNativeWindow()V
 Landroid/view/TextureView;->onDetachedFromWindowInternal()V
+Landroid/view/ThreadedRenderer;->addRenderNode(Landroid/view/RenderNode;Z)V
+Landroid/view/ThreadedRenderer;->drawRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ThreadedRenderer;->removeRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ThreadedRenderer;->setContentDrawBounds(IIII)V
 Landroid/view/ThreadedRenderer;->setupDiskCache(Ljava/io/File;)V
 Landroid/view/TouchDelegate;->mDelegateTargeted:Z
 Landroid/view/VelocityTracker$Estimator;->confidence:F
@@ -5636,6 +6042,7 @@
 Landroid/view/View$DragShadowBuilder;->mView:Ljava/lang/ref/WeakReference;
 Landroid/view/View$ListenerInfo;-><init>()V
 Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener;
+Landroid/view/View$ListenerInfo;->mOnCreateContextMenuListener:Landroid/view/View$OnCreateContextMenuListener;
 Landroid/view/View$ListenerInfo;->mOnDragListener:Landroid/view/View$OnDragListener;
 Landroid/view/View$ListenerInfo;->mOnFocusChangeListener:Landroid/view/View$OnFocusChangeListener;
 Landroid/view/View$ListenerInfo;->mOnGenericMotionListener:Landroid/view/View$OnGenericMotionListener;
@@ -5646,12 +6053,14 @@
 Landroid/view/View$MeasureSpec;->makeSafeMeasureSpec(II)I
 Landroid/view/View$ScrollabilityCache;->host:Landroid/view/View;
 Landroid/view/View$ScrollabilityCache;->scrollBar:Landroid/widget/ScrollBarDrawable;
+Landroid/view/View$ScrollabilityCache;->state:I
 Landroid/view/View;-><init>()V
 Landroid/view/View;->applyDrawableToTransparentRegion(Landroid/graphics/drawable/Drawable;Landroid/graphics/Region;)V
 Landroid/view/View;->assignParent(Landroid/view/ViewParent;)V
 Landroid/view/View;->clearAccessibilityFocus()V
 Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 Landroid/view/View;->computeOpaqueFlags()V
+Landroid/view/View;->DBG:Z
 Landroid/view/View;->debug()V
 Landroid/view/View;->debug(I)V
 Landroid/view/View;->DEBUG_LAYOUT_PROPERTY:Ljava/lang/String;
@@ -5673,9 +6082,12 @@
 Landroid/view/View;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
 Landroid/view/View;->getIteratorForGranularity(I)Landroid/view/AccessibilityIterators$TextSegmentIterator;
 Landroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo;
+Landroid/view/View;->getLocationInSurface([I)V
 Landroid/view/View;->getLocationOnScreen()[I
 Landroid/view/View;->getRawTextAlignment()I
 Landroid/view/View;->getRawTextDirection()I
+Landroid/view/View;->getScrollCache()Landroid/view/View$ScrollabilityCache;
+Landroid/view/View;->getThreadedRenderer()Landroid/view/ThreadedRenderer;
 Landroid/view/View;->getTransitionAlpha()F
 Landroid/view/View;->getVerticalScrollFactor()F
 Landroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl;
@@ -5699,7 +6111,9 @@
 Landroid/view/View;->isVisibleToUser()Z
 Landroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z
 Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate;
+Landroid/view/View;->mAccessibilityViewId:I
 Landroid/view/View;->makeOptionalFitsSystemWindows()V
+Landroid/view/View;->mAnimator:Landroid/view/ViewPropertyAnimator;
 Landroid/view/View;->mAttachInfo:Landroid/view/View$AttachInfo;
 Landroid/view/View;->mBackground:Landroid/graphics/drawable/Drawable;
 Landroid/view/View;->mBackgroundResource:I
@@ -5743,8 +6157,11 @@
 Landroid/view/View;->notifySubtreeAccessibilityStateChangedIfNeeded()V
 Landroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V
 Landroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V
+Landroid/view/View;->onDetachedFromWindowInternal()V
+Landroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 Landroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 Landroid/view/View;->onFocusLost()V
+Landroid/view/View;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
 Landroid/view/View;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
 Landroid/view/View;->pointInView(FFF)Z
 Landroid/view/View;->recomputePadding()V
@@ -5762,6 +6179,7 @@
 Landroid/view/View;->setAlphaNoInvalidation(F)Z
 Landroid/view/View;->setAnimationMatrix(Landroid/graphics/Matrix;)V
 Landroid/view/View;->setAssistBlocked(Z)V
+Landroid/view/View;->setDisabledSystemUiVisibility(I)V
 Landroid/view/View;->setFlags(II)V
 Landroid/view/View;->setFrame(IIII)Z
 Landroid/view/View;->setIsRootNamespace(Z)V
@@ -5777,9 +6195,11 @@
 Landroid/view/View;->toLocalMotionEvent(Landroid/view/MotionEvent;)Z
 Landroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
 Landroid/view/View;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
+Landroid/view/View;->updateDisplayListIfDirty()Landroid/view/RenderNode;
 Landroid/view/ViewConfiguration;->getDeviceGlobalActionKeyTimeout()J
 Landroid/view/ViewConfiguration;->getDoubleTapMinTime()I
 Landroid/view/ViewConfiguration;->getDoubleTapSlop()I
+Landroid/view/ViewConfiguration;->getHoverTapSlop()I
 Landroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I
 Landroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z
 Landroid/view/ViewConfiguration;->mFadingMarqueeEnabled:Z
@@ -5795,13 +6215,16 @@
 Landroid/view/ViewGroup$MarginLayoutParams;->endMargin:I
 Landroid/view/ViewGroup$MarginLayoutParams;->setMarginsRelative(IIII)V
 Landroid/view/ViewGroup$MarginLayoutParams;->startMargin:I
+Landroid/view/ViewGroup$TouchTarget;->child:Landroid/view/View;
 Landroid/view/ViewGroup;->addTransientView(Landroid/view/View;I)V
 Landroid/view/ViewGroup;->cancelTouchTarget(Landroid/view/View;)V
+Landroid/view/ViewGroup;->DBG:Z
 Landroid/view/ViewGroup;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
 Landroid/view/ViewGroup;->dispatchDetachedFromWindow()V
 Landroid/view/ViewGroup;->dispatchGetDisplayList()V
 Landroid/view/ViewGroup;->dispatchViewAdded(Landroid/view/View;)V
 Landroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V
+Landroid/view/ViewGroup;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
 Landroid/view/ViewGroup;->FLAG_DISALLOW_INTERCEPT:I
 Landroid/view/ViewGroup;->FLAG_SUPPORT_STATIC_TRANSFORMATIONS:I
 Landroid/view/ViewGroup;->FLAG_USE_CHILD_DRAWING_ORDER:I
@@ -5813,11 +6236,13 @@
 Landroid/view/ViewGroup;->mChildrenCount:I
 Landroid/view/ViewGroup;->mDisappearingChildren:Ljava/util/ArrayList;
 Landroid/view/ViewGroup;->mFirstTouchTarget:Landroid/view/ViewGroup$TouchTarget;
+Landroid/view/ViewGroup;->mFocused:Landroid/view/View;
 Landroid/view/ViewGroup;->mGroupFlags:I
 Landroid/view/ViewGroup;->mOnHierarchyChangeListener:Landroid/view/ViewGroup$OnHierarchyChangeListener;
 Landroid/view/ViewGroup;->mPersistentDrawingCache:I
 Landroid/view/ViewGroup;->offsetChildrenTopAndBottom(I)V
 Landroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V
+Landroid/view/ViewGroup;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/view/ViewGroup;->removeTransientView(Landroid/view/View;)V
 Landroid/view/ViewGroup;->resetResolvedDrawables()V
 Landroid/view/ViewGroup;->resetResolvedLayoutDirection()V
@@ -5827,10 +6252,13 @@
 Landroid/view/ViewGroup;->resolvePadding()V
 Landroid/view/ViewGroup;->suppressLayout(Z)V
 Landroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;F)V
 Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;I)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;Z)V
 Landroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup;
 Landroid/view/ViewOverlay;->isEmpty()Z
+Landroid/view/ViewPropertyAnimator;->mRTBackend:Landroid/view/ViewPropertyAnimatorRT;
 Landroid/view/ViewRootImpl$CalledFromWrongThreadException;-><init>(Ljava/lang/String;)V
 Landroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V
 Landroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V
@@ -5838,6 +6266,7 @@
 Landroid/view/ViewRootImpl;->dispatchInputEvent(Landroid/view/InputEvent;)V
 Landroid/view/ViewRootImpl;->dispatchInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;)V
 Landroid/view/ViewRootImpl;->dispatchKeyFromIme(Landroid/view/KeyEvent;)V
+Landroid/view/ViewRootImpl;->dispatchUnhandledInputEvent(Landroid/view/InputEvent;)V
 Landroid/view/ViewRootImpl;->enableHardwareAcceleration(Landroid/view/WindowManager$LayoutParams;)V
 Landroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;)V
 Landroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V
@@ -5847,10 +6276,15 @@
 Landroid/view/ViewRootImpl;->getLastTouchPoint(Landroid/graphics/Point;)V
 Landroid/view/ViewRootImpl;->getView()Landroid/view/View;
 Landroid/view/ViewRootImpl;->getWindowFlags()I
+Landroid/view/ViewRootImpl;->invalidate()V
 Landroid/view/ViewRootImpl;->invokeFunctor(JZ)V
+Landroid/view/ViewRootImpl;->mAdded:Z
 Landroid/view/ViewRootImpl;->mAttachInfo:Landroid/view/View$AttachInfo;
+Landroid/view/ViewRootImpl;->mContext:Landroid/content/Context;
 Landroid/view/ViewRootImpl;->mDirty:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mFallbackEventHandler:Landroid/view/FallbackEventHandler;
 Landroid/view/ViewRootImpl;->mHeight:I
+Landroid/view/ViewRootImpl;->mLastScrolledFocus:Ljava/lang/ref/WeakReference;
 Landroid/view/ViewRootImpl;->mStopped:Z
 Landroid/view/ViewRootImpl;->mSurface:Landroid/view/Surface;
 Landroid/view/ViewRootImpl;->mView:Landroid/view/View;
@@ -5889,10 +6323,12 @@
 Landroid/view/Window;->mHardwareAccelerated:Z
 Landroid/view/Window;->mLocalFeatures:I
 Landroid/view/Window;->mWindowAttributes:Landroid/view/WindowManager$LayoutParams;
+Landroid/view/Window;->mWindowManager:Landroid/view/WindowManager;
 Landroid/view/Window;->mWindowStyle:Landroid/content/res/TypedArray;
 Landroid/view/Window;->setCloseOnTouchOutside(Z)V
 Landroid/view/Window;->setCloseOnTouchOutsideIfNotSet(Z)V
 Landroid/view/Window;->setNeedsMenuKey(I)V
+Landroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
 Landroid/view/WindowAnimationFrameStats;->init(J[J)V
 Landroid/view/WindowContentFrameStats;->init(J[J[J[J)V
 Landroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;)V
@@ -5917,6 +6353,7 @@
 Landroid/view/WindowManager$LayoutParams;->userActivityTimeout:J
 Landroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
 Landroid/view/WindowManagerGlobal;->getRootView(Ljava/lang/String;)Landroid/view/View;
+Landroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->getViewRootNames()[Ljava/lang/String;
 Landroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
 Landroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
@@ -5925,6 +6362,7 @@
 Landroid/view/WindowManagerGlobal;->mParams:Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->mRoots:Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->mViews:Ljava/util/ArrayList;
+Landroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession;
 Landroid/view/WindowManagerGlobal;->removeView(Landroid/view/View;Z)V
 Landroid/view/WindowManagerGlobal;->sDefaultWindowManager:Landroid/view/WindowManagerGlobal;
 Landroid/view/WindowManagerGlobal;->sWindowManagerService:Landroid/view/IWindowManager;
@@ -5969,15 +6407,24 @@
 Landroid/webkit/CacheManager;->saveCacheFile(Ljava/lang/String;JLandroid/webkit/CacheManager$CacheResult;)V
 Landroid/webkit/CacheManager;->saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V
 Landroid/webkit/CacheManager;->startCacheTransaction()Z
+Landroid/webkit/ConsoleMessage;->mLevel:Landroid/webkit/ConsoleMessage$MessageLevel;
+Landroid/webkit/ConsoleMessage;->mLineNumber:I
+Landroid/webkit/ConsoleMessage;->mMessage:Ljava/lang/String;
+Landroid/webkit/ConsoleMessage;->mSourceId:Ljava/lang/String;
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
 Landroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
+Landroid/webkit/IWebViewUpdateService;->getCurrentWebViewPackageName()Ljava/lang/String;
+Landroid/webkit/IWebViewUpdateService;->getValidWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
 Landroid/webkit/IWebViewUpdateService;->isFallbackPackage(Ljava/lang/String;)Z
+Landroid/webkit/JsResult;->mReceiver:Landroid/webkit/JsResult$ResultReceiver;
 Landroid/webkit/PluginData;-><init>(Ljava/io/InputStream;JLjava/util/Map;I)V
 Landroid/webkit/PluginData;->getContentLength()J
 Landroid/webkit/PluginData;->getHeaders()Ljava/util/Map;
 Landroid/webkit/PluginData;->getInputStream()Ljava/io/InputStream;
 Landroid/webkit/PluginData;->getStatusCode()I
+Landroid/webkit/UrlInterceptHandler;->getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;
+Landroid/webkit/UrlInterceptHandler;->service(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;
 Landroid/webkit/UrlInterceptRegistry;->getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;
 Landroid/webkit/UrlInterceptRegistry;->registerHandler(Landroid/webkit/UrlInterceptHandler;)Z
 Landroid/webkit/UrlInterceptRegistry;->setUrlInterceptDisabled(Z)V
@@ -5986,6 +6433,7 @@
 Landroid/webkit/URLUtil;->parseContentDisposition(Ljava/lang/String;)Ljava/lang/String;
 Landroid/webkit/URLUtil;->verifyURLEncoding(Ljava/lang/String;)Z
 Landroid/webkit/WebResourceResponse;->mImmutable:Z
+Landroid/webkit/WebResourceResponse;->mStatusCode:I
 Landroid/webkit/WebSettings$TextSize;->value:I
 Landroid/webkit/WebSyncManager;->mHandler:Landroid/os/Handler;
 Landroid/webkit/WebSyncManager;->syncFromRamToFlash()V
@@ -5996,6 +6444,7 @@
 Landroid/webkit/WebView;->disablePlatformNotifications()V
 Landroid/webkit/WebView;->emulateShiftHeld()V
 Landroid/webkit/WebView;->enablePlatformNotifications()V
+Landroid/webkit/WebView;->freeMemoryForTests()V
 Landroid/webkit/WebView;->getContentWidth()I
 Landroid/webkit/WebView;->getFactory()Landroid/webkit/WebViewFactoryProvider;
 Landroid/webkit/WebView;->getTouchIconUrl()Ljava/lang/String;
@@ -6011,20 +6460,29 @@
 Landroid/webkit/WebView;->setFrame(IIII)Z
 Landroid/webkit/WebViewDelegate;-><init>()V
 Landroid/webkit/WebViewFactory;->getProvider()Landroid/webkit/WebViewFactoryProvider;
+Landroid/webkit/WebViewFactory;->getProviderClass()Ljava/lang/Class;
 Landroid/webkit/WebViewFactory;->getUpdateService()Landroid/webkit/IWebViewUpdateService;
 Landroid/webkit/WebViewFactory;->getWebViewContextAndSetProvider()Landroid/content/Context;
 Landroid/webkit/WebViewFactory;->sPackageInfo:Landroid/content/pm/PackageInfo;
 Landroid/webkit/WebViewFactory;->sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
+Landroid/webkit/WebViewProviderInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/webkit/WebViewProviderResponse;->packageInfo:Landroid/content/pm/PackageInfo;
+Landroid/webkit/WebViewUpdateService;-><init>()V
 Landroid/widget/AbsListView$FlingRunnable;->endFling()V
 Landroid/widget/AbsListView$FlingRunnable;->mScroller:Landroid/widget/OverScroller;
 Landroid/widget/AbsListView$FlingRunnable;->start(I)V
+Landroid/widget/AbsListView$LayoutParams;->scrappedFromPosition:I
+Landroid/widget/AbsListView$LayoutParams;->viewType:I
 Landroid/widget/AbsListView$RecycleBin;->clear()V
 Landroid/widget/AbsListView$RecycleBin;->mRecyclerListener:Landroid/widget/AbsListView$RecyclerListener;
 Landroid/widget/AbsListView$SavedState;->firstId:J
 Landroid/widget/AbsListView$SavedState;->viewTop:I
+Landroid/widget/AbsListView;->canScrollDown()Z
+Landroid/widget/AbsListView;->canScrollUp()Z
 Landroid/widget/AbsListView;->findMotionRow(I)I
 Landroid/widget/AbsListView;->invokeOnItemScrollListener()V
 Landroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
+Landroid/widget/AbsListView;->mActivePointerId:I
 Landroid/widget/AbsListView;->mAdapter:Landroid/widget/ListAdapter;
 Landroid/widget/AbsListView;->mChoiceActionMode:Landroid/view/ActionMode;
 Landroid/widget/AbsListView;->mContextMenuInfo:Landroid/view/ContextMenu$ContextMenuInfo;
@@ -6073,7 +6531,14 @@
 Landroid/widget/ActionMenuPresenter;->isOverflowMenuShowing()Z
 Landroid/widget/ActionMenuPresenter;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 Landroid/widget/ActionMenuPresenter;->onSaveInstanceState()Landroid/os/Parcelable;
+Landroid/widget/ActionMenuView$ActionMenuChildView;->needsDividerBefore()Z
+Landroid/widget/ActionMenuView$LayoutParams;->cellsUsed:I
+Landroid/widget/ActionMenuView$LayoutParams;->expandable:Z
+Landroid/widget/ActionMenuView$LayoutParams;->expanded:Z
+Landroid/widget/ActionMenuView$LayoutParams;->extraPixels:I
 Landroid/widget/ActionMenuView$LayoutParams;->isOverflowButton:Z
+Landroid/widget/ActionMenuView$LayoutParams;->preventEdgeOffset:Z
+Landroid/widget/ActionMenuView;->hasDividerBeforeChildAt(I)Z
 Landroid/widget/ActionMenuView;->isOverflowMenuShowPending()Z
 Landroid/widget/ActionMenuView;->isOverflowReserved()Z
 Landroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder;
@@ -6088,6 +6553,7 @@
 Landroid/widget/ActivityChooserView;->setExpandActivityOverflowButtonDrawable(Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/AdapterView;->mDataChanged:Z
 Landroid/widget/AdapterView;->mFirstPosition:I
+Landroid/widget/AdapterView;->mNeedSync:Z
 Landroid/widget/AdapterView;->mNextSelectedPosition:I
 Landroid/widget/AdapterView;->mNextSelectedRowId:J
 Landroid/widget/AdapterView;->mOldSelectedPosition:I
@@ -6117,6 +6583,7 @@
 Landroid/widget/AutoCompleteTextView;->mPopup:Landroid/widget/ListPopupWindow;
 Landroid/widget/AutoCompleteTextView;->setDropDownAlwaysVisible(Z)V
 Landroid/widget/AutoCompleteTextView;->setDropDownAnimationStyle(I)V
+Landroid/widget/AutoCompleteTextView;->setDropDownDismissedOnCompletion(Z)V
 Landroid/widget/AutoCompleteTextView;->setForceIgnoreOutsideTouch(Z)V
 Landroid/widget/AutoCompleteTextView;->showDropDownAfterLayout()V
 Landroid/widget/BaseAdapter;->mDataSetObservable:Landroid/database/DataSetObservable;
@@ -6134,6 +6601,7 @@
 Landroid/widget/CursorAdapter;->mRowIDColumn:I
 Landroid/widget/DatePicker;->mDelegate:Landroid/widget/DatePicker$DatePickerDelegate;
 Landroid/widget/DatePicker;->setValidationCallback(Landroid/widget/DatePicker$ValidationCallback;)V
+Landroid/widget/DateTimeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/DateTimeView;->setTime(J)V
 Landroid/widget/DateTimeView;->update()V
 Landroid/widget/EdgeEffect;->mGlowScaleY:F
@@ -6142,7 +6610,9 @@
 Landroid/widget/Editor;->invalidateTextDisplayList()V
 Landroid/widget/Editor;->mCreatedWithASelection:Z
 Landroid/widget/Editor;->mInsertionControllerEnabled:Z
+Landroid/widget/Editor;->mSelectHandleCenter:Landroid/graphics/drawable/Drawable;
 Landroid/widget/Editor;->mSelectHandleLeft:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor;->mSelectHandleRight:Landroid/graphics/drawable/Drawable;
 Landroid/widget/Editor;->mSelectionControllerEnabled:Z
 Landroid/widget/Editor;->mShowCursor:J
 Landroid/widget/Editor;->mShowSoftInputOnFocus:Z
@@ -6209,6 +6679,8 @@
 Landroid/widget/HorizontalScrollView;->mEdgeGlowRight:Landroid/widget/EdgeEffect;
 Landroid/widget/HorizontalScrollView;->mIsBeingDragged:Z
 Landroid/widget/HorizontalScrollView;->mLastMotionX:I
+Landroid/widget/HorizontalScrollView;->mOverflingDistance:I
+Landroid/widget/HorizontalScrollView;->mOverscrollDistance:I
 Landroid/widget/HorizontalScrollView;->mScroller:Landroid/widget/OverScroller;
 Landroid/widget/HorizontalScrollView;->mVelocityTracker:Landroid/view/VelocityTracker;
 Landroid/widget/HorizontalScrollView;->recycleVelocityTracker()V
@@ -6225,6 +6697,7 @@
 Landroid/widget/ImageView;->mRecycleableBitmapDrawable:Landroid/graphics/drawable/BitmapDrawable;
 Landroid/widget/ImageView;->mResource:I
 Landroid/widget/ImageView;->mUri:Landroid/net/Uri;
+Landroid/widget/ImageView;->resizeFromDrawable()V
 Landroid/widget/ImageView;->resolveUri()V
 Landroid/widget/ImageView;->scaleTypeToScaleToFit(Landroid/widget/ImageView$ScaleType;)Landroid/graphics/Matrix$ScaleToFit;
 Landroid/widget/ImageView;->setImageResourceAsync(I)Ljava/lang/Runnable;
@@ -6240,14 +6713,19 @@
 Landroid/widget/LinearLayout;->mTotalLength:I
 Landroid/widget/LinearLayout;->mUseLargestChild:Z
 Landroid/widget/ListPopupWindow;->buildDropDown()I
+Landroid/widget/ListPopupWindow;->isDropDownAlwaysVisible()Z
 Landroid/widget/ListPopupWindow;->mDropDownList:Landroid/widget/DropDownListView;
 Landroid/widget/ListPopupWindow;->mPopup:Landroid/widget/PopupWindow;
+Landroid/widget/ListPopupWindow;->setDropDownAlwaysVisible(Z)V
 Landroid/widget/ListPopupWindow;->setForceIgnoreOutsideTouch(Z)V
 Landroid/widget/ListPopupWindow;->setListItemExpandMax(I)V
 Landroid/widget/ListView;->arrowScroll(I)Z
+Landroid/widget/ListView;->correctTooHigh(I)V
+Landroid/widget/ListView;->correctTooLow(I)V
 Landroid/widget/ListView;->fillDown(II)Landroid/view/View;
 Landroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
 Landroid/widget/ListView;->fillUp(II)Landroid/view/View;
+Landroid/widget/ListView;->getHeightForPosition(I)I
 Landroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
 Landroid/widget/ListView;->mAreAllItemsSelectable:Z
 Landroid/widget/ListView;->mDivider:Landroid/graphics/drawable/Drawable;
@@ -6266,8 +6744,10 @@
 Landroid/widget/MediaController;->mEndTime:Landroid/widget/TextView;
 Landroid/widget/MediaController;->mFfwdButton:Landroid/widget/ImageButton;
 Landroid/widget/MediaController;->mFfwdListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mNextButton:Landroid/widget/ImageButton;
 Landroid/widget/MediaController;->mPauseButton:Landroid/widget/ImageButton;
 Landroid/widget/MediaController;->mPlayer:Landroid/widget/MediaController$MediaPlayerControl;
+Landroid/widget/MediaController;->mPrevButton:Landroid/widget/ImageButton;
 Landroid/widget/MediaController;->mProgress:Landroid/widget/ProgressBar;
 Landroid/widget/MediaController;->mRewButton:Landroid/widget/ImageButton;
 Landroid/widget/MediaController;->mRewListener:Landroid/view/View$OnClickListener;
@@ -6291,12 +6771,14 @@
 Landroid/widget/NumberPicker;->mSelectionDividerHeight:I
 Landroid/widget/NumberPicker;->mSelectorIndices:[I
 Landroid/widget/NumberPicker;->mSelectorWheelPaint:Landroid/graphics/Paint;
+Landroid/widget/NumberPicker;->mTextSize:I
 Landroid/widget/NumberPicker;->SELECTOR_MIDDLE_ITEM_INDEX:I
 Landroid/widget/NumberPicker;->SELECTOR_WHEEL_ITEM_COUNT:I
 Landroid/widget/OverScroller$SplineOverScroller;->mCurrVelocity:F
 Landroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
 Landroid/widget/OverScroller;->extendDuration(I)V
 Landroid/widget/OverScroller;->isScrollingInDirection(FF)Z
+Landroid/widget/OverScroller;->mInterpolator:Landroid/view/animation/Interpolator;
 Landroid/widget/OverScroller;->mScrollerY:Landroid/widget/OverScroller$SplineOverScroller;
 Landroid/widget/OverScroller;->setInterpolator(Landroid/view/animation/Interpolator;)V
 Landroid/widget/PopupMenu;->mContext:Landroid/content/Context;
@@ -6312,6 +6794,7 @@
 Landroid/widget/PopupWindow;->mBelowAnchorBackgroundDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/PopupWindow;->mContentView:Landroid/view/View;
 Landroid/widget/PopupWindow;->mContext:Landroid/content/Context;
+Landroid/widget/PopupWindow;->mDecorView:Landroid/widget/PopupWindow$PopupDecorView;
 Landroid/widget/PopupWindow;->mHeightMode:I
 Landroid/widget/PopupWindow;->mIsDropdown:Z
 Landroid/widget/PopupWindow;->mIsShowing:Z
@@ -6343,6 +6826,7 @@
 Landroid/widget/ProgressBar;->mMinWidth:I
 Landroid/widget/ProgressBar;->mMirrorForRtl:Z
 Landroid/widget/ProgressBar;->mOnlyIndeterminate:Z
+Landroid/widget/ProgressBar;->refreshProgress(IIZZ)V
 Landroid/widget/ProgressBar;->setProgressInternal(IZZ)Z
 Landroid/widget/ProgressBar;->startAnimation()V
 Landroid/widget/ProgressBar;->stopAnimation()V
@@ -6377,6 +6861,7 @@
 Landroid/widget/RemoteViews;->mergeRemoteViews(Landroid/widget/RemoteViews;)V
 Landroid/widget/RemoteViews;->mLayoutId:I
 Landroid/widget/RemoteViews;->mPortrait:Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViews;->setIsWidgetCollectionChild(Z)V
 Landroid/widget/RemoteViews;->setRemoteAdapter(ILjava/util/ArrayList;I)V
 Landroid/widget/RemoteViewsAdapter;->getRemoteViewsServiceIntent()Landroid/content/Intent;
 Landroid/widget/RemoteViewsAdapter;->isDataReady()Z
@@ -6435,6 +6920,7 @@
 Landroid/widget/SearchView;->updateViewsVisibility(Z)V
 Landroid/widget/SeekBar;->mOnSeekBarChangeListener:Landroid/widget/SeekBar$OnSeekBarChangeListener;
 Landroid/widget/SeekBar;->onProgressRefresh(FZI)V
+Landroid/widget/SimpleAdapter;->mData:Ljava/util/List;
 Landroid/widget/SimpleCursorAdapter;->mFrom:[I
 Landroid/widget/SimpleCursorAdapter;->mTo:[I
 Landroid/widget/SlidingDrawer;->mTopOffset:I
@@ -6453,6 +6939,7 @@
 Landroid/widget/Switch;->mOnLayout:Landroid/text/Layout;
 Landroid/widget/Switch;->mSwitchHeight:I
 Landroid/widget/Switch;->mSwitchMinWidth:I
+Landroid/widget/Switch;->mSwitchWidth:I
 Landroid/widget/Switch;->mThumbDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/Switch;->mThumbWidth:I
 Landroid/widget/Switch;->mTrackDrawable:Landroid/graphics/drawable/Drawable;
@@ -6478,6 +6965,7 @@
 Landroid/widget/TextView;->deleteText_internal(II)V
 Landroid/widget/TextView;->getHintLayout()Landroid/text/Layout;
 Landroid/widget/TextView;->getHorizontallyScrolling()Z
+Landroid/widget/TextView;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
 Landroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment;
 Landroid/widget/TextView;->getLineAtCoordinate(F)I
 Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
@@ -6494,6 +6982,7 @@
 Landroid/widget/TextView;->mBufferType:Landroid/widget/TextView$BufferType;
 Landroid/widget/TextView;->mChangeWatcher:Landroid/widget/TextView$ChangeWatcher;
 Landroid/widget/TextView;->mCharWrapper:Landroid/widget/TextView$CharWrapper;
+Landroid/widget/TextView;->mCurHintTextColor:I
 Landroid/widget/TextView;->mCursorDrawableRes:I
 Landroid/widget/TextView;->mCurTextColor:I
 Landroid/widget/TextView;->mDesiredHeightAtMeasure:I
@@ -6542,15 +7031,20 @@
 Landroid/widget/TextView;->mUserSetTextScaleX:Z
 Landroid/widget/TextView;->nullLayouts()V
 Landroid/widget/TextView;->setInputType(IZ)V
+Landroid/widget/TextView;->setRawTextSize(FZ)V
 Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V
 Landroid/widget/TextView;->startMarquee()V
+Landroid/widget/TextView;->startStopMarquee(Z)V
 Landroid/widget/TextView;->stopTextActionMode()V
 Landroid/widget/TextView;->viewportToContentVerticalOffset()I
 Landroid/widget/TimePicker;->mDelegate:Landroid/widget/TimePicker$TimePickerDelegate;
 Landroid/widget/Toast$TN;->handleHide()V
+Landroid/widget/Toast$TN;->mGravity:I
 Landroid/widget/Toast$TN;->mNextView:Landroid/view/View;
 Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
 Landroid/widget/Toast$TN;->mView:Landroid/view/View;
+Landroid/widget/Toast$TN;->mY:I
+Landroid/widget/Toast$TN;->show(Landroid/os/IBinder;)V
 Landroid/widget/Toast;->getService()Landroid/app/INotificationManager;
 Landroid/widget/Toast;->getWindowParams()Landroid/view/WindowManager$LayoutParams;
 Landroid/widget/Toast;->mDuration:I
@@ -6821,6 +7315,8 @@
 Lcom/android/internal/policy/IKeyguardService;->setKeyguardEnabled(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardStateCallback;
 Lcom/android/internal/R$anim;->fade_in:I
+Lcom/android/internal/R$array;->config_autoBrightnessLcdBacklightValues:I
+Lcom/android/internal/R$array;->config_autoBrightnessLevels:I
 Lcom/android/internal/R$array;->config_mobile_hotspot_provision_app:I
 Lcom/android/internal/R$array;->config_sms_enabled_locking_shift_tables:I
 Lcom/android/internal/R$array;->config_sms_enabled_single_shift_tables:I
@@ -6833,6 +7329,7 @@
 Lcom/android/internal/R$attr;->actionBarStyle:I
 Lcom/android/internal/R$attr;->buttonStyle:I
 Lcom/android/internal/R$attr;->description:I
+Lcom/android/internal/R$attr;->editTextStyle:I
 Lcom/android/internal/R$attr;->mapViewStyle:I
 Lcom/android/internal/R$attr;->popupWindowStyle:I
 Lcom/android/internal/R$attr;->state_above_anchor:I
@@ -6842,6 +7339,7 @@
 Lcom/android/internal/R$attr;->switchStyle:I
 Lcom/android/internal/R$attr;->text:I
 Lcom/android/internal/R$attr;->title:I
+Lcom/android/internal/R$attr;->webViewStyle:I
 Lcom/android/internal/R$bool;->config_mms_content_disposition_support:I
 Lcom/android/internal/R$bool;->config_showNavigationBar:I
 Lcom/android/internal/R$dimen;-><init>()V
@@ -6861,6 +7359,7 @@
 Lcom/android/internal/R$drawable;->no_tile_256:I
 Lcom/android/internal/R$drawable;->reticle:I
 Lcom/android/internal/R$drawable;->stat_sys_download:I
+Lcom/android/internal/R$fraction;->config_autoBrightnessAdjustmentMaxGamma:I
 Lcom/android/internal/R$id;->account_name:I
 Lcom/android/internal/R$id;->account_type:I
 Lcom/android/internal/R$id;->alertTitle:I
@@ -6878,6 +7377,7 @@
 Lcom/android/internal/R$id;->custom:I
 Lcom/android/internal/R$id;->customPanel:I
 Lcom/android/internal/R$id;->datePicker:I
+Lcom/android/internal/R$id;->day:I
 Lcom/android/internal/R$id;->deny_button:I
 Lcom/android/internal/R$id;->description:I
 Lcom/android/internal/R$id;->edit:I
@@ -6894,6 +7394,7 @@
 Lcom/android/internal/R$id;->media_actions:I
 Lcom/android/internal/R$id;->message:I
 Lcom/android/internal/R$id;->minute:I
+Lcom/android/internal/R$id;->month:I
 Lcom/android/internal/R$id;->name:I
 Lcom/android/internal/R$id;->notification_header:I
 Lcom/android/internal/R$id;->ok:I
@@ -6925,12 +7426,16 @@
 Lcom/android/internal/R$id;->title_template:I
 Lcom/android/internal/R$id;->topPanel:I
 Lcom/android/internal/R$id;->up:I
+Lcom/android/internal/R$id;->year:I
 Lcom/android/internal/R$id;->zoomControls:I
 Lcom/android/internal/R$id;->zoomMagnify:I
 Lcom/android/internal/R$integer;->config_screenBrightnessDim:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMaximum:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMinimum:I
 Lcom/android/internal/R$integer;->config_toastDefaultGravity:I
 Lcom/android/internal/R$interpolator;->accelerate_cubic:I
 Lcom/android/internal/R$interpolator;->decelerate_cubic:I
+Lcom/android/internal/R$layout;->notification_template_material_base:I
 Lcom/android/internal/R$layout;->preference_header_item:I
 Lcom/android/internal/R$layout;->screen_title:I
 Lcom/android/internal/R$layout;->select_dialog:I
@@ -6959,6 +7464,7 @@
 Lcom/android/internal/R$style;->Theme_Dialog_Alert:I
 Lcom/android/internal/R$style;->Theme_Holo_Light:I
 Lcom/android/internal/R$style;->Theme_Light:I
+Lcom/android/internal/R$styleable;-><init>()V
 Lcom/android/internal/R$styleable;->AbsListView:[I
 Lcom/android/internal/R$styleable;->AbsListView_cacheColorHint:I
 Lcom/android/internal/R$styleable;->AbsListView_choiceMode:I
@@ -7068,6 +7574,7 @@
 Lcom/android/internal/R$styleable;->CompoundButton_button:I
 Lcom/android/internal/R$styleable;->CompoundButton_checked:I
 Lcom/android/internal/R$styleable;->ContactsDataKind:[I
+Lcom/android/internal/R$styleable;->CycleInterpolator:[I
 Lcom/android/internal/R$styleable;->DatePicker:[I
 Lcom/android/internal/R$styleable;->DialogPreference:[I
 Lcom/android/internal/R$styleable;->DialogPreference_dialogTitle:I
@@ -7076,6 +7583,7 @@
 Lcom/android/internal/R$styleable;->EdgeEffect_colorEdgeEffect:I
 Lcom/android/internal/R$styleable;->FastScroll:[I
 Lcom/android/internal/R$styleable;->FrameLayout:[I
+Lcom/android/internal/R$styleable;->FrameLayout_Layout:[I
 Lcom/android/internal/R$styleable;->Gallery:[I
 Lcom/android/internal/R$styleable;->GridView:[I
 Lcom/android/internal/R$styleable;->IconMenuView:[I
@@ -7086,6 +7594,7 @@
 Lcom/android/internal/R$styleable;->KeyboardView:[I
 Lcom/android/internal/R$styleable;->Keyboard_Key:[I
 Lcom/android/internal/R$styleable;->Keyboard_Row:[I
+Lcom/android/internal/R$styleable;->LinearLayout:[I
 Lcom/android/internal/R$styleable;->ListPreference:[I
 Lcom/android/internal/R$styleable;->ListPreference_entries:I
 Lcom/android/internal/R$styleable;->ListView:[I
@@ -7098,6 +7607,8 @@
 Lcom/android/internal/R$styleable;->ListView_overScrollHeader:I
 Lcom/android/internal/R$styleable;->MapView:[I
 Lcom/android/internal/R$styleable;->MapView_apiKey:I
+Lcom/android/internal/R$styleable;->MenuGroup:[I
+Lcom/android/internal/R$styleable;->MenuItem:[I
 Lcom/android/internal/R$styleable;->MenuView:[I
 Lcom/android/internal/R$styleable;->PopupWindow:[I
 Lcom/android/internal/R$styleable;->PopupWindow_popupAnimationStyle:I
@@ -7140,17 +7651,89 @@
 Lcom/android/internal/R$styleable;->TabWidget:[I
 Lcom/android/internal/R$styleable;->TextAppearance:[I
 Lcom/android/internal/R$styleable;->TextAppearance_fontFamily:I
+Lcom/android/internal/R$styleable;->TextAppearance_textAllCaps:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColor:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHighlight:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHint:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorLink:I
+Lcom/android/internal/R$styleable;->TextAppearance_textSize:I
+Lcom/android/internal/R$styleable;->TextAppearance_textStyle:I
+Lcom/android/internal/R$styleable;->TextAppearance_typeface:I
 Lcom/android/internal/R$styleable;->TextClock:[I
 Lcom/android/internal/R$styleable;->TextView:[I
 Lcom/android/internal/R$styleable;->TextViewAppearance:[I
+Lcom/android/internal/R$styleable;->TextViewAppearance_textAppearance:I
+Lcom/android/internal/R$styleable;->TextView_autoLink:I
+Lcom/android/internal/R$styleable;->TextView_autoText:I
+Lcom/android/internal/R$styleable;->TextView_bufferType:I
+Lcom/android/internal/R$styleable;->TextView_capitalize:I
+Lcom/android/internal/R$styleable;->TextView_cursorVisible:I
+Lcom/android/internal/R$styleable;->TextView_digits:I
 Lcom/android/internal/R$styleable;->TextView_drawableBottom:I
+Lcom/android/internal/R$styleable;->TextView_drawableEnd:I
 Lcom/android/internal/R$styleable;->TextView_drawableLeft:I
+Lcom/android/internal/R$styleable;->TextView_drawablePadding:I
 Lcom/android/internal/R$styleable;->TextView_drawableRight:I
+Lcom/android/internal/R$styleable;->TextView_drawableStart:I
 Lcom/android/internal/R$styleable;->TextView_drawableTop:I
+Lcom/android/internal/R$styleable;->TextView_editable:I
+Lcom/android/internal/R$styleable;->TextView_editorExtras:I
+Lcom/android/internal/R$styleable;->TextView_ellipsize:I
+Lcom/android/internal/R$styleable;->TextView_ems:I
+Lcom/android/internal/R$styleable;->TextView_enabled:I
+Lcom/android/internal/R$styleable;->TextView_freezesText:I
+Lcom/android/internal/R$styleable;->TextView_gravity:I
+Lcom/android/internal/R$styleable;->TextView_height:I
+Lcom/android/internal/R$styleable;->TextView_hint:I
+Lcom/android/internal/R$styleable;->TextView_imeActionId:I
+Lcom/android/internal/R$styleable;->TextView_imeActionLabel:I
+Lcom/android/internal/R$styleable;->TextView_imeOptions:I
+Lcom/android/internal/R$styleable;->TextView_includeFontPadding:I
+Lcom/android/internal/R$styleable;->TextView_inputMethod:I
+Lcom/android/internal/R$styleable;->TextView_inputType:I
+Lcom/android/internal/R$styleable;->TextView_lines:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingExtra:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingMultiplier:I
+Lcom/android/internal/R$styleable;->TextView_linksClickable:I
+Lcom/android/internal/R$styleable;->TextView_marqueeRepeatLimit:I
+Lcom/android/internal/R$styleable;->TextView_maxEms:I
+Lcom/android/internal/R$styleable;->TextView_maxHeight:I
+Lcom/android/internal/R$styleable;->TextView_maxLength:I
 Lcom/android/internal/R$styleable;->TextView_maxLines:I
+Lcom/android/internal/R$styleable;->TextView_maxWidth:I
+Lcom/android/internal/R$styleable;->TextView_minEms:I
+Lcom/android/internal/R$styleable;->TextView_minHeight:I
+Lcom/android/internal/R$styleable;->TextView_minLines:I
+Lcom/android/internal/R$styleable;->TextView_minWidth:I
+Lcom/android/internal/R$styleable;->TextView_numeric:I
+Lcom/android/internal/R$styleable;->TextView_password:I
+Lcom/android/internal/R$styleable;->TextView_phoneNumber:I
+Lcom/android/internal/R$styleable;->TextView_privateImeOptions:I
+Lcom/android/internal/R$styleable;->TextView_scrollHorizontally:I
+Lcom/android/internal/R$styleable;->TextView_selectAllOnFocus:I
+Lcom/android/internal/R$styleable;->TextView_shadowColor:I
+Lcom/android/internal/R$styleable;->TextView_shadowDx:I
+Lcom/android/internal/R$styleable;->TextView_shadowDy:I
+Lcom/android/internal/R$styleable;->TextView_shadowRadius:I
+Lcom/android/internal/R$styleable;->TextView_singleLine:I
+Lcom/android/internal/R$styleable;->TextView_text:I
+Lcom/android/internal/R$styleable;->TextView_textAllCaps:I
 Lcom/android/internal/R$styleable;->TextView_textAppearance:I
 Lcom/android/internal/R$styleable;->TextView_textColor:I
+Lcom/android/internal/R$styleable;->TextView_textColorHighlight:I
 Lcom/android/internal/R$styleable;->TextView_textColorHint:I
+Lcom/android/internal/R$styleable;->TextView_textColorLink:I
+Lcom/android/internal/R$styleable;->TextView_textCursorDrawable:I
+Lcom/android/internal/R$styleable;->TextView_textEditSuggestionItemLayout:I
+Lcom/android/internal/R$styleable;->TextView_textIsSelectable:I
+Lcom/android/internal/R$styleable;->TextView_textScaleX:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandle:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleLeft:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleRight:I
+Lcom/android/internal/R$styleable;->TextView_textSize:I
+Lcom/android/internal/R$styleable;->TextView_textStyle:I
+Lcom/android/internal/R$styleable;->TextView_typeface:I
+Lcom/android/internal/R$styleable;->TextView_width:I
 Lcom/android/internal/R$styleable;->Theme:[I
 Lcom/android/internal/R$styleable;->View:[I
 Lcom/android/internal/R$styleable;->ViewAnimator:[I
@@ -7162,7 +7745,10 @@
 Lcom/android/internal/R$styleable;->ViewStub_inflatedId:I
 Lcom/android/internal/R$styleable;->ViewStub_layout:I
 Lcom/android/internal/R$styleable;->View_background:I
+Lcom/android/internal/R$styleable;->View_clickable:I
+Lcom/android/internal/R$styleable;->View_focusable:I
 Lcom/android/internal/R$styleable;->View_id:I
+Lcom/android/internal/R$styleable;->View_longClickable:I
 Lcom/android/internal/R$styleable;->WallpaperPreviewInfo:[I
 Lcom/android/internal/R$styleable;->Window:[I
 Lcom/android/internal/R$styleable;->WindowAnimation:[I
@@ -7250,8 +7836,11 @@
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->endCall()Z
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->endCallForSubscriber(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
+Lcom/android/internal/telephony/ITelephony$Stub;->DESCRIPTOR:Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_answerRingingCall:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_call:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_endCall:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDeviceId:I
@@ -7288,12 +7877,24 @@
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;-><init>()V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
 Lcom/android/internal/telephony/ITelephonyRegistry;->listen(Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallForwardingChanged(Z)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallState(ILjava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellInfo(Ljava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellLocation(Landroid/os/Bundle;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataActivity(I)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataConnectionFailed(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyOtaspChanged(I)V
 Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IWapPushManager;
 Lcom/android/internal/telephony/IWapPushManager;->addPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
 Lcom/android/internal/telephony/IWapPushManager;->deletePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 Lcom/android/internal/telephony/IWapPushManager;->updatePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
 Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/OperatorInfo$State;)V
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaLong:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaShort:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorNumeric:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mState:Lcom/android/internal/telephony/OperatorInfo$State;
+Lcom/android/internal/telephony/OperatorInfo;->rilStateToState(Ljava/lang/String;)Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/SmsAddress;->origBytes:[B
 Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_0:Lcom/android/internal/telephony/SmsConstants$MessageClass;
 Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_1:Lcom/android/internal/telephony/SmsConstants$MessageClass;
@@ -7324,6 +7925,7 @@
 Lcom/android/internal/telephony/SmsMessageBase;->getProtocolIdentifier()I
 Lcom/android/internal/telephony/SmsMessageBase;->getPseudoSubject()Ljava/lang/String;
 Lcom/android/internal/telephony/SmsMessageBase;->getServiceCenterAddress()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getStatus()I
 Lcom/android/internal/telephony/SmsMessageBase;->getTimestampMillis()J
 Lcom/android/internal/telephony/SmsMessageBase;->getUserData()[B
 Lcom/android/internal/telephony/SmsMessageBase;->getUserDataHeader()Lcom/android/internal/telephony/SmsHeader;
@@ -7388,9 +7990,11 @@
 Lcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
 Lcom/android/internal/view/InputBindResult;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/view/InputBindResult;->method:Lcom/android/internal/view/IInputMethodSession;
+Lcom/android/internal/view/menu/ActionMenuItemView;->hasText()Z
 Lcom/android/internal/view/menu/MenuBuilder$Callback;->onMenuItemSelected(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)Z
 Lcom/android/internal/view/menu/MenuBuilder$Callback;->onMenuModeChange(Lcom/android/internal/view/menu/MenuBuilder;)V
 Lcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;)V
 Lcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;Landroid/content/Context;)V
 Lcom/android/internal/view/menu/MenuBuilder;->collapseItemActionView(Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Lcom/android/internal/view/menu/MenuBuilder;->getContext()Landroid/content/Context;
@@ -7398,9 +8002,13 @@
 Lcom/android/internal/view/menu/MenuBuilder;->getRootMenu()Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList;
 Lcom/android/internal/view/menu/MenuBuilder;->mContext:Landroid/content/Context;
+Lcom/android/internal/view/menu/MenuBuilder;->removeMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;)V
 Lcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
 Lcom/android/internal/view/menu/MenuBuilder;->setCurrentMenuInfo(Landroid/view/ContextMenu$ContextMenuInfo;)V
+Lcom/android/internal/view/menu/MenuBuilder;->setDefaultShowAsAction(I)Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/MenuBuilder;->setOptionalIconsVisible(Z)V
+Lcom/android/internal/view/menu/MenuBuilder;->startDispatchingItemsChanged()V
+Lcom/android/internal/view/menu/MenuBuilder;->stopDispatchingItemsChanged()V
 Lcom/android/internal/view/menu/MenuItemImpl;->invoke()Z
 Lcom/android/internal/view/menu/MenuItemImpl;->isActionButton()Z
 Lcom/android/internal/view/menu/MenuItemImpl;->mIconResId:I
@@ -7408,6 +8016,7 @@
 Lcom/android/internal/view/menu/MenuItemImpl;->requiresActionButton()Z
 Lcom/android/internal/view/menu/MenuItemImpl;->setActionViewExpanded(Z)V
 Lcom/android/internal/view/menu/MenuItemImpl;->setMenuInfo(Landroid/view/ContextMenu$ContextMenuInfo;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
 Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;)V
 Lcom/android/internal/view/menu/MenuPopupHelper;->dismiss()V
 Lcom/android/internal/view/menu/MenuPopupHelper;->mForceShowIcon:Z
@@ -7420,6 +8029,7 @@
 Lcom/android/internal/view/menu/MenuView;->getWindowAnimations()I
 Lcom/android/internal/view/menu/SubMenuBuilder;->getRootMenu()Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/SubMenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Lcom/android/internal/widget/CachingIconView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
 Lcom/android/internal/widget/ILockSettings;->getBoolean(Ljava/lang/String;ZI)Z
 Lcom/android/internal/widget/ILockSettings;->getLong(Ljava/lang/String;JI)J
@@ -7438,8 +8048,18 @@
 Lcom/android/internal/widget/IRemoteViewsFactory;->hasStableIds()Z
 Lcom/android/internal/widget/IRemoteViewsFactory;->isCreated()Z
 Lcom/android/internal/widget/IRemoteViewsFactory;->onDataSetChanged()V
+Lcom/android/internal/widget/ScrollingTabContainerView;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->addTab(Landroid/app/ActionBar$Tab;IZ)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->addTab(Landroid/app/ActionBar$Tab;Z)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->animateToTab(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->animateToVisibility(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->removeAllTabs()V
+Lcom/android/internal/widget/ScrollingTabContainerView;->removeTabAt(I)V
 Lcom/android/internal/widget/ScrollingTabContainerView;->setAllowCollapse(Z)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->setTabSelected(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->updateTab(I)V
 Lcom/android/okhttp/Connection;->getSocket()Ljava/net/Socket;
+Lcom/android/okhttp/ConnectionPool;->connections:Ljava/util/Deque;
 Lcom/android/okhttp/ConnectionPool;->keepAliveDurationNs:J
 Lcom/android/okhttp/ConnectionPool;->maxIdleConnections:I
 Lcom/android/okhttp/ConnectionPool;->systemDefault:Lcom/android/okhttp/ConnectionPool;
@@ -7531,6 +8151,7 @@
 Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificateChain(Ljava/security/cert/X509Certificate;)Ljava/util/List;
 Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;)V
 Lcom/android/org/conscrypt/TrustManagerImpl;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Ldalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V
 Ldalvik/system/BaseDexClassLoader;->addDexPath(Ljava/lang/String;)V
 Ldalvik/system/BaseDexClassLoader;->addDexPath(Ljava/lang/String;Z)V
 Ldalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String;
@@ -7539,15 +8160,19 @@
 Ldalvik/system/BlockGuard$Policy;->onNetwork()V
 Ldalvik/system/BlockGuard$Policy;->onReadFromDisk()V
 Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;
+Ldalvik/system/BlockGuard;->LAX_POLICY:Ldalvik/system/BlockGuard$Policy;
 Ldalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V
 Ldalvik/system/CloseGuard;->close()V
 Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard;
 Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V
+Ldalvik/system/CloseGuard;->setEnabled(Z)V
+Ldalvik/system/CloseGuard;->setReporter(Ldalvik/system/CloseGuard$Reporter;)V
 Ldalvik/system/CloseGuard;->warnIfOpen()V
 Ldalvik/system/DexFile$DFEnum;->mNameList:[Ljava/lang/String;
 Ldalvik/system/DexFile;->getClassNameList(Ljava/lang/Object;)[Ljava/lang/String;
 Ldalvik/system/DexFile;->isBackedByOatFile()Z
 Ldalvik/system/DexFile;->loadClassBinaryName(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
+Ldalvik/system/DexFile;->loadDex(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
 Ldalvik/system/DexFile;->mCookie:Ljava/lang/Object;
 Ldalvik/system/DexFile;->mFileName:Ljava/lang/String;
 Ldalvik/system/DexFile;->mInternalCookie:Ljava/lang/Object;
@@ -7556,12 +8181,15 @@
 Ldalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;Ljava/io/File;)V
 Ldalvik/system/DexPathList$Element;-><init>(Ljava/io/File;ZLjava/io/File;Ldalvik/system/DexFile;)V
 Ldalvik/system/DexPathList$Element;->dexFile:Ldalvik/system/DexFile;
+Ldalvik/system/DexPathList$Element;->path:Ljava/io/File;
 Ldalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;)V
 Ldalvik/system/DexPathList$NativeLibraryElement;->path:Ljava/io/File;
 Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)V
 Ldalvik/system/DexPathList;->addDexPath(Ljava/lang/String;Ljava/io/File;)V
+Ldalvik/system/DexPathList;->addNativePath(Ljava/util/Collection;)V
 Ldalvik/system/DexPathList;->definingContext:Ljava/lang/ClassLoader;
 Ldalvik/system/DexPathList;->dexElements:[Ldalvik/system/DexPathList$Element;
+Ldalvik/system/DexPathList;->dexElementsSuppressedExceptions:[Ljava/io/IOException;
 Ldalvik/system/DexPathList;->loadDexFile(Ljava/io/File;Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
 Ldalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;)[Ldalvik/system/DexPathList$Element;
 Ldalvik/system/DexPathList;->makeInMemoryDexElements([Ljava/nio/ByteBuffer;Ljava/util/List;)[Ldalvik/system/DexPathList$Element;
@@ -7616,6 +8244,33 @@
 Ljava/io/FileInputStream;->fd:Ljava/io/FileDescriptor;
 Ljava/io/FileOutputStream;->channel:Ljava/nio/channels/FileChannel;
 Ljava/io/FileOutputStream;->fd:Ljava/io/FileDescriptor;
+Ljava/io/FileSystem;->canonicalize(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->checkAccess(Ljava/io/File;I)Z
+Ljava/io/FileSystem;->compare(Ljava/io/File;Ljava/io/File;)I
+Ljava/io/FileSystem;->createDirectory(Ljava/io/File;)Z
+Ljava/io/FileSystem;->createFileExclusively(Ljava/lang/String;)Z
+Ljava/io/FileSystem;->delete(Ljava/io/File;)Z
+Ljava/io/FileSystem;->fromURIPath(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->getBooleanAttributes(Ljava/io/File;)I
+Ljava/io/FileSystem;->getDefaultParent()Ljava/lang/String;
+Ljava/io/FileSystem;->getLastModifiedTime(Ljava/io/File;)J
+Ljava/io/FileSystem;->getLength(Ljava/io/File;)J
+Ljava/io/FileSystem;->getPathSeparator()C
+Ljava/io/FileSystem;->getSeparator()C
+Ljava/io/FileSystem;->getSpace(Ljava/io/File;I)J
+Ljava/io/FileSystem;->hashCode(Ljava/io/File;)I
+Ljava/io/FileSystem;->isAbsolute(Ljava/io/File;)Z
+Ljava/io/FileSystem;->list(Ljava/io/File;)[Ljava/lang/String;
+Ljava/io/FileSystem;->listRoots()[Ljava/io/File;
+Ljava/io/FileSystem;->normalize(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->prefixLength(Ljava/lang/String;)I
+Ljava/io/FileSystem;->rename(Ljava/io/File;Ljava/io/File;)Z
+Ljava/io/FileSystem;->resolve(Ljava/io/File;)Ljava/lang/String;
+Ljava/io/FileSystem;->resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->setLastModifiedTime(Ljava/io/File;J)Z
+Ljava/io/FileSystem;->setPermission(Ljava/io/File;IZZ)Z
+Ljava/io/FileSystem;->setReadOnly(Ljava/io/File;)Z
+Ljava/io/ObjectInputStream;->bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
 Ljava/io/ObjectInputStream;->bytesToDoubles([BI[DII)V
 Ljava/io/ObjectInputStream;->bytesToFloats([BI[FII)V
 Ljava/io/ObjectOutputStream;->protocol:I
@@ -7638,8 +8293,10 @@
 Ljava/lang/Byte;->toHexString(BZ)Ljava/lang/String;
 Ljava/lang/Byte;->value:B
 Ljava/lang/Character;->value:C
+Ljava/lang/Class;-><init>()V
 Ljava/lang/Class;->accessFlags:I
 Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;
+Ljava/lang/Class;->clinitThreadId:I
 Ljava/lang/Class;->dexCache:Ljava/lang/Object;
 Ljava/lang/Class;->dexClassDefIndex:I
 Ljava/lang/Class;->getDeclaredMethodsUnchecked(Z)[Ljava/lang/reflect/Method;
@@ -7647,6 +8304,7 @@
 Ljava/lang/Class;->ifTable:[Ljava/lang/Object;
 Ljava/lang/Class;->name:Ljava/lang/String;
 Ljava/lang/Class;->objectSize:I
+Ljava/lang/Class;->status:I
 Ljava/lang/ClassLoader;->parent:Ljava/lang/ClassLoader;
 Ljava/lang/Daemons$Daemon;->isRunning()Z
 Ljava/lang/Daemons$Daemon;->start()V
@@ -7661,6 +8319,9 @@
 Ljava/lang/Daemons;->start()V
 Ljava/lang/Daemons;->stop()V
 Ljava/lang/Double;->value:D
+Ljava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;
+Ljava/lang/Enum;->name:Ljava/lang/String;
+Ljava/lang/Enum;->ordinal:I
 Ljava/lang/Float;->value:F
 Ljava/lang/Integer;->value:I
 Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V
@@ -7675,6 +8336,7 @@
 Ljava/lang/ref/Reference;->referent:Ljava/lang/Object;
 Ljava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V
 Ljava/lang/reflect/AccessibleObject;->override:Z
+Ljava/lang/reflect/Constructor;->serializationCopy(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
 Ljava/lang/reflect/Executable;->artMethod:J
 Ljava/lang/reflect/Field;->accessFlags:I
 Ljava/lang/reflect/Field;->getOffset()I
@@ -7682,6 +8344,7 @@
 Ljava/lang/reflect/Proxy;->invoke(Ljava/lang/reflect/Proxy;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/lang/Runtime;->load(Ljava/lang/String;Ljava/lang/ClassLoader;)V
 Ljava/lang/Runtime;->loadLibrary(Ljava/lang/String;Ljava/lang/ClassLoader;)V
+Ljava/lang/Runtime;->loadLibrary0(Ljava/lang/ClassLoader;Ljava/lang/String;)V
 Ljava/lang/Runtime;->mLibPaths:[Ljava/lang/String;
 Ljava/lang/Runtime;->nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/String;
 Ljava/lang/Short;->value:S
@@ -7692,6 +8355,7 @@
 Ljava/lang/String;-><init>(II[C)V
 Ljava/lang/String;->count:I
 Ljava/lang/String;->getCharsNoCheck(II[CI)V
+Ljava/lang/String;->hash:I
 Ljava/lang/String;->indexOf([CII[CIII)I
 Ljava/lang/String;->lastIndexOf([CII[CIII)I
 Ljava/lang/System;-><init>()V
@@ -7718,6 +8382,7 @@
 Ljava/lang/Thread;->nativePeer:J
 Ljava/lang/Thread;->parkBlocker:Ljava/lang/Object;
 Ljava/lang/Thread;->priority:I
+Ljava/lang/Thread;->target:Ljava/lang/Runnable;
 Ljava/lang/Thread;->threadLocals:Ljava/lang/ThreadLocal$ThreadLocalMap;
 Ljava/lang/Thread;->threadSeqNumber:J
 Ljava/lang/ThreadGroup;->add(Ljava/lang/Thread;)V
@@ -7732,6 +8397,7 @@
 Ljava/lang/Throwable;->backtrace:Ljava/lang/Object;
 Ljava/lang/Throwable;->cause:Ljava/lang/Throwable;
 Ljava/lang/Throwable;->detailMessage:Ljava/lang/String;
+Ljava/lang/Throwable;->getOurStackTrace()[Ljava/lang/StackTraceElement;
 Ljava/lang/Throwable;->nativeFillInStackTrace()Ljava/lang/Object;
 Ljava/lang/Throwable;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V
 Ljava/lang/Throwable;->stackTrace:[Ljava/lang/StackTraceElement;
@@ -7774,6 +8440,9 @@
 Ljava/net/InetAddress;->isNumeric(Ljava/lang/String;)Z
 Ljava/net/InetAddress;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
 Ljava/net/InetSocketAddress;->holder:Ljava/net/InetSocketAddress$InetSocketAddressHolder;
+Ljava/net/InterfaceAddress;-><init>()V
+Ljava/net/Proxy;-><init>()V
+Ljava/net/ServerSocket;->factory:Ljava/net/SocketImplFactory;
 Ljava/net/Socket;->factory:Ljava/net/SocketImplFactory;
 Ljava/net/Socket;->getFileDescriptor$()Ljava/io/FileDescriptor;
 Ljava/net/Socket;->impl:Ljava/net/SocketImpl;
@@ -7831,11 +8500,12 @@
 Ljava/util/ArrayList;->elementData:[Ljava/lang/Object;
 Ljava/util/ArrayList;->size:I
 Ljava/util/Arrays$ArrayList;->a:[Ljava/lang/Object;
-Ljava/util/Arrays;->checkOffsetAndCount(III)V
 Ljava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V
 Ljava/util/Calendar;->zone:Ljava/util/TimeZone;
 Ljava/util/Collections$EmptyList;-><init>()V
+Ljava/util/Collections$EmptyMap;-><init>()V
 Ljava/util/Collections$SynchronizedCollection;->c:Ljava/util/Collection;
+Ljava/util/Collections$SynchronizedList;->list:Ljava/util/List;
 Ljava/util/Collections$SynchronizedMap;->m:Ljava/util/Map;
 Ljava/util/Collections$UnmodifiableCollection;->c:Ljava/util/Collection;
 Ljava/util/Collections$UnmodifiableMap;->m:Ljava/util/Map;
@@ -7855,8 +8525,11 @@
 Ljava/util/concurrent/LinkedBlockingQueue;->putLock:Ljava/util/concurrent/locks/ReentrantLock;
 Ljava/util/concurrent/LinkedBlockingQueue;->takeLock:Ljava/util/concurrent/locks/ReentrantLock;
 Ljava/util/concurrent/locks/ReentrantLock;->sync:Ljava/util/concurrent/locks/ReentrantLock$Sync;
+Ljava/util/concurrent/PriorityBlockingQueue;->dequeue()Ljava/lang/Object;
 Ljava/util/concurrent/PriorityBlockingQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/PriorityBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
 Ljava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut:Z
+Ljava/util/concurrent/ThreadPoolExecutor;->ctl:Ljava/util/concurrent/atomic/AtomicInteger;
 Ljava/util/concurrent/ThreadPoolExecutor;->defaultHandler:Ljava/util/concurrent/RejectedExecutionHandler;
 Ljava/util/concurrent/ThreadPoolExecutor;->mainLock:Ljava/util/concurrent/locks/ReentrantLock;
 Ljava/util/EnumMap;->keyType:Ljava/lang/Class;
@@ -7907,6 +8580,46 @@
 Ljava/util/zip/Inflater;->len:I
 Ljava/util/zip/Inflater;->needDict:Z
 Ljava/util/zip/Inflater;->off:I
+Ljava/util/zip/ZipConstants;->CENATT:I
+Ljava/util/zip/ZipConstants;->CENATX:I
+Ljava/util/zip/ZipConstants;->CENCOM:I
+Ljava/util/zip/ZipConstants;->CENCRC:I
+Ljava/util/zip/ZipConstants;->CENDSK:I
+Ljava/util/zip/ZipConstants;->CENEXT:I
+Ljava/util/zip/ZipConstants;->CENFLG:I
+Ljava/util/zip/ZipConstants;->CENHDR:I
+Ljava/util/zip/ZipConstants;->CENHOW:I
+Ljava/util/zip/ZipConstants;->CENLEN:I
+Ljava/util/zip/ZipConstants;->CENNAM:I
+Ljava/util/zip/ZipConstants;->CENOFF:I
+Ljava/util/zip/ZipConstants;->CENSIG:J
+Ljava/util/zip/ZipConstants;->CENSIZ:I
+Ljava/util/zip/ZipConstants;->CENTIM:I
+Ljava/util/zip/ZipConstants;->CENVEM:I
+Ljava/util/zip/ZipConstants;->CENVER:I
+Ljava/util/zip/ZipConstants;->ENDCOM:I
+Ljava/util/zip/ZipConstants;->ENDHDR:I
+Ljava/util/zip/ZipConstants;->ENDOFF:I
+Ljava/util/zip/ZipConstants;->ENDSIG:J
+Ljava/util/zip/ZipConstants;->ENDSIZ:I
+Ljava/util/zip/ZipConstants;->ENDSUB:I
+Ljava/util/zip/ZipConstants;->ENDTOT:I
+Ljava/util/zip/ZipConstants;->EXTCRC:I
+Ljava/util/zip/ZipConstants;->EXTHDR:I
+Ljava/util/zip/ZipConstants;->EXTLEN:I
+Ljava/util/zip/ZipConstants;->EXTSIG:J
+Ljava/util/zip/ZipConstants;->EXTSIZ:I
+Ljava/util/zip/ZipConstants;->LOCCRC:I
+Ljava/util/zip/ZipConstants;->LOCEXT:I
+Ljava/util/zip/ZipConstants;->LOCFLG:I
+Ljava/util/zip/ZipConstants;->LOCHDR:I
+Ljava/util/zip/ZipConstants;->LOCHOW:I
+Ljava/util/zip/ZipConstants;->LOCLEN:I
+Ljava/util/zip/ZipConstants;->LOCNAM:I
+Ljava/util/zip/ZipConstants;->LOCSIG:J
+Ljava/util/zip/ZipConstants;->LOCSIZ:I
+Ljava/util/zip/ZipConstants;->LOCTIM:I
+Ljava/util/zip/ZipConstants;->LOCVER:I
 Ljava/util/zip/ZipEntry;-><init>(Ljava/lang/String;Ljava/lang/String;JJJII[BJ)V
 Ljava/util/zip/ZipEntry;->method:I
 Ljava/util/zip/ZipFile;->close(J)V
@@ -7915,6 +8628,7 @@
 Ljava/util/zip/ZipInputStream;->flag:I
 Ljava/util/zip/ZipInputStream;->tmpbuf:[B
 Ljava/util/zip/ZipOutputStream;->method:I
+Ljava/util/zip/ZipOutputStream;->names:Ljava/util/HashSet;
 Ljava/util/zip/ZipOutputStream;->written:J
 Ljavax/microedition/khronos/egl/EGL10;->eglReleaseThread()Z
 Ljavax/net/ssl/SSLServerSocketFactory;->defaultServerSocketFactory:Ljavax/net/ssl/SSLServerSocketFactory;
@@ -7922,19 +8636,105 @@
 Ljavax/net/ssl/SSLSocketFactory;->defaultSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
 Llibcore/util/BasicLruCache;->map:Ljava/util/LinkedHashMap;
 Llibcore/util/ZoneInfo;->mTransitions:[J
+Lorg/apache/http/conn/ssl/AbstractVerifier;->BAD_COUNTRY_2LDS:[Ljava/lang/String;
 Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>()V
 Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljavax/net/ssl/SSLSocketFactory;)V
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->createKeyManagers(Ljava/security/KeyStore;Ljava/lang/String;)[Ljavax/net/ssl/KeyManager;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->createTrustManagers(Ljava/security/KeyStore;)[Ljavax/net/ssl/TrustManager;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->hostnameVerifier:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->nameResolver:Lorg/apache/http/conn/scheme/HostNameResolver;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->socketfactory:Ljavax/net/ssl/SSLSocketFactory;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->sslcontext:Ljavax/net/ssl/SSLContext;
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->data:[Ljava/lang/String;
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->length:I
 Lorg/json/JSONArray;->values:Ljava/util/List;
+Lorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
 Lorg/json/JSONObject;->append(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
+Lorg/json/JSONObject;->checkName(Ljava/lang/String;)Ljava/lang/String;
 Lorg/json/JSONObject;->keySet()Ljava/util/Set;
 Lorg/json/JSONObject;->nameValuePairs:Ljava/util/LinkedHashMap;
+Lorg/json/JSONObject;->NEGATIVE_ZERO:Ljava/lang/Double;
 Lorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V
+Lorg/json/JSONStringer;-><init>(I)V
+Lorg/json/JSONStringer;->beforeKey()V
+Lorg/json/JSONStringer;->beforeValue()V
+Lorg/json/JSONStringer;->close(Lorg/json/JSONStringer$Scope;Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
+Lorg/json/JSONStringer;->indent:Ljava/lang/String;
+Lorg/json/JSONStringer;->newline()V
+Lorg/json/JSONStringer;->open(Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
+Lorg/json/JSONStringer;->out:Ljava/lang/StringBuilder;
+Lorg/json/JSONStringer;->peek()Lorg/json/JSONStringer$Scope;
+Lorg/json/JSONStringer;->replaceTop(Lorg/json/JSONStringer$Scope;)V
+Lorg/json/JSONStringer;->stack:Ljava/util/List;
+Lorg/json/JSONStringer;->string(Ljava/lang/String;)V
+Lorg/json/JSONTokener;->in:Ljava/lang/String;
+Lorg/json/JSONTokener;->nextCleanInternal()I
+Lorg/json/JSONTokener;->nextToInternal(Ljava/lang/String;)Ljava/lang/String;
+Lorg/json/JSONTokener;->pos:I
+Lorg/json/JSONTokener;->readArray()Lorg/json/JSONArray;
+Lorg/json/JSONTokener;->readEscapeCharacter()C
+Lorg/json/JSONTokener;->readLiteral()Ljava/lang/Object;
+Lorg/json/JSONTokener;->readObject()Lorg/json/JSONObject;
+Lorg/json/JSONTokener;->skipToEndOfLine()V
 Lorg/w3c/dom/ls/LSSerializerFilter;->getWhatToShow()I
 Lorg/w3c/dom/traversal/NodeFilter;->acceptNode(Lorg/w3c/dom/Node;)S
 Lorg/w3c/dom/traversal/NodeIterator;->detach()V
 Lorg/w3c/dom/traversal/NodeIterator;->nextNode()Lorg/w3c/dom/Node;
+Lorg/xml/sax/helpers/AttributesImpl;->badIndex(I)V
+Lorg/xml/sax/helpers/AttributesImpl;->data:[Ljava/lang/String;
+Lorg/xml/sax/helpers/AttributesImpl;->ensureCapacity(I)V
+Lorg/xml/sax/helpers/AttributesImpl;->length:I
+Lorg/xml/sax/helpers/LocatorImpl;->columnNumber:I
+Lorg/xml/sax/helpers/LocatorImpl;->lineNumber:I
+Lorg/xml/sax/helpers/LocatorImpl;->publicId:Ljava/lang/String;
+Lorg/xml/sax/helpers/LocatorImpl;->systemId:Ljava/lang/String;
+Lorg/xml/sax/helpers/NamespaceSupport;->contextPos:I
+Lorg/xml/sax/helpers/NamespaceSupport;->contexts:[Lorg/xml/sax/helpers/NamespaceSupport$Context;
+Lorg/xml/sax/helpers/NamespaceSupport;->currentContext:Lorg/xml/sax/helpers/NamespaceSupport$Context;
+Lorg/xml/sax/helpers/NamespaceSupport;->EMPTY_ENUMERATION:Ljava/util/Enumeration;
+Lorg/xml/sax/helpers/ParserAdapter;->attAdapter:Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;
+Lorg/xml/sax/helpers/ParserAdapter;->atts:Lorg/xml/sax/helpers/AttributesImpl;
+Lorg/xml/sax/helpers/ParserAdapter;->checkNotParsing(Ljava/lang/String;Ljava/lang/String;)V
+Lorg/xml/sax/helpers/ParserAdapter;->contentHandler:Lorg/xml/sax/ContentHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->dtdHandler:Lorg/xml/sax/DTDHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->entityResolver:Lorg/xml/sax/EntityResolver;
+Lorg/xml/sax/helpers/ParserAdapter;->errorHandler:Lorg/xml/sax/ErrorHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->locator:Lorg/xml/sax/Locator;
+Lorg/xml/sax/helpers/ParserAdapter;->makeException(Ljava/lang/String;)Lorg/xml/sax/SAXParseException;
+Lorg/xml/sax/helpers/ParserAdapter;->nameParts:[Ljava/lang/String;
+Lorg/xml/sax/helpers/ParserAdapter;->namespaces:Z
+Lorg/xml/sax/helpers/ParserAdapter;->nsSupport:Lorg/xml/sax/helpers/NamespaceSupport;
+Lorg/xml/sax/helpers/ParserAdapter;->parser:Lorg/xml/sax/Parser;
+Lorg/xml/sax/helpers/ParserAdapter;->parsing:Z
+Lorg/xml/sax/helpers/ParserAdapter;->prefixes:Z
+Lorg/xml/sax/helpers/ParserAdapter;->processName(Ljava/lang/String;ZZ)[Ljava/lang/String;
+Lorg/xml/sax/helpers/ParserAdapter;->reportError(Ljava/lang/String;)V
+Lorg/xml/sax/helpers/ParserAdapter;->setup(Lorg/xml/sax/Parser;)V
+Lorg/xml/sax/helpers/ParserAdapter;->setupParser()V
+Lorg/xml/sax/helpers/XMLFilterImpl;->contentHandler:Lorg/xml/sax/ContentHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->dtdHandler:Lorg/xml/sax/DTDHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->entityResolver:Lorg/xml/sax/EntityResolver;
+Lorg/xml/sax/helpers/XMLFilterImpl;->errorHandler:Lorg/xml/sax/ErrorHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->locator:Lorg/xml/sax/Locator;
+Lorg/xml/sax/helpers/XMLFilterImpl;->parent:Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/helpers/XMLFilterImpl;->setupParse()V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->documentHandler:Lorg/xml/sax/DocumentHandler;
+Lorg/xml/sax/helpers/XMLReaderAdapter;->qAtts:Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;
+Lorg/xml/sax/helpers/XMLReaderAdapter;->setup(Lorg/xml/sax/XMLReader;)V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->setupXMLReader()V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->xmlReader:Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/helpers/XMLReaderFactory;->loadClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/InputSource;->byteStream:Ljava/io/InputStream;
+Lorg/xml/sax/InputSource;->characterStream:Ljava/io/Reader;
+Lorg/xml/sax/InputSource;->encoding:Ljava/lang/String;
+Lorg/xml/sax/InputSource;->publicId:Ljava/lang/String;
+Lorg/xml/sax/InputSource;->systemId:Ljava/lang/String;
+Lorg/xml/sax/SAXException;->exception:Ljava/lang/Exception;
+Lorg/xml/sax/SAXParseException;->columnNumber:I
+Lorg/xml/sax/SAXParseException;->init(Ljava/lang/String;Ljava/lang/String;II)V
+Lorg/xml/sax/SAXParseException;->lineNumber:I
+Lorg/xml/sax/SAXParseException;->publicId:Ljava/lang/String;
+Lorg/xml/sax/SAXParseException;->systemId:Ljava/lang/String;
 Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe;
 Lsun/misc/Unsafe;->THE_ONE:Lsun/misc/Unsafe;
 Lsun/misc/URLClassPath$JarLoader;->getJarFile()Ljava/util/jar/JarFile;
diff --git a/config/hiddenapi-p-light-greylist.txt b/config/hiddenapi-p-light-greylist.txt
index 2048e5d..789d512 100644
--- a/config/hiddenapi-p-light-greylist.txt
+++ b/config/hiddenapi-p-light-greylist.txt
@@ -1,204 +1,36 @@
-Landroid/R$styleable;->ActionBar:[I
-Landroid/R$styleable;->ActionBar_background:I
-Landroid/R$styleable;->ActionBar_backgroundSplit:I
-Landroid/R$styleable;->ActionBar_backgroundStacked:I
-Landroid/R$styleable;->ActionBar_divider:I
-Landroid/R$styleable;->ActionBar_itemPadding:I
-Landroid/R$styleable;->CalendarView:[I
-Landroid/R$styleable;->CalendarView_dateTextAppearance:I
-Landroid/R$styleable;->CalendarView_firstDayOfWeek:I
-Landroid/R$styleable;->CalendarView_focusedMonthDateColor:I
-Landroid/R$styleable;->CalendarView_selectedDateVerticalBar:I
-Landroid/R$styleable;->CalendarView_selectedWeekBackgroundColor:I
-Landroid/R$styleable;->CalendarView_showWeekNumber:I
-Landroid/R$styleable;->CalendarView_shownWeekCount:I
-Landroid/R$styleable;->CalendarView_unfocusedMonthDateColor:I
-Landroid/R$styleable;->CalendarView_weekDayTextAppearance:I
-Landroid/R$styleable;->CalendarView_weekNumberColor:I
-Landroid/R$styleable;->CalendarView_weekSeparatorLineColor:I
-Landroid/R$styleable;->CheckBoxPreference:[I
-Landroid/R$styleable;->CheckedTextView:[I
-Landroid/R$styleable;->CheckedTextView_checkMark:I
-Landroid/R$styleable;->CompoundButton:[I
-Landroid/R$styleable;->CompoundButton_button:I
-Landroid/R$styleable;->DrawableStates:[I
-Landroid/R$styleable;->ImageView:[I
-Landroid/R$styleable;->ImageView_adjustViewBounds:I
-Landroid/R$styleable;->ImageView_baselineAlignBottom:I
-Landroid/R$styleable;->ImageView_cropToPadding:I
-Landroid/R$styleable;->ImageView_maxHeight:I
-Landroid/R$styleable;->ImageView_maxWidth:I
-Landroid/R$styleable;->ImageView_scaleType:I
-Landroid/R$styleable;->ImageView_src:I
-Landroid/R$styleable;->ImageView_tint:I
-Landroid/R$styleable;->LinearLayout:[I
-Landroid/R$styleable;->LinearLayout_divider:I
-Landroid/R$styleable;->LinearLayout_dividerPadding:I
-Landroid/R$styleable;->LinearLayout_showDividers:I
-Landroid/R$styleable;->ListView:[I
-Landroid/R$styleable;->ListView_divider:I
-Landroid/R$styleable;->ListView_dividerHeight:I
-Landroid/R$styleable;->ProgressBar:[I
-Landroid/R$styleable;->ProgressBar_indeterminateDrawable:I
-Landroid/R$styleable;->ProgressBar_indeterminateDuration:I
-Landroid/R$styleable;->ProgressBar_maxHeight:I
-Landroid/R$styleable;->ProgressBar_maxWidth:I
-Landroid/R$styleable;->ProgressBar_minHeight:I
-Landroid/R$styleable;->ProgressBar_minWidth:I
-Landroid/R$styleable;->ProgressBar_progressDrawable:I
-Landroid/R$styleable;->SeekBar:[I
-Landroid/R$styleable;->SeekBar_thumb:I
-Landroid/R$styleable;->SeekBar_thumbOffset:I
-Landroid/R$styleable;->Switch:[I
-Landroid/R$styleable;->Switch_showText:I
-Landroid/R$styleable;->Switch_splitTrack:I
-Landroid/R$styleable;->Switch_switchMinWidth:I
-Landroid/R$styleable;->Switch_switchPadding:I
-Landroid/R$styleable;->Switch_switchTextAppearance:I
-Landroid/R$styleable;->Switch_textOff:I
-Landroid/R$styleable;->Switch_textOn:I
-Landroid/R$styleable;->Switch_thumb:I
-Landroid/R$styleable;->Switch_thumbTextPadding:I
-Landroid/R$styleable;->Switch_track:I
-Landroid/R$styleable;->TextAppearance:[I
-Landroid/R$styleable;->TextAppearance_textAllCaps:I
-Landroid/R$styleable;->TextAppearance_textColor:I
-Landroid/R$styleable;->TextAppearance_textColorHighlight:I
-Landroid/R$styleable;->TextAppearance_textColorHint:I
-Landroid/R$styleable;->TextAppearance_textColorLink:I
-Landroid/R$styleable;->TextAppearance_textSize:I
-Landroid/R$styleable;->TextAppearance_textStyle:I
-Landroid/R$styleable;->TextAppearance_typeface:I
-Landroid/R$styleable;->TextView:[I
-Landroid/R$styleable;->TextView_autoLink:I
-Landroid/R$styleable;->TextView_autoText:I
-Landroid/R$styleable;->TextView_bufferType:I
-Landroid/R$styleable;->TextView_capitalize:I
-Landroid/R$styleable;->TextView_cursorVisible:I
-Landroid/R$styleable;->TextView_digits:I
-Landroid/R$styleable;->TextView_drawableBottom:I
-Landroid/R$styleable;->TextView_drawableEnd:I
-Landroid/R$styleable;->TextView_drawableLeft:I
-Landroid/R$styleable;->TextView_drawablePadding:I
-Landroid/R$styleable;->TextView_drawableRight:I
-Landroid/R$styleable;->TextView_drawableStart:I
-Landroid/R$styleable;->TextView_drawableTop:I
-Landroid/R$styleable;->TextView_editable:I
-Landroid/R$styleable;->TextView_ellipsize:I
-Landroid/R$styleable;->TextView_ems:I
-Landroid/R$styleable;->TextView_enabled:I
-Landroid/R$styleable;->TextView_freezesText:I
-Landroid/R$styleable;->TextView_gravity:I
-Landroid/R$styleable;->TextView_height:I
-Landroid/R$styleable;->TextView_hint:I
-Landroid/R$styleable;->TextView_imeActionId:I
-Landroid/R$styleable;->TextView_imeActionLabel:I
-Landroid/R$styleable;->TextView_imeOptions:I
-Landroid/R$styleable;->TextView_includeFontPadding:I
-Landroid/R$styleable;->TextView_inputMethod:I
-Landroid/R$styleable;->TextView_inputType:I
-Landroid/R$styleable;->TextView_lineSpacingExtra:I
-Landroid/R$styleable;->TextView_lineSpacingMultiplier:I
-Landroid/R$styleable;->TextView_lines:I
-Landroid/R$styleable;->TextView_linksClickable:I
-Landroid/R$styleable;->TextView_marqueeRepeatLimit:I
-Landroid/R$styleable;->TextView_maxEms:I
-Landroid/R$styleable;->TextView_maxHeight:I
-Landroid/R$styleable;->TextView_maxLength:I
-Landroid/R$styleable;->TextView_maxLines:I
-Landroid/R$styleable;->TextView_maxWidth:I
-Landroid/R$styleable;->TextView_minEms:I
-Landroid/R$styleable;->TextView_minHeight:I
-Landroid/R$styleable;->TextView_minLines:I
-Landroid/R$styleable;->TextView_minWidth:I
-Landroid/R$styleable;->TextView_numeric:I
-Landroid/R$styleable;->TextView_password:I
-Landroid/R$styleable;->TextView_phoneNumber:I
-Landroid/R$styleable;->TextView_privateImeOptions:I
-Landroid/R$styleable;->TextView_scrollHorizontally:I
-Landroid/R$styleable;->TextView_selectAllOnFocus:I
-Landroid/R$styleable;->TextView_shadowColor:I
-Landroid/R$styleable;->TextView_shadowDx:I
-Landroid/R$styleable;->TextView_shadowDy:I
-Landroid/R$styleable;->TextView_shadowRadius:I
-Landroid/R$styleable;->TextView_singleLine:I
-Landroid/R$styleable;->TextView_text:I
-Landroid/R$styleable;->TextView_textAllCaps:I
-Landroid/R$styleable;->TextView_textAppearance:I
-Landroid/R$styleable;->TextView_textColor:I
-Landroid/R$styleable;->TextView_textColorHighlight:I
-Landroid/R$styleable;->TextView_textColorHint:I
-Landroid/R$styleable;->TextView_textColorLink:I
-Landroid/R$styleable;->TextView_textCursorDrawable:I
-Landroid/R$styleable;->TextView_textIsSelectable:I
-Landroid/R$styleable;->TextView_textScaleX:I
-Landroid/R$styleable;->TextView_textSelectHandle:I
-Landroid/R$styleable;->TextView_textSelectHandleLeft:I
-Landroid/R$styleable;->TextView_textSelectHandleRight:I
-Landroid/R$styleable;->TextView_textSize:I
-Landroid/R$styleable;->TextView_textStyle:I
-Landroid/R$styleable;->TextView_typeface:I
-Landroid/R$styleable;->TextView_width:I
-Landroid/R$styleable;->View:[I
-Landroid/R$styleable;->ViewDrawableStates:[I
-Landroid/R$styleable;->ViewGroup_Layout:[I
-Landroid/R$styleable;->ViewGroup_MarginLayout:[I
-Landroid/R$styleable;->View_background:I
-Landroid/R$styleable;->View_clickable:I
-Landroid/R$styleable;->View_contentDescription:I
-Landroid/R$styleable;->View_drawingCacheQuality:I
-Landroid/R$styleable;->View_duplicateParentState:I
-Landroid/R$styleable;->View_fadingEdge:I
-Landroid/R$styleable;->View_filterTouchesWhenObscured:I
-Landroid/R$styleable;->View_fitsSystemWindows:I
-Landroid/R$styleable;->View_focusable:I
-Landroid/R$styleable;->View_focusableInTouchMode:I
-Landroid/R$styleable;->View_hapticFeedbackEnabled:I
-Landroid/R$styleable;->View_id:I
-Landroid/R$styleable;->View_isScrollContainer:I
-Landroid/R$styleable;->View_keepScreenOn:I
-Landroid/R$styleable;->View_longClickable:I
-Landroid/R$styleable;->View_minHeight:I
-Landroid/R$styleable;->View_minWidth:I
-Landroid/R$styleable;->View_nextFocusDown:I
-Landroid/R$styleable;->View_nextFocusLeft:I
-Landroid/R$styleable;->View_nextFocusRight:I
-Landroid/R$styleable;->View_nextFocusUp:I
-Landroid/R$styleable;->View_onClick:I
-Landroid/R$styleable;->View_overScrollMode:I
-Landroid/R$styleable;->View_padding:I
-Landroid/R$styleable;->View_paddingBottom:I
-Landroid/R$styleable;->View_paddingEnd:I
-Landroid/R$styleable;->View_paddingLeft:I
-Landroid/R$styleable;->View_paddingRight:I
-Landroid/R$styleable;->View_paddingStart:I
-Landroid/R$styleable;->View_paddingTop:I
-Landroid/R$styleable;->View_saveEnabled:I
-Landroid/R$styleable;->View_scrollX:I
-Landroid/R$styleable;->View_scrollY:I
-Landroid/R$styleable;->View_scrollbarDefaultDelayBeforeFade:I
-Landroid/R$styleable;->View_scrollbarFadeDuration:I
-Landroid/R$styleable;->View_scrollbarSize:I
-Landroid/R$styleable;->View_scrollbarStyle:I
-Landroid/R$styleable;->View_scrollbarThumbHorizontal:I
-Landroid/R$styleable;->View_scrollbarThumbVertical:I
-Landroid/R$styleable;->View_scrollbarTrackHorizontal:I
-Landroid/R$styleable;->View_scrollbarTrackVertical:I
-Landroid/R$styleable;->View_scrollbars:I
-Landroid/R$styleable;->View_soundEffectsEnabled:I
-Landroid/R$styleable;->View_tag:I
-Landroid/R$styleable;->View_visibility:I
-Landroid/R$styleable;->Window:[I
-Landroid/R$styleable;->Window_windowBackground:I
-Landroid/R$styleable;->Window_windowFrame:I
+Landroid/accessibilityservice/AccessibilityService;->mInfo:Landroid/accessibilityservice/AccessibilityServiceInfo;
+Landroid/accessibilityservice/AccessibilityService;->mWindowToken:Landroid/os/IBinder;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->setCapabilities(I)V
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;-><init>()V
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accessibilityservice/IAccessibilityServiceConnection;
+Landroid/accounts/Account;->accessId:Ljava/lang/String;
+Landroid/accounts/Account;->TAG:Ljava/lang/String;
+Landroid/accounts/AccountAndUser;-><init>(Landroid/accounts/Account;I)V
+Landroid/accounts/AccountAndUser;->account:Landroid/accounts/Account;
+Landroid/accounts/AccountAndUser;->userId:I
+Landroid/accounts/AccountAuthenticatorResponse;-><init>(Landroid/accounts/IAccountAuthenticatorResponse;)V
+Landroid/accounts/AccountManager$AmsTask;->mActivity:Landroid/app/Activity;
+Landroid/accounts/AccountManager$AmsTask;->mHandler:Landroid/os/Handler;
+Landroid/accounts/AccountManager$AmsTask;->mResponse:Landroid/accounts/IAccountManagerResponse;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mAuthTokenType:Ljava/lang/String;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mLoginOptions:Landroid/os/Bundle;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mMyCallback:Landroid/accounts/AccountManagerCallback;
+Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
 Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
+Landroid/accounts/AccountManager;->confirmCredentialsAsUser(Landroid/accounts/Account;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;
 Landroid/accounts/AccountManager;->mContext:Landroid/content/Context;
+Landroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V
+Landroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/accounts/IAccountAuthenticator$Stub;-><init>()V
 Landroid/accounts/IAccountAuthenticator$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticator;
 Landroid/accounts/IAccountAuthenticator;->addAccount(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/IAccountAuthenticator;->addAccountFromCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator;->confirmCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator;->editProperties(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
+Landroid/accounts/IAccountAuthenticator;->getAccountCredentialsForCloning(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
 Landroid/accounts/IAccountAuthenticator;->getAccountRemovalAllowed(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
 Landroid/accounts/IAccountAuthenticator;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator;->getAuthTokenLabel(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
@@ -208,7 +40,11 @@
 Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;-><init>()V
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticatorResponse;
+Landroid/accounts/IAccountAuthenticatorResponse;->onError(ILjava/lang/String;)V
+Landroid/accounts/IAccountAuthenticatorResponse;->onRequestContinued()V
+Landroid/accounts/IAccountAuthenticatorResponse;->onResult(Landroid/os/Bundle;)V
 Landroid/accounts/IAccountManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/accounts/IAccountManager$Stub;-><init>()V
 Landroid/accounts/IAccountManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManager;
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -216,47 +52,95 @@
 Landroid/accounts/IAccountManagerResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManagerResponse;
 Landroid/accounts/IAccountManagerResponse;->onError(ILjava/lang/String;)V
 Landroid/accounts/IAccountManagerResponse;->onResult(Landroid/os/Bundle;)V
+Landroid/animation/Animator;->reverse()V
+Landroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator;
 Landroid/animation/LayoutTransition;->cancel()V
 Landroid/animation/LayoutTransition;->cancel(I)V
 Landroid/animation/ValueAnimator;->animateValue(F)V
+Landroid/animation/ValueAnimator;->mDuration:J
 Landroid/animation/ValueAnimator;->sDurationScale:F
+Landroid/app/ActionBar;->collapseActionView()Z
+Landroid/app/ActionBar;->DISPLAY_TITLE_MULTIPLE_LINES:I
 Landroid/app/ActionBar;->setShowHideAnimationEnabled(Z)V
+Landroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+Landroid/app/Activity;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V
 Landroid/app/Activity;->enterPictureInPictureMode(Landroid/app/PictureInPictureArgs;)Z
+Landroid/app/Activity;->finish(I)V
+Landroid/app/Activity;->FRAGMENTS_TAG:Ljava/lang/String;
 Landroid/app/Activity;->getActivityOptions()Landroid/app/ActivityOptions;
 Landroid/app/Activity;->getActivityToken()Landroid/os/IBinder;
+Landroid/app/Activity;->isResumed()Z
 Landroid/app/Activity;->mActivityInfo:Landroid/content/pm/ActivityInfo;
+Landroid/app/Activity;->mActivityTransitionState:Landroid/app/ActivityTransitionState;
+Landroid/app/Activity;->managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 Landroid/app/Activity;->mApplication:Landroid/app/Application;
 Landroid/app/Activity;->mCalled:Z
 Landroid/app/Activity;->mComponent:Landroid/content/ComponentName;
 Landroid/app/Activity;->mConfigChangeFlags:I
 Landroid/app/Activity;->mCurrentConfig:Landroid/content/res/Configuration;
+Landroid/app/Activity;->mDestroyed:Z
+Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
 Landroid/app/Activity;->mFinished:Z
 Landroid/app/Activity;->mFragments:Landroid/app/FragmentController;
 Landroid/app/Activity;->mHandler:Landroid/os/Handler;
+Landroid/app/Activity;->mIdent:I
 Landroid/app/Activity;->mInstrumentation:Landroid/app/Instrumentation;
+Landroid/app/Activity;->mIntent:Landroid/content/Intent;
+Landroid/app/Activity;->mLastNonConfigurationInstances:Landroid/app/Activity$NonConfigurationInstances;
 Landroid/app/Activity;->mMainThread:Landroid/app/ActivityThread;
+Landroid/app/Activity;->mParent:Landroid/app/Activity;
 Landroid/app/Activity;->mReferrer:Ljava/lang/String;
 Landroid/app/Activity;->mResultCode:I
 Landroid/app/Activity;->mResultData:Landroid/content/Intent;
 Landroid/app/Activity;->mResumed:Z
+Landroid/app/Activity;->mStopped:Z
 Landroid/app/Activity;->mTitle:Ljava/lang/CharSequence;
 Landroid/app/Activity;->mToken:Landroid/os/IBinder;
+Landroid/app/Activity;->mVisibleFromClient:Z
+Landroid/app/Activity;->mVoiceInteractor:Landroid/app/VoiceInteractor;
 Landroid/app/Activity;->mWindow:Landroid/view/Window;
+Landroid/app/Activity;->mWindowAdded:Z
 Landroid/app/Activity;->mWindowManager:Landroid/view/WindowManager;
-Landroid/app/Activity;->managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/app/Activity;->performCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
 Landroid/app/Activity;->registerRemoteAnimations(Landroid/view/RemoteAnimationDefinition;)V
+Landroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V
 Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V
+Landroid/app/Activity;->setParent(Landroid/app/Activity;)V
 Landroid/app/Activity;->setPersistent(Z)V
 Landroid/app/Activity;->setPictureInPictureArgs(Landroid/app/PictureInPictureArgs;)V
+Landroid/app/Activity;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/app/Activity;->startActivityForResult(Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;)V
+Landroid/app/Activity;->startActivityForResultAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)V
 Landroid/app/ActivityGroup;->mLocalActivityManager:Landroid/app/LocalActivityManager;
+Landroid/app/ActivityManager$MemoryInfo;->foregroundAppThreshold:J
+Landroid/app/ActivityManager$MemoryInfo;->hiddenAppThreshold:J
+Landroid/app/ActivityManager$MemoryInfo;->secondaryServerThreshold:J
+Landroid/app/ActivityManager$MemoryInfo;->visibleAppThreshold:J
+Landroid/app/ActivityManager$RecentTaskInfo;->affiliatedTaskColor:I
 Landroid/app/ActivityManager$RecentTaskInfo;->configuration:Landroid/content/res/Configuration;
 Landroid/app/ActivityManager$RecentTaskInfo;->firstActiveTime:J
 Landroid/app/ActivityManager$RecentTaskInfo;->lastActiveTime:J
 Landroid/app/ActivityManager$RecentTaskInfo;->resizeMode:I
+Landroid/app/ActivityManager$RecentTaskInfo;->stackId:I
 Landroid/app/ActivityManager$RecentTaskInfo;->supportsSplitScreenMultiWindow:Z
 Landroid/app/ActivityManager$RecentTaskInfo;->userId:I
 Landroid/app/ActivityManager$RunningAppProcessInfo;->flags:I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->FLAG_HAS_ACTIVITIES:I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->FLAG_PERSISTENT:I
 Landroid/app/ActivityManager$RunningAppProcessInfo;->processState:I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportance(I)I
+Landroid/app/ActivityManager$StackInfo;->bounds:Landroid/graphics/Rect;
+Landroid/app/ActivityManager$StackInfo;->displayId:I
+Landroid/app/ActivityManager$StackInfo;->position:I
+Landroid/app/ActivityManager$StackInfo;->stackId:I
+Landroid/app/ActivityManager$StackInfo;->taskBounds:[Landroid/graphics/Rect;
+Landroid/app/ActivityManager$StackInfo;->taskIds:[I
+Landroid/app/ActivityManager$StackInfo;->taskNames:[Ljava/lang/String;
+Landroid/app/ActivityManager$StackInfo;->taskUserIds:[I
+Landroid/app/ActivityManager$StackInfo;->topActivity:Landroid/content/ComponentName;
+Landroid/app/ActivityManager$StackInfo;->toString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/ActivityManager$StackInfo;->userId:I
+Landroid/app/ActivityManager$StackInfo;->visible:Z
 Landroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I
 Landroid/app/ActivityManager$TaskDescription;->getInMemoryIcon()Landroid/graphics/Bitmap;
 Landroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
@@ -266,21 +150,36 @@
 Landroid/app/ActivityManager$TaskSnapshot;->getSnapshot()Landroid/graphics/GraphicBuffer;
 Landroid/app/ActivityManager$TaskSnapshot;->isRealSnapshot()Z
 Landroid/app/ActivityManager$TaskSnapshot;->isReducedResolution()Z
-Landroid/app/ActivityManager;->IActivityManagerSingleton:Landroid/util/Singleton;
-Landroid/app/ActivityManager;->PROCESS_STATE_IMPORTANT_BACKGROUND:I
-Landroid/app/ActivityManager;->PROCESS_STATE_TOP:I
+Landroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+Landroid/app/ActivityManager;->checkComponentPermission(Ljava/lang/String;IIZ)I
 Landroid/app/ActivityManager;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)Z
+Landroid/app/ActivityManager;->forceStopPackageAsUser(Ljava/lang/String;I)V
 Landroid/app/ActivityManager;->getMaxNumPictureInPictureActions()I
 Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
 Landroid/app/ActivityManager;->getService()Landroid/app/IActivityManager;
+Landroid/app/ActivityManager;->IActivityManagerSingleton:Landroid/util/Singleton;
+Landroid/app/ActivityManager;->INTENT_SENDER_ACTIVITY:I
 Landroid/app/ActivityManager;->isHighEndGfx()Z
 Landroid/app/ActivityManager;->isLowRamDeviceStatic()Z
 Landroid/app/ActivityManager;->isUserRunning(I)Z
 Landroid/app/ActivityManager;->mContext:Landroid/content/Context;
+Landroid/app/ActivityManager;->PROCESS_STATE_BOUND_FOREGROUND_SERVICE:I
+Landroid/app/ActivityManager;->PROCESS_STATE_CACHED_ACTIVITY:I
+Landroid/app/ActivityManager;->PROCESS_STATE_FOREGROUND_SERVICE:I
+Landroid/app/ActivityManager;->PROCESS_STATE_HOME:I
+Landroid/app/ActivityManager;->PROCESS_STATE_IMPORTANT_BACKGROUND:I
+Landroid/app/ActivityManager;->PROCESS_STATE_RECEIVER:I
+Landroid/app/ActivityManager;->PROCESS_STATE_SERVICE:I
+Landroid/app/ActivityManager;->PROCESS_STATE_TOP:I
 Landroid/app/ActivityManager;->setPersistentVrThread(I)V
+Landroid/app/ActivityManager;->staticGetMemoryClass()I
+Landroid/app/ActivityManager;->switchUser(I)Z
+Landroid/app/ActivityManagerNative;-><init>()V
 Landroid/app/ActivityManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
 Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;I)V
 Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
+Landroid/app/ActivityManagerNative;->isSystemReady()Z
+Landroid/app/ActivityOptions;->makeCustomAnimation(Landroid/content/Context;IILandroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)Landroid/app/ActivityOptions;
 Landroid/app/ActivityOptions;->makeMultiThumbFutureAspectScaleAnimation(Landroid/content/Context;Landroid/os/Handler;Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/app/ActivityOptions$OnAnimationStartedListener;Z)Landroid/app/ActivityOptions;
 Landroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions;
 Landroid/app/ActivityOptions;->setSplitScreenCreateMode(I)V
@@ -294,6 +193,7 @@
 Landroid/app/ActivityThread$ActivityClientRecord;->stopped:Z
 Landroid/app/ActivityThread$ActivityClientRecord;->token:Landroid/os/IBinder;
 Landroid/app/ActivityThread$AppBindData;->appInfo:Landroid/content/pm/ApplicationInfo;
+Landroid/app/ActivityThread$AppBindData;->compatInfo:Landroid/content/res/CompatibilityInfo;
 Landroid/app/ActivityThread$AppBindData;->info:Landroid/app/LoadedApk;
 Landroid/app/ActivityThread$AppBindData;->instrumentationArgs:Landroid/os/Bundle;
 Landroid/app/ActivityThread$AppBindData;->persistent:Z
@@ -328,6 +228,10 @@
 Landroid/app/ActivityThread$ReceiverData;->intent:Landroid/content/Intent;
 Landroid/app/ActivityThread$ServiceArgsData;->args:Landroid/content/Intent;
 Landroid/app/ActivityThread$ServiceArgsData;->token:Landroid/os/IBinder;
+Landroid/app/ActivityThread;-><init>()V
+Landroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
+Landroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
+Landroid/app/ActivityThread;->attach(ZJ)V
 Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread;
 Landroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
 Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
@@ -337,16 +241,23 @@
 Landroid/app/ActivityThread;->getApplicationThread()Landroid/app/ActivityThread$ApplicationThread;
 Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
 Landroid/app/ActivityThread;->getInstrumentation()Landroid/app/Instrumentation;
+Landroid/app/ActivityThread;->getLooper()Landroid/os/Looper;
 Landroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)Landroid/app/LoadedApk;
+Landroid/app/ActivityThread;->getPackageInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;I)Landroid/app/LoadedApk;
 Landroid/app/ActivityThread;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)Landroid/app/LoadedApk;
 Landroid/app/ActivityThread;->getPackageManager()Landroid/content/pm/IPackageManager;
 Landroid/app/ActivityThread;->getProcessName()Ljava/lang/String;
 Landroid/app/ActivityThread;->getSystemContext()Landroid/app/ContextImpl;
 Landroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThread$AppBindData;)V
+Landroid/app/ActivityThread;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V
+Landroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V
+Landroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V
 Landroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V
 Landroid/app/ActivityThread;->installProvider(Landroid/content/Context;Landroid/app/ContentProviderHolder;Landroid/content/pm/ProviderInfo;ZZZ)Landroid/app/ContentProviderHolder;
+Landroid/app/ActivityThread;->installSystemProviders(Ljava/util/List;)V
 Landroid/app/ActivityThread;->mActivities:Landroid/util/ArrayMap;
 Landroid/app/ActivityThread;->mAllApplications:Ljava/util/ArrayList;
+Landroid/app/ActivityThread;->mAppThread:Landroid/app/ActivityThread$ApplicationThread;
 Landroid/app/ActivityThread;->mBoundApplication:Landroid/app/ActivityThread$AppBindData;
 Landroid/app/ActivityThread;->mConfiguration:Landroid/content/res/Configuration;
 Landroid/app/ActivityThread;->mCurDefaultDisplayDpi:I
@@ -354,8 +265,11 @@
 Landroid/app/ActivityThread;->mH:Landroid/app/ActivityThread$H;
 Landroid/app/ActivityThread;->mInitialApplication:Landroid/app/Application;
 Landroid/app/ActivityThread;->mInstrumentation:Landroid/app/Instrumentation;
+Landroid/app/ActivityThread;->mInstrumentationAppDir:Ljava/lang/String;
+Landroid/app/ActivityThread;->mInstrumentedAppDir:Ljava/lang/String;
 Landroid/app/ActivityThread;->mLocalProviders:Landroid/util/ArrayMap;
 Landroid/app/ActivityThread;->mLocalProvidersByName:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mLooper:Landroid/os/Looper;
 Landroid/app/ActivityThread;->mNumVisibleActivities:I
 Landroid/app/ActivityThread;->mPackages:Landroid/util/ArrayMap;
 Landroid/app/ActivityThread;->mPendingConfiguration:Landroid/content/res/Configuration;
@@ -363,23 +277,71 @@
 Landroid/app/ActivityThread;->mResourcePackages:Landroid/util/ArrayMap;
 Landroid/app/ActivityThread;->mResourcesManager:Landroid/app/ResourcesManager;
 Landroid/app/ActivityThread;->mServices:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mSystemContext:Landroid/app/ContextImpl;
+Landroid/app/ActivityThread;->peekPackageInfo(Ljava/lang/String;Z)Landroid/app/LoadedApk;
 Landroid/app/ActivityThread;->performNewIntents(Landroid/os/IBinder;Ljava/util/List;Z)V
 Landroid/app/ActivityThread;->performStopActivity(Landroid/os/IBinder;ZLjava/lang/String;)V
+Landroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z
+Landroid/app/ActivityThread;->scheduleGcIdler()V
 Landroid/app/ActivityThread;->sCurrentActivityThread:Landroid/app/ActivityThread;
-Landroid/app/ActivityThread;->sPackageManager:Landroid/content/pm/IPackageManager;
 Landroid/app/ActivityThread;->sendActivityResult(Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/Intent;)V
+Landroid/app/ActivityThread;->sMainThreadHandler:Landroid/os/Handler;
+Landroid/app/ActivityThread;->sPackageManager:Landroid/content/pm/IPackageManager;
 Landroid/app/ActivityThread;->startActivityNow(Landroid/app/Activity;Ljava/lang/String;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/Activity$NonConfigurationInstances;)Landroid/app/Activity;
+Landroid/app/ActivityThread;->systemMain()Landroid/app/ActivityThread;
 Landroid/app/ActivityView;-><init>(Landroid/content/Context;)V
 Landroid/app/ActivityView;->release()V
 Landroid/app/ActivityView;->startActivity(Landroid/app/PendingIntent;)V
 Landroid/app/ActivityView;->startActivity(Landroid/content/Intent;)V
+Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->tag:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminInfo;->getUsedPolicies()Ljava/util/ArrayList;
+Landroid/app/admin/DevicePolicyManager;->ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->createAndInitializeUser(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;)Landroid/os/UserHandle;
+Landroid/app/admin/DevicePolicyManager;->createUser(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/UserHandle;
+Landroid/app/admin/DevicePolicyManager;->getActiveAdminsAsUser(I)Ljava/util/List;
+Landroid/app/admin/DevicePolicyManager;->getCameraDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/DevicePolicyManager;->getCurrentFailedPasswordAttempts(I)I
+Landroid/app/admin/DevicePolicyManager;->getDeviceInitializerApp()Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->getDeviceInitializerComponent()Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getMandatoryBackupTransport()Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;I)J
+Landroid/app/admin/DevicePolicyManager;->getPasswordHistoryLength(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLength(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLetters(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumNumeric(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumSymbols(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I
+Landroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;I)J
+Landroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus(I)I
+Landroid/app/admin/DevicePolicyManager;->getTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;I)Ljava/util/List;
+Landroid/app/admin/DevicePolicyManager;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->reportFailedPasswordAttempt(I)V
+Landroid/app/admin/DevicePolicyManager;->reportSuccessfulPasswordAttempt(I)V
+Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
+Landroid/app/admin/DevicePolicyManager;->setActivePasswordState(Landroid/app/admin/PasswordMetrics;I)V
+Landroid/app/admin/DevicePolicyManager;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/DevicePolicyManager;->setGlobalProxy(Landroid/content/ComponentName;Ljava/net/Proxy;Ljava/util/List;)Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_packageHasActiveAdmins:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeActiveAdmin:I
+Landroid/app/admin/IDevicePolicyManager;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+Landroid/app/admin/SecurityLog$SecurityEvent;-><init>([B)V
 Landroid/app/AlarmManager;->FLAG_ALLOW_WHILE_IDLE_UNRESTRICTED:I
 Landroid/app/AlarmManager;->FLAG_IDLE_UNTIL:I
 Landroid/app/AlarmManager;->FLAG_STANDALONE:I
 Landroid/app/AlarmManager;->FLAG_WAKE_FROM_IDLE:I
+Landroid/app/AlarmManager;->mService:Landroid/app/IAlarmManager;
+Landroid/app/AlarmManager;->set(IJJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V
 Landroid/app/AlarmManager;->WINDOW_EXACT:J
 Landroid/app/AlarmManager;->WINDOW_HEURISTIC:J
-Landroid/app/AlarmManager;->mService:Landroid/app/IAlarmManager;
 Landroid/app/AlertDialog$Builder;->P:Lcom/android/internal/app/AlertController$AlertParams;
 Landroid/app/AlertDialog$Builder;->setRecycleOnMeasureEnabled(Z)Landroid/app/AlertDialog$Builder;
 Landroid/app/AlertDialog$Builder;->setView(Landroid/view/View;IIII)Landroid/app/AlertDialog$Builder;
@@ -387,40 +349,6 @@
 Landroid/app/AppGlobals;->getInitialApplication()Landroid/app/Application;
 Landroid/app/AppGlobals;->getInitialPackage()Ljava/lang/String;
 Landroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager;
-Landroid/app/AppOpsManager$OpEntry;->getDuration()I
-Landroid/app/AppOpsManager$OpEntry;->getOp()I
-Landroid/app/AppOpsManager$OpEntry;->getRejectTime()J
-Landroid/app/AppOpsManager$OpEntry;->getTime()J
-Landroid/app/AppOpsManager$OpEntry;->isRunning()Z
-Landroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
-Landroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String;
-Landroid/app/AppOpsManager$PackageOps;->getUid()I
-Landroid/app/AppOpsManager;->OP_AUDIO_NOTIFICATION_VOLUME:I
-Landroid/app/AppOpsManager;->OP_COARSE_LOCATION:I
-Landroid/app/AppOpsManager;->OP_FINE_LOCATION:I
-Landroid/app/AppOpsManager;->OP_GET_USAGE_STATS:I
-Landroid/app/AppOpsManager;->OP_POST_NOTIFICATION:I
-Landroid/app/AppOpsManager;->OP_PROJECT_MEDIA:I
-Landroid/app/AppOpsManager;->OP_READ_CONTACTS:I
-Landroid/app/AppOpsManager;->OP_READ_PHONE_STATE:I
-Landroid/app/AppOpsManager;->OP_READ_SMS:I
-Landroid/app/AppOpsManager;->OP_RUN_IN_BACKGROUND:I
-Landroid/app/AppOpsManager;->OP_VIBRATE:I
-Landroid/app/AppOpsManager;->OP_WIFI_SCAN:I
-Landroid/app/AppOpsManager;->OP_WRITE_CONTACTS:I
-Landroid/app/AppOpsManager;->OP_WRITE_SMS:I
-Landroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I
-Landroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I
-Landroid/app/AppOpsManager;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
-Landroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
-Landroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder;
-Landroid/app/AppOpsManager;->mService:Lcom/android/internal/app/IAppOpsService;
-Landroid/app/AppOpsManager;->noteOp(I)I
-Landroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I
-Landroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I
-Landroid/app/AppOpsManager;->sOpPerms:[Ljava/lang/String;
-Landroid/app/AppOpsManager;->setRestriction(III[Ljava/lang/String;)V
-Landroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
 Landroid/app/Application;->attach(Landroid/content/Context;)V
 Landroid/app/Application;->collectActivityLifecycleCallbacks()[Ljava/lang/Object;
 Landroid/app/Application;->dispatchActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
@@ -430,6 +358,8 @@
 Landroid/app/Application;->dispatchActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
 Landroid/app/Application;->dispatchActivityStarted(Landroid/app/Activity;)V
 Landroid/app/Application;->dispatchActivityStopped(Landroid/app/Activity;)V
+Landroid/app/Application;->mActivityLifecycleCallbacks:Ljava/util/ArrayList;
+Landroid/app/Application;->mAssistCallbacks:Ljava/util/ArrayList;
 Landroid/app/Application;->mComponentCallbacks:Ljava/util/ArrayList;
 Landroid/app/Application;->mLoadedApk:Landroid/app/LoadedApk;
 Landroid/app/ApplicationLoaders;->getDefault()Landroid/app/ApplicationLoaders;
@@ -442,12 +372,172 @@
 Landroid/app/ApplicationPackageManager;->mPM:Landroid/content/pm/IPackageManager;
 Landroid/app/ApplicationPackageManager;->setInstantAppCookie([B)Z
 Landroid/app/ApplicationPackageManager;->shouldShowRequestPermissionRationale(Ljava/lang/String;)Z
+Landroid/app/AppOpsManager$OpEntry;->getDuration()I
+Landroid/app/AppOpsManager$OpEntry;->getLastAccessBackgroundTime()J
+Landroid/app/AppOpsManager$OpEntry;->getLastAccessForegroundTime()J
+Landroid/app/AppOpsManager$OpEntry;->getLastAccessTime()J
+Landroid/app/AppOpsManager$OpEntry;->getLastRejectBackgroundTime()J
+Landroid/app/AppOpsManager$OpEntry;->getLastRejectForegroundTime()J
+Landroid/app/AppOpsManager$OpEntry;->getLastRejectTime()J
+Landroid/app/AppOpsManager$OpEntry;->getMode()I
+Landroid/app/AppOpsManager$OpEntry;->getOp()I
+Landroid/app/AppOpsManager$OpEntry;->getRejectTime()J
+Landroid/app/AppOpsManager$OpEntry;->getTime()J
+Landroid/app/AppOpsManager$OpEntry;->isRunning()Z
+Landroid/app/AppOpsManager$PackageOps;-><init>(Ljava/lang/String;ILjava/util/List;)V
+Landroid/app/AppOpsManager$PackageOps;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
+Landroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String;
+Landroid/app/AppOpsManager$PackageOps;->getUid()I
+Landroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
+Landroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
+Landroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder;
+Landroid/app/AppOpsManager;->MODE_FOREGROUND:I
+Landroid/app/AppOpsManager;->mService:Lcom/android/internal/app/IAppOpsService;
+Landroid/app/AppOpsManager;->noteOp(I)I
+Landroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;)I
+Landroid/app/AppOpsManager;->opToName(I)Ljava/lang/String;
+Landroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String;
+Landroid/app/AppOpsManager;->opToSwitch(I)I
+Landroid/app/AppOpsManager;->OP_ACCEPT_HANDOVER:I
+Landroid/app/AppOpsManager;->OP_ACCESS_NOTIFICATIONS:I
+Landroid/app/AppOpsManager;->OP_ACTIVATE_VPN:I
+Landroid/app/AppOpsManager;->OP_ADD_VOICEMAIL:I
+Landroid/app/AppOpsManager;->OP_ANSWER_PHONE_CALLS:I
+Landroid/app/AppOpsManager;->OP_ASSIST_SCREENSHOT:I
+Landroid/app/AppOpsManager;->OP_ASSIST_STRUCTURE:I
+Landroid/app/AppOpsManager;->OP_AUDIO_ACCESSIBILITY_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_ALARM_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_BLUETOOTH_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_MASTER_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_MEDIA_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_NOTIFICATION_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_RING_VOLUME:I
+Landroid/app/AppOpsManager;->OP_AUDIO_VOICE_VOLUME:I
+Landroid/app/AppOpsManager;->OP_BIND_ACCESSIBILITY_SERVICE:I
+Landroid/app/AppOpsManager;->OP_BLUETOOTH_SCAN:I
+Landroid/app/AppOpsManager;->OP_BODY_SENSORS:I
+Landroid/app/AppOpsManager;->OP_CALL_PHONE:I
+Landroid/app/AppOpsManager;->OP_CAMERA:I
+Landroid/app/AppOpsManager;->OP_CHANGE_WIFI_STATE:I
+Landroid/app/AppOpsManager;->OP_COARSE_LOCATION:I
+Landroid/app/AppOpsManager;->OP_FINE_LOCATION:I
+Landroid/app/AppOpsManager;->OP_GET_ACCOUNTS:I
+Landroid/app/AppOpsManager;->OP_GET_USAGE_STATS:I
+Landroid/app/AppOpsManager;->OP_GPS:I
+Landroid/app/AppOpsManager;->OP_INSTANT_APP_START_FOREGROUND:I
+Landroid/app/AppOpsManager;->OP_MANAGE_IPSEC_TUNNELS:I
+Landroid/app/AppOpsManager;->OP_MOCK_LOCATION:I
+Landroid/app/AppOpsManager;->OP_MONITOR_HIGH_POWER_LOCATION:I
+Landroid/app/AppOpsManager;->OP_MONITOR_LOCATION:I
+Landroid/app/AppOpsManager;->OP_MUTE_MICROPHONE:I
+Landroid/app/AppOpsManager;->OP_NEIGHBORING_CELLS:I
+Landroid/app/AppOpsManager;->OP_NONE:I
+Landroid/app/AppOpsManager;->OP_PICTURE_IN_PICTURE:I
+Landroid/app/AppOpsManager;->OP_PLAY_AUDIO:I
+Landroid/app/AppOpsManager;->OP_POST_NOTIFICATION:I
+Landroid/app/AppOpsManager;->OP_PROCESS_OUTGOING_CALLS:I
+Landroid/app/AppOpsManager;->OP_PROJECT_MEDIA:I
+Landroid/app/AppOpsManager;->OP_READ_CALENDAR:I
+Landroid/app/AppOpsManager;->OP_READ_CALL_LOG:I
+Landroid/app/AppOpsManager;->OP_READ_CELL_BROADCASTS:I
+Landroid/app/AppOpsManager;->OP_READ_CLIPBOARD:I
+Landroid/app/AppOpsManager;->OP_READ_CONTACTS:I
+Landroid/app/AppOpsManager;->OP_READ_EXTERNAL_STORAGE:I
+Landroid/app/AppOpsManager;->OP_READ_ICC_SMS:I
+Landroid/app/AppOpsManager;->OP_READ_PHONE_NUMBERS:I
+Landroid/app/AppOpsManager;->OP_READ_PHONE_STATE:I
+Landroid/app/AppOpsManager;->OP_READ_SMS:I
+Landroid/app/AppOpsManager;->OP_RECEIVE_EMERGECY_SMS:I
+Landroid/app/AppOpsManager;->OP_RECEIVE_MMS:I
+Landroid/app/AppOpsManager;->OP_RECEIVE_SMS:I
+Landroid/app/AppOpsManager;->OP_RECEIVE_WAP_PUSH:I
+Landroid/app/AppOpsManager;->OP_REQUEST_DELETE_PACKAGES:I
+Landroid/app/AppOpsManager;->OP_REQUEST_INSTALL_PACKAGES:I
+Landroid/app/AppOpsManager;->OP_RUN_ANY_IN_BACKGROUND:I
+Landroid/app/AppOpsManager;->OP_RUN_IN_BACKGROUND:I
+Landroid/app/AppOpsManager;->OP_SEND_SMS:I
+Landroid/app/AppOpsManager;->OP_START_FOREGROUND:I
+Landroid/app/AppOpsManager;->OP_TAKE_AUDIO_FOCUS:I
+Landroid/app/AppOpsManager;->OP_TAKE_MEDIA_BUTTONS:I
+Landroid/app/AppOpsManager;->OP_TOAST_WINDOW:I
+Landroid/app/AppOpsManager;->OP_TURN_SCREEN_ON:I
+Landroid/app/AppOpsManager;->OP_USE_FINGERPRINT:I
+Landroid/app/AppOpsManager;->OP_USE_SIP:I
+Landroid/app/AppOpsManager;->OP_VIBRATE:I
+Landroid/app/AppOpsManager;->OP_WAKE_LOCK:I
+Landroid/app/AppOpsManager;->OP_WIFI_SCAN:I
+Landroid/app/AppOpsManager;->OP_WRITE_CALENDAR:I
+Landroid/app/AppOpsManager;->OP_WRITE_CALL_LOG:I
+Landroid/app/AppOpsManager;->OP_WRITE_CLIPBOARD:I
+Landroid/app/AppOpsManager;->OP_WRITE_CONTACTS:I
+Landroid/app/AppOpsManager;->OP_WRITE_EXTERNAL_STORAGE:I
+Landroid/app/AppOpsManager;->OP_WRITE_ICC_SMS:I
+Landroid/app/AppOpsManager;->OP_WRITE_SETTINGS:I
+Landroid/app/AppOpsManager;->OP_WRITE_SMS:I
+Landroid/app/AppOpsManager;->OP_WRITE_WALLPAPER:I
+Landroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I
+Landroid/app/AppOpsManager;->resetAllModes()V
+Landroid/app/AppOpsManager;->setRestriction(III[Ljava/lang/String;)V
+Landroid/app/AppOpsManager;->sOpPerms:[Ljava/lang/String;
+Landroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+Landroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
+Landroid/app/AppOpsManager;->unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I
+Landroid/app/AppOpsManager;->WATCH_FOREGROUND_CHANGES:I
+Landroid/app/AppOpsManager;->_NUM_OP:I
+Landroid/app/assist/AssistContent;-><init>(Landroid/os/Parcel;)V
+Landroid/app/assist/AssistContent;->mClipData:Landroid/content/ClipData;
+Landroid/app/assist/AssistContent;->mExtras:Landroid/os/Bundle;
+Landroid/app/assist/AssistContent;->mIntent:Landroid/content/Intent;
+Landroid/app/assist/AssistContent;->mIsAppProvidedIntent:Z
+Landroid/app/assist/AssistContent;->mStructuredData:Ljava/lang/String;
+Landroid/app/assist/AssistContent;->mUri:Landroid/net/Uri;
+Landroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/app/backup/BackupDataInput$EntityHeader;->dataSize:I
+Landroid/app/backup/BackupDataInput$EntityHeader;->key:Ljava/lang/String;
+Landroid/app/backup/BackupDataInputStream;->dataSize:I
+Landroid/app/backup/BackupDataInputStream;->key:Ljava/lang/String;
+Landroid/app/backup/BackupDataOutput;->mBackupWriter:J
+Landroid/app/backup/BackupHelperDispatcher$Header;->chunkSize:I
+Landroid/app/backup/BackupHelperDispatcher$Header;->keyPrefix:Ljava/lang/String;
+Landroid/app/backup/BackupManager;->checkServiceBinder()V
+Landroid/app/backup/BackupManager;->sService:Landroid/app/backup/IBackupManager;
+Landroid/app/backup/FileBackupHelperBase;->writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/FullBackup;->backupToTar(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/backup/FullBackupDataOutput;)I
+Landroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/FullBackupDataOutput;->addSize(J)V
+Landroid/app/backup/FullBackupDataOutput;->getData()Landroid/app/backup/BackupDataOutput;
+Landroid/app/backup/FullBackupDataOutput;->mData:Landroid/app/backup/BackupDataOutput;
+Landroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager;
+Landroid/app/backup/IBackupManager;->acknowledgeFullBackupOrRestore(IZLjava/lang/String;Ljava/lang/String;Landroid/app/backup/IFullBackupRestoreObserver;)V
+Landroid/app/backup/IBackupManager;->clearBackupData(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager;->dataChanged(Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager;->getCurrentTransport()Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->isBackupEnabled()Z
+Landroid/app/backup/IBackupManager;->isBackupServiceActive(I)Z
+Landroid/app/backup/IBackupManager;->listAllTransports()[Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->selectBackupTransport(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->setAutoRestore(Z)V
+Landroid/app/backup/IBackupManager;->setBackupEnabled(Z)V
+Landroid/app/backup/IFullBackupRestoreObserver$Stub;-><init>()V
+Landroid/app/backup/IRestoreObserver$Stub;-><init>()V
 Landroid/app/ContentProviderHolder;-><init>(Landroid/content/pm/ProviderInfo;)V
+Landroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ContentProviderHolder;->info:Landroid/content/pm/ProviderInfo;
+Landroid/app/ContentProviderHolder;->noReleaseNeeded:Z
 Landroid/app/ContentProviderHolder;->provider:Landroid/content/IContentProvider;
+Landroid/app/ContextImpl$ApplicationContentResolver;->mMainThread:Landroid/app/ActivityThread;
 Landroid/app/ContextImpl;->createActivityContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;ILandroid/content/res/Configuration;)Landroid/app/ContextImpl;
+Landroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
+Landroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl;
 Landroid/app/ContextImpl;->getActivityToken()Landroid/os/IBinder;
 Landroid/app/ContextImpl;->getDisplay()Landroid/view/Display;
+Landroid/app/ContextImpl;->getImpl(Landroid/content/Context;)Landroid/app/ContextImpl;
+Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
 Landroid/app/ContextImpl;->getPreferencesDir()Ljava/io/File;
 Landroid/app/ContextImpl;->getReceiverRestrictedContext()Landroid/content/Context;
 Landroid/app/ContextImpl;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences;
@@ -455,115 +545,297 @@
 Landroid/app/ContextImpl;->mBasePackageName:Ljava/lang/String;
 Landroid/app/ContextImpl;->mClassLoader:Ljava/lang/ClassLoader;
 Landroid/app/ContextImpl;->mContentResolver:Landroid/app/ContextImpl$ApplicationContentResolver;
+Landroid/app/ContextImpl;->mFlags:I
 Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
 Landroid/app/ContextImpl;->mOpPackageName:Ljava/lang/String;
 Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
 Landroid/app/ContextImpl;->mPackageInfo:Landroid/app/LoadedApk;
 Landroid/app/ContextImpl;->mPackageManager:Landroid/content/pm/PackageManager;
+Landroid/app/ContextImpl;->mPreferencesDir:Ljava/io/File;
 Landroid/app/ContextImpl;->mResources:Landroid/content/res/Resources;
 Landroid/app/ContextImpl;->mServiceCache:[Ljava/lang/Object;
+Landroid/app/ContextImpl;->mSharedPrefsPaths:Landroid/util/ArrayMap;
 Landroid/app/ContextImpl;->mTheme:Landroid/content/res/Resources$Theme;
 Landroid/app/ContextImpl;->mThemeResource:I
-Landroid/app/ContextImpl;->sSharedPrefsCache:Landroid/util/ArrayMap;
 Landroid/app/ContextImpl;->scheduleFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/app/ContextImpl;->setOuterContext(Landroid/content/Context;)V
+Landroid/app/ContextImpl;->sSharedPrefsCache:Landroid/util/ArrayMap;
 Landroid/app/DatePickerDialog;->mDatePicker:Landroid/widget/DatePicker;
 Landroid/app/Dialog;->CANCEL:I
 Landroid/app/Dialog;->dismissDialog()V
 Landroid/app/Dialog;->mCancelMessage:Landroid/os/Message;
+Landroid/app/Dialog;->mContext:Landroid/content/Context;
 Landroid/app/Dialog;->mDismissMessage:Landroid/os/Message;
+Landroid/app/Dialog;->mHandler:Landroid/os/Handler;
 Landroid/app/Dialog;->mListenersHandler:Landroid/os/Handler;
+Landroid/app/Dialog;->mOnKeyListener:Landroid/content/DialogInterface$OnKeyListener;
 Landroid/app/Dialog;->mOwnerActivity:Landroid/app/Activity;
+Landroid/app/Dialog;->mShowing:Z
 Landroid/app/Dialog;->mShowMessage:Landroid/os/Message;
+Landroid/app/Dialog;->mWindow:Landroid/view/Window;
+Landroid/app/DialogFragment;->mBackStackId:I
+Landroid/app/DialogFragment;->mDismissed:Z
+Landroid/app/DialogFragment;->mShownByMe:Z
+Landroid/app/DialogFragment;->mViewDestroyed:Z
 Landroid/app/DialogFragment;->showAllowingStateLoss(Landroid/app/FragmentManager;Ljava/lang/String;)V
+Landroid/app/DownloadManager$Query;->orderBy(Ljava/lang/String;I)Landroid/app/DownloadManager$Query;
+Landroid/app/DownloadManager$Query;->setOnlyIncludeVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Query;
 Landroid/app/DownloadManager$Request;->mUri:Landroid/net/Uri;
+Landroid/app/DownloadManager;->getWhereArgsForIds([J)[Ljava/lang/String;
+Landroid/app/DownloadManager;->getWhereClauseForIds([J)Ljava/lang/String;
+Landroid/app/DownloadManager;->restartDownload([[J)V
+Landroid/app/DownloadManager;->setAccessAllDownloads(Z)V
 Landroid/app/DownloadManager;->setAccessFilename(Z)V
+Landroid/app/DownloadManager;->UNDERLYING_COLUMNS:[Ljava/lang/String;
+Landroid/app/Fragment;->mAdded:Z
 Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
+Landroid/app/Fragment;->mFragmentId:I
+Landroid/app/Fragment;->mFragmentManager:Landroid/app/FragmentManagerImpl;
+Landroid/app/Fragment;->mHost:Landroid/app/FragmentHostCallback;
+Landroid/app/Fragment;->mIndex:I
+Landroid/app/Fragment;->mLoadersStarted:Z
+Landroid/app/Fragment;->mSavedFragmentState:Landroid/os/Bundle;
+Landroid/app/Fragment;->mView:Landroid/view/View;
 Landroid/app/Fragment;->mWho:Ljava/lang/String;
+Landroid/app/Fragment;->sClassMap:Landroid/util/ArrayMap;
+Landroid/app/FragmentController;->mHost:Landroid/app/FragmentHostCallback;
+Landroid/app/FragmentHostCallback;->mLoadersStarted:Z
+Landroid/app/FragmentManagerImpl;->loadAnimator(Landroid/app/Fragment;IZI)Landroid/animation/Animator;
+Landroid/app/FragmentManagerImpl;->mActive:Landroid/util/SparseArray;
 Landroid/app/FragmentManagerImpl;->mAdded:Ljava/util/ArrayList;
 Landroid/app/FragmentManagerImpl;->mStateSaved:Z
 Landroid/app/FragmentManagerImpl;->noteStateNotSaved()V
 Landroid/app/IActivityController$Stub;-><init>()V
+Landroid/app/IActivityController;->activityResuming(Ljava/lang/String;)Z
+Landroid/app/IActivityController;->activityStarting(Landroid/content/Intent;Ljava/lang/String;)Z
+Landroid/app/IActivityController;->appNotResponding(Ljava/lang/String;ILjava/lang/String;)I
 Landroid/app/IActivityManager$Stub$Proxy;->getConfiguration()Landroid/content/res/Configuration;
 Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromUid(Landroid/os/IBinder;)I
 Landroid/app/IActivityManager$Stub$Proxy;->getProcessLimit()I
 Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J
 Landroid/app/IActivityManager$Stub$Proxy;->isAppForeground(I)Z
 Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V
+Landroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
 Landroid/app/IActivityManager;->bindService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;I)I
 Landroid/app/IActivityManager;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 Landroid/app/IActivityManager;->cancelRecentsAnimation(Z)V
 Landroid/app/IActivityManager;->cancelTaskWindowTransition(I)V
+Landroid/app/IActivityManager;->checkPermission(Ljava/lang/String;II)I
 Landroid/app/IActivityManager;->closeSystemDialogs(Ljava/lang/String;)V
+Landroid/app/IActivityManager;->enterSafeMode()V
 Landroid/app/IActivityManager;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
+Landroid/app/IActivityManager;->finishHeavyWeightApp()V
 Landroid/app/IActivityManager;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
 Landroid/app/IActivityManager;->forceStopPackage(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->getAllStackInfos()Ljava/util/List;
 Landroid/app/IActivityManager;->getConfiguration()Landroid/content/res/Configuration;
 Landroid/app/IActivityManager;->getCurrentUser()Landroid/content/pm/UserInfo;
 Landroid/app/IActivityManager;->getFilteredTasks(III)Ljava/util/List;
+Landroid/app/IActivityManager;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
 Landroid/app/IActivityManager;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
 Landroid/app/IActivityManager;->getLaunchedFromPackage(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager;->getLaunchedFromUid(Landroid/os/IBinder;)I
 Landroid/app/IActivityManager;->getLockTaskModeState()I
+Landroid/app/IActivityManager;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
+Landroid/app/IActivityManager;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/IActivityManager;->getProcessLimit()I
 Landroid/app/IActivityManager;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
+Landroid/app/IActivityManager;->getProcessPss([I)[J
 Landroid/app/IActivityManager;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
 Landroid/app/IActivityManager;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
 Landroid/app/IActivityManager;->getRunningAppProcesses()Ljava/util/List;
+Landroid/app/IActivityManager;->getServices(II)Ljava/util/List;
+Landroid/app/IActivityManager;->getTaskBounds(I)Landroid/graphics/Rect;
 Landroid/app/IActivityManager;->getTaskForActivity(Landroid/os/IBinder;Z)I
 Landroid/app/IActivityManager;->getTaskSnapshot(IZ)Landroid/app/ActivityManager$TaskSnapshot;
+Landroid/app/IActivityManager;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
+Landroid/app/IActivityManager;->hang(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->isInLockTaskMode()Z
+Landroid/app/IActivityManager;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager;->isTopOfTask(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->isUserRunning(II)Z
+Landroid/app/IActivityManager;->killAllBackgroundProcesses()V
+Landroid/app/IActivityManager;->killApplicationProcess(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->killBackgroundProcesses(Ljava/lang/String;I)V
 Landroid/app/IActivityManager;->moveActivityTaskToBack(Landroid/os/IBinder;Z)Z
 Landroid/app/IActivityManager;->moveTaskToFront(IILandroid/os/Bundle;)V
+Landroid/app/IActivityManager;->moveTaskToStack(IIZ)V
+Landroid/app/IActivityManager;->moveTopActivityToPinnedStack(ILandroid/graphics/Rect;)Z
+Landroid/app/IActivityManager;->positionTaskInStack(III)V
+Landroid/app/IActivityManager;->profileControl(Ljava/lang/String;IZLandroid/app/ProfilerInfo;I)Z
 Landroid/app/IActivityManager;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
+Landroid/app/IActivityManager;->registerProcessObserver(Landroid/app/IProcessObserver;)V
+Landroid/app/IActivityManager;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
 Landroid/app/IActivityManager;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+Landroid/app/IActivityManager;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
+Landroid/app/IActivityManager;->removeContentProviderExternal(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->removeStack(I)V
 Landroid/app/IActivityManager;->removeTask(I)Z
 Landroid/app/IActivityManager;->requestBugReport(I)V
+Landroid/app/IActivityManager;->resizeDockedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/app/IActivityManager;->resizeStack(ILandroid/graphics/Rect;ZZZI)V
+Landroid/app/IActivityManager;->resizeTask(ILandroid/graphics/Rect;I)V
+Landroid/app/IActivityManager;->restart()V
 Landroid/app/IActivityManager;->resumeAppSwitches()V
+Landroid/app/IActivityManager;->sendIdleJobTrigger()V
+Landroid/app/IActivityManager;->serviceDoneExecuting(Landroid/os/IBinder;III)V
 Landroid/app/IActivityManager;->setActivityController(Landroid/app/IActivityController;Z)V
+Landroid/app/IActivityManager;->setAlwaysFinish(Z)V
+Landroid/app/IActivityManager;->setDebugApp(Ljava/lang/String;ZZ)V
+Landroid/app/IActivityManager;->setDumpHeapDebugLimit(Ljava/lang/String;IJLjava/lang/String;)V
+Landroid/app/IActivityManager;->setPackageScreenCompatMode(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->setProcessImportant(Landroid/os/IBinder;IZLjava/lang/String;)V
+Landroid/app/IActivityManager;->setProcessLimit(I)V
+Landroid/app/IActivityManager;->setProcessMemoryTrimLevel(Ljava/lang/String;II)Z
 Landroid/app/IActivityManager;->setRequestedOrientation(Landroid/os/IBinder;I)V
 Landroid/app/IActivityManager;->setTaskResizeable(II)V
+Landroid/app/IActivityManager;->shutdown(I)Z
 Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
 Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
 Landroid/app/IActivityManager;->startActivityFromRecents(ILandroid/os/Bundle;)I
+Landroid/app/IActivityManager;->startBinderTracking()Z
+Landroid/app/IActivityManager;->startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;ILandroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;ILjava/lang/String;)Z
 Landroid/app/IActivityManager;->startRecentsActivity(Landroid/content/Intent;Landroid/app/IAssistDataReceiver;Landroid/view/IRecentsAnimationRunner;)V
+Landroid/app/IActivityManager;->startSystemLockTaskMode(I)V
+Landroid/app/IActivityManager;->startUserInBackground(I)Z
+Landroid/app/IActivityManager;->stopAppSwitches()V
+Landroid/app/IActivityManager;->stopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)Z
 Landroid/app/IActivityManager;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
+Landroid/app/IActivityManager;->stopUser(IZLandroid/app/IStopUserCallback;)I
+Landroid/app/IActivityManager;->suppressResizeConfigChanges(Z)V
+Landroid/app/IActivityManager;->switchUser(I)Z
+Landroid/app/IActivityManager;->unbindBackupAgent(Landroid/content/pm/ApplicationInfo;)V
 Landroid/app/IActivityManager;->unbindService(Landroid/app/IServiceConnection;)Z
+Landroid/app/IActivityManager;->unhandledBack()V
+Landroid/app/IActivityManager;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
+Landroid/app/IActivityManager;->unregisterProcessObserver(Landroid/app/IProcessObserver;)V
+Landroid/app/IActivityManager;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
 Landroid/app/IActivityManager;->unstableProviderDied(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->updateConfiguration(Landroid/content/res/Configuration;)Z
+Landroid/app/IActivityManager;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V
 Landroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/IAlarmManager$Stub;-><init>()V
+Landroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_remove:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_set:I
-Landroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
+Landroid/app/IAlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+Landroid/app/IAlarmManager;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 Landroid/app/IAlarmManager;->setTime(J)Z
-Landroid/app/IAppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
+Landroid/app/IApplicationThread;->processInBackground()V
+Landroid/app/IApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
+Landroid/app/IApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/IApplicationThread;->scheduleExit()V
+Landroid/app/IApplicationThread;->scheduleLowMemory()V
+Landroid/app/IApplicationThread;->scheduleStopService(Landroid/os/IBinder;)V
+Landroid/app/IApplicationThread;->scheduleSuicide()V
 Landroid/app/IApplicationThread;->scheduleTrimMemory(I)V
+Landroid/app/IApplicationThread;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
+Landroid/app/IApplicationThread;->updateTimeZone()V
+Landroid/app/IAppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
 Landroid/app/IAssistDataReceiver$Stub;-><init>()V
 Landroid/app/IAssistDataReceiver;->onHandleAssistData(Landroid/os/Bundle;)V
 Landroid/app/IAssistDataReceiver;->onHandleAssistScreenshot(Landroid/graphics/Bitmap;)V
+Landroid/app/IBackupAgent$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IBackupAgent;
+Landroid/app/IInputForwarder;->forwardEvent(Landroid/view/InputEvent;)Z
+Landroid/app/IInstrumentationWatcher$Stub;-><init>()V
+Landroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
+Landroid/app/IInstrumentationWatcher;->instrumentationFinished(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
+Landroid/app/IInstrumentationWatcher;->instrumentationStatus(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
 Landroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
+Landroid/app/INotificationManager$Stub;-><init>()V
 Landroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager;
+Landroid/app/INotificationManager;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
 Landroid/app/INotificationManager;->cancelAllNotifications(Ljava/lang/String;I)V
 Landroid/app/INotificationManager;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/app/INotificationManager;->cancelToast(Ljava/lang/String;Landroid/app/ITransientNotification;)V
 Landroid/app/INotificationManager;->enqueueToast(Ljava/lang/String;Landroid/app/ITransientNotification;I)V
-Landroid/app/IProcessObserver$Stub;-><init>()V
-Landroid/app/ISearchManager$Stub$Proxy;->getGlobalSearchActivity()Landroid/content/ComponentName;
-Landroid/app/ISearchManager$Stub$Proxy;->getWebSearchActivity()Landroid/content/ComponentName;
-Landroid/app/ISearchManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManager;
-Landroid/app/IServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/IServiceConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IServiceConnection$Stub;-><init>()V
-Landroid/app/IServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IServiceConnection;
-Landroid/app/IStopUserCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/IStopUserCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IStopUserCallback$Stub;-><init>()V
-Landroid/app/IStopUserCallback;->userStopped(I)V
-Landroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/IWallpaperManager;->getWallpaper(Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+Landroid/app/INotificationManager;->getActiveNotifications(Ljava/lang/String;)[Landroid/service/notification/StatusBarNotification;
+Landroid/app/INotificationManager;->getHistoricalNotifications(Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
+Landroid/app/INotificationManager;->getZenMode()I
+Landroid/app/INotificationManager;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+Landroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Lcom/android/internal/content/ReferrerIntent;)V
+Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
 Landroid/app/Instrumentation;->execStartActivities(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;)V
 Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
 Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
 Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
+Landroid/app/Instrumentation;->execStartActivityAsCaller(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;ZI)Landroid/app/Instrumentation$ActivityResult;
+Landroid/app/Instrumentation;->execStartActivityFromAppTask(Landroid/content/Context;Landroid/os/IBinder;Landroid/app/IAppTask;Landroid/content/Intent;Landroid/os/Bundle;)V
+Landroid/app/IntentReceiverLeaked;-><init>(Ljava/lang/String;)V
 Landroid/app/IntentService;->mServiceHandler:Landroid/app/IntentService$ServiceHandler;
+Landroid/app/IProcessObserver$Stub;-><init>()V
+Landroid/app/ISearchManager$Stub$Proxy;->getGlobalSearchActivity()Landroid/content/ComponentName;
+Landroid/app/ISearchManager$Stub$Proxy;->getWebSearchActivity()Landroid/content/ComponentName;
+Landroid/app/ISearchManager$Stub;-><init>()V
+Landroid/app/ISearchManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManager;
+Landroid/app/ISearchManager;->getGlobalSearchActivity()Landroid/content/ComponentName;
+Landroid/app/IServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/IServiceConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IServiceConnection$Stub;-><init>()V
+Landroid/app/IServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IServiceConnection;
+Landroid/app/IServiceConnection;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
+Landroid/app/IStopUserCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/IStopUserCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IStopUserCallback$Stub;-><init>()V
+Landroid/app/IStopUserCallback;->userStopped(I)V
+Landroid/app/ITransientNotification$Stub;-><init>()V
+Landroid/app/ITransientNotification;->hide()V
+Landroid/app/ITransientNotification;->show(Landroid/os/IBinder;)V
+Landroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
+Landroid/app/IUiModeManager;->disableCarMode(I)V
+Landroid/app/IUserSwitchObserver$Stub;-><init>()V
+Landroid/app/IWallpaperManager$Stub;-><init>()V
+Landroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
+Landroid/app/IWallpaperManager;->getHeightHint()I
+Landroid/app/IWallpaperManager;->getWallpaper(Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+Landroid/app/IWallpaperManager;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
+Landroid/app/IWallpaperManager;->getWidthHint()I
+Landroid/app/IWallpaperManager;->setWallpaperComponent(Landroid/content/ComponentName;)V
+Landroid/app/IWallpaperManagerCallback$Stub;-><init>()V
+Landroid/app/IWallpaperManagerCallback;->onWallpaperChanged()V
+Landroid/app/job/IJobCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/job/IJobCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/job/IJobCallback$Stub;-><init>()V
+Landroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback;
+Landroid/app/job/IJobCallback;->acknowledgeStartMessage(IZ)V
+Landroid/app/job/IJobCallback;->acknowledgeStopMessage(IZ)V
+Landroid/app/job/IJobCallback;->completeWork(II)Z
+Landroid/app/job/IJobCallback;->dequeueWork(I)Landroid/app/job/JobWorkItem;
+Landroid/app/job/IJobCallback;->jobFinished(IZ)V
+Landroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler;
+Landroid/app/job/IJobService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/job/IJobService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/job/IJobService$Stub;-><init>()V
+Landroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
+Landroid/app/job/IJobService;->startJob(Landroid/app/job/JobParameters;)V
+Landroid/app/job/IJobService;->stopJob(Landroid/app/job/JobParameters;)V
+Landroid/app/job/JobInfo$Builder;->setEstimatedNetworkBytes(J)Landroid/app/job/JobInfo$Builder;
+Landroid/app/job/JobInfo$Builder;->setFlags(I)Landroid/app/job/JobInfo$Builder;
+Landroid/app/job/JobInfo$Builder;->setIsPrefetch(Z)Landroid/app/job/JobInfo$Builder;
+Landroid/app/job/JobInfo$Builder;->setPriority(I)Landroid/app/job/JobInfo$Builder;
+Landroid/app/job/JobInfo;->flags:I
+Landroid/app/job/JobInfo;->FLAG_WILL_BE_FOREGROUND:I
+Landroid/app/job/JobInfo;->getEstimatedNetworkBytes()J
+Landroid/app/job/JobInfo;->jobId:I
+Landroid/app/job/JobInfo;->PRIORITY_FOREGROUND_APP:I
+Landroid/app/job/JobInfo;->service:Landroid/content/ComponentName;
+Landroid/app/job/JobParameters;->callback:Landroid/os/IBinder;
+Landroid/app/job/JobParameters;->getCallback()Landroid/app/job/IJobCallback;
+Landroid/app/job/JobParameters;->jobId:I
+Landroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;J)V
+Landroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V
+Landroid/app/job/JobWorkItem;->getEstimatedNetworkBytes()J
+Landroid/app/job/JobWorkItem;->mDeliveryCount:I
+Landroid/app/job/JobWorkItem;->mGrants:Ljava/lang/Object;
+Landroid/app/job/JobWorkItem;->mIntent:Landroid/content/Intent;
+Landroid/app/job/JobWorkItem;->mWorkId:I
 Landroid/app/KeyguardManager;->dismissKeyguard(Landroid/app/Activity;Landroid/app/KeyguardManager$KeyguardDismissCallback;Landroid/os/Handler;)V
 Landroid/app/KeyguardManager;->isDeviceLocked(I)Z
+Landroid/app/KeyguardManager;->isDeviceSecure(I)Z
 Landroid/app/LoadedApk$ReceiverDispatcher;->getIIntentReceiver()Landroid/content/IIntentReceiver;
 Landroid/app/LoadedApk$ReceiverDispatcher;->getIntentReceiver()Landroid/content/BroadcastReceiver;
 Landroid/app/LoadedApk$ReceiverDispatcher;->mContext:Landroid/content/Context;
@@ -573,12 +845,20 @@
 Landroid/app/LoadedApk$ServiceDispatcher;->getIServiceConnection()Landroid/app/IServiceConnection;
 Landroid/app/LoadedApk$ServiceDispatcher;->mConnection:Landroid/content/ServiceConnection;
 Landroid/app/LoadedApk$ServiceDispatcher;->mContext:Landroid/content/Context;
+Landroid/app/LoadedApk;->getAppDir()Ljava/lang/String;
+Landroid/app/LoadedApk;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
 Landroid/app/LoadedApk;->getAssets()Landroid/content/res/AssetManager;
 Landroid/app/LoadedApk;->getClassLoader()Ljava/lang/ClassLoader;
 Landroid/app/LoadedApk;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
 Landroid/app/LoadedApk;->getDataDirFile()Ljava/io/File;
+Landroid/app/LoadedApk;->getOverlayDirs()[Ljava/lang/String;
+Landroid/app/LoadedApk;->getPackageName()Ljava/lang/String;
+Landroid/app/LoadedApk;->getResDir()Ljava/lang/String;
 Landroid/app/LoadedApk;->getResources()Landroid/content/res/Resources;
+Landroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
+Landroid/app/LoadedApk;->getSplitResDirs()[Ljava/lang/String;
 Landroid/app/LoadedApk;->mActivityThread:Landroid/app/ActivityThread;
+Landroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
 Landroid/app/LoadedApk;->mAppDir:Ljava/lang/String;
 Landroid/app/LoadedApk;->mApplication:Landroid/app/Application;
 Landroid/app/LoadedApk;->mApplicationInfo:Landroid/content/pm/ApplicationInfo;
@@ -594,27 +874,34 @@
 Landroid/app/LoadedApk;->mResources:Landroid/content/res/Resources;
 Landroid/app/LoadedApk;->mServices:Landroid/util/ArrayMap;
 Landroid/app/LoadedApk;->mSplitResDirs:[Ljava/lang/String;
-Landroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
 Landroid/app/LoadedApk;->rewriteRValues(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
 Landroid/app/LocalActivityManager;->mActivities:Ljava/util/Map;
 Landroid/app/LocalActivityManager;->mActivityArray:Ljava/util/ArrayList;
+Landroid/app/LocalActivityManager;->moveToState(Landroid/app/LocalActivityManager$LocalActivityRecord;I)V
 Landroid/app/LocalActivityManager;->mParent:Landroid/app/Activity;
 Landroid/app/LocalActivityManager;->mResumed:Landroid/app/LocalActivityManager$LocalActivityRecord;
 Landroid/app/LocalActivityManager;->mSingleMode:Z
 Landroid/app/NativeActivity;->hideIme(I)V
+Landroid/app/NativeActivity;->loadNativeCode(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[BLjava/lang/ClassLoader;Ljava/lang/String;)J
+Landroid/app/NativeActivity;->mNativeHandle:J
 Landroid/app/NativeActivity;->setWindowFlags(II)V
 Landroid/app/NativeActivity;->setWindowFormat(I)V
 Landroid/app/NativeActivity;->showIme(I)V
 Landroid/app/Notification$Action;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/app/Notification$Builder;->getBaseLayoutResource()I
+Landroid/app/Notification$Builder;->loadHeaderAppName()Ljava/lang/String;
 Landroid/app/Notification$Builder;->mActions:Ljava/util/ArrayList;
 Landroid/app/Notification$Builder;->makePublicContentView()Landroid/widget/RemoteViews;
 Landroid/app/Notification$Builder;->setChannel(Ljava/lang/String;)Landroid/app/Notification$Builder;
 Landroid/app/Notification$Builder;->setTimeout(J)Landroid/app/Notification$Builder;
+Landroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
 Landroid/app/Notification$TvExtender;->getChannel()Ljava/lang/String;
 Landroid/app/Notification;-><init>(Landroid/content/Context;ILjava/lang/CharSequence;JLjava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/content/Intent;)V
+Landroid/app/Notification;->allPendingIntents:Landroid/util/ArraySet;
 Landroid/app/Notification;->getChannel()Ljava/lang/String;
 Landroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class;
 Landroid/app/Notification;->getTimeout()J
+Landroid/app/Notification;->isGroupChild()Z
 Landroid/app/Notification;->isGroupSummary()Z
 Landroid/app/Notification;->mChannelId:Ljava/lang/String;
 Landroid/app/Notification;->mGroupKey:Ljava/lang/String;
@@ -622,13 +909,26 @@
 Landroid/app/Notification;->mSmallIcon:Landroid/graphics/drawable/Icon;
 Landroid/app/Notification;->setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
 Landroid/app/Notification;->setSmallIcon(Landroid/graphics/drawable/Icon;)V
+Landroid/app/NotificationChannel;->mId:Ljava/lang/String;
+Landroid/app/NotificationChannel;->setBlockableSystem(Z)V
+Landroid/app/NotificationChannelGroup;->mId:Ljava/lang/String;
+Landroid/app/NotificationManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 Landroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V
+Landroid/app/NotificationManager;->from(Landroid/content/Context;)Landroid/app/NotificationManager;
 Landroid/app/NotificationManager;->getService()Landroid/app/INotificationManager;
+Landroid/app/NotificationManager;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
 Landroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V
+Landroid/app/NotificationManager;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
 Landroid/app/NotificationManager;->sService:Landroid/app/INotificationManager;
+Landroid/app/PackageDeleteObserver;-><init>()V
+Landroid/app/PackageInstallObserver;-><init>()V
+Landroid/app/PackageInstallObserver;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
+Landroid/app/PendingIntent;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
 Landroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
+Landroid/app/PendingIntent;->getTag(Ljava/lang/String;)Ljava/lang/String;
 Landroid/app/PendingIntent;->isActivity()Z
+Landroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V
 Landroid/app/PictureInPictureArgs$Builder;
 Landroid/app/PictureInPictureArgs$Builder;-><init>()V
 Landroid/app/PictureInPictureArgs$Builder;->build()Landroid/app/PictureInPictureArgs;
@@ -636,23 +936,59 @@
 Landroid/app/PictureInPictureArgs$Builder;->setAspectRatio(Landroid/util/Rational;)Landroid/app/PictureInPictureArgs$Builder;
 Landroid/app/PictureInPictureArgs$Builder;->setSourceRectHint(Landroid/graphics/Rect;)Landroid/app/PictureInPictureArgs$Builder;
 Landroid/app/PictureInPictureArgs;
-Landroid/app/PictureInPictureArgs;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/PictureInPictureArgs;-><init>()V
 Landroid/app/PictureInPictureArgs;->convert(Landroid/app/PictureInPictureArgs;)Landroid/app/PictureInPictureParams;
 Landroid/app/PictureInPictureArgs;->convert(Landroid/app/PictureInPictureParams;)Landroid/app/PictureInPictureArgs;
+Landroid/app/PictureInPictureArgs;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/PictureInPictureArgs;->setActions(Ljava/util/List;)V
+Landroid/app/PictureInPictureArgs;->setAspectRatio(F)V
+Landroid/app/PictureInPictureParams;->getActions()Ljava/util/List;
 Landroid/app/PictureInPictureParams;->getAspectRatio()F
+Landroid/app/PictureInPictureParams;->getSourceRectHint()Landroid/graphics/Rect;
 Landroid/app/Presentation;->createPresentationContext(Landroid/content/Context;Landroid/view/Display;I)Landroid/content/Context;
+Landroid/app/ProgressDialog;->mMessageView:Landroid/widget/TextView;
+Landroid/app/ProgressDialog;->mProgress:Landroid/widget/ProgressBar;
 Landroid/app/ProgressDialog;->mProgressNumber:Landroid/widget/TextView;
 Landroid/app/QueuedWork;->addFinisher(Ljava/lang/Runnable;)V
 Landroid/app/QueuedWork;->removeFinisher(Ljava/lang/Runnable;)V
 Landroid/app/QueuedWork;->sFinishers:Ljava/util/LinkedList;
+Landroid/app/ResourcesManager;-><init>()V
 Landroid/app/ResourcesManager;->appendLibAssetForMainAssetPath(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;)Landroid/content/res/AssetManager;
 Landroid/app/ResourcesManager;->getInstance()Landroid/app/ResourcesManager;
 Landroid/app/ResourcesManager;->mActivityResourceReferences:Ljava/util/WeakHashMap;
 Landroid/app/ResourcesManager;->mResConfiguration:Landroid/content/res/Configuration;
 Landroid/app/ResourcesManager;->mResourceImpls:Landroid/util/ArrayMap;
 Landroid/app/ResourcesManager;->mResourceReferences:Ljava/util/ArrayList;
+Landroid/app/ResultInfo;-><init>(Ljava/lang/String;IILandroid/content/Intent;)V
+Landroid/app/ResultInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/app/ResultInfo;->mData:Landroid/content/Intent;
+Landroid/app/ResultInfo;->mRequestCode:I
 Landroid/app/ResultInfo;->mResultWho:Ljava/lang/String;
+Landroid/app/SearchableInfo$ActionKeyInfo;->getQueryActionMsg()Ljava/lang/String;
+Landroid/app/SearchableInfo$ActionKeyInfo;->getSuggestActionMsg()Ljava/lang/String;
+Landroid/app/SearchableInfo$ActionKeyInfo;->getSuggestActionMsgColumn()Ljava/lang/String;
+Landroid/app/SearchableInfo;->findActionKey(I)Landroid/app/SearchableInfo$ActionKeyInfo;
+Landroid/app/SearchableInfo;->getActivityContext(Landroid/content/Context;)Landroid/content/Context;
+Landroid/app/SearchableInfo;->getIconId()I
+Landroid/app/SearchableInfo;->getLabelId()I
+Landroid/app/SearchableInfo;->getProviderContext(Landroid/content/Context;Landroid/content/Context;)Landroid/content/Context;
+Landroid/app/SearchDialog;->isLandscapeMode(Landroid/content/Context;)Z
+Landroid/app/SearchDialog;->launchQuerySearch()V
+Landroid/app/SearchDialog;->launchQuerySearch(ILjava/lang/String;)V
+Landroid/app/SearchDialog;->setWorking(Z)V
+Landroid/app/SearchManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+Landroid/app/SearchManager;->DISABLE_VOICE_SEARCH:Ljava/lang/String;
+Landroid/app/SearchManager;->getSuggestions(Landroid/app/SearchableInfo;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/app/SearchManager;->getSuggestions(Landroid/app/SearchableInfo;Ljava/lang/String;I)Landroid/database/Cursor;
+Landroid/app/SearchManager;->getWebSearchActivity()Landroid/content/ComponentName;
+Landroid/app/SearchManager;->isVisible()Z
+Landroid/app/SearchManager;->launchAssist(Landroid/os/Bundle;)V
+Landroid/app/SearchManager;->mSearchDialog:Landroid/app/SearchDialog;
+Landroid/app/SearchManager;->startSearch(Ljava/lang/String;ZLandroid/content/ComponentName;Landroid/os/Bundle;ZLandroid/graphics/Rect;)V
+Landroid/app/servertransaction/ClientTransaction;->mActivityCallbacks:Ljava/util/List;
+Landroid/app/servertransaction/LaunchActivityItem;->mInfo:Landroid/content/pm/ActivityInfo;
+Landroid/app/servertransaction/LaunchActivityItem;->mIntent:Landroid/content/Intent;
 Landroid/app/Service;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Ljava/lang/String;Landroid/os/IBinder;Landroid/app/Application;Ljava/lang/Object;)V
 Landroid/app/Service;->mActivityManager:Landroid/app/IActivityManager;
 Landroid/app/Service;->mApplication:Landroid/app/Application;
@@ -661,17 +997,36 @@
 Landroid/app/Service;->mThread:Landroid/app/ActivityThread;
 Landroid/app/Service;->mToken:Landroid/os/IBinder;
 Landroid/app/Service;->setForeground(Z)V
+Landroid/app/ServiceConnectionLeaked;-><init>(Ljava/lang/String;)V
 Landroid/app/SharedPreferencesImpl;-><init>(Ljava/io/File;I)V
 Landroid/app/SharedPreferencesImpl;->mFile:Ljava/io/File;
 Landroid/app/SharedPreferencesImpl;->startReloadIfChangedUnexpectedly()V
+Landroid/app/slice/Slice$Builder;-><init>(Landroid/net/Uri;)V
+Landroid/app/slice/Slice$Builder;->addTimestamp(JLjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+Landroid/app/slice/Slice$Builder;->setSpec(Landroid/app/slice/SliceSpec;)Landroid/app/slice/Slice$Builder;
+Landroid/app/slice/Slice;->EXTRA_SLIDER_VALUE:Ljava/lang/String;
+Landroid/app/slice/Slice;->SUBTYPE_SLIDER:Ljava/lang/String;
+Landroid/app/slice/SliceItem;->FORMAT_TIMESTAMP:Ljava/lang/String;
+Landroid/app/slice/SliceItem;->getTimestamp()J
+Landroid/app/slice/SliceManager;->bindSlice(Landroid/content/Intent;Ljava/util/List;)Landroid/app/slice/Slice;
+Landroid/app/slice/SliceManager;->bindSlice(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
+Landroid/app/slice/SliceManager;->pinSlice(Landroid/net/Uri;Ljava/util/List;)V
+Landroid/app/slice/SliceProvider;->onBindSlice(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
+Landroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V
 Landroid/app/StatusBarManager;->collapsePanels()V
 Landroid/app/StatusBarManager;->disable(I)V
+Landroid/app/StatusBarManager;->DISABLE_EXPAND:I
+Landroid/app/StatusBarManager;->DISABLE_NONE:I
+Landroid/app/StatusBarManager;->DISABLE_NOTIFICATION_TICKER:I
 Landroid/app/StatusBarManager;->expandNotificationsPanel()V
 Landroid/app/StatusBarManager;->expandSettingsPanel()V
 Landroid/app/StatusBarManager;->expandSettingsPanel(Ljava/lang/String;)V
 Landroid/app/StatusBarManager;->getService()Lcom/android/internal/statusbar/IStatusBarService;
+Landroid/app/StatusBarManager;->mContext:Landroid/content/Context;
+Landroid/app/StatusBarManager;->mToken:Landroid/os/IBinder;
 Landroid/app/StatusBarManager;->removeIcon(Ljava/lang/String;)V
 Landroid/app/StatusBarManager;->setIcon(Ljava/lang/String;IILjava/lang/String;)V
+Landroid/app/StatusBarManager;->setIconVisibility(Ljava/lang/String;Z)V
 Landroid/app/TaskStackListener;-><init>()V
 Landroid/app/TaskStackListener;->onActivityDismissingDockedStack()V
 Landroid/app/TaskStackListener;->onActivityForcedResizable(Ljava/lang/String;II)V
@@ -688,6 +1043,58 @@
 Landroid/app/TaskStackListener;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
 Landroid/app/TaskStackListener;->onTaskStackChanged()V
 Landroid/app/TimePickerDialog;->mTimePicker:Landroid/widget/TimePicker;
+Landroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/app/trust/TrustManager;->reportUnlockAttempt(ZI)V
+Landroid/app/UiAutomation;-><init>(Landroid/os/Looper;Landroid/app/IUiAutomationConnection;)V
+Landroid/app/UiAutomation;->connect()V
+Landroid/app/UiAutomation;->disconnect()V
+Landroid/app/UiAutomationConnection;-><init>()V
+Landroid/app/UiModeManager;-><init>()V
+Landroid/app/usage/ConfigurationStats;->mActivationCount:I
+Landroid/app/usage/ConfigurationStats;->mBeginTimeStamp:J
+Landroid/app/usage/ConfigurationStats;->mConfiguration:Landroid/content/res/Configuration;
+Landroid/app/usage/ConfigurationStats;->mEndTimeStamp:J
+Landroid/app/usage/ConfigurationStats;->mLastTimeActive:J
+Landroid/app/usage/ConfigurationStats;->mTotalTimeActive:J
+Landroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
+Landroid/app/usage/IUsageStatsManager;->isAppInactive(Ljava/lang/String;I)Z
+Landroid/app/usage/IUsageStatsManager;->queryConfigurationStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager;->setAppInactive(Ljava/lang/String;ZI)V
+Landroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;)V
+Landroid/app/usage/StorageStats;->getCodeBytes()J
+Landroid/app/usage/StorageStatsManager;->getFreeBytes(Ljava/lang/String;)J
+Landroid/app/usage/StorageStatsManager;->getTotalBytes(Ljava/lang/String;)J
+Landroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/lang/String;)Z
+Landroid/app/usage/StorageStatsManager;->queryExternalStatsForUser(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/ExternalStorageStats;
+Landroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
+Landroid/app/usage/StorageStatsManager;->queryStatsForUid(Ljava/lang/String;I)Landroid/app/usage/StorageStats;
+Landroid/app/usage/StorageStatsManager;->queryStatsForUser(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
+Landroid/app/usage/UsageEvents$Event;->mClass:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mConfiguration:Landroid/content/res/Configuration;
+Landroid/app/usage/UsageEvents$Event;->mEventType:I
+Landroid/app/usage/UsageEvents$Event;->mPackage:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mTimeStamp:J
+Landroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
+Landroid/app/usage/UsageEvents;->findStringIndex(Ljava/lang/String;)I
+Landroid/app/usage/UsageEvents;->mEventCount:I
+Landroid/app/usage/UsageEvents;->mEventsToWrite:Ljava/util/List;
+Landroid/app/usage/UsageEvents;->mIndex:I
+Landroid/app/usage/UsageEvents;->mParcel:Landroid/os/Parcel;
+Landroid/app/usage/UsageEvents;->mStringPool:[Ljava/lang/String;
+Landroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V
+Landroid/app/usage/UsageEvents;->writeEventToParcel(Landroid/app/usage/UsageEvents$Event;Landroid/os/Parcel;I)V
+Landroid/app/usage/UsageStats;->mBeginTimeStamp:J
+Landroid/app/usage/UsageStats;->mEndTimeStamp:J
+Landroid/app/usage/UsageStats;->mLastEvent:I
+Landroid/app/usage/UsageStats;->mLastTimeUsed:J
+Landroid/app/usage/UsageStats;->mLaunchCount:I
+Landroid/app/usage/UsageStats;->mPackageName:Ljava/lang/String;
+Landroid/app/usage/UsageStats;->mTotalTimeInForeground:J
+Landroid/app/usage/UsageStatsManager;->mContext:Landroid/content/Context;
+Landroid/app/usage/UsageStatsManager;->mService:Landroid/app/usage/IUsageStatsManager;
+Landroid/app/usage/UsageStatsManager;->sEmptyResults:Landroid/app/usage/UsageEvents;
+Landroid/app/UserSwitchObserver;-><init>()V
 Landroid/app/Vr2dDisplayProperties$Builder;-><init>()V
 Landroid/app/Vr2dDisplayProperties$Builder;->build()Landroid/app/Vr2dDisplayProperties;
 Landroid/app/Vr2dDisplayProperties$Builder;->setEnabled(Z)Landroid/app/Vr2dDisplayProperties$Builder;
@@ -701,104 +1108,35 @@
 Landroid/app/VrStateCallback;->onPersistentVrStateChanged(Z)V
 Landroid/app/WallpaperColors;-><init>(Landroid/graphics/Color;Landroid/graphics/Color;Landroid/graphics/Color;I)V
 Landroid/app/WallpaperColors;->getColorHints()I
+Landroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;I)V
 Landroid/app/WallpaperManager;->getBitmap()Landroid/graphics/Bitmap;
 Landroid/app/WallpaperManager;->getBitmap(Z)Landroid/graphics/Bitmap;
 Landroid/app/WallpaperManager;->getIWallpaperManager()Landroid/app/IWallpaperManager;
+Landroid/app/WallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors;
+Landroid/app/WallpaperManager;->getWallpaperFile(II)Landroid/os/ParcelFileDescriptor;
 Landroid/app/WallpaperManager;->openDefaultWallpaper(Landroid/content/Context;I)Ljava/io/InputStream;
-Landroid/app/WallpaperManager;->sGlobals:Landroid/app/WallpaperManager$Globals;
 Landroid/app/WallpaperManager;->setBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;ZII)I
-Landroid/app/admin/DevicePolicyManager;->createAndInitializeUser(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;)Landroid/os/UserHandle;
-Landroid/app/admin/DevicePolicyManager;->createUser(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/UserHandle;
-Landroid/app/admin/DevicePolicyManager;->getDeviceInitializerApp()Ljava/lang/String;
-Landroid/app/admin/DevicePolicyManager;->getDeviceInitializerComponent()Landroid/content/ComponentName;
-Landroid/app/admin/DevicePolicyManager;->getMandatoryBackupTransport()Landroid/content/ComponentName;
-Landroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
-Landroid/app/admin/DevicePolicyManager;->getTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;I)Ljava/util/List;
-Landroid/app/admin/DevicePolicyManager;->packageHasActiveAdmins(Ljava/lang/String;I)Z
-Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;Z)V
-Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
-Landroid/app/admin/DevicePolicyManager;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
-Landroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
-Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_packageHasActiveAdmins:I
-Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeActiveAdmin:I
-Landroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
-Landroid/app/admin/SecurityLog$SecurityEvent;-><init>([B)V
-Landroid/app/backup/BackupDataInput$EntityHeader;->dataSize:I
-Landroid/app/backup/BackupDataInput$EntityHeader;->key:Ljava/lang/String;
-Landroid/app/backup/BackupDataInputStream;->dataSize:I
-Landroid/app/backup/BackupDataInputStream;->key:Ljava/lang/String;
-Landroid/app/backup/BackupDataOutput;->mBackupWriter:J
-Landroid/app/backup/BackupHelperDispatcher$Header;->chunkSize:I
-Landroid/app/backup/BackupHelperDispatcher$Header;->keyPrefix:Ljava/lang/String;
-Landroid/app/backup/FileBackupHelperBase;->writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V
-Landroid/app/backup/FullBackup;->backupToTar(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/backup/FullBackupDataOutput;)I
-Landroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;)V
-Landroid/app/backup/FullBackupDataOutput;->addSize(J)V
-Landroid/app/backup/FullBackupDataOutput;->mData:Landroid/app/backup/BackupDataOutput;
-Landroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager;
-Landroid/app/job/IJobCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/job/IJobCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/job/IJobCallback$Stub;-><init>()V
-Landroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback;
-Landroid/app/job/IJobCallback;->acknowledgeStartMessage(IZ)V
-Landroid/app/job/IJobCallback;->acknowledgeStopMessage(IZ)V
-Landroid/app/job/IJobCallback;->jobFinished(IZ)V
-Landroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler;
-Landroid/app/job/IJobService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/job/IJobService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/job/IJobService$Stub;-><init>()V
-Landroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
-Landroid/app/job/IJobService;->startJob(Landroid/app/job/JobParameters;)V
-Landroid/app/job/IJobService;->stopJob(Landroid/app/job/JobParameters;)V
-Landroid/app/job/JobInfo$Builder;->setEstimatedNetworkBytes(J)Landroid/app/job/JobInfo$Builder;
-Landroid/app/job/JobInfo$Builder;->setIsPrefetch(Z)Landroid/app/job/JobInfo$Builder;
-Landroid/app/job/JobInfo;->flags:I
-Landroid/app/job/JobInfo;->getEstimatedNetworkBytes()J
-Landroid/app/job/JobInfo;->jobId:I
-Landroid/app/job/JobInfo;->service:Landroid/content/ComponentName;
-Landroid/app/job/JobParameters;->callback:Landroid/os/IBinder;
-Landroid/app/job/JobParameters;->jobId:I
-Landroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;J)V
-Landroid/app/job/JobWorkItem;->getEstimatedNetworkBytes()J
-Landroid/app/slice/Slice$Builder;-><init>(Landroid/net/Uri;)V
-Landroid/app/slice/Slice$Builder;->addTimestamp(JLjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
-Landroid/app/slice/Slice$Builder;->setSpec(Landroid/app/slice/SliceSpec;)Landroid/app/slice/Slice$Builder;
-Landroid/app/slice/Slice;->EXTRA_SLIDER_VALUE:Ljava/lang/String;
-Landroid/app/slice/Slice;->SUBTYPE_SLIDER:Ljava/lang/String;
-Landroid/app/slice/SliceItem;->FORMAT_TIMESTAMP:Ljava/lang/String;
-Landroid/app/slice/SliceItem;->getTimestamp()J
-Landroid/app/slice/SliceManager;->bindSlice(Landroid/content/Intent;Ljava/util/List;)Landroid/app/slice/Slice;
-Landroid/app/slice/SliceManager;->bindSlice(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
-Landroid/app/slice/SliceManager;->pinSlice(Landroid/net/Uri;Ljava/util/List;)V
-Landroid/app/slice/SliceProvider;->onBindSlice(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
-Landroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/usage/StorageStats;->getCodeBytes()J
-Landroid/app/usage/StorageStatsManager;->getFreeBytes(Ljava/lang/String;)J
-Landroid/app/usage/StorageStatsManager;->getTotalBytes(Ljava/lang/String;)J
-Landroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/lang/String;)Z
-Landroid/app/usage/StorageStatsManager;->queryExternalStatsForUser(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/ExternalStorageStats;
-Landroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
-Landroid/app/usage/StorageStatsManager;->queryStatsForUid(Ljava/lang/String;I)Landroid/app/usage/StorageStats;
-Landroid/app/usage/StorageStatsManager;->queryStatsForUser(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
-Landroid/app/usage/UsageStats;->mLastEvent:I
-Landroid/app/usage/UsageStats;->mLaunchCount:I
-Landroid/app/usage/UsageStats;->mTotalTimeInForeground:J
-Landroid/app/usage/UsageStatsManager;->mService:Landroid/app/usage/IUsageStatsManager;
+Landroid/app/WallpaperManager;->setWallpaperComponent(Landroid/content/ComponentName;I)Z
+Landroid/app/WallpaperManager;->sGlobals:Landroid/app/WallpaperManager$Globals;
+Landroid/appwidget/AppWidgetHost;-><init>(Landroid/content/Context;ILandroid/widget/RemoteViews$OnClickHandler;Landroid/os/Looper;)V
+Landroid/appwidget/AppWidgetHost;->HANDLE_VIEW_DATA_CHANGED:I
+Landroid/appwidget/AppWidgetHost;->mHandler:Landroid/os/Handler;
 Landroid/appwidget/AppWidgetHost;->sService:Lcom/android/internal/appwidget/IAppWidgetService;
+Landroid/appwidget/AppWidgetHostView;->getDefaultPaddingForWidget(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/graphics/Rect;)Landroid/graphics/Rect;
+Landroid/appwidget/AppWidgetHostView;->mAppWidgetId:I
+Landroid/appwidget/AppWidgetHostView;->mInfo:Landroid/appwidget/AppWidgetProviderInfo;
+Landroid/appwidget/AppWidgetHostView;->updateAppWidgetSize(Landroid/os/Bundle;IIIIZ)V
 Landroid/appwidget/AppWidgetManager;->bindAppWidgetId(ILandroid/content/ComponentName;)V
 Landroid/appwidget/AppWidgetManager;->bindAppWidgetId(ILandroid/content/ComponentName;Landroid/os/Bundle;)V
 Landroid/appwidget/AppWidgetManager;->bindAppWidgetIdIfAllowed(IILandroid/content/ComponentName;Landroid/os/Bundle;)Z
+Landroid/appwidget/AppWidgetManager;->bindRemoteViewsService(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/IServiceConnection;I)Z
+Landroid/appwidget/AppWidgetManager;->getInstalledProviders(I)Ljava/util/List;
+Landroid/appwidget/AppWidgetManager;->getInstalledProvidersForProfile(ILandroid/os/UserHandle;Ljava/lang/String;)Ljava/util/List;
 Landroid/appwidget/AppWidgetManager;->mService:Lcom/android/internal/appwidget/IAppWidgetService;
 Landroid/appwidget/AppWidgetProviderInfo;->providerInfo:Landroid/content/pm/ActivityInfo;
 Landroid/bluetooth/BluetoothA2dp;->ACTION_ACTIVE_DEVICE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dp;->ACTION_CODEC_CONFIG_CHANGED:Ljava/lang/String;
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_NOT_SUPPORTED:I
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_DISABLED:I
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_ENABLED:I
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_UNKNOWN:I
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_SUPPORTED:I
-Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_SUPPORT_UNKNOWN:I
+Landroid/bluetooth/BluetoothA2dp;->close()V
 Landroid/bluetooth/BluetoothA2dp;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothA2dp;->disableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)V
 Landroid/bluetooth/BluetoothA2dp;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -806,17 +1144,37 @@
 Landroid/bluetooth/BluetoothA2dp;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
 Landroid/bluetooth/BluetoothA2dp;->getCodecStatus(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothCodecStatus;
 Landroid/bluetooth/BluetoothA2dp;->getOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothA2dp;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_NOT_SUPPORTED:I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_DISABLED:I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_ENABLED:I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_PREF_UNKNOWN:I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_SUPPORTED:I
+Landroid/bluetooth/BluetoothA2dp;->OPTIONAL_CODECS_SUPPORT_UNKNOWN:I
 Landroid/bluetooth/BluetoothA2dp;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothA2dp;->setCodecConfigPreference(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothCodecConfig;)V
 Landroid/bluetooth/BluetoothA2dp;->setOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/bluetooth/BluetoothA2dp;->stateToString(I)Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dp;->supportsOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothA2dpSink;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothAdapter;->disable(Z)Z
 Landroid/bluetooth/BluetoothAdapter;->factoryReset()Z
+Landroid/bluetooth/BluetoothAdapter;->getBluetoothManager()Landroid/bluetooth/IBluetoothManager;
+Landroid/bluetooth/BluetoothAdapter;->getBluetoothService(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
+Landroid/bluetooth/BluetoothAdapter;->getConnectionState()I
 Landroid/bluetooth/BluetoothAdapter;->getDiscoverableTimeout()I
 Landroid/bluetooth/BluetoothAdapter;->getLeState()I
+Landroid/bluetooth/BluetoothAdapter;->getUuids()[Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingEncryptedRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingRfcommOn(IZZ)Landroid/bluetooth/BluetoothServerSocket;
 Landroid/bluetooth/BluetoothAdapter;->mService:Landroid/bluetooth/IBluetooth;
+Landroid/bluetooth/BluetoothAdapter;->setDiscoverableTimeout(I)V
 Landroid/bluetooth/BluetoothAdapter;->setScanMode(I)Z
 Landroid/bluetooth/BluetoothAdapter;->setScanMode(II)Z
+Landroid/bluetooth/BluetoothClass;-><init>(I)V
+Landroid/bluetooth/BluetoothClass;->doesClassMatch(I)Z
+Landroid/bluetooth/BluetoothClass;->PROFILE_A2DP:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_HEADSET:I
 Landroid/bluetooth/BluetoothCodecConfig;
 Landroid/bluetooth/BluetoothCodecConfig;-><init>(IIIIIJJJJ)V
 Landroid/bluetooth/BluetoothCodecConfig;->BITS_PER_SAMPLE_16:I
@@ -829,20 +1187,6 @@
 Landroid/bluetooth/BluetoothCodecConfig;->CODEC_PRIORITY_DEFAULT:I
 Landroid/bluetooth/BluetoothCodecConfig;->CODEC_PRIORITY_DISABLED:I
 Landroid/bluetooth/BluetoothCodecConfig;->CODEC_PRIORITY_HIGHEST:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_176400:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_192000:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_44100:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_48000:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_88200:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_96000:I
-Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_NONE:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_AAC:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_APTX:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_APTX_HD:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_INVALID:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_LDAC:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_MAX:I
-Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_SBC:I
 Landroid/bluetooth/BluetoothCodecConfig;->getBitsPerSample()I
 Landroid/bluetooth/BluetoothCodecConfig;->getChannelMode()I
 Landroid/bluetooth/BluetoothCodecConfig;->getCodecPriority()I
@@ -852,34 +1196,105 @@
 Landroid/bluetooth/BluetoothCodecConfig;->getCodecSpecific4()J
 Landroid/bluetooth/BluetoothCodecConfig;->getCodecType()I
 Landroid/bluetooth/BluetoothCodecConfig;->getSampleRate()I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_176400:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_192000:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_44100:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_48000:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_88200:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_96000:I
+Landroid/bluetooth/BluetoothCodecConfig;->SAMPLE_RATE_NONE:I
 Landroid/bluetooth/BluetoothCodecConfig;->setCodecPriority(I)V
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_AAC:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_APTX:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_APTX_HD:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_INVALID:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_LDAC:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_MAX:I
+Landroid/bluetooth/BluetoothCodecConfig;->SOURCE_CODEC_TYPE_SBC:I
 Landroid/bluetooth/BluetoothCodecStatus;
 Landroid/bluetooth/BluetoothCodecStatus;->EXTRA_CODEC_STATUS:Ljava/lang/String;
 Landroid/bluetooth/BluetoothCodecStatus;->getCodecConfig()Landroid/bluetooth/BluetoothCodecConfig;
 Landroid/bluetooth/BluetoothCodecStatus;->getCodecsLocalCapabilities()[Landroid/bluetooth/BluetoothCodecConfig;
 Landroid/bluetooth/BluetoothCodecStatus;->getCodecsSelectableCapabilities()[Landroid/bluetooth/BluetoothCodecConfig;
+Landroid/bluetooth/BluetoothDevice;-><init>(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothDevice;->ACTION_ALIAS_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_DISAPPEARED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_PAIRING_CANCEL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_SDP_RECORD:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->cancelPairingUserInput()Z
+Landroid/bluetooth/BluetoothDevice;->connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;IZILandroid/os/Handler;)Landroid/bluetooth/BluetoothGatt;
+Landroid/bluetooth/BluetoothDevice;->convertPinToBytes(Ljava/lang/String;)[B
 Landroid/bluetooth/BluetoothDevice;->createBond(I)Z
+Landroid/bluetooth/BluetoothDevice;->createInsecureRfcommSocket(I)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->createRfcommSocket(I)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->createScoSocket()Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_REASON:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_SDP_SEARCH_STATUS:Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevice;->getAlias()Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevice;->getAliasName()Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->getBatteryLevel()I
+Landroid/bluetooth/BluetoothDevice;->getMessageAccessPermission()I
+Landroid/bluetooth/BluetoothDevice;->getPhonebookAccessPermission()I
+Landroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
+Landroid/bluetooth/BluetoothDevice;->isBluetoothDock()Z
+Landroid/bluetooth/BluetoothDevice;->isBondingInitiatedLocally()Z
+Landroid/bluetooth/BluetoothDevice;->setAlias(Ljava/lang/String;)Z
+Landroid/bluetooth/BluetoothDevice;->setMessageAccessPermission(I)Z
+Landroid/bluetooth/BluetoothDevice;->setPasskey(I)Z
+Landroid/bluetooth/BluetoothDevice;->setSimAccessPermission(I)Z
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_AUTH_FAILED:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_AUTH_REJECTED:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_AUTH_TIMEOUT:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_DISCOVERY_IN_PROGRESS:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_REMOTE_AUTH_CANCELED:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_REMOTE_DEVICE_DOWN:I
+Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_REPEATED_ATTEMPTS:I
+Landroid/bluetooth/BluetoothGatt;->connect(Ljava/lang/Boolean;Landroid/bluetooth/BluetoothGattCallback;Landroid/os/Handler;)Z
 Landroid/bluetooth/BluetoothGatt;->mAuthRetryState:I
+Landroid/bluetooth/BluetoothGatt;->mAutoConnect:Z
+Landroid/bluetooth/BluetoothGatt;->mCallback:Landroid/bluetooth/BluetoothGattCallback;
 Landroid/bluetooth/BluetoothGatt;->mClientIf:I
+Landroid/bluetooth/BluetoothGatt;->mDeviceBusy:Ljava/lang/Boolean;
+Landroid/bluetooth/BluetoothGatt;->mService:Landroid/bluetooth/IBluetoothGatt;
+Landroid/bluetooth/BluetoothGatt;->mTransport:I
 Landroid/bluetooth/BluetoothGatt;->refresh()Z
+Landroid/bluetooth/BluetoothGatt;->unregisterApp()V
 Landroid/bluetooth/BluetoothGattCharacteristic;->mInstance:I
 Landroid/bluetooth/BluetoothGattCharacteristic;->mService:Landroid/bluetooth/BluetoothGattService;
+Landroid/bluetooth/BluetoothGattCharacteristic;->setKeySize(I)V
+Landroid/bluetooth/BluetoothGattCharacteristic;->setService(Landroid/bluetooth/BluetoothGattService;)V
 Landroid/bluetooth/BluetoothGattDescriptor;->mCharacteristic:Landroid/bluetooth/BluetoothGattCharacteristic;
 Landroid/bluetooth/BluetoothGattDescriptor;->mInstance:I
+Landroid/bluetooth/BluetoothGattDescriptor;->setCharacteristic(Landroid/bluetooth/BluetoothGattCharacteristic;)V
+Landroid/bluetooth/BluetoothGattService;->mDevice:Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothGattService;->setAdvertisePreferred(Z)V
+Landroid/bluetooth/BluetoothGattService;->setInstanceId(I)V
 Landroid/bluetooth/BluetoothHeadset;->ACTION_ACTIVE_DEVICE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHeadset;->close()V
 Landroid/bluetooth/BluetoothHeadset;->connectAudio()Z
 Landroid/bluetooth/BluetoothHeadset;->disconnectAudio()Z
 Landroid/bluetooth/BluetoothHeadset;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothHeadset;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHeadset;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHeadset;->isEnabled()Z
 Landroid/bluetooth/BluetoothHeadset;->phoneStateChanged(IIILjava/lang/String;I)V
 Landroid/bluetooth/BluetoothHeadset;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothHeadset;->startScoUsingVirtualVoiceCall()Z
 Landroid/bluetooth/BluetoothHeadset;->stopScoUsingVirtualVoiceCall()Z
+Landroid/bluetooth/BluetoothHeadsetClient;->acceptCall(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHeadsetClient;->rejectCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getId()I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getNumber()Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getState()I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->isMultiParty()Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->isOutgoing()Z
 Landroid/bluetooth/BluetoothHearingAid;->ACTION_ACTIVE_DEVICE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHearingAid;->getActiveDevices()Ljava/util/List;
 Landroid/bluetooth/BluetoothHearingAid;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothMapClient;->sendMessage(Landroid/bluetooth/BluetoothDevice;[Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)Z
 Landroid/bluetooth/BluetoothPan;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothPan;->close()V
@@ -891,16 +1306,72 @@
 Landroid/bluetooth/BluetoothPan;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothPan;->log(Ljava/lang/String;)V
 Landroid/bluetooth/BluetoothPan;->setBluetoothTethering(Z)V
+Landroid/bluetooth/BluetoothPbap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothProfile;->A2DP_SINK:I
+Landroid/bluetooth/BluetoothProfile;->AVRCP_CONTROLLER:I
 Landroid/bluetooth/BluetoothProfile;->PAN:I
+Landroid/bluetooth/BluetoothProfile;->PRIORITY_AUTO_CONNECT:I
+Landroid/bluetooth/BluetoothProfile;->PRIORITY_UNDEFINED:I
+Landroid/bluetooth/BluetoothSap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothServerSocket;->mSocket:Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothSocket;->EADDRINUSE:I
+Landroid/bluetooth/BluetoothSocket;->flush()V
 Landroid/bluetooth/BluetoothSocket;->mPfd:Landroid/os/ParcelFileDescriptor;
+Landroid/bluetooth/BluetoothSocket;->mPort:I
+Landroid/bluetooth/BluetoothSocket;->mSocket:Landroid/net/LocalSocket;
+Landroid/bluetooth/BluetoothUuid;->AdvAudioDist:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->AudioSink:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->containsAnyUuid([Landroid/os/ParcelUuid;[Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->Handsfree:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->Hogp:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->HSP:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->is16BitUuid(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->is32BitUuid(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isAdvAudioDist(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isAudioSource(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isAvrcpTarget(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isUuidPresent([Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->NAP:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->ObexObjectPush:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->PBAP_PSE:Landroid/os/ParcelUuid;
 Landroid/bluetooth/BluetoothUuid;->RESERVED_UUIDS:[Landroid/os/ParcelUuid;
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->getAddress()Ljava/lang/String;
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub;-><init>()V
 Landroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
 Landroid/bluetooth/IBluetooth;->getAddress()Ljava/lang/String;
+Landroid/bluetooth/IBluetooth;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+Landroid/bluetooth/IBluetooth;->isEnabled()Z
 Landroid/bluetooth/IBluetooth;->sendConnectionStateChange(Landroid/bluetooth/BluetoothDevice;III)V
+Landroid/bluetooth/IBluetoothA2dp$Stub;-><init>()V
+Landroid/bluetooth/IBluetoothA2dp$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
+Landroid/bluetooth/IBluetoothA2dp;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dp;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dp;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dp;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothCallback$Stub;-><init>()V
+Landroid/bluetooth/IBluetoothGatt;->registerClient(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattCallback;)V
+Landroid/bluetooth/IBluetoothGatt;->unregisterClient(I)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub;-><init>()V
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGattCallback;
+Landroid/bluetooth/IBluetoothHeadset$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadset;
+Landroid/bluetooth/IBluetoothHeadset;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadset;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManager;
+Landroid/bluetooth/IBluetoothManager;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
+Landroid/bluetooth/IBluetoothManager;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+Landroid/bluetooth/IBluetoothManager;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+Landroid/bluetooth/IBluetoothManagerCallback$Stub;-><init>()V
+Landroid/bluetooth/IBluetoothPbap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPbap;
+Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
 Landroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord;
 Landroid/companion/AssociationRequest;->getDeviceFilters()Ljava/util/List;
 Landroid/companion/AssociationRequest;->isSingleDevice()Z
@@ -916,6 +1387,7 @@
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;->onDeviceSelectionCancel()V
 Landroid/companion/IFindDeviceCallback;->onSuccess(Landroid/app/PendingIntent;)V
 Landroid/content/AsyncTaskLoader;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/content/AsyncTaskLoader;->waitForLoader()V
 Landroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V
 Landroid/content/BroadcastReceiver$PendingResult;->mAbortBroadcast:Z
 Landroid/content/BroadcastReceiver$PendingResult;->mFinished:Z
@@ -929,13 +1401,22 @@
 Landroid/content/BroadcastReceiver$PendingResult;->mToken:Landroid/os/IBinder;
 Landroid/content/BroadcastReceiver$PendingResult;->mType:I
 Landroid/content/BroadcastReceiver;->getPendingResult()Landroid/content/BroadcastReceiver$PendingResult;
+Landroid/content/BroadcastReceiver;->mPendingResult:Landroid/content/BroadcastReceiver$PendingResult;
 Landroid/content/BroadcastReceiver;->setPendingResult(Landroid/content/BroadcastReceiver$PendingResult;)V
+Landroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+Landroid/content/ClipboardManager;->reportPrimaryClipChanged()V
 Landroid/content/ClipData$Item;->mUri:Landroid/net/Uri;
 Landroid/content/ClipData;->addItem(Landroid/content/ClipData$Item;Landroid/content/ContentResolver;)V
+Landroid/content/ClipData;->getIcon()Landroid/graphics/Bitmap;
+Landroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/ComponentName;->printShortString(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/ContentProvider;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Landroid/content/pm/PathPermission;)V
 Landroid/content/ContentProvider;->attachInfoForTesting(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
 Landroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
 Landroid/content/ContentProvider;->getIContentProvider()Landroid/content/IContentProvider;
+Landroid/content/ContentProvider;->mAuthorities:[Ljava/lang/String;
+Landroid/content/ContentProvider;->mAuthority:Ljava/lang/String;
+Landroid/content/ContentProvider;->maybeAddUserId(Landroid/net/Uri;I)Landroid/net/Uri;
 Landroid/content/ContentProvider;->mContext:Landroid/content/Context;
 Landroid/content/ContentProvider;->mPathPermissions:[Landroid/content/pm/PathPermission;
 Landroid/content/ContentProvider;->mReadPermission:Ljava/lang/String;
@@ -943,73 +1424,110 @@
 Landroid/content/ContentProvider;->setAppOps(II)V
 Landroid/content/ContentProviderClient;->mContentProvider:Landroid/content/IContentProvider;
 Landroid/content/ContentProviderClient;->mPackageName:Ljava/lang/String;
-Landroid/content/ContentProviderOperation;->TYPE_DELETE:I
-Landroid/content/ContentProviderOperation;->TYPE_INSERT:I
-Landroid/content/ContentProviderOperation;->TYPE_UPDATE:I
+Landroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentProvider;
+Landroid/content/ContentProviderOperation;->getType()I
 Landroid/content/ContentProviderOperation;->mSelection:Ljava/lang/String;
 Landroid/content/ContentProviderOperation;->mType:I
 Landroid/content/ContentProviderOperation;->mUri:Landroid/net/Uri;
+Landroid/content/ContentProviderOperation;->TYPE_DELETE:I
+Landroid/content/ContentProviderOperation;->TYPE_INSERT:I
+Landroid/content/ContentProviderOperation;->TYPE_UPDATE:I
+Landroid/content/ContentResolver$OpenResourceIdResult;->id:I
+Landroid/content/ContentResolver$OpenResourceIdResult;->r:Landroid/content/res/Resources;
 Landroid/content/ContentResolver;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
+Landroid/content/ContentResolver;->acquireExistingProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->acquireProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->acquireProvider(Ljava/lang/String;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->acquireUnstableProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
+Landroid/content/ContentResolver;->acquireUnstableProvider(Ljava/lang/String;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->getContentService()Landroid/content/IContentService;
+Landroid/content/ContentResolver;->getPackageName()Ljava/lang/String;
+Landroid/content/ContentResolver;->getResourceId(Landroid/net/Uri;)Landroid/content/ContentResolver$OpenResourceIdResult;
 Landroid/content/ContentResolver;->getSyncStatus(Landroid/accounts/Account;Ljava/lang/String;)Landroid/content/SyncStatusInfo;
+Landroid/content/ContentResolver;->getSyncStatusAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Landroid/content/SyncStatusInfo;
 Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
 Landroid/content/ContentResolver;->mPackageName:Ljava/lang/String;
 Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
 Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
 Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
+Landroid/content/ContentResolver;->sContentService:Landroid/content/IContentService;
+Landroid/content/ContentResolver;->SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS:I
+Landroid/content/ContentResolver;->SYNC_OBSERVER_TYPE_STATUS:I
 Landroid/content/ContentResolver;->takePersistableUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
 Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
 Landroid/content/ContentValues;-><init>(Ljava/util/HashMap;)V
 Landroid/content/ContentValues;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 Landroid/content/ContentValues;->mValues:Ljava/util/HashMap;
 Landroid/content/ContentValues;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+Landroid/content/Context;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
+Landroid/content/Context;->canStartActivityForResult()Z
+Landroid/content/Context;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
+Landroid/content/Context;->COUNTRY_DETECTOR:Ljava/lang/String;
+Landroid/content/Context;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
+Landroid/content/Context;->ETHERNET_SERVICE:Ljava/lang/String;
 Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
+Landroid/content/Context;->getDisplay()Landroid/view/Display;
 Landroid/content/Context;->getOpPackageName()Ljava/lang/String;
 Landroid/content/Context;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences;
 Landroid/content/Context;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
 Landroid/content/Context;->getSharedPrefsFile(Ljava/lang/String;)Ljava/io/File;
 Landroid/content/Context;->getThemeResId()I
 Landroid/content/Context;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;I)V
 Landroid/content/Context;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
+Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/Context;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/Context;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/Context;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 Landroid/content/Context;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/content/Context;->startActivityForResult(Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;)V
 Landroid/content/Context;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/content/Context;->STATUS_BAR_SERVICE:Ljava/lang/String;
+Landroid/content/ContextWrapper;->getBasePackageName()Ljava/lang/String;
 Landroid/content/ContextWrapper;->getDisplay()Landroid/view/Display;
 Landroid/content/ContextWrapper;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences;
 Landroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
 Landroid/content/ContextWrapper;->getThemeResId()I
 Landroid/content/ContextWrapper;->mBase:Landroid/content/Context;
+Landroid/content/ContextWrapper;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+Landroid/content/ContextWrapper;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/content/ContextWrapper;->startForegroundServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/content/ContextWrapper;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/content/CursorEntityIterator;-><init>(Landroid/database/Cursor;)V
 Landroid/content/CursorLoader;->mCancellationSignal:Landroid/os/CancellationSignal;
 Landroid/content/CursorLoader;->mObserver:Landroid/content/Loader$ForceLoadContentObserver;
+Landroid/content/Entity;->mSubValues:Ljava/util/ArrayList;
+Landroid/content/Entity;->mValues:Landroid/content/ContentValues;
 Landroid/content/IClipboard$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IClipboard$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IClipboard;
+Landroid/content/IContentProvider;->bulkInsert(Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
 Landroid/content/IContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/content/IContentProvider;->delete(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/content/IContentProvider;->descriptor:Ljava/lang/String;
+Landroid/content/IContentProvider;->insert(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
+Landroid/content/IContentProvider;->update(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
 Landroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/content/IContentService$Stub;-><init>()V
 Landroid/content/IContentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentService;
 Landroid/content/IContentService;->cancelSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)V
+Landroid/content/IContentService;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
 Landroid/content/IContentService;->getMasterSyncAutomatically()Z
+Landroid/content/IContentService;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
+Landroid/content/IContentService;->isSyncActive(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
 Landroid/content/IContentService;->setMasterSyncAutomatically(Z)V
 Landroid/content/IIntentReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IIntentReceiver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/IIntentReceiver$Stub;-><init>()V
+Landroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver;
 Landroid/content/IIntentReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-Landroid/content/IRestrictionsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager;
-Landroid/content/ISyncAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/content/ISyncAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/ISyncContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/content/ISyncContext$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/ISyncContext$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncContext;
-Landroid/content/ISyncStatusObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/content/ISyncStatusObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/IIntentSender$Stub;-><init>()V
+Landroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
 Landroid/content/Intent;->ACTION_ALARM_CHANGED:Ljava/lang/String;
 Landroid/content/Intent;->ACTION_DEVICE_INITIALIZATION_WIZARD:Ljava/lang/String;
 Landroid/content/Intent;->ACTION_MASTER_CLEAR:Ljava/lang/String;
 Landroid/content/Intent;->ACTION_SERVICE_STATE:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_SWITCHED:Ljava/lang/String;
 Landroid/content/Intent;->EXTRA_CDMA_DEFAULT_ROAMING_INDICATOR:Ljava/lang/String;
 Landroid/content/Intent;->EXTRA_CDMA_ROAMING_INDICATOR:Ljava/lang/String;
 Landroid/content/Intent;->EXTRA_CSS_INDICATOR:Ljava/lang/String;
@@ -1033,59 +1551,86 @@
 Landroid/content/Intent;->EXTRA_VOICE_RADIO_TECH:Ljava/lang/String;
 Landroid/content/Intent;->EXTRA_VOICE_REG_STATE:Ljava/lang/String;
 Landroid/content/Intent;->EXTRA_VOICE_ROAMING_TYPE:Ljava/lang/String;
+Landroid/content/Intent;->FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT:I
 Landroid/content/Intent;->getExtra(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/content/Intent;->getExtra(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/content/Intent;->getIBinderExtra(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/content/Intent;->isExcludingStopped()Z
 Landroid/content/Intent;->mExtras:Landroid/os/Bundle;
+Landroid/content/Intent;->parseCommandArgs(Landroid/os/ShellCommand;Landroid/content/Intent$CommandOptionHandler;)Landroid/content/Intent;
 Landroid/content/Intent;->prepareToLeaveProcess(Landroid/content/Context;)V
+Landroid/content/Intent;->printIntentArgsHelp(Ljava/io/PrintWriter;Ljava/lang/String;)V
 Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/IBinder;)Landroid/content/Intent;
 Landroid/content/Intent;->resolveSystemService(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName;
 Landroid/content/Intent;->setAllowFds(Z)V
 Landroid/content/Intent;->toInsecureString()Ljava/lang/String;
+Landroid/content/IntentFilter;->hasDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)Z
+Landroid/content/IntentFilter;->hasDataPath(Landroid/os/PatternMatcher;)Z
+Landroid/content/IntentFilter;->hasDataSchemeSpecificPart(Landroid/os/PatternMatcher;)Z
+Landroid/content/IntentFilter;->hasExactDataType(Ljava/lang/String;)Z
+Landroid/content/IntentFilter;->isVerified()Z
 Landroid/content/IntentFilter;->mActions:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mOrder:I
 Landroid/content/IntentSender;-><init>(Landroid/content/IIntentSender;)V
+Landroid/content/IntentSender;->getTarget()Landroid/content/IIntentSender;
 Landroid/content/IntentSender;->mTarget:Landroid/content/IIntentSender;
-Landroid/content/RestrictionsManager;->mService:Landroid/content/IRestrictionsManager;
-Landroid/content/SearchRecentSuggestionsProvider;->mSuggestionProjection:[Ljava/lang/String;
-Landroid/content/SyncAdapterType;->allowParallelSyncs:Z
-Landroid/content/SyncAdapterType;->isAlwaysSyncable:Z
-Landroid/content/SyncAdapterType;->settingsActivity:Ljava/lang/String;
-Landroid/content/SyncContext;->setStatusText(Ljava/lang/String;)V
-Landroid/content/SyncInfo;-><init>(ILandroid/accounts/Account;Ljava/lang/String;J)V
-Landroid/content/SyncRequest;->mAccountToSync:Landroid/accounts/Account;
-Landroid/content/SyncRequest;->mAuthority:Ljava/lang/String;
-Landroid/content/SyncRequest;->mExtras:Landroid/os/Bundle;
-Landroid/content/SyncRequest;->mIsPeriodic:Z
-Landroid/content/SyncRequest;->mSyncRunTimeSecs:J
-Landroid/content/SyncStatusInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/content/SyncStatusInfo;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/content/SyncStatusInfo;->authorityId:I
-Landroid/content/SyncStatusInfo;->ensurePeriodicSyncTimeSize(I)V
-Landroid/content/SyncStatusInfo;->initialFailureTime:J
-Landroid/content/SyncStatusInfo;->initialize:Z
-Landroid/content/SyncStatusInfo;->lastFailureMesg:Ljava/lang/String;
-Landroid/content/SyncStatusInfo;->lastFailureSource:I
-Landroid/content/SyncStatusInfo;->lastFailureTime:J
-Landroid/content/SyncStatusInfo;->lastSuccessSource:I
-Landroid/content/SyncStatusInfo;->lastSuccessTime:J
-Landroid/content/SyncStatusInfo;->pending:Z
-Landroid/content/SyncStatusInfo;->periodicSyncTimes:Ljava/util/ArrayList;
-Landroid/content/UriMatcher;->mChildren:Ljava/util/ArrayList;
-Landroid/content/UriMatcher;->mText:Ljava/lang/String;
+Landroid/content/IOnPrimaryClipChangedListener$Stub;-><init>()V
+Landroid/content/IOnPrimaryClipChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IOnPrimaryClipChangedListener;
+Landroid/content/IRestrictionsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager;
+Landroid/content/ISyncAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/content/ISyncAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/ISyncAdapter$Stub;-><init>()V
+Landroid/content/ISyncAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapter;
+Landroid/content/ISyncAdapter;->cancelSync(Landroid/content/ISyncContext;)V
+Landroid/content/ISyncAdapter;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+Landroid/content/ISyncAdapter;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
+Landroid/content/ISyncContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/content/ISyncContext$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/ISyncContext$Stub;-><init>()V
+Landroid/content/ISyncContext$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncContext;
+Landroid/content/ISyncServiceAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncServiceAdapter;
+Landroid/content/ISyncServiceAdapter;->cancelSync(Landroid/content/ISyncContext;)V
+Landroid/content/ISyncServiceAdapter;->startSync(Landroid/content/ISyncContext;Landroid/os/Bundle;)V
+Landroid/content/ISyncStatusObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/content/ISyncStatusObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/ISyncStatusObserver$Stub;-><init>()V
+Landroid/content/ISyncStatusObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncStatusObserver;
+Landroid/content/ISyncStatusObserver;->onStatusChanged(I)V
+Landroid/content/om/IOverlayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/om/IOverlayManager;
+Landroid/content/om/IOverlayManager;->getAllOverlays(I)Ljava/util/Map;
+Landroid/content/om/IOverlayManager;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
+Landroid/content/om/OverlayInfo;->isEnabled()Z
+Landroid/content/om/OverlayInfo;->packageName:Ljava/lang/String;
+Landroid/content/om/OverlayInfo;->state:I
+Landroid/content/om/OverlayInfo;->targetPackageName:Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->activityInfoConfigJavaToNative(I)I
 Landroid/content/pm/ActivityInfo;->isResizeableMode(I)Z
 Landroid/content/pm/ActivityInfo;->resizeMode:I
 Landroid/content/pm/ActivityInfo;->supportsPictureInPicture()Z
+Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->mPM:Landroid/content/pm/PackageManager;
+Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->sCollator:Ljava/text/Collator;
+Landroid/content/pm/ApplicationInfo;->disableCompatibilityMode()V
 Landroid/content/pm/ApplicationInfo;->enabledSetting:I
+Landroid/content/pm/ApplicationInfo;->fullBackupContent:I
 Landroid/content/pm/ApplicationInfo;->getBaseResourcePath()Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->getCodePath()Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->hasRtlSupport()Z
 Landroid/content/pm/ApplicationInfo;->installLocation:I
 Landroid/content/pm/ApplicationInfo;->isForwardLocked()Z
+Landroid/content/pm/ApplicationInfo;->isPackageUnavailable(Landroid/content/pm/PackageManager;)Z
+Landroid/content/pm/ApplicationInfo;->nativeLibraryRootDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->primaryCpuAbi:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->privateFlags:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_PRIVILEGED:I
+Landroid/content/pm/ApplicationInfo;->resourceDirs:[Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->scanPublicSourceDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->scanSourceDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->secondaryCpuAbi:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->secondaryNativeLibraryDir:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->versionCode:I
 Landroid/content/pm/ApplicationInfo;->volumeUuid:Ljava/lang/String;
+Landroid/content/pm/BaseParceledListSlice;->getList()Ljava/util/List;
+Landroid/content/pm/BaseParceledListSlice;->writeParcelableCreator(Ljava/lang/Object;Landroid/os/Parcel;)V
 Landroid/content/pm/ComponentInfo;->encryptionAware:Z
 Landroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName;
 Landroid/content/pm/IPackageDataObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -1093,6 +1638,7 @@
 Landroid/content/pm/IPackageDataObserver$Stub;-><init>()V
 Landroid/content/pm/IPackageDataObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageDataObserver;
 Landroid/content/pm/IPackageDataObserver;->onRemoveCompleted(Ljava/lang/String;Z)V
+Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageDeleteObserver$Stub;-><init>()V
 Landroid/content/pm/IPackageDeleteObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageDeleteObserver;
 Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -1100,10 +1646,6 @@
 Landroid/content/pm/IPackageDeleteObserver2$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageDeleteObserver2;
 Landroid/content/pm/IPackageDeleteObserver2;->onPackageDeleted(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/content/pm/IPackageDeleteObserver;->packageDeleted(Ljava/lang/String;I)V
-Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/pm/IPackageInstallObserver2$Stub;-><init>()V
-Landroid/content/pm/IPackageInstallObserver2;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IPackageInstallerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallerCallback;
@@ -1116,29 +1658,78 @@
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IPackageInstallerSession$Stub;-><init>()V
 Landroid/content/pm/IPackageInstallerSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallerSession;
+Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/pm/IPackageInstallObserver2$Stub;-><init>()V
+Landroid/content/pm/IPackageInstallObserver2$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallObserver2;
+Landroid/content/pm/IPackageInstallObserver2;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/pm/IPackageInstallObserver2;->onUserActionRequired(Landroid/content/Intent;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstallLocation()I
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String;
 Landroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames()[Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub;-><init>()V
 Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
 Landroid/content/pm/IPackageManager;->addPermission(Landroid/content/pm/PermissionInfo;)Z
 Landroid/content/pm/IPackageManager;->addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z
+Landroid/content/pm/IPackageManager;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager;->checkUidPermission(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager;->checkUidSignatures(II)I
+Landroid/content/pm/IPackageManager;->clearPackagePreferredActivities(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->deleteApplicationCacheFiles(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager;->enterSafeMode()V
 Landroid/content/pm/IPackageManager;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/IPackageManager;->getApplicationEnabledSetting(Ljava/lang/String;I)I
 Landroid/content/pm/IPackageManager;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/IPackageManager;->getBlockUninstallForUser(Ljava/lang/String;I)Z
 Landroid/content/pm/IPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+Landroid/content/pm/IPackageManager;->getFlagsForUid(I)I
 Landroid/content/pm/IPackageManager;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
-Landroid/content/pm/IPackageManager;->getInstallLocation()I
+Landroid/content/pm/IPackageManager;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
 Landroid/content/pm/IPackageManager;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
 Landroid/content/pm/IPackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getInstallLocation()I
+Landroid/content/pm/IPackageManager;->getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;
 Landroid/content/pm/IPackageManager;->getLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;I)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager;->getNameForUid(I)Ljava/lang/String;
 Landroid/content/pm/IPackageManager;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getPackageUid(Ljava/lang/String;II)I
+Landroid/content/pm/IPackageManager;->getPermissionControllerPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
+Landroid/content/pm/IPackageManager;->getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I
 Landroid/content/pm/IPackageManager;->getProviderInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ProviderInfo;
 Landroid/content/pm/IPackageManager;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 Landroid/content/pm/IPackageManager;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
+Landroid/content/pm/IPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getSystemSharedLibraryNames()[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getUidForSharedUser(Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->hasSystemUidErrors()Z
+Landroid/content/pm/IPackageManager;->isPackageAvailable(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->isProtectedBroadcast(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager;->isSafeMode()Z
+Landroid/content/pm/IPackageManager;->isStorageLow()Z
+Landroid/content/pm/IPackageManager;->isUidPrivileged(I)Z
+Landroid/content/pm/IPackageManager;->queryInstrumentation(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->querySyncProviders(Ljava/util/List;Ljava/util/List;)V
+Landroid/content/pm/IPackageManager;->removePermission(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 Landroid/content/pm/IPackageManager;->setApplicationEnabledSetting(Ljava/lang/String;IIILjava/lang/String;)V
+Landroid/content/pm/IPackageManager;->setApplicationHiddenSettingAsUser(Ljava/lang/String;ZI)Z
 Landroid/content/pm/IPackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
 Landroid/content/pm/IPackageManager;->setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/pm/IPackageManager;->setLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/IntentFilter;ILandroid/content/ComponentName;)V
+Landroid/content/pm/IPackageManager;->setPackageStoppedState(Ljava/lang/String;ZI)V
+Landroid/content/pm/IPackageManager;->systemReady()V
 Landroid/content/pm/IPackageMoveObserver$Stub;-><init>()V
 Landroid/content/pm/IPackageMoveObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageMoveObserver;
 Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -1150,9 +1741,15 @@
 Landroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
 Landroid/content/pm/LauncherActivityInfo;->mActivityInfo:Landroid/content/pm/ActivityInfo;
 Landroid/content/pm/LauncherApps;->mPm:Landroid/content/pm/PackageManager;
+Landroid/content/pm/LauncherApps;->mService:Landroid/content/pm/ILauncherApps;
 Landroid/content/pm/LauncherApps;->startShortcut(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)V
+Landroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/PackageInfo;->coreApp:Z
 Landroid/content/pm/PackageInfo;->INSTALL_LOCATION_UNSPECIFIED:I
+Landroid/content/pm/PackageInfo;->overlayTarget:Ljava/lang/String;
 Landroid/content/pm/PackageInfo;->REQUESTED_PERMISSION_REQUIRED:I
+Landroid/content/pm/PackageInfoLite;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/pm/PackageInstaller$Session;->addProgress(F)V
 Landroid/content/pm/PackageInstaller$SessionInfo;-><init>()V
 Landroid/content/pm/PackageInstaller$SessionInfo;->active:Z
 Landroid/content/pm/PackageInstaller$SessionInfo;->appIcon:Landroid/graphics/Bitmap;
@@ -1170,29 +1767,77 @@
 Landroid/content/pm/PackageInstaller$SessionParams;->appPackageName:Ljava/lang/String;
 Landroid/content/pm/PackageInstaller$SessionParams;->installFlags:I
 Landroid/content/pm/PackageInstaller$SessionParams;->mode:I
+Landroid/content/pm/PackageInstaller$SessionParams;->originatingUid:I
 Landroid/content/pm/PackageInstaller$SessionParams;->sizeBytes:J
 Landroid/content/pm/PackageItemInfo;->setForceSafeLabels(Z)V
-Landroid/content/pm/PackageManager;->NO_NATIVE_LIBRARIES:I
+Landroid/content/pm/PackageManager;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;III)V
+Landroid/content/pm/PackageManager;->addPreferredActivityAsUser(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
 Landroid/content/pm/PackageManager;->buildRequestPermissionsIntent([Ljava/lang/String;)Landroid/content/Intent;
+Landroid/content/pm/PackageManager;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/PackageManager;->clearCrossProfileIntentFilters(I)V
+Landroid/content/pm/PackageManager;->deleteApplicationCacheFiles(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/PackageManager;->deleteApplicationCacheFilesAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/PackageManager;->deletePackage(Ljava/lang/String;Landroid/content/pm/IPackageDeleteObserver;I)V
+Landroid/content/pm/PackageManager;->deletePackageAsUser(Ljava/lang/String;Landroid/content/pm/IPackageDeleteObserver;II)V
+Landroid/content/pm/PackageManager;->deleteStatusToString(I)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->flushPackageRestrictionsAsUser(I)V
 Landroid/content/pm/PackageManager;->freeStorage(JLandroid/content/IntentSender;)V
 Landroid/content/pm/PackageManager;->freeStorage(Ljava/lang/String;JLandroid/content/IntentSender;)V
 Landroid/content/pm/PackageManager;->freeStorageAndNotify(JLandroid/content/pm/IPackageDataObserver;)V
 Landroid/content/pm/PackageManager;->freeStorageAndNotify(Ljava/lang/String;JLandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/PackageManager;->getApplicationHiddenSettingAsUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
 Landroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
 Landroid/content/pm/PackageManager;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
+Landroid/content/pm/PackageManager;->getKeySetByAlias(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/PackageManager;->getMoveStatus(I)I
 Landroid/content/pm/PackageManager;->getPackageCandidateVolumes(Landroid/content/pm/ApplicationInfo;)Ljava/util/List;
+Landroid/content/pm/PackageManager;->getPackageCurrentVolume(Landroid/content/pm/ApplicationInfo;)Landroid/os/storage/VolumeInfo;
 Landroid/content/pm/PackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
 Landroid/content/pm/PackageManager;->getPackageSizeInfo(Ljava/lang/String;Landroid/content/pm/IPackageStatsObserver;)V
+Landroid/content/pm/PackageManager;->getPackageSizeInfoAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageStatsObserver;)V
+Landroid/content/pm/PackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I
+Landroid/content/pm/PackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I
 Landroid/content/pm/PackageManager;->getResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
+Landroid/content/pm/PackageManager;->getSigningKeySet(Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/PackageManager;->getUidForSharedUser(Ljava/lang/String;)I
+Landroid/content/pm/PackageManager;->getUserBadgeForDensity(Landroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageManager;->getUserBadgeForDensityNoBackground(Landroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageManager;->installExistingPackageAsUser(Ljava/lang/String;I)I
+Landroid/content/pm/PackageManager;->installStatusToString(I)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->installStatusToString(ILjava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->INSTALL_REPLACE_EXISTING:I
+Landroid/content/pm/PackageManager;->isPackageAvailable(Ljava/lang/String;)Z
+Landroid/content/pm/PackageManager;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManager;->isSignedBy(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/PackageManager;->isSignedByExactly(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/PackageManager;->isUpgrade()Z
+Landroid/content/pm/PackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 Landroid/content/pm/PackageManager;->movePackage(Ljava/lang/String;Landroid/os/storage/VolumeInfo;)I
+Landroid/content/pm/PackageManager;->MOVE_EXTERNAL_MEDIA:I
+Landroid/content/pm/PackageManager;->MOVE_INTERNAL:I
+Landroid/content/pm/PackageManager;->NO_NATIVE_LIBRARIES:I
 Landroid/content/pm/PackageManager;->queryBroadcastReceivers(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->registerMoveCallback(Landroid/content/pm/PackageManager$MoveCallback;Landroid/os/Handler;)V
+Landroid/content/pm/PackageManager;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V
+Landroid/content/pm/PackageManager;->replacePreferredActivityAsUser(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/content/pm/PackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/PackageManager;->resolveContentProviderAsUser(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/PackageManager;->setApplicationHiddenSettingAsUser(Ljava/lang/String;ZLandroid/os/UserHandle;)Z
 Landroid/content/pm/PackageManager;->setInstantAppCookie([B)Z
+Landroid/content/pm/PackageManager;->shouldShowRequestPermissionRationale(Ljava/lang/String;)Z
+Landroid/content/pm/PackageManager;->unregisterMoveCallback(Landroid/content/pm/PackageManager$MoveCallback;)V
 Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
 Landroid/content/pm/PackageParser$ActivityIntentInfo;->activity:Landroid/content/pm/PackageParser$Activity;
 Landroid/content/pm/PackageParser$Component;->className:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Component;->getComponentName()Landroid/content/ComponentName;
 Landroid/content/pm/PackageParser$Component;->intents:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Component;->metaData:Landroid/os/Bundle;
+Landroid/content/pm/PackageParser$Component;->owner:Landroid/content/pm/PackageParser$Package;
 Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
 Landroid/content/pm/PackageParser$IntentInfo;-><init>()V
 Landroid/content/pm/PackageParser$IntentInfo;->banner:I
@@ -1201,29 +1846,47 @@
 Landroid/content/pm/PackageParser$IntentInfo;->labelRes:I
 Landroid/content/pm/PackageParser$IntentInfo;->logo:I
 Landroid/content/pm/PackageParser$IntentInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
+Landroid/content/pm/PackageParser$NewPermissionInfo;->name:Ljava/lang/String;
+Landroid/content/pm/PackageParser$NewPermissionInfo;->sdkVersion:I
+Landroid/content/pm/PackageParser$Package;-><init>(Ljava/lang/String;)V
 Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
 Landroid/content/pm/PackageParser$Package;->configPreferences:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->installLocation:I
 Landroid/content/pm/PackageParser$Package;->instrumentation:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
+Landroid/content/pm/PackageParser$Package;->mExtras:Ljava/lang/Object;
 Landroid/content/pm/PackageParser$Package;->mKeySetMapping:Landroid/util/ArrayMap;
 Landroid/content/pm/PackageParser$Package;->mPreferredOrder:I
 Landroid/content/pm/PackageParser$Package;->mSharedUserId:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->mSharedUserLabel:I
 Landroid/content/pm/PackageParser$Package;->mSigningDetails:Landroid/content/pm/PackageParser$SigningDetails;
+Landroid/content/pm/PackageParser$Package;->mUpgradeKeySets:Landroid/util/ArraySet;
 Landroid/content/pm/PackageParser$Package;->mVersionCode:I
 Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->permissionGroups:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->permissions:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->protectedBroadcasts:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->setPackageName(Ljava/lang/String;)V
 Landroid/content/pm/PackageParser$Package;->usesLibraries:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->usesLibraryFiles:[Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->usesOptionalLibraries:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$PackageLite;->installLocation:I
+Landroid/content/pm/PackageParser$PackageLite;->packageName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Permission;-><init>(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PermissionInfo;)V
+Landroid/content/pm/PackageParser$Permission;->group:Landroid/content/pm/PackageParser$PermissionGroup;
+Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
+Landroid/content/pm/PackageParser$Permission;->tree:Z
+Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
+Landroid/content/pm/PackageParser$Provider;-><init>(Landroid/content/pm/PackageParser$Provider;)V
 Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/PackageParser$Provider;->syncable:Z
 Landroid/content/pm/PackageParser$ProviderIntentInfo;->provider:Landroid/content/pm/PackageParser$Provider;
 Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
 Landroid/content/pm/PackageParser$ServiceIntentInfo;->service:Landroid/content/pm/PackageParser$Service;
@@ -1240,38 +1903,83 @@
 Landroid/content/pm/PackageParser;->generatePermissionInfo(Landroid/content/pm/PackageParser$Permission;I)Landroid/content/pm/PermissionInfo;
 Landroid/content/pm/PackageParser;->generateProviderInfo(Landroid/content/pm/PackageParser$Provider;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ProviderInfo;
 Landroid/content/pm/PackageParser;->generateServiceInfo(Landroid/content/pm/PackageParser$Service;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ServiceInfo;
+Landroid/content/pm/PackageParser;->mCallback:Landroid/content/pm/PackageParser$Callback;
+Landroid/content/pm/PackageParser;->NEW_PERMISSIONS:[Landroid/content/pm/PackageParser$NewPermissionInfo;
 Landroid/content/pm/PackageParser;->parseBaseApk(Ljava/lang/String;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
 Landroid/content/pm/PackageParser;->parseMonolithicPackage(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
 Landroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
 Landroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;IZ)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->parsePackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+Landroid/content/pm/PackageParser;->setCompatibilityModeEnabled(Z)V
+Landroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V
+Landroid/content/pm/PackageStats;->userHandle:I
 Landroid/content/pm/PackageUserState;-><init>()V
 Landroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V
+Landroid/content/pm/ParceledListSlice;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;
+Landroid/content/pm/ParceledListSlice;->writeParcelableCreator(Landroid/os/Parcelable;Landroid/os/Parcel;)V
+Landroid/content/pm/PermissionInfo;->protectionToString(I)Ljava/lang/String;
+Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->componentName:Landroid/content/ComponentName;
+Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->type:Ljava/lang/Object;
+Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->uid:I
+Landroid/content/pm/RegisteredServicesCache;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/XmlSerializerAndParser;)V
+Landroid/content/pm/ResolveInfo;->getComponentInfo()Landroid/content/pm/ComponentInfo;
+Landroid/content/pm/ResolveInfo;->handleAllWebDataURI:Z
 Landroid/content/pm/ResolveInfo;->instantAppAvailable:Z
+Landroid/content/pm/ResolveInfo;->system:Z
+Landroid/content/pm/ResolveInfo;->targetUserId:I
 Landroid/content/pm/SharedLibraryInfo;->isBuiltin()Z
 Landroid/content/pm/SharedLibraryInfo;->isDynamic()Z
 Landroid/content/pm/SharedLibraryInfo;->isStatic()Z
+Landroid/content/pm/ShortcutInfo;->getIcon()Landroid/graphics/drawable/Icon;
 Landroid/content/pm/ShortcutManager;->mService:Landroid/content/pm/IShortcutService;
 Landroid/content/pm/Signature;->getPublicKey()Ljava/security/PublicKey;
 Landroid/content/pm/UserInfo;-><init>(ILjava/lang/String;I)V
+Landroid/content/pm/UserInfo;-><init>(ILjava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/UserInfo;->creationTime:J
+Landroid/content/pm/UserInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/pm/UserInfo;->flags:I
 Landroid/content/pm/UserInfo;->FLAG_PRIMARY:I
+Landroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle;
+Landroid/content/pm/UserInfo;->guestToRemove:Z
+Landroid/content/pm/UserInfo;->iconPath:Ljava/lang/String;
 Landroid/content/pm/UserInfo;->id:I
+Landroid/content/pm/UserInfo;->isAdmin()Z
+Landroid/content/pm/UserInfo;->isEnabled()Z
+Landroid/content/pm/UserInfo;->isGuest()Z
+Landroid/content/pm/UserInfo;->isManagedProfile()Z
 Landroid/content/pm/UserInfo;->isPrimary()Z
+Landroid/content/pm/UserInfo;->isRestricted()Z
+Landroid/content/pm/UserInfo;->lastLoggedInTime:J
+Landroid/content/pm/UserInfo;->name:Ljava/lang/String;
+Landroid/content/pm/UserInfo;->partial:Z
+Landroid/content/pm/UserInfo;->profileGroupId:I
 Landroid/content/pm/UserInfo;->serialNumber:I
+Landroid/content/pm/VerifierInfo;-><init>(Ljava/lang/String;Ljava/security/PublicKey;)V
+Landroid/content/pm/XmlSerializerAndParser;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/Object;
+Landroid/content/pm/XmlSerializerAndParser;->writeAsXml(Ljava/lang/Object;Lorg/xmlpull/v1/XmlSerializer;)V
 Landroid/content/res/AssetFileDescriptor;->mFd:Landroid/os/ParcelFileDescriptor;
 Landroid/content/res/AssetFileDescriptor;->mLength:J
 Landroid/content/res/AssetFileDescriptor;->mStartOffset:J
+Landroid/content/res/AssetManager$AssetInputStream;->getAssetInt()I
+Landroid/content/res/AssetManager$AssetInputStream;->getNativeAsset()J
 Landroid/content/res/AssetManager;-><init>()V
 Landroid/content/res/AssetManager;->addAssetPath(Ljava/lang/String;)I
 Landroid/content/res/AssetManager;->addAssetPathAsSharedLibrary(Ljava/lang/String;)I
+Landroid/content/res/AssetManager;->addOverlayPath(Ljava/lang/String;)I
 Landroid/content/res/AssetManager;->applyStyle(JIILandroid/content/res/XmlBlock$Parser;[IJJ)V
 Landroid/content/res/AssetManager;->createTheme()J
 Landroid/content/res/AssetManager;->getAssignedPackageIdentifiers()Landroid/util/SparseArray;
+Landroid/content/res/AssetManager;->getGlobalAssetCount()I
+Landroid/content/res/AssetManager;->getGlobalAssetManagerCount()I
 Landroid/content/res/AssetManager;->getResourceBagText(II)Ljava/lang/CharSequence;
 Landroid/content/res/AssetManager;->getResourceEntryName(I)Ljava/lang/String;
 Landroid/content/res/AssetManager;->getResourceIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 Landroid/content/res/AssetManager;->getResourceName(I)Ljava/lang/String;
 Landroid/content/res/AssetManager;->getResourcePackageName(I)Ljava/lang/String;
+Landroid/content/res/AssetManager;->getResourceText(I)Ljava/lang/CharSequence;
 Landroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String;
+Landroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z
+Landroid/content/res/AssetManager;->getSystem()Landroid/content/res/AssetManager;
 Landroid/content/res/AssetManager;->isUpToDate()Z
 Landroid/content/res/AssetManager;->mObject:J
 Landroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;)Ljava/io/InputStream;
@@ -1281,21 +1989,53 @@
 Landroid/content/res/AssetManager;->resolveAttrs(JII[I[I[I[I)Z
 Landroid/content/res/AssetManager;->retrieveAttributes(Landroid/content/res/XmlBlock$Parser;[I[I[I)Z
 Landroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIIII)V
+Landroid/content/res/AssetManager;->sSystem:Landroid/content/res/AssetManager;
 Landroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/content/res/ColorStateList;)V
+Landroid/content/res/ColorStateList;->canApplyTheme()Z
 Landroid/content/res/ColorStateList;->getColors()[I
+Landroid/content/res/ColorStateList;->getStates()[[I
 Landroid/content/res/ColorStateList;->mColors:[I
 Landroid/content/res/ColorStateList;->mDefaultColor:I
 Landroid/content/res/ColorStateList;->mFactory:Landroid/content/res/ColorStateList$ColorStateListFactory;
 Landroid/content/res/ColorStateList;->mStateSpecs:[[I
+Landroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
 Landroid/content/res/ColorStateList;->onColorsChanged()V
+Landroid/content/res/CompatibilityInfo$Translator;->applicationInvertedScale:F
+Landroid/content/res/CompatibilityInfo$Translator;->applicationScale:F
+Landroid/content/res/CompatibilityInfo$Translator;->getTranslatedContentInsets(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+Landroid/content/res/CompatibilityInfo$Translator;->translateCanvas(Landroid/graphics/Canvas;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateEventInScreenToAppWindow(Landroid/view/MotionEvent;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateRectInAppWindowToScreen(Landroid/graphics/Rect;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateRectInScreenToAppWindow(Landroid/graphics/Rect;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateRectInScreenToAppWinFrame(Landroid/graphics/Rect;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateRegionInWindowToScreen(Landroid/graphics/Region;)V
+Landroid/content/res/CompatibilityInfo$Translator;->translateWindowLayout(Landroid/view/WindowManager$LayoutParams;)V
 Landroid/content/res/CompatibilityInfo;-><init>(Landroid/content/pm/ApplicationInfo;IIZ)V
-Landroid/content/res/CompatibilityInfo;->DEFAULT_COMPATIBILITY_INFO:Landroid/content/res/CompatibilityInfo;
 Landroid/content/res/CompatibilityInfo;->applicationScale:F
+Landroid/content/res/CompatibilityInfo;->computeCompatibleScaling(Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;)F
+Landroid/content/res/CompatibilityInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/res/CompatibilityInfo;->DEFAULT_COMPATIBILITY_INFO:Landroid/content/res/CompatibilityInfo;
+Landroid/content/res/CompatibilityInfo;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator;
+Landroid/content/res/CompatibilityInfo;->isScalingRequired()Z
+Landroid/content/res/CompatibilityInfo;->supportsScreen()Z
+Landroid/content/res/Configuration;->generateDelta(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
+Landroid/content/res/Configuration;->makeDefault()V
+Landroid/content/res/Configuration;->resourceQualifierString(Landroid/content/res/Configuration;)Ljava/lang/String;
+Landroid/content/res/Configuration;->seq:I
+Landroid/content/res/Configuration;->userSetLocale:Z
 Landroid/content/res/DrawableCache;-><init>()V
 Landroid/content/res/DrawableCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
 Landroid/content/res/ObbInfo;->salt:[B
 Landroid/content/res/Resources$Theme;->mThemeImpl:Landroid/content/res/ResourcesImpl$ThemeImpl;
+Landroid/content/res/Resources$Theme;->resolveAttributes([I[I)Landroid/content/res/TypedArray;
+Landroid/content/res/Resources;-><init>(Ljava/lang/ClassLoader;)V
 Landroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
+Landroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
+Landroid/content/res/Resources;->getDrawableInflater()Landroid/graphics/drawable/DrawableInflater;
+Landroid/content/res/Resources;->getFloat(I)F
+Landroid/content/res/Resources;->getImpl()Landroid/content/res/ResourcesImpl;
+Landroid/content/res/Resources;->getPreloadedDrawables()Landroid/util/LongSparseArray;
+Landroid/content/res/Resources;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
 Landroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
 Landroid/content/res/Resources;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;
 Landroid/content/res/Resources;->mClassLoader:Ljava/lang/ClassLoader;
@@ -1306,9 +2046,9 @@
 Landroid/content/res/Resources;->mTypedArrayPool:Landroid/util/Pools$SynchronizedPool;
 Landroid/content/res/Resources;->selectDefaultTheme(II)I
 Landroid/content/res/Resources;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V
+Landroid/content/res/Resources;->setImpl(Landroid/content/res/ResourcesImpl;)V
 Landroid/content/res/Resources;->updateSystemConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
-Landroid/content/res/ResourcesImpl;->TRACE_FOR_MISS_PRELOAD:Z
-Landroid/content/res/ResourcesImpl;->TRACE_FOR_PRELOAD:Z
+Landroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V
 Landroid/content/res/ResourcesImpl;->getAssets()Landroid/content/res/AssetManager;
 Landroid/content/res/ResourcesImpl;->getValue(ILandroid/util/TypedValue;Z)V
 Landroid/content/res/ResourcesImpl;->mAccessLock:Ljava/lang/Object;
@@ -1322,10 +2062,16 @@
 Landroid/content/res/ResourcesImpl;->sPreloadedColorDrawables:Landroid/util/LongSparseArray;
 Landroid/content/res/ResourcesImpl;->sPreloadedComplexColors:Landroid/util/LongSparseArray;
 Landroid/content/res/ResourcesImpl;->sPreloadedDrawables:[Landroid/util/LongSparseArray;
+Landroid/content/res/ResourcesImpl;->TRACE_FOR_MISS_PRELOAD:Z
+Landroid/content/res/ResourcesImpl;->TRACE_FOR_PRELOAD:Z
+Landroid/content/res/ResourcesKey;-><init>(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V
+Landroid/content/res/ResourcesKey;->mResDir:Ljava/lang/String;
 Landroid/content/res/ResourcesKey;->mSplitResDirs:[Ljava/lang/String;
 Landroid/content/res/StringBlock;-><init>(JZ)V
+Landroid/content/res/StringBlock;->get(I)Ljava/lang/CharSequence;
 Landroid/content/res/ThemedResourceCache;->onConfigurationChange(I)V
 Landroid/content/res/TypedArray;->extractThemeAttrs()[I
+Landroid/content/res/TypedArray;->extractThemeAttrs([I)[I
 Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
 Landroid/content/res/TypedArray;->getValueAt(ILandroid/util/TypedValue;)Z
 Landroid/content/res/TypedArray;->mAssets:Landroid/content/res/AssetManager;
@@ -1342,33 +2088,190 @@
 Landroid/content/res/XmlBlock$Parser;->mParseState:J
 Landroid/content/res/XmlBlock;-><init>([B)V
 Landroid/content/res/XmlBlock;->newParser()Landroid/content/res/XmlResourceParser;
+Landroid/content/RestrictionsManager;->mService:Landroid/content/IRestrictionsManager;
+Landroid/content/SearchRecentSuggestionsProvider;->mSuggestionProjection:[Ljava/lang/String;
+Landroid/content/SyncAdaptersCache;-><init>(Landroid/content/Context;)V
+Landroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/SyncAdapterType;->allowParallelSyncs:Z
+Landroid/content/SyncAdapterType;->isAlwaysSyncable:Z
+Landroid/content/SyncAdapterType;->settingsActivity:Ljava/lang/String;
+Landroid/content/SyncAdapterType;->supportsUploading:Z
+Landroid/content/SyncAdapterType;->userVisible:Z
+Landroid/content/SyncContext;-><init>(Landroid/content/ISyncContext;)V
+Landroid/content/SyncContext;->setStatusText(Ljava/lang/String;)V
+Landroid/content/SyncInfo;-><init>(ILandroid/accounts/Account;Ljava/lang/String;J)V
+Landroid/content/SyncInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/SyncInfo;->authorityId:I
+Landroid/content/SyncInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/SyncRequest;->mAccountToSync:Landroid/accounts/Account;
+Landroid/content/SyncRequest;->mAuthority:Ljava/lang/String;
+Landroid/content/SyncRequest;->mExtras:Landroid/os/Bundle;
+Landroid/content/SyncRequest;->mIsPeriodic:Z
+Landroid/content/SyncRequest;->mSyncRunTimeSecs:J
+Landroid/content/SyncStatusInfo;-><init>(I)V
+Landroid/content/SyncStatusInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/SyncStatusInfo;->authorityId:I
+Landroid/content/SyncStatusInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/SyncStatusInfo;->ensurePeriodicSyncTimeSize(I)V
+Landroid/content/SyncStatusInfo;->getLastFailureMesgAsInt(I)I
+Landroid/content/SyncStatusInfo;->getPeriodicSyncTime(I)J
+Landroid/content/SyncStatusInfo;->initialFailureTime:J
+Landroid/content/SyncStatusInfo;->initialize:Z
+Landroid/content/SyncStatusInfo;->lastFailureMesg:Ljava/lang/String;
+Landroid/content/SyncStatusInfo;->lastFailureSource:I
+Landroid/content/SyncStatusInfo;->lastFailureTime:J
+Landroid/content/SyncStatusInfo;->lastSuccessSource:I
+Landroid/content/SyncStatusInfo;->lastSuccessTime:J
+Landroid/content/SyncStatusInfo;->pending:Z
+Landroid/content/SyncStatusInfo;->periodicSyncTimes:Ljava/util/ArrayList;
+Landroid/content/SyncStatusInfo;->removePeriodicSyncTime(I)V
+Landroid/content/SyncStatusInfo;->setPeriodicSyncTime(IJ)V
+Landroid/content/UndoManager;-><init>()V
+Landroid/content/UndoManager;->addOperation(Landroid/content/UndoOperation;I)V
+Landroid/content/UndoManager;->beginUpdate(Ljava/lang/CharSequence;)V
+Landroid/content/UndoManager;->commitState(Landroid/content/UndoOwner;)I
+Landroid/content/UndoManager;->countRedos([Landroid/content/UndoOwner;)I
+Landroid/content/UndoManager;->countUndos([Landroid/content/UndoOwner;)I
+Landroid/content/UndoManager;->endUpdate()V
+Landroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I
+Landroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I
+Landroid/content/UndoManager;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
+Landroid/content/UndoManager;->getOwner(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
+Landroid/content/UndoManager;->isInUndo()Z
+Landroid/content/UndoManager;->redo([Landroid/content/UndoOwner;I)I
+Landroid/content/UndoManager;->restoreInstanceState(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+Landroid/content/UndoManager;->saveInstanceState(Landroid/os/Parcel;)V
+Landroid/content/UndoManager;->setUndoLabel(Ljava/lang/CharSequence;)V
+Landroid/content/UndoManager;->undo([Landroid/content/UndoOwner;I)I
+Landroid/content/UndoOperation;-><init>(Landroid/content/UndoOwner;)V
+Landroid/content/UndoOperation;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+Landroid/content/UriMatcher;->mChildren:Ljava/util/ArrayList;
+Landroid/content/UriMatcher;->mText:Ljava/lang/String;
 Landroid/database/AbstractCursor;->mCurrentRowID:Ljava/lang/Long;
 Landroid/database/AbstractCursor;->mExtras:Landroid/os/Bundle;
 Landroid/database/AbstractCursor;->mNotifyUri:Landroid/net/Uri;
 Landroid/database/AbstractCursor;->mRowIdColumnIndex:I
 Landroid/database/AbstractCursor;->mUpdatedRows:Ljava/util/HashMap;
 Landroid/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V
+Landroid/database/AbstractWindowedCursor;->closeWindow()V
+Landroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V
+Landroid/database/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;
 Landroid/database/CursorWindow;->mWindowPtr:J
+Landroid/database/CursorWindow;->printStats()Ljava/lang/String;
 Landroid/database/CursorWindow;->sCursorWindowSize:I
 Landroid/database/CursorWindow;->sWindowToPidMap:Landroid/util/LongSparseArray;
 Landroid/database/CursorWrapper;->mCursor:Landroid/database/Cursor;
+Landroid/database/DatabaseUtils;->cursorPickFillWindowStartPosition(II)I
+Landroid/database/DatabaseUtils;->getTypeOfObject(Ljava/lang/Object;)I
+Landroid/database/IContentObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/database/IContentObserver;
+Landroid/database/IContentObserver;->onChange(ZLandroid/net/Uri;I)V
+Landroid/database/MatrixCursor;->data:[Ljava/lang/Object;
+Landroid/database/MatrixCursor;->get(I)Ljava/lang/Object;
+Landroid/database/MatrixCursor;->rowCount:I
+Landroid/database/sqlite/DatabaseObjectNotClosedException;-><init>()V
+Landroid/database/sqlite/SQLiteClosable;->mReferenceCount:I
+Landroid/database/sqlite/SQLiteCursor;->fillWindow(I)V
+Landroid/database/sqlite/SQLiteCursor;->mEditTable:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteCursor;->mQuery:Landroid/database/sqlite/SQLiteQuery;
 Landroid/database/sqlite/SQLiteCustomFunction;->dispatchCallback([Ljava/lang/String;)V
 Landroid/database/sqlite/SQLiteCustomFunction;->name:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteCustomFunction;->numArgs:I
+Landroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V
+Landroid/database/sqlite/SQLiteDatabase;->collectDbStats(Ljava/util/ArrayList;)V
 Landroid/database/sqlite/SQLiteDatabase;->CONFLICT_VALUES:[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase;->getActiveDatabases()Ljava/util/ArrayList;
+Landroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;
 Landroid/database/sqlite/SQLiteDatabase;->mConfigurationLocked:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
 Landroid/database/sqlite/SQLiteDatabase;->mConnectionPoolLocked:Landroid/database/sqlite/SQLiteConnectionPool;
+Landroid/database/sqlite/SQLiteDatabase;->mThreadSession:Ljava/lang/ThreadLocal;
+Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
 Landroid/database/sqlite/SQLiteDatabase;->reopenReadWrite()V
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->maxSqlCacheSize:I
 Landroid/database/sqlite/SQLiteDebug$PagerStats;->largestMemAlloc:I
 Landroid/database/sqlite/SQLiteDebug$PagerStats;->memoryUsed:I
 Landroid/database/sqlite/SQLiteDebug$PagerStats;->pageCacheOverflow:I
 Landroid/database/sqlite/SQLiteOpenHelper;->mName:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;->mBindArgs:[Ljava/lang/Object;
+Landroid/database/sqlite/SQLiteProgram;->mSql:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteQueryBuilder;->computeProjection([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteQueryBuilder;->mDistinct:Z
+Landroid/database/sqlite/SQLiteQueryBuilder;->mTables:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteQueryBuilder;->mWhereClause:Ljava/lang/StringBuilder;
+Landroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V
 Landroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V
+Landroid/database/sqlite/SqliteWrapper;->checkSQLiteException(Landroid/content/Context;Landroid/database/sqlite/SQLiteException;)V
+Landroid/database/sqlite/SqliteWrapper;->delete(Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
 Landroid/database/sqlite/SqliteWrapper;->insert(Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
 Landroid/database/sqlite/SqliteWrapper;->query(Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/database/sqlite/SqliteWrapper;->update(Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
 Landroid/ddm/DdmHandleAppName;->getAppName()Ljava/lang/String;
 Landroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V
+Landroid/filterfw/core/Filter;-><init>(Ljava/lang/String;)V
+Landroid/filterfw/core/Filter;->isAvailable(Ljava/lang/String;)Z
+Landroid/filterfw/core/Filter;->setInputValue(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/filterfw/core/FilterContext;->getFrameManager()Landroid/filterfw/core/FrameManager;
+Landroid/filterfw/core/FilterContext;->getGLEnvironment()Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/FilterGraph;->getFilter(Ljava/lang/String;)Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/FilterGraph;->tearDown(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Frame;->getBitmap()Landroid/graphics/Bitmap;
+Landroid/filterfw/core/Frame;->getFormat()Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/Frame;->getTimestamp()J
+Landroid/filterfw/core/Frame;->release()Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/Frame;->setInts([I)V
+Landroid/filterfw/core/Frame;->setTimestamp(J)V
+Landroid/filterfw/core/FrameFormat;->getHeight()I
+Landroid/filterfw/core/FrameFormat;->getTarget()I
+Landroid/filterfw/core/FrameFormat;->getWidth()I
+Landroid/filterfw/core/FrameFormat;->mutableCopy()Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/core/FrameManager;->duplicateFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/FrameManager;->newBoundFrame(Landroid/filterfw/core/FrameFormat;IJ)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/FrameManager;->newFrame(Landroid/filterfw/core/FrameFormat;)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/GLEnvironment;->activate()V
+Landroid/filterfw/core/GLEnvironment;->activateSurfaceWithId(I)V
+Landroid/filterfw/core/GLEnvironment;->deactivate()V
+Landroid/filterfw/core/GLEnvironment;->isActive()Z
+Landroid/filterfw/core/GLEnvironment;->registerSurfaceFromMediaRecorder(Landroid/media/MediaRecorder;)I
+Landroid/filterfw/core/GLEnvironment;->setSurfaceTimestamp(J)V
+Landroid/filterfw/core/GLEnvironment;->swapBuffers()V
+Landroid/filterfw/core/GLEnvironment;->unregisterSurfaceId(I)V
+Landroid/filterfw/core/GLFrame;->generateMipMap()V
+Landroid/filterfw/core/GLFrame;->getTextureId()I
+Landroid/filterfw/core/GLFrame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/GLFrame;->setTextureParameter(II)V
+Landroid/filterfw/core/GraphRunner;->getError()Ljava/lang/Exception;
+Landroid/filterfw/core/GraphRunner;->getGraph()Landroid/filterfw/core/FilterGraph;
+Landroid/filterfw/core/GraphRunner;->run()V
+Landroid/filterfw/core/GraphRunner;->setDoneCallback(Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;)V
+Landroid/filterfw/core/GraphRunner;->stop()V
+Landroid/filterfw/core/MutableFrameFormat;-><init>(II)V
+Landroid/filterfw/core/MutableFrameFormat;->setBytesPerSample(I)V
+Landroid/filterfw/core/MutableFrameFormat;->setDimensions(II)V
+Landroid/filterfw/core/Program;->process(Landroid/filterfw/core/Frame;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Program;->process([Landroid/filterfw/core/Frame;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Program;->setHostValue(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/filterfw/core/ShaderProgram;-><init>(Landroid/filterfw/core/FilterContext;Ljava/lang/String;)V
+Landroid/filterfw/core/ShaderProgram;->createIdentity(Landroid/filterfw/core/FilterContext;)Landroid/filterfw/core/ShaderProgram;
+Landroid/filterfw/core/ShaderProgram;->process([Landroid/filterfw/core/Frame;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/ShaderProgram;->setHostValue(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/filterfw/core/ShaderProgram;->setMaximumTileSize(I)V
+Landroid/filterfw/core/ShaderProgram;->setSourceRect(FFFF)V
+Landroid/filterfw/core/ShaderProgram;->setSourceRegion(Landroid/filterfw/geometry/Quad;)V
+Landroid/filterfw/format/ImageFormat;->create(I)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/ImageFormat;->create(II)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/ImageFormat;->create(IIII)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/geometry/Point;-><init>()V
+Landroid/filterfw/geometry/Point;-><init>(FF)V
+Landroid/filterfw/geometry/Point;->x:F
+Landroid/filterfw/geometry/Point;->y:F
+Landroid/filterfw/geometry/Quad;-><init>()V
+Landroid/filterfw/geometry/Quad;-><init>(Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;)V
+Landroid/filterfw/geometry/Quad;->p0:Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Quad;->p1:Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Quad;->p2:Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Quad;->p3:Landroid/filterfw/geometry/Point;
+Landroid/filterfw/GraphEnvironment;-><init>()V
+Landroid/filterfw/GraphEnvironment;->getRunner(II)Landroid/filterfw/core/GraphRunner;
+Landroid/filterfw/GraphEnvironment;->loadGraph(Landroid/content/Context;I)I
 Landroid/graphics/AvoidXfermode$Mode;
 Landroid/graphics/AvoidXfermode$Mode;->AVOID:Landroid/graphics/AvoidXfermode$Mode;
 Landroid/graphics/AvoidXfermode$Mode;->TARGET:Landroid/graphics/AvoidXfermode$Mode;
@@ -1385,119 +2288,88 @@
 Landroid/graphics/Bitmap;->createGraphicBufferHandle()Landroid/graphics/GraphicBuffer;
 Landroid/graphics/Bitmap;->createHardwareBitmap(Landroid/graphics/GraphicBuffer;)Landroid/graphics/Bitmap;
 Landroid/graphics/Bitmap;->getDefaultDensity()I
+Landroid/graphics/Bitmap;->mHeight:I
+Landroid/graphics/Bitmap;->mIsMutable:Z
 Landroid/graphics/Bitmap;->mNativePtr:J
 Landroid/graphics/Bitmap;->mNinePatchChunk:[B
 Landroid/graphics/Bitmap;->mNinePatchInsets:Landroid/graphics/NinePatch$InsetStruct;
+Landroid/graphics/Bitmap;->mWidth:I
+Landroid/graphics/Bitmap;->nativeReconfigure(JIIIZ)V
 Landroid/graphics/Bitmap;->reinit(IIZ)V
+Landroid/graphics/Bitmap;->scaleFromDensity(III)I
 Landroid/graphics/Bitmap;->setDefaultDensity(I)V
+Landroid/graphics/Bitmap;->setNinePatchChunk([B)V
 Landroid/graphics/BitmapFactory;->nativeDecodeAsset(JLandroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 Landroid/graphics/BitmapFactory;->nativeDecodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 Landroid/graphics/BitmapFactory;->nativeDecodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 Landroid/graphics/BitmapFactory;->nativeDecodeStream(Ljava/io/InputStream;[BLandroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 Landroid/graphics/BitmapRegionDecoder;-><init>(J)V
+Landroid/graphics/BitmapRegionDecoder;->nativeNewInstance([BIIZ)Landroid/graphics/BitmapRegionDecoder;
+Landroid/graphics/BitmapShader;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/graphics/BitmapShader;->mTileX:I
+Landroid/graphics/BitmapShader;->mTileY:I
 Landroid/graphics/Camera;->native_instance:J
 Landroid/graphics/Canvas;-><init>(J)V
-Landroid/graphics/Canvas;->CLIP_SAVE_FLAG:I
-Landroid/graphics/Canvas;->CLIP_TO_LAYER_SAVE_FLAG:I
-Landroid/graphics/Canvas;->FULL_COLOR_LAYER_SAVE_FLAG:I
-Landroid/graphics/Canvas;->HAS_ALPHA_LAYER_SAVE_FLAG:I
-Landroid/graphics/Canvas;->MATRIX_SAVE_FLAG:I
 Landroid/graphics/Canvas;->clipRegion(Landroid/graphics/Region;)Z
 Landroid/graphics/Canvas;->clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z
+Landroid/graphics/Canvas;->CLIP_SAVE_FLAG:I
+Landroid/graphics/Canvas;->CLIP_TO_LAYER_SAVE_FLAG:I
+Landroid/graphics/Canvas;->freeCaches()V
+Landroid/graphics/Canvas;->freeTextLayoutCaches()V
+Landroid/graphics/Canvas;->FULL_COLOR_LAYER_SAVE_FLAG:I
+Landroid/graphics/Canvas;->getGL()Ljavax/microedition/khronos/opengles/GL;
+Landroid/graphics/Canvas;->getNativeCanvasWrapper()J
+Landroid/graphics/Canvas;->HAS_ALPHA_LAYER_SAVE_FLAG:I
+Landroid/graphics/Canvas;->MATRIX_SAVE_FLAG:I
+Landroid/graphics/Canvas;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/graphics/Canvas;->release()V
 Landroid/graphics/Canvas;->save(I)I
+Landroid/graphics/Canvas;->setScreenDensity(I)V
+Landroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty;
+Landroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty;
+Landroid/graphics/ColorMatrixColorFilter;->mMatrix:Landroid/graphics/ColorMatrix;
 Landroid/graphics/ColorMatrixColorFilter;->setColorMatrix(Landroid/graphics/ColorMatrix;)V
-Landroid/graphics/FontFamily;-><init>()V
-Landroid/graphics/FontFamily;->abortCreation()V
-Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z
-Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z
-Landroid/graphics/FontFamily;->freeze()Z
-Landroid/graphics/GraphicBuffer;-><init>(IIIIJ)V
-Landroid/graphics/GraphicBuffer;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/graphics/GraphicBuffer;->createFromExisting(IIIIJ)Landroid/graphics/GraphicBuffer;
-Landroid/graphics/GraphicBuffer;->mNativeObject:J
-Landroid/graphics/ImageDecoder$IncompleteException;
-Landroid/graphics/ImageDecoder$IncompleteException;-><init>()V
-Landroid/graphics/ImageDecoder;->ERROR_SOURCE_ERROR:I
-Landroid/graphics/ImageDecoder;->ERROR_SOURCE_EXCEPTION:I
-Landroid/graphics/ImageDecoder;->ERROR_SOURCE_INCOMPLETE:I
-Landroid/graphics/ImageDecoder;->getAsAlphaMask()Z
-Landroid/graphics/ImageDecoder;->getConserveMemory()Z
-Landroid/graphics/ImageDecoder;->getDecodeAsAlphaMask()Z
-Landroid/graphics/ImageDecoder;->getMutable()Z
-Landroid/graphics/ImageDecoder;->getRequireUnpremultiplied()Z
-Landroid/graphics/ImageDecoder;->postProcessAndRelease(Landroid/graphics/Canvas;)I
-Landroid/graphics/ImageDecoder;->setAsAlphaMask(Z)Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageDecoder;->setConserveMemory(Z)V
-Landroid/graphics/ImageDecoder;->setDecodeAsAlphaMask(Z)Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageDecoder;->setMutable(Z)Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageDecoder;->setRequireUnpremultiplied(Z)Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageDecoder;->setResize(I)Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageDecoder;->setResize(II)Landroid/graphics/ImageDecoder;
-Landroid/graphics/Insets;->bottom:I
-Landroid/graphics/Insets;->left:I
-Landroid/graphics/Insets;->right:I
-Landroid/graphics/Insets;->top:I
-Landroid/graphics/LayerRasterizer;
-Landroid/graphics/LayerRasterizer;-><init>()V
-Landroid/graphics/LayerRasterizer;->addLayer(Landroid/graphics/Paint;)V
-Landroid/graphics/LayerRasterizer;->addLayer(Landroid/graphics/Paint;FF)V
-Landroid/graphics/LinearGradient;->mColors:[I
-Landroid/graphics/Matrix;->native_instance:J
-Landroid/graphics/Movie;-><init>(J)V
-Landroid/graphics/Movie;->mNativeMovie:J
-Landroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
-Landroid/graphics/NinePatch;->mBitmap:Landroid/graphics/Bitmap;
-Landroid/graphics/Paint;->getRasterizer()Landroid/graphics/Rasterizer;
-Landroid/graphics/Paint;->setRasterizer(Landroid/graphics/Rasterizer;)Landroid/graphics/Rasterizer;
-Landroid/graphics/Picture;->mNativePicture:J
-Landroid/graphics/PixelXorXfermode;
-Landroid/graphics/PixelXorXfermode;-><init>(I)V
-Landroid/graphics/PorterDuffColorFilter;->getColor()I
-Landroid/graphics/PorterDuffColorFilter;->setColor(I)V
-Landroid/graphics/PorterDuffColorFilter;->setMode(Landroid/graphics/PorterDuff$Mode;)V
-Landroid/graphics/Rasterizer;
-Landroid/graphics/Rasterizer;-><init>()V
-Landroid/graphics/Rect;->scale(F)V
-Landroid/graphics/Region;-><init>(JI)V
-Landroid/graphics/Region;->mNativeRegion:J
-Landroid/graphics/SurfaceTexture;->mFrameAvailableListener:J
-Landroid/graphics/SurfaceTexture;->mProducer:J
-Landroid/graphics/SurfaceTexture;->mSurfaceTexture:J
-Landroid/graphics/SurfaceTexture;->nativeDetachFromGLContext()I
-Landroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V
-Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;II)Landroid/graphics/Typeface;
-Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface;
-Landroid/graphics/Typeface;->mStyle:I
-Landroid/graphics/Typeface;->sDefaults:[Landroid/graphics/Typeface;
-Landroid/graphics/Typeface;->sSystemFontMap:Ljava/util/Map;
-Landroid/graphics/Typeface;->setDefault(Landroid/graphics/Typeface;)V
-Landroid/graphics/drawable/AnimatedImageDrawable;->LOOP_INFINITE:I
 Landroid/graphics/drawable/AnimatedImageDrawable;->getLoopCount(I)I
+Landroid/graphics/drawable/AnimatedImageDrawable;->LOOP_INFINITE:I
 Landroid/graphics/drawable/AnimatedImageDrawable;->onAnimationEnd()V
 Landroid/graphics/drawable/AnimatedImageDrawable;->setLoopCount(I)V
+Landroid/graphics/drawable/AnimatedRotateDrawable;->setFramesCount(I)V
+Landroid/graphics/drawable/AnimatedRotateDrawable;->setFramesDuration(I)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mStateIds:Landroid/util/SparseIntArray;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mTransitions:Landroid/util/LongSparseLongArray;
 Landroid/graphics/drawable/AnimatedStateListDrawable;->mState:Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->forceAnimationOnUI()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatedVectorState:Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatorSet:Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;
 Landroid/graphics/drawable/AnimationDrawable;->mCurFrame:I
 Landroid/graphics/drawable/BitmapDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/BitmapDrawable;->getTint()Landroid/content/res/ColorStateList;
 Landroid/graphics/drawable/BitmapDrawable;->getTintMode()Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/BitmapDrawable;->mBitmapState:Landroid/graphics/drawable/BitmapDrawable$BitmapState;
 Landroid/graphics/drawable/BitmapDrawable;->mTargetDensity:I
 Landroid/graphics/drawable/BitmapDrawable;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/graphics/drawable/ClipDrawable;->mState:Landroid/graphics/drawable/ClipDrawable$ClipState;
 Landroid/graphics/drawable/ColorDrawable$ColorState;->mUseColor:I
+Landroid/graphics/drawable/ColorDrawable;->mPaint:Landroid/graphics/Paint;
 Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/Drawable;->inflateWithAttributes(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/TypedArray;I)V
 Landroid/graphics/drawable/Drawable;->isProjected()Z
 Landroid/graphics/drawable/Drawable;->mCallback:Ljava/lang/ref/WeakReference;
+Landroid/graphics/drawable/Drawable;->mSrcDensityOverride:I
 Landroid/graphics/drawable/Drawable;->parseTintMode(ILandroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuff$Mode;
 Landroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;-><init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantPadding:Landroid/graphics/Rect;
 Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDrawables:[Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mHasColorFilter:Z
 Landroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/DrawableContainer;->mDrawableContainerState:Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+Landroid/graphics/drawable/DrawableContainer;->mLastDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/DrawableInflater;->mClassLoader:Ljava/lang/ClassLoader;
+Landroid/graphics/drawable/DrawableWrapper;->getOpticalInsets()Landroid/graphics/Insets;
+Landroid/graphics/drawable/DrawableWrapper;->mState:Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mAngle:I
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradient:I
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradientColors:[I
@@ -1518,8 +2390,11 @@
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mThicknessRatio:F
 Landroid/graphics/drawable/GradientDrawable$GradientState;->mWidth:I
 Landroid/graphics/drawable/GradientDrawable;->getOpticalInsets()Landroid/graphics/Insets;
+Landroid/graphics/drawable/GradientDrawable;->mFillPaint:Landroid/graphics/Paint;
 Landroid/graphics/drawable/GradientDrawable;->mGradientState:Landroid/graphics/drawable/GradientDrawable$GradientState;
 Landroid/graphics/drawable/GradientDrawable;->mPadding:Landroid/graphics/Rect;
+Landroid/graphics/drawable/GradientDrawable;->mStrokePaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/Icon;->createWithResource(Landroid/content/res/Resources;I)Landroid/graphics/drawable/Icon;
 Landroid/graphics/drawable/Icon;->getBitmap()Landroid/graphics/Bitmap;
 Landroid/graphics/drawable/Icon;->getDataBytes()[B
 Landroid/graphics/drawable/Icon;->getDataLength()I
@@ -1528,14 +2403,24 @@
 Landroid/graphics/drawable/Icon;->hasTint()Z
 Landroid/graphics/drawable/Icon;->mString1:Ljava/lang/String;
 Landroid/graphics/drawable/Icon;->mType:I
+Landroid/graphics/drawable/InsetDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/InsetDrawable;->mState:Landroid/graphics/drawable/InsetDrawable$InsetState;
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/LayerDrawable$LayerState;->mChildren:[Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
+Landroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;)I
+Landroid/graphics/drawable/LayerDrawable;->ensurePadding()V
 Landroid/graphics/drawable/LayerDrawable;->mLayerState:Landroid/graphics/drawable/LayerDrawable$LayerState;
 Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mNinePatch:Landroid/graphics/NinePatch;
+Landroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/NinePatchDrawable;->mNinePatchState:Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;
 Landroid/graphics/drawable/RippleDrawable$RippleState;->mColor:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/RippleDrawable;->getRipplePaint()Landroid/graphics/Paint;
+Landroid/graphics/drawable/RippleDrawable;->mDensity:I
 Landroid/graphics/drawable/RippleDrawable;->mState:Landroid/graphics/drawable/RippleDrawable$RippleState;
+Landroid/graphics/drawable/RippleDrawable;->setForceSoftware(Z)V
+Landroid/graphics/drawable/RotateDrawable;->mState:Landroid/graphics/drawable/RotateDrawable$RotateState;
+Landroid/graphics/drawable/ScaleDrawable;->mState:Landroid/graphics/drawable/ScaleDrawable$ScaleState;
+Landroid/graphics/drawable/StateListDrawable$StateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;)I
 Landroid/graphics/drawable/StateListDrawable;->extractStateSet(Landroid/util/AttributeSet;)[I
 Landroid/graphics/drawable/StateListDrawable;->getStateCount()I
 Landroid/graphics/drawable/StateListDrawable;->getStateDrawable(I)Landroid/graphics/drawable/Drawable;
@@ -1543,28 +2428,185 @@
 Landroid/graphics/drawable/StateListDrawable;->getStateSet(I)[I
 Landroid/graphics/drawable/StateListDrawable;->mStateListState:Landroid/graphics/drawable/StateListDrawable$StateListState;
 Landroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/TransitionDrawable;->mAlpha:I
+Landroid/graphics/drawable/TransitionDrawable;->mCrossFade:Z
+Landroid/graphics/drawable/TransitionDrawable;->mTo:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setPivotX(F)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setPivotY(F)V
 Landroid/graphics/drawable/VectorDrawable$VGroup;->setRotation(F)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateX(F)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateY(F)V
+Landroid/graphics/drawable/VectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 Landroid/graphics/drawable/VectorDrawable;->getTargetByName(Ljava/lang/String;)Ljava/lang/Object;
 Landroid/graphics/drawable/VectorDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
 Landroid/graphics/drawable/VectorDrawable;->setAllowCaching(Z)V
+Landroid/graphics/FontFamily;-><init>()V
+Landroid/graphics/FontFamily;-><init>([Ljava/lang/String;I)V
+Landroid/graphics/FontFamily;->abortCreation()V
+Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z
+Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z
+Landroid/graphics/FontFamily;->freeze()Z
 Landroid/graphics/fonts/FontVariationAxis;->mStyleValue:F
 Landroid/graphics/fonts/FontVariationAxis;->mTag:I
-Landroid/hardware/Camera;->addCallbackBuffer([BI)V
-Landroid/hardware/Camera;->mNativeContext:J
-Landroid/hardware/Camera;->native_setup(Ljava/lang/Object;IILjava/lang/String;)I
-Landroid/hardware/Camera;->openLegacy(II)Landroid/hardware/Camera;
-Landroid/hardware/Camera;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
-Landroid/hardware/HardwareBuffer;-><init>(J)V
-Landroid/hardware/HardwareBuffer;->destroy()V
-Landroid/hardware/HardwareBuffer;->isDestroyed()Z
-Landroid/hardware/HardwareBuffer;->mNativeObject:J
-Landroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
-Landroid/hardware/SensorDirectChannel;->isValid()Z
-Landroid/hardware/SensorManager;->configureDirectChannel(Landroid/hardware/SensorDirectChannel;Landroid/hardware/Sensor;I)I
-Landroid/hardware/SerialPort;->mNativeContext:I
-Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
-Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchFlushCompleteEvent(I)V
-Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchSensorEvent(I[FIJ)V
+Landroid/graphics/GraphicBuffer;-><init>(IIIIJ)V
+Landroid/graphics/GraphicBuffer;->createFromExisting(IIIIJ)Landroid/graphics/GraphicBuffer;
+Landroid/graphics/GraphicBuffer;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/graphics/GraphicBuffer;->mNativeObject:J
+Landroid/graphics/ImageDecoder$IncompleteException;
+Landroid/graphics/ImageDecoder$IncompleteException;-><init>()V
+Landroid/graphics/ImageDecoder;->ERROR_SOURCE_ERROR:I
+Landroid/graphics/ImageDecoder;->ERROR_SOURCE_EXCEPTION:I
+Landroid/graphics/ImageDecoder;->ERROR_SOURCE_INCOMPLETE:I
+Landroid/graphics/ImageDecoder;->getAsAlphaMask()Z
+Landroid/graphics/ImageDecoder;->getConserveMemory()Z
+Landroid/graphics/ImageDecoder;->getDecodeAsAlphaMask()Z
+Landroid/graphics/ImageDecoder;->getMutable()Z
+Landroid/graphics/ImageDecoder;->getRequireUnpremultiplied()Z
+Landroid/graphics/ImageDecoder;->postProcessAndRelease(Landroid/graphics/Canvas;)I
+Landroid/graphics/ImageDecoder;->setAsAlphaMask(Z)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->setConserveMemory(Z)V
+Landroid/graphics/ImageDecoder;->setDecodeAsAlphaMask(Z)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->setMutable(Z)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->setRequireUnpremultiplied(Z)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->setResize(I)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->setResize(II)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageFormat;->Y8:I
+Landroid/graphics/Insets;->bottom:I
+Landroid/graphics/Insets;->left:I
+Landroid/graphics/Insets;->NONE:Landroid/graphics/Insets;
+Landroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets;
+Landroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets;
+Landroid/graphics/Insets;->right:I
+Landroid/graphics/Insets;->top:I
+Landroid/graphics/LayerRasterizer;
+Landroid/graphics/LayerRasterizer;-><init>()V
+Landroid/graphics/LayerRasterizer;->addLayer(Landroid/graphics/Paint;)V
+Landroid/graphics/LayerRasterizer;->addLayer(Landroid/graphics/Paint;FF)V
+Landroid/graphics/LightingColorFilter;->setColorAdd(I)V
+Landroid/graphics/LightingColorFilter;->setColorMultiply(I)V
+Landroid/graphics/LinearGradient;->mColor0:I
+Landroid/graphics/LinearGradient;->mColor1:I
+Landroid/graphics/LinearGradient;->mColors:[I
+Landroid/graphics/LinearGradient;->mPositions:[F
+Landroid/graphics/LinearGradient;->mTileMode:Landroid/graphics/Shader$TileMode;
+Landroid/graphics/LinearGradient;->mX0:F
+Landroid/graphics/LinearGradient;->mX1:F
+Landroid/graphics/LinearGradient;->mY0:F
+Landroid/graphics/LinearGradient;->mY1:F
+Landroid/graphics/Matrix;->IDENTITY_MATRIX:Landroid/graphics/Matrix;
+Landroid/graphics/Matrix;->native_instance:J
+Landroid/graphics/Movie;-><init>(J)V
+Landroid/graphics/Movie;->mNativeMovie:J
+Landroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
+Landroid/graphics/NinePatch;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/graphics/NinePatch;->mNativeChunk:J
+Landroid/graphics/Outline;->mRect:Landroid/graphics/Rect;
+Landroid/graphics/Paint;->getNativeInstance()J
+Landroid/graphics/Paint;->getRasterizer()Landroid/graphics/Rasterizer;
+Landroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F
+Landroid/graphics/Paint;->getTextRunCursor([CIIIII)I
+Landroid/graphics/Paint;->mNativePaint:J
+Landroid/graphics/Paint;->mTypeface:Landroid/graphics/Typeface;
+Landroid/graphics/Paint;->setCompatibilityScaling(F)V
+Landroid/graphics/Paint;->setHyphenEdit(I)V
+Landroid/graphics/Paint;->setRasterizer(Landroid/graphics/Rasterizer;)Landroid/graphics/Rasterizer;
+Landroid/graphics/Path;->isSimplePath:Z
+Landroid/graphics/Path;->rects:Landroid/graphics/Region;
+Landroid/graphics/pdf/PdfRenderer;->doClose()V
+Landroid/graphics/pdf/PdfRenderer;->mCurrentPage:Landroid/graphics/pdf/PdfRenderer$Page;
+Landroid/graphics/Picture;->mNativePicture:J
+Landroid/graphics/PixelXorXfermode;
+Landroid/graphics/PixelXorXfermode;-><init>(I)V
+Landroid/graphics/PorterDuff$Mode;->nativeInt:I
+Landroid/graphics/PorterDuffColorFilter;->getColor()I
+Landroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/PorterDuffColorFilter;->setColor(I)V
+Landroid/graphics/PorterDuffColorFilter;->setMode(Landroid/graphics/PorterDuff$Mode;)V
+Landroid/graphics/RadialGradient;->mCenterColor:I
+Landroid/graphics/RadialGradient;->mColors:[I
+Landroid/graphics/RadialGradient;->mEdgeColor:I
+Landroid/graphics/RadialGradient;->mPositions:[F
+Landroid/graphics/RadialGradient;->mRadius:F
+Landroid/graphics/RadialGradient;->mTileMode:Landroid/graphics/Shader$TileMode;
+Landroid/graphics/RadialGradient;->mX:F
+Landroid/graphics/RadialGradient;->mY:F
+Landroid/graphics/Rasterizer;
+Landroid/graphics/Rasterizer;-><init>()V
+Landroid/graphics/Rect;->printShortString(Ljava/io/PrintWriter;)V
+Landroid/graphics/Rect;->scale(F)V
+Landroid/graphics/Region$Op;->nativeInt:I
+Landroid/graphics/Region;-><init>(JI)V
+Landroid/graphics/Region;->mNativeRegion:J
+Landroid/graphics/Region;->recycle()V
+Landroid/graphics/Region;->scale(F)V
+Landroid/graphics/Shader$TileMode;->nativeInt:I
+Landroid/graphics/SurfaceTexture;->mFrameAvailableListener:J
+Landroid/graphics/SurfaceTexture;->mOnFrameAvailableHandler:Landroid/os/Handler;
+Landroid/graphics/SurfaceTexture;->mProducer:J
+Landroid/graphics/SurfaceTexture;->mSurfaceTexture:J
+Landroid/graphics/SurfaceTexture;->nativeDetachFromGLContext()I
+Landroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V
+Landroid/graphics/SweepGradient;->mColor0:I
+Landroid/graphics/SweepGradient;->mColor1:I
+Landroid/graphics/SweepGradient;->mColors:[I
+Landroid/graphics/SweepGradient;->mCx:F
+Landroid/graphics/SweepGradient;->mCy:F
+Landroid/graphics/SweepGradient;->mPositions:[F
+Landroid/graphics/TableMaskFilter;->CreateClipTable(II)Landroid/graphics/TableMaskFilter;
+Landroid/graphics/TemporaryBuffer;->obtain(I)[C
+Landroid/graphics/TemporaryBuffer;->recycle([C)V
+Landroid/graphics/Typeface;-><init>(J)V
+Landroid/graphics/Typeface;->createFromFamilies([Landroid/graphics/FontFamily;)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;II)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->mStyle:I
+Landroid/graphics/Typeface;->nativeCreateFromArray([JII)J
+Landroid/graphics/Typeface;->nativeCreateWeightAlias(JI)J
+Landroid/graphics/Typeface;->native_instance:J
+Landroid/graphics/Typeface;->sDefaults:[Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->setDefault(Landroid/graphics/Typeface;)V
+Landroid/graphics/Typeface;->sSystemFallbackMap:Ljava/util/Map;
+Landroid/graphics/Typeface;->sSystemFontMap:Ljava/util/Map;
+Landroid/graphics/Xfermode;->porterDuffMode:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_GOOD:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_IMAGER_DIRTY:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_INSUFFICIENT:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_PARTIAL:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_TOO_FAST:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_TOO_SLOW:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_CANCELED:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_HW_NOT_PRESENT:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_HW_UNAVAILABLE:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_LOCKOUT:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_LOCKOUT_PERMANENT:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_NO_BIOMETRICS:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_NO_SPACE:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_TIMEOUT:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_UNABLE_TO_PROCESS:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_USER_CANCELED:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_VENDOR:I
+Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_VENDOR_BASE:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_GOOD:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_IMAGER_DIRTY:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_INSUFFICIENT:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_PARTIAL:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_TOO_FAST:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_TOO_SLOW:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_CANCELED:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_HW_NOT_PRESENT:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_HW_UNAVAILABLE:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_LOCKOUT:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_LOCKOUT_PERMANENT:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_NO_FINGERPRINTS:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_NO_SPACE:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_TIMEOUT:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_UNABLE_TO_PROCESS:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_USER_CANCELED:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_VENDOR:I
+Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_VENDOR_BASE:I
+Landroid/hardware/Camera$Parameters;->copyFrom(Landroid/hardware/Camera$Parameters;)V
+Landroid/hardware/Camera$Parameters;->dump()V
+Landroid/hardware/Camera$Parameters;->splitArea(Ljava/lang/String;)Ljava/util/ArrayList;
 Landroid/hardware/camera2/CameraAccessException;->serialVersionUID:J
 Landroid/hardware/camera2/CameraCharacteristics$Key;-><init>(Ljava/lang/String;Landroid/hardware/camera2/utils/TypeReference;)V
 Landroid/hardware/camera2/CameraCharacteristics$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
@@ -1594,10 +2636,12 @@
 Landroid/hardware/camera2/CameraCharacteristics;->SCALER_AVAILABLE_PROCESSED_SIZES:Landroid/hardware/camera2/CameraCharacteristics$Key;
 Landroid/hardware/camera2/CameraCharacteristics;->SCALER_AVAILABLE_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;
 Landroid/hardware/camera2/CameraCharacteristics;->SCALER_AVAILABLE_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;
+Landroid/hardware/camera2/CaptureRequest$Builder;->setPartOfCHSRequestList(Z)V
 Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Landroid/hardware/camera2/utils/TypeReference;)V
 Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
 Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;J)V
 Landroid/hardware/camera2/CaptureRequest$Key;->getNativeKey()Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+Landroid/hardware/camera2/CaptureRequest;->getTargets()Ljava/util/Collection;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_COORDINATES:Landroid/hardware/camera2/CaptureRequest$Key;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_PROCESSING_METHOD:Landroid/hardware/camera2/CaptureRequest$Key;
 Landroid/hardware/camera2/CaptureRequest;->JPEG_GPS_TIMESTAMP:Landroid/hardware/camera2/CaptureRequest$Key;
@@ -1633,65 +2677,166 @@
 Landroid/hardware/camera2/CaptureResult;->TONEMAP_CURVE_RED:Landroid/hardware/camera2/CaptureResult$Key;
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getTag()I
 Landroid/hardware/camera2/impl/CameraMetadataNative;->mMetadataPtr:J
+Landroid/hardware/camera2/utils/SurfaceUtils;->getSurfaceSize(Landroid/view/Surface;)Landroid/util/Size;
+Landroid/hardware/camera2/utils/TypeReference;-><init>()V
 Landroid/hardware/camera2/utils/TypeReference;->createSpecializedTypeReference(Ljava/lang/reflect/Type;)Landroid/hardware/camera2/utils/TypeReference;
+Landroid/hardware/Camera;->addCallbackBuffer([BI)V
+Landroid/hardware/Camera;->addRawImageCallbackBuffer([B)V
+Landroid/hardware/Camera;->CAMERA_HAL_API_VERSION_1_0:I
+Landroid/hardware/Camera;->getEmptyParameters()Landroid/hardware/Camera$Parameters;
+Landroid/hardware/Camera;->mNativeContext:J
+Landroid/hardware/Camera;->native_getParameters()Ljava/lang/String;
+Landroid/hardware/Camera;->native_setParameters(Ljava/lang/String;)V
+Landroid/hardware/Camera;->native_setup(Ljava/lang/Object;IILjava/lang/String;)I
+Landroid/hardware/Camera;->openLegacy(II)Landroid/hardware/Camera;
+Landroid/hardware/Camera;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/hardware/Camera;->previewEnabled()Z
+Landroid/hardware/Camera;->setPreviewSurface(Landroid/view/Surface;)V
+Landroid/hardware/display/DisplayManager;->ACTION_WIFI_DISPLAY_STATUS_CHANGED:Ljava/lang/String;
+Landroid/hardware/display/DisplayManager;->connectWifiDisplay(Ljava/lang/String;)V
+Landroid/hardware/display/DisplayManager;->disconnectWifiDisplay()V
+Landroid/hardware/display/DisplayManager;->EXTRA_WIFI_DISPLAY_STATUS:Ljava/lang/String;
+Landroid/hardware/display/DisplayManager;->forgetWifiDisplay(Ljava/lang/String;)V
+Landroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
+Landroid/hardware/display/DisplayManager;->pauseWifiDisplay()V
+Landroid/hardware/display/DisplayManager;->renameWifiDisplay(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/display/DisplayManager;->resumeWifiDisplay()V
+Landroid/hardware/display/DisplayManager;->startWifiDisplayScan()V
+Landroid/hardware/display/DisplayManager;->stopWifiDisplayScan()V
+Landroid/hardware/display/DisplayManagerGlobal;->disconnectWifiDisplay()V
+Landroid/hardware/display/DisplayManagerGlobal;->getDisplayIds()[I
+Landroid/hardware/display/DisplayManagerGlobal;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 Landroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal;
 Landroid/hardware/display/DisplayManagerGlobal;->getRealDisplay(I)Landroid/view/Display;
+Landroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
 Landroid/hardware/display/DisplayManagerGlobal;->mDm:Landroid/hardware/display/IDisplayManager;
 Landroid/hardware/display/DisplayManagerGlobal;->sInstance:Landroid/hardware/display/DisplayManagerGlobal;
 Landroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
+Landroid/hardware/display/IDisplayManager;->getDisplayInfo(I)Landroid/view/DisplayInfo;
+Landroid/hardware/display/WifiDisplay;->canConnect()Z
+Landroid/hardware/display/WifiDisplay;->equals(Landroid/hardware/display/WifiDisplay;)Z
+Landroid/hardware/display/WifiDisplay;->getDeviceAddress()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplay;->getDeviceAlias()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplay;->getDeviceName()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplay;->isAvailable()Z
+Landroid/hardware/display/WifiDisplay;->isRemembered()Z
+Landroid/hardware/display/WifiDisplayStatus;->DISPLAY_STATE_CONNECTED:I
+Landroid/hardware/display/WifiDisplayStatus;->DISPLAY_STATE_CONNECTING:I
+Landroid/hardware/display/WifiDisplayStatus;->DISPLAY_STATE_NOT_CONNECTED:I
+Landroid/hardware/display/WifiDisplayStatus;->FEATURE_STATE_ON:I
+Landroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay;
+Landroid/hardware/display/WifiDisplayStatus;->getActiveDisplayState()I
+Landroid/hardware/display/WifiDisplayStatus;->getDisplays()[Landroid/hardware/display/WifiDisplay;
+Landroid/hardware/display/WifiDisplayStatus;->getFeatureState()I
+Landroid/hardware/display/WifiDisplayStatus;->getScanState()I
 Landroid/hardware/display/WifiDisplayStatus;->mActiveDisplay:Landroid/hardware/display/WifiDisplay;
 Landroid/hardware/display/WifiDisplayStatus;->mDisplays:[Landroid/hardware/display/WifiDisplay;
+Landroid/hardware/display/WifiDisplayStatus;->SCAN_STATE_NOT_SCANNING:I
 Landroid/hardware/fingerprint/Fingerprint;->getFingerId()I
 Landroid/hardware/fingerprint/Fingerprint;->getName()Ljava/lang/CharSequence;
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->getFingerprint()Landroid/hardware/fingerprint/Fingerprint;
+Landroid/hardware/fingerprint/FingerprintManager;->getAuthenticatorId()J
 Landroid/hardware/fingerprint/FingerprintManager;->getEnrolledFingerprints()Ljava/util/List;
+Landroid/hardware/fingerprint/FingerprintManager;->getEnrolledFingerprints(I)Ljava/util/List;
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
+Landroid/hardware/HardwareBuffer;-><init>(J)V
+Landroid/hardware/HardwareBuffer;->destroy()V
+Landroid/hardware/HardwareBuffer;->isDestroyed()Z
+Landroid/hardware/HardwareBuffer;->mNativeObject:J
+Landroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
 Landroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
-Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_injectInputEvent:I
+Landroid/hardware/input/IInputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
+Landroid/hardware/input/InputManager;->createInputForwarder(I)Landroid/app/IInputForwarder;
 Landroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
 Landroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
+Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I
 Landroid/hardware/input/InputManager;->mIm:Landroid/hardware/input/IInputManager;
+Landroid/hardware/input/InputManager;->setPointerIconType(I)V
 Landroid/hardware/location/GeofenceHardware;-><init>(Landroid/hardware/location/IGeofenceHardware;)V
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
 Landroid/hardware/location/IActivityRecognitionHardwareClient;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
 Landroid/hardware/location/IContextHubService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubService;
+Landroid/hardware/Sensor;->getHandle()I
+Landroid/hardware/Sensor;->mFlags:I
+Landroid/hardware/Sensor;->TYPE_DEVICE_ORIENTATION:I
+Landroid/hardware/Sensor;->TYPE_PICK_UP_GESTURE:I
+Landroid/hardware/SensorDirectChannel;->isValid()Z
+Landroid/hardware/SensorEvent;-><init>(I)V
+Landroid/hardware/SensorManager;-><init>()V
+Landroid/hardware/SensorManager;->configureDirectChannel(Landroid/hardware/SensorDirectChannel;Landroid/hardware/Sensor;I)I
+Landroid/hardware/SerialManager;->getSerialPorts()[Ljava/lang/String;
+Landroid/hardware/SerialManager;->openSerialPort(Ljava/lang/String;I)Landroid/hardware/SerialPort;
+Landroid/hardware/SerialPort;->close()V
+Landroid/hardware/SerialPort;->mNativeContext:I
+Landroid/hardware/SerialPort;->write(Ljava/nio/ByteBuffer;I)V
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;-><init>(II)V
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->confidenceLevel:I
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->userId:I
 Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B)V
 Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;[B)V
+Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;-><init>(IILjava/lang/String;Ljava/lang/String;[I)V
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->id:I
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->locale:Ljava/lang/String;
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->recognitionModes:I
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->text:Ljava/lang/String;
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->users:[I
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;)V
+Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->keyphraseExtras:[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;-><init>(III[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;)V
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->coarseConfidenceLevel:I
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->confidenceLevels:[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->id:I
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->recognitionModes:I
+Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;[B[Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;)V
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;->keyphrases:[Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIIZIZIZ)V
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->id:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->maxSoundModels:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->uuid:Ljava/util/UUID;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;-><init>(ZZ[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;[B)V
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->captureRequested:Z
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->data:[B
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->keyphrases:[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B)V
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->captureAvailable:Z
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->captureSession:I
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->data:[B
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->soundModelHandle:I
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->status:I
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->data:[B
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->uuid:Ljava/util/UUID;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->vendorUuid:Ljava/util/UUID;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;-><init>(II[B)V
+Landroid/hardware/soundtrigger/SoundTrigger;->attachModule(ILandroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)Landroid/hardware/soundtrigger/SoundTriggerModule;
+Landroid/hardware/soundtrigger/SoundTrigger;->listModules(Ljava/util/ArrayList;)I
+Landroid/hardware/soundtrigger/SoundTriggerModule;->detach()V
+Landroid/hardware/soundtrigger/SoundTriggerModule;->loadSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;[I)I
 Landroid/hardware/soundtrigger/SoundTriggerModule;->mId:I
 Landroid/hardware/soundtrigger/SoundTriggerModule;->mNativeContext:J
 Landroid/hardware/soundtrigger/SoundTriggerModule;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/hardware/soundtrigger/SoundTriggerModule;->startRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Landroid/hardware/soundtrigger/SoundTriggerModule;->stopRecognition(I)I
+Landroid/hardware/soundtrigger/SoundTriggerModule;->unloadSoundModel(I)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchFlushCompleteEvent(I)V
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispatchSensorEvent(I[FIJ)V
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
+Landroid/hardware/usb/UsbDevice;->mInterfaces:[Landroid/hardware/usb/UsbInterface;
 Landroid/hardware/usb/UsbDeviceConnection;->mNativeContext:J
-Landroid/hardware/usb/UsbManager;->getPortStatus(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/UsbPortStatus;
+Landroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V
+Landroid/hardware/usb/UsbManager;->ACTION_USB_STATE:Ljava/lang/String;
 Landroid/hardware/usb/UsbManager;->getPorts()[Landroid/hardware/usb/UsbPort;
+Landroid/hardware/usb/UsbManager;->getPortStatus(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/UsbPortStatus;
+Landroid/hardware/usb/UsbManager;->isFunctionEnabled(Ljava/lang/String;)Z
 Landroid/hardware/usb/UsbManager;->setCurrentFunction(Ljava/lang/String;Z)V
 Landroid/hardware/usb/UsbManager;->setPortRoles(Landroid/hardware/usb/UsbPort;II)V
+Landroid/hardware/usb/UsbManager;->USB_CONNECTED:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_DATA_UNLOCKED:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_NONE:Ljava/lang/String;
 Landroid/hardware/usb/UsbPortStatus;->getCurrentDataRole()I
 Landroid/hardware/usb/UsbPortStatus;->getCurrentMode()I
 Landroid/hardware/usb/UsbPortStatus;->getCurrentPowerRole()I
@@ -1702,18 +2847,20 @@
 Landroid/hardware/usb/UsbRequest;->mLength:I
 Landroid/hardware/usb/UsbRequest;->mNativeContext:J
 Landroid/icu/impl/CurrencyData;-><init>()V
-Landroid/icu/impl/TimeZoneGenericNames;->readObject(Ljava/io/ObjectInputStream;)V
-Landroid/icu/impl/TimeZoneGenericNames;->serialVersionUID:J
 Landroid/icu/impl/locale/LocaleSyntaxException;->serialVersionUID:J
 Landroid/icu/impl/number/DecimalFormatProperties;->readObject(Ljava/io/ObjectInputStream;)V
 Landroid/icu/impl/number/DecimalFormatProperties;->serialVersionUID:J
 Landroid/icu/impl/number/DecimalFormatProperties;->writeObject(Ljava/io/ObjectOutputStream;)V
+Landroid/icu/impl/TimeZoneGenericNames;->readObject(Ljava/io/ObjectInputStream;)V
+Landroid/icu/impl/TimeZoneGenericNames;->serialVersionUID:J
 Landroid/icu/math/BigDecimal;->serialVersionUID:J
 Landroid/icu/math/MathContext;->serialVersionUID:J
+Landroid/icu/text/ArabicShaping;-><init>(I)V
 Landroid/icu/text/ArabicShaping;->isAlefMaksouraChar(C)Z
 Landroid/icu/text/ArabicShaping;->isSeenTailFamilyChar(C)I
 Landroid/icu/text/ArabicShaping;->isTailChar(C)Z
 Landroid/icu/text/ArabicShaping;->isYehHamzaChar(C)Z
+Landroid/icu/text/ArabicShaping;->shape(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/text/ArabicShapingException;->serialVersionUID:J
 Landroid/icu/text/ChineseDateFormat$Field;->serialVersionUID:J
 Landroid/icu/text/ChineseDateFormat;->serialVersionUID:J
@@ -1796,17 +2943,20 @@
 Landroid/icu/text/TimeZoneNames;->serialVersionUID:J
 Landroid/icu/text/Transliterator;->createFromRules(Ljava/lang/String;Ljava/lang/String;I)Landroid/icu/text/Transliterator;
 Landroid/icu/text/Transliterator;->getInstance(Ljava/lang/String;)Landroid/icu/text/Transliterator;
+Landroid/icu/text/Transliterator;->getInstance(Ljava/lang/String;I)Landroid/icu/text/Transliterator;
+Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Ljava/lang/String;)V
 Landroid/icu/text/Transliterator;->transliterate(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/text/UFormat;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
 Landroid/icu/text/UFormat;->serialVersionUID:J
+Landroid/icu/text/UForwardCharacterIterator;->DONE:I
 Landroid/icu/util/AnnualTimeZoneRule;->serialVersionUID:J
 Landroid/icu/util/BasicTimeZone;->serialVersionUID:J
 Landroid/icu/util/BuddhistCalendar;->serialVersionUID:J
-Landroid/icu/util/CECalendar;->serialVersionUID:J
 Landroid/icu/util/Calendar;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
 Landroid/icu/util/Calendar;->readObject(Ljava/io/ObjectInputStream;)V
 Landroid/icu/util/Calendar;->serialVersionUID:J
 Landroid/icu/util/Calendar;->writeObject(Ljava/io/ObjectOutputStream;)V
+Landroid/icu/util/CECalendar;->serialVersionUID:J
 Landroid/icu/util/ChineseCalendar;->readObject(Ljava/io/ObjectInputStream;)V
 Landroid/icu/util/ChineseCalendar;->serialVersionUID:J
 Landroid/icu/util/CopticCalendar;->serialVersionUID:J
@@ -1833,11 +2983,12 @@
 Landroid/icu/util/MeasureUnit;->serialVersionUID:J
 Landroid/icu/util/MeasureUnit;->writeReplace()Ljava/lang/Object;
 Landroid/icu/util/NoUnit;->serialVersionUID:J
+Landroid/icu/util/PersianCalendar;-><init>(Ljava/util/Locale;)V
 Landroid/icu/util/PersianCalendar;->serialVersionUID:J
 Landroid/icu/util/RuleBasedTimeZone;->serialVersionUID:J
-Landroid/icu/util/STZInfo;->serialVersionUID:J
 Landroid/icu/util/SimpleTimeZone;->readObject(Ljava/io/ObjectInputStream;)V
 Landroid/icu/util/SimpleTimeZone;->serialVersionUID:J
+Landroid/icu/util/STZInfo;->serialVersionUID:J
 Landroid/icu/util/TaiwanCalendar;->serialVersionUID:J
 Landroid/icu/util/TimeArrayTimeZoneRule;->serialVersionUID:J
 Landroid/icu/util/TimeUnit;->readResolve()Ljava/lang/Object;
@@ -1847,42 +2998,96 @@
 Landroid/icu/util/TimeZone;->serialVersionUID:J
 Landroid/icu/util/TimeZoneRule;->serialVersionUID:J
 Landroid/icu/util/ULocale;->serialVersionUID:J
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getKey()Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getString()Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getType()I
+Landroid/icu/util/UResourceBundleIterator;->hasNext()Z
+Landroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle;
 Landroid/icu/util/UResourceTypeMismatchException;->serialVersionUID:J
 Landroid/icu/util/VTimeZone;->serialVersionUID:J
 Landroid/inputmethodservice/InputMethodService$SettingsObserver;->shouldShowImeWithHardKeyboard()Z
 Landroid/inputmethodservice/InputMethodService;->mExtractEditText:Landroid/inputmethodservice/ExtractEditText;
+Landroid/inputmethodservice/InputMethodService;->mExtractView:Landroid/view/View;
 Landroid/inputmethodservice/InputMethodService;->mRootView:Landroid/view/View;
 Landroid/inputmethodservice/InputMethodService;->mSettingsObserver:Landroid/inputmethodservice/InputMethodService$SettingsObserver;
+Landroid/inputmethodservice/InputMethodService;->mTheme:I
+Landroid/inputmethodservice/InputMethodService;->mTmpInsets:Landroid/inputmethodservice/InputMethodService$Insets;
+Landroid/inputmethodservice/InputMethodService;->onExtractedDeleteText(II)V
+Landroid/inputmethodservice/InputMethodService;->onExtractedReplaceText(IILjava/lang/CharSequence;)V
+Landroid/inputmethodservice/InputMethodService;->onExtractedSetSpan(Ljava/lang/Object;III)V
+Landroid/inputmethodservice/Keyboard;->mModifierKeys:Ljava/util/List;
+Landroid/inputmethodservice/Keyboard;->mTotalHeight:I
+Landroid/inputmethodservice/Keyboard;->mTotalWidth:I
+Landroid/inputmethodservice/KeyboardView;->mKeyBackground:Landroid/graphics/drawable/Drawable;
+Landroid/inputmethodservice/KeyboardView;->mLabelTextSize:I
+Landroid/inputmethodservice/KeyboardView;->mPreviewText:Landroid/widget/TextView;
+Landroid/inputmethodservice/KeyboardView;->openPopupIfRequired(Landroid/view/MotionEvent;)Z
+Landroid/inputmethodservice/KeyboardView;->repeatKey()Z
+Landroid/inputmethodservice/KeyboardView;->showKey(I)V
+Landroid/location/Country;-><init>(Ljava/lang/String;I)V
 Landroid/location/Country;->getCountryIso()Ljava/lang/String;
 Landroid/location/Country;->getSource()I
+Landroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V
+Landroid/location/CountryDetector;->addCountryListener(Landroid/location/CountryListener;Landroid/os/Looper;)V
 Landroid/location/CountryDetector;->detectCountry()Landroid/location/Country;
+Landroid/location/CountryDetector;->removeCountryListener(Landroid/location/CountryListener;)V
+Landroid/location/CountryListener;->onCountryDetected(Landroid/location/Country;)V
 Landroid/location/GeocoderParams;->getClientPackage()Ljava/lang/String;
 Landroid/location/GeocoderParams;->getLocale()Ljava/util/Locale;
+Landroid/location/Geofence;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/location/GpsStatus;->setTimeToFirstFix(I)V
+Landroid/location/ICountryDetector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryDetector;
+Landroid/location/ICountryListener$Stub;-><init>()V
 Landroid/location/IGeocodeProvider$Stub;-><init>()V
+Landroid/location/IGeocodeProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGeocodeProvider;
 Landroid/location/IGeocodeProvider;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 Landroid/location/IGeocodeProvider;->getFromLocationName(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 Landroid/location/IGeofenceProvider$Stub;-><init>()V
 Landroid/location/IGeofenceProvider;->setGeofenceHardware(Landroid/hardware/location/IGeofenceHardware;)V
 Landroid/location/ILocationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/ILocationListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/location/ILocationListener$Stub;-><init>()V
+Landroid/location/ILocationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationListener;
 Landroid/location/ILocationListener;->onLocationChanged(Landroid/location/Location;)V
+Landroid/location/ILocationListener;->onProviderDisabled(Ljava/lang/String;)V
+Landroid/location/ILocationListener;->onProviderEnabled(Ljava/lang/String;)V
+Landroid/location/ILocationListener;->onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V
 Landroid/location/ILocationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/location/ILocationManager$Stub;-><init>()V
 Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
+Landroid/location/ILocationManager;->getAllProviders()Ljava/util/List;
 Landroid/location/ILocationManager;->getNetworkProviderPackage()Ljava/lang/String;
 Landroid/location/ILocationManager;->reportLocation(Landroid/location/Location;Z)V
 Landroid/location/INetInitiatedListener$Stub;-><init>()V
 Landroid/location/INetInitiatedListener;->sendNiResponse(II)Z
 Landroid/location/Location;->mElapsedRealtimeNanos:J
+Landroid/location/Location;->mProvider:Ljava/lang/String;
 Landroid/location/Location;->removeBearingAccuracy()V
 Landroid/location/Location;->removeSpeedAccuracy()V
 Landroid/location/Location;->removeVerticalAccuracy()V
 Landroid/location/Location;->setExtraLocation(Ljava/lang/String;Landroid/location/Location;)V
 Landroid/location/LocationManager;->mService:Landroid/location/ILocationManager;
+Landroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->sendNiResponse(II)Z
+Landroid/location/LocationRequest;->checkDisplacement(F)V
+Landroid/location/LocationRequest;->checkInterval(J)V
+Landroid/location/LocationRequest;->checkProvider(Ljava/lang/String;)V
+Landroid/location/LocationRequest;->checkQuality(I)V
+Landroid/location/LocationRequest;->mExpireAt:J
+Landroid/location/LocationRequest;->mExplicitFastestInterval:Z
+Landroid/location/LocationRequest;->mFastestInterval:J
 Landroid/location/LocationRequest;->mHideFromAppOps:Z
 Landroid/location/LocationRequest;->mInterval:J
+Landroid/location/LocationRequest;->mNumUpdates:I
 Landroid/location/LocationRequest;->mProvider:Ljava/lang/String;
+Landroid/location/LocationRequest;->mQuality:I
+Landroid/location/LocationRequest;->mSmallestDisplacement:F
 Landroid/location/LocationRequest;->mWorkSource:Landroid/os/WorkSource;
+Landroid/media/AmrInputStream;-><init>(Ljava/io/InputStream;)V
+Landroid/media/AsyncPlayer;->setUsesWakeLock(Landroid/content/Context;)V
 Landroid/media/AudioAttributes$Builder;->addTag(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder;
+Landroid/media/AudioAttributes$Builder;->setInternalLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;
 Landroid/media/AudioAttributes;->mContentType:I
 Landroid/media/AudioAttributes;->mFlags:I
 Landroid/media/AudioAttributes;->mFormattedTags:Ljava/lang/String;
@@ -1890,12 +3095,20 @@
 Landroid/media/AudioAttributes;->mUsage:I
 Landroid/media/AudioAttributes;->toLegacyStreamType(Landroid/media/AudioAttributes;)I
 Landroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;[I[I[I[I[Landroid/media/AudioGain;ILjava/lang/String;)V
+Landroid/media/AudioDevicePort;->type()I
 Landroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V
 Landroid/media/AudioFormat;-><init>()V
 Landroid/media/AudioFormat;-><init>(IIII)V
 Landroid/media/AudioFormat;->mChannelMask:I
 Landroid/media/AudioFormat;->mEncoding:I
 Landroid/media/AudioFormat;->mSampleRate:I
+Landroid/media/audiofx/AudioEffect;-><init>(Ljava/util/UUID;Ljava/util/UUID;II)V
+Landroid/media/audiofx/AudioEffect;->checkState(Ljava/lang/String;)V
+Landroid/media/audiofx/AudioEffect;->command(I[B[B)I
+Landroid/media/audiofx/AudioEffect;->getParameter([I[B)I
+Landroid/media/audiofx/AudioEffect;->getParameter([I[I)I
+Landroid/media/audiofx/AudioEffect;->setParameter([I[S)I
+Landroid/media/audiofx/Visualizer;->mId:I
 Landroid/media/AudioGain;-><init>(IIIIIIIII)V
 Landroid/media/AudioGainConfig;-><init>(ILandroid/media/AudioGain;II[II)V
 Landroid/media/AudioGainConfig;->mChannelMask:I
@@ -1906,27 +3119,73 @@
 Landroid/media/AudioHandle;-><init>(I)V
 Landroid/media/AudioHandle;->mId:I
 Landroid/media/AudioManager;-><init>(Landroid/content/Context;)V
+Landroid/media/AudioManager;->abandonAudioFocusForCall()V
+Landroid/media/AudioManager;->createAudioPatch([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)I
+Landroid/media/AudioManager;->DEVICE_OUT_ANLG_DOCK_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_A2DP:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_SCO_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_OUT_DGTL_DOCK_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_OUT_EARPIECE:I
+Landroid/media/AudioManager;->DEVICE_OUT_HDMI:I
+Landroid/media/AudioManager;->DEVICE_OUT_SPEAKER:I
+Landroid/media/AudioManager;->DEVICE_OUT_WIRED_HEADPHONE:I
+Landroid/media/AudioManager;->DEVICE_OUT_WIRED_HEADSET:I
+Landroid/media/AudioManager;->EXTRA_VOLUME_STREAM_TYPE:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_VOLUME_STREAM_VALUE:Ljava/lang/String;
+Landroid/media/AudioManager;->forceVolumeControlStream(I)V
+Landroid/media/AudioManager;->getDevicesForStream(I)I
+Landroid/media/AudioManager;->getLastAudibleStreamVolume(I)I
+Landroid/media/AudioManager;->getOutputLatency(I)I
+Landroid/media/AudioManager;->getRingerModeInternal()I
+Landroid/media/AudioManager;->getService()Landroid/media/IAudioService;
+Landroid/media/AudioManager;->isMasterMute()Z
+Landroid/media/AudioManager;->isMusicActiveRemotely()Z
+Landroid/media/AudioManager;->isSilentMode()Z
+Landroid/media/AudioManager;->isValidRingerMode(I)Z
+Landroid/media/AudioManager;->listAudioPatches(Ljava/util/ArrayList;)I
+Landroid/media/AudioManager;->listAudioPorts(Ljava/util/ArrayList;)I
+Landroid/media/AudioManager;->mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/media/AudioManager;->NUM_SOUND_EFFECTS:I
+Landroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+Landroid/media/AudioManager;->releaseAudioPatch(Landroid/media/AudioPatch;)I
+Landroid/media/AudioManager;->reloadAudioSettings()V
+Landroid/media/AudioManager;->requestAudioFocusForCall(II)V
+Landroid/media/AudioManager;->setMasterMute(ZI)V
+Landroid/media/AudioManager;->setRingerModeInternal(I)V
+Landroid/media/AudioManager;->setWiredDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;)V
+Landroid/media/AudioManager;->startBluetoothScoVirtualCall()V
 Landroid/media/AudioManager;->STREAM_BLUETOOTH_SCO:I
 Landroid/media/AudioManager;->STREAM_SYSTEM_ENFORCED:I
 Landroid/media/AudioManager;->STREAM_TTS:I
-Landroid/media/AudioManager;->forceVolumeControlStream(I)V
-Landroid/media/AudioManager;->getOutputLatency(I)I
-Landroid/media/AudioManager;->getService()Landroid/media/IAudioService;
-Landroid/media/AudioManager;->mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
-Landroid/media/AudioManager;->setMasterMute(ZI)V
-Landroid/media/AudioManager;->setRingerModeInternal(I)V
-Landroid/media/AudioManager;->startBluetoothScoVirtualCall()V
 Landroid/media/AudioManager;->unregisterAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+Landroid/media/AudioManager;->VOLUME_CHANGED_ACTION:Ljava/lang/String;
 Landroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
+Landroid/media/AudioMixPort;->ioHandle()I
 Landroid/media/AudioMixPortConfig;-><init>(Landroid/media/AudioMixPort;IIILandroid/media/AudioGainConfig;)V
 Landroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V
 Landroid/media/AudioPatch;->mHandle:Landroid/media/AudioHandle;
+Landroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig;
+Landroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig;
+Landroid/media/audiopolicy/AudioMix;->mCallbackFlags:I
+Landroid/media/audiopolicy/AudioMix;->mDeviceAddress:Ljava/lang/String;
+Landroid/media/audiopolicy/AudioMix;->mDeviceSystemType:I
+Landroid/media/audiopolicy/AudioMix;->mFormat:Landroid/media/AudioFormat;
+Landroid/media/audiopolicy/AudioMix;->mMixType:I
+Landroid/media/audiopolicy/AudioMix;->mRouteFlags:I
+Landroid/media/audiopolicy/AudioMix;->mRule:Landroid/media/audiopolicy/AudioMixingRule;
+Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mAttr:Landroid/media/AudioAttributes;
+Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mIntProp:I
+Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mRule:I
+Landroid/media/audiopolicy/AudioMixingRule;->mCriteria:Ljava/util/ArrayList;
 Landroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
+Landroid/media/AudioPort;->id()I
 Landroid/media/AudioPort;->mActiveConfig:Landroid/media/AudioPortConfig;
 Landroid/media/AudioPort;->mGains:[Landroid/media/AudioGain;
 Landroid/media/AudioPort;->mHandle:Landroid/media/AudioHandle;
 Landroid/media/AudioPort;->mRole:I
+Landroid/media/AudioPort;->role()I
 Landroid/media/AudioPortConfig;-><init>(Landroid/media/AudioPort;IIILandroid/media/AudioGainConfig;)V
 Landroid/media/AudioPortConfig;->mChannelMask:I
 Landroid/media/AudioPortConfig;->mConfigMask:I
@@ -1934,29 +3193,87 @@
 Landroid/media/AudioPortConfig;->mGain:Landroid/media/AudioGainConfig;
 Landroid/media/AudioPortConfig;->mPort:Landroid/media/AudioPort;
 Landroid/media/AudioPortConfig;->mSamplingRate:I
+Landroid/media/AudioPortConfig;->port()Landroid/media/AudioPort;
 Landroid/media/AudioPortEventHandler;->mJniCallback:J
 Landroid/media/AudioPortEventHandler;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/AudioRecord;->mAudioAttributes:Landroid/media/AudioAttributes;
+Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
 Landroid/media/AudioRecord;->mNativeCallbackCookie:J
 Landroid/media/AudioRecord;->mNativeDeviceCallback:J
 Landroid/media/AudioRecord;->mNativeRecorderInJavaObj:J
 Landroid/media/AudioRecord;->native_release()V
+Landroid/media/AudioRecord;->native_setup(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I
 Landroid/media/AudioRecord;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
 Landroid/media/AudioRecordingConfiguration;->getClientPackageName()Ljava/lang/String;
 Landroid/media/AudioRecordingConfiguration;->getClientUid()I
 Landroid/media/AudioSystem;->checkAudioFlinger()I
+Landroid/media/AudioSystem;->DEVICE_IN_AMBIENT:I
+Landroid/media/AudioSystem;->DEVICE_IN_ANLG_DOCK_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_IN_AUX_DIGITAL:I
+Landroid/media/AudioSystem;->DEVICE_IN_BACK_MIC:I
+Landroid/media/AudioSystem;->DEVICE_IN_BLUETOOTH_A2DP:I
+Landroid/media/AudioSystem;->DEVICE_IN_BLUETOOTH_SCO_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_IN_BUILTIN_MIC:I
+Landroid/media/AudioSystem;->DEVICE_IN_COMMUNICATION:I
+Landroid/media/AudioSystem;->DEVICE_IN_DEFAULT:I
+Landroid/media/AudioSystem;->DEVICE_IN_DGTL_DOCK_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_IN_REMOTE_SUBMIX:I
+Landroid/media/AudioSystem;->DEVICE_IN_USB_ACCESSORY:I
+Landroid/media/AudioSystem;->DEVICE_IN_USB_DEVICE:I
+Landroid/media/AudioSystem;->DEVICE_IN_VOICE_CALL:I
+Landroid/media/AudioSystem;->DEVICE_IN_WIRED_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ALL_USB:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ANLG_DOCK_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_OUT_AUX_DIGITAL:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO_CARKIT:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_OUT_DGTL_DOCK_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_OUT_EARPIECE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_FM:I
+Landroid/media/AudioSystem;->DEVICE_OUT_REMOTE_SUBMIX:I
+Landroid/media/AudioSystem;->DEVICE_OUT_SPEAKER:I
+Landroid/media/AudioSystem;->DEVICE_OUT_TELEPHONY_TX:I
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_ACCESSORY:I
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_DEVICE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_WIRED_HEADPHONE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_WIRED_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_STATE_AVAILABLE:I
+Landroid/media/AudioSystem;->DEVICE_STATE_UNAVAILABLE:I
 Landroid/media/AudioSystem;->dynamicPolicyCallbackFromNative(ILjava/lang/String;I)V
 Landroid/media/AudioSystem;->errorCallbackFromNative(I)V
+Landroid/media/AudioSystem;->FORCE_ANALOG_DOCK:I
+Landroid/media/AudioSystem;->FORCE_BT_CAR_DOCK:I
+Landroid/media/AudioSystem;->FORCE_BT_DESK_DOCK:I
+Landroid/media/AudioSystem;->FORCE_DIGITAL_DOCK:I
+Landroid/media/AudioSystem;->FORCE_NONE:I
+Landroid/media/AudioSystem;->getDeviceConnectionState(ILjava/lang/String;)I
+Landroid/media/AudioSystem;->getDevicesForStream(I)I
 Landroid/media/AudioSystem;->getForceUse(I)I
+Landroid/media/AudioSystem;->getMasterMute()Z
+Landroid/media/AudioSystem;->getNumStreamTypes()I
+Landroid/media/AudioSystem;->getOutputDeviceName(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->getOutputLatency(I)I
 Landroid/media/AudioSystem;->getParameters(Ljava/lang/String;)Ljava/lang/String;
 Landroid/media/AudioSystem;->getPrimaryOutputFrameCount()I
 Landroid/media/AudioSystem;->getPrimaryOutputSamplingRate()I
+Landroid/media/AudioSystem;->initStreamVolume(III)I
+Landroid/media/AudioSystem;->isMicrophoneMuted()Z
 Landroid/media/AudioSystem;->isSourceActive(I)Z
 Landroid/media/AudioSystem;->isStreamActive(II)Z
+Landroid/media/AudioSystem;->muteMicrophone(Z)I
 Landroid/media/AudioSystem;->recordingCallbackFromNative(IIII[I)V
 Landroid/media/AudioSystem;->setDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;)I
 Landroid/media/AudioSystem;->setErrorCallback(Landroid/media/AudioSystem$ErrorCallback;)V
 Landroid/media/AudioSystem;->setForceUse(II)I
+Landroid/media/AudioSystem;->setMasterMute(Z)I
 Landroid/media/AudioSystem;->setParameters(Ljava/lang/String;)I
+Landroid/media/AudioSystem;->setPhoneState(I)I
+Landroid/media/AudioSystem;->setStreamVolumeIndex(III)I
+Landroid/media/AudioSystem;->STREAM_SYSTEM_ENFORCED:I
 Landroid/media/AudioTrack;->deferred_connect(J)V
 Landroid/media/AudioTrack;->getLatency()I
 Landroid/media/AudioTrack;->mJniData:J
@@ -1964,23 +3281,52 @@
 Landroid/media/AudioTrack;->mStreamType:I
 Landroid/media/AudioTrack;->native_release()V
 Landroid/media/AudioTrack;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/CamcorderProfile;->native_get_camcorder_profile(II)Landroid/media/CamcorderProfile;
+Landroid/media/CamcorderProfile;->native_init()V
+Landroid/media/DecoderCapabilities$AudioDecoder;->AUDIO_DECODER_WMA:Landroid/media/DecoderCapabilities$AudioDecoder;
+Landroid/media/DecoderCapabilities$VideoDecoder;->VIDEO_DECODER_WMV:Landroid/media/DecoderCapabilities$VideoDecoder;
+Landroid/media/DecoderCapabilities;->getAudioDecoders()Ljava/util/List;
+Landroid/media/DecoderCapabilities;->getVideoDecoders()Ljava/util/List;
+Landroid/media/EncoderCapabilities$VideoEncoderCap;->mCodec:I
+Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMaxFrameHeight:I
+Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMaxFrameWidth:I
+Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinFrameHeight:I
+Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinFrameWidth:I
+Landroid/media/EncoderCapabilities;->getVideoEncoders()Ljava/util/List;
+Landroid/media/ExifInterface;->convertRationalLatLonToFloat(Ljava/lang/String;Ljava/lang/String;)F
 Landroid/media/ExifInterface;->getDateTime()J
+Landroid/media/ExifInterface;->getGpsDateTime()J
+Landroid/media/ExifInterface;->mAttributes:[Ljava/util/HashMap;
+Landroid/media/ExifInterface;->mFilename:Ljava/lang/String;
+Landroid/media/ExifInterface;->mHasThumbnail:Z
+Landroid/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat;
+Landroid/media/IAudioFocusDispatcher;->dispatchAudioFocusChange(ILjava/lang/String;)V
+Landroid/media/IAudioRoutesObserver$Stub;-><init>()V
 Landroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/media/IAudioService$Stub;-><init>()V
 Landroid/media/IAudioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioService;
 Landroid/media/IAudioService;->getStreamMaxVolume(I)I
 Landroid/media/IAudioService;->getStreamVolume(I)I
 Landroid/media/IAudioService;->setStreamVolume(IIILjava/lang/String;)V
+Landroid/media/IAudioService;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+Landroid/media/Image$Plane;-><init>()V
+Landroid/media/Image;-><init>()V
 Landroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
+Landroid/media/IMediaScannerListener$Stub;-><init>()V
 Landroid/media/IMediaScannerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaScannerService;
+Landroid/media/IMediaScannerService;->requestScanFile(Ljava/lang/String;Ljava/lang/String;Landroid/media/IMediaScannerListener;)V
 Landroid/media/IMediaScannerService;->scanFile(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/IRemoteDisplayCallback;->onStateChanged(Landroid/media/RemoteDisplayState;)V
+Landroid/media/IRingtonePlayer;->play(Landroid/os/IBinder;Landroid/net/Uri;Landroid/media/AudioAttributes;FZ)V
 Landroid/media/IVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IVolumeController;
-Landroid/media/Image;-><init>()V
 Landroid/media/JetPlayer;->mNativePlayerInJavaObj:J
 Landroid/media/JetPlayer;->postEventFromNative(Ljava/lang/Object;III)V
 Landroid/media/MediaCodec$CodecException;-><init>(IILjava/lang/String;)V
 Landroid/media/MediaCodec;->getBuffers(Z)[Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec;->mNativeContext:J
 Landroid/media/MediaCodec;->releaseOutputBuffer(IZZJ)V
+Landroid/media/MediaCodec;->setParameters([Ljava/lang/String;[Ljava/lang/Object;)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->create(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$VideoCapabilities;
 Landroid/media/MediaDrm$Certificate;->getContent()[B
 Landroid/media/MediaDrm$Certificate;->getWrappedPrivateKey()[B
 Landroid/media/MediaDrm$CertificateRequest;->getData()[B
@@ -1991,64 +3337,302 @@
 Landroid/media/MediaFile$MediaFileType;->fileType:I
 Landroid/media/MediaFile$MediaFileType;->mimeType:Ljava/lang/String;
 Landroid/media/MediaFile;-><init>()V
+Landroid/media/MediaFile;->addFileType(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/media/MediaFile;->FIRST_AUDIO_FILE_TYPE:I
-Landroid/media/MediaFile;->LAST_AUDIO_FILE_TYPE:I
+Landroid/media/MediaFile;->getFileTitle(Ljava/lang/String;)Ljava/lang/String;
 Landroid/media/MediaFile;->getFileType(Ljava/lang/String;)Landroid/media/MediaFile$MediaFileType;
 Landroid/media/MediaFile;->getFileTypeForMimeType(Ljava/lang/String;)I
 Landroid/media/MediaFile;->getMimeTypeForFile(Ljava/lang/String;)Ljava/lang/String;
 Landroid/media/MediaFile;->isAudioFileType(I)Z
+Landroid/media/MediaFile;->isDrmFileType(I)Z
 Landroid/media/MediaFile;->isImageFileType(I)Z
 Landroid/media/MediaFile;->isPlayListFileType(I)Z
 Landroid/media/MediaFile;->isVideoFileType(I)Z
+Landroid/media/MediaFile;->LAST_AUDIO_FILE_TYPE:I
 Landroid/media/MediaFile;->sFileTypeMap:Ljava/util/HashMap;
+Landroid/media/MediaFile;->sFileTypeToFormatMap:Ljava/util/HashMap;
+Landroid/media/MediaFile;->sFormatToMimeTypeMap:Ljava/util/HashMap;
+Landroid/media/MediaFile;->sMimeTypeToFormatMap:Ljava/util/HashMap;
 Landroid/media/MediaFormat;->getMap()Ljava/util/Map;
+Landroid/media/MediaFormat;->mMap:Ljava/util/Map;
+Landroid/media/MediaHTTPConnection;-><init>()V
+Landroid/media/MediaHTTPConnection;->connect(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/media/MediaHTTPConnection;->disconnect()V
+Landroid/media/MediaHTTPConnection;->getMIMEType()Ljava/lang/String;
+Landroid/media/MediaHTTPConnection;->getUri()Ljava/lang/String;
+Landroid/media/MediaHTTPConnection;->mAllowCrossDomainRedirect:Z
+Landroid/media/MediaHTTPConnection;->mAllowCrossProtocolRedirect:Z
+Landroid/media/MediaHTTPConnection;->mConnection:Ljava/net/HttpURLConnection;
+Landroid/media/MediaHTTPConnection;->mCurrentOffset:J
+Landroid/media/MediaHTTPConnection;->mHeaders:Ljava/util/Map;
+Landroid/media/MediaHTTPConnection;->mTotalSize:J
+Landroid/media/MediaHTTPConnection;->mURL:Ljava/net/URL;
+Landroid/media/MediaHTTPConnection;->readAt(JI)I
 Landroid/media/MediaHTTPService;->createHttpServiceBinderIfNecessary(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/media/MediaInserter;->flushAll()V
+Landroid/media/MediaMetadata;->getKeyFromMetadataEditorKey(I)Ljava/lang/String;
 Landroid/media/MediaMetadataRetriever;->getEmbeddedPicture(I)[B
+Landroid/media/MediaMetadataRetriever;->native_finalize()V
+Landroid/media/MediaMetadataRetriever;->native_init()V
+Landroid/media/MediaMetadataRetriever;->native_setup()V
+Landroid/media/MediaMuxer;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/media/MediaMuxer;->mNativeObject:J
+Landroid/media/MediaMuxer;->mState:I
+Landroid/media/MediaMuxer;->nativeRelease(J)V
+Landroid/media/MediaMuxer;->nativeSetup(Ljava/io/FileDescriptor;I)J
+Landroid/media/MediaPlayer$TrackInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/MediaPlayer2$TrackInfo;->getLanguage()Ljava/lang/String;
+Landroid/media/MediaPlayer2$TrackInfo;->getTrackType()I
+Landroid/media/MediaPlayer;->addSubtitleSource(Ljava/io/InputStream;Landroid/media/MediaFormat;)V
+Landroid/media/MediaPlayer;->BYPASS_METADATA_FILTER:Z
+Landroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
 Landroid/media/MediaPlayer;->getMetadata(ZZ)Landroid/media/Metadata;
 Landroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
+Landroid/media/MediaPlayer;->METADATA_ALL:Z
 Landroid/media/MediaPlayer;->mEventHandler:Landroid/media/MediaPlayer$EventHandler;
+Landroid/media/MediaPlayer;->mOnCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
+Landroid/media/MediaPlayer;->mOnErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
+Landroid/media/MediaPlayer;->mOnInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
+Landroid/media/MediaPlayer;->mOnPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
+Landroid/media/MediaPlayer;->mOnSeekCompleteListener:Landroid/media/MediaPlayer$OnSeekCompleteListener;
+Landroid/media/MediaPlayer;->mOnTimedTextListener:Landroid/media/MediaPlayer$OnTimedTextListener;
 Landroid/media/MediaPlayer;->newRequest()Landroid/os/Parcel;
 Landroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;Ljava/util/Map;)V
 Landroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
 Landroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
+Landroid/media/MediaPlayer;->setParameter(ILandroid/os/Parcel;)Z
 Landroid/media/MediaPlayer;->setRetransmitEndpoint(Ljava/net/InetSocketAddress;)V
+Landroid/media/MediaPlayer;->setSubtitleAnchor(Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
+Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
+Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
+Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
+Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
+Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
+Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
+Landroid/media/MediaRecorder;->native_finalize()V
+Landroid/media/MediaRecorder;->native_init()V
+Landroid/media/MediaRecorder;->native_reset()V
+Landroid/media/MediaRecorder;->native_setup(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
-Landroid/media/MediaRouter$RouteInfo;->STATUS_CONNECTING:I
+Landroid/media/MediaRecorder;->_prepare()V
+Landroid/media/MediaRouter$RouteInfo;->getDeviceAddress()Ljava/lang/String;
+Landroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
 Landroid/media/MediaRouter$RouteInfo;->getStatusCode()I
+Landroid/media/MediaRouter$RouteInfo;->isDefault()Z
+Landroid/media/MediaRouter$RouteInfo;->isSelected()Z
+Landroid/media/MediaRouter$RouteInfo;->matchesTypes(I)Z
+Landroid/media/MediaRouter$RouteInfo;->mNameResId:I
+Landroid/media/MediaRouter$RouteInfo;->select()V
+Landroid/media/MediaRouter$RouteInfo;->STATUS_CONNECTING:I
+Landroid/media/MediaRouter;->getSelectedRoute()Landroid/media/MediaRouter$RouteInfo;
 Landroid/media/MediaRouter;->selectRouteInt(ILandroid/media/MediaRouter$RouteInfo;Z)V
+Landroid/media/MediaScanner$FileEntry;-><init>(JLjava/lang/String;JI)V
+Landroid/media/MediaScanner$FileEntry;->mLastModifiedChanged:Z
+Landroid/media/MediaScanner$FileEntry;->mRowId:J
+Landroid/media/MediaScanner$MyMediaScannerClient;->beginFile(Ljava/lang/String;Ljava/lang/String;JJZZ)Landroid/media/MediaScanner$FileEntry;
+Landroid/media/MediaScanner$MyMediaScannerClient;->doScanFile(Ljava/lang/String;Ljava/lang/String;JJZZZ)Landroid/net/Uri;
+Landroid/media/MediaScanner$MyMediaScannerClient;->endFile(Landroid/media/MediaScanner$FileEntry;ZZZZZ)Landroid/net/Uri;
+Landroid/media/MediaScanner$MyMediaScannerClient;->getFileTypeFromDrm(Ljava/lang/String;)I
+Landroid/media/MediaScanner$MyMediaScannerClient;->handleStringTag(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaScanner$MyMediaScannerClient;->mFileType:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mIsDrm:Z
+Landroid/media/MediaScanner$MyMediaScannerClient;->mMimeType:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mNoMedia:Z
+Landroid/media/MediaScanner$MyMediaScannerClient;->mPath:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->scanFile(Ljava/lang/String;JJZZ)V
+Landroid/media/MediaScanner$MyMediaScannerClient;->setMimeType(Ljava/lang/String;)V
+Landroid/media/MediaScanner$MyMediaScannerClient;->toValues()Landroid/content/ContentValues;
+Landroid/media/MediaScanner;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/media/MediaScanner;->FILES_PRESCAN_PROJECTION:[Ljava/lang/String;
+Landroid/media/MediaScanner;->isDrmEnabled()Z
 Landroid/media/MediaScanner;->isNoMediaPath(Ljava/lang/String;)Z
+Landroid/media/MediaScanner;->makeEntryFor(Ljava/lang/String;)Landroid/media/MediaScanner$FileEntry;
+Landroid/media/MediaScanner;->mAudioUri:Landroid/net/Uri;
 Landroid/media/MediaScanner;->mClient:Landroid/media/MediaScanner$MyMediaScannerClient;
+Landroid/media/MediaScanner;->mContext:Landroid/content/Context;
+Landroid/media/MediaScanner;->mDefaultAlarmAlertFilename:Ljava/lang/String;
+Landroid/media/MediaScanner;->mDefaultNotificationFilename:Ljava/lang/String;
+Landroid/media/MediaScanner;->mDefaultRingtoneFilename:Ljava/lang/String;
+Landroid/media/MediaScanner;->mFilesUri:Landroid/net/Uri;
+Landroid/media/MediaScanner;->mMediaInserter:Landroid/media/MediaInserter;
+Landroid/media/MediaScanner;->mPackageName:Ljava/lang/String;
+Landroid/media/MediaScanner;->postscan([Ljava/lang/String;)V
+Landroid/media/MediaScanner;->prescan(Ljava/lang/String;Z)V
 Landroid/media/MediaScanner;->scanSingleFile(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/media/MediaScanner;->setLocale(Ljava/lang/String;)V
+Landroid/media/Metadata;-><init>()V
+Landroid/media/Metadata;->getBoolean(I)Z
+Landroid/media/Metadata;->getByteArray(I)[B
+Landroid/media/Metadata;->getDate(I)Ljava/util/Date;
+Landroid/media/Metadata;->getDouble(I)D
+Landroid/media/Metadata;->getInt(I)I
+Landroid/media/Metadata;->getLong(I)J
+Landroid/media/Metadata;->getString(I)Ljava/lang/String;
+Landroid/media/Metadata;->has(I)Z
+Landroid/media/Metadata;->keySet()Ljava/util/Set;
+Landroid/media/Metadata;->parse(Landroid/os/Parcel;)Z
 Landroid/media/Metadata;->PAUSE_AVAILABLE:I
+Landroid/media/Metadata;->SEEK_AVAILABLE:I
 Landroid/media/Metadata;->SEEK_BACKWARD_AVAILABLE:I
 Landroid/media/Metadata;->SEEK_FORWARD_AVAILABLE:I
-Landroid/media/Metadata;->getBoolean(I)Z
-Landroid/media/Metadata;->has(I)Z
 Landroid/media/MicrophoneInfo;-><init>(Ljava/lang/String;ILjava/lang/String;IIILandroid/media/MicrophoneInfo$Coordinate3F;Landroid/media/MicrophoneInfo$Coordinate3F;Ljava/util/List;Ljava/util/List;FFFI)V
 Landroid/media/MiniThumbFile;->reset()V
-Landroid/media/PlaybackParams;->SET_AUDIO_FALLBACK_MODE:I
-Landroid/media/PlaybackParams;->SET_AUDIO_STRETCH_MODE:I
-Landroid/media/PlaybackParams;->SET_PITCH:I
-Landroid/media/PlaybackParams;->SET_SPEED:I
 Landroid/media/PlaybackParams;->mAudioFallbackMode:I
 Landroid/media/PlaybackParams;->mAudioStretchMode:I
 Landroid/media/PlaybackParams;->mPitch:F
 Landroid/media/PlaybackParams;->mSet:I
 Landroid/media/PlaybackParams;->mSpeed:F
+Landroid/media/PlaybackParams;->SET_AUDIO_FALLBACK_MODE:I
+Landroid/media/PlaybackParams;->SET_AUDIO_STRETCH_MODE:I
+Landroid/media/PlaybackParams;->SET_PITCH:I
+Landroid/media/PlaybackParams;->SET_SPEED:I
+Landroid/media/projection/IMediaProjectionManager;->hasProjectionPermission(ILjava/lang/String;)Z
+Landroid/media/RemoteControlClient;->MEDIA_POSITION_READABLE:I
+Landroid/media/RemoteControlClient;->MEDIA_POSITION_WRITABLE:I
+Landroid/media/RemoteController;->getUpdateListener()Landroid/media/RemoteController$OnClientUpdateListener;
+Landroid/media/RemoteController;->mCurrentSession:Landroid/media/session/MediaController;
+Landroid/media/RemoteController;->setArtworkConfiguration(ZII)Z
+Landroid/media/RemoteDisplay;->dispose()V
 Landroid/media/RemoteDisplay;->notifyDisplayConnected(Landroid/view/Surface;IIII)V
 Landroid/media/RemoteDisplay;->notifyDisplayDisconnected()V
 Landroid/media/RemoteDisplay;->notifyDisplayError(I)V
 Landroid/media/RemoteDisplayState;-><init>()V
 Landroid/media/RemoteDisplayState;->displays:Ljava/util/ArrayList;
+Landroid/media/Ringtone;-><init>(Landroid/content/Context;Z)V
+Landroid/media/Ringtone;->getUri()Landroid/net/Uri;
+Landroid/media/Ringtone;->mLocalPlayer:Landroid/media/MediaPlayer;
+Landroid/media/Ringtone;->mUri:Landroid/net/Uri;
+Landroid/media/Ringtone;->setUri(Landroid/net/Uri;)V
+Landroid/media/RingtoneManager;->getInternalRingtones()Landroid/database/Cursor;
+Landroid/media/RingtoneManager;->getMediaRingtones(Landroid/content/Context;)Landroid/database/Cursor;
 Landroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;I)Landroid/media/Ringtone;
+Landroid/media/RingtoneManager;->mCursor:Landroid/database/Cursor;
+Landroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
+Landroid/media/session/MediaController;->controlsSameSession(Landroid/media/session/MediaController;)Z
+Landroid/media/session/MediaSession$QueueItem;->mId:J
+Landroid/media/session/MediaSession;->getCallingPackage()Ljava/lang/String;
+Landroid/media/session/MediaSession;->mCallback:Landroid/media/session/MediaSession$CallbackMessageHandler;
+Landroid/media/session/MediaSessionLegacyHelper;->getHelper(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
+Landroid/media/session/MediaSessionManager;->getActiveSessionsForUser(Landroid/content/ComponentName;I)Ljava/util/List;
+Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->getCaptureSession()Ljava/lang/Integer;
+Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->getData()[B
+Landroid/media/soundtrigger/SoundTriggerManager;->isRecognitionActive(Ljava/util/UUID;)Z
+Landroid/media/soundtrigger/SoundTriggerManager;->loadSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)I
+Landroid/media/soundtrigger/SoundTriggerManager;->startRecognition(Ljava/util/UUID;Landroid/app/PendingIntent;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Landroid/media/soundtrigger/SoundTriggerManager;->startRecognition(Ljava/util/UUID;Landroid/os/Bundle;Landroid/content/ComponentName;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Landroid/media/soundtrigger/SoundTriggerManager;->stopRecognition(Ljava/util/UUID;)I
+Landroid/media/soundtrigger/SoundTriggerManager;->unloadSoundModel(Ljava/util/UUID;)I
+Landroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
+Landroid/media/SubtitleController;->hide()V
 Landroid/media/SubtitleController;->mHandler:Landroid/os/Handler;
+Landroid/media/SubtitleController;->registerRenderer(Landroid/media/SubtitleController$Renderer;)V
+Landroid/media/SubtitleController;->reset()V
+Landroid/media/SubtitleController;->show()V
 Landroid/media/SubtitleTrack$RenderingWidget;->draw(Landroid/graphics/Canvas;)V
 Landroid/media/SubtitleTrack$RenderingWidget;->onAttachedToWindow()V
 Landroid/media/SubtitleTrack$RenderingWidget;->onDetachedFromWindow()V
 Landroid/media/SubtitleTrack$RenderingWidget;->setOnChangedListener(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
 Landroid/media/SubtitleTrack$RenderingWidget;->setSize(II)V
+Landroid/media/ThumbnailUtils;->closeSilently(Landroid/os/ParcelFileDescriptor;)V
+Landroid/media/ThumbnailUtils;->computeInitialSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
+Landroid/media/ThumbnailUtils;->computeSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
 Landroid/media/ThumbnailUtils;->createImageThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/media/ThumbnailUtils;->createThumbnailFromEXIF(Ljava/lang/String;IILandroid/media/ThumbnailUtils$SizedThumbnailBitmap;)V
+Landroid/media/ThumbnailUtils;->makeInputStream(Landroid/net/Uri;Landroid/content/ContentResolver;)Landroid/os/ParcelFileDescriptor;
+Landroid/media/ThumbnailUtils;->TARGET_SIZE_MICRO_THUMBNAIL:I
+Landroid/media/ThumbnailUtils;->transform(Landroid/graphics/Matrix;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
+Landroid/media/TimedText;->getObject(I)Ljava/lang/Object;
 Landroid/media/ToneGenerator;->mNativeContext:J
+Landroid/media/TtmlRenderer;-><init>(Landroid/content/Context;)V
+Landroid/media/tv/ITvRemoteProvider$Stub;-><init>()V
+Landroid/media/tv/ITvRemoteServiceInput;->clearInputBridge(Landroid/os/IBinder;)V
+Landroid/media/tv/ITvRemoteServiceInput;->closeInputBridge(Landroid/os/IBinder;)V
+Landroid/media/tv/ITvRemoteServiceInput;->openInputBridge(Landroid/os/IBinder;Ljava/lang/String;III)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendKeyDown(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendKeyUp(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendPointerDown(Landroid/os/IBinder;III)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendPointerSync(Landroid/os/IBinder;)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendPointerUp(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvRemoteServiceInput;->sendTimestamp(Landroid/os/IBinder;J)V
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_16_9:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_1_1:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_2_3:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_3_2:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_4_3:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_AVAILABLE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_FREE_WITH_SUBSCRIPTION:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->AVAILABILITY_PAID_CONTENT:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_AUTHOR:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_AVAILABILITY:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_BROWSABLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_CONTENT_ID:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_DURATION_MILLIS:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTENT_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERACTION_COUNT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERACTION_TYPE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_INTERNAL_PROVIDER_ID:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_ITEM_COUNT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LAST_PLAYBACK_POSITION_MILLIS:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LIVE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_LOGO_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_OFFER_PRICE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_POSTER_ART_ASPECT_RATIO:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_PREVIEW_VIDEO_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_RELEASE_DATE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_STARTING_PRICE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_THUMBNAIL_ASPECT_RATIO:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_TRANSIENT:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->COLUMN_TYPE:Ljava/lang/String;
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_FANS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_FOLLOWERS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_LIKES:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_LISTENS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_THUMBS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_VIEWERS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->INTERACTION_TYPE_VIEWS:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_ALBUM:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_ARTIST:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_CHANNEL:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_CLIP:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_EVENT:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_MOVIE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_PLAYLIST:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_STATION:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TRACK:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_EPISODE:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_SEASON:I
+Landroid/media/tv/TvContract$PreviewProgramColumns;->TYPE_TV_SERIES:I
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_AUDIO_LANGUAGE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_CANONICAL_GENRE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_CONTENT_RATING:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_EPISODE_DISPLAY_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_EPISODE_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_DATA:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG1:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG2:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG3:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_INTERNAL_PROVIDER_FLAG4:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_LONG_DESCRIPTION:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_POSTER_ART_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_REVIEW_RATING:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_REVIEW_RATING_STYLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEARCHABLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEASON_DISPLAY_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SEASON_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_SHORT_DESCRIPTION:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_THUMBNAIL_URI:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_TITLE:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VERSION_NUMBER:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VIDEO_HEIGHT:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->COLUMN_VIDEO_WIDTH:Ljava/lang/String;
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_PERCENTAGE:I
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_STARS:I
+Landroid/media/tv/TvContract$ProgramColumns;->REVIEW_RATING_STYLE_THUMBS_UP_DOWN:I
+Landroid/media/tv/TvInputInfo;->getComponent()Landroid/content/ComponentName;
+Landroid/media/tv/TvInputManager$Hardware;->dispatchKeyEventToHdmi(Landroid/view/KeyEvent;)Z
+Landroid/media/tv/TvInputManager;->acquireTvInputHardware(ILandroid/media/tv/TvInputManager$HardwareCallback;Landroid/media/tv/TvInputInfo;)Landroid/media/tv/TvInputManager$Hardware;
+Landroid/media/tv/TvInputService$Session;->mOverlayFrame:Landroid/graphics/Rect;
+Landroid/media/tv/TvView;->requestUnblockContent(Landroid/media/tv/TvContentRating;)V
 Landroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[F)V
 Landroid/media/VolumeShaper$Configuration;->mDurationMs:D
 Landroid/media/VolumeShaper$Configuration;->mId:I
@@ -2064,47 +3648,11 @@
 Landroid/media/VolumeShaper$State;-><init>(FF)V
 Landroid/media/VolumeShaper$State;->mVolume:F
 Landroid/media/VolumeShaper$State;->mXOffset:F
-Landroid/media/audiofx/AudioEffect;-><init>(Ljava/util/UUID;Ljava/util/UUID;II)V
-Landroid/media/audiofx/AudioEffect;->command(I[B[B)I
-Landroid/media/audiofx/AudioEffect;->getParameter([I[B)I
-Landroid/media/audiofx/AudioEffect;->getParameter([I[I)I
-Landroid/media/audiofx/AudioEffect;->setParameter([I[S)I
-Landroid/media/audiopolicy/AudioMix;->mCallbackFlags:I
-Landroid/media/audiopolicy/AudioMix;->mDeviceAddress:Ljava/lang/String;
-Landroid/media/audiopolicy/AudioMix;->mDeviceSystemType:I
-Landroid/media/audiopolicy/AudioMix;->mFormat:Landroid/media/AudioFormat;
-Landroid/media/audiopolicy/AudioMix;->mMixType:I
-Landroid/media/audiopolicy/AudioMix;->mRouteFlags:I
-Landroid/media/audiopolicy/AudioMix;->mRule:Landroid/media/audiopolicy/AudioMixingRule;
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mAttr:Landroid/media/AudioAttributes;
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mIntProp:I
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->mRule:I
-Landroid/media/audiopolicy/AudioMixingRule;->mCriteria:Ljava/util/ArrayList;
-Landroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
-Landroid/media/session/MediaSession;->getCallingPackage()Ljava/lang/String;
-Landroid/media/session/MediaSession;->mCallback:Landroid/media/session/MediaSession$CallbackMessageHandler;
-Landroid/media/session/MediaSessionLegacyHelper;->getHelper(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
-Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->getCaptureSession()Ljava/lang/Integer;
-Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->getData()[B
-Landroid/media/soundtrigger/SoundTriggerManager;->isRecognitionActive(Ljava/util/UUID;)Z
-Landroid/media/soundtrigger/SoundTriggerManager;->loadSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)I
-Landroid/media/soundtrigger/SoundTriggerManager;->startRecognition(Ljava/util/UUID;Landroid/app/PendingIntent;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
-Landroid/media/soundtrigger/SoundTriggerManager;->startRecognition(Ljava/util/UUID;Landroid/os/Bundle;Landroid/content/ComponentName;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
-Landroid/media/soundtrigger/SoundTriggerManager;->stopRecognition(Ljava/util/UUID;)I
-Landroid/media/soundtrigger/SoundTriggerManager;->unloadSoundModel(Ljava/util/UUID;)I
-Landroid/media/tv/ITvRemoteProvider$Stub;-><init>()V
-Landroid/media/tv/ITvRemoteServiceInput;->clearInputBridge(Landroid/os/IBinder;)V
-Landroid/media/tv/ITvRemoteServiceInput;->closeInputBridge(Landroid/os/IBinder;)V
-Landroid/media/tv/ITvRemoteServiceInput;->openInputBridge(Landroid/os/IBinder;Ljava/lang/String;III)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendKeyDown(Landroid/os/IBinder;I)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendKeyUp(Landroid/os/IBinder;I)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendPointerDown(Landroid/os/IBinder;III)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendPointerSync(Landroid/os/IBinder;)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendPointerUp(Landroid/os/IBinder;I)V
-Landroid/media/tv/ITvRemoteServiceInput;->sendTimestamp(Landroid/os/IBinder;J)V
-Landroid/media/tv/TvInputManager$Hardware;->dispatchKeyEventToHdmi(Landroid/view/KeyEvent;)Z
-Landroid/media/tv/TvInputManager;->acquireTvInputHardware(ILandroid/media/tv/TvInputManager$HardwareCallback;Landroid/media/tv/TvInputInfo;)Landroid/media/tv/TvInputManager$Hardware;
-Landroid/media/tv/TvView;->requestUnblockContent(Landroid/media/tv/TvContentRating;)V
+Landroid/media/WebVttRenderer;-><init>(Landroid/content/Context;)V
+Landroid/mtp/MtpPropertyList;->append(IIIJ)V
+Landroid/mtp/MtpPropertyList;->append(IILjava/lang/String;)V
+Landroid/mtp/MtpStorage;->getPath()Ljava/lang/String;
+Landroid/mtp/MtpStorage;->getStorageId()I
 Landroid/net/ConnectivityManager$PacketKeepalive;->stop()V
 Landroid/net/ConnectivityManager$PacketKeepaliveCallback;-><init>()V
 Landroid/net/ConnectivityManager$PacketKeepaliveCallback;->onError(I)V
@@ -2112,6 +3660,44 @@
 Landroid/net/ConnectivityManager$PacketKeepaliveCallback;->onStopped()V
 Landroid/net/ConnectivityManager;->ACTION_TETHER_STATE_CHANGED:Ljava/lang/String;
 Landroid/net/ConnectivityManager;->EXTRA_ACTIVE_TETHER:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_AVAILABLE_TETHER:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_ERRORED_TETHER:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->from(Landroid/content/Context;)Landroid/net/ConnectivityManager;
+Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
+Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
+Landroid/net/ConnectivityManager;->getActiveNetworkQuotaInfo()Landroid/net/NetworkQuotaInfo;
+Landroid/net/ConnectivityManager;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
+Landroid/net/ConnectivityManager;->getInstance()Landroid/net/ConnectivityManager;
+Landroid/net/ConnectivityManager;->getLastTetherError(Ljava/lang/String;)I
+Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
+Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
+Landroid/net/ConnectivityManager;->getNetworkForType(I)Landroid/net/Network;
+Landroid/net/ConnectivityManager;->getNetworkTypeName(I)Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetherableBluetoothRegexs()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetherableIfaces()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetherableUsbRegexs()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetheredIfaces()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getTetheringErroredIfaces()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->INET_CONDITION_ACTION:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->isNetworkSupported(I)Z
+Landroid/net/ConnectivityManager;->isNetworkTypeMobile(I)Z
+Landroid/net/ConnectivityManager;->mService:Landroid/net/IConnectivityManager;
+Landroid/net/ConnectivityManager;->networkCapabilitiesForFeature(ILjava/lang/String;)Landroid/net/NetworkCapabilities;
+Landroid/net/ConnectivityManager;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)V
+Landroid/net/ConnectivityManager;->removeRequestForFeature(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/ConnectivityManager;->requestNetworkForFeatureLocked(Landroid/net/NetworkCapabilities;)Landroid/net/NetworkRequest;
+Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
+Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
+Landroid/net/ConnectivityManager;->setAirplaneMode(Z)V
+Landroid/net/ConnectivityManager;->setBackgroundDataSetting(Z)V
+Landroid/net/ConnectivityManager;->setProcessDefaultNetworkForHostResolution(Landroid/net/Network;)Z
+Landroid/net/ConnectivityManager;->setUsbTethering(Z)I
+Landroid/net/ConnectivityManager;->sLegacyRequests:Ljava/util/HashMap;
+Landroid/net/ConnectivityManager;->startNattKeepalive(Landroid/net/Network;ILandroid/net/ConnectivityManager$PacketKeepaliveCallback;Ljava/net/InetAddress;ILjava/net/InetAddress;)Landroid/net/ConnectivityManager$PacketKeepalive;
+Landroid/net/ConnectivityManager;->startUsingNetworkFeature(ILjava/lang/String;)I
+Landroid/net/ConnectivityManager;->stopUsingNetworkFeature(ILjava/lang/String;)I
+Landroid/net/ConnectivityManager;->tether(Ljava/lang/String;)I
 Landroid/net/ConnectivityManager;->TYPE_MOBILE_CBS:I
 Landroid/net/ConnectivityManager;->TYPE_MOBILE_EMERGENCY:I
 Landroid/net/ConnectivityManager;->TYPE_MOBILE_FOTA:I
@@ -2120,25 +3706,7 @@
 Landroid/net/ConnectivityManager;->TYPE_NONE:I
 Landroid/net/ConnectivityManager;->TYPE_PROXY:I
 Landroid/net/ConnectivityManager;->TYPE_WIFI_P2P:I
-Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
-Landroid/net/ConnectivityManager;->getActiveNetworkQuotaInfo()Landroid/net/NetworkQuotaInfo;
-Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
-Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
-Landroid/net/ConnectivityManager;->getTetherableUsbRegexs()[Ljava/lang/String;
-Landroid/net/ConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
-Landroid/net/ConnectivityManager;->getTetheredIfaces()[Ljava/lang/String;
-Landroid/net/ConnectivityManager;->isNetworkSupported(I)Z
-Landroid/net/ConnectivityManager;->isNetworkTypeMobile(I)Z
-Landroid/net/ConnectivityManager;->mService:Landroid/net/IConnectivityManager;
-Landroid/net/ConnectivityManager;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)V
-Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
-Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
-Landroid/net/ConnectivityManager;->setAirplaneMode(Z)V
-Landroid/net/ConnectivityManager;->setBackgroundDataSetting(Z)V
-Landroid/net/ConnectivityManager;->startNattKeepalive(Landroid/net/Network;ILandroid/net/ConnectivityManager$PacketKeepaliveCallback;Ljava/net/InetAddress;ILjava/net/InetAddress;)Landroid/net/ConnectivityManager$PacketKeepalive;
-Landroid/net/ConnectivityManager;->startUsingNetworkFeature(ILjava/lang/String;)I
-Landroid/net/ConnectivityManager;->stopUsingNetworkFeature(ILjava/lang/String;)I
-Landroid/net/ConnectivityManager;->tether(Ljava/lang/String;)I
+Landroid/net/ConnectivityManager;->unregisterNetworkFactory(Landroid/os/Messenger;)V
 Landroid/net/ConnectivityManager;->untether(Ljava/lang/String;)I
 Landroid/net/DhcpResults;-><init>()V
 Landroid/net/DhcpResults;-><init>(Landroid/net/DhcpResults;)V
@@ -2147,6 +3715,21 @@
 Landroid/net/DhcpResults;->mtu:I
 Landroid/net/DhcpResults;->serverAddress:Ljava/net/Inet4Address;
 Landroid/net/DhcpResults;->vendorInfo:Ljava/lang/String;
+Landroid/net/EthernetManager$Listener;->onAvailabilityChanged(Ljava/lang/String;Z)V
+Landroid/net/EthernetManager;->addListener(Landroid/net/EthernetManager$Listener;)V
+Landroid/net/EthernetManager;->getAvailableInterfaces()[Ljava/lang/String;
+Landroid/net/EthernetManager;->getConfiguration(Ljava/lang/String;)Landroid/net/IpConfiguration;
+Landroid/net/EthernetManager;->isAvailable()Z
+Landroid/net/EthernetManager;->isAvailable(Ljava/lang/String;)Z
+Landroid/net/EthernetManager;->removeListener(Landroid/net/EthernetManager$Listener;)V
+Landroid/net/EthernetManager;->setConfiguration(Ljava/lang/String;Landroid/net/IpConfiguration;)V
+Landroid/net/http/SslCertificate;->getDigest(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/http/SslCertificate;->getSerialNumber(Ljava/security/cert/X509Certificate;)Ljava/lang/String;
+Landroid/net/http/SslCertificate;->inflateCertificateView(Landroid/content/Context;)Landroid/view/View;
+Landroid/net/http/SslCertificate;->mX509Certificate:Ljava/security/cert/X509Certificate;
+Landroid/net/http/SslError;->mCertificate:Landroid/net/http/SslCertificate;
+Landroid/net/http/SslError;->mErrors:I
+Landroid/net/http/SslError;->mUrl:Ljava/lang/String;
 Landroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveLinkProperties()Landroid/net/LinkProperties;
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
@@ -2156,30 +3739,65 @@
 Landroid/net/IConnectivityManager$Stub$Proxy;->getTetherableUsbRegexs()[Ljava/lang/String;
 Landroid/net/IConnectivityManager$Stub$Proxy;->getTetheredIfaces()[Ljava/lang/String;
 Landroid/net/IConnectivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/IConnectivityManager$Stub;-><init>()V
 Landroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
 Landroid/net/IConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
 Landroid/net/IConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
 Landroid/net/IConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
 Landroid/net/IConnectivityManager;->getAllNetworkState()[Landroid/net/NetworkState;
+Landroid/net/IConnectivityManager;->getLastTetherError(Ljava/lang/String;)I
+Landroid/net/IConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager;->getTetherableIfaces()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getTetherableUsbRegexs()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
 Landroid/net/IConnectivityManager;->getTetheredIfaces()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getTetheringErroredIfaces()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->reportInetCondition(II)V
+Landroid/net/IConnectivityManager;->setAirplaneMode(Z)V
+Landroid/net/IConnectivityManager;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;)V
 Landroid/net/INetd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetd;
 Landroid/net/INetd;->interfaceAddAddress(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetworkManagementEventObserver$Stub;-><init>()V
+Landroid/net/INetworkPolicyListener$Stub;-><init>()V
 Landroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
 Landroid/net/INetworkPolicyManager;->getNetworkQuotaInfo(Landroid/net/NetworkState;)Landroid/net/NetworkQuotaInfo;
+Landroid/net/INetworkPolicyManager;->getRestrictBackground()Z
+Landroid/net/INetworkPolicyManager;->getUidPolicy(I)I
+Landroid/net/INetworkPolicyManager;->setNetworkPolicies([Landroid/net/NetworkPolicy;)V
+Landroid/net/INetworkPolicyManager;->setRestrictBackground(Z)V
+Landroid/net/INetworkPolicyManager;->setUidPolicy(II)V
+Landroid/net/INetworkPolicyManager;->snoozeLimit(Landroid/net/NetworkTemplate;)V
 Landroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService;
 Landroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
 Landroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
+Landroid/net/INetworkStatsService;->forceUpdate()V
+Landroid/net/INetworkStatsService;->getMobileIfaces()[Ljava/lang/String;
 Landroid/net/INetworkStatsService;->openSession()Landroid/net/INetworkStatsSession;
+Landroid/net/INetworkStatsService;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
+Landroid/net/INetworkStatsSession;->close()V
 Landroid/net/INetworkStatsSession;->getHistoryForNetwork(Landroid/net/NetworkTemplate;I)Landroid/net/NetworkStatsHistory;
 Landroid/net/INetworkStatsSession;->getHistoryForUid(Landroid/net/NetworkTemplate;IIII)Landroid/net/NetworkStatsHistory;
+Landroid/net/INetworkStatsSession;->getSummaryForAllUid(Landroid/net/NetworkTemplate;JJZ)Landroid/net/NetworkStats;
+Landroid/net/INetworkStatsSession;->getSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
 Landroid/net/InterfaceConfiguration;-><init>()V
+Landroid/net/InterfaceConfiguration;->clearFlag(Ljava/lang/String;)V
+Landroid/net/InterfaceConfiguration;->getFlags()Ljava/lang/Iterable;
+Landroid/net/InterfaceConfiguration;->setFlag(Ljava/lang/String;)V
+Landroid/net/InterfaceConfiguration;->setInterfaceDown()V
+Landroid/net/InterfaceConfiguration;->setInterfaceUp()V
 Landroid/net/InterfaceConfiguration;->setLinkAddress(Landroid/net/LinkAddress;)V
+Landroid/net/IpConfiguration$IpAssignment;->STATIC:Landroid/net/IpConfiguration$IpAssignment;
+Landroid/net/IpConfiguration$ProxySettings;->NONE:Landroid/net/IpConfiguration$ProxySettings;
+Landroid/net/IpConfiguration;-><init>(Landroid/net/IpConfiguration$IpAssignment;Landroid/net/IpConfiguration$ProxySettings;Landroid/net/StaticIpConfiguration;Landroid/net/ProxyInfo;)V
 Landroid/net/IpConfiguration;->httpProxy:Landroid/net/ProxyInfo;
 Landroid/net/LinkAddress;-><init>(Ljava/lang/String;)V
 Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V
+Landroid/net/LinkAddress;->address:Ljava/net/InetAddress;
+Landroid/net/LinkAddress;->getNetworkPrefixLength()I
 Landroid/net/LinkAddress;->isIPv6()Z
 Landroid/net/LinkAddress;->isSameAddressAs(Landroid/net/LinkAddress;)Z
+Landroid/net/LinkAddress;->prefixLength:I
 Landroid/net/LinkProperties$ProvisioningChange;->GAINED_PROVISIONING:Landroid/net/LinkProperties$ProvisioningChange;
 Landroid/net/LinkProperties$ProvisioningChange;->LOST_PROVISIONING:Landroid/net/LinkProperties$ProvisioningChange;
 Landroid/net/LinkProperties$ProvisioningChange;->STILL_NOT_PROVISIONED:Landroid/net/LinkProperties$ProvisioningChange;
@@ -2188,11 +3806,15 @@
 Landroid/net/LinkProperties;-><init>()V
 Landroid/net/LinkProperties;-><init>(Landroid/net/LinkProperties;)V
 Landroid/net/LinkProperties;->addDnsServer(Ljava/net/InetAddress;)Z
+Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
 Landroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
 Landroid/net/LinkProperties;->addStackedLink(Landroid/net/LinkProperties;)Z
 Landroid/net/LinkProperties;->clear()V
 Landroid/net/LinkProperties;->compareProvisioning(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Landroid/net/LinkProperties$ProvisioningChange;
+Landroid/net/LinkProperties;->getAddresses()Ljava/util/List;
+Landroid/net/LinkProperties;->getAllAddresses()Ljava/util/List;
 Landroid/net/LinkProperties;->getAllInterfaceNames()Ljava/util/List;
+Landroid/net/LinkProperties;->getAllLinkAddresses()Ljava/util/List;
 Landroid/net/LinkProperties;->getAllRoutes()Ljava/util/List;
 Landroid/net/LinkProperties;->getMtu()I
 Landroid/net/LinkProperties;->getStackedLinks()Ljava/util/List;
@@ -2202,13 +3824,16 @@
 Landroid/net/LinkProperties;->hasIPv4DnsServer()Z
 Landroid/net/LinkProperties;->hasIPv6DefaultRoute()Z
 Landroid/net/LinkProperties;->hasIPv6DnsServer()Z
-Landroid/net/LinkProperties;->isIPv6Provisioned()Z
 Landroid/net/LinkProperties;->isIdenticalAddresses(Landroid/net/LinkProperties;)Z
 Landroid/net/LinkProperties;->isIdenticalDnses(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIdenticalInterfaceName(Landroid/net/LinkProperties;)Z
 Landroid/net/LinkProperties;->isIdenticalRoutes(Landroid/net/LinkProperties;)Z
 Landroid/net/LinkProperties;->isIdenticalStackedLinks(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIPv6Provisioned()Z
 Landroid/net/LinkProperties;->isProvisioned()Z
 Landroid/net/LinkProperties;->isReachable(Ljava/net/InetAddress;)Z
+Landroid/net/LinkProperties;->mIfaceName:Ljava/lang/String;
 Landroid/net/LinkProperties;->removeDnsServer(Ljava/net/InetAddress;)Z
 Landroid/net/LinkProperties;->removeRoute(Landroid/net/RouteInfo;)Z
 Landroid/net/LinkProperties;->setDnsServers(Ljava/util/Collection;)V
@@ -2218,118 +3843,15 @@
 Landroid/net/LinkProperties;->setLinkAddresses(Ljava/util/Collection;)V
 Landroid/net/LinkProperties;->setMtu(I)V
 Landroid/net/LinkProperties;->setTcpBufferSizes(Ljava/lang/String;)V
+Landroid/net/LinkQualityInfo;->setDataSampleDuration(I)V
+Landroid/net/LinkQualityInfo;->setLastDataSampleTime(J)V
+Landroid/net/LinkQualityInfo;->setPacketCount(J)V
+Landroid/net/LinkQualityInfo;->setPacketErrorCount(J)V
+Landroid/net/LocalSocket;->impl:Landroid/net/LocalSocketImpl;
+Landroid/net/LocalSocketImpl;-><init>()V
 Landroid/net/LocalSocketImpl;->inboundFileDescriptors:[Ljava/io/FileDescriptor;
 Landroid/net/LocalSocketImpl;->outboundFileDescriptors:[Ljava/io/FileDescriptor;
 Landroid/net/MacAddress;->ALL_ZEROS_ADDRESS:Landroid/net/MacAddress;
-Landroid/net/Network;-><init>(I)V
-Landroid/net/Network;->netId:I
-Landroid/net/NetworkBadging$Badging;
-Landroid/net/NetworkBadging;
-Landroid/net/NetworkBadging;->BADGING_4K:I
-Landroid/net/NetworkBadging;->BADGING_HD:I
-Landroid/net/NetworkBadging;->BADGING_NONE:I
-Landroid/net/NetworkBadging;->BADGING_SD:I
-Landroid/net/NetworkBadging;->getWifiIcon(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
-Landroid/net/NetworkCapabilities;->getCapabilities()[I
-Landroid/net/NetworkCapabilities;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;
-Landroid/net/NetworkCapabilities;->getSignalStrength()I
-Landroid/net/NetworkCapabilities;->getTransportTypes()[I
-Landroid/net/NetworkCapabilities;->hasSignalStrength()Z
-Landroid/net/NetworkCapabilities;->transportNamesOf([I)Ljava/lang/String;
-Landroid/net/NetworkPolicyManager;->mService:Landroid/net/INetworkPolicyManager;
-Landroid/net/NetworkQuotaInfo;->getEstimatedBytes()J
-Landroid/net/NetworkQuotaInfo;->getHardLimitBytes()J
-Landroid/net/NetworkQuotaInfo;->getSoftLimitBytes()J
-Landroid/net/NetworkRequest$Builder;->setSignalStrength(I)Landroid/net/NetworkRequest$Builder;
-Landroid/net/NetworkRequest;->networkCapabilities:Landroid/net/NetworkCapabilities;
-Landroid/net/NetworkState;->network:Landroid/net/Network;
-Landroid/net/NetworkStats$Entry;-><init>()V
-Landroid/net/NetworkStats$Entry;->iface:Ljava/lang/String;
-Landroid/net/NetworkStats$Entry;->rxBytes:J
-Landroid/net/NetworkStats$Entry;->rxPackets:J
-Landroid/net/NetworkStats$Entry;->set:I
-Landroid/net/NetworkStats$Entry;->tag:I
-Landroid/net/NetworkStats$Entry;->txBytes:J
-Landroid/net/NetworkStats$Entry;->txPackets:J
-Landroid/net/NetworkStats$Entry;->uid:I
-Landroid/net/NetworkStats;-><init>(JI)V
-Landroid/net/NetworkStats;->capacity:I
-Landroid/net/NetworkStats;->combineValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
-Landroid/net/NetworkStats;->defaultNetwork:[I
-Landroid/net/NetworkStats;->iface:[Ljava/lang/String;
-Landroid/net/NetworkStats;->metered:[I
-Landroid/net/NetworkStats;->operations:[J
-Landroid/net/NetworkStats;->roaming:[I
-Landroid/net/NetworkStats;->rxBytes:[J
-Landroid/net/NetworkStats;->rxPackets:[J
-Landroid/net/NetworkStats;->set:[I
-Landroid/net/NetworkStats;->size:I
-Landroid/net/NetworkStats;->tag:[I
-Landroid/net/NetworkStats;->txBytes:[J
-Landroid/net/NetworkStats;->txPackets:[J
-Landroid/net/NetworkStats;->uid:[I
-Landroid/net/NetworkStatsHistory$Entry;->rxBytes:J
-Landroid/net/NetworkStatsHistory$Entry;->txBytes:J
-Landroid/net/NetworkStatsHistory;->getStart()J
-Landroid/net/NetworkStatsHistory;->getValues(JJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
-Landroid/net/NetworkTemplate;->buildTemplateMobileAll(Ljava/lang/String;)Landroid/net/NetworkTemplate;
-Landroid/net/NetworkTemplate;->buildTemplateWifi()Landroid/net/NetworkTemplate;
-Landroid/net/NetworkUtils;->attachControlPacketFilter(Ljava/io/FileDescriptor;I)V
-Landroid/net/NetworkUtils;->attachDhcpFilter(Ljava/io/FileDescriptor;)V
-Landroid/net/NetworkUtils;->attachRaFilter(Ljava/io/FileDescriptor;I)V
-Landroid/net/NetworkUtils;->getImplicitNetmask(Ljava/net/Inet4Address;)I
-Landroid/net/NetworkUtils;->netmaskToPrefixLength(Ljava/net/Inet4Address;)I
-Landroid/net/NetworkUtils;->protectFromVpn(Ljava/io/FileDescriptor;)Z
-Landroid/net/Proxy;->getProxy(Landroid/content/Context;Ljava/lang/String;)Ljava/net/Proxy;
-Landroid/net/ProxyInfo;-><init>(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;)V
-Landroid/net/RouteInfo;->hasGateway()Z
-Landroid/net/RouteInfo;->selectBestRoute(Ljava/util/Collection;Ljava/net/InetAddress;)Landroid/net/RouteInfo;
-Landroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V
-Landroid/net/SSLCertificateSocketFactory;->INSECURE_TRUST_MANAGER:[Ljavax/net/ssl/TrustManager;
-Landroid/net/SSLCertificateSocketFactory;->TAG:Ljava/lang/String;
-Landroid/net/SSLCertificateSocketFactory;->castToOpenSSLSocket(Ljava/net/Socket;)Lcom/android/org/conscrypt/OpenSSLSocketImpl;
-Landroid/net/SSLCertificateSocketFactory;->getAlpnSelectedProtocol(Ljava/net/Socket;)[B
-Landroid/net/SSLCertificateSocketFactory;->getDelegate()Ljavax/net/ssl/SSLSocketFactory;
-Landroid/net/SSLCertificateSocketFactory;->getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;
-Landroid/net/SSLCertificateSocketFactory;->isSslCheckRelaxed()Z
-Landroid/net/SSLCertificateSocketFactory;->mAlpnProtocols:[B
-Landroid/net/SSLCertificateSocketFactory;->mChannelIdPrivateKey:Ljava/security/PrivateKey;
-Landroid/net/SSLCertificateSocketFactory;->mHandshakeTimeoutMillis:I
-Landroid/net/SSLCertificateSocketFactory;->mInsecureFactory:Ljavax/net/ssl/SSLSocketFactory;
-Landroid/net/SSLCertificateSocketFactory;->mKeyManagers:[Ljavax/net/ssl/KeyManager;
-Landroid/net/SSLCertificateSocketFactory;->mNpnProtocols:[B
-Landroid/net/SSLCertificateSocketFactory;->mSecure:Z
-Landroid/net/SSLCertificateSocketFactory;->mSecureFactory:Ljavax/net/ssl/SSLSocketFactory;
-Landroid/net/SSLCertificateSocketFactory;->mSessionCache:Lcom/android/org/conscrypt/SSLClientSessionCache;
-Landroid/net/SSLCertificateSocketFactory;->mTrustManagers:[Ljavax/net/ssl/TrustManager;
-Landroid/net/SSLCertificateSocketFactory;->makeSocketFactory([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;)Ljavax/net/ssl/SSLSocketFactory;
-Landroid/net/SSLCertificateSocketFactory;->setAlpnProtocols([[B)V
-Landroid/net/SSLCertificateSocketFactory;->setChannelIdPrivateKey(Ljava/security/PrivateKey;)V
-Landroid/net/SSLCertificateSocketFactory;->setSoWriteTimeout(Ljava/net/Socket;I)V
-Landroid/net/SSLCertificateSocketFactory;->verifyHostname(Ljava/net/Socket;Ljava/lang/String;)V
-Landroid/net/SSLSessionCache;->mSessionCache:Lcom/android/org/conscrypt/SSLClientSessionCache;
-Landroid/net/SntpClient;-><init>()V
-Landroid/net/SntpClient;->getNtpTime()J
-Landroid/net/SntpClient;->getNtpTimeReference()J
-Landroid/net/SntpClient;->getRoundTripTime()J
-Landroid/net/SntpClient;->requestTime(Ljava/lang/String;I)Z
-Landroid/net/StaticIpConfiguration;-><init>()V
-Landroid/net/StaticIpConfiguration;->dnsServers:Ljava/util/ArrayList;
-Landroid/net/StaticIpConfiguration;->domains:Ljava/lang/String;
-Landroid/net/StaticIpConfiguration;->gateway:Ljava/net/InetAddress;
-Landroid/net/StaticIpConfiguration;->getRoutes(Ljava/lang/String;)Ljava/util/List;
-Landroid/net/StaticIpConfiguration;->ipAddress:Landroid/net/LinkAddress;
-Landroid/net/StringNetworkSpecifier;->specifier:Ljava/lang/String;
-Landroid/net/TrafficStats;->getMobileIfaces()[Ljava/lang/String;
-Landroid/net/TrafficStats;->getMobileTcpRxPackets()J
-Landroid/net/TrafficStats;->getMobileTcpTxPackets()J
-Landroid/net/TrafficStats;->getRxBytes(Ljava/lang/String;)J
-Landroid/net/TrafficStats;->getStatsService()Landroid/net/INetworkStatsService;
-Landroid/net/TrafficStats;->getTxBytes(Ljava/lang/String;)J
-Landroid/net/TrafficStats;->setThreadStatsUidSelf()V
-Landroid/net/Uri;-><init>()V
-Landroid/net/http/SslError;->mCertificate:Landroid/net/http/SslCertificate;
 Landroid/net/metrics/ApfProgramEvent;-><init>()V
 Landroid/net/metrics/ApfProgramEvent;->actualLifetime:J
 Landroid/net/metrics/ApfProgramEvent;->currentRas:I
@@ -2358,6 +3880,7 @@
 Landroid/net/metrics/DhcpErrorEvent;->DHCP_NO_COOKIE:I
 Landroid/net/metrics/DhcpErrorEvent;->DHCP_NO_MSG_TYPE:I
 Landroid/net/metrics/DhcpErrorEvent;->DHCP_UNKNOWN_MSG_TYPE:I
+Landroid/net/metrics/DhcpErrorEvent;->errorCodeWithOption(II)I
 Landroid/net/metrics/DhcpErrorEvent;->L2_TOO_SHORT:I
 Landroid/net/metrics/DhcpErrorEvent;->L2_WRONG_ETH_TYPE:I
 Landroid/net/metrics/DhcpErrorEvent;->L3_INVALID_IP:I
@@ -2367,7 +3890,6 @@
 Landroid/net/metrics/DhcpErrorEvent;->L4_WRONG_PORT:I
 Landroid/net/metrics/DhcpErrorEvent;->PARSING_ERROR:I
 Landroid/net/metrics/DhcpErrorEvent;->RECEIVE_ERROR:I
-Landroid/net/metrics/DhcpErrorEvent;->errorCodeWithOption(II)I
 Landroid/net/metrics/IpConnectivityLog;-><init>()V
 Landroid/net/metrics/IpConnectivityLog;->log(Landroid/os/Parcelable;)Z
 Landroid/net/metrics/IpConnectivityLog;->log(Ljava/lang/String;Landroid/os/Parcelable;)Z
@@ -2382,19 +3904,303 @@
 Landroid/net/metrics/RaEvent$Builder;->updateRdnssLifetime(J)Landroid/net/metrics/RaEvent$Builder;
 Landroid/net/metrics/RaEvent$Builder;->updateRouteInfoLifetime(J)Landroid/net/metrics/RaEvent$Builder;
 Landroid/net/metrics/RaEvent$Builder;->updateRouterLifetime(J)Landroid/net/metrics/RaEvent$Builder;
+Landroid/net/MobileLinkQualityInfo;-><init>()V
+Landroid/net/MobileLinkQualityInfo;->getMobileNetworkType()I
+Landroid/net/MobileLinkQualityInfo;->setCdmaDbm(I)V
+Landroid/net/MobileLinkQualityInfo;->setCdmaEcio(I)V
+Landroid/net/MobileLinkQualityInfo;->setEvdoDbm(I)V
+Landroid/net/MobileLinkQualityInfo;->setEvdoEcio(I)V
+Landroid/net/MobileLinkQualityInfo;->setEvdoSnr(I)V
+Landroid/net/MobileLinkQualityInfo;->setGsmErrorRate(I)V
+Landroid/net/MobileLinkQualityInfo;->setLteCqi(I)V
+Landroid/net/MobileLinkQualityInfo;->setLteRsrp(I)V
+Landroid/net/MobileLinkQualityInfo;->setLteRsrq(I)V
+Landroid/net/MobileLinkQualityInfo;->setLteRssnr(I)V
+Landroid/net/MobileLinkQualityInfo;->setLteSignalStrength(I)V
+Landroid/net/MobileLinkQualityInfo;->setMobileNetworkType(I)V
+Landroid/net/MobileLinkQualityInfo;->setRssi(I)V
+Landroid/net/Network;-><init>(I)V
+Landroid/net/Network;->netId:I
+Landroid/net/NetworkAgent;->sendNetworkInfo(Landroid/net/NetworkInfo;)V
+Landroid/net/NetworkBadging$Badging;
+Landroid/net/NetworkBadging;
+Landroid/net/NetworkBadging;->BADGING_4K:I
+Landroid/net/NetworkBadging;->BADGING_HD:I
+Landroid/net/NetworkBadging;->BADGING_NONE:I
+Landroid/net/NetworkBadging;->BADGING_SD:I
+Landroid/net/NetworkBadging;->getWifiIcon(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+Landroid/net/NetworkCapabilities;-><init>()V
+Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->addTransportType(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;
+Landroid/net/NetworkCapabilities;->getSignalStrength()I
+Landroid/net/NetworkCapabilities;->hasSignalStrength()Z
+Landroid/net/NetworkCapabilities;->mNetworkCapabilities:J
+Landroid/net/NetworkCapabilities;->mSignalStrength:I
+Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setSignalStrength(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->transportNamesOf([I)Ljava/lang/String;
+Landroid/net/NetworkFactory;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkFactory;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/net/NetworkFactory;->setScoreFilter(I)V
+Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
+Landroid/net/NetworkInfo;-><init>(Landroid/net/NetworkInfo;)V
+Landroid/net/NetworkInfo;->setDetailedState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/NetworkInfo;->setFailover(Z)V
+Landroid/net/NetworkInfo;->setIsAvailable(Z)V
+Landroid/net/NetworkInfo;->setRoaming(Z)V
+Landroid/net/NetworkInfo;->setSubtype(ILjava/lang/String;)V
+Landroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;ILjava/lang/String;JJJJZZ)V
+Landroid/net/NetworkPolicy;->clearSnooze()V
+Landroid/net/NetworkPolicy;->compareTo(Landroid/net/NetworkPolicy;)I
+Landroid/net/NetworkPolicy;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkPolicy;->inferred:Z
+Landroid/net/NetworkPolicy;->isOverLimit(J)Z
+Landroid/net/NetworkPolicy;->isOverWarning(J)Z
+Landroid/net/NetworkPolicy;->limitBytes:J
+Landroid/net/NetworkPolicy;->metered:Z
+Landroid/net/NetworkPolicy;->template:Landroid/net/NetworkTemplate;
+Landroid/net/NetworkPolicy;->warningBytes:J
+Landroid/net/NetworkPolicyManager;->from(Landroid/content/Context;)Landroid/net/NetworkPolicyManager;
+Landroid/net/NetworkPolicyManager;->getNetworkPolicies()[Landroid/net/NetworkPolicy;
+Landroid/net/NetworkPolicyManager;->getRestrictBackground()Z
+Landroid/net/NetworkPolicyManager;->getUidPolicy(I)I
+Landroid/net/NetworkPolicyManager;->getUidsWithPolicy(I)[I
+Landroid/net/NetworkPolicyManager;->mService:Landroid/net/INetworkPolicyManager;
+Landroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
+Landroid/net/NetworkPolicyManager;->setRestrictBackground(Z)V
+Landroid/net/NetworkPolicyManager;->setUidPolicy(II)V
+Landroid/net/NetworkPolicyManager;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
+Landroid/net/NetworkQuotaInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkQuotaInfo;->getEstimatedBytes()J
+Landroid/net/NetworkQuotaInfo;->getHardLimitBytes()J
+Landroid/net/NetworkQuotaInfo;->getSoftLimitBytes()J
+Landroid/net/NetworkRequest$Builder;->clearCapabilities()Landroid/net/NetworkRequest$Builder;
+Landroid/net/NetworkRequest$Builder;->setSignalStrength(I)Landroid/net/NetworkRequest$Builder;
+Landroid/net/NetworkRequest;->legacyType:I
+Landroid/net/NetworkRequest;->networkCapabilities:Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkRequest;->requestId:I
+Landroid/net/NetworkState;-><init>(Landroid/os/Parcel;)V
+Landroid/net/NetworkState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkState;->network:Landroid/net/Network;
+Landroid/net/NetworkStats$Entry;-><init>()V
+Landroid/net/NetworkStats$Entry;->iface:Ljava/lang/String;
+Landroid/net/NetworkStats$Entry;->rxBytes:J
+Landroid/net/NetworkStats$Entry;->rxPackets:J
+Landroid/net/NetworkStats$Entry;->set:I
+Landroid/net/NetworkStats$Entry;->tag:I
+Landroid/net/NetworkStats$Entry;->txBytes:J
+Landroid/net/NetworkStats$Entry;->txPackets:J
+Landroid/net/NetworkStats$Entry;->uid:I
+Landroid/net/NetworkStats;-><init>(JI)V
+Landroid/net/NetworkStats;-><init>(Landroid/os/Parcel;)V
+Landroid/net/NetworkStats;->capacity:I
+Landroid/net/NetworkStats;->combineAllValues(Landroid/net/NetworkStats;)V
+Landroid/net/NetworkStats;->combineValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkStats;->defaultNetwork:[I
+Landroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;I)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->getTotalBytes()J
+Landroid/net/NetworkStats;->getTotalIncludingTags(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->getUniqueUids()[I
+Landroid/net/NetworkStats;->getValues(ILandroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->iface:[Ljava/lang/String;
+Landroid/net/NetworkStats;->metered:[I
+Landroid/net/NetworkStats;->operations:[J
+Landroid/net/NetworkStats;->roaming:[I
+Landroid/net/NetworkStats;->rxBytes:[J
+Landroid/net/NetworkStats;->rxPackets:[J
+Landroid/net/NetworkStats;->set:[I
+Landroid/net/NetworkStats;->size()I
+Landroid/net/NetworkStats;->size:I
+Landroid/net/NetworkStats;->tag:[I
+Landroid/net/NetworkStats;->txBytes:[J
+Landroid/net/NetworkStats;->txPackets:[J
+Landroid/net/NetworkStats;->uid:[I
+Landroid/net/NetworkStatsHistory$Entry;->bucketDuration:J
+Landroid/net/NetworkStatsHistory$Entry;->bucketStart:J
+Landroid/net/NetworkStatsHistory$Entry;->rxBytes:J
+Landroid/net/NetworkStatsHistory$Entry;->rxPackets:J
+Landroid/net/NetworkStatsHistory$Entry;->txBytes:J
+Landroid/net/NetworkStatsHistory$Entry;->txPackets:J
+Landroid/net/NetworkStatsHistory;-><init>(J)V
+Landroid/net/NetworkStatsHistory;-><init>(Landroid/os/Parcel;)V
+Landroid/net/NetworkStatsHistory;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkStatsHistory;->getEnd()J
+Landroid/net/NetworkStatsHistory;->getIndexBefore(J)I
+Landroid/net/NetworkStatsHistory;->getStart()J
+Landroid/net/NetworkStatsHistory;->getValues(ILandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+Landroid/net/NetworkStatsHistory;->getValues(JJJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+Landroid/net/NetworkStatsHistory;->getValues(JJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+Landroid/net/NetworkStatsHistory;->recordEntireHistory(Landroid/net/NetworkStatsHistory;)V
+Landroid/net/NetworkStatsHistory;->size()I
+Landroid/net/NetworkTemplate;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/net/NetworkTemplate;->buildTemplateEthernet()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateMobileAll(Ljava/lang/String;)Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateMobileWildcard()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateWifi()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateWifiWildcard()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/NetworkTemplate;->getMatchRule()I
+Landroid/net/NetworkTemplate;->getSubscriberId()Ljava/lang/String;
+Landroid/net/NetworkTemplate;->normalize(Landroid/net/NetworkTemplate;[Ljava/lang/String;)Landroid/net/NetworkTemplate;
+Landroid/net/NetworkUtils;->attachControlPacketFilter(Ljava/io/FileDescriptor;I)V
+Landroid/net/NetworkUtils;->attachDhcpFilter(Ljava/io/FileDescriptor;)V
+Landroid/net/NetworkUtils;->attachRaFilter(Ljava/io/FileDescriptor;I)V
+Landroid/net/NetworkUtils;->getImplicitNetmask(Ljava/net/Inet4Address;)I
+Landroid/net/NetworkUtils;->intToInetAddress(I)Ljava/net/InetAddress;
+Landroid/net/NetworkUtils;->netmaskToPrefixLength(Ljava/net/Inet4Address;)I
+Landroid/net/NetworkUtils;->numericToInetAddress(Ljava/lang/String;)Ljava/net/InetAddress;
+Landroid/net/NetworkUtils;->prefixLengthToNetmaskInt(I)I
+Landroid/net/NetworkUtils;->protectFromVpn(Ljava/io/FileDescriptor;)Z
+Landroid/net/NetworkUtils;->trimV4AddrZeros(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/nsd/INsdManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/nsd/INsdManager;
+Landroid/net/nsd/INsdManager;->getMessenger()Landroid/os/Messenger;
+Landroid/net/nsd/NsdServiceInfo;->setAttribute(Ljava/lang/String;[B)V
+Landroid/net/Proxy;->getProxy(Landroid/content/Context;Ljava/lang/String;)Ljava/net/Proxy;
+Landroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
+Landroid/net/ProxyInfo;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;Ljava/lang/String;)V
+Landroid/net/RouteInfo;-><init>(Ljava/net/InetAddress;)V
+Landroid/net/RouteInfo;->hasGateway()Z
+Landroid/net/RouteInfo;->isHost()Z
+Landroid/net/RouteInfo;->mGateway:Ljava/net/InetAddress;
+Landroid/net/RouteInfo;->mIsHost:Z
+Landroid/net/RouteInfo;->selectBestRoute(Ljava/util/Collection;Ljava/net/InetAddress;)Landroid/net/RouteInfo;
 Landroid/net/sip/SipProfile;->readResolve()Ljava/lang/Object;
 Landroid/net/sip/SipProfile;->serialVersionUID:J
+Landroid/net/SntpClient;-><init>()V
+Landroid/net/SntpClient;->getNtpTime()J
+Landroid/net/SntpClient;->getNtpTimeReference()J
+Landroid/net/SntpClient;->getRoundTripTime()J
+Landroid/net/SntpClient;->requestTime(Ljava/lang/String;I)Z
+Landroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V
+Landroid/net/SSLCertificateSocketFactory;->castToOpenSSLSocket(Ljava/net/Socket;)Lcom/android/org/conscrypt/OpenSSLSocketImpl;
+Landroid/net/SSLCertificateSocketFactory;->getAlpnSelectedProtocol(Ljava/net/Socket;)[B
+Landroid/net/SSLCertificateSocketFactory;->getDelegate()Ljavax/net/ssl/SSLSocketFactory;
+Landroid/net/SSLCertificateSocketFactory;->getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;
+Landroid/net/SSLCertificateSocketFactory;->INSECURE_TRUST_MANAGER:[Ljavax/net/ssl/TrustManager;
+Landroid/net/SSLCertificateSocketFactory;->isSslCheckRelaxed()Z
+Landroid/net/SSLCertificateSocketFactory;->makeSocketFactory([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;)Ljavax/net/ssl/SSLSocketFactory;
+Landroid/net/SSLCertificateSocketFactory;->mAlpnProtocols:[B
+Landroid/net/SSLCertificateSocketFactory;->mChannelIdPrivateKey:Ljava/security/PrivateKey;
+Landroid/net/SSLCertificateSocketFactory;->mHandshakeTimeoutMillis:I
+Landroid/net/SSLCertificateSocketFactory;->mInsecureFactory:Ljavax/net/ssl/SSLSocketFactory;
+Landroid/net/SSLCertificateSocketFactory;->mKeyManagers:[Ljavax/net/ssl/KeyManager;
+Landroid/net/SSLCertificateSocketFactory;->mNpnProtocols:[B
+Landroid/net/SSLCertificateSocketFactory;->mSecure:Z
+Landroid/net/SSLCertificateSocketFactory;->mSecureFactory:Ljavax/net/ssl/SSLSocketFactory;
+Landroid/net/SSLCertificateSocketFactory;->mSessionCache:Lcom/android/org/conscrypt/SSLClientSessionCache;
+Landroid/net/SSLCertificateSocketFactory;->mTrustManagers:[Ljavax/net/ssl/TrustManager;
+Landroid/net/SSLCertificateSocketFactory;->setAlpnProtocols([[B)V
+Landroid/net/SSLCertificateSocketFactory;->setChannelIdPrivateKey(Ljava/security/PrivateKey;)V
+Landroid/net/SSLCertificateSocketFactory;->setSoWriteTimeout(Ljava/net/Socket;I)V
+Landroid/net/SSLCertificateSocketFactory;->TAG:Ljava/lang/String;
+Landroid/net/SSLCertificateSocketFactory;->verifyHostname(Ljava/net/Socket;Ljava/lang/String;)V
+Landroid/net/SSLSessionCache;->mSessionCache:Lcom/android/org/conscrypt/SSLClientSessionCache;
+Landroid/net/StaticIpConfiguration;-><init>()V
+Landroid/net/StaticIpConfiguration;->dnsServers:Ljava/util/ArrayList;
+Landroid/net/StaticIpConfiguration;->domains:Ljava/lang/String;
+Landroid/net/StaticIpConfiguration;->gateway:Ljava/net/InetAddress;
+Landroid/net/StaticIpConfiguration;->getRoutes(Ljava/lang/String;)Ljava/util/List;
+Landroid/net/StaticIpConfiguration;->ipAddress:Landroid/net/LinkAddress;
+Landroid/net/StringNetworkSpecifier;->specifier:Ljava/lang/String;
+Landroid/net/TrafficStats;->getMobileIfaces()[Ljava/lang/String;
+Landroid/net/TrafficStats;->getMobileTcpRxPackets()J
+Landroid/net/TrafficStats;->getMobileTcpTxPackets()J
+Landroid/net/TrafficStats;->getRxBytes(Ljava/lang/String;)J
+Landroid/net/TrafficStats;->getStatsService()Landroid/net/INetworkStatsService;
+Landroid/net/TrafficStats;->getTxBytes(Ljava/lang/String;)J
+Landroid/net/TrafficStats;->setThreadStatsUidSelf()V
+Landroid/net/Uri;-><init>()V
+Landroid/net/Uri;->getCanonicalUri()Landroid/net/Uri;
+Landroid/net/Uri;->toSafeString()Ljava/lang/String;
+Landroid/net/VpnService$Builder;->mAddresses:Ljava/util/List;
+Landroid/net/VpnService$Builder;->mRoutes:Ljava/util/List;
+Landroid/net/WebAddress;->getAuthInfo()Ljava/lang/String;
+Landroid/net/WebAddress;->getHost()Ljava/lang/String;
+Landroid/net/WebAddress;->getPath()Ljava/lang/String;
+Landroid/net/WebAddress;->getPort()I
+Landroid/net/WebAddress;->getScheme()Ljava/lang/String;
+Landroid/net/WebAddress;->mHost:Ljava/lang/String;
+Landroid/net/WebAddress;->mPath:Ljava/lang/String;
+Landroid/net/WebAddress;->mPort:I
+Landroid/net/WebAddress;->mScheme:Ljava/lang/String;
+Landroid/net/WebAddress;->setHost(Ljava/lang/String;)V
+Landroid/net/WebAddress;->setPath(Ljava/lang/String;)V
 Landroid/net/wifi/BatchedScanResult;
 Landroid/net/wifi/BatchedScanResult;-><init>()V
 Landroid/net/wifi/BatchedScanResult;-><init>(Landroid/net/wifi/BatchedScanResult;)V
 Landroid/net/wifi/BatchedScanResult;->scanResults:Ljava/util/List;
 Landroid/net/wifi/BatchedScanResult;->truncated:Z
 Landroid/net/wifi/IWifiManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/net/wifi/IWifiManager$Stub;-><init>()V
 Landroid/net/wifi/IWifiManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiManager;
+Landroid/net/wifi/IWifiManager;->getCurrentNetwork()Landroid/net/Network;
+Landroid/net/wifi/IWifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/IWifiManager;->getWifiApEnabledState()I
 Landroid/net/wifi/IWifiScanner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/IWifiScanner$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/IWifiScanner$Stub;-><init>()V
 Landroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner;
+Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->createRequest(Ljava/lang/String;II)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;-><init>(Ljava/util/List;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->mQueryList:Ljava/util/List;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;-><init>(ILjava/lang/String;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/p2p/WifiP2pConfig;-><init>(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pConfig;->MIN_GROUP_OWNER_INTENT:I
+Landroid/net/wifi/p2p/WifiP2pConfig;->netId:I
+Landroid/net/wifi/p2p/WifiP2pDevice;-><init>(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pDevice;->deviceCapability:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->groupCapability:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->update(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pDevice;->wfdInfo:Landroid/net/wifi/p2p/WifiP2pWfdInfo;
+Landroid/net/wifi/p2p/WifiP2pDevice;->wpsConfigMethodsSupported:I
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->remove(Ljava/lang/String;)Landroid/net/wifi/p2p/WifiP2pDevice;
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->update(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;-><init>(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->getNetworkId()I
+Landroid/net/wifi/p2p/WifiP2pGroup;->isClientListEmpty()Z
+Landroid/net/wifi/p2p/WifiP2pGroup;->setInterface(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->setIsGroupOwner(Z)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->setNetworkId(I)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->TEMPORARY_NET_ID:I
+Landroid/net/wifi/p2p/WifiP2pGroupList;-><init>(Landroid/net/wifi/p2p/WifiP2pGroupList;Landroid/net/wifi/p2p/WifiP2pGroupList$GroupDeleteListener;)V
+Landroid/net/wifi/p2p/WifiP2pGroupList;->getGroupList()Ljava/util/Collection;
+Landroid/net/wifi/p2p/WifiP2pGroupList;->mGroups:Landroid/util/LruCache;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->putListener(Ljava/lang/Object;)I
+Landroid/net/wifi/p2p/WifiP2pManager;-><init>(Landroid/net/wifi/p2p/IWifiP2pManager;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->CREATE_GROUP:I
+Landroid/net/wifi/p2p/WifiP2pManager;->deletePersistentGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;ILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->requestPersistentGroupInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$PersistentGroupInfoListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->setDeviceName(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->setMiracastMode(I)V
+Landroid/net/wifi/p2p/WifiP2pManager;->setWFDInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pWfdInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->setWifiP2pChannels(Landroid/net/wifi/p2p/WifiP2pManager$Channel;IILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->startWps(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/WpsInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;-><init>()V
+Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->device:Landroid/net/wifi/p2p/WifiP2pDevice;
+Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->event:I
+Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->pin:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;-><init>()V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;-><init>(III)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;-><init>(Landroid/net/wifi/p2p/WifiP2pWfdInfo;)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->getDeviceType()I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->isWfdEnabled()Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setControlPort(I)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setDeviceType(I)Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setMaxThroughput(I)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setSessionAvailable(Z)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setWfdEnabled(Z)V
+Landroid/net/wifi/ScanResult$InformationElement;->bytes:[B
 Landroid/net/wifi/ScanResult$InformationElement;->EID_BSS_LOAD:I
 Landroid/net/wifi/ScanResult$InformationElement;->EID_ERP:I
 Landroid/net/wifi/ScanResult$InformationElement;->EID_EXTENDED_CAPS:I
@@ -2408,64 +4214,152 @@
 Landroid/net/wifi/ScanResult$InformationElement;->EID_TIM:I
 Landroid/net/wifi/ScanResult$InformationElement;->EID_VHT_OPERATION:I
 Landroid/net/wifi/ScanResult$InformationElement;->EID_VSA:I
-Landroid/net/wifi/ScanResult$InformationElement;->bytes:[B
 Landroid/net/wifi/ScanResult$InformationElement;->id:I
 Landroid/net/wifi/ScanResult;->anqpDomainId:I
 Landroid/net/wifi/ScanResult;->anqpLines:Ljava/util/List;
+Landroid/net/wifi/ScanResult;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/ScanResult;->distanceCm:I
 Landroid/net/wifi/ScanResult;->distanceSdCm:I
 Landroid/net/wifi/ScanResult;->flags:J
 Landroid/net/wifi/ScanResult;->hessid:J
 Landroid/net/wifi/ScanResult;->informationElements:[Landroid/net/wifi/ScanResult$InformationElement;
+Landroid/net/wifi/ScanResult;->is80211McRTTResponder:Z
 Landroid/net/wifi/ScanResult;->numUsage:I
 Landroid/net/wifi/ScanResult;->seen:J
 Landroid/net/wifi/ScanResult;->untrusted:Z
 Landroid/net/wifi/ScanResult;->wifiSsid:Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/WifiConfiguration;-><init>(Landroid/net/wifi/WifiConfiguration;)V
 Landroid/net/wifi/WifiConfiguration;->apBand:I
 Landroid/net/wifi/WifiConfiguration;->apChannel:I
+Landroid/net/wifi/WifiConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiConfiguration;->defaultGwMacAddress:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->getAuthType()I
+Landroid/net/wifi/WifiConfiguration;->getIpAssignment()Landroid/net/IpConfiguration$IpAssignment;
+Landroid/net/wifi/WifiConfiguration;->getIpConfiguration()Landroid/net/IpConfiguration;
+Landroid/net/wifi/WifiConfiguration;->getPrintableSsid()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->getProxySettings()Landroid/net/IpConfiguration$ProxySettings;
+Landroid/net/wifi/WifiConfiguration;->getStaticIpConfiguration()Landroid/net/StaticIpConfiguration;
+Landroid/net/wifi/WifiConfiguration;->INVALID_RSSI:I
+Landroid/net/wifi/WifiConfiguration;->isEnterprise()Z
 Landroid/net/wifi/WifiConfiguration;->lastConnectUid:I
 Landroid/net/wifi/WifiConfiguration;->mIpConfiguration:Landroid/net/IpConfiguration;
+Landroid/net/wifi/WifiConfiguration;->noInternetAccessExpected:Z
+Landroid/net/wifi/WifiConfiguration;->numNoInternetAccessReports:I
+Landroid/net/wifi/WifiConfiguration;->selfAdded:Z
 Landroid/net/wifi/WifiConfiguration;->setIpAssignment(Landroid/net/IpConfiguration$IpAssignment;)V
+Landroid/net/wifi/WifiConfiguration;->setIpConfiguration(Landroid/net/IpConfiguration;)V
+Landroid/net/wifi/WifiConfiguration;->setProxy(Landroid/net/IpConfiguration$ProxySettings;Landroid/net/ProxyInfo;)V
+Landroid/net/wifi/WifiConfiguration;->setProxySettings(Landroid/net/IpConfiguration$ProxySettings;)V
 Landroid/net/wifi/WifiConfiguration;->setStaticIpConfiguration(Landroid/net/StaticIpConfiguration;)V
+Landroid/net/wifi/WifiConfiguration;->shared:Z
 Landroid/net/wifi/WifiConfiguration;->validatedInternetAccess:Z
+Landroid/net/wifi/WifiConfiguration;->wepKeyVarNames:[Ljava/lang/String;
 Landroid/net/wifi/WifiEnterpriseConfig;->getCaCertificateAlias()Ljava/lang/String;
 Landroid/net/wifi/WifiEnterpriseConfig;->getClientCertificateAlias()Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->mFields:Ljava/util/HashMap;
+Landroid/net/wifi/WifiEnterpriseConfig;->setCaCertificateAlias(Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->setClientCertificateAlias(Ljava/lang/String;)V
+Landroid/net/wifi/WifiInfo;-><init>()V
+Landroid/net/wifi/WifiInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiInfo;->DEFAULT_MAC_ADDRESS:Ljava/lang/String;
 Landroid/net/wifi/WifiInfo;->getMeteredHint()Z
 Landroid/net/wifi/WifiInfo;->getWifiSsid()Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/WifiInfo;->INVALID_RSSI:I
 Landroid/net/wifi/WifiInfo;->is5GHz()Z
+Landroid/net/wifi/WifiInfo;->isEphemeral()Z
+Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
+Landroid/net/wifi/WifiInfo;->mIpAddress:Ljava/net/InetAddress;
 Landroid/net/wifi/WifiInfo;->mMacAddress:Ljava/lang/String;
+Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
 Landroid/net/wifi/WifiInfo;->removeDoubleQuotes(Ljava/lang/String;)Ljava/lang/String;
 Landroid/net/wifi/WifiInfo;->score:I
+Landroid/net/wifi/WifiInfo;->setBSSID(Ljava/lang/String;)V
+Landroid/net/wifi/WifiInfo;->setLinkSpeed(I)V
+Landroid/net/wifi/WifiInfo;->setMacAddress(Ljava/lang/String;)V
+Landroid/net/wifi/WifiInfo;->setNetworkId(I)V
+Landroid/net/wifi/WifiInfo;->setRssi(I)V
+Landroid/net/wifi/WifiInfo;->setSupplicantState(Landroid/net/wifi/SupplicantState;)V
+Landroid/net/wifi/WifiInfo;->setSupplicantState(Ljava/lang/String;)V
 Landroid/net/wifi/WifiManager;->cancelLocalOnlyHotspotRequest()V
 Landroid/net/wifi/WifiManager;->connect(ILandroid/net/wifi/WifiManager$ActionListener;)V
+Landroid/net/wifi/WifiManager;->disable(ILandroid/net/wifi/WifiManager$ActionListener;)V
+Landroid/net/wifi/WifiManager;->enableVerboseLogging(I)V
 Landroid/net/wifi/WifiManager;->forget(ILandroid/net/wifi/WifiManager$ActionListener;)V
+Landroid/net/wifi/WifiManager;->getCountryCode()Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->getCurrentNetwork()Landroid/net/Network;
+Landroid/net/wifi/WifiManager;->getMatchingWifiConfig(Landroid/net/wifi/ScanResult;)Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/WifiManager;->getVerboseLoggingLevel()I
+Landroid/net/wifi/WifiManager;->getWifiServiceMessenger()Landroid/os/Messenger;
+Landroid/net/wifi/WifiManager;->initializeMulticastFiltering()Z
 Landroid/net/wifi/WifiManager;->isDualBandSupported()Z
+Landroid/net/wifi/WifiManager;->LINK_CONFIGURATION_CHANGED_ACTION:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->mActiveLockCount:I
+Landroid/net/wifi/WifiManager;->MAX_RSSI:I
+Landroid/net/wifi/WifiManager;->MIN_RSSI:I
 Landroid/net/wifi/WifiManager;->mService:Landroid/net/wifi/IWifiManager;
+Landroid/net/wifi/WifiManager;->RSSI_LEVELS:I
 Landroid/net/wifi/WifiManager;->save(Landroid/net/wifi/WifiConfiguration;Landroid/net/wifi/WifiManager$ActionListener;)V
-Landroid/net/wifi/WifiSsid;->NONE:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->WIFI_FREQUENCY_BAND_2GHZ:I
+Landroid/net/wifi/WifiManager;->WIFI_FREQUENCY_BAND_5GHZ:I
+Landroid/net/wifi/WifiManager;->WIFI_FREQUENCY_BAND_AUTO:I
+Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/WifiSsid;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiSsid;->getOctets()[B
-Landroid/net/wifi/p2p/WifiP2pGroup;->TEMPORARY_NET_ID:I
-Landroid/net/wifi/p2p/WifiP2pGroup;->getNetworkId()I
-Landroid/net/wifi/p2p/WifiP2pGroupList;->getGroupList()Ljava/util/Collection;
-Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
-Landroid/net/wifi/p2p/WifiP2pManager$Channel;->putListener(Ljava/lang/Object;)I
-Landroid/net/wifi/p2p/WifiP2pManager;->CREATE_GROUP:I
-Landroid/net/wifi/p2p/WifiP2pManager;->deletePersistentGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;ILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
-Landroid/net/wifi/p2p/WifiP2pManager;->requestPersistentGroupInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$PersistentGroupInfoListener;)V
-Landroid/net/wifi/p2p/WifiP2pManager;->setDeviceName(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
-Landroid/net/wifi/p2p/WifiP2pManager;->setWifiP2pChannels(Landroid/net/wifi/p2p/WifiP2pManager$Channel;IILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/WifiSsid;->NONE:Ljava/lang/String;
+Landroid/net/wifi/WifiSsid;->octets:Ljava/io/ByteArrayOutputStream;
+Landroid/nfc/cardemulation/AidGroup;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/nfc/cardemulation/AidGroup;->aids:Ljava/util/List;
+Landroid/nfc/cardemulation/AidGroup;->category:Ljava/lang/String;
+Landroid/nfc/cardemulation/AidGroup;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/nfc/cardemulation/AidGroup;
+Landroid/nfc/cardemulation/AidGroup;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/nfc/cardemulation/AidGroup;->description:Ljava/lang/String;
+Landroid/nfc/cardemulation/AidGroup;->getAids()Ljava/util/List;
+Landroid/nfc/cardemulation/AidGroup;->getCategory()Ljava/lang/String;
+Landroid/nfc/cardemulation/AidGroup;->writeAsXml(Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/nfc/cardemulation/ApduServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;Z)V
+Landroid/nfc/cardemulation/ApduServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;ZLjava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIILjava/lang/String;)V
+Landroid/nfc/cardemulation/ApduServiceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getDescription()Ljava/lang/String;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getSettingsActivityName()Ljava/lang/String;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getUid()I
+Landroid/nfc/cardemulation/ApduServiceInfo;->isOnHost()Z
+Landroid/nfc/cardemulation/ApduServiceInfo;->loadBanner(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mDynamicAidGroups:Ljava/util/HashMap;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mService:Landroid/content/pm/ResolveInfo;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mStaticAidGroups:Ljava/util/HashMap;
+Landroid/nfc/cardemulation/ApduServiceInfo;->requiresUnlock()Z
+Landroid/nfc/ErrorCodes;->isError(I)Z
+Landroid/nfc/INfcAdapterExtras;->authenticate(Ljava/lang/String;[B)V
+Landroid/nfc/INfcAdapterExtras;->close(Ljava/lang/String;Landroid/os/IBinder;)Landroid/os/Bundle;
+Landroid/nfc/INfcAdapterExtras;->getCardEmulationRoute(Ljava/lang/String;)I
+Landroid/nfc/INfcAdapterExtras;->open(Ljava/lang/String;Landroid/os/IBinder;)Landroid/os/Bundle;
+Landroid/nfc/INfcAdapterExtras;->setCardEmulationRoute(Ljava/lang/String;I)V
+Landroid/nfc/INfcAdapterExtras;->transceive(Ljava/lang/String;[B)Landroid/os/Bundle;
+Landroid/nfc/NdefRecord;->mId:[B
+Landroid/nfc/NfcActivityManager;->mAdapter:Landroid/nfc/NfcAdapter;
+Landroid/nfc/NfcAdapter;->attemptDeadServiceRecovery(Ljava/lang/Exception;)V
 Landroid/nfc/NfcAdapter;->getAdapterState()I
+Landroid/nfc/NfcAdapter;->getContext()Landroid/content/Context;
 Landroid/nfc/NfcAdapter;->getDefaultAdapter()Landroid/nfc/NfcAdapter;
 Landroid/nfc/NfcAdapter;->getNfcAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
+Landroid/nfc/NfcAdapter;->getNfcAdapterExtrasInterface()Landroid/nfc/INfcAdapterExtras;
+Landroid/nfc/NfcAdapter;->getService()Landroid/nfc/INfcAdapter;
 Landroid/nfc/NfcAdapter;->setNdefPushMessageCallback(Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;Landroid/app/Activity;I)V
+Landroid/nfc/NfcAdapter;->sService:Landroid/nfc/INfcAdapter;
+Landroid/nfc/NfcManager;-><init>(Landroid/content/Context;)V
+Landroid/nfc/Tag;->getServiceHandle()I
+Landroid/nfc/Tag;->getTagService()Landroid/nfc/INfcTag;
+Landroid/nfc/Tag;->mId:[B
+Landroid/opengl/EGL14;->eglGetDisplay(J)Landroid/opengl/EGLDisplay;
+Landroid/opengl/GLES20;->glGetActiveAttrib(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V
+Landroid/opengl/GLES20;->glGetActiveUniform(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V
 Landroid/opengl/GLSurfaceView$EglHelper;->mEglContext:Ljavax/microedition/khronos/egl/EGLContext;
 Landroid/opengl/GLSurfaceView$GLThread;->mEglHelper:Landroid/opengl/GLSurfaceView$EglHelper;
 Landroid/opengl/GLSurfaceView;->mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
 Landroid/opengl/GLSurfaceView;->mRenderer:Landroid/opengl/GLSurfaceView$Renderer;
 Landroid/os/AsyncResult;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
 Landroid/os/AsyncResult;->exception:Ljava/lang/Throwable;
+Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;)Landroid/os/AsyncResult;
 Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;Ljava/lang/Object;Ljava/lang/Throwable;)Landroid/os/AsyncResult;
 Landroid/os/AsyncResult;->result:Ljava/lang/Object;
 Landroid/os/AsyncResult;->userObj:Ljava/lang/Object;
@@ -2475,48 +4369,85 @@
 Landroid/os/AsyncTask;->mWorker:Landroid/os/AsyncTask$WorkerRunnable;
 Landroid/os/AsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
 Landroid/os/AsyncTask;->setDefaultExecutor(Ljava/util/concurrent/Executor;)V
+Landroid/os/BaseBundle;->mMap:Landroid/util/ArrayMap;
+Landroid/os/BaseBundle;->mParcelledData:Landroid/os/Parcel;
+Landroid/os/BaseBundle;->unparcel()V
 Landroid/os/BatteryManager;-><init>()V
+Landroid/os/BatteryManager;->EXTRA_CHARGE_COUNTER:Ljava/lang/String;
+Landroid/os/BatteryManager;->EXTRA_INVALID_CHARGER:Ljava/lang/String;
+Landroid/os/BatteryManager;->EXTRA_MAX_CHARGING_CURRENT:Ljava/lang/String;
+Landroid/os/BatteryManager;->EXTRA_MAX_CHARGING_VOLTAGE:Ljava/lang/String;
+Landroid/os/BatteryStats$Counter;-><init>()V
 Landroid/os/BatteryStats$Counter;->getCountLocked(I)I
 Landroid/os/BatteryStats$HistoryItem;-><init>()V
-Landroid/os/BatteryStats$HistoryItem;->CMD_UPDATE:B
+Landroid/os/BatteryStats$HistoryItem;->batteryHealth:B
 Landroid/os/BatteryStats$HistoryItem;->batteryLevel:B
+Landroid/os/BatteryStats$HistoryItem;->batteryPlugType:B
+Landroid/os/BatteryStats$HistoryItem;->batteryStatus:B
+Landroid/os/BatteryStats$HistoryItem;->batteryVoltage:C
+Landroid/os/BatteryStats$HistoryItem;->clear()V
 Landroid/os/BatteryStats$HistoryItem;->cmd:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_UPDATE:B
+Landroid/os/BatteryStats$HistoryItem;->next:Landroid/os/BatteryStats$HistoryItem;
+Landroid/os/BatteryStats$HistoryItem;->same(Landroid/os/BatteryStats$HistoryItem;)Z
+Landroid/os/BatteryStats$HistoryItem;->setTo(JBLandroid/os/BatteryStats$HistoryItem;)V
+Landroid/os/BatteryStats$HistoryItem;->setTo(Landroid/os/BatteryStats$HistoryItem;)V
 Landroid/os/BatteryStats$HistoryItem;->states2:I
 Landroid/os/BatteryStats$HistoryItem;->states:I
 Landroid/os/BatteryStats$HistoryItem;->time:J
+Landroid/os/BatteryStats$Timer;-><init>()V
 Landroid/os/BatteryStats$Timer;->getCountLocked(I)I
 Landroid/os/BatteryStats$Timer;->getTotalTimeLocked(JI)J
 Landroid/os/BatteryStats$Uid$Pkg$Serv;->getLaunches(I)I
 Landroid/os/BatteryStats$Uid$Pkg$Serv;->getStartTime(JI)J
+Landroid/os/BatteryStats$Uid$Pkg;-><init>()V
 Landroid/os/BatteryStats$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
 Landroid/os/BatteryStats$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->overTime:J
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->type:I
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->usedTime:J
+Landroid/os/BatteryStats$Uid$Proc;-><init>()V
 Landroid/os/BatteryStats$Uid$Proc;->countExcessivePowers()I
 Landroid/os/BatteryStats$Uid$Proc;->getExcessivePower(I)Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
 Landroid/os/BatteryStats$Uid$Proc;->getForegroundTime(I)J
 Landroid/os/BatteryStats$Uid$Proc;->getStarts(I)I
 Landroid/os/BatteryStats$Uid$Proc;->getSystemTime(I)J
 Landroid/os/BatteryStats$Uid$Proc;->getUserTime(I)J
+Landroid/os/BatteryStats$Uid$Sensor;-><init>()V
 Landroid/os/BatteryStats$Uid$Sensor;->getHandle()I
 Landroid/os/BatteryStats$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid$Sensor;->GPS:I
+Landroid/os/BatteryStats$Uid$Wakelock;-><init>()V
 Landroid/os/BatteryStats$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer;
 Landroid/os/BatteryStats$Uid;-><init>()V
 Landroid/os/BatteryStats$Uid;->getAudioTurnedOnTimer()Landroid/os/BatteryStats$Timer;
 Landroid/os/BatteryStats$Uid;->getFullWifiLockTime(JI)J
+Landroid/os/BatteryStats$Uid;->getMobileRadioActiveTime(I)J
+Landroid/os/BatteryStats$Uid;->getNetworkActivityBytes(II)J
 Landroid/os/BatteryStats$Uid;->getPackageStats()Landroid/util/ArrayMap;
 Landroid/os/BatteryStats$Uid;->getProcessStats()Landroid/util/ArrayMap;
 Landroid/os/BatteryStats$Uid;->getSensorStats()Landroid/util/SparseArray;
 Landroid/os/BatteryStats$Uid;->getUid()I
 Landroid/os/BatteryStats$Uid;->getVideoTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getWakelockStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid;->getWifiBatchedScanTime(IJI)J
 Landroid/os/BatteryStats$Uid;->getWifiMulticastTime(JI)J
 Landroid/os/BatteryStats$Uid;->getWifiRunningTime(JI)J
 Landroid/os/BatteryStats$Uid;->getWifiScanTime(JI)J
-Landroid/os/BatteryStats;->NUM_DATA_CONNECTION_TYPES:I
+Landroid/os/BatteryStats;-><init>()V
+Landroid/os/BatteryStats;->computeBatteryTimeRemaining(J)J
+Landroid/os/BatteryStats;->computeBatteryUptime(JI)J
+Landroid/os/BatteryStats;->computeChargeTimeRemaining(J)J
+Landroid/os/BatteryStats;->getMobileRadioActiveTime(JI)J
+Landroid/os/BatteryStats;->getNetworkActivityBytes(II)J
 Landroid/os/BatteryStats;->getNextHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
 Landroid/os/BatteryStats;->getUidStats()Landroid/util/SparseArray;
+Landroid/os/BatteryStats;->NUM_DATA_CONNECTION_TYPES:I
+Landroid/os/BatteryStats;->NUM_SCREEN_BRIGHTNESS_BINS:I
 Landroid/os/BatteryStats;->startIteratingHistoryLocked()Z
+Landroid/os/BatteryStats;->STATS_CURRENT:I
+Landroid/os/BatteryStats;->WAKE_TYPE_PARTIAL:I
 Landroid/os/Binder;->execTransact(IJJI)Z
 Landroid/os/Binder;->mObject:J
 Landroid/os/Broadcaster;-><init>()V
@@ -2524,14 +4455,23 @@
 Landroid/os/Broadcaster;->cancelRequest(ILandroid/os/Handler;I)V
 Landroid/os/Broadcaster;->request(ILandroid/os/Handler;I)V
 Landroid/os/Build$VERSION;->ACTIVE_CODENAMES:[Ljava/lang/String;
+Landroid/os/Build;->getLong(Ljava/lang/String;)J
+Landroid/os/Build;->getString(Ljava/lang/String;)Ljava/lang/String;
 Landroid/os/Build;->IS_DEBUGGABLE:Z
 Landroid/os/Build;->IS_EMULATOR:Z
 Landroid/os/Build;->PERMISSIONS_REVIEW_REQUIRED:Z
-Landroid/os/Build;->getString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/Bundle;->filterValues()Landroid/os/Bundle;
+Landroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
 Landroid/os/Bundle;->getIBinder(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/os/Bundle;->getSize()I
 Landroid/os/Bundle;->putIBinder(Ljava/lang/String;Landroid/os/IBinder;)V
-Landroid/os/Debug$MemoryInfo;->NUM_DVK_STATS:I
-Landroid/os/Debug$MemoryInfo;->NUM_OTHER_STATS:I
+Landroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V
+Landroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle;
+Landroid/os/CancellationSignal;->mCancelInProgress:Z
+Landroid/os/CancellationSignal;->mIsCanceled:Z
+Landroid/os/CancellationSignal;->mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
+Landroid/os/CancellationSignal;->mRemote:Landroid/os/ICancellationSignal;
+Landroid/os/CancellationSignal;->waitForCancelFinishedLocked()V
 Landroid/os/Debug$MemoryInfo;->dalvikPrivateClean:I
 Landroid/os/Debug$MemoryInfo;->dalvikRss:I
 Landroid/os/Debug$MemoryInfo;->dalvikSharedClean:I
@@ -2543,6 +4483,13 @@
 Landroid/os/Debug$MemoryInfo;->getOtherPrivateDirty(I)I
 Landroid/os/Debug$MemoryInfo;->getOtherPss(I)I
 Landroid/os/Debug$MemoryInfo;->getOtherSharedDirty(I)I
+Landroid/os/Debug$MemoryInfo;->getSummaryCode()I
+Landroid/os/Debug$MemoryInfo;->getSummaryGraphics()I
+Landroid/os/Debug$MemoryInfo;->getSummaryJavaHeap()I
+Landroid/os/Debug$MemoryInfo;->getSummaryNativeHeap()I
+Landroid/os/Debug$MemoryInfo;->getSummaryPrivateOther()I
+Landroid/os/Debug$MemoryInfo;->getSummaryStack()I
+Landroid/os/Debug$MemoryInfo;->getSummarySystem()I
 Landroid/os/Debug$MemoryInfo;->getTotalUss()I
 Landroid/os/Debug$MemoryInfo;->hasSwappedOutPss:Z
 Landroid/os/Debug$MemoryInfo;->nativePrivateClean:I
@@ -2551,6 +4498,8 @@
 Landroid/os/Debug$MemoryInfo;->nativeSwappablePss:I
 Landroid/os/Debug$MemoryInfo;->nativeSwappedOut:I
 Landroid/os/Debug$MemoryInfo;->nativeSwappedOutPss:I
+Landroid/os/Debug$MemoryInfo;->NUM_DVK_STATS:I
+Landroid/os/Debug$MemoryInfo;->NUM_OTHER_STATS:I
 Landroid/os/Debug$MemoryInfo;->otherPrivateClean:I
 Landroid/os/Debug$MemoryInfo;->otherRss:I
 Landroid/os/Debug$MemoryInfo;->otherSharedClean:I
@@ -2560,18 +4509,41 @@
 Landroid/os/Debug$MemoryInfo;->otherSwappedOutPss:I
 Landroid/os/Debug;-><init>()V
 Landroid/os/Debug;->countInstancesOfClass(Ljava/lang/Class;)J
+Landroid/os/Debug;->dumpNativeHeap(Ljava/io/FileDescriptor;)V
 Landroid/os/Debug;->dumpReferenceTables()V
+Landroid/os/Debug;->getCaller()Ljava/lang/String;
+Landroid/os/Debug;->getCallers(I)Ljava/lang/String;
+Landroid/os/Debug;->getMemInfo([J)V
+Landroid/os/Debug;->getMemoryInfo(ILandroid/os/Debug$MemoryInfo;)V
 Landroid/os/DropBoxManager;->mService:Lcom/android/internal/os/IDropBoxManagerService;
+Landroid/os/Environment$UserEnvironment;-><init>(I)V
+Landroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File;
+Landroid/os/Environment$UserEnvironment;->getExternalStorageDirectory()Ljava/io/File;
+Landroid/os/Environment$UserEnvironment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->buildExternalStorageAndroidDataDirs()[Ljava/io/File;
+Landroid/os/Environment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment;->buildExternalStorageAppObbDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment;->getDataSystemDirectory()Ljava/io/File;
 Landroid/os/Environment;->getLegacyExternalStorageDirectory()Ljava/io/File;
+Landroid/os/Environment;->getLegacyExternalStorageObbDirectory()Ljava/io/File;
+Landroid/os/Environment;->getOemDirectory()Ljava/io/File;
 Landroid/os/Environment;->getStorageDirectory()Ljava/io/File;
 Landroid/os/Environment;->getVendorDirectory()Ljava/io/File;
+Landroid/os/Environment;->initForCurrentUser()V
 Landroid/os/Environment;->maybeTranslateEmulatedPathToInternal(Ljava/io/File;)Ljava/io/File;
+Landroid/os/Environment;->sCurrentUser:Landroid/os/Environment$UserEnvironment;
 Landroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V
+Landroid/os/FileObserver;->s_observerThread:Landroid/os/FileObserver$ObserverThread;
+Landroid/os/FileUtils;-><init>()V
 Landroid/os/FileUtils;->checksumCrc32(Ljava/io/File;)J
 Landroid/os/FileUtils;->copyFile(Ljava/io/File;Ljava/io/File;)Z
 Landroid/os/FileUtils;->copyToFile(Ljava/io/InputStream;Ljava/io/File;)Z
+Landroid/os/FileUtils;->deleteContents(Ljava/io/File;)Z
 Landroid/os/FileUtils;->deleteOlderFiles(Ljava/io/File;IJ)Z
+Landroid/os/FileUtils;->isFilenameSafe(Ljava/io/File;)Z
 Landroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
 Landroid/os/FileUtils;->setPermissions(Ljava/io/File;III)I
 Landroid/os/FileUtils;->setPermissions(Ljava/io/FileDescriptor;III)I
@@ -2583,44 +4555,94 @@
 Landroid/os/Handler;-><init>(Z)V
 Landroid/os/Handler;->getIMessenger()Landroid/os/IMessenger;
 Landroid/os/Handler;->getMain()Landroid/os/Handler;
+Landroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message;
 Landroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z
 Landroid/os/Handler;->mCallback:Landroid/os/Handler$Callback;
+Landroid/os/Handler;->mLooper:Landroid/os/Looper;
 Landroid/os/Handler;->mMessenger:Landroid/os/IMessenger;
+Landroid/os/health/HealthKeys$Constants;-><init>(Ljava/lang/Class;)V
+Landroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
+Landroid/os/health/HealthStatsParceler;-><init>(Landroid/os/health/HealthStatsWriter;)V
+Landroid/os/health/HealthStatsParceler;-><init>(Landroid/os/Parcel;)V
+Landroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
+Landroid/os/health/HealthStatsWriter;-><init>(Landroid/os/health/HealthKeys$Constants;)V
+Landroid/os/health/HealthStatsWriter;->addMeasurement(IJ)V
+Landroid/os/health/HealthStatsWriter;->addMeasurements(ILjava/lang/String;J)V
+Landroid/os/health/HealthStatsWriter;->addStats(ILjava/lang/String;Landroid/os/health/HealthStatsWriter;)V
+Landroid/os/health/HealthStatsWriter;->addTimer(IIJ)V
+Landroid/os/health/HealthStatsWriter;->addTimers(ILjava/lang/String;Landroid/os/health/TimerStat;)V
+Landroid/os/health/HealthStatsWriter;->flattenToParcel(Landroid/os/Parcel;)V
+Landroid/os/health/SystemHealthManager;-><init>()V
+Landroid/os/health/SystemHealthManager;->from(Landroid/content/Context;)Landroid/os/health/SystemHealthManager;
 Landroid/os/HwBinder;->reportSyspropChanged()V
 Landroid/os/HwParcel;-><init>(Z)V
 Landroid/os/HwRemoteBinder;-><init>()V
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/os/IBinder;->SYSPROPS_TRANSACTION:I
+Landroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
+Landroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
+Landroid/os/IDeviceIdleController;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V
+Landroid/os/IDeviceIdleController;->getAppIdTempWhitelist()[I
+Landroid/os/IDeviceIdleController;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
 Landroid/os/INetworkManagementService;->clearInterfaceAddresses(Ljava/lang/String;)V
 Landroid/os/INetworkManagementService;->disableIpv6(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->disableNat(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/INetworkManagementService;->enableIpv6(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->enableNat(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->getInterfaceConfig(Ljava/lang/String;)Landroid/net/InterfaceConfiguration;
+Landroid/os/INetworkManagementService;->getIpForwardingEnabled()Z
 Landroid/os/INetworkManagementService;->isBandwidthControlEnabled()Z
+Landroid/os/INetworkManagementService;->isTetheringStarted()Z
+Landroid/os/INetworkManagementService;->listTetheredInterfaces()[Ljava/lang/String;
 Landroid/os/INetworkManagementService;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V
-Landroid/os/INetworkManagementService;->setIPv6AddrGenMode(Ljava/lang/String;I)V
 Landroid/os/INetworkManagementService;->setInterfaceConfig(Ljava/lang/String;Landroid/net/InterfaceConfiguration;)V
 Landroid/os/INetworkManagementService;->setInterfaceIpv6PrivacyExtensions(Ljava/lang/String;Z)V
+Landroid/os/INetworkManagementService;->setIpForwardingEnabled(Z)V
+Landroid/os/INetworkManagementService;->setIPv6AddrGenMode(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService;->startTethering([Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->stopTethering()V
+Landroid/os/INetworkManagementService;->tetherInterface(Ljava/lang/String;)V
 Landroid/os/INetworkManagementService;->unregisterObserver(Landroid/net/INetworkManagementEventObserver;)V
+Landroid/os/INetworkManagementService;->untetherInterface(Ljava/lang/String;)V
 Landroid/os/IPermissionController$Stub$Proxy;->checkPermission(Ljava/lang/String;II)Z
+Landroid/os/IPermissionController$Stub;-><init>()V
 Landroid/os/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPermissionController;
 Landroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IPowerManager$Stub$Proxy;->isLightDeviceIdleMode()Z
+Landroid/os/IPowerManager$Stub;-><init>()V
 Landroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager;
+Landroid/os/IPowerManager$Stub;->TRANSACTION_goToSleep:I
 Landroid/os/IPowerManager;->goToSleep(JII)V
+Landroid/os/IPowerManager;->isInteractive()Z
+Landroid/os/IPowerManager;->nap(J)V
 Landroid/os/IPowerManager;->reboot(ZLjava/lang/String;Z)V
 Landroid/os/IPowerManager;->releaseWakeLock(Landroid/os/IBinder;I)V
 Landroid/os/IPowerManager;->userActivity(JII)V
+Landroid/os/IPowerManager;->wakeUp(JLjava/lang/String;Ljava/lang/String;)V
 Landroid/os/IRecoverySystem$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRecoverySystem;
 Landroid/os/IRemoteCallback$Stub;-><init>()V
+Landroid/os/IRemoteCallback;->sendResult(Landroid/os/Bundle;)V
 Landroid/os/IServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/os/IServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/os/IUpdateEngine$Stub;-><init>()V
+Landroid/os/IUpdateEngineCallback;->onStatusUpdate(IF)V
 Landroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
+Landroid/os/IUserManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
 Landroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
 Landroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;I)V
+Landroid/os/Looper;->mLogging:Landroid/util/Printer;
 Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
-Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
 Landroid/os/Looper;->setTraceTag(J)V
+Landroid/os/Looper;->sMainLooper:Landroid/os/Looper;
+Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
+Landroid/os/MemoryFile;->deactivate()V
 Landroid/os/MemoryFile;->getFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/os/MemoryFile;->getSize(Ljava/io/FileDescriptor;)I
+Landroid/os/MemoryFile;->native_get_size(Ljava/io/FileDescriptor;)I
+Landroid/os/MemoryFile;->native_pin(Ljava/io/FileDescriptor;Z)Z
 Landroid/os/Message;->callback:Ljava/lang/Runnable;
 Landroid/os/Message;->flags:I
 Landroid/os/Message;->markInUse()V
@@ -2628,10 +4650,13 @@
 Landroid/os/Message;->recycleUnchecked()V
 Landroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message;
 Landroid/os/Message;->target:Landroid/os/Handler;
+Landroid/os/Message;->toString(J)Ljava/lang/String;
 Landroid/os/Message;->when:J
 Landroid/os/MessageQueue;->dispatchEvents(II)I
+Landroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z
 Landroid/os/MessageQueue;->mIdleHandlers:Ljava/util/ArrayList;
 Landroid/os/MessageQueue;->mMessages:Landroid/os/Message;
+Landroid/os/MessageQueue;->mNextBarrierToken:I
 Landroid/os/MessageQueue;->mPtr:J
 Landroid/os/MessageQueue;->mQuitAllowed:Z
 Landroid/os/MessageQueue;->nativePollOnce(JI)V
@@ -2639,58 +4664,129 @@
 Landroid/os/MessageQueue;->postSyncBarrier()I
 Landroid/os/MessageQueue;->removeSyncBarrier(I)V
 Landroid/os/Parcel$ReadWriteHelper;-><init>()V
+Landroid/os/Parcel;->getGlobalAllocCount()J
+Landroid/os/Parcel;->getGlobalAllocSize()J
+Landroid/os/Parcel;->mCreators:Ljava/util/HashMap;
 Landroid/os/Parcel;->mNativePtr:J
 Landroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet;
 Landroid/os/Parcel;->readBlob()[B
+Landroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;
+Landroid/os/Parcel;->readCreator(Landroid/os/Parcelable$Creator;Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
+Landroid/os/Parcel;->readExceptionCode()I
+Landroid/os/Parcel;->readParcelableCreator(Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
 Landroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List;
+Landroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor;
 Landroid/os/Parcel;->readStringArray()[Ljava/lang/String;
 Landroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V
+Landroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V
 Landroid/os/Parcel;->writeBlob([B)V
+Landroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V
+Landroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V
 Landroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V
+Landroid/os/ParcelableParcel;-><init>(Ljava/lang/ClassLoader;)V
+Landroid/os/ParcelableParcel;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;
+Landroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader;
+Landroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel;
 Landroid/os/ParcelFileDescriptor$FileDescriptorDetachedException;->serialVersionUID:J
 Landroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V
 Landroid/os/ParcelFileDescriptor;->fromData([BLjava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/os/ParcelFileDescriptor;->getFile(Ljava/io/FileDescriptor;)Ljava/io/File;
+Landroid/os/ParcelFileDescriptor;->seekTo(J)J
+Landroid/os/PerformanceCollector;-><init>()V
+Landroid/os/PerformanceCollector;->beginSnapshot(Ljava/lang/String;)V
+Landroid/os/PerformanceCollector;->endSnapshot()Landroid/os/Bundle;
+Landroid/os/PerformanceCollector;->startTiming(Ljava/lang/String;)V
+Landroid/os/PerformanceCollector;->stopTiming(Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/os/PowerManager$WakeLock;->mFlags:I
+Landroid/os/PowerManager$WakeLock;->mTag:Ljava/lang/String;
+Landroid/os/PowerManager;->ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED:Ljava/lang/String;
+Landroid/os/PowerManager;->ACTION_POWER_SAVE_MODE_CHANGING:Ljava/lang/String;
 Landroid/os/PowerManager;->ACTION_SCREEN_BRIGHTNESS_BOOST_CHANGED:Ljava/lang/String;
+Landroid/os/PowerManager;->BRIGHTNESS_ON:I
+Landroid/os/PowerManager;->EXTRA_POWER_SAVE_MODE:Ljava/lang/String;
 Landroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I
 Landroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
 Landroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I
 Landroid/os/PowerManager;->goToSleep(J)V
+Landroid/os/PowerManager;->goToSleep(JII)V
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_TIMEOUT:I
 Landroid/os/PowerManager;->isLightDeviceIdleMode()Z
 Landroid/os/PowerManager;->isScreenBrightnessBoosted()Z
+Landroid/os/PowerManager;->mHandler:Landroid/os/Handler;
 Landroid/os/PowerManager;->mService:Landroid/os/IPowerManager;
+Landroid/os/PowerManager;->setPowerSaveMode(Z)Z
 Landroid/os/PowerManager;->userActivity(JZ)V
 Landroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V
 Landroid/os/PowerManager;->wakeUp(J)V
 Landroid/os/PowerManager;->wakeUp(JLjava/lang/String;)V
+Landroid/os/Process;->BLUETOOTH_UID:I
+Landroid/os/Process;->DRM_UID:I
 Landroid/os/Process;->getFreeMemory()J
 Landroid/os/Process;->getParentPid(I)I
 Landroid/os/Process;->getPids(Ljava/lang/String;[I)[I
+Landroid/os/Process;->getPidsForCommands([Ljava/lang/String;)[I
+Landroid/os/Process;->getPss(I)J
 Landroid/os/Process;->getTotalMemory()J
 Landroid/os/Process;->getUidForPid(I)I
 Landroid/os/Process;->isIsolated(I)Z
+Landroid/os/Process;->LOG_UID:I
+Landroid/os/Process;->MEDIA_UID:I
+Landroid/os/Process;->myPpid()I
+Landroid/os/Process;->NFC_UID:I
+Landroid/os/Process;->parseProcLine([BII[I[Ljava/lang/String;[J[F)Z
+Landroid/os/Process;->PROC_COMBINE:I
+Landroid/os/Process;->PROC_OUT_FLOAT:I
+Landroid/os/Process;->PROC_OUT_LONG:I
+Landroid/os/Process;->PROC_OUT_STRING:I
+Landroid/os/Process;->PROC_PARENS:I
+Landroid/os/Process;->PROC_QUOTES:I
+Landroid/os/Process;->PROC_SPACE_TERM:I
+Landroid/os/Process;->PROC_TAB_TERM:I
+Landroid/os/Process;->PROC_TERM_MASK:I
+Landroid/os/Process;->PROC_ZERO_TERM:I
 Landroid/os/Process;->readProcFile(Ljava/lang/String;[I[Ljava/lang/String;[J[F)Z
 Landroid/os/Process;->readProcLines(Ljava/lang/String;[Ljava/lang/String;[J)V
+Landroid/os/Process;->ROOT_UID:I
+Landroid/os/Process;->sendSignalQuiet(II)V
 Landroid/os/Process;->setArgV0(Ljava/lang/String;)V
+Landroid/os/Process;->setProcessGroup(II)V
+Landroid/os/Process;->SHELL_UID:I
+Landroid/os/Process;->VPN_UID:I
+Landroid/os/Process;->WIFI_UID:I
 Landroid/os/RecoverySystem;-><init>()V
+Landroid/os/RecoverySystem;->verifyPackageCompatibility(Ljava/io/InputStream;)Z
 Landroid/os/Registrant;-><init>(Landroid/os/Handler;ILjava/lang/Object;)V
 Landroid/os/Registrant;->clear()V
+Landroid/os/Registrant;->getHandler()Landroid/os/Handler;
+Landroid/os/Registrant;->messageForRegistrant()Landroid/os/Message;
 Landroid/os/Registrant;->notifyRegistrant()V
 Landroid/os/Registrant;->notifyRegistrant(Landroid/os/AsyncResult;)V
+Landroid/os/Registrant;->notifyResult(Ljava/lang/Object;)V
 Landroid/os/RegistrantList;-><init>()V
+Landroid/os/RegistrantList;->add(Landroid/os/Handler;ILjava/lang/Object;)V
 Landroid/os/RegistrantList;->add(Landroid/os/Registrant;)V
 Landroid/os/RegistrantList;->addUnique(Landroid/os/Handler;ILjava/lang/Object;)V
+Landroid/os/RegistrantList;->get(I)Ljava/lang/Object;
 Landroid/os/RegistrantList;->notifyRegistrants()V
 Landroid/os/RegistrantList;->notifyRegistrants(Landroid/os/AsyncResult;)V
+Landroid/os/RegistrantList;->notifyResult(Ljava/lang/Object;)V
 Landroid/os/RegistrantList;->remove(Landroid/os/Handler;)V
 Landroid/os/RegistrantList;->removeCleared()V
+Landroid/os/RegistrantList;->size()I
+Landroid/os/RemoteCallback;->mHandler:Landroid/os/Handler;
+Landroid/os/RemoteCallbackList;->mCallbacks:Landroid/util/ArrayMap;
 Landroid/os/RemoteException;->rethrowFromSystemServer()Ljava/lang/RuntimeException;
 Landroid/os/SELinux;->checkSELinuxAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/SELinux;->getContext()Ljava/lang/String;
 Landroid/os/SELinux;->getFileContext(Ljava/lang/String;)Ljava/lang/String;
 Landroid/os/SELinux;->getPidContext(I)Ljava/lang/String;
 Landroid/os/SELinux;->isSELinuxEnabled()Z
 Landroid/os/SELinux;->isSELinuxEnforced()Z
+Landroid/os/SELinux;->restoreconRecursive(Ljava/io/File;)Z
 Landroid/os/ServiceManager;-><init>()V
 Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 Landroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
 Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
@@ -2698,45 +4794,176 @@
 Landroid/os/ServiceManager;->sCache:Ljava/util/HashMap;
 Landroid/os/ServiceManager;->sServiceManager:Landroid/os/IServiceManager;
 Landroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
+Landroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V
 Landroid/os/ServiceSpecificException;->errorCode:I
 Landroid/os/SharedMemory;->getFd()I
+Landroid/os/ShellCommand;->peekNextArg()Ljava/lang/String;
+Landroid/os/StatFs;->mStat:Landroid/system/StructStatVfs;
+Landroid/os/storage/DiskInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/os/storage/DiskInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/os/storage/DiskInfo;->flags:I
+Landroid/os/storage/DiskInfo;->getDescription()Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->getId()Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->isAdoptable()Z
+Landroid/os/storage/DiskInfo;->isDefaultPrimary()Z
+Landroid/os/storage/DiskInfo;->isSd()Z
+Landroid/os/storage/DiskInfo;->isUsb()Z
+Landroid/os/storage/DiskInfo;->label:Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->size:J
+Landroid/os/storage/IObbActionListener$Stub;-><init>()V
+Landroid/os/storage/IObbActionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IObbActionListener;
+Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
+Landroid/os/storage/StorageEventListener;-><init>()V
+Landroid/os/storage/StorageEventListener;->onDiskDestroyed(Landroid/os/storage/DiskInfo;)V
+Landroid/os/storage/StorageEventListener;->onDiskScanned(Landroid/os/storage/DiskInfo;I)V
+Landroid/os/storage/StorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/StorageEventListener;->onUsbMassStorageConnectionChanged(Z)V
+Landroid/os/storage/StorageEventListener;->onVolumeForgotten(Ljava/lang/String;)V
+Landroid/os/storage/StorageEventListener;->onVolumeRecordChanged(Landroid/os/storage/VolumeRecord;)V
+Landroid/os/storage/StorageEventListener;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+Landroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+Landroid/os/storage/StorageManager;->CRYPT_TYPE_DEFAULT:I
+Landroid/os/storage/StorageManager;->CRYPT_TYPE_PASSWORD:I
+Landroid/os/storage/StorageManager;->disableUsbMassStorage()V
+Landroid/os/storage/StorageManager;->enableUsbMassStorage()V
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_NONE:I
+Landroid/os/storage/StorageManager;->findDiskById(Ljava/lang/String;)Landroid/os/storage/DiskInfo;
+Landroid/os/storage/StorageManager;->findEmulatedForPrivate(Landroid/os/storage/VolumeInfo;)Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->findVolumeById(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->findVolumeByUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->format(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->from(Landroid/content/Context;)Landroid/os/storage/StorageManager;
+Landroid/os/storage/StorageManager;->getBestVolumeDescription(Landroid/os/storage/VolumeInfo;)Ljava/lang/String;
+Landroid/os/storage/StorageManager;->getDisks()Ljava/util/List;
+Landroid/os/storage/StorageManager;->getPrimaryPhysicalVolume()Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->getPrimaryVolume()Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getStorageBytesUntilLow(Ljava/io/File;)J
+Landroid/os/storage/StorageManager;->getStorageFullBytes(Ljava/io/File;)J
+Landroid/os/storage/StorageManager;->getStorageLowBytes(Ljava/io/File;)J
+Landroid/os/storage/StorageManager;->getStorageVolume([Landroid/os/storage/StorageVolume;Ljava/io/File;)Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getVolumeList()[Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getVolumePaths()[Ljava/lang/String;
+Landroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
+Landroid/os/storage/StorageManager;->getVolumeState(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/StorageManager;->isFileEncryptedNativeOnly()Z
+Landroid/os/storage/StorageManager;->isUsbMassStorageConnected()Z
+Landroid/os/storage/StorageManager;->isUsbMassStorageEnabled()Z
+Landroid/os/storage/StorageManager;->partitionPublic(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)V
+Landroid/os/storage/StorageManager;->unmount(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->unregisterListener(Landroid/os/storage/StorageEventListener;)V
+Landroid/os/storage/StorageVolume;->allowMassStorage()Z
+Landroid/os/storage/StorageVolume;->getFatVolumeId()I
+Landroid/os/storage/StorageVolume;->getId()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->getMaxFileSize()J
+Landroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;
+Landroid/os/storage/StorageVolume;->getPath()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File;
+Landroid/os/storage/StorageVolume;->getUserLabel()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mDescription:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mId:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mPath:Ljava/io/File;
+Landroid/os/storage/StorageVolume;->mPrimary:Z
+Landroid/os/storage/StorageVolume;->mRemovable:Z
+Landroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/os/storage/VolumeInfo;->buildBrowseIntent()Landroid/content/Intent;
+Landroid/os/storage/VolumeInfo;->buildStableMtpStorageId(Ljava/lang/String;)I
+Landroid/os/storage/VolumeInfo;->buildStorageVolume(Landroid/content/Context;IZ)Landroid/os/storage/StorageVolume;
+Landroid/os/storage/VolumeInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/os/storage/VolumeInfo;->disk:Landroid/os/storage/DiskInfo;
+Landroid/os/storage/VolumeInfo;->fsLabel:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->fsUuid:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getDescription()Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getDisk()Landroid/os/storage/DiskInfo;
+Landroid/os/storage/VolumeInfo;->getDiskId()Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getEnvironmentForState(I)Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getFsUuid()Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getId()Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getInternalPathForUser(I)Ljava/io/File;
+Landroid/os/storage/VolumeInfo;->getMountUserId()I
+Landroid/os/storage/VolumeInfo;->getPath()Ljava/io/File;
+Landroid/os/storage/VolumeInfo;->getPathForUser(I)Ljava/io/File;
+Landroid/os/storage/VolumeInfo;->getState()I
+Landroid/os/storage/VolumeInfo;->getType()I
+Landroid/os/storage/VolumeInfo;->internalPath:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->isMountedReadable()Z
+Landroid/os/storage/VolumeInfo;->isMountedWritable()Z
+Landroid/os/storage/VolumeInfo;->isPrimary()Z
+Landroid/os/storage/VolumeInfo;->isPrimaryPhysical()Z
+Landroid/os/storage/VolumeInfo;->isVisible()Z
+Landroid/os/storage/VolumeInfo;->isVisibleForWrite(I)Z
+Landroid/os/storage/VolumeInfo;->path:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->state:I
+Landroid/os/storage/VolumeInfo;->type:I
+Landroid/os/storage/VolumeInfo;->TYPE_EMULATED:I
+Landroid/os/storage/VolumeInfo;->TYPE_PUBLIC:I
+Landroid/os/storage/VolumeRecord;-><init>(Landroid/os/Parcel;)V
+Landroid/os/storage/VolumeRecord;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/os/StrictMode$Span;->finish()V
 Landroid/os/StrictMode$ThreadPolicy$Builder;->penaltyListener(Landroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)Landroid/os/StrictMode$ThreadPolicy$Builder;
+Landroid/os/StrictMode$ThreadPolicy;->mask:I
+Landroid/os/StrictMode$VmPolicy$Builder;->mMask:I
 Landroid/os/StrictMode$VmPolicy$Builder;->penaltyListener(Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)Landroid/os/StrictMode$VmPolicy$Builder;
+Landroid/os/StrictMode$VmPolicy;->mask:I
 Landroid/os/StrictMode;->conditionallyCheckInstanceCounts()V
 Landroid/os/StrictMode;->disableDeathOnFileUriExposure()V
+Landroid/os/StrictMode;->enableDeathOnFileUriExposure()V
 Landroid/os/StrictMode;->enterCriticalSpan(Ljava/lang/String;)Landroid/os/StrictMode$Span;
 Landroid/os/StrictMode;->getThreadPolicyMask()I
+Landroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V
 Landroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V
+Landroid/os/StrictMode;->onWebViewMethodCalledOnWrongThread(Ljava/lang/Throwable;)V
+Landroid/os/StrictMode;->sLastVmViolationTime:Ljava/util/HashMap;
+Landroid/os/StrictMode;->sWindowManager:Landroid/util/Singleton;
 Landroid/os/StrictMode;->violationsBeingTimed:Ljava/lang/ThreadLocal;
+Landroid/os/SystemClock;->currentThreadTimeMicro()J
+Landroid/os/SystemClock;->currentTimeMicro()J
 Landroid/os/SystemClock;->elapsedRealtimeClock()Ljava/time/Clock;
 Landroid/os/SystemClock;->uptimeClock()Ljava/time/Clock;
 Landroid/os/SystemClock;->uptimeMillisClock()Ljava/time/Clock;
 Landroid/os/SystemProperties;-><init>()V
-Landroid/os/SystemProperties;->PROP_NAME_MAX:I
 Landroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V
+Landroid/os/SystemProperties;->native_add_change_callback()V
 Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/SystemProperties;->native_get_boolean(Ljava/lang/String;Z)Z
+Landroid/os/SystemProperties;->native_get_int(Ljava/lang/String;I)I
+Landroid/os/SystemProperties;->native_get_long(Ljava/lang/String;J)J
+Landroid/os/SystemProperties;->native_set(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/SystemProperties;->PROP_NAME_MAX:I
 Landroid/os/SystemProperties;->reportSyspropChanged()V
+Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
 Landroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/SystemService;->start(Ljava/lang/String;)V
 Landroid/os/SystemService;->stop(Ljava/lang/String;)V
 Landroid/os/SystemVibrator;-><init>()V
+Landroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V
 Landroid/os/TestLooperManager;->getQueue()Landroid/os/MessageQueue;
-Landroid/os/Trace;->TRACE_TAG_APP:J
-Landroid/os/Trace;->TRACE_TAG_VIEW:J
 Landroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V
 Landroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V
 Landroid/os/Trace;->isTagEnabled(J)Z
+Landroid/os/Trace;->nativeGetEnabledTags()J
+Landroid/os/Trace;->sEnabledTags:J
 Landroid/os/Trace;->setAppTracingAllowed(Z)V
 Landroid/os/Trace;->traceBegin(JLjava/lang/String;)V
 Landroid/os/Trace;->traceCounter(JLjava/lang/String;I)V
 Landroid/os/Trace;->traceEnd(J)V
-Landroid/os/UpdateLock;->NOW_IS_CONVENIENT:Ljava/lang/String;
-Landroid/os/UpdateLock;->TIMESTAMP:Ljava/lang/String;
-Landroid/os/UpdateLock;->UPDATE_LOCK_CHANGED:Ljava/lang/String;
+Landroid/os/Trace;->TRACE_TAG_APP:J
+Landroid/os/Trace;->TRACE_TAG_VIEW:J
+Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/UEventObserver;-><init>()V
+Landroid/os/UEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
+Landroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V
+Landroid/os/UEventObserver;->stopObserving()V
 Landroid/os/UpdateLock;->acquire()V
 Landroid/os/UpdateLock;->isHeld()Z
+Landroid/os/UpdateLock;->NOW_IS_CONVENIENT:Ljava/lang/String;
 Landroid/os/UpdateLock;->release()V
+Landroid/os/UpdateLock;->TIMESTAMP:Ljava/lang/String;
+Landroid/os/UpdateLock;->UPDATE_LOCK_CHANGED:Ljava/lang/String;
 Landroid/os/UserHandle;-><init>(I)V
 Landroid/os/UserHandle;->AID_APP_END:I
 Landroid/os/UserHandle;->AID_APP_START:I
@@ -2747,6 +4974,15 @@
 Landroid/os/UserHandle;->CURRENT:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->CURRENT_OR_SELF:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->ERR_GID:I
+Landroid/os/UserHandle;->formatUid(Ljava/io/PrintWriter;I)V
+Landroid/os/UserHandle;->getAppIdFromSharedAppGid(I)I
+Landroid/os/UserHandle;->getCallingUserId()I
+Landroid/os/UserHandle;->getUid(II)I
+Landroid/os/UserHandle;->getUserId(I)I
+Landroid/os/UserHandle;->isApp(I)Z
+Landroid/os/UserHandle;->isIsolated(I)Z
+Landroid/os/UserHandle;->isSameApp(II)Z
+Landroid/os/UserHandle;->mHandle:I
 Landroid/os/UserHandle;->MU_ENABLED:Z
 Landroid/os/UserHandle;->OWNER:Landroid/os/UserHandle;
 Landroid/os/UserHandle;->PER_USER_RANGE:I
@@ -2757,31 +4993,37 @@
 Landroid/os/UserHandle;->USER_OWNER:I
 Landroid/os/UserHandle;->USER_SERIAL_SYSTEM:I
 Landroid/os/UserHandle;->USER_SYSTEM:I
-Landroid/os/UserHandle;->getAppIdFromSharedAppGid(I)I
-Landroid/os/UserHandle;->getCallingUserId()I
-Landroid/os/UserHandle;->getUid(II)I
-Landroid/os/UserHandle;->getUserId(I)I
-Landroid/os/UserHandle;->isSameApp(II)Z
+Landroid/os/UserManager;->createProfileForUser(Ljava/lang/String;II)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->createUser(Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->DISALLOW_RECORD_AUDIO:Ljava/lang/String;
 Landroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager;
 Landroid/os/UserManager;->getBadgedDrawableForUser(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;Landroid/graphics/Rect;I)Landroid/graphics/drawable/Drawable;
 Landroid/os/UserManager;->getBadgedIconForUser(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;
 Landroid/os/UserManager;->getBadgedLabelForUser(Ljava/lang/CharSequence;Landroid/os/UserHandle;)Ljava/lang/CharSequence;
+Landroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List;
 Landroid/os/UserManager;->getMaxSupportedUsers()I
+Landroid/os/UserManager;->getProfileIdsWithDisabled(I)[I
+Landroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo;
 Landroid/os/UserManager;->getProfiles(I)Ljava/util/List;
 Landroid/os/UserManager;->getUserHandle()I
 Landroid/os/UserManager;->getUserHandle(I)I
 Landroid/os/UserManager;->getUserIcon(I)Landroid/graphics/Bitmap;
 Landroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->getUsers()Ljava/util/List;
+Landroid/os/UserManager;->getUsers(Z)Ljava/util/List;
 Landroid/os/UserManager;->getUserSerialNumber(I)I
 Landroid/os/UserManager;->getUserStartRealtime()J
 Landroid/os/UserManager;->getUserUnlockRealtime()J
-Landroid/os/UserManager;->getUsers()Ljava/util/List;
 Landroid/os/UserManager;->hasBaseUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
 Landroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
 Landroid/os/UserManager;->isAdminUser()Z
+Landroid/os/UserManager;->isGuestUser(I)Z
 Landroid/os/UserManager;->isLinkedUser()Z
+Landroid/os/UserManager;->isUserAdmin(I)Z
 Landroid/os/UserManager;->isUserUnlocked(I)Z
 Landroid/os/UserManager;->mService:Landroid/os/IUserManager;
+Landroid/os/UserManager;->removeUser(I)Z
+Landroid/os/Vibrator;-><init>()V
 Landroid/os/VintfObject;->getHalNamesAndVersions()[Ljava/lang/String;
 Landroid/os/VintfObject;->getSepolicyVersion()Ljava/lang/String;
 Landroid/os/VintfObject;->getTargetFrameworkCompatibilityMatrixVersion()Ljava/lang/Long;
@@ -2795,6 +5037,7 @@
 Landroid/os/VintfRuntimeInfo;->getOsRelease()Ljava/lang/String;
 Landroid/os/VintfRuntimeInfo;->getOsVersion()Ljava/lang/String;
 Landroid/os/WorkSource;-><init>(I)V
+Landroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
 Landroid/os/WorkSource;->add(I)Z
 Landroid/os/WorkSource;->add(ILjava/lang/String;)Z
 Landroid/os/WorkSource;->addReturningNewbs(Landroid/os/WorkSource;)Landroid/os/WorkSource;
@@ -2804,62 +5047,13 @@
 Landroid/os/WorkSource;->mNum:I
 Landroid/os/WorkSource;->mUids:[I
 Landroid/os/WorkSource;->setReturningDiffs(Landroid/os/WorkSource;)[Landroid/os/WorkSource;
+Landroid/os/WorkSource;->sGoneWork:Landroid/os/WorkSource;
 Landroid/os/WorkSource;->size()I
-Landroid/os/health/HealthKeys$Constants;-><init>(Ljava/lang/Class;)V
-Landroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
-Landroid/os/health/HealthStatsParceler;-><init>(Landroid/os/Parcel;)V
-Landroid/os/health/HealthStatsParceler;-><init>(Landroid/os/health/HealthStatsWriter;)V
-Landroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
-Landroid/os/health/HealthStatsWriter;-><init>(Landroid/os/health/HealthKeys$Constants;)V
-Landroid/os/health/HealthStatsWriter;->addMeasurement(IJ)V
-Landroid/os/health/HealthStatsWriter;->addMeasurements(ILjava/lang/String;J)V
-Landroid/os/health/HealthStatsWriter;->addStats(ILjava/lang/String;Landroid/os/health/HealthStatsWriter;)V
-Landroid/os/health/HealthStatsWriter;->addTimer(IIJ)V
-Landroid/os/health/HealthStatsWriter;->addTimers(ILjava/lang/String;Landroid/os/health/TimerStat;)V
-Landroid/os/health/HealthStatsWriter;->flattenToParcel(Landroid/os/Parcel;)V
-Landroid/os/health/SystemHealthManager;->from(Landroid/content/Context;)Landroid/os/health/SystemHealthManager;
-Landroid/os/storage/DiskInfo;->getDescription()Ljava/lang/String;
-Landroid/os/storage/DiskInfo;->getId()Ljava/lang/String;
-Landroid/os/storage/DiskInfo;->isSd()Z
-Landroid/os/storage/DiskInfo;->isUsb()Z
-Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
-Landroid/os/storage/StorageEventListener;-><init>()V
-Landroid/os/storage/StorageManager;->findVolumeById(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
-Landroid/os/storage/StorageManager;->findVolumeByUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
-Landroid/os/storage/StorageManager;->from(Landroid/content/Context;)Landroid/os/storage/StorageManager;
-Landroid/os/storage/StorageManager;->getBestVolumeDescription(Landroid/os/storage/VolumeInfo;)Ljava/lang/String;
-Landroid/os/storage/StorageManager;->getDisks()Ljava/util/List;
-Landroid/os/storage/StorageManager;->getPrimaryVolume()Landroid/os/storage/StorageVolume;
-Landroid/os/storage/StorageManager;->getStorageBytesUntilLow(Ljava/io/File;)J
-Landroid/os/storage/StorageManager;->getStorageFullBytes(Ljava/io/File;)J
-Landroid/os/storage/StorageManager;->getStorageLowBytes(Ljava/io/File;)J
-Landroid/os/storage/StorageManager;->getVolumeList()[Landroid/os/storage/StorageVolume;
-Landroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume;
-Landroid/os/storage/StorageManager;->getVolumePaths()[Ljava/lang/String;
-Landroid/os/storage/StorageManager;->getVolumeState(Ljava/lang/String;)Ljava/lang/String;
-Landroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
-Landroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)V
-Landroid/os/storage/StorageManager;->unregisterListener(Landroid/os/storage/StorageEventListener;)V
-Landroid/os/storage/StorageVolume;->allowMassStorage()Z
-Landroid/os/storage/StorageVolume;->getId()Ljava/lang/String;
-Landroid/os/storage/StorageVolume;->getMaxFileSize()J
-Landroid/os/storage/StorageVolume;->getPath()Ljava/lang/String;
-Landroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File;
-Landroid/os/storage/StorageVolume;->getUserLabel()Ljava/lang/String;
-Landroid/os/storage/StorageVolume;->mPath:Ljava/io/File;
-Landroid/os/storage/VolumeInfo;->TYPE_EMULATED:I
-Landroid/os/storage/VolumeInfo;->TYPE_PUBLIC:I
-Landroid/os/storage/VolumeInfo;->buildStorageVolume(Landroid/content/Context;IZ)Landroid/os/storage/StorageVolume;
-Landroid/os/storage/VolumeInfo;->getDisk()Landroid/os/storage/DiskInfo;
-Landroid/os/storage/VolumeInfo;->getEnvironmentForState(I)Ljava/lang/String;
-Landroid/os/storage/VolumeInfo;->getFsUuid()Ljava/lang/String;
-Landroid/os/storage/VolumeInfo;->getId()Ljava/lang/String;
-Landroid/os/storage/VolumeInfo;->getPath()Ljava/io/File;
-Landroid/os/storage/VolumeInfo;->getState()I
-Landroid/os/storage/VolumeInfo;->getType()I
-Landroid/os/storage/VolumeInfo;->isPrimary()Z
-Landroid/os/storage/VolumeInfo;->isVisible()Z
+Landroid/os/WorkSource;->sNewbWork:Landroid/os/WorkSource;
+Landroid/os/WorkSource;->sTmpWorkSource:Landroid/os/WorkSource;
+Landroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
+Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/String;)V
+Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/Throwable;)V
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService;->onRevokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/preference/DialogPreference;->mBuilder:Landroid/app/AlertDialog$Builder;
 Landroid/preference/DialogPreference;->mDialog:Landroid/app/Dialog;
@@ -2869,36 +5063,78 @@
 Landroid/preference/DialogPreference;->mNegativeButtonText:Ljava/lang/CharSequence;
 Landroid/preference/DialogPreference;->mPositiveButtonText:Ljava/lang/CharSequence;
 Landroid/preference/DialogPreference;->mWhichButtonClicked:I
+Landroid/preference/EditTextPreference;->mEditText:Landroid/widget/EditText;
 Landroid/preference/ListPreference;->mClickedDialogEntryIndex:I
+Landroid/preference/Preference;->getId()J
+Landroid/preference/Preference;->mLayoutResId:I
+Landroid/preference/Preference;->mSummary:Ljava/lang/CharSequence;
+Landroid/preference/Preference;->mWidgetLayoutResId:I
 Landroid/preference/Preference;->onKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z
 Landroid/preference/Preference;->performClick(Landroid/preference/PreferenceScreen;)V
+Landroid/preference/Preference;->registerDependent(Landroid/preference/Preference;)V
+Landroid/preference/Preference;->setOnPreferenceChangeInternalListener(Landroid/preference/Preference$OnPreferenceChangeInternalListener;)V
+Landroid/preference/PreferenceActivity;->getHeaders()Ljava/util/List;
 Landroid/preference/PreferenceActivity;->mPreferenceManager:Landroid/preference/PreferenceManager;
 Landroid/preference/PreferenceActivity;->mPrefsContainer:Landroid/view/ViewGroup;
+Landroid/preference/PreferenceActivity;->postBindPreferences()V
+Landroid/preference/PreferenceActivity;->requirePreferenceManager()V
+Landroid/preference/PreferenceFragment;->getListView()Landroid/widget/ListView;
+Landroid/preference/PreferenceFragment;->mPreferenceManager:Landroid/preference/PreferenceManager;
 Landroid/preference/PreferenceManager;-><init>(Landroid/app/Activity;I)V
 Landroid/preference/PreferenceManager;-><init>(Landroid/content/Context;)V
 Landroid/preference/PreferenceManager;->dispatchActivityDestroy()V
 Landroid/preference/PreferenceManager;->dispatchActivityResult(IILandroid/content/Intent;)V
 Landroid/preference/PreferenceManager;->dispatchActivityStop()V
+Landroid/preference/PreferenceManager;->getActivity()Landroid/app/Activity;
 Landroid/preference/PreferenceManager;->getEditor()Landroid/content/SharedPreferences$Editor;
+Landroid/preference/PreferenceManager;->getFragment()Landroid/preference/PreferenceFragment;
+Landroid/preference/PreferenceManager;->getNextRequestCode()I
 Landroid/preference/PreferenceManager;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
 Landroid/preference/PreferenceManager;->inflateFromIntent(Landroid/content/Intent;Landroid/preference/PreferenceScreen;)Landroid/preference/PreferenceScreen;
 Landroid/preference/PreferenceManager;->inflateFromResource(Landroid/content/Context;ILandroid/preference/PreferenceScreen;)Landroid/preference/PreferenceScreen;
 Landroid/preference/PreferenceManager;->mActivityDestroyListeners:Ljava/util/List;
+Landroid/preference/PreferenceManager;->mFragment:Landroid/preference/PreferenceFragment;
 Landroid/preference/PreferenceManager;->mOnPreferenceTreeClickListener:Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;
 Landroid/preference/PreferenceManager;->mSharedPreferences:Landroid/content/SharedPreferences;
 Landroid/preference/PreferenceManager;->registerOnActivityDestroyListener(Landroid/preference/PreferenceManager$OnActivityDestroyListener;)V
+Landroid/preference/PreferenceManager;->registerOnActivityResultListener(Landroid/preference/PreferenceManager$OnActivityResultListener;)V
 Landroid/preference/PreferenceManager;->registerOnActivityStopListener(Landroid/preference/PreferenceManager$OnActivityStopListener;)V
 Landroid/preference/PreferenceManager;->setFragment(Landroid/preference/PreferenceFragment;)V
+Landroid/preference/PreferenceManager;->setNoCommit(Z)V
 Landroid/preference/PreferenceManager;->setPreferences(Landroid/preference/PreferenceScreen;)Z
 Landroid/preference/PreferenceManager;->shouldCommit()Z
 Landroid/preference/PreferenceManager;->unregisterOnActivityDestroyListener(Landroid/preference/PreferenceManager$OnActivityDestroyListener;)V
+Landroid/preference/PreferenceManager;->unregisterOnActivityResultListener(Landroid/preference/PreferenceManager$OnActivityResultListener;)V
 Landroid/preference/PreferenceManager;->unregisterOnActivityStopListener(Landroid/preference/PreferenceManager$OnActivityStopListener;)V
+Landroid/preference/PreferenceScreen;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/preference/PreferenceScreen;->mListView:Landroid/widget/ListView;
 Landroid/preference/PreferenceScreen;->mRootAdapter:Landroid/widget/ListAdapter;
+Landroid/preference/RingtonePreference;->mRequestCode:I
+Landroid/preference/SeekBarDialogPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/preference/SeekBarPreference;-><init>(Landroid/content/Context;)V
+Landroid/preference/SeekBarPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/preference/SeekBarPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+Landroid/preference/SeekBarVolumizer;-><init>(Landroid/content/Context;ILandroid/net/Uri;Landroid/preference/SeekBarVolumizer$Callback;)V
+Landroid/preference/SeekBarVolumizer;->mAudioManager:Landroid/media/AudioManager;
+Landroid/preference/SeekBarVolumizer;->mContext:Landroid/content/Context;
+Landroid/preference/SeekBarVolumizer;->mLastProgress:I
+Landroid/preference/SeekBarVolumizer;->mOriginalStreamVolume:I
+Landroid/preference/SeekBarVolumizer;->mRingtone:Landroid/media/Ringtone;
+Landroid/preference/SeekBarVolumizer;->mSeekBar:Landroid/widget/SeekBar;
+Landroid/preference/SeekBarVolumizer;->mStreamType:I
+Landroid/preference/SeekBarVolumizer;->stop()V
+Landroid/preference/SwitchPreference;->mListener:Landroid/preference/SwitchPreference$Listener;
+Landroid/preference/TwoStatePreference;->syncSummaryView(Landroid/view/View;)V
+Landroid/preference/VolumePreference$VolumeStore;->originalVolume:I
+Landroid/preference/VolumePreference$VolumeStore;->volume:I
+Landroid/preference/VolumePreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/preference/VolumePreference;->mStreamType:I
 Landroid/print/PrintDocumentAdapter$LayoutResultCallback;-><init>()V
 Landroid/print/PrintDocumentAdapter$WriteResultCallback;-><init>()V
+Landroid/print/PrinterId;->getServiceName()Landroid/content/ComponentName;
 Landroid/print/PrintJobInfo;->getAdvancedOptions()Landroid/os/Bundle;
 Landroid/print/PrintJobInfo;->getDocumentInfo()Landroid/print/PrintDocumentInfo;
-Landroid/print/PrinterId;->getServiceName()Landroid/content/ComponentName;
+Landroid/print/PrintManager;->addPrintJobStateChangeListener(Landroid/print/PrintManager$PrintJobStateChangeListener;)V
 Landroid/provider/Browser$BookmarkColumns;
 Landroid/provider/Browser$BookmarkColumns;-><init>()V
 Landroid/provider/Browser$BookmarkColumns;->BOOKMARK:Ljava/lang/String;
@@ -2913,23 +5149,8 @@
 Landroid/provider/Browser$SearchColumns;->DATE:Ljava/lang/String;
 Landroid/provider/Browser$SearchColumns;->SEARCH:Ljava/lang/String;
 Landroid/provider/Browser$SearchColumns;->URL:Ljava/lang/String;
-Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
-Landroid/provider/Browser;->HISTORY_PROJECTION:[Ljava/lang/String;
-Landroid/provider/Browser;->HISTORY_PROJECTION_BOOKMARK_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_DATE_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_FAVICON_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_ID_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_TITLE_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_URL_INDEX:I
-Landroid/provider/Browser;->HISTORY_PROJECTION_VISITS_INDEX:I
-Landroid/provider/Browser;->SEARCHES_PROJECTION:[Ljava/lang/String;
-Landroid/provider/Browser;->SEARCHES_PROJECTION_DATE_INDEX:I
-Landroid/provider/Browser;->SEARCHES_PROJECTION_SEARCH_INDEX:I
-Landroid/provider/Browser;->SEARCHES_URI:Landroid/net/Uri;
-Landroid/provider/Browser;->TRUNCATE_HISTORY_PROJECTION:[Ljava/lang/String;
-Landroid/provider/Browser;->TRUNCATE_HISTORY_PROJECTION_ID_INDEX:I
-Landroid/provider/Browser;->TRUNCATE_N_OLDEST:I
 Landroid/provider/Browser;->addSearchUrl(Landroid/content/ContentResolver;Ljava/lang/String;)V
+Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
 Landroid/provider/Browser;->canClearHistory(Landroid/content/ContentResolver;)Z
 Landroid/provider/Browser;->clearHistory(Landroid/content/ContentResolver;)V
 Landroid/provider/Browser;->clearSearches(Landroid/content/ContentResolver;)V
@@ -2938,17 +5159,48 @@
 Landroid/provider/Browser;->getAllBookmarks(Landroid/content/ContentResolver;)Landroid/database/Cursor;
 Landroid/provider/Browser;->getAllVisitedUrls(Landroid/content/ContentResolver;)Landroid/database/Cursor;
 Landroid/provider/Browser;->getVisitedHistory(Landroid/content/ContentResolver;)[Ljava/lang/String;
+Landroid/provider/Browser;->HISTORY_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Browser;->HISTORY_PROJECTION_BOOKMARK_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_DATE_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_FAVICON_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_ID_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_TITLE_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_URL_INDEX:I
+Landroid/provider/Browser;->HISTORY_PROJECTION_VISITS_INDEX:I
 Landroid/provider/Browser;->requestAllIcons(Landroid/content/ContentResolver;Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V
 Landroid/provider/Browser;->saveBookmark(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/provider/Browser;->SEARCHES_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Browser;->SEARCHES_PROJECTION_DATE_INDEX:I
+Landroid/provider/Browser;->SEARCHES_PROJECTION_SEARCH_INDEX:I
+Landroid/provider/Browser;->SEARCHES_URI:Landroid/net/Uri;
 Landroid/provider/Browser;->sendString(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/provider/Browser;->truncateHistory(Landroid/content/ContentResolver;)V
+Landroid/provider/Browser;->TRUNCATE_HISTORY_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Browser;->TRUNCATE_HISTORY_PROJECTION_ID_INDEX:I
+Landroid/provider/Browser;->TRUNCATE_N_OLDEST:I
 Landroid/provider/Browser;->updateVisitedHistory(Landroid/content/ContentResolver;Ljava/lang/String;Z)V
+Landroid/provider/BrowserContract$Accounts;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/BrowserContract$Bookmarks;->buildFolderUri(J)Landroid/net/Uri;
+Landroid/provider/BrowserContract$Bookmarks;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/BrowserContract$Bookmarks;->CONTENT_URI_DEFAULT_FOLDER:Landroid/net/Uri;
+Landroid/provider/BrowserContract$Combined;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/BrowserContract$History;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/BrowserContract$Images;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/BrowserContract;->AUTHORITY_URI:Landroid/net/Uri;
 Landroid/provider/CalendarContract$CalendarAlerts;->findNextAlarmTime(Landroid/content/ContentResolver;J)J
 Landroid/provider/CalendarContract$CalendarAlerts;->rescheduleMissedAlarms(Landroid/content/ContentResolver;Landroid/content/Context;Landroid/app/AlarmManager;)V
+Landroid/provider/CalendarContract$CalendarAlerts;->scheduleAlarm(Landroid/content/Context;Landroid/app/AlarmManager;J)V
 Landroid/provider/CalendarContract$Events;->PROVIDER_WRITABLE_COLUMNS:[Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->addCall(Lcom/android/internal/telephony/CallerInfo;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILandroid/telecom/PhoneAccountHandle;JILjava/lang/Long;ZLandroid/os/UserHandle;Z)Landroid/net/Uri;
 Landroid/provider/ContactsContract$CommonDataKinds$Phone;->getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX:Ljava/lang/String;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_COUNTS:Ljava/lang/String;
+Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_TITLES:Ljava/lang/String;
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions;->builder()Landroid/provider/ContactsContract$Contacts$AggregationSuggestions$Builder;
 Landroid/provider/ContactsContract$Contacts$StreamItems;
 Landroid/provider/ContactsContract$Contacts$StreamItems;->CONTENT_DIRECTORY:Ljava/lang/String;
+Landroid/provider/ContactsContract$Contacts;->CORP_CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/ContactsContract$QuickContact;->composeQuickContactsIntent(Landroid/content/Context;Landroid/graphics/Rect;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/content/Intent;
 Landroid/provider/ContactsContract$RawContacts$StreamItems;
 Landroid/provider/ContactsContract$RawContacts$StreamItems;->CONTENT_DIRECTORY:Ljava/lang/String;
 Landroid/provider/ContactsContract$StreamItemPhotos;
@@ -2991,7 +5243,16 @@
 Landroid/provider/ContactsContract$StreamItemsColumns;->SYNC4:Ljava/lang/String;
 Landroid/provider/ContactsContract$StreamItemsColumns;->TEXT:Ljava/lang/String;
 Landroid/provider/ContactsContract$StreamItemsColumns;->TIMESTAMP:Ljava/lang/String;
+Landroid/provider/ContactsInternal;->startQuickContactWithErrorToast(Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/provider/DocumentsContract$Root;->FLAG_ADVANCED:I
+Landroid/provider/DocumentsContract;->getDocumentThumbnail(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/graphics/Point;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;
+Landroid/provider/DocumentsContract;->METHOD_CREATE_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->moveDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/net/Uri;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->PATH_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PATH_TREE:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->setManageMode(Landroid/net/Uri;)Landroid/net/Uri;
 Landroid/provider/Downloads$Impl$RequestHeaders;->INSERT_KEY_PREFIX:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->ALL_DOWNLOADS_CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Downloads$Impl;->COLUMN_ALLOWED_NETWORK_TYPES:Ljava/lang/String;
 Landroid/provider/Downloads$Impl;->COLUMN_ALLOW_ROAMING:Ljava/lang/String;
 Landroid/provider/Downloads$Impl;->COLUMN_COOKIE_DATA:Ljava/lang/String;
@@ -3013,28 +5274,113 @@
 Landroid/provider/Downloads$Impl;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Downloads$Impl;->DESTINATION_CACHE_PARTITION_PURGEABLE:I
 Landroid/provider/Downloads$Impl;->DESTINATION_FILE_URI:I
+Landroid/provider/Downloads$Impl;->isNotificationToBeDisplayed(I)Z
+Landroid/provider/Downloads$Impl;->isStatusCompleted(I)Z
+Landroid/provider/Downloads$Impl;->isStatusError(I)Z
+Landroid/provider/Downloads$Impl;->isStatusSuccess(I)Z
+Landroid/provider/Downloads$Impl;->PUBLICLY_ACCESSIBLE_DOWNLOADS_URI:Landroid/net/Uri;
+Landroid/provider/MediaStore$Files$FileColumns;->FORMAT:Ljava/lang/String;
+Landroid/provider/MediaStore$Files$FileColumns;->STORAGE_ID:Ljava/lang/String;
+Landroid/provider/MediaStore$Files;->getMtpObjectsUri(Ljava/lang/String;)Landroid/net/Uri;
+Landroid/provider/MediaStore$Files;->getMtpObjectsUri(Ljava/lang/String;J)Landroid/net/Uri;
+Landroid/provider/MediaStore$Files;->getMtpReferencesUri(Ljava/lang/String;J)Landroid/net/Uri;
+Landroid/provider/MediaStore$MediaColumns;->IS_DRM:Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->add(Landroid/content/ContentResolver;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;CI)Landroid/net/Uri;
+Landroid/provider/Settings$Bookmarks;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Settings$ContentProviderHolder;->mContentProvider:Landroid/content/IContentProvider;
 Landroid/provider/Settings$Global;->CONTACT_METADATA_SYNC:Ljava/lang/String;
 Landroid/provider/Settings$Global;->ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED:Ljava/lang/String;
-Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_ENABLE:Ljava/lang/String;
 Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/provider/Settings$Global;->HEADS_UP_NOTIFICATIONS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HEADS_UP_OFF:I
+Landroid/provider/Settings$Global;->HEADS_UP_ON:I
+Landroid/provider/Settings$Global;->MOBILE_DATA:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_USER_PREFERRED_SUBS:[Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_VOICE_PROMPT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_SCORER_APP:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_ENABLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PREFERRED_NETWORK_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/provider/Settings$Global;->REQUIRE_PASSWORD_TO_DECRYPT:Ljava/lang/String;
 Landroid/provider/Settings$Global;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings$Global;->sProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
+Landroid/provider/Settings$Global;->WEBVIEW_PROVIDER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SAVED_STATE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ZEN_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ZEN_MODE_ALARMS:I
+Landroid/provider/Settings$Global;->ZEN_MODE_CONFIG_ETAG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ZEN_MODE_IMPORTANT_INTERRUPTIONS:I
+Landroid/provider/Settings$Global;->ZEN_MODE_NO_INTERRUPTIONS:I
+Landroid/provider/Settings$Global;->ZEN_MODE_OFF:I
 Landroid/provider/Settings$NameValueCache;->mProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_TYPEFACE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_LARGE_POINTER_ICON:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ANR_SHOW_BACKGROUND:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSISTANT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_AUTO_RESTORE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_PROVISIONED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_TRANSPORT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DIALER_DEFAULT_APPLICATION:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOZE_ENABLED:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ENABLED_NOTIFICATION_LISTENERS:Ljava/lang/String;
-Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR:Ljava/lang/String;
-Landroid/provider/Settings$Secure;->LONG_PRESS_TIMEOUT:Ljava/lang/String;
-Landroid/provider/Settings$Secure;->PACKAGE_VERIFIER_USER_CONSENT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ENABLED_PRINT_SERVICES:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
+Landroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
 Landroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/provider/Settings$Secure;->IMMERSIVE_MODE_CONFIRMATIONS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_LOCK_AFTER_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_OWNER_INFO_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_SHOW_NOTIFICATIONS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LONG_PRESS_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NFC_PAYMENT_DEFAULT_COMPONENT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PACKAGE_VERIFIER_USER_CONSENT:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+Landroid/provider/Settings$Secure;->putLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)Z
+Landroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
+Landroid/provider/Settings$Secure;->SELECTED_SPELL_CHECKER:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SELECTED_SPELL_CHECKER_SUBTYPE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SETTINGS_TO_BACKUP:[Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SMS_DEFAULT_APPLICATION:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings$Secure;->VOICE_RECOGNITION_SERVICE:Ljava/lang/String;
 Landroid/provider/Settings$System;->AIRPLANE_MODE_TOGGLEABLE_RADIOS:Ljava/lang/String;
 Landroid/provider/Settings$System;->APPEND_FOR_LAST_AUDIBLE:Ljava/lang/String;
+Landroid/provider/Settings$System;->CAR_DOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->CAR_UNDOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->DESK_DOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->DESK_UNDOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->DOCK_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
+Landroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
+Landroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 Landroid/provider/Settings$System;->HEARING_AID:Ljava/lang/String;
+Landroid/provider/Settings$System;->HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY:Ljava/lang/String;
+Landroid/provider/Settings$System;->LOCKSCREEN_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$System;->LOCK_SOUND:Ljava/lang/String;
 Landroid/provider/Settings$System;->MASTER_MONO:Ljava/lang/String;
+Landroid/provider/Settings$System;->NOTIFICATION_LIGHT_PULSE:Ljava/lang/String;
+Landroid/provider/Settings$System;->POINTER_LOCATION:Ljava/lang/String;
+Landroid/provider/Settings$System;->POINTER_SPEED:Ljava/lang/String;
+Landroid/provider/Settings$System;->PRIVATE_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$System;->PUBLIC_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+Landroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
 Landroid/provider/Settings$System;->SCREEN_AUTO_BRIGHTNESS_ADJ:Ljava/lang/String;
+Landroid/provider/Settings$System;->SETTINGS_TO_BACKUP:[Ljava/lang/String;
+Landroid/provider/Settings$System;->SHOW_TOUCHES:Ljava/lang/String;
+Landroid/provider/Settings$System;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings$System;->sProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
+Landroid/provider/Settings$System;->TTY_MODE:Ljava/lang/String;
+Landroid/provider/Settings$System;->UNLOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->VIBRATE_IN_SILENT:Ljava/lang/String;
 Landroid/provider/Settings$System;->VOLUME_ALARM:Ljava/lang/String;
 Landroid/provider/Settings$System;->VOLUME_BLUETOOTH_SCO:Ljava/lang/String;
 Landroid/provider/Settings$System;->VOLUME_MUSIC:Ljava/lang/String;
@@ -3043,12 +5389,17 @@
 Landroid/provider/Settings$System;->VOLUME_SETTINGS:[Ljava/lang/String;
 Landroid/provider/Settings$System;->VOLUME_SYSTEM:Ljava/lang/String;
 Landroid/provider/Settings$System;->VOLUME_VOICE:Ljava/lang/String;
-Landroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
-Landroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
-Landroid/provider/Settings$System;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings;->ACTION_TRUSTED_CREDENTIALS_USER:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_USER_DICTIONARY_INSERT:Ljava/lang/String;
+Landroid/provider/Settings;->EXTRA_APP_UID:Ljava/lang/String;
 Landroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;ZI[Ljava/lang/String;Z)Z
 Landroid/provider/Settings;->isCallingPackageAllowedToWriteSettings(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Telephony$Mms;->extractAddrSpec(Ljava/lang/String;)Ljava/lang/String;
 Landroid/provider/Telephony$Mms;->isEmailAddress(Ljava/lang/String;)Z
+Landroid/provider/Telephony$Mms;->isPhoneNumber(Ljava/lang/String;)Z
+Landroid/provider/Telephony$Mms;->NAME_ADDR_EMAIL_PATTERN:Ljava/util/regex/Pattern;
+Landroid/provider/Telephony$Sms$Draft;->addMessage(ILandroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)Landroid/net/Uri;
 Landroid/provider/Telephony$Sms$Draft;->addMessage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)Landroid/net/Uri;
 Landroid/provider/Telephony$Sms$Inbox;->addMessage(ILandroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Z)Landroid/net/Uri;
 Landroid/provider/Telephony$Sms$Inbox;->addMessage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Z)Landroid/net/Uri;
@@ -3060,13 +5411,405 @@
 Landroid/provider/Telephony$Sms;->addMessageToUri(ILandroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZJ)Landroid/net/Uri;
 Landroid/provider/Telephony$Sms;->addMessageToUri(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZ)Landroid/net/Uri;
 Landroid/provider/Telephony$Sms;->addMessageToUri(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZJ)Landroid/net/Uri;
+Landroid/provider/Telephony$Sms;->isOutgoingFolder(I)Z
+Landroid/provider/Telephony$Sms;->moveMessageToFolder(Landroid/content/Context;Landroid/net/Uri;II)Z
+Landroid/provider/Telephony$Sms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/provider/Telephony$Threads;->ID_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Telephony$Threads;->THREAD_ID_CONTENT_URI:Landroid/net/Uri;
+Landroid/R$styleable;->ActionBar:[I
+Landroid/R$styleable;->ActionBar_background:I
+Landroid/R$styleable;->ActionBar_backgroundSplit:I
+Landroid/R$styleable;->ActionBar_backgroundStacked:I
+Landroid/R$styleable;->ActionBar_divider:I
+Landroid/R$styleable;->ActionBar_itemPadding:I
+Landroid/R$styleable;->CalendarView:[I
+Landroid/R$styleable;->CalendarView_dateTextAppearance:I
+Landroid/R$styleable;->CalendarView_firstDayOfWeek:I
+Landroid/R$styleable;->CalendarView_focusedMonthDateColor:I
+Landroid/R$styleable;->CalendarView_selectedDateVerticalBar:I
+Landroid/R$styleable;->CalendarView_selectedWeekBackgroundColor:I
+Landroid/R$styleable;->CalendarView_shownWeekCount:I
+Landroid/R$styleable;->CalendarView_showWeekNumber:I
+Landroid/R$styleable;->CalendarView_unfocusedMonthDateColor:I
+Landroid/R$styleable;->CalendarView_weekDayTextAppearance:I
+Landroid/R$styleable;->CalendarView_weekNumberColor:I
+Landroid/R$styleable;->CalendarView_weekSeparatorLineColor:I
+Landroid/R$styleable;->CheckBoxPreference:[I
+Landroid/R$styleable;->CheckedTextView:[I
+Landroid/R$styleable;->CheckedTextView_checkMark:I
+Landroid/R$styleable;->CompoundButton:[I
+Landroid/R$styleable;->CompoundButton_button:I
+Landroid/R$styleable;->ContactsDataKind:[I
+Landroid/R$styleable;->DatePicker:[I
+Landroid/R$styleable;->DialogPreference:[I
+Landroid/R$styleable;->DrawableStates:[I
+Landroid/R$styleable;->ExpandableListView:[I
+Landroid/R$styleable;->FrameLayout_Layout:[I
+Landroid/R$styleable;->HorizontalScrollView:[I
+Landroid/R$styleable;->ImageView:[I
+Landroid/R$styleable;->ImageView_adjustViewBounds:I
+Landroid/R$styleable;->ImageView_baselineAlignBottom:I
+Landroid/R$styleable;->ImageView_cropToPadding:I
+Landroid/R$styleable;->ImageView_maxHeight:I
+Landroid/R$styleable;->ImageView_maxWidth:I
+Landroid/R$styleable;->ImageView_scaleType:I
+Landroid/R$styleable;->ImageView_src:I
+Landroid/R$styleable;->ImageView_tint:I
+Landroid/R$styleable;->Keyboard:[I
+Landroid/R$styleable;->Keyboard_horizontalGap:I
+Landroid/R$styleable;->Keyboard_Key:[I
+Landroid/R$styleable;->Keyboard_keyHeight:I
+Landroid/R$styleable;->Keyboard_keyWidth:I
+Landroid/R$styleable;->Keyboard_Key_codes:I
+Landroid/R$styleable;->Keyboard_Key_iconPreview:I
+Landroid/R$styleable;->Keyboard_Key_isModifier:I
+Landroid/R$styleable;->Keyboard_Key_isRepeatable:I
+Landroid/R$styleable;->Keyboard_Key_isSticky:I
+Landroid/R$styleable;->Keyboard_Key_keyEdgeFlags:I
+Landroid/R$styleable;->Keyboard_Key_keyIcon:I
+Landroid/R$styleable;->Keyboard_Key_keyLabel:I
+Landroid/R$styleable;->Keyboard_Key_keyOutputText:I
+Landroid/R$styleable;->Keyboard_Key_popupCharacters:I
+Landroid/R$styleable;->Keyboard_Key_popupKeyboard:I
+Landroid/R$styleable;->Keyboard_Row:[I
+Landroid/R$styleable;->Keyboard_Row_keyboardMode:I
+Landroid/R$styleable;->Keyboard_Row_rowEdgeFlags:I
+Landroid/R$styleable;->Keyboard_verticalGap:I
+Landroid/R$styleable;->LinearLayout:[I
+Landroid/R$styleable;->LinearLayout_baselineAligned:I
+Landroid/R$styleable;->LinearLayout_baselineAlignedChildIndex:I
+Landroid/R$styleable;->LinearLayout_divider:I
+Landroid/R$styleable;->LinearLayout_dividerPadding:I
+Landroid/R$styleable;->LinearLayout_gravity:I
+Landroid/R$styleable;->LinearLayout_Layout:[I
+Landroid/R$styleable;->LinearLayout_Layout_layout_gravity:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_height:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_weight:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_width:I
+Landroid/R$styleable;->LinearLayout_measureWithLargestChild:I
+Landroid/R$styleable;->LinearLayout_orientation:I
+Landroid/R$styleable;->LinearLayout_showDividers:I
+Landroid/R$styleable;->ListView:[I
+Landroid/R$styleable;->ListView_divider:I
+Landroid/R$styleable;->ListView_dividerHeight:I
+Landroid/R$styleable;->LockPatternView:[I
+Landroid/R$styleable;->NumberPicker:[I
+Landroid/R$styleable;->NumberPicker_solidColor:I
+Landroid/R$styleable;->PopupWindow:[I
+Landroid/R$styleable;->ProgressBar:[I
+Landroid/R$styleable;->ProgressBar_indeterminateDrawable:I
+Landroid/R$styleable;->ProgressBar_indeterminateDuration:I
+Landroid/R$styleable;->ProgressBar_maxHeight:I
+Landroid/R$styleable;->ProgressBar_maxWidth:I
+Landroid/R$styleable;->ProgressBar_minHeight:I
+Landroid/R$styleable;->ProgressBar_minWidth:I
+Landroid/R$styleable;->ProgressBar_progressDrawable:I
+Landroid/R$styleable;->RingtonePreference:[I
+Landroid/R$styleable;->ScrollView:[I
+Landroid/R$styleable;->SearchView:[I
+Landroid/R$styleable;->SeekBar:[I
+Landroid/R$styleable;->SeekBar_thumb:I
+Landroid/R$styleable;->SeekBar_thumbOffset:I
+Landroid/R$styleable;->SlidingDrawer:[I
+Landroid/R$styleable;->SlidingDrawer_allowSingleTap:I
+Landroid/R$styleable;->SlidingDrawer_animateOnClick:I
+Landroid/R$styleable;->SlidingDrawer_bottomOffset:I
+Landroid/R$styleable;->SlidingDrawer_content:I
+Landroid/R$styleable;->SlidingDrawer_handle:I
+Landroid/R$styleable;->SlidingDrawer_orientation:I
+Landroid/R$styleable;->SlidingDrawer_topOffset:I
+Landroid/R$styleable;->Switch:[I
+Landroid/R$styleable;->Switch_showText:I
+Landroid/R$styleable;->Switch_splitTrack:I
+Landroid/R$styleable;->Switch_switchMinWidth:I
+Landroid/R$styleable;->Switch_switchPadding:I
+Landroid/R$styleable;->Switch_switchTextAppearance:I
+Landroid/R$styleable;->Switch_textOff:I
+Landroid/R$styleable;->Switch_textOn:I
+Landroid/R$styleable;->Switch_thumb:I
+Landroid/R$styleable;->Switch_thumbTextPadding:I
+Landroid/R$styleable;->Switch_track:I
+Landroid/R$styleable;->TextAppearance:[I
+Landroid/R$styleable;->TextAppearance_textAllCaps:I
+Landroid/R$styleable;->TextAppearance_textColor:I
+Landroid/R$styleable;->TextAppearance_textColorHighlight:I
+Landroid/R$styleable;->TextAppearance_textColorHint:I
+Landroid/R$styleable;->TextAppearance_textColorLink:I
+Landroid/R$styleable;->TextAppearance_textSize:I
+Landroid/R$styleable;->TextAppearance_textStyle:I
+Landroid/R$styleable;->TextAppearance_typeface:I
+Landroid/R$styleable;->TextView:[I
+Landroid/R$styleable;->TextView_autoLink:I
+Landroid/R$styleable;->TextView_autoText:I
+Landroid/R$styleable;->TextView_bufferType:I
+Landroid/R$styleable;->TextView_capitalize:I
+Landroid/R$styleable;->TextView_cursorVisible:I
+Landroid/R$styleable;->TextView_digits:I
+Landroid/R$styleable;->TextView_drawableBottom:I
+Landroid/R$styleable;->TextView_drawableEnd:I
+Landroid/R$styleable;->TextView_drawableLeft:I
+Landroid/R$styleable;->TextView_drawablePadding:I
+Landroid/R$styleable;->TextView_drawableRight:I
+Landroid/R$styleable;->TextView_drawableStart:I
+Landroid/R$styleable;->TextView_drawableTop:I
+Landroid/R$styleable;->TextView_editable:I
+Landroid/R$styleable;->TextView_ellipsize:I
+Landroid/R$styleable;->TextView_ems:I
+Landroid/R$styleable;->TextView_enabled:I
+Landroid/R$styleable;->TextView_freezesText:I
+Landroid/R$styleable;->TextView_gravity:I
+Landroid/R$styleable;->TextView_height:I
+Landroid/R$styleable;->TextView_hint:I
+Landroid/R$styleable;->TextView_imeActionId:I
+Landroid/R$styleable;->TextView_imeActionLabel:I
+Landroid/R$styleable;->TextView_imeOptions:I
+Landroid/R$styleable;->TextView_includeFontPadding:I
+Landroid/R$styleable;->TextView_inputMethod:I
+Landroid/R$styleable;->TextView_inputType:I
+Landroid/R$styleable;->TextView_lines:I
+Landroid/R$styleable;->TextView_lineSpacingExtra:I
+Landroid/R$styleable;->TextView_lineSpacingMultiplier:I
+Landroid/R$styleable;->TextView_linksClickable:I
+Landroid/R$styleable;->TextView_marqueeRepeatLimit:I
+Landroid/R$styleable;->TextView_maxEms:I
+Landroid/R$styleable;->TextView_maxHeight:I
+Landroid/R$styleable;->TextView_maxLength:I
+Landroid/R$styleable;->TextView_maxLines:I
+Landroid/R$styleable;->TextView_maxWidth:I
+Landroid/R$styleable;->TextView_minEms:I
+Landroid/R$styleable;->TextView_minHeight:I
+Landroid/R$styleable;->TextView_minLines:I
+Landroid/R$styleable;->TextView_minWidth:I
+Landroid/R$styleable;->TextView_numeric:I
+Landroid/R$styleable;->TextView_password:I
+Landroid/R$styleable;->TextView_phoneNumber:I
+Landroid/R$styleable;->TextView_privateImeOptions:I
+Landroid/R$styleable;->TextView_scrollHorizontally:I
+Landroid/R$styleable;->TextView_selectAllOnFocus:I
+Landroid/R$styleable;->TextView_shadowColor:I
+Landroid/R$styleable;->TextView_shadowDx:I
+Landroid/R$styleable;->TextView_shadowDy:I
+Landroid/R$styleable;->TextView_shadowRadius:I
+Landroid/R$styleable;->TextView_singleLine:I
+Landroid/R$styleable;->TextView_text:I
+Landroid/R$styleable;->TextView_textAllCaps:I
+Landroid/R$styleable;->TextView_textAppearance:I
+Landroid/R$styleable;->TextView_textColor:I
+Landroid/R$styleable;->TextView_textColorHighlight:I
+Landroid/R$styleable;->TextView_textColorHint:I
+Landroid/R$styleable;->TextView_textColorLink:I
+Landroid/R$styleable;->TextView_textCursorDrawable:I
+Landroid/R$styleable;->TextView_textIsSelectable:I
+Landroid/R$styleable;->TextView_textScaleX:I
+Landroid/R$styleable;->TextView_textSelectHandle:I
+Landroid/R$styleable;->TextView_textSelectHandleLeft:I
+Landroid/R$styleable;->TextView_textSelectHandleRight:I
+Landroid/R$styleable;->TextView_textSize:I
+Landroid/R$styleable;->TextView_textStyle:I
+Landroid/R$styleable;->TextView_typeface:I
+Landroid/R$styleable;->TextView_width:I
+Landroid/R$styleable;->Theme:[I
+Landroid/R$styleable;->View:[I
+Landroid/R$styleable;->ViewDrawableStates:[I
+Landroid/R$styleable;->ViewGroup_Layout:[I
+Landroid/R$styleable;->ViewGroup_Layout_layout_height:I
+Landroid/R$styleable;->ViewGroup_Layout_layout_width:I
+Landroid/R$styleable;->ViewGroup_MarginLayout:[I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_height:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_margin:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginBottom:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginLeft:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginRight:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginTop:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_width:I
+Landroid/R$styleable;->View_alpha:I
+Landroid/R$styleable;->View_background:I
+Landroid/R$styleable;->View_clickable:I
+Landroid/R$styleable;->View_contentDescription:I
+Landroid/R$styleable;->View_drawingCacheQuality:I
+Landroid/R$styleable;->View_duplicateParentState:I
+Landroid/R$styleable;->View_fadingEdge:I
+Landroid/R$styleable;->View_filterTouchesWhenObscured:I
+Landroid/R$styleable;->View_fitsSystemWindows:I
+Landroid/R$styleable;->View_focusable:I
+Landroid/R$styleable;->View_focusableInTouchMode:I
+Landroid/R$styleable;->View_hapticFeedbackEnabled:I
+Landroid/R$styleable;->View_id:I
+Landroid/R$styleable;->View_isScrollContainer:I
+Landroid/R$styleable;->View_keepScreenOn:I
+Landroid/R$styleable;->View_longClickable:I
+Landroid/R$styleable;->View_minHeight:I
+Landroid/R$styleable;->View_minWidth:I
+Landroid/R$styleable;->View_nextFocusDown:I
+Landroid/R$styleable;->View_nextFocusLeft:I
+Landroid/R$styleable;->View_nextFocusRight:I
+Landroid/R$styleable;->View_nextFocusUp:I
+Landroid/R$styleable;->View_onClick:I
+Landroid/R$styleable;->View_overScrollMode:I
+Landroid/R$styleable;->View_padding:I
+Landroid/R$styleable;->View_paddingBottom:I
+Landroid/R$styleable;->View_paddingEnd:I
+Landroid/R$styleable;->View_paddingLeft:I
+Landroid/R$styleable;->View_paddingRight:I
+Landroid/R$styleable;->View_paddingStart:I
+Landroid/R$styleable;->View_paddingTop:I
+Landroid/R$styleable;->View_rotation:I
+Landroid/R$styleable;->View_rotationX:I
+Landroid/R$styleable;->View_rotationY:I
+Landroid/R$styleable;->View_saveEnabled:I
+Landroid/R$styleable;->View_scaleX:I
+Landroid/R$styleable;->View_scaleY:I
+Landroid/R$styleable;->View_scrollbarDefaultDelayBeforeFade:I
+Landroid/R$styleable;->View_scrollbarFadeDuration:I
+Landroid/R$styleable;->View_scrollbars:I
+Landroid/R$styleable;->View_scrollbarSize:I
+Landroid/R$styleable;->View_scrollbarStyle:I
+Landroid/R$styleable;->View_scrollbarThumbHorizontal:I
+Landroid/R$styleable;->View_scrollbarThumbVertical:I
+Landroid/R$styleable;->View_scrollbarTrackHorizontal:I
+Landroid/R$styleable;->View_scrollbarTrackVertical:I
+Landroid/R$styleable;->View_scrollX:I
+Landroid/R$styleable;->View_scrollY:I
+Landroid/R$styleable;->View_soundEffectsEnabled:I
+Landroid/R$styleable;->View_tag:I
+Landroid/R$styleable;->View_transformPivotX:I
+Landroid/R$styleable;->View_transformPivotY:I
+Landroid/R$styleable;->View_translationX:I
+Landroid/R$styleable;->View_translationY:I
+Landroid/R$styleable;->View_visibility:I
+Landroid/R$styleable;->Window:[I
+Landroid/R$styleable;->Window_windowBackground:I
+Landroid/R$styleable;->Window_windowFrame:I
+Landroid/renderscript/BaseObj;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/Element;->createUser(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;)Landroid/renderscript/Element;
+Landroid/renderscript/FileA3D$EntryType;->MESH:Landroid/renderscript/FileA3D$EntryType;
+Landroid/renderscript/FileA3D$IndexEntry;->getEntryType()Landroid/renderscript/FileA3D$EntryType;
+Landroid/renderscript/FileA3D$IndexEntry;->getObject()Landroid/renderscript/BaseObj;
+Landroid/renderscript/FileA3D;->createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)Landroid/renderscript/FileA3D;
+Landroid/renderscript/FileA3D;->getIndexEntry(I)Landroid/renderscript/FileA3D$IndexEntry;
+Landroid/renderscript/Font$Style;->ITALIC:Landroid/renderscript/Font$Style;
+Landroid/renderscript/Font;->create(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;Landroid/renderscript/Font$Style;F)Landroid/renderscript/Font;
+Landroid/renderscript/Matrix4f;->mMat:[F
+Landroid/renderscript/Mesh$AllocationBuilder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/Mesh$AllocationBuilder;->addIndexSetAllocation(Landroid/renderscript/Allocation;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;
+Landroid/renderscript/Mesh$AllocationBuilder;->addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;
+Landroid/renderscript/Mesh$AllocationBuilder;->addVertexAllocation(Landroid/renderscript/Allocation;)Landroid/renderscript/Mesh$AllocationBuilder;
+Landroid/renderscript/Mesh$AllocationBuilder;->create()Landroid/renderscript/Mesh;
+Landroid/renderscript/Mesh$Primitive;->POINT:Landroid/renderscript/Mesh$Primitive;
+Landroid/renderscript/Mesh$Primitive;->TRIANGLE:Landroid/renderscript/Mesh$Primitive;
+Landroid/renderscript/Mesh$TriangleMeshBuilder;-><init>(Landroid/renderscript/RenderScript;II)V
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->addTriangle(III)Landroid/renderscript/Mesh$TriangleMeshBuilder;
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->addVertex(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->create(Z)Landroid/renderscript/Mesh;
+Landroid/renderscript/Mesh;->getVertexAllocation(I)Landroid/renderscript/Allocation;
+Landroid/renderscript/Program$BaseProgramBuilder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/Program$BaseProgramBuilder;->mConstantCount:I
+Landroid/renderscript/Program$BaseProgramBuilder;->mConstants:[Landroid/renderscript/Type;
+Landroid/renderscript/Program$BaseProgramBuilder;->mInputCount:I
+Landroid/renderscript/Program$BaseProgramBuilder;->mInputs:[Landroid/renderscript/Element;
+Landroid/renderscript/Program$BaseProgramBuilder;->mOutputCount:I
+Landroid/renderscript/Program$BaseProgramBuilder;->mOutputs:[Landroid/renderscript/Element;
+Landroid/renderscript/Program$BaseProgramBuilder;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/Program$BaseProgramBuilder;->mShader:Ljava/lang/String;
+Landroid/renderscript/Program$BaseProgramBuilder;->mTextureCount:I
+Landroid/renderscript/Program$TextureType;->TEXTURE_2D:Landroid/renderscript/Program$TextureType;
+Landroid/renderscript/ProgramFragment$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramFragment$Builder;->create()Landroid/renderscript/ProgramFragment;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->MODULATE:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->REPLACE:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->ALPHA:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->RGB:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->RGBA:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->create()Landroid/renderscript/ProgramFragmentFixedFunction;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->setTexture(Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;I)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->setVaryingColor(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;
+Landroid/renderscript/ProgramRaster$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramRaster$Builder;->create()Landroid/renderscript/ProgramRaster;
+Landroid/renderscript/ProgramRaster$Builder;->setPointSpriteEnabled(Z)Landroid/renderscript/ProgramRaster$Builder;
+Landroid/renderscript/ProgramStore$BlendDstFunc;->ONE:Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore$BlendDstFunc;->ONE_MINUS_SRC_ALPHA:Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore$BlendDstFunc;->ZERO:Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->ONE:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->SRC_ALPHA:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramStore$Builder;->create()Landroid/renderscript/ProgramStore;
+Landroid/renderscript/ProgramStore$Builder;->setBlendFunc(Landroid/renderscript/ProgramStore$BlendSrcFunc;Landroid/renderscript/ProgramStore$BlendDstFunc;)Landroid/renderscript/ProgramStore$Builder;
+Landroid/renderscript/ProgramStore$Builder;->setDepthFunc(Landroid/renderscript/ProgramStore$DepthFunc;)Landroid/renderscript/ProgramStore$Builder;
+Landroid/renderscript/ProgramStore$Builder;->setDepthMaskEnabled(Z)Landroid/renderscript/ProgramStore$Builder;
+Landroid/renderscript/ProgramStore$Builder;->setDitherEnabled(Z)Landroid/renderscript/ProgramStore$Builder;
+Landroid/renderscript/ProgramStore$DepthFunc;->ALWAYS:Landroid/renderscript/ProgramStore$DepthFunc;
+Landroid/renderscript/ProgramStore$DepthFunc;->LESS:Landroid/renderscript/ProgramStore$DepthFunc;
+Landroid/renderscript/ProgramStore;->BLEND_ALPHA_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;
+Landroid/renderscript/ProgramVertex$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramVertex$Builder;->addInput(Landroid/renderscript/Element;)Landroid/renderscript/ProgramVertex$Builder;
+Landroid/renderscript/ProgramVertex$Builder;->create()Landroid/renderscript/ProgramVertex;
+Landroid/renderscript/ProgramVertexFixedFunction$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramVertexFixedFunction$Builder;->create()Landroid/renderscript/ProgramVertexFixedFunction;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->setProjection(Landroid/renderscript/Matrix4f;)V
+Landroid/renderscript/ProgramVertexFixedFunction;->bindConstants(Landroid/renderscript/ProgramVertexFixedFunction$Constants;)V
 Landroid/renderscript/RenderScript;->create(Landroid/content/Context;I)Landroid/renderscript/RenderScript;
 Landroid/renderscript/RenderScript;->create(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
 Landroid/renderscript/RenderScript;->getMinorID()J
+Landroid/renderscript/RenderScript;->mMessageCallback:Landroid/renderscript/RenderScript$RSMessageHandler;
+Landroid/renderscript/RenderScript;->nScriptCCreate(Ljava/lang/String;Ljava/lang/String;[BI)J
+Landroid/renderscript/RenderScript;->sPointerSize:I
+Landroid/renderscript/RenderScript;->validate()V
 Landroid/renderscript/RenderScriptCacheDir;->mCacheDir:Ljava/io/File;
 Landroid/renderscript/RenderScriptCacheDir;->setupDiskCache(Ljava/io/File;)V
-Landroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;-><init>()V
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->setDepth(II)V
+Landroid/renderscript/RenderScriptGL;-><init>(Landroid/content/Context;Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V
+Landroid/renderscript/RenderScriptGL;->bindProgramRaster(Landroid/renderscript/ProgramRaster;)V
+Landroid/renderscript/RenderScriptGL;->bindProgramStore(Landroid/renderscript/ProgramStore;)V
+Landroid/renderscript/RenderScriptGL;->bindProgramVertex(Landroid/renderscript/ProgramVertex;)V
+Landroid/renderscript/RenderScriptGL;->bindRootScript(Landroid/renderscript/Script;)V
+Landroid/renderscript/RenderScriptGL;->setSurface(Landroid/view/SurfaceHolder;II)V
+Landroid/renderscript/RSSurfaceView;-><init>(Landroid/content/Context;)V
+Landroid/renderscript/RSSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/renderscript/Script$Builder;-><init>(Landroid/renderscript/RenderScript;)V
+Landroid/renderscript/Script$Builder;->mRS:Landroid/renderscript/RenderScript;
+Landroid/security/Credentials;->convertToPem([[Ljava/security/cert/Certificate;)[B
+Landroid/security/Credentials;->getInstance()Landroid/security/Credentials;
+Landroid/security/Credentials;->install(Landroid/content/Context;Ljava/lang/String;[B)V
+Landroid/security/Credentials;->install(Landroid/content/Context;Ljava/security/KeyPair;)V
+Landroid/security/Credentials;->unlock(Landroid/content/Context;)V
+Landroid/security/GateKeeper;->getSecureUserId()J
+Landroid/security/IKeyChainService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainService;
+Landroid/security/IKeyChainService;->requestPrivateKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/security/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeystoreService;
+Landroid/security/IKeystoreService;->clear_uid(J)I
+Landroid/security/IKeystoreService;->del(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService;->exist(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService;->get(Ljava/lang/String;I)[B
+Landroid/security/IKeystoreService;->getState(I)I
+Landroid/security/IKeystoreService;->get_pubkey(Ljava/lang/String;)[B
+Landroid/security/IKeystoreService;->import_key(Ljava/lang/String;[BII)I
+Landroid/security/IKeystoreService;->insert(Ljava/lang/String;[BII)I
+Landroid/security/IKeystoreService;->is_hardware_backed(Ljava/lang/String;)I
+Landroid/security/IKeystoreService;->list(Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/security/IKeystoreService;->reset()I
+Landroid/security/IKeystoreService;->sign(Ljava/lang/String;[B)[B
+Landroid/security/IKeystoreService;->ungrant(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService;->verify(Ljava/lang/String;[B[B)I
+Landroid/security/keymaster/ExportResult;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/keymaster/KeyCharacteristics;-><init>()V
+Landroid/security/keymaster/KeyCharacteristics;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/security/keymaster/KeymasterArguments;-><init>()V
+Landroid/security/keymaster/KeymasterArguments;->addEnum(II)V
+Landroid/security/keymaster/KeymasterArguments;->addUnsignedInt(IJ)V
+Landroid/security/keymaster/KeymasterArguments;->addUnsignedLong(ILjava/math/BigInteger;)V
+Landroid/security/keymaster/KeymasterArguments;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/keymaster/KeymasterArguments;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/security/keymaster/KeymasterBlob;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/keymaster/OperationResult;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/KeyStore$State;->LOCKED:Landroid/security/KeyStore$State;
+Landroid/security/KeyStore$State;->UNLOCKED:Landroid/security/KeyStore$State;
 Landroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreOperationHandle(Ljava/lang/Object;)J
+Landroid/security/keystore/KeyGenParameterSpec;->getUid()I
+Landroid/security/keystore/KeyGenParameterSpec;->isUniqueIdIncluded()Z
 Landroid/security/keystore/recovery/KeyChainSnapshot;->getTrustedHardwarePublicKey()[B
 Landroid/security/keystore/recovery/RecoveryController;->generateAndStoreKey(Ljava/lang/String;[B)[B
 Landroid/security/keystore/recovery/RecoveryController;->generateKey(Ljava/lang/String;[B)Ljava/security/Key;
@@ -3080,14 +5823,51 @@
 Landroid/security/keystore/recovery/RecoverySession;->start([B[B[BLjava/util/List;)[B
 Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setAccount([B)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
 Landroid/security/keystore/recovery/WrappedApplicationKey;->getAccount()[B
+Landroid/security/KeyStore;->delete(Ljava/lang/String;)Z
+Landroid/security/KeyStore;->get(Ljava/lang/String;)[B
+Landroid/security/KeyStore;->getApplicationContext()Landroid/content/Context;
+Landroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
+Landroid/security/KeyStore;->getKeyStoreException(I)Landroid/security/KeyStoreException;
+Landroid/security/KeyStore;->isEmpty()Z
+Landroid/security/KeyStore;->NO_ERROR:I
+Landroid/security/KeyStore;->reset()Z
+Landroid/security/KeyStore;->state()Landroid/security/KeyStore$State;
+Landroid/security/KeyStore;->state(I)Landroid/security/KeyStore$State;
+Landroid/security/KeyStore;->unlock(Ljava/lang/String;)Z
+Landroid/security/KeystoreArguments;-><init>([[B)V
+Landroid/security/KeystoreArguments;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Landroid/service/carrier/ICarrierMessagingCallback$Stub;-><init>()V
+Landroid/service/carrier/ICarrierMessagingService;->filterSms(Landroid/service/carrier/MessagePdu;Ljava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/dreams/DreamService;->canDoze()Z
+Landroid/service/dreams/DreamService;->getDozeScreenBrightness()I
 Landroid/service/dreams/DreamService;->isDozing()Z
+Landroid/service/dreams/DreamService;->setDozeScreenBrightness(I)V
+Landroid/service/dreams/DreamService;->setDozeScreenState(I)V
+Landroid/service/dreams/DreamService;->setWindowless(Z)V
 Landroid/service/dreams/DreamService;->startDozing()V
 Landroid/service/dreams/DreamService;->stopDozing()V
+Landroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
+Landroid/service/dreams/IDreamManager;->awaken()V
+Landroid/service/dreams/IDreamManager;->dream()V
+Landroid/service/dreams/IDreamManager;->getDreamComponents()[Landroid/content/ComponentName;
+Landroid/service/dreams/IDreamManager;->isDreaming()Z
+Landroid/service/dreams/IDreamManager;->setDreamComponents([Landroid/content/ComponentName;)V
 Landroid/service/euicc/EuiccProfileInfo;-><init>(Ljava/lang/String;[Landroid/telephony/UiccAccessRule;Ljava/lang/String;)V
 Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;->result:I
 Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;->result:I
+Landroid/service/euicc/IDeleteSubscriptionCallback;->onComplete(I)V
+Landroid/service/euicc/IDownloadSubscriptionCallback;->onComplete(I)V
+Landroid/service/euicc/IEraseSubscriptionsCallback;->onComplete(I)V
+Landroid/service/euicc/IEuiccService$Stub;-><init>()V
+Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;->onComplete(Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;)V
+Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;->onComplete(Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;)V
+Landroid/service/euicc/IGetEidCallback;->onSuccess(Ljava/lang/String;)V
+Landroid/service/euicc/IGetEuiccInfoCallback;->onSuccess(Landroid/telephony/euicc/EuiccInfo;)V
+Landroid/service/euicc/IGetEuiccProfileInfoListCallback;->onComplete(Landroid/service/euicc/GetEuiccProfileInfoListResult;)V
+Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;->onComplete(I)V
+Landroid/service/euicc/ISwitchToSubscriptionCallback;->onComplete(I)V
+Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;->onComplete(I)V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks;
 Landroid/service/media/IMediaBrowserServiceCallbacks;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
 Landroid/service/media/IMediaBrowserServiceCallbacks;->onConnectFailed()V
@@ -3095,27 +5875,79 @@
 Landroid/service/media/IMediaBrowserServiceCallbacks;->onLoadChildrenWithOptions(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/os/Bundle;)V
 Landroid/service/media/MediaBrowserService$Result;->mFlags:I
 Landroid/service/media/MediaBrowserService;->KEY_MEDIA_ITEM:Ljava/lang/String;
+Landroid/service/notification/INotificationListener$Stub;-><init>()V
 Landroid/service/notification/NotificationListenerService$Ranking;->getAdditionalPeople()Ljava/util/List;
 Landroid/service/notification/NotificationListenerService$Ranking;->getSnoozeCriteria()Ljava/util/List;
-Landroid/service/notification/NotificationListenerService;->TRIM_FULL:I
-Landroid/service/notification/NotificationListenerService;->TRIM_LIGHT:I
+Landroid/service/notification/NotificationListenerService$Ranking;->getVisibilityOverride()I
 Landroid/service/notification/NotificationListenerService;->getActiveNotifications(I)[Landroid/service/notification/StatusBarNotification;
 Landroid/service/notification/NotificationListenerService;->getActiveNotifications([Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
+Landroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager;
 Landroid/service/notification/NotificationListenerService;->isBound()Z
 Landroid/service/notification/NotificationListenerService;->mHandler:Landroid/os/Handler;
+Landroid/service/notification/NotificationListenerService;->mNoMan:Landroid/app/INotificationManager;
+Landroid/service/notification/NotificationListenerService;->mWrapper:Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;
 Landroid/service/notification/NotificationListenerService;->registerAsSystemService(Landroid/content/Context;Landroid/content/ComponentName;I)V
 Landroid/service/notification/NotificationListenerService;->setOnNotificationPostedTrim(I)V
 Landroid/service/notification/NotificationListenerService;->snoozeNotification(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/service/notification/NotificationListenerService;->TAG:Ljava/lang/String;
+Landroid/service/notification/NotificationListenerService;->TRIM_FULL:I
+Landroid/service/notification/NotificationListenerService;->TRIM_LIGHT:I
 Landroid/service/notification/NotificationListenerService;->unregisterAsSystemService()V
 Landroid/service/notification/StatusBarNotification;->getInitialPid()I
+Landroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context;
 Landroid/service/notification/StatusBarNotification;->getUid()I
+Landroid/service/notification/StatusBarNotification;->id:I
+Landroid/service/notification/StatusBarNotification;->initialPid:I
+Landroid/service/notification/StatusBarNotification;->notification:Landroid/app/Notification;
+Landroid/service/notification/StatusBarNotification;->pkg:Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->postTime:J
+Landroid/service/notification/StatusBarNotification;->tag:Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->uid:I
+Landroid/service/notification/StatusBarNotification;->user:Landroid/os/UserHandle;
+Landroid/service/notification/ZenModeConfig$ScheduleInfo;->days:[I
+Landroid/service/notification/ZenModeConfig$ScheduleInfo;->endHour:I
+Landroid/service/notification/ZenModeConfig$ScheduleInfo;->endMinute:I
+Landroid/service/notification/ZenModeConfig$ScheduleInfo;->startHour:I
+Landroid/service/notification/ZenModeConfig$ScheduleInfo;->startMinute:I
+Landroid/service/notification/ZenModeConfig$ZenRule;->conditionId:Landroid/net/Uri;
+Landroid/service/notification/ZenModeConfig$ZenRule;->creationTime:J
+Landroid/service/notification/ZenModeConfig$ZenRule;->enabled:Z
+Landroid/service/notification/ZenModeConfig$ZenRule;->name:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig$ZenRule;->snoozing:Z
+Landroid/service/notification/ZenModeConfig$ZenRule;->zenMode:I
+Landroid/service/notification/ZenModeConfig;-><init>()V
+Landroid/service/notification/ZenModeConfig;->allowAlarms:Z
+Landroid/service/notification/ZenModeConfig;->automaticRules:Landroid/util/ArrayMap;
+Landroid/service/notification/ZenModeConfig;->tryParseScheduleConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$ScheduleInfo;
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/persistentdata/IPersistentDataBlockService;
 Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->getCaptureSession()Ljava/lang/Integer;
 Landroid/service/voice/VoiceInteractionService;->isKeyphraseAndLocaleSupportedForHotword(Ljava/lang/String;Ljava/util/Locale;)Z
+Landroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
 Landroid/service/vr/IVrManager;->getVr2dDisplayId()I
+Landroid/service/vr/IVrManager;->getVrModeState()Z
 Landroid/service/vr/VrListenerService;->onCurrentVrActivityChanged(Landroid/content/ComponentName;ZI)V
+Landroid/service/wallpaper/IWallpaperConnection$Stub;-><init>()V
+Landroid/service/wallpaper/IWallpaperEngine;->destroy()V
+Landroid/service/wallpaper/IWallpaperEngine;->dispatchPointer(Landroid/view/MotionEvent;)V
+Landroid/service/wallpaper/IWallpaperEngine;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;)V
+Landroid/service/wallpaper/IWallpaperEngine;->setDesiredSize(II)V
+Landroid/service/wallpaper/IWallpaperEngine;->setVisibility(Z)V
+Landroid/service/wallpaper/IWallpaperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperService;
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingXOffset:F
 Landroid/service/wallpaper/WallpaperService$Engine;->setFixedSizeAllowed(Z)V
+Landroid/service/wallpaper/WallpaperService;->MSG_WINDOW_RESIZED:I
 Landroid/speech/tts/TextToSpeech;->getCurrentEngine()Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech;->mConnectingServiceConnection:Landroid/speech/tts/TextToSpeech$Connection;
+Landroid/speech/tts/TextToSpeech;->mCurrentEngine:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech;->mInitListener:Landroid/speech/tts/TextToSpeech$OnInitListener;
+Landroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V
+Landroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List;
+Landroid/speech/tts/TtsEngines;->getLocalePrefForEngine(Ljava/lang/String;)Ljava/util/Locale;
+Landroid/speech/tts/TtsEngines;->getSettingsIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/speech/tts/TtsEngines;->normalizeTTSLocale(Ljava/util/Locale;)Ljava/util/Locale;
+Landroid/speech/tts/TtsEngines;->parseLocaleString(Ljava/lang/String;)Ljava/util/Locale;
+Landroid/speech/tts/TtsEngines;->updateLocalePrefForEngine(Ljava/lang/String;Ljava/util/Locale;)V
 Landroid/speech/tts/UtteranceProgressListener;->onUtteranceRangeStart(Ljava/lang/String;II)V
 Landroid/system/Int32Ref;->value:I
 Landroid/system/NetlinkSocketAddress;-><init>(II)V
@@ -3141,12 +5973,14 @@
 Landroid/system/OsConstants;->ICMP6_ECHO_REQUEST:I
 Landroid/system/OsConstants;->ICMP_ECHO:I
 Landroid/system/OsConstants;->ICMP_ECHOREPLY:I
+Landroid/system/OsConstants;->initConstants()V
 Landroid/system/OsConstants;->IP_MULTICAST_ALL:I
 Landroid/system/OsConstants;->IP_RECVTOS:I
 Landroid/system/OsConstants;->MAP_POPULATE:I
 Landroid/system/OsConstants;->NETLINK_NETFILTER:I
 Landroid/system/OsConstants;->NETLINK_ROUTE:I
 Landroid/system/OsConstants;->O_DIRECT:I
+Landroid/system/OsConstants;->placeholder()I
 Landroid/system/OsConstants;->PR_CAP_AMBIENT:I
 Landroid/system/OsConstants;->PR_CAP_AMBIENT_RAISE:I
 Landroid/system/OsConstants;->RLIMIT_NOFILE:I
@@ -3176,25 +6010,89 @@
 Landroid/system/OsConstants;->XATTR_CREATE:I
 Landroid/system/OsConstants;->XATTR_REPLACE:I
 Landroid/system/OsConstants;->_LINUX_CAPABILITY_VERSION_3:I
-Landroid/system/OsConstants;->initConstants()V
-Landroid/system/OsConstants;->placeholder()I
 Landroid/system/PacketSocketAddress;-><init>(I[B)V
 Landroid/system/PacketSocketAddress;-><init>(SI)V
 Landroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval;
 Landroid/telecom/AudioState;->isMuted:Z
+Landroid/telecom/AudioState;->route:I
+Landroid/telecom/AudioState;->supportedRouteMask:I
+Landroid/telecom/Call$Details;->CAPABILITY_CAN_UPGRADE_TO_VIDEO:I
+Landroid/telecom/Connection$VideoProvider;-><init>(Landroid/os/Looper;)V
 Landroid/telecom/ParcelableCall;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telecom/ParcelableCall;->getConnectTimeMillis()J
 Landroid/telecom/ParcelableCall;->getDisconnectCause()Landroid/telecom/DisconnectCause;
 Landroid/telecom/ParcelableCall;->getHandle()Landroid/net/Uri;
 Landroid/telecom/ParcelableCall;->getId()Ljava/lang/String;
+Landroid/telecom/Phone;->setProximitySensorOff(Z)V
+Landroid/telecom/Phone;->setProximitySensorOn()V
+Landroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/PhoneAccountHandle;->mComponentName:Landroid/content/ComponentName;
+Landroid/telecom/PhoneAccountHandle;->mId:Ljava/lang/String;
 Landroid/telecom/TelecomManager;->EXTRA_IS_HANDOVER:Ljava/lang/String;
 Landroid/telecom/TelecomManager;->from(Landroid/content/Context;)Landroid/telecom/TelecomManager;
+Landroid/telecom/TelecomManager;->getCallCapablePhoneAccounts(Z)Ljava/util/List;
+Landroid/telecom/TelecomManager;->getCurrentTtyMode()I
+Landroid/telecom/TelecomManager;->getSimCallManager(I)Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String;
 Landroid/telecom/TelecomManager;->getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/TelecomManager;->setDefaultDialer(Ljava/lang/String;)Z
 Landroid/telecom/TelecomManager;->setUserSelectedOutgoingPhoneAccount(Landroid/telecom/PhoneAccountHandle;)V
+Landroid/telecom/TelecomManager;->TTY_MODE_OFF:I
+Landroid/telecom/VideoCallImpl;->destroy()V
 Landroid/telecom/VideoProfile$CameraCapabilities;-><init>(IIZF)V
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierMessagingServiceManager;-><init>()V
+Landroid/telephony/cdma/CdmaCellLocation;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationId:I
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLatitude:I
+Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLongitude:I
+Landroid/telephony/cdma/CdmaCellLocation;->mNetworkId:I
+Landroid/telephony/cdma/CdmaCellLocation;->mSystemId:I
+Landroid/telephony/CellBroadcastMessage;-><init>(Landroid/telephony/SmsCbMessage;)V
+Landroid/telephony/CellBroadcastMessage;->createFromCursor(Landroid/database/Cursor;)Landroid/telephony/CellBroadcastMessage;
+Landroid/telephony/CellBroadcastMessage;->getContentValues()Landroid/content/ContentValues;
+Landroid/telephony/CellBroadcastMessage;->getDeliveryTime()J
+Landroid/telephony/CellBroadcastMessage;->getEtwsWarningInfo()Landroid/telephony/SmsCbEtwsInfo;
+Landroid/telephony/CellBroadcastMessage;->getLanguageCode()Ljava/lang/String;
+Landroid/telephony/CellBroadcastMessage;->getMessageBody()Ljava/lang/String;
+Landroid/telephony/CellBroadcastMessage;->getSerialNumber()I
+Landroid/telephony/CellBroadcastMessage;->getServiceCategory()I
+Landroid/telephony/CellBroadcastMessage;->getSpokenDateString(Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/CellBroadcastMessage;->isCmasMessage()Z
+Landroid/telephony/CellBroadcastMessage;->isEmergencyAlertMessage()Z
+Landroid/telephony/CellBroadcastMessage;->isEtwsMessage()Z
+Landroid/telephony/CellBroadcastMessage;->isRead()Z
+Landroid/telephony/CellIdentityCdma;-><init>(IIIII)V
+Landroid/telephony/CellIdentityGsm;-><init>()V
+Landroid/telephony/CellIdentityGsm;->mArfcn:I
 Landroid/telephony/CellIdentityGsm;->mBsic:I
+Landroid/telephony/CellIdentityLte;-><init>()V
+Landroid/telephony/CellIdentityLte;-><init>(IIIII)V
+Landroid/telephony/CellIdentityLte;->mEarfcn:I
+Landroid/telephony/CellIdentityWcdma;->mUarfcn:I
+Landroid/telephony/CellInfo;->getTimeStampType()I
+Landroid/telephony/CellInfo;->timeStampTypeToString(I)Ljava/lang/String;
+Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_ANTENNA:I
+Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_JAVA_RIL:I
+Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_MODEM:I
+Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_OEM_RIL:I
+Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_UNKNOWN:I
+Landroid/telephony/CellInfoCdma;-><init>()V
+Landroid/telephony/CellInfoCdma;-><init>(Landroid/telephony/CellInfoCdma;)V
+Landroid/telephony/CellInfoCdma;->setCellIdentity(Landroid/telephony/CellIdentityCdma;)V
+Landroid/telephony/CellInfoGsm;-><init>()V
+Landroid/telephony/CellInfoLte;-><init>()V
+Landroid/telephony/CellInfoLte;->setCellIdentity(Landroid/telephony/CellIdentityLte;)V
+Landroid/telephony/CellInfoLte;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthLte;)V
+Landroid/telephony/CellLocation;->fillInNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/CellLocation;->isEmpty()Z
+Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
+Landroid/telephony/CellSignalStrengthGsm;-><init>()V
 Landroid/telephony/CellSignalStrengthGsm;->mBitErrorRate:I
 Landroid/telephony/CellSignalStrengthGsm;->mSignalStrength:I
+Landroid/telephony/CellSignalStrengthGsm;->mTimingAdvance:I
+Landroid/telephony/CellSignalStrengthLte;-><init>()V
 Landroid/telephony/CellSignalStrengthLte;->mCqi:I
 Landroid/telephony/CellSignalStrengthLte;->mRsrp:I
 Landroid/telephony/CellSignalStrengthLte;->mRsrq:I
@@ -3203,140 +6101,21 @@
 Landroid/telephony/CellSignalStrengthLte;->mTimingAdvance:I
 Landroid/telephony/CellSignalStrengthWcdma;->mBitErrorRate:I
 Landroid/telephony/CellSignalStrengthWcdma;->mSignalStrength:I
-Landroid/telephony/NetworkScan;->stop()V
-Landroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(ILjava/lang/String;)Z
-Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
-Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(ILjava/lang/String;)Z
-Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
-Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;)V
-Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V
-Landroid/telephony/PhoneStateListener;->mSubId:Ljava/lang/Integer;
-Landroid/telephony/PreciseCallState;->getBackgroundCallState()I
-Landroid/telephony/PreciseCallState;->getForegroundCallState()I
-Landroid/telephony/RadioAccessFamily;-><init>(II)V
-Landroid/telephony/RadioAccessFamily;->getRafFromNetworkType(I)I
-Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
-Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/telephony/ServiceState;->bitmaskHasTech(II)Z
-Landroid/telephony/ServiceState;->getDataRegState()I
-Landroid/telephony/ServiceState;->getDataRoaming()Z
-Landroid/telephony/ServiceState;->getRilDataRadioTechnology()I
-Landroid/telephony/ServiceState;->getVoiceNetworkType()I
-Landroid/telephony/ServiceState;->getVoiceRegState()I
-Landroid/telephony/ServiceState;->isCdma(I)Z
-Landroid/telephony/ServiceState;->isEmergencyOnly()Z
-Landroid/telephony/ServiceState;->isGsm(I)Z
-Landroid/telephony/ServiceState;->mergeServiceStates(Landroid/telephony/ServiceState;Landroid/telephony/ServiceState;)Landroid/telephony/ServiceState;
-Landroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState;
-Landroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
-Landroid/telephony/SignalStrength;-><init>()V
-Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GOOD:I
-Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GREAT:I
-Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_MODERATE:I
-Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I
-Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_POOR:I
-Landroid/telephony/SignalStrength;->getAsuLevel()I
-Landroid/telephony/SignalStrength;->getCdmaLevel()I
-Landroid/telephony/SignalStrength;->getDbm()I
-Landroid/telephony/SignalStrength;->getGsmDbm()I
-Landroid/telephony/SignalStrength;->getLteCqi()I
-Landroid/telephony/SignalStrength;->getLteDbm()I
-Landroid/telephony/SignalStrength;->getLteRsrp()I
-Landroid/telephony/SignalStrength;->getLteRsrq()I
-Landroid/telephony/SignalStrength;->getLteRssnr()I
-Landroid/telephony/SignalStrength;->getLteSignalStrength()I
-Landroid/telephony/SignalStrength;->mGsmBitErrorRate:I
-Landroid/telephony/SignalStrength;->mGsmSignalStrength:I
-Landroid/telephony/SignalStrength;->mLteCqi:I
-Landroid/telephony/SignalStrength;->mLteRsrp:I
-Landroid/telephony/SignalStrength;->mLteRsrq:I
-Landroid/telephony/SignalStrength;->mLteRssnr:I
-Landroid/telephony/SignalStrength;->mLteSignalStrength:I
-Landroid/telephony/SmsManager;->sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;IZI)V
-Landroid/telephony/SmsManager;->sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V
-Landroid/telephony/SmsMessage;->getSubId()I
-Landroid/telephony/SmsMessage;->mWrappedSmsMessage:Lcom/android/internal/telephony/SmsMessageBase;
-Landroid/telephony/SubscriptionInfo;->setDisplayName(Ljava/lang/CharSequence;)V
-Landroid/telephony/SubscriptionInfo;->setIconTint(I)V
-Landroid/telephony/SubscriptionManager;->clearDefaultsForInactiveSubIds()V
-Landroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList()[I
-Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoCount()I
-Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoList()Ljava/util/List;
-Landroid/telephony/SubscriptionManager;->getDefaultDataPhoneId()I
-Landroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
-Landroid/telephony/SubscriptionManager;->getDefaultSmsPhoneId()I
-Landroid/telephony/SubscriptionManager;->getDefaultVoicePhoneId()I
-Landroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
-Landroid/telephony/SubscriptionManager;->getPhoneId(I)I
-Landroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources;
-Landroid/telephony/SubscriptionManager;->getSlotIndex(I)I
-Landroid/telephony/SubscriptionManager;->getSubId(I)[I
-Landroid/telephony/SubscriptionManager;->isActiveSubId(I)Z
-Landroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z
-Landroid/telephony/SubscriptionManager;->isValidPhoneId(I)Z
-Landroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z
-Landroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
-Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;I)V
-Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;II)V
-Landroid/telephony/SubscriptionManager;->setDefaultDataSubId(I)V
-Landroid/telephony/SubscriptionManager;->setDefaultSmsSubId(I)V
-Landroid/telephony/SubscriptionManager;->setDisplayName(Ljava/lang/String;IJ)I
-Landroid/telephony/SubscriptionManager;->setIconTint(II)I
-Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDA:Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDS:Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager;-><init>()V
-Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
-Landroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
-Landroid/telephony/TelephonyManager;->getCallState(I)I
-Landroid/telephony/TelephonyManager;->getDataNetworkType(I)I
-Landroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
-Landroid/telephony/TelephonyManager;->getGroupIdLevel1(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
-Landroid/telephony/TelephonyManager;->getIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;I)I
-Landroid/telephony/TelephonyManager;->getIsimDomain()Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager;->getNetworkClass(I)I
-Landroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getNetworkOperator(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getNetworkType(I)I
-Landroid/telephony/TelephonyManager;->getNetworkTypeName()Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getPhoneType(I)I
-Landroid/telephony/TelephonyManager;->getPreferredNetworkType(I)I
-Landroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
-Landroid/telephony/TelephonyManager;->getSimCount()I
-Landroid/telephony/TelephonyManager;->getSimOperator(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSimOperatorName(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSimOperatorNameForPhone(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSubIdForPhoneAccount(Landroid/telecom/PhoneAccount;)I
-Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String;
-Landroid/telephony/TelephonyManager;->getSubscriberInfo()Lcom/android/internal/telephony/IPhoneSubInfo;
-Landroid/telephony/TelephonyManager;->getVoiceMessageCount()I
-Landroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I
-Landroid/telephony/TelephonyManager;->hasIccCard(I)Z
-Landroid/telephony/TelephonyManager;->isImsRegistered()Z
-Landroid/telephony/TelephonyManager;->isMultiSimEnabled()Z
-Landroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z
-Landroid/telephony/TelephonyManager;->isVideoTelephonyAvailable()Z
-Landroid/telephony/TelephonyManager;->isVolteAvailable()Z
-Landroid/telephony/TelephonyManager;->isWifiCallingAvailable()Z
-Landroid/telephony/TelephonyManager;->mSubscriptionManager:Landroid/telephony/SubscriptionManager;
-Landroid/telephony/TelephonyManager;->nvResetConfig(I)Z
-Landroid/telephony/TelephonyManager;->putIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
-Landroid/telephony/TelephonyManager;->requestNetworkScan(Landroid/telephony/NetworkScanRequest;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)Landroid/telephony/NetworkScan;
-Landroid/telephony/TelephonyManager;->setPreferredNetworkType(II)Z
+Landroid/telephony/DisconnectCause;->toString(I)Ljava/lang/String;
 Landroid/telephony/euicc/DownloadableSubscription;->encodedActivationCode:Ljava/lang/String;
 Landroid/telephony/euicc/DownloadableSubscription;->setAccessRules([Landroid/telephony/UiccAccessRule;)V
 Landroid/telephony/euicc/DownloadableSubscription;->setCarrierName(Ljava/lang/String;)V
+Landroid/telephony/euicc/EuiccInfo;->osVersion:Ljava/lang/String;
+Landroid/telephony/gsm/GsmCellLocation;->setPsc(I)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->getFeatureState()I
+Landroid/telephony/ims/compat/feature/ImsFeature;->setFeatureState(I)V
+Landroid/telephony/ims/compat/feature/MMTelFeature;-><init>()V
+Landroid/telephony/ims/compat/ImsService;-><init>()V
+Landroid/telephony/ims/compat/ImsService;->mImsServiceController:Landroid/os/IBinder;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;-><init>()V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;-><init>(Landroid/content/Context;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getIImsConfig()Lcom/android/ims/internal/IImsConfig;
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;-><init>()V
 Landroid/telephony/ims/ImsCallForwardInfo;-><init>()V
 Landroid/telephony/ims/ImsCallForwardInfo;->mCondition:I
 Landroid/telephony/ims/ImsCallForwardInfo;->mNumber:Ljava/lang/String;
@@ -3354,6 +6133,7 @@
 Landroid/telephony/ims/ImsReasonInfo;->mCode:I
 Landroid/telephony/ims/ImsReasonInfo;->mExtraCode:I
 Landroid/telephony/ims/ImsReasonInfo;->mExtraMessage:Ljava/lang/String;
+Landroid/telephony/ims/ImsSsInfo;-><init>()V
 Landroid/telephony/ims/ImsSsInfo;->mIcbNum:Ljava/lang/String;
 Landroid/telephony/ims/ImsSsInfo;->mStatus:I
 Landroid/telephony/ims/ImsStreamMediaProfile;-><init>()V
@@ -3361,15 +6141,6 @@
 Landroid/telephony/ims/ImsStreamMediaProfile;->mAudioQuality:I
 Landroid/telephony/ims/ImsStreamMediaProfile;->mVideoDirection:I
 Landroid/telephony/ims/ImsVideoCallProvider;->getInterface()Lcom/android/ims/internal/IImsVideoCallProvider;
-Landroid/telephony/ims/compat/ImsService;-><init>()V
-Landroid/telephony/ims/compat/ImsService;->mImsServiceController:Landroid/os/IBinder;
-Landroid/telephony/ims/compat/feature/ImsFeature;->getFeatureState()I
-Landroid/telephony/ims/compat/feature/ImsFeature;->setFeatureState(I)V
-Landroid/telephony/ims/compat/feature/MMTelFeature;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsConfigImplBase;-><init>(Landroid/content/Context;)V
-Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getIImsConfig()Lcom/android/ims/internal/IImsConfig;
-Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;-><init>()V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;-><init>()V
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;-><init>()V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/vendor/IMbmsStreamingService;
@@ -3377,38 +6148,432 @@
 Landroid/telephony/mbms/vendor/IMbmsStreamingService;->initialize(Landroid/telephony/mbms/IMbmsStreamingSessionCallback;I)I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService;->requestUpdateStreamingServices(ILjava/util/List;)I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService;->startStreaming(ILjava/lang/String;Landroid/telephony/mbms/IStreamingServiceCallback;)I
+Landroid/telephony/NeighboringCellInfo;->mCid:I
+Landroid/telephony/NeighboringCellInfo;->mLac:I
+Landroid/telephony/NeighboringCellInfo;->mNetworkType:I
+Landroid/telephony/NeighboringCellInfo;->mPsc:I
+Landroid/telephony/NeighboringCellInfo;->mRssi:I
+Landroid/telephony/NetworkScan;->stop()V
+Landroid/telephony/PhoneNumberFormattingTextWatcher;->mFormatter:Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;
+Landroid/telephony/PhoneNumberUtils;->cdmaCheckAndProcessPlusCode(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->compareLoosely(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->compareStrictly(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->compareStrictly(Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->convertPreDial(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->getUsernameFromUriNumber(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isNanp(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isUriNumber(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isVoiceMailNumber(Landroid/content/Context;ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->MIN_MATCH:I
+Landroid/telephony/PhoneNumberUtils;->ttsSpanAsPhoneNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/telephony/PhoneStateListener;-><init>(Landroid/os/Looper;)V
+Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;)V
+Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V
+Landroid/telephony/PhoneStateListener;->LISTEN_PRECISE_CALL_STATE:I
+Landroid/telephony/PhoneStateListener;->mSubId:Ljava/lang/Integer;
+Landroid/telephony/PhoneStateListener;->onDataConnectionRealTimeInfoChanged(Landroid/telephony/DataConnectionRealTimeInfo;)V
+Landroid/telephony/PhoneStateListener;->onOemHookRawEvent([B)V
+Landroid/telephony/PhoneStateListener;->onOtaspChanged(I)V
+Landroid/telephony/PhoneStateListener;->onPreciseCallStateChanged(Landroid/telephony/PreciseCallState;)V
+Landroid/telephony/PhoneStateListener;->onPreciseDataConnectionStateChanged(Landroid/telephony/PreciseDataConnectionState;)V
+Landroid/telephony/PhoneStateListener;->onVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
+Landroid/telephony/PreciseCallState;-><init>(IIIII)V
+Landroid/telephony/PreciseCallState;->getBackgroundCallState()I
+Landroid/telephony/PreciseCallState;->getDisconnectCause()I
+Landroid/telephony/PreciseCallState;->getForegroundCallState()I
+Landroid/telephony/PreciseCallState;->getPreciseDisconnectCause()I
+Landroid/telephony/PreciseCallState;->getRingingCallState()I
+Landroid/telephony/PreciseDataConnectionState;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Ljava/lang/String;)V
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionAPN()Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionAPNType()Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionChangeReason()Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionFailCause()Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionLinkProperties()Landroid/net/LinkProperties;
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionNetworkType()I
+Landroid/telephony/PreciseDataConnectionState;->getDataConnectionState()I
+Landroid/telephony/RadioAccessFamily;-><init>(II)V
+Landroid/telephony/RadioAccessFamily;->getNetworkTypeFromRaf(I)I
+Landroid/telephony/RadioAccessFamily;->getPhoneId()I
+Landroid/telephony/RadioAccessFamily;->getRadioAccessFamily()I
+Landroid/telephony/RadioAccessFamily;->getRafFromNetworkType(I)I
+Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/telephony/Rlog;->v(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/telephony/ServiceState;->bearerBitmapHasCdma(I)Z
+Landroid/telephony/ServiceState;->bitmaskHasTech(II)Z
+Landroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/telephony/ServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/ServiceState;->getCdmaDefaultRoamingIndicator()I
+Landroid/telephony/ServiceState;->getCdmaEriIconIndex()I
+Landroid/telephony/ServiceState;->getCdmaEriIconMode()I
+Landroid/telephony/ServiceState;->getCdmaRoamingIndicator()I
+Landroid/telephony/ServiceState;->getCssIndicator()I
+Landroid/telephony/ServiceState;->getDataNetworkType()I
+Landroid/telephony/ServiceState;->getDataOperatorAlphaShort()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getDataOperatorNumeric()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getDataRegState()I
+Landroid/telephony/ServiceState;->getDataRoaming()Z
+Landroid/telephony/ServiceState;->getDataRoamingType()I
+Landroid/telephony/ServiceState;->getRadioTechnology()I
+Landroid/telephony/ServiceState;->getRilDataRadioTechnology()I
+Landroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I
+Landroid/telephony/ServiceState;->getVoiceNetworkType()I
+Landroid/telephony/ServiceState;->getVoiceOperatorAlphaLong()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getVoiceOperatorAlphaShort()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getVoiceOperatorNumeric()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getVoiceRegState()I
+Landroid/telephony/ServiceState;->getVoiceRoaming()Z
+Landroid/telephony/ServiceState;->getVoiceRoamingType()I
+Landroid/telephony/ServiceState;->isCdma(I)Z
+Landroid/telephony/ServiceState;->isEmergencyOnly()Z
+Landroid/telephony/ServiceState;->isGsm(I)Z
+Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
+Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
+Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
+Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
+Landroid/telephony/ServiceState;->mCssIndicator:Z
+Landroid/telephony/ServiceState;->mergeServiceStates(Landroid/telephony/ServiceState;Landroid/telephony/ServiceState;)Landroid/telephony/ServiceState;
+Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
+Landroid/telephony/ServiceState;->mNetworkId:I
+Landroid/telephony/ServiceState;->mSystemId:I
+Landroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState;
+Landroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IWLAN:I
+Landroid/telephony/ServiceState;->setCdmaDefaultRoamingIndicator(I)V
+Landroid/telephony/ServiceState;->setCdmaEriIconIndex(I)V
+Landroid/telephony/ServiceState;->setCdmaEriIconMode(I)V
+Landroid/telephony/ServiceState;->setCdmaRoamingIndicator(I)V
+Landroid/telephony/ServiceState;->setCssIndicator(I)V
+Landroid/telephony/ServiceState;->setDataRegState(I)V
+Landroid/telephony/ServiceState;->setDataRoaming(Z)V
+Landroid/telephony/ServiceState;->setDataRoamingFromRegistration(Z)V
+Landroid/telephony/ServiceState;->setDataRoamingType(I)V
+Landroid/telephony/ServiceState;->setEmergencyOnly(Z)V
+Landroid/telephony/ServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/ServiceState;->setOperatorAlphaLong(Ljava/lang/String;)V
+Landroid/telephony/ServiceState;->setVoiceRegState(I)V
+Landroid/telephony/ServiceState;->setVoiceRoaming(Z)V
+Landroid/telephony/ServiceState;->setVoiceRoamingType(I)V
+Landroid/telephony/SignalStrength;-><init>()V
+Landroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/SignalStrength;-><init>(Landroid/telephony/SignalStrength;)V
+Landroid/telephony/SignalStrength;-><init>(Z)V
+Landroid/telephony/SignalStrength;->copyFrom(Landroid/telephony/SignalStrength;)V
+Landroid/telephony/SignalStrength;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/SignalStrength;->fillInNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/SignalStrength;->getAsuLevel()I
+Landroid/telephony/SignalStrength;->getCdmaAsuLevel()I
+Landroid/telephony/SignalStrength;->getCdmaLevel()I
+Landroid/telephony/SignalStrength;->getDbm()I
+Landroid/telephony/SignalStrength;->getEvdoAsuLevel()I
+Landroid/telephony/SignalStrength;->getEvdoLevel()I
+Landroid/telephony/SignalStrength;->getGsmAsuLevel()I
+Landroid/telephony/SignalStrength;->getGsmDbm()I
+Landroid/telephony/SignalStrength;->getGsmLevel()I
+Landroid/telephony/SignalStrength;->getLteAsuLevel()I
+Landroid/telephony/SignalStrength;->getLteCqi()I
+Landroid/telephony/SignalStrength;->getLteDbm()I
+Landroid/telephony/SignalStrength;->getLteLevel()I
+Landroid/telephony/SignalStrength;->getLteRsrp()I
+Landroid/telephony/SignalStrength;->getLteRsrq()I
+Landroid/telephony/SignalStrength;->getLteRssnr()I
+Landroid/telephony/SignalStrength;->getLteSignalStrength()I
+Landroid/telephony/SignalStrength;->getTdScdmaAsuLevel()I
+Landroid/telephony/SignalStrength;->getTdScdmaDbm()I
+Landroid/telephony/SignalStrength;->getTdScdmaLevel()I
+Landroid/telephony/SignalStrength;->mCdmaDbm:I
+Landroid/telephony/SignalStrength;->mCdmaEcio:I
+Landroid/telephony/SignalStrength;->mEvdoDbm:I
+Landroid/telephony/SignalStrength;->mEvdoEcio:I
+Landroid/telephony/SignalStrength;->mEvdoSnr:I
+Landroid/telephony/SignalStrength;->mGsmBitErrorRate:I
+Landroid/telephony/SignalStrength;->mGsmSignalStrength:I
+Landroid/telephony/SignalStrength;->mLteCqi:I
+Landroid/telephony/SignalStrength;->mLteRsrp:I
+Landroid/telephony/SignalStrength;->mLteRsrpBoost:I
+Landroid/telephony/SignalStrength;->mLteRsrq:I
+Landroid/telephony/SignalStrength;->mLteRssnr:I
+Landroid/telephony/SignalStrength;->mLteSignalStrength:I
+Landroid/telephony/SignalStrength;->mTdScdmaRscp:I
+Landroid/telephony/SignalStrength;->mWcdmaRscp:I
+Landroid/telephony/SignalStrength;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/SignalStrength;
+Landroid/telephony/SignalStrength;->NUM_SIGNAL_STRENGTH_BINS:I
+Landroid/telephony/SignalStrength;->setFromNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GOOD:I
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GREAT:I
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_MODERATE:I
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_POOR:I
+Landroid/telephony/SignalStrength;->validateInput()V
+Landroid/telephony/SmsManager;->copyMessageToIcc([B[BI)Z
+Landroid/telephony/SmsManager;->deleteMessageFromIcc(I)Z
+Landroid/telephony/SmsManager;->disableCellBroadcastRange(III)Z
+Landroid/telephony/SmsManager;->enableCellBroadcastRange(III)Z
+Landroid/telephony/SmsManager;->getAllMessagesFromIcc()Ljava/util/ArrayList;
+Landroid/telephony/SmsManager;->isSMSPromptEnabled()Z
+Landroid/telephony/SmsManager;->mSubId:I
+Landroid/telephony/SmsManager;->sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;IZI)V
+Landroid/telephony/SmsManager;->sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V
+Landroid/telephony/SmsManager;->sendTextMessageWithoutPersisting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V
+Landroid/telephony/SmsManager;->updateMessageOnIcc(II[B)Z
+Landroid/telephony/SmsMessage;->fragmentText(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/telephony/SmsMessage;->getSubId()I
+Landroid/telephony/SmsMessage;->mSubId:I
+Landroid/telephony/SmsMessage;->mWrappedSmsMessage:Lcom/android/internal/telephony/SmsMessageBase;
+Landroid/telephony/SmsMessage;->setSubId(I)V
+Landroid/telephony/SmsMessage;->useCdmaFormatForMoSms()Z
+Landroid/telephony/SmsMessage;->useCdmaFormatForMoSms(I)Z
+Landroid/telephony/SubscriptionInfo;->setDisplayName(Ljava/lang/CharSequence;)V
+Landroid/telephony/SubscriptionInfo;->setIconTint(I)V
+Landroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V
+Landroid/telephony/SubscriptionManager;->clearDefaultsForInactiveSubIds()V
+Landroid/telephony/SubscriptionManager;->CONTENT_URI:Landroid/net/Uri;
+Landroid/telephony/SubscriptionManager;->DEFAULT_SUBSCRIPTION_ID:I
+Landroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList()[I
+Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoCount()I
+Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoList()Ljava/util/List;
+Landroid/telephony/SubscriptionManager;->getDefaultDataPhoneId()I
+Landroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
+Landroid/telephony/SubscriptionManager;->getDefaultSmsPhoneId()I
+Landroid/telephony/SubscriptionManager;->getDefaultVoicePhoneId()I
+Landroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
+Landroid/telephony/SubscriptionManager;->getPhoneId(I)I
+Landroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources;
+Landroid/telephony/SubscriptionManager;->getSlotIndex(I)I
+Landroid/telephony/SubscriptionManager;->getSubId(I)[I
+Landroid/telephony/SubscriptionManager;->isActiveSubId(I)Z
+Landroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z
+Landroid/telephony/SubscriptionManager;->isValidPhoneId(I)Z
+Landroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z
+Landroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
+Landroid/telephony/SubscriptionManager;->NAME_SOURCE_USER_INPUT:I
+Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;I)V
+Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;II)V
+Landroid/telephony/SubscriptionManager;->setDataRoaming(II)I
+Landroid/telephony/SubscriptionManager;->setDefaultDataSubId(I)V
+Landroid/telephony/SubscriptionManager;->setDefaultSmsSubId(I)V
+Landroid/telephony/SubscriptionManager;->setDisplayName(Ljava/lang/String;IJ)I
+Landroid/telephony/SubscriptionManager;->setDisplayNumber(Ljava/lang/String;I)I
+Landroid/telephony/SubscriptionManager;->setIconTint(II)I
+Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDA:Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDS:Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager$MultiSimVariants;->TSTS:Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager$MultiSimVariants;->UNKNOWN:Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager;-><init>()V
+Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
+Landroid/telephony/TelephonyManager;->ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
+Landroid/telephony/TelephonyManager;->getCallState(I)I
+Landroid/telephony/TelephonyManager;->getCdmaEriIconIndex(I)I
+Landroid/telephony/TelephonyManager;->getCdmaEriIconMode(I)I
+Landroid/telephony/TelephonyManager;->getCdmaEriText(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getDataNetworkType(I)I
+Landroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
+Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getGroupIdLevel1(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getIccAuthentication(IIILjava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;I)I
+Landroid/telephony/TelephonyManager;->getIsimDomain()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getIsimImpi()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getIsimPcscf()[Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
+Landroid/telephony/TelephonyManager;->getLine1AlphaTag(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getLteOnCdmaMode()I
+Landroid/telephony/TelephonyManager;->getLteOnCdmaMode(I)I
+Landroid/telephony/TelephonyManager;->getLteOnCdmaModeStatic()I
+Landroid/telephony/TelephonyManager;->getMergedSubscriberIds()[Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getMsisdn()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getMsisdn(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants;
+Landroid/telephony/TelephonyManager;->getNai(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkClass(I)I
+Landroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkCountryIsoForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkOperator(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkType(I)I
+Landroid/telephony/TelephonyManager;->getNetworkTypeName()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getOtaSpNumberSchemaForPhone(ILjava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getPhoneId(I)I
+Landroid/telephony/TelephonyManager;->getPhoneType(I)I
+Landroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I
+Landroid/telephony/TelephonyManager;->getPreferredNetworkType(I)I
+Landroid/telephony/TelephonyManager;->getProcCmdLine()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
+Landroid/telephony/TelephonyManager;->getSimCount()I
+Landroid/telephony/TelephonyManager;->getSimCountryIso(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperator(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperatorName(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperatorNameForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSlotIndex()I
+Landroid/telephony/TelephonyManager;->getSubId(I)I
+Landroid/telephony/TelephonyManager;->getSubIdForPhoneAccount(Landroid/telecom/PhoneAccount;)I
+Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getSubscriberInfo()Lcom/android/internal/telephony/IPhoneSubInfo;
+Landroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getTelephonyProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getVoiceMailAlphaTag(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getVoiceMailNumber(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getVoiceMessageCount()I
+Landroid/telephony/TelephonyManager;->getVoiceMessageCount(I)I
+Landroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I
+Landroid/telephony/TelephonyManager;->hasIccCard(I)Z
+Landroid/telephony/TelephonyManager;->isImsRegistered()Z
+Landroid/telephony/TelephonyManager;->isMultiSimEnabled()Z
+Landroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z
+Landroid/telephony/TelephonyManager;->isVideoTelephonyAvailable()Z
+Landroid/telephony/TelephonyManager;->isVolteAvailable()Z
+Landroid/telephony/TelephonyManager;->isWifiCallingAvailable()Z
+Landroid/telephony/TelephonyManager;->mSubscriptionManager:Landroid/telephony/SubscriptionManager;
+Landroid/telephony/TelephonyManager;->NETWORK_CLASS_2_G:I
+Landroid/telephony/TelephonyManager;->NETWORK_CLASS_3_G:I
+Landroid/telephony/TelephonyManager;->NETWORK_CLASS_4_G:I
+Landroid/telephony/TelephonyManager;->NETWORK_TYPE_LTE_CA:I
+Landroid/telephony/TelephonyManager;->nvReadItem(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->nvResetConfig(I)Z
+Landroid/telephony/TelephonyManager;->putIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+Landroid/telephony/TelephonyManager;->requestNetworkScan(Landroid/telephony/NetworkScanRequest;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)Landroid/telephony/NetworkScan;
+Landroid/telephony/TelephonyManager;->setBasebandVersionForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setDataNetworkTypeForPhone(II)V
+Landroid/telephony/TelephonyManager;->setImsRegistrationState(Z)V
+Landroid/telephony/TelephonyManager;->setNetworkCountryIso(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkCountryIsoForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkOperatorNameForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkOperatorNumericForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkRoamingForPhone(IZ)V
+Landroid/telephony/TelephonyManager;->setPhoneType(II)V
+Landroid/telephony/TelephonyManager;->setPreferredNetworkType(II)Z
+Landroid/telephony/TelephonyManager;->setRoamingOverride(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
+Landroid/telephony/TelephonyManager;->setSimCountryIsoForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimOperatorNameForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimOperatorNumericForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimStateForPhone(ILjava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setTelephonyProperty(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/VoLteServiceState;-><init>(I)V
 Landroid/text/AndroidBidi;->bidi(I[C[B)I
 Landroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;
 Landroid/text/DynamicLayout;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZIIILandroid/text/TextUtils$TruncateAt;I)V
+Landroid/text/DynamicLayout;->getBlockEndLines()[I
+Landroid/text/DynamicLayout;->getBlockIndices()[I
+Landroid/text/DynamicLayout;->getIndexFirstChangedBlock()I
+Landroid/text/DynamicLayout;->getNumberOfBlocks()I
+Landroid/text/DynamicLayout;->setIndexFirstChangedBlock(I)V
 Landroid/text/DynamicLayout;->sStaticLayout:Landroid/text/StaticLayout;
+Landroid/text/format/DateFormat;->AM_PM:C
+Landroid/text/format/DateFormat;->CAPITAL_AM_PM:C
+Landroid/text/format/DateFormat;->DATE:C
+Landroid/text/format/DateFormat;->DAY:C
+Landroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;I)Ljava/lang/String;
+Landroid/text/format/DateFormat;->hasDesignator(Ljava/lang/CharSequence;C)Z
+Landroid/text/format/DateFormat;->hasSeconds(Ljava/lang/CharSequence;)Z
+Landroid/text/format/DateFormat;->HOUR:C
+Landroid/text/format/DateFormat;->HOUR_OF_DAY:C
+Landroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z
+Landroid/text/format/DateFormat;->MINUTE:C
+Landroid/text/format/DateFormat;->MONTH:C
+Landroid/text/format/DateFormat;->QUOTE:C
+Landroid/text/format/DateFormat;->SECONDS:C
+Landroid/text/format/DateFormat;->STANDALONE_MONTH:C
+Landroid/text/format/DateFormat;->TIME_ZONE:C
+Landroid/text/format/DateFormat;->YEAR:C
+Landroid/text/format/DateUtils;->formatDuration(J)Ljava/lang/CharSequence;
+Landroid/text/format/DateUtils;->formatDuration(JI)Ljava/lang/CharSequence;
+Landroid/text/format/Formatter;->formatBytes(Landroid/content/res/Resources;JI)Landroid/text/format/Formatter$BytesResult;
+Landroid/text/format/Formatter;->formatShortElapsedTime(Landroid/content/Context;J)Ljava/lang/String;
+Landroid/text/format/Formatter;->formatShortElapsedTimeRoundingUpToMinutes(Landroid/content/Context;J)Ljava/lang/String;
 Landroid/text/Html;->withinStyle(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;II)V
+Landroid/text/InputFilter$LengthFilter;->mMax:I
 Landroid/text/Layout$Alignment;->ALIGN_LEFT:Landroid/text/Layout$Alignment;
 Landroid/text/Layout$Alignment;->ALIGN_RIGHT:Landroid/text/Layout$Alignment;
 Landroid/text/Layout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
+Landroid/text/Layout;->DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
+Landroid/text/Layout;->DIR_REQUEST_DEFAULT_LTR:I
+Landroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
+Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V
+Landroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J
 Landroid/text/Layout;->getPrimaryHorizontal(IZ)F
-Landroid/text/SpanSet;->spans:[Ljava/lang/Object;
+Landroid/text/Layout;->getSecondaryHorizontal(IZ)F
+Landroid/text/Layout;->isLevelBoundary(I)Z
+Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;
+Landroid/text/Layout;->shouldClampCursor(I)Z
+Landroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
+Landroid/text/method/HideReturnsTransformationMethod;->sInstance:Landroid/text/method/HideReturnsTransformationMethod;
+Landroid/text/method/LinkMovementMethod;->sInstance:Landroid/text/method/LinkMovementMethod;
+Landroid/text/method/MetaKeyKeyListener;->startSelecting(Landroid/view/View;Landroid/text/Spannable;)V
+Landroid/text/method/MetaKeyKeyListener;->stopSelecting(Landroid/view/View;Landroid/text/Spannable;)V
+Landroid/text/method/PasswordTransformationMethod;->DOT:C
+Landroid/text/method/PasswordTransformationMethod;->sInstance:Landroid/text/method/PasswordTransformationMethod;
+Landroid/text/method/TransformationMethod2;->setLengthChangesAllowed(Z)V
+Landroid/text/method/WordIterator;-><init>(Ljava/util/Locale;)V
+Landroid/text/method/WordIterator;->following(I)I
+Landroid/text/method/WordIterator;->getBeginning(I)I
+Landroid/text/method/WordIterator;->getEnd(I)I
+Landroid/text/method/WordIterator;->getNextWordEndOnTwoWordBoundary(I)I
+Landroid/text/method/WordIterator;->getPrevWordBeginningOnTwoWordsBoundary(I)I
+Landroid/text/method/WordIterator;->getPunctuationBeginning(I)I
+Landroid/text/method/WordIterator;->getPunctuationEnd(I)I
+Landroid/text/method/WordIterator;->isAfterPunctuation(I)Z
+Landroid/text/method/WordIterator;->isBoundary(I)Z
+Landroid/text/method/WordIterator;->isOnPunctuation(I)Z
+Landroid/text/method/WordIterator;->nextBoundary(I)I
+Landroid/text/method/WordIterator;->preceding(I)I
+Landroid/text/method/WordIterator;->prevBoundary(I)I
+Landroid/text/method/WordIterator;->setCharSequence(Ljava/lang/CharSequence;II)V
+Landroid/text/Selection;->moveToFollowing(Landroid/text/Spannable;Landroid/text/Selection$PositionIterator;Z)Z
+Landroid/text/Selection;->moveToPreceding(Landroid/text/Spannable;Landroid/text/Selection$PositionIterator;Z)Z
+Landroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/lang/Object;
 Landroid/text/SpannableStringBuilder;->mGapLength:I
 Landroid/text/SpannableStringBuilder;->mGapStart:I
 Landroid/text/SpannableStringBuilder;->mSpanCount:I
 Landroid/text/SpannableStringBuilder;->mSpanEnds:[I
 Landroid/text/SpannableStringBuilder;->mSpanFlags:[I
-Landroid/text/SpannableStringBuilder;->mSpanStarts:[I
 Landroid/text/SpannableStringBuilder;->mSpans:[Ljava/lang/Object;
+Landroid/text/SpannableStringBuilder;->mSpanStarts:[I
+Landroid/text/SpannableStringBuilder;->mText:[C
+Landroid/text/SpannableStringBuilder;->sendToSpanWatchers(III)V
+Landroid/text/SpannableStringBuilder;->substring(II)Ljava/lang/String;
 Landroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;II)V
+Landroid/text/SpannableStringInternal;->charAt(I)C
+Landroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V
 Landroid/text/SpannableStringInternal;->COLUMNS:I
+Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/SpannableStringInternal;II)V
+Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/Spanned;II)V
 Landroid/text/SpannableStringInternal;->EMPTY:[Ljava/lang/Object;
 Landroid/text/SpannableStringInternal;->END:I
 Landroid/text/SpannableStringInternal;->FLAGS:I
-Landroid/text/SpannableStringInternal;->START:I
-Landroid/text/SpannableStringInternal;->charAt(I)C
-Landroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V
-Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/SpannableStringInternal;II)V
-Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/Spanned;II)V
 Landroid/text/SpannableStringInternal;->getChars(II[CI)V
 Landroid/text/SpannableStringInternal;->getSpanEnd(Ljava/lang/Object;)I
 Landroid/text/SpannableStringInternal;->getSpanFlags(Ljava/lang/Object;)I
-Landroid/text/SpannableStringInternal;->getSpanStart(Ljava/lang/Object;)I
 Landroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+Landroid/text/SpannableStringInternal;->getSpanStart(Ljava/lang/Object;)I
 Landroid/text/SpannableStringInternal;->isIndexFollowsNextLine(I)Z
 Landroid/text/SpannableStringInternal;->isOutOfCopyRange(IIII)Z
 Landroid/text/SpannableStringInternal;->length()I
@@ -3424,17 +6589,44 @@
 Landroid/text/SpannableStringInternal;->sendSpanRemoved(Ljava/lang/Object;II)V
 Landroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;III)V
 Landroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;IIIZ)V
+Landroid/text/SpannableStringInternal;->START:I
+Landroid/text/SpanSet;->spans:[Ljava/lang/Object;
 Landroid/text/StaticLayout$LineBreaks;->ascents:[F
 Landroid/text/StaticLayout$LineBreaks;->breaks:[I
 Landroid/text/StaticLayout$LineBreaks;->descents:[F
 Landroid/text/StaticLayout$LineBreaks;->flags:[I
 Landroid/text/StaticLayout$LineBreaks;->widths:[F
 Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZLandroid/text/TextUtils$TruncateAt;II)V
+Landroid/text/StaticLayout;->ELLIPSIS_START:I
 Landroid/text/StaticLayout;->getHeight(Z)I
 Landroid/text/StaticLayout;->mColumns:I
 Landroid/text/StaticLayout;->mLineCount:I
+Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;
 Landroid/text/StaticLayout;->mLines:[I
 Landroid/text/StaticLayout;->mMaximumVisibleLineCount:I
+Landroid/text/style/BulletSpan;->mColor:I
+Landroid/text/style/BulletSpan;->mGapWidth:I
+Landroid/text/style/BulletSpan;->mWantColor:Z
+Landroid/text/style/DynamicDrawableSpan;->mDrawableRef:Ljava/lang/ref/WeakReference;
+Landroid/text/style/EasyEditSpan;->getPendingIntent()Landroid/app/PendingIntent;
+Landroid/text/style/EasyEditSpan;->isDeleteEnabled()Z
+Landroid/text/style/EasyEditSpan;->setDeleteEnabled(Z)V
+Landroid/text/style/ImageSpan;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/text/style/RasterizerSpan;
+Landroid/text/style/RasterizerSpan;-><init>(Landroid/graphics/Rasterizer;)V
+Landroid/text/style/RasterizerSpan;->getRasterizer()Landroid/graphics/Rasterizer;
+Landroid/text/style/SpellCheckSpan;-><init>()V
+Landroid/text/style/SpellCheckSpan;-><init>(Landroid/os/Parcel;)V
+Landroid/text/style/SpellCheckSpan;->isSpellCheckInProgress()Z
+Landroid/text/style/SpellCheckSpan;->setSpellCheckInProgress(Z)V
+Landroid/text/style/SuggestionRangeSpan;-><init>()V
+Landroid/text/style/SuggestionRangeSpan;-><init>(Landroid/os/Parcel;)V
+Landroid/text/style/SuggestionRangeSpan;->setBackgroundColor(I)V
+Landroid/text/style/SuggestionSpan;->getNotificationTargetClassName()Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->getUnderlineColor()I
+Landroid/text/style/SuggestionSpan;->mEasyCorrectUnderlineColor:I
+Landroid/text/style/SuggestionSpan;->mEasyCorrectUnderlineThickness:F
+Landroid/text/style/SuggestionSpan;->notifySelection(Landroid/content/Context;Ljava/lang/String;I)V
 Landroid/text/TextLine;->mCharacterStyleSpanSet:Landroid/text/SpanSet;
 Landroid/text/TextLine;->mMetricAffectingSpanSpanSet:Landroid/text/SpanSet;
 Landroid/text/TextLine;->mReplacementSpanSpanSet:Landroid/text/SpanSet;
@@ -3443,36 +6635,54 @@
 Landroid/text/TextLine;->obtain()Landroid/text/TextLine;
 Landroid/text/TextLine;->sCached:[Landroid/text/TextLine;
 Landroid/text/TextPaint;->setUnderlineText(IF)V
+Landroid/text/TextPaint;->underlineColor:I
+Landroid/text/TextPaint;->underlineThickness:F
 Landroid/text/TextUtils$TruncateAt;->END_SMALL:Landroid/text/TextUtils$TruncateAt;
 Landroid/text/TextUtils;->isPrintableAsciiOnly(Ljava/lang/CharSequence;)Z
-Landroid/text/format/DateFormat;->AM_PM:C
-Landroid/text/format/DateFormat;->CAPITAL_AM_PM:C
-Landroid/text/format/DateFormat;->DATE:C
-Landroid/text/format/DateFormat;->DAY:C
-Landroid/text/format/DateFormat;->HOUR:C
-Landroid/text/format/DateFormat;->HOUR_OF_DAY:C
-Landroid/text/format/DateFormat;->MINUTE:C
-Landroid/text/format/DateFormat;->MONTH:C
-Landroid/text/format/DateFormat;->QUOTE:C
-Landroid/text/format/DateFormat;->SECONDS:C
-Landroid/text/format/DateFormat;->STANDALONE_MONTH:C
-Landroid/text/format/DateFormat;->TIME_ZONE:C
-Landroid/text/format/DateFormat;->YEAR:C
-Landroid/text/method/LinkMovementMethod;->sInstance:Landroid/text/method/LinkMovementMethod;
-Landroid/text/style/RasterizerSpan;
-Landroid/text/style/RasterizerSpan;-><init>(Landroid/graphics/Rasterizer;)V
-Landroid/text/style/RasterizerSpan;->getRasterizer()Landroid/graphics/Rasterizer;
+Landroid/text/TextUtils;->packRangeInLong(II)J
+Landroid/text/TextUtils;->unpackRangeEndFromLong(J)I
+Landroid/text/TextUtils;->unpackRangeStartFromLong(J)I
+Landroid/text/util/Linkify;->gatherTelLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Landroid/content/Context;)V
 Landroid/transition/ChangeBounds;->BOTTOM_RIGHT_ONLY_PROPERTY:Landroid/util/Property;
 Landroid/transition/ChangeBounds;->POSITION_PROPERTY:Landroid/util/Property;
 Landroid/transition/Scene;->mEnterAction:Ljava/lang/Runnable;
 Landroid/transition/Scene;->mExitAction:Ljava/lang/Runnable;
 Landroid/transition/Scene;->setCurrentScene(Landroid/view/View;Landroid/transition/Scene;)V
+Landroid/transition/Transition;->cancel()V
+Landroid/transition/Transition;->end()V
+Landroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
+Landroid/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
 Landroid/transition/TransitionManager;->sRunningTransitions:Ljava/lang/ThreadLocal;
+Landroid/util/apk/SignatureNotFoundException;->serialVersionUID:J
+Landroid/util/ArrayMap;->allocArrays(I)V
 Landroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V
+Landroid/util/ArrayMap;->CACHE_SIZE:I
+Landroid/util/ArrayMap;->EMPTY:Landroid/util/ArrayMap;
+Landroid/util/ArrayMap;->EMPTY_IMMUTABLE_INTS:[I
+Landroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
+Landroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I
+Landroid/util/ArrayMap;->indexOfNull()I
+Landroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I
+Landroid/util/ArrayMap;->mArray:[Ljava/lang/Object;
+Landroid/util/ArrayMap;->mBaseCache:[Ljava/lang/Object;
 Landroid/util/ArrayMap;->mBaseCacheSize:I
+Landroid/util/ArrayMap;->mHashes:[I
+Landroid/util/ArrayMap;->mSize:I
+Landroid/util/ArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
 Landroid/util/ArrayMap;->mTwiceBaseCacheSize:I
 Landroid/util/ArraySet;-><init>(Ljava/util/Collection;)V
+Landroid/util/ArraySet;->allocArrays(I)V
+Landroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V
+Landroid/util/ArraySet;->indexOf(Ljava/lang/Object;I)I
+Landroid/util/ArraySet;->indexOfNull()I
+Landroid/util/ArraySet;->mArray:[Ljava/lang/Object;
+Landroid/util/ArraySet;->mHashes:[I
+Landroid/util/ArraySet;->mSize:I
+Landroid/util/Base64;-><init>()V
+Landroid/util/Base64OutputStream;-><init>(Ljava/io/OutputStream;IZ)V
+Landroid/util/DebugUtils;->buildShortClassTag(Ljava/lang/Object;Ljava/lang/StringBuilder;)V
 Landroid/util/DisplayMetrics;->DENSITY_DEVICE:I
+Landroid/util/DisplayMetrics;->noncompatDensityDpi:I
 Landroid/util/DisplayMetrics;->noncompatHeightPixels:I
 Landroid/util/DisplayMetrics;->noncompatWidthPixels:I
 Landroid/util/EventLog$Event;-><init>([B)V
@@ -3484,13 +6694,17 @@
 Landroid/util/FloatMath;->pow(FF)F
 Landroid/util/FloatMath;->sin(F)F
 Landroid/util/FloatMath;->sqrt(F)F
+Landroid/util/IconDrawableFactory;->getBadgedIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 Landroid/util/IconDrawableFactory;->getBadgedIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;I)Landroid/graphics/drawable/Drawable;
 Landroid/util/IconDrawableFactory;->newInstance(Landroid/content/Context;)Landroid/util/IconDrawableFactory;
 Landroid/util/LocalLog$ReadOnlyLocalLog;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 Landroid/util/LocalLog;-><init>(I)V
+Landroid/util/LocalLog;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 Landroid/util/LocalLog;->log(Ljava/lang/String;)V
 Landroid/util/LocalLog;->readOnlyLocalLog()Landroid/util/LocalLog$ReadOnlyLocalLog;
+Landroid/util/Log;->println_native(IILjava/lang/String;Ljava/lang/String;)I
 Landroid/util/Log;->wtf(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;ZZ)I
+Landroid/util/LogWriter;-><init>(ILjava/lang/String;)V
 Landroid/util/LongArray;-><init>()V
 Landroid/util/LongArray;->add(IJ)V
 Landroid/util/LongArray;->get(I)J
@@ -3498,15 +6712,25 @@
 Landroid/util/LongSparseLongArray;->mKeys:[J
 Landroid/util/LongSparseLongArray;->mSize:I
 Landroid/util/LongSparseLongArray;->mValues:[J
+Landroid/util/LruCache;->map:Ljava/util/LinkedHashMap;
 Landroid/util/MalformedJsonException;->serialVersionUID:J
+Landroid/util/MathUtils;->abs(F)F
+Landroid/util/MathUtils;->constrain(FFF)F
 Landroid/util/MathUtils;->constrain(III)I
+Landroid/util/MathUtils;->lerp(FFF)F
+Landroid/util/MathUtils;->max(II)F
 Landroid/util/NtpTrustedTime;->forceRefresh()Z
 Landroid/util/NtpTrustedTime;->getCachedNtpTime()J
 Landroid/util/NtpTrustedTime;->getCachedNtpTimeReference()J
 Landroid/util/NtpTrustedTime;->getInstance(Landroid/content/Context;)Landroid/util/NtpTrustedTime;
 Landroid/util/NtpTrustedTime;->hasCache()Z
 Landroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;
+Landroid/util/Pools$Pool;->acquire()Ljava/lang/Object;
+Landroid/util/Pools$Pool;->release(Ljava/lang/Object;)Z
+Landroid/util/Pools$SimplePool;-><init>(I)V
+Landroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
 Landroid/util/Pools$SimplePool;->mPool:[Ljava/lang/Object;
+Landroid/util/Pools$SimplePool;->release(Ljava/lang/Object;)Z
 Landroid/util/Pools$SynchronizedPool;-><init>(I)V
 Landroid/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object;
 Landroid/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z
@@ -3520,27 +6744,106 @@
 Landroid/util/Singleton;->get()Ljava/lang/Object;
 Landroid/util/Singleton;->mInstance:Ljava/lang/Object;
 Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/util/Slog;->println(ILjava/lang/String;Ljava/lang/String;)I
+Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Slog;->wtfStack(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/SparseArray;->mKeys:[I
+Landroid/util/SparseArray;->mSize:I
+Landroid/util/SparseArray;->mValues:[Ljava/lang/Object;
+Landroid/util/SparseBooleanArray;->mKeys:[I
+Landroid/util/SparseBooleanArray;->mSize:I
+Landroid/util/SparseBooleanArray;->mValues:[Z
 Landroid/util/SparseIntArray;->mKeys:[I
 Landroid/util/SparseIntArray;->mSize:I
 Landroid/util/SparseIntArray;->mValues:[I
-Landroid/util/apk/SignatureNotFoundException;->serialVersionUID:J
+Landroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;)V
+Landroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;I)V
+Landroid/util/TimeUtils;->logTimeOfDay(J)Ljava/lang/String;
+Landroid/util/TrustedTime;->currentTimeMillis()J
+Landroid/util/TrustedTime;->forceRefresh()Z
+Landroid/util/TrustedTime;->getCacheAge()J
+Landroid/util/TrustedTime;->hasCache()Z
+Landroid/view/accessibility/AccessibilityEvent;->mAction:I
+Landroid/view/accessibility/AccessibilityEvent;->mEventType:I
+Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache()V
+Landroid/view/accessibility/AccessibilityInteractionClient;->getInstance()Landroid/view/accessibility/AccessibilityInteractionClient;
+Landroid/view/accessibility/AccessibilityInteractionClient;->setSameThreadMessage(Landroid/os/Message;)V
+Landroid/view/accessibility/AccessibilityManager;->DALTONIZER_SIMULATE_MONOCHROMACY:I
+Landroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
+Landroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
+Landroid/view/accessibility/AccessibilityManager;->mAccessibilityStateChangeListeners:Landroid/util/ArrayMap;
+Landroid/view/accessibility/AccessibilityManager;->mHandler:Landroid/os/Handler;
+Landroid/view/accessibility/AccessibilityManager;->mIsEnabled:Z
+Landroid/view/accessibility/AccessibilityManager;->mIsHighTextContrastEnabled:Z
+Landroid/view/accessibility/AccessibilityManager;->mLock:Ljava/lang/Object;
+Landroid/view/accessibility/AccessibilityManager;->mService:Landroid/view/accessibility/IAccessibilityManager;
+Landroid/view/accessibility/AccessibilityManager;->mUserId:I
+Landroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
+Landroid/view/accessibility/AccessibilityManager;->sInstance:Landroid/view/accessibility/AccessibilityManager;
+Landroid/view/accessibility/AccessibilityManager;->sInstanceSync:Ljava/lang/Object;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getAccessibilityViewId(J)I
+Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J
+Landroid/view/accessibility/AccessibilityNodeInfo;->getVirtualDescendantId(J)I
+Landroid/view/accessibility/AccessibilityNodeInfo;->isSealed()Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mSealed:Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->mSourceNodeId:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->refresh(Landroid/os/Bundle;Z)Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->setSealed(Z)V
+Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J
+Landroid/view/accessibility/AccessibilityRecord;->mSealed:Z
+Landroid/view/accessibility/AccessibilityRecord;->mSourceNodeId:J
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->PRESETS:[Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;->setFindAccessibilityNodeInfoResult(Landroid/view/accessibility/AccessibilityNodeInfo;I)V
+Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;->setFindAccessibilityNodeInfosResult(Ljava/util/List;I)V
+Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;->setPerformAccessibilityActionResult(ZI)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Landroid/view/accessibility/IAccessibilityManager$Stub;-><init>()V
+Landroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
+Landroid/view/accessibility/IAccessibilityManager;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
+Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;-><init>()V
+Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;->mText:Ljava/lang/String;
+Landroid/view/ActionProvider;->reset()V
+Landroid/view/ActionProvider;->setSubUiVisibilityListener(Landroid/view/ActionProvider$SubUiVisibilityListener;)V
+Landroid/view/animation/Animation;->detach()V
+Landroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
+Landroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
+Landroid/view/animation/Animation;->mListener:Landroid/view/animation/Animation$AnimationListener;
+Landroid/view/animation/Animation;->mPreviousRegion:Landroid/graphics/RectF;
+Landroid/view/animation/Animation;->mPreviousTransformation:Landroid/view/animation/Transformation;
+Landroid/view/animation/Animation;->mRegion:Landroid/graphics/RectF;
+Landroid/view/animation/Animation;->mTransformation:Landroid/view/animation/Transformation;
+Landroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/view/animation/AnimationSet;Landroid/util/AttributeSet;)Landroid/view/animation/Animation;
+Landroid/view/animation/Transformation;->printShortString(Ljava/io/PrintWriter;)V
+Landroid/view/animation/TranslateAnimation;->mFromXValue:F
+Landroid/view/animation/TranslateAnimation;->mFromYValue:F
+Landroid/view/animation/TranslateAnimation;->mToXValue:F
+Landroid/view/animation/TranslateAnimation;->mToYValue:F
+Landroid/view/animation/TranslateYAnimation;-><init>(IFIF)V
 Landroid/view/AppTransitionAnimationSpec;-><init>(ILandroid/graphics/GraphicBuffer;Landroid/graphics/Rect;)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/BatchedInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;Landroid/view/Choreographer;)V
 Landroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V
-Landroid/view/Choreographer;->USE_VSYNC:Z
+Landroid/view/Choreographer$CallbackRecord;->run(J)V
 Landroid/view/Choreographer;->doFrame(JI)V
 Landroid/view/Choreographer;->getFrameTime()J
+Landroid/view/Choreographer;->getFrameTimeNanos()J
 Landroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer;
 Landroid/view/Choreographer;->mCallbackQueues:[Landroid/view/Choreographer$CallbackQueue;
+Landroid/view/Choreographer;->mDisplayEventReceiver:Landroid/view/Choreographer$FrameDisplayEventReceiver;
 Landroid/view/Choreographer;->mFrameIntervalNanos:J
 Landroid/view/Choreographer;->mLastFrameTimeNanos:J
 Landroid/view/Choreographer;->mLock:Ljava/lang/Object;
 Landroid/view/Choreographer;->scheduleVsyncLocked()V
+Landroid/view/Choreographer;->USE_VSYNC:Z
 Landroid/view/ContextThemeWrapper;->getThemeResId()I
 Landroid/view/ContextThemeWrapper;->initializeTheme()V
 Landroid/view/ContextThemeWrapper;->mInflater:Landroid/view/LayoutInflater;
@@ -3548,75 +6851,200 @@
 Landroid/view/ContextThemeWrapper;->mTheme:Landroid/content/res/Resources$Theme;
 Landroid/view/ContextThemeWrapper;->mThemeResource:I
 Landroid/view/Display$HdrCapabilities;-><init>([IFFF)V
+Landroid/view/Display$Mode;-><init>(IIIF)V
+Landroid/view/Display;->getAddress()Ljava/lang/String;
 Landroid/view/Display;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
+Landroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z
+Landroid/view/Display;->getMaximumSizeDimension()I
+Landroid/view/Display;->getOwnerPackageName()Ljava/lang/String;
+Landroid/view/Display;->getType()I
+Landroid/view/Display;->mDisplayInfo:Landroid/view/DisplayInfo;
+Landroid/view/Display;->TYPE_HDMI:I
+Landroid/view/Display;->TYPE_UNKNOWN:I
+Landroid/view/Display;->TYPE_VIRTUAL:I
+Landroid/view/Display;->TYPE_WIFI:I
+Landroid/view/DisplayAdjustments;-><init>()V
 Landroid/view/DisplayAdjustments;->getConfiguration()Landroid/content/res/Configuration;
 Landroid/view/DisplayAdjustments;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V
+Landroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;)V
 Landroid/view/DisplayEventReceiver;->dispatchHotplug(JIZ)V
 Landroid/view/DisplayEventReceiver;->dispatchVsync(JII)V
+Landroid/view/DisplayEventReceiver;->mReceiverPtr:J
+Landroid/view/DisplayEventReceiver;->onHotplug(JIZ)V
+Landroid/view/DisplayEventReceiver;->onVsync(JII)V
+Landroid/view/DisplayEventReceiver;->scheduleVsync()V
+Landroid/view/DisplayInfo;-><init>()V
+Landroid/view/DisplayInfo;->displayCutout:Landroid/view/DisplayCutout;
+Landroid/view/DisplayInfo;->logicalHeight:I
+Landroid/view/DisplayInfo;->logicalWidth:I
+Landroid/view/DisplayInfo;->rotation:I
 Landroid/view/DisplayListCanvas;->callDrawGLFunction2(J)V
+Landroid/view/DisplayListCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
 Landroid/view/DisplayListCanvas;->drawGLFunctor2(JLjava/lang/Runnable;)V
 Landroid/view/DisplayListCanvas;->drawRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/DragEvent;->mClipData:Landroid/content/ClipData;
+Landroid/view/DragEvent;->mClipDescription:Landroid/content/ClipDescription;
+Landroid/view/DragEvent;->obtain(Landroid/view/DragEvent;)Landroid/view/DragEvent;
 Landroid/view/FrameMetrics;->mTimingData:[J
 Landroid/view/FrameMetricsObserver;->mFrameMetrics:Landroid/view/FrameMetrics;
 Landroid/view/FrameMetricsObserver;->mMessageQueue:Landroid/os/MessageQueue;
 Landroid/view/FrameMetricsObserver;->notifyDataAvailable(I)V
+Landroid/view/GestureDetector;->LONGPRESS_TIMEOUT:I
+Landroid/view/GestureDetector;->mAlwaysInTapRegion:Z
+Landroid/view/GestureDetector;->mListener:Landroid/view/GestureDetector$OnGestureListener;
 Landroid/view/GestureDetector;->mMinimumFlingVelocity:I
 Landroid/view/GestureDetector;->mTouchSlopSquare:I
+Landroid/view/GhostView;->addGhost(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/GhostView;
 Landroid/view/GhostView;->addGhost(Landroid/view/View;Landroid/view/ViewGroup;Landroid/graphics/Matrix;)Landroid/view/GhostView;
 Landroid/view/GhostView;->removeGhost(Landroid/view/View;)V
+Landroid/view/IApplicationToken$Stub;-><init>()V
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;-><init>()V
+Landroid/view/IDockedStackListener$Stub;-><init>()V
 Landroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
+Landroid/view/InputChannel;-><init>()V
+Landroid/view/InputChannel;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/view/InputChannel;->mPtr:J
+Landroid/view/InputDevice;-><init>(IIILjava/lang/String;IILjava/lang/String;ZIILandroid/view/KeyCharacterMap;ZZZ)V
+Landroid/view/InputDevice;->addMotionRange(IIFFFFF)V
+Landroid/view/InputDevice;->isExternal()Z
+Landroid/view/InputDevice;->mIsExternal:Z
+Landroid/view/InputEvent;->getSequenceNumber()I
+Landroid/view/InputEventConsistencyVerifier;-><init>(Ljava/lang/Object;I)V
+Landroid/view/InputEventConsistencyVerifier;->isInstrumentationEnabled()Z
+Landroid/view/InputEventConsistencyVerifier;->onTouchEvent(Landroid/view/MotionEvent;I)V
+Landroid/view/InputEventConsistencyVerifier;->onUnhandledEvent(Landroid/view/InputEvent;I)V
+Landroid/view/InputEventReceiver;->dispatchBatchedInputEventPending()V
+Landroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;I)V
+Landroid/view/InputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
+Landroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
+Landroid/view/InputFilter;-><init>(Landroid/os/Looper;)V
+Landroid/view/InputFilter;->onInputEvent(Landroid/view/InputEvent;I)V
+Landroid/view/inputmethod/InputMethodInfo;->isDefault(Landroid/content/Context;)Z
+Landroid/view/inputmethod/InputMethodInfo;->mSubtypes:Landroid/view/inputmethod/InputMethodSubtypeArray;
+Landroid/view/inputmethod/InputMethodManager;->checkFocus()V
+Landroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V
+Landroid/view/inputmethod/InputMethodManager;->finishInputLocked()V
+Landroid/view/inputmethod/InputMethodManager;->focusIn(Landroid/view/View;)V
+Landroid/view/inputmethod/InputMethodManager;->focusOut(Landroid/view/View;)V
+Landroid/view/inputmethod/InputMethodManager;->getClient()Lcom/android/internal/view/IInputMethodClient;
+Landroid/view/inputmethod/InputMethodManager;->getInputContext()Lcom/android/internal/view/IInputContext;
+Landroid/view/inputmethod/InputMethodManager;->getInputMethodWindowVisibleHeight()I
+Landroid/view/inputmethod/InputMethodManager;->getInstance()Landroid/view/inputmethod/InputMethodManager;
+Landroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z
+Landroid/view/inputmethod/InputMethodManager;->mCurId:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodManager;->mCurRootView:Landroid/view/View;
+Landroid/view/inputmethod/InputMethodManager;->mCursorRect:Landroid/graphics/Rect;
+Landroid/view/inputmethod/InputMethodManager;->mH:Landroid/view/inputmethod/InputMethodManager$H;
+Landroid/view/inputmethod/InputMethodManager;->mNextServedView:Landroid/view/View;
+Landroid/view/inputmethod/InputMethodManager;->mServedInputConnectionWrapper:Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;
+Landroid/view/inputmethod/InputMethodManager;->mServedView:Landroid/view/View;
+Landroid/view/inputmethod/InputMethodManager;->mService:Lcom/android/internal/view/IInputMethodManager;
+Landroid/view/inputmethod/InputMethodManager;->mTmpCursorRect:Landroid/graphics/Rect;
+Landroid/view/inputmethod/InputMethodManager;->notifySuggestionPicked(Landroid/text/style/SuggestionSpan;Ljava/lang/String;I)V
+Landroid/view/inputmethod/InputMethodManager;->notifyUserAction()V
+Landroid/view/inputmethod/InputMethodManager;->onPreWindowFocus(Landroid/view/View;Z)V
+Landroid/view/inputmethod/InputMethodManager;->peekInstance()Landroid/view/inputmethod/InputMethodManager;
+Landroid/view/inputmethod/InputMethodManager;->registerSuggestionSpansForNotification([Landroid/text/style/SuggestionSpan;)V
+Landroid/view/inputmethod/InputMethodManager;->setUpdateCursorAnchorInfoMode(I)V
+Landroid/view/inputmethod/InputMethodManager;->showSoftInputUnchecked(ILandroid/os/ResultReceiver;)V
+Landroid/view/inputmethod/InputMethodManager;->sInstance:Landroid/view/inputmethod/InputMethodManager;
+Landroid/view/inputmethod/InputMethodManager;->windowDismissed(Landroid/os/IBinder;)V
+Landroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Ljava/util/List;)V
+Landroid/view/InputQueue;->finishInputEvent(JZ)V
+Landroid/view/IOnKeyguardExitResult;->onKeyguardExitResult(Z)V
 Landroid/view/IRecentsAnimationController;->finish(Z)V
 Landroid/view/IRecentsAnimationController;->screenshotTask(I)Landroid/app/ActivityManager$TaskSnapshot;
 Landroid/view/IRecentsAnimationController;->setAnimationTargetsBehindSystemBars(Z)V
 Landroid/view/IRecentsAnimationController;->setInputConsumerEnabled(Z)V
 Landroid/view/IRecentsAnimationRunner$Stub;-><init>()V
 Landroid/view/IRecentsAnimationRunner;->onAnimationCanceled()V
-Landroid/view/IRecentsAnimationRunner;->onAnimationStart(Landroid/view/IRecentsAnimationController;[Landroid/view/RemoteAnimationTarget;)V
-Landroid/view/IRecentsAnimationRunner;->onAnimationStart_New(Landroid/view/IRecentsAnimationController;[Landroid/view/RemoteAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/view/IRecentsAnimationRunner;->onAnimationStart(Landroid/view/IRecentsAnimationController;[Landroid/view/RemoteAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 Landroid/view/IRemoteAnimationFinishedCallback;->onAnimationFinished()V
 Landroid/view/IRemoteAnimationRunner$Stub;-><init>()V
 Landroid/view/IRemoteAnimationRunner;->onAnimationCancelled()V
 Landroid/view/IRemoteAnimationRunner;->onAnimationStart([Landroid/view/RemoteAnimationTarget;Landroid/view/IRemoteAnimationFinishedCallback;)V
+Landroid/view/IRotationWatcher$Stub;-><init>()V
+Landroid/view/IRotationWatcher;->onRotationChanged(I)V
+Landroid/view/IWindow$Stub;-><init>()V
+Landroid/view/IWindow$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindow;
+Landroid/view/IWindow;->closeSystemDialogs(Ljava/lang/String;)V
+Landroid/view/IWindow;->dispatchAppVisibility(Z)V
+Landroid/view/IWindow;->dispatchGetNewSurface()V
+Landroid/view/IWindow;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
+Landroid/view/IWindow;->dispatchWallpaperOffsets(FFFFZ)V
+Landroid/view/IWindow;->windowFocusChanged(ZZ)V
 Landroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindowManager$Stub$Proxy;->getBaseDisplayDensity(I)I
 Landroid/view/IWindowManager$Stub$Proxy;->getDockedStackSide()I
 Landroid/view/IWindowManager$Stub$Proxy;->getInitialDisplayDensity(I)I
 Landroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar()Z
+Landroid/view/IWindowManager$Stub$Proxy;->watchRotation(Landroid/view/IRotationWatcher;I)I
+Landroid/view/IWindowManager$Stub;-><init>()V
 Landroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
 Landroid/view/IWindowManager;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;)V
 Landroid/view/IWindowManager;->destroyInputConsumer(Ljava/lang/String;)Z
 Landroid/view/IWindowManager;->endProlongedAnimations()V
+Landroid/view/IWindowManager;->executeAppTransition()V
+Landroid/view/IWindowManager;->freezeRotation(I)V
 Landroid/view/IWindowManager;->getAnimationScale(I)F
+Landroid/view/IWindowManager;->getAnimationScales()[F
+Landroid/view/IWindowManager;->getBaseDisplaySize(ILandroid/graphics/Point;)V
+Landroid/view/IWindowManager;->getDockedStackSide()I
+Landroid/view/IWindowManager;->getInitialDisplayDensity(I)I
+Landroid/view/IWindowManager;->getInitialDisplaySize(ILandroid/graphics/Point;)V
+Landroid/view/IWindowManager;->getPendingAppTransition()I
 Landroid/view/IWindowManager;->getStableInsets(ILandroid/graphics/Rect;)V
 Landroid/view/IWindowManager;->hasNavigationBar()Z
+Landroid/view/IWindowManager;->inputMethodClientHasFocus(Lcom/android/internal/view/IInputMethodClient;)Z
+Landroid/view/IWindowManager;->isKeyguardLocked()Z
+Landroid/view/IWindowManager;->isKeyguardSecure()Z
+Landroid/view/IWindowManager;->isSafeModeEnabled()Z
+Landroid/view/IWindowManager;->lockNow(Landroid/os/Bundle;)V
 Landroid/view/IWindowManager;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;Z)V
 Landroid/view/IWindowManager;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
+Landroid/view/IWindowManager;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
+Landroid/view/IWindowManager;->removeRotationWatcher(Landroid/view/IRotationWatcher;)V
 Landroid/view/IWindowManager;->setAnimationScale(IF)V
+Landroid/view/IWindowManager;->setAnimationScales([F)V
+Landroid/view/IWindowManager;->setInTouchMode(Z)V
 Landroid/view/IWindowManager;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
 Landroid/view/IWindowManager;->setShelfHeight(ZI)V
 Landroid/view/IWindowManager;->setStrictModeVisualIndicatorPreference(Ljava/lang/String;)V
+Landroid/view/IWindowManager;->showStrictModeViolation(Z)V
+Landroid/view/IWindowManager;->thawRotation()V
 Landroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/Surface;)I
-Landroid/view/InputChannel;-><init>()V
-Landroid/view/InputChannel;->mPtr:J
-Landroid/view/InputDevice;-><init>(IIILjava/lang/String;IILjava/lang/String;ZIILandroid/view/KeyCharacterMap;ZZZ)V
-Landroid/view/InputDevice;->addMotionRange(IIFFFFF)V
-Landroid/view/InputDevice;->isExternal()Z
-Landroid/view/InputEvent;->getSequenceNumber()I
-Landroid/view/InputEventReceiver;->dispatchBatchedInputEventPending()V
-Landroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;I)V
-Landroid/view/InputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
-Landroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
-Landroid/view/InputQueue;->finishInputEvent(JZ)V
+Landroid/view/IWindowSession$Stub;-><init>()V
+Landroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
+Landroid/view/IWindowSession;->finishDrawing(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession;->getInTouchMode()Z
+Landroid/view/IWindowSession;->performDrag(Landroid/view/IWindow;ILandroid/view/SurfaceControl;IFFFFLandroid/content/ClipData;)Landroid/os/IBinder;
+Landroid/view/IWindowSession;->performHapticFeedback(Landroid/view/IWindow;IZ)Z
+Landroid/view/IWindowSession;->remove(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession;->setInTouchMode(Z)V
+Landroid/view/IWindowSession;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+Landroid/view/IWindowSession;->wallpaperCommandComplete(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/view/IWindowSession;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
 Landroid/view/KeyCharacterMap$FallbackAction;->keyCode:I
 Landroid/view/KeyCharacterMap$FallbackAction;->metaState:I
 Landroid/view/KeyCharacterMap;-><init>(J)V
+Landroid/view/KeyEvent;->actionToString(I)Ljava/lang/String;
 Landroid/view/KeyEvent;->isConfirmKey(I)Z
+Landroid/view/KeyEvent;->isDown()Z
 Landroid/view/KeyEvent;->mAction:I
 Landroid/view/KeyEvent;->mCharacters:Ljava/lang/String;
 Landroid/view/KeyEvent;->mDeviceId:I
 Landroid/view/KeyEvent;->mDownTime:J
+Landroid/view/KeyEvent;->META_ALL_MASK:I
+Landroid/view/KeyEvent;->META_ALT_LOCKED:I
+Landroid/view/KeyEvent;->META_CAP_LOCKED:I
+Landroid/view/KeyEvent;->META_INVALID_MODIFIER_MASK:I
+Landroid/view/KeyEvent;->META_LOCK_MASK:I
+Landroid/view/KeyEvent;->META_MODIFIER_MASK:I
+Landroid/view/KeyEvent;->META_SELECTING:I
+Landroid/view/KeyEvent;->META_SYMBOLIC_NAMES:[Ljava/lang/String;
+Landroid/view/KeyEvent;->META_SYM_LOCKED:I
+Landroid/view/KeyEvent;->META_SYNTHETIC_MASK:I
 Landroid/view/KeyEvent;->mEventTime:J
 Landroid/view/KeyEvent;->mFlags:I
 Landroid/view/KeyEvent;->mKeyCode:I
@@ -3626,25 +7054,35 @@
 Landroid/view/KeyEvent;->mSource:I
 Landroid/view/KeyEvent;->obtain(JJIIIIIIIILjava/lang/String;)Landroid/view/KeyEvent;
 Landroid/view/KeyEvent;->recycle()V
+Landroid/view/LayoutInflater;->ATTRS_THEME:[I
 Landroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 Landroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;Z)Landroid/view/View;
 Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object;
+Landroid/view/LayoutInflater;->mConstructorSignature:[Ljava/lang/Class;
 Landroid/view/LayoutInflater;->mContext:Landroid/content/Context;
 Landroid/view/LayoutInflater;->mFactory2:Landroid/view/LayoutInflater$Factory2;
 Landroid/view/LayoutInflater;->mFactory:Landroid/view/LayoutInflater$Factory;
 Landroid/view/LayoutInflater;->mFactorySet:Z
 Landroid/view/LayoutInflater;->mPrivateFactory:Landroid/view/LayoutInflater$Factory2;
+Landroid/view/LayoutInflater;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V
 Landroid/view/LayoutInflater;->sConstructorMap:Ljava/util/HashMap;
 Landroid/view/LayoutInflater;->setPrivateFactory(Landroid/view/LayoutInflater$Factory2;)V
+Landroid/view/MotionEvent$PointerCoords;->createArray(I)[Landroid/view/MotionEvent$PointerCoords;
 Landroid/view/MotionEvent$PointerCoords;->mPackedAxisBits:J
 Landroid/view/MotionEvent$PointerCoords;->mPackedAxisValues:[F
-Landroid/view/MotionEvent;->HISTORY_CURRENT:I
+Landroid/view/MotionEvent$PointerProperties;->createArray(I)[Landroid/view/MotionEvent$PointerProperties;
+Landroid/view/MotionEvent;->addBatch(Landroid/view/MotionEvent;)Z
+Landroid/view/MotionEvent;->copy()Landroid/view/MotionEvent;
+Landroid/view/MotionEvent;->getEventTimeNano()J
 Landroid/view/MotionEvent;->getPointerIdBits()I
+Landroid/view/MotionEvent;->HISTORY_CURRENT:I
 Landroid/view/MotionEvent;->mNativePtr:J
 Landroid/view/MotionEvent;->nativeGetRawAxisValue(JIII)F
 Landroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent;
 Landroid/view/MotionEvent;->scale(F)V
+Landroid/view/MotionEvent;->setDownTime(J)V
 Landroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent;
+Landroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/view/PointerIcon;->load(Landroid/content/Context;)Landroid/view/PointerIcon;
 Landroid/view/PointerIcon;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/view/PointerIcon;->mBitmapFrames:[Landroid/graphics/Bitmap;
@@ -3671,20 +7109,33 @@
 Landroid/view/RenderNode;->discardDisplayList()V
 Landroid/view/RenderNode;->end(Landroid/view/DisplayListCanvas;)V
 Landroid/view/RenderNode;->isValid()Z
+Landroid/view/RenderNode;->offsetLeftAndRight(I)Z
 Landroid/view/RenderNode;->output()V
 Landroid/view/RenderNode;->setClipToBounds(Z)Z
+Landroid/view/RenderNode;->setHasOverlappingRendering(Z)Z
 Landroid/view/RenderNode;->setLeftTopRightBottom(IIII)Z
+Landroid/view/RenderNode;->setProjectBackwards(Z)Z
 Landroid/view/RenderNode;->start(II)Landroid/view/DisplayListCanvas;
 Landroid/view/RenderNodeAnimator;-><init>(IF)V
+Landroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
+Landroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
 Landroid/view/RenderNodeAnimator;->callOnFinished(Landroid/view/RenderNodeAnimator;)V
 Landroid/view/RenderNodeAnimator;->mapViewPropertyToRenderProperty(I)I
+Landroid/view/RenderNodeAnimator;->setStartValue(F)V
 Landroid/view/RenderNodeAnimator;->setTarget(Landroid/view/View;)V
 Landroid/view/ScaleGestureDetector;->mListener:Landroid/view/ScaleGestureDetector$OnScaleGestureListener;
 Landroid/view/ScaleGestureDetector;->mMinSpan:I
+Landroid/view/ScaleGestureDetector;->mSpanSlop:I
+Landroid/view/Surface;-><init>()V
 Landroid/view/Surface;-><init>(J)V
+Landroid/view/Surface;->copyFrom(Landroid/view/SurfaceControl;)V
+Landroid/view/Surface;->destroy()V
 Landroid/view/Surface;->getNextFrameNumber()J
 Landroid/view/Surface;->mLock:Ljava/lang/Object;
+Landroid/view/Surface;->mLockedObject:J
+Landroid/view/Surface;->mName:Ljava/lang/String;
 Landroid/view/Surface;->mNativeObject:J
+Landroid/view/Surface;->nativeRelease(J)V
 Landroid/view/Surface;->transferFrom(Landroid/view/Surface;)V
 Landroid/view/SurfaceControl$PhysicalDisplayInfo;-><init>()V
 Landroid/view/SurfaceControl$PhysicalDisplayInfo;->appVsyncOffsetNanos:J
@@ -3711,22 +7162,78 @@
 Landroid/view/SurfaceControl$Transaction;->setSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl$Transaction;->show(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl;->closeTransaction()V
+Landroid/view/SurfaceControl;->createDisplay(Ljava/lang/String;Z)Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->destroyDisplay(Landroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->getBuiltInDisplay(I)Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->getDisplayConfigs(Landroid/os/IBinder;)[Landroid/view/SurfaceControl$PhysicalDisplayInfo;
+Landroid/view/SurfaceControl;->HIDDEN:I
+Landroid/view/SurfaceControl;->hide()V
+Landroid/view/SurfaceControl;->openTransaction()V
+Landroid/view/SurfaceControl;->screenshot(Landroid/graphics/Rect;IIIIZI)Landroid/graphics/Bitmap;
+Landroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;Landroid/graphics/Rect;IIIIZZ)V
+Landroid/view/SurfaceControl;->setDisplayLayerStack(Landroid/os/IBinder;I)V
+Landroid/view/SurfaceControl;->setDisplayProjection(Landroid/os/IBinder;ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/view/SurfaceControl;->setDisplaySurface(Landroid/os/IBinder;Landroid/view/Surface;)V
+Landroid/view/SurfaceControl;->setLayer(I)V
+Landroid/view/SurfaceControl;->setPosition(FF)V
+Landroid/view/SurfaceControl;->show()V
+Landroid/view/SurfaceSession;-><init>()V
+Landroid/view/SurfaceSession;->kill()V
 Landroid/view/SurfaceSession;->mNativeClient:J
 Landroid/view/SurfaceView;->isFixedSize()Z
 Landroid/view/SurfaceView;->mCallbacks:Ljava/util/ArrayList;
+Landroid/view/SurfaceView;->mDrawingStopped:Z
+Landroid/view/SurfaceView;->mDrawListener:Landroid/view/ViewTreeObserver$OnPreDrawListener;
 Landroid/view/SurfaceView;->mFormat:I
+Landroid/view/SurfaceView;->mHaveFrame:Z
+Landroid/view/SurfaceView;->mIsCreating:Z
+Landroid/view/SurfaceView;->mLastLockTime:J
 Landroid/view/SurfaceView;->mRequestedFormat:I
+Landroid/view/SurfaceView;->mRequestedHeight:I
+Landroid/view/SurfaceView;->mRequestedWidth:I
+Landroid/view/SurfaceView;->mSurface:Landroid/view/Surface;
+Landroid/view/SurfaceView;->mSurfaceFrame:Landroid/graphics/Rect;
 Landroid/view/SurfaceView;->mSurfaceHolder:Landroid/view/SurfaceHolder;
+Landroid/view/SurfaceView;->mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
 Landroid/view/SurfaceView;->setFrame(IIII)Z
 Landroid/view/SurfaceView;->surfacePositionLost_uiRtSync(J)V
 Landroid/view/SurfaceView;->updateSurfacePosition_renderWorker(JIIII)V
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;I)V
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V
+Landroid/view/textclassifier/TextClassificationManager;->getTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassifier;->classifyText(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextClassification$Options;)Landroid/view/textclassifier/TextClassification;
+Landroid/view/textclassifier/TextClassifier;->generateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks$Options;)Landroid/view/textclassifier/TextLinks;
+Landroid/view/textclassifier/TextClassifier;->suggestSelection(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextSelection$Options;)Landroid/view/textclassifier/TextSelection;
+Landroid/view/textclassifier/TextLinks$Options;-><init>()V
+Landroid/view/textservice/SpellCheckerSession;->mSpellCheckerSessionListener:Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;
+Landroid/view/textservice/TextServicesManager;->getCurrentSpellChecker()Landroid/view/textservice/SpellCheckerInfo;
+Landroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
+Landroid/view/textservice/TextServicesManager;->getEnabledSpellCheckers()[Landroid/view/textservice/SpellCheckerInfo;
+Landroid/view/textservice/TextServicesManager;->getInstance()Landroid/view/textservice/TextServicesManager;
+Landroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z
 Landroid/view/TextureView;->destroyHardwareLayer()V
 Landroid/view/TextureView;->destroyHardwareResources()V
 Landroid/view/TextureView;->mLayer:Landroid/view/TextureLayer;
 Landroid/view/TextureView;->mNativeWindow:J
+Landroid/view/TextureView;->mOpaque:Z
 Landroid/view/TextureView;->mSurface:Landroid/graphics/SurfaceTexture;
 Landroid/view/TextureView;->mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
+Landroid/view/TextureView;->mUpdateSurface:Z
+Landroid/view/TextureView;->nCreateNativeWindow(Landroid/graphics/SurfaceTexture;)V
+Landroid/view/TextureView;->nDestroyNativeWindow()V
+Landroid/view/TextureView;->onDetachedFromWindowInternal()V
+Landroid/view/ThreadedRenderer;->addRenderNode(Landroid/view/RenderNode;Z)V
 Landroid/view/ThreadedRenderer;->createHardwareBitmap(Landroid/view/RenderNode;II)Landroid/graphics/Bitmap;
+Landroid/view/ThreadedRenderer;->drawRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ThreadedRenderer;->removeRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ThreadedRenderer;->setContentDrawBounds(IIII)V
 Landroid/view/ThreadedRenderer;->setupDiskCache(Ljava/io/File;)V
 Landroid/view/TouchDelegate;->mDelegateTargeted:Z
 Landroid/view/VelocityTracker$Estimator;->confidence:F
@@ -3734,60 +7241,127 @@
 Landroid/view/VelocityTracker$Estimator;->xCoeff:[F
 Landroid/view/VelocityTracker$Estimator;->yCoeff:[F
 Landroid/view/VelocityTracker;->obtain(Ljava/lang/String;)Landroid/view/VelocityTracker;
+Landroid/view/View$AccessibilityDelegate;->createAccessibilityNodeInfo(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/View$AttachInfo$InvalidateInfo;-><init>()V
+Landroid/view/View$AttachInfo$InvalidateInfo;->bottom:I
+Landroid/view/View$AttachInfo$InvalidateInfo;->left:I
+Landroid/view/View$AttachInfo$InvalidateInfo;->right:I
+Landroid/view/View$AttachInfo$InvalidateInfo;->target:Landroid/view/View;
+Landroid/view/View$AttachInfo$InvalidateInfo;->top:I
+Landroid/view/View$AttachInfo;->mApplicationScale:F
 Landroid/view/View$AttachInfo;->mContentInsets:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mDisplayState:I
 Landroid/view/View$AttachInfo;->mDrawingTime:J
+Landroid/view/View$AttachInfo;->mGivenInternalInsets:Landroid/view/ViewTreeObserver$InternalInsetsInfo;
+Landroid/view/View$AttachInfo;->mHandler:Landroid/os/Handler;
+Landroid/view/View$AttachInfo;->mHasWindowFocus:Z
+Landroid/view/View$AttachInfo;->mInTouchMode:Z
+Landroid/view/View$AttachInfo;->mKeepScreenOn:Z
+Landroid/view/View$AttachInfo;->mKeyDispatchState:Landroid/view/KeyEvent$DispatcherState;
+Landroid/view/View$AttachInfo;->mRecomputeGlobalAttributes:Z
+Landroid/view/View$AttachInfo;->mScalingRequired:Z
+Landroid/view/View$AttachInfo;->mScrollContainers:Ljava/util/ArrayList;
+Landroid/view/View$AttachInfo;->mSession:Landroid/view/IWindowSession;
 Landroid/view/View$AttachInfo;->mStableInsets:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mTreeObserver:Landroid/view/ViewTreeObserver;
+Landroid/view/View$AttachInfo;->mViewScrollChanged:Z
+Landroid/view/View$AttachInfo;->mViewVisibilityChanged:Z
+Landroid/view/View$AttachInfo;->mVisibleInsets:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mWindow:Landroid/view/IWindow;
+Landroid/view/View$DragShadowBuilder;->mView:Ljava/lang/ref/WeakReference;
 Landroid/view/View$ListenerInfo;-><init>()V
 Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener;
+Landroid/view/View$ListenerInfo;->mOnCreateContextMenuListener:Landroid/view/View$OnCreateContextMenuListener;
 Landroid/view/View$ListenerInfo;->mOnDragListener:Landroid/view/View$OnDragListener;
 Landroid/view/View$ListenerInfo;->mOnFocusChangeListener:Landroid/view/View$OnFocusChangeListener;
+Landroid/view/View$ListenerInfo;->mOnGenericMotionListener:Landroid/view/View$OnGenericMotionListener;
+Landroid/view/View$ListenerInfo;->mOnHoverListener:Landroid/view/View$OnHoverListener;
+Landroid/view/View$ListenerInfo;->mOnKeyListener:Landroid/view/View$OnKeyListener;
 Landroid/view/View$ListenerInfo;->mOnLongClickListener:Landroid/view/View$OnLongClickListener;
 Landroid/view/View$ListenerInfo;->mOnTouchListener:Landroid/view/View$OnTouchListener;
+Landroid/view/View$MeasureSpec;->makeSafeMeasureSpec(II)I
+Landroid/view/View$ScrollabilityCache;->host:Landroid/view/View;
 Landroid/view/View$ScrollabilityCache;->scrollBar:Landroid/widget/ScrollBarDrawable;
-Landroid/view/View;->STATUS_BAR_DISABLE_BACK:I
-Landroid/view/View;->STATUS_BAR_DISABLE_EXPAND:I
-Landroid/view/View;->STATUS_BAR_DISABLE_HOME:I
-Landroid/view/View;->STATUS_BAR_DISABLE_RECENT:I
+Landroid/view/View$ScrollabilityCache;->state:I
+Landroid/view/View;-><init>()V
 Landroid/view/View;->applyDrawableToTransparentRegion(Landroid/graphics/drawable/Drawable;Landroid/graphics/Region;)V
+Landroid/view/View;->assignParent(Landroid/view/ViewParent;)V
+Landroid/view/View;->cancel(Landroid/view/View$SendViewScrolledAccessibilityEvent;)V
 Landroid/view/View;->clearAccessibilityFocus()V
 Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 Landroid/view/View;->computeOpaqueFlags()V
 Landroid/view/View;->createSnapshot(Landroid/view/ViewDebug$CanvasProvider;Z)Landroid/graphics/Bitmap;
+Landroid/view/View;->DBG:Z
+Landroid/view/View;->debug()V
+Landroid/view/View;->debug(I)V
+Landroid/view/View;->DEBUG_LAYOUT_PROPERTY:Ljava/lang/String;
+Landroid/view/View;->destroyHardwareResources()V
 Landroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
 Landroid/view/View;->dispatchDetachedFromWindow()V
+Landroid/view/View;->dispatchPointerEvent(Landroid/view/MotionEvent;)Z
+Landroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V
+Landroid/view/View;->ensureTransformationInfo()V
+Landroid/view/View;->findViewByAccessibilityId(I)Landroid/view/View;
 Landroid/view/View;->fitsSystemWindows()Z
+Landroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z
 Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
 Landroid/view/View;->getAccessibilityViewId()I
 Landroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V
+Landroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V
 Landroid/view/View;->getHorizontalScrollFactor()F
 Landroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix;
+Landroid/view/View;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
+Landroid/view/View;->getIteratorForGranularity(I)Landroid/view/AccessibilityIterators$TextSegmentIterator;
 Landroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo;
+Landroid/view/View;->getLocationInSurface([I)V
 Landroid/view/View;->getLocationOnScreen()[I
 Landroid/view/View;->getRawTextAlignment()I
 Landroid/view/View;->getRawTextDirection()I
+Landroid/view/View;->getScrollCache()Landroid/view/View$ScrollabilityCache;
+Landroid/view/View;->getThreadedRenderer()Landroid/view/ThreadedRenderer;
 Landroid/view/View;->getTransitionAlpha()F
 Landroid/view/View;->getVerticalScrollFactor()F
 Landroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl;
 Landroid/view/View;->getWindowDisplayFrame(Landroid/graphics/Rect;)V
+Landroid/view/View;->getWindowSession()Landroid/view/IWindowSession;
+Landroid/view/View;->hasIdentityMatrix()Z
+Landroid/view/View;->hasRtlSupport()Z
 Landroid/view/View;->hideTooltip()V
 Landroid/view/View;->includeForAccessibility()Z
 Landroid/view/View;->initializeFadingEdge(Landroid/content/res/TypedArray;)V
 Landroid/view/View;->initializeScrollbars(Landroid/content/res/TypedArray;)V
+Landroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V
 Landroid/view/View;->internalSetPadding(IIII)V
+Landroid/view/View;->invalidate(Z)V
+Landroid/view/View;->invalidateParentCaches()V
 Landroid/view/View;->invalidateParentIfNeeded()V
+Landroid/view/View;->invalidateViewProperty(ZZ)V
+Landroid/view/View;->isDraggingScrollBar()Z
+Landroid/view/View;->isInScrollingContainer()Z
+Landroid/view/View;->isLayoutRtl()Z
+Landroid/view/View;->isOnScrollbarThumb(FF)Z
 Landroid/view/View;->isPaddingResolved()Z
 Landroid/view/View;->isRootNamespace()Z
 Landroid/view/View;->isVisibleToUser()Z
 Landroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z
 Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate;
+Landroid/view/View;->mAccessibilityViewId:I
+Landroid/view/View;->makeOptionalFitsSystemWindows()V
+Landroid/view/View;->mAnimator:Landroid/view/ViewPropertyAnimator;
 Landroid/view/View;->mAttachInfo:Landroid/view/View$AttachInfo;
 Landroid/view/View;->mBackground:Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->mBackgroundResource:I
 Landroid/view/View;->mBottom:I
+Landroid/view/View;->mCachingFailed:Z
 Landroid/view/View;->mContext:Landroid/content/Context;
 Landroid/view/View;->mDrawingCache:Landroid/graphics/Bitmap;
+Landroid/view/View;->mHasPerformedLongPress:Z
+Landroid/view/View;->mKeyedTags:Landroid/util/SparseArray;
 Landroid/view/View;->mLayoutParams:Landroid/view/ViewGroup$LayoutParams;
 Landroid/view/View;->mLeft:I
 Landroid/view/View;->mListenerInfo:Landroid/view/View$ListenerInfo;
+Landroid/view/View;->mMeasuredHeight:I
+Landroid/view/View;->mMeasuredWidth:I
 Landroid/view/View;->mMinHeight:I
 Landroid/view/View;->mMinWidth:I
 Landroid/view/View;->mPaddingBottom:I
@@ -3795,10 +7369,12 @@
 Landroid/view/View;->mPaddingRight:I
 Landroid/view/View;->mPaddingTop:I
 Landroid/view/View;->mParent:Landroid/view/ViewParent;
+Landroid/view/View;->mPendingCheckForTap:Landroid/view/View$CheckForTap;
 Landroid/view/View;->mPrivateFlags2:I
 Landroid/view/View;->mPrivateFlags3:I
 Landroid/view/View;->mPrivateFlags:I
 Landroid/view/View;->mRecreateDisplayList:Z
+Landroid/view/View;->mRenderNode:Landroid/view/RenderNode;
 Landroid/view/View;->mResources:Landroid/content/res/Resources;
 Landroid/view/View;->mRight:I
 Landroid/view/View;->mScrollCache:Landroid/view/View$ScrollabilityCache;
@@ -3807,12 +7383,23 @@
 Landroid/view/View;->mStartActivityRequestWho:Ljava/lang/String;
 Landroid/view/View;->mTag:Ljava/lang/Object;
 Landroid/view/View;->mTop:I
+Landroid/view/View;->mTransformationInfo:Landroid/view/View$TransformationInfo;
 Landroid/view/View;->mUnscaledDrawingCache:Landroid/graphics/Bitmap;
+Landroid/view/View;->mVerticalScrollbarPosition:I
 Landroid/view/View;->mViewFlags:I
+Landroid/view/View;->NAVIGATION_BAR_TRANSIENT:I
 Landroid/view/View;->notifySubtreeAccessibilityStateChangedIfNeeded()V
+Landroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V
+Landroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V
+Landroid/view/View;->onDetachedFromWindowInternal()V
+Landroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 Landroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+Landroid/view/View;->onFocusLost()V
+Landroid/view/View;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
 Landroid/view/View;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/view/View;->pointInView(FFF)Z
 Landroid/view/View;->recomputePadding()V
+Landroid/view/View;->removePerformClickCallback()V
 Landroid/view/View;->requestAccessibilityFocus()Z
 Landroid/view/View;->resetDisplayList()V
 Landroid/view/View;->resetPaddingToInitialValues()V
@@ -3822,152 +7409,217 @@
 Landroid/view/View;->resetResolvedTextAlignment()V
 Landroid/view/View;->resetResolvedTextDirection()V
 Landroid/view/View;->resetRtlProperties()V
+Landroid/view/View;->resolvePadding()V
 Landroid/view/View;->setAlphaNoInvalidation(F)Z
 Landroid/view/View;->setAnimationMatrix(Landroid/graphics/Matrix;)V
 Landroid/view/View;->setAssistBlocked(Z)V
+Landroid/view/View;->setDisabledSystemUiVisibility(I)V
+Landroid/view/View;->setFlags(II)V
 Landroid/view/View;->setFrame(IIII)Z
 Landroid/view/View;->setIsRootNamespace(Z)V
 Landroid/view/View;->setLeftTopRightBottom(IIII)V
+Landroid/view/View;->setTagInternal(ILjava/lang/Object;)V
 Landroid/view/View;->setTooltip(Ljava/lang/CharSequence;)V
 Landroid/view/View;->setTransitionAlpha(F)V
 Landroid/view/View;->startActivityForResult(Landroid/content/Intent;I)V
+Landroid/view/View;->STATUS_BAR_DISABLE_BACK:I
+Landroid/view/View;->STATUS_BAR_DISABLE_EXPAND:I
+Landroid/view/View;->STATUS_BAR_DISABLE_HOME:I
+Landroid/view/View;->STATUS_BAR_DISABLE_RECENT:I
 Landroid/view/View;->toGlobalMotionEvent(Landroid/view/MotionEvent;)Z
 Landroid/view/View;->toLocalMotionEvent(Landroid/view/MotionEvent;)Z
 Landroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
 Landroid/view/View;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
+Landroid/view/View;->updateDisplayListIfDirty()Landroid/view/RenderNode;
 Landroid/view/ViewConfiguration;->getDeviceGlobalActionKeyTimeout()J
 Landroid/view/ViewConfiguration;->getDoubleTapMinTime()I
+Landroid/view/ViewConfiguration;->getDoubleTapSlop()I
+Landroid/view/ViewConfiguration;->getHoverTapSlop()I
+Landroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I
 Landroid/view/ViewConfiguration;->getScaledScrollFactor()I
+Landroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z
 Landroid/view/ViewConfiguration;->mFadingMarqueeEnabled:Z
+Landroid/view/ViewConfiguration;->sConfigurations:Landroid/util/SparseArray;
+Landroid/view/ViewConfiguration;->SCROLL_FRICTION:F
 Landroid/view/ViewConfiguration;->sHasPermanentMenuKey:Z
 Landroid/view/ViewConfiguration;->sHasPermanentMenuKeySet:Z
 Landroid/view/ViewDebug;->dispatchCommand(Landroid/view/View;Ljava/lang/String;Ljava/lang/String;Ljava/io/OutputStream;)V
 Landroid/view/ViewDebug;->dump(Landroid/view/View;ZZLjava/io/OutputStream;)V
+Landroid/view/ViewDebug;->getViewInstanceCount()J
+Landroid/view/ViewDebug;->getViewRootImplCount()J
+Landroid/view/ViewGroup$LayoutParams;-><init>()V
 Landroid/view/ViewGroup$MarginLayoutParams;->endMargin:I
+Landroid/view/ViewGroup$MarginLayoutParams;->setMarginsRelative(IIII)V
 Landroid/view/ViewGroup$MarginLayoutParams;->startMargin:I
-Landroid/view/ViewGroup;->FLAG_SUPPORT_STATIC_TRANSFORMATIONS:I
-Landroid/view/ViewGroup;->FLAG_USE_CHILD_DRAWING_ORDER:I
+Landroid/view/ViewGroup$TouchTarget;->child:Landroid/view/View;
+Landroid/view/ViewGroup;->addTransientView(Landroid/view/View;I)V
+Landroid/view/ViewGroup;->cancelTouchTarget(Landroid/view/View;)V
+Landroid/view/ViewGroup;->DBG:Z
+Landroid/view/ViewGroup;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
+Landroid/view/ViewGroup;->dispatchDetachedFromWindow()V
+Landroid/view/ViewGroup;->dispatchGetDisplayList()V
 Landroid/view/ViewGroup;->dispatchViewAdded(Landroid/view/View;)V
 Landroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V
+Landroid/view/ViewGroup;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/ViewGroup;->FLAG_DISALLOW_INTERCEPT:I
+Landroid/view/ViewGroup;->FLAG_SUPPORT_STATIC_TRANSFORMATIONS:I
+Landroid/view/ViewGroup;->FLAG_USE_CHILD_DRAWING_ORDER:I
+Landroid/view/ViewGroup;->getTransientView(I)Landroid/view/View;
+Landroid/view/ViewGroup;->getTransientViewCount()I
+Landroid/view/ViewGroup;->isTransformedTouchPointInView(FFLandroid/view/View;Landroid/graphics/PointF;)Z
+Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
 Landroid/view/ViewGroup;->mChildren:[Landroid/view/View;
 Landroid/view/ViewGroup;->mChildrenCount:I
+Landroid/view/ViewGroup;->mDisappearingChildren:Ljava/util/ArrayList;
 Landroid/view/ViewGroup;->mFirstTouchTarget:Landroid/view/ViewGroup$TouchTarget;
+Landroid/view/ViewGroup;->mFocused:Landroid/view/View;
 Landroid/view/ViewGroup;->mGroupFlags:I
 Landroid/view/ViewGroup;->mOnHierarchyChangeListener:Landroid/view/ViewGroup$OnHierarchyChangeListener;
 Landroid/view/ViewGroup;->mPersistentDrawingCache:I
-Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
 Landroid/view/ViewGroup;->offsetChildrenTopAndBottom(I)V
 Landroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V
+Landroid/view/ViewGroup;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/view/ViewGroup;->removeTransientView(Landroid/view/View;)V
 Landroid/view/ViewGroup;->resetResolvedDrawables()V
 Landroid/view/ViewGroup;->resetResolvedLayoutDirection()V
 Landroid/view/ViewGroup;->resetResolvedPadding()V
 Landroid/view/ViewGroup;->resetResolvedTextAlignment()V
 Landroid/view/ViewGroup;->resetResolvedTextDirection()V
+Landroid/view/ViewGroup;->resolvePadding()V
 Landroid/view/ViewGroup;->suppressLayout(Z)V
+Landroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;F)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;I)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;Z)V
+Landroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup;
+Landroid/view/ViewOverlay;->isEmpty()Z
+Landroid/view/ViewPropertyAnimator;->mRTBackend:Landroid/view/ViewPropertyAnimatorRT;
+Landroid/view/ViewRootImpl$CalledFromWrongThreadException;-><init>(Ljava/lang/String;)V
+Landroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V
+Landroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V
 Landroid/view/ViewRootImpl;->detachFunctor(J)V
 Landroid/view/ViewRootImpl;->dispatchInputEvent(Landroid/view/InputEvent;)V
 Landroid/view/ViewRootImpl;->dispatchInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;)V
+Landroid/view/ViewRootImpl;->dispatchKeyFromIme(Landroid/view/KeyEvent;)V
+Landroid/view/ViewRootImpl;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+Landroid/view/ViewRootImpl;->dispatchUnhandledInputEvent(Landroid/view/InputEvent;)V
+Landroid/view/ViewRootImpl;->enableHardwareAcceleration(Landroid/view/WindowManager$LayoutParams;)V
 Landroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;)V
+Landroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V
+Landroid/view/ViewRootImpl;->ensureTouchMode(Z)Z
+Landroid/view/ViewRootImpl;->getAccessibilityFocusedHost()Landroid/view/View;
+Landroid/view/ViewRootImpl;->getAccessibilityFocusedVirtualView()Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/ViewRootImpl;->getLastTouchPoint(Landroid/graphics/Point;)V
+Landroid/view/ViewRootImpl;->getView()Landroid/view/View;
 Landroid/view/ViewRootImpl;->getWindowFlags()I
+Landroid/view/ViewRootImpl;->invalidate()V
 Landroid/view/ViewRootImpl;->invokeFunctor(JZ)V
+Landroid/view/ViewRootImpl;->mAdded:Z
+Landroid/view/ViewRootImpl;->mAttachInfo:Landroid/view/View$AttachInfo;
+Landroid/view/ViewRootImpl;->mContext:Landroid/content/Context;
+Landroid/view/ViewRootImpl;->mDirty:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mFallbackEventHandler:Landroid/view/FallbackEventHandler;
+Landroid/view/ViewRootImpl;->mHeight:I
+Landroid/view/ViewRootImpl;->mLastScrolledFocus:Ljava/lang/ref/WeakReference;
 Landroid/view/ViewRootImpl;->mStopped:Z
 Landroid/view/ViewRootImpl;->mSurface:Landroid/view/Surface;
 Landroid/view/ViewRootImpl;->mView:Landroid/view/View;
-Landroid/view/ViewTreeObserver$InternalInsetsInfo;->TOUCHABLE_INSETS_REGION:I
+Landroid/view/ViewRootImpl;->mWidth:I
+Landroid/view/ViewRootImpl;->mWindowSession:Landroid/view/IWindowSession;
+Landroid/view/ViewRootImpl;->scheduleTraversals()V
+Landroid/view/ViewRootImpl;->setLocalDragState(Ljava/lang/Object;)V
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;->contentInsets:Landroid/graphics/Rect;
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;->mTouchableInsets:I
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->setTouchableInsets(I)V
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->touchableRegion:Landroid/graphics/Region;
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;->TOUCHABLE_INSETS_REGION:I
+Landroid/view/ViewTreeObserver$InternalInsetsInfo;->visibleInsets:Landroid/graphics/Rect;
 Landroid/view/ViewTreeObserver;->addOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
+Landroid/view/ViewTreeObserver;->dispatchOnComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+Landroid/view/ViewTreeObserver;->dispatchOnGlobalFocusChange(Landroid/view/View;Landroid/view/View;)V
+Landroid/view/ViewTreeObserver;->dispatchOnScrollChanged()V
+Landroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V
+Landroid/view/ViewTreeObserver;->hasComputeInternalInsetsListeners()Z
+Landroid/view/ViewTreeObserver;->mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
+Landroid/view/ViewTreeObserver;->mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
+Landroid/view/ViewTreeObserver;->mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
+Landroid/view/ViewTreeObserver;->mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
 Landroid/view/ViewTreeObserver;->removeOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
+Landroid/view/Window;->addPrivateFlags(I)V
+Landroid/view/Window;->alwaysReadCloseOnTouchAttr()V
+Landroid/view/Window;->isDestroyed()Z
 Landroid/view/Window;->mAppName:Ljava/lang/String;
 Landroid/view/Window;->mAppToken:Landroid/os/IBinder;
 Landroid/view/Window;->mCallback:Landroid/view/Window$Callback;
 Landroid/view/Window;->mContext:Landroid/content/Context;
+Landroid/view/Window;->mDestroyed:Z
+Landroid/view/Window;->mFeatures:I
 Landroid/view/Window;->mHardwareAccelerated:Z
+Landroid/view/Window;->mLocalFeatures:I
+Landroid/view/Window;->mWindowAttributes:Landroid/view/WindowManager$LayoutParams;
+Landroid/view/Window;->mWindowManager:Landroid/view/WindowManager;
 Landroid/view/Window;->mWindowStyle:Landroid/content/res/TypedArray;
+Landroid/view/Window;->setCloseOnTouchOutside(Z)V
+Landroid/view/Window;->setCloseOnTouchOutsideIfNotSet(Z)V
 Landroid/view/Window;->setNeedsMenuKey(I)V
+Landroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
 Landroid/view/WindowAnimationFrameStats;->init(J[J)V
 Landroid/view/WindowContentFrameStats;->init(J[J[J[J)V
+Landroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;)V
+Landroid/view/WindowInsets;->CONSUMED:Landroid/view/WindowInsets;
+Landroid/view/WindowInsets;->getSystemWindowInsets()Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->inset(IIII)Landroid/view/WindowInsets;
+Landroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V
+Landroid/view/WindowManager$LayoutParams;->backup()V
+Landroid/view/WindowManager$LayoutParams;->FLAG_SLIPPERY:I
+Landroid/view/WindowManager$LayoutParams;->hasSystemUiListeners:Z
+Landroid/view/WindowManager$LayoutParams;->hideTimeoutMilliseconds:J
+Landroid/view/WindowManager$LayoutParams;->inputFeatures:I
+Landroid/view/WindowManager$LayoutParams;->INPUT_FEATURE_DISABLE_USER_ACTIVITY:I
+Landroid/view/WindowManager$LayoutParams;->needsMenuKey:I
 Landroid/view/WindowManager$LayoutParams;->NEEDS_MENU_SET_FALSE:I
 Landroid/view/WindowManager$LayoutParams;->NEEDS_MENU_SET_TRUE:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_SHOW_FOR_ALL_USERS:I
+Landroid/view/WindowManager$LayoutParams;->restore()V
+Landroid/view/WindowManager$LayoutParams;->subtreeSystemUiVisibility:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_APPLICATION_MEDIA_OVERLAY:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_DISPLAY_OVERLAY:I
 Landroid/view/WindowManager$LayoutParams;->TYPE_KEYGUARD:I
-Landroid/view/WindowManager$LayoutParams;->hideTimeoutMilliseconds:J
-Landroid/view/WindowManager$LayoutParams;->needsMenuKey:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_SECURE_SYSTEM_OVERLAY:I
 Landroid/view/WindowManager$LayoutParams;->userActivityTimeout:J
 Landroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
 Landroid/view/WindowManagerGlobal;->getRootView(Ljava/lang/String;)Landroid/view/View;
+Landroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->getViewRootNames()[Ljava/lang/String;
 Landroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
+Landroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
 Landroid/view/WindowManagerGlobal;->initialize()V
 Landroid/view/WindowManagerGlobal;->mLock:Ljava/lang/Object;
 Landroid/view/WindowManagerGlobal;->mParams:Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->mRoots:Ljava/util/ArrayList;
 Landroid/view/WindowManagerGlobal;->mViews:Ljava/util/ArrayList;
+Landroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession;
+Landroid/view/WindowManagerGlobal;->removeView(Landroid/view/View;Z)V
 Landroid/view/WindowManagerGlobal;->sDefaultWindowManager:Landroid/view/WindowManagerGlobal;
 Landroid/view/WindowManagerGlobal;->sWindowManagerService:Landroid/view/IWindowManager;
 Landroid/view/WindowManagerGlobal;->sWindowSession:Landroid/view/IWindowSession;
 Landroid/view/WindowManagerGlobal;->trimMemory(I)V
 Landroid/view/WindowManagerImpl;->mGlobal:Landroid/view/WindowManagerGlobal;
-Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache()V
-Landroid/view/accessibility/AccessibilityInteractionClient;->getInstance()Landroid/view/accessibility/AccessibilityInteractionClient;
-Landroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
-Landroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
-Landroid/view/accessibility/AccessibilityManager;->mAccessibilityStateChangeListeners:Landroid/util/ArrayMap;
-Landroid/view/accessibility/AccessibilityManager;->mIsEnabled:Z
-Landroid/view/accessibility/AccessibilityManager;->mIsHighTextContrastEnabled:Z
-Landroid/view/accessibility/AccessibilityManager;->sInstance:Landroid/view/accessibility/AccessibilityManager;
-Landroid/view/accessibility/AccessibilityManager;->sInstanceSync:Ljava/lang/Object;
-Landroid/view/accessibility/AccessibilityNodeInfo;->isSealed()Z
-Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray;
-Landroid/view/accessibility/AccessibilityNodeInfo;->mSealed:Z
-Landroid/view/accessibility/AccessibilityNodeInfo;->refresh(Landroid/os/Bundle;Z)Z
-Landroid/view/accessibility/AccessibilityNodeInfo;->setSealed(Z)V
-Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J
-Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
-Landroid/view/accessibility/IAccessibilityManager;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
-Landroid/view/animation/Animation;->detach()V
-Landroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
-Landroid/view/animation/Animation;->mListener:Landroid/view/animation/Animation$AnimationListener;
-Landroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/view/inputmethod/InputMethodInfo;->mSubtypes:Landroid/view/inputmethod/InputMethodSubtypeArray;
-Landroid/view/inputmethod/InputMethodManager;->finishInputLocked()V
-Landroid/view/inputmethod/InputMethodManager;->focusIn(Landroid/view/View;)V
-Landroid/view/inputmethod/InputMethodManager;->focusOut(Landroid/view/View;)V
-Landroid/view/inputmethod/InputMethodManager;->getClient()Lcom/android/internal/view/IInputMethodClient;
-Landroid/view/inputmethod/InputMethodManager;->getInputMethodWindowVisibleHeight()I
-Landroid/view/inputmethod/InputMethodManager;->getInstance()Landroid/view/inputmethod/InputMethodManager;
-Landroid/view/inputmethod/InputMethodManager;->mCurId:Ljava/lang/String;
-Landroid/view/inputmethod/InputMethodManager;->mCurRootView:Landroid/view/View;
-Landroid/view/inputmethod/InputMethodManager;->mH:Landroid/view/inputmethod/InputMethodManager$H;
-Landroid/view/inputmethod/InputMethodManager;->mNextServedView:Landroid/view/View;
-Landroid/view/inputmethod/InputMethodManager;->mServedInputConnectionWrapper:Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;
-Landroid/view/inputmethod/InputMethodManager;->mServedView:Landroid/view/View;
-Landroid/view/inputmethod/InputMethodManager;->mService:Lcom/android/internal/view/IInputMethodManager;
-Landroid/view/inputmethod/InputMethodManager;->notifyUserAction()V
-Landroid/view/inputmethod/InputMethodManager;->peekInstance()Landroid/view/inputmethod/InputMethodManager;
-Landroid/view/inputmethod/InputMethodManager;->sInstance:Landroid/view/inputmethod/InputMethodManager;
-Landroid/view/inputmethod/InputMethodManager;->showSoftInputUnchecked(ILandroid/os/ResultReceiver;)V
-Landroid/view/inputmethod/InputMethodManager;->windowDismissed(Landroid/os/IBinder;)V
-Landroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Ljava/util/List;)V
-Landroid/view/textclassifier/TextClassificationManager;->getTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
-Landroid/view/textclassifier/TextClassifier;->classifyText(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextClassification$Options;)Landroid/view/textclassifier/TextClassification;
-Landroid/view/textclassifier/TextClassifier;->generateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks$Options;)Landroid/view/textclassifier/TextLinks;
-Landroid/view/textclassifier/TextClassifier;->suggestSelection(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextSelection$Options;)Landroid/view/textclassifier/TextSelection;
-Landroid/view/textclassifier/TextLinks$Options;-><init>()V
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;I)V
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V
-Landroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z
 Landroid/webkit/CacheManager$CacheResult;-><init>()V
+Landroid/webkit/CacheManager$CacheResult;->contentdisposition:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->contentLength:J
+Landroid/webkit/CacheManager$CacheResult;->crossDomain:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->encoding:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->etag:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->expires:J
+Landroid/webkit/CacheManager$CacheResult;->expiresString:Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getContentDisposition()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getContentLength()J
-Landroid/webkit/CacheManager$CacheResult;->getETag()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getEncoding()Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->getETag()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getExpires()J
 Landroid/webkit/CacheManager$CacheResult;->getExpiresString()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getHttpStatusCode()I
@@ -3977,28 +7629,67 @@
 Landroid/webkit/CacheManager$CacheResult;->getLocation()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getMimeType()Ljava/lang/String;
 Landroid/webkit/CacheManager$CacheResult;->getOutputStream()Ljava/io/OutputStream;
+Landroid/webkit/CacheManager$CacheResult;->httpStatusCode:I
+Landroid/webkit/CacheManager$CacheResult;->inStream:Ljava/io/InputStream;
+Landroid/webkit/CacheManager$CacheResult;->lastModified:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->localPath:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->location:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->mimeType:Ljava/lang/String;
+Landroid/webkit/CacheManager$CacheResult;->outFile:Ljava/io/File;
+Landroid/webkit/CacheManager$CacheResult;->outStream:Ljava/io/OutputStream;
 Landroid/webkit/CacheManager$CacheResult;->setEncoding(Ljava/lang/String;)V
 Landroid/webkit/CacheManager$CacheResult;->setInputStream(Ljava/io/InputStream;)V
 Landroid/webkit/CacheManager;->cacheDisabled()Z
 Landroid/webkit/CacheManager;->endCacheTransaction()Z
 Landroid/webkit/CacheManager;->getCacheFile(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;
 Landroid/webkit/CacheManager;->getCacheFileBaseDir()Ljava/io/File;
+Landroid/webkit/CacheManager;->saveCacheFile(Ljava/lang/String;JLandroid/webkit/CacheManager$CacheResult;)V
 Landroid/webkit/CacheManager;->saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V
 Landroid/webkit/CacheManager;->startCacheTransaction()Z
+Landroid/webkit/ConsoleMessage;->mLevel:Landroid/webkit/ConsoleMessage$MessageLevel;
+Landroid/webkit/ConsoleMessage;->mLineNumber:I
+Landroid/webkit/ConsoleMessage;->mMessage:Ljava/lang/String;
+Landroid/webkit/ConsoleMessage;->mSourceId:Ljava/lang/String;
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
+Landroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
+Landroid/webkit/IWebViewUpdateService;->getCurrentWebViewPackageName()Ljava/lang/String;
+Landroid/webkit/IWebViewUpdateService;->getValidWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+Landroid/webkit/IWebViewUpdateService;->isFallbackPackage(Ljava/lang/String;)Z
+Landroid/webkit/JsResult;->mReceiver:Landroid/webkit/JsResult$ResultReceiver;
+Landroid/webkit/PluginData;-><init>(Ljava/io/InputStream;JLjava/util/Map;I)V
+Landroid/webkit/PluginData;->getContentLength()J
+Landroid/webkit/PluginData;->getHeaders()Ljava/util/Map;
+Landroid/webkit/PluginData;->getInputStream()Ljava/io/InputStream;
+Landroid/webkit/PluginData;->getStatusCode()I
+Landroid/webkit/UrlInterceptHandler;->getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;
+Landroid/webkit/UrlInterceptHandler;->service(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;
+Landroid/webkit/UrlInterceptRegistry;->getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;
+Landroid/webkit/UrlInterceptRegistry;->registerHandler(Landroid/webkit/UrlInterceptHandler;)Z
+Landroid/webkit/UrlInterceptRegistry;->setUrlInterceptDisabled(Z)V
+Landroid/webkit/UrlInterceptRegistry;->unregisterHandler(Landroid/webkit/UrlInterceptHandler;)Z
+Landroid/webkit/URLUtil;->isResourceUrl(Ljava/lang/String;)Z
+Landroid/webkit/URLUtil;->parseContentDisposition(Ljava/lang/String;)Ljava/lang/String;
+Landroid/webkit/URLUtil;->verifyURLEncoding(Ljava/lang/String;)Z
 Landroid/webkit/WebResourceResponse;->mImmutable:Z
+Landroid/webkit/WebResourceResponse;->mStatusCode:I
 Landroid/webkit/WebSettings$TextSize;->value:I
 Landroid/webkit/WebSettings;->getPluginsPath()Ljava/lang/String;
 Landroid/webkit/WebSettings;->getUseDoubleTree()Z
 Landroid/webkit/WebSettings;->setPluginsPath(Ljava/lang/String;)V
 Landroid/webkit/WebSettings;->setUseDoubleTree(Z)V
 Landroid/webkit/WebSyncManager;->mHandler:Landroid/os/Handler;
+Landroid/webkit/WebSyncManager;->syncFromRamToFlash()V
+Landroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILjava/util/Map;Z)V
+Landroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;ILjava/util/Map;Z)V
+Landroid/webkit/WebView;->checkThread()V
 Landroid/webkit/WebView;->debugDump()V
 Landroid/webkit/WebView;->disablePlatformNotifications()V
 Landroid/webkit/WebView;->emulateShiftHeld()V
 Landroid/webkit/WebView;->enablePlatformNotifications()V
+Landroid/webkit/WebView;->freeMemoryForTests()V
 Landroid/webkit/WebView;->getContentWidth()I
+Landroid/webkit/WebView;->getFactory()Landroid/webkit/WebViewFactoryProvider;
 Landroid/webkit/WebView;->getPluginList()Landroid/webkit/PluginList;
 Landroid/webkit/WebView;->getTouchIconUrl()Ljava/lang/String;
 Landroid/webkit/WebView;->getVisibleTitleHeight()I
@@ -4010,25 +7701,38 @@
 Landroid/webkit/WebView;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 Landroid/webkit/WebView;->refreshPlugins(Z)V
 Landroid/webkit/WebView;->restorePicture(Landroid/os/Bundle;Ljava/io/File;)Z
-Landroid/webkit/WebView;->sEnforceThreadChecking:Z
 Landroid/webkit/WebView;->savePicture(Landroid/os/Bundle;Ljava/io/File;)Z
+Landroid/webkit/WebView;->sEnforceThreadChecking:Z
+Landroid/webkit/WebView;->setFrame(IIII)Z
 Landroid/webkit/WebViewClient;->onUnhandledInputEvent(Landroid/webkit/WebView;Landroid/view/InputEvent;)V
 Landroid/webkit/WebViewDelegate;-><init>()V
 Landroid/webkit/WebViewFactory;->getProvider()Landroid/webkit/WebViewFactoryProvider;
+Landroid/webkit/WebViewFactory;->getProviderClass()Ljava/lang/Class;
 Landroid/webkit/WebViewFactory;->getUpdateService()Landroid/webkit/IWebViewUpdateService;
 Landroid/webkit/WebViewFactory;->getWebViewContextAndSetProvider()Landroid/content/Context;
 Landroid/webkit/WebViewFactory;->sPackageInfo:Landroid/content/pm/PackageInfo;
 Landroid/webkit/WebViewFactory;->sProviderInstance:Landroid/webkit/WebViewFactoryProvider;
+Landroid/webkit/WebViewProviderInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/webkit/WebViewProviderResponse;->packageInfo:Landroid/content/pm/PackageInfo;
+Landroid/webkit/WebViewUpdateService;-><init>()V
 Landroid/widget/AbsListView$FlingRunnable;->endFling()V
 Landroid/widget/AbsListView$FlingRunnable;->mScroller:Landroid/widget/OverScroller;
 Landroid/widget/AbsListView$FlingRunnable;->start(I)V
+Landroid/widget/AbsListView$LayoutParams;->scrappedFromPosition:I
+Landroid/widget/AbsListView$LayoutParams;->viewType:I
 Landroid/widget/AbsListView$RecycleBin;->clear()V
 Landroid/widget/AbsListView$RecycleBin;->mRecyclerListener:Landroid/widget/AbsListView$RecyclerListener;
 Landroid/widget/AbsListView$SavedState;->firstId:J
 Landroid/widget/AbsListView$SavedState;->viewTop:I
+Landroid/widget/AbsListView;->canScrollDown()Z
+Landroid/widget/AbsListView;->canScrollUp()Z
+Landroid/widget/AbsListView;->findMotionRow(I)I
 Landroid/widget/AbsListView;->invokeOnItemScrollListener()V
 Landroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
+Landroid/widget/AbsListView;->mActivePointerId:I
 Landroid/widget/AbsListView;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/widget/AbsListView;->mChoiceActionMode:Landroid/view/ActionMode;
+Landroid/widget/AbsListView;->mContextMenuInfo:Landroid/view/ContextMenu$ContextMenuInfo;
 Landroid/widget/AbsListView;->mDataSetObserver:Landroid/widget/AbsListView$AdapterDataSetObserver;
 Landroid/widget/AbsListView;->mEdgeGlowBottom:Landroid/widget/EdgeEffect;
 Landroid/widget/AbsListView;->mEdgeGlowTop:Landroid/widget/EdgeEffect;
@@ -4038,11 +7742,18 @@
 Landroid/widget/AbsListView;->mLayoutMode:I
 Landroid/widget/AbsListView;->mMaximumVelocity:I
 Landroid/widget/AbsListView;->mMotionPosition:I
+Landroid/widget/AbsListView;->mMotionY:I
 Landroid/widget/AbsListView;->mOnScrollListener:Landroid/widget/AbsListView$OnScrollListener;
+Landroid/widget/AbsListView;->mOverflingDistance:I
+Landroid/widget/AbsListView;->mOverscrollDistance:I
 Landroid/widget/AbsListView;->mPendingCheckForLongPress:Landroid/widget/AbsListView$CheckForLongPress;
 Landroid/widget/AbsListView;->mPendingCheckForTap:Landroid/widget/AbsListView$CheckForTap;
+Landroid/widget/AbsListView;->mPopup:Landroid/widget/PopupWindow;
+Landroid/widget/AbsListView;->mPositionScroller:Landroid/widget/AbsListView$AbsPositionScroller;
 Landroid/widget/AbsListView;->mRecycler:Landroid/widget/AbsListView$RecycleBin;
+Landroid/widget/AbsListView;->mSelectionBottomPadding:I
 Landroid/widget/AbsListView;->mSelectionTopPadding:I
+Landroid/widget/AbsListView;->mSelector:Landroid/graphics/drawable/Drawable;
 Landroid/widget/AbsListView;->mSelectorPosition:I
 Landroid/widget/AbsListView;->mSelectorRect:Landroid/graphics/Rect;
 Landroid/widget/AbsListView;->mTouchMode:I
@@ -4050,46 +7761,119 @@
 Landroid/widget/AbsListView;->mVelocityTracker:Landroid/view/VelocityTracker;
 Landroid/widget/AbsListView;->performLongPress(Landroid/view/View;IJ)Z
 Landroid/widget/AbsListView;->performLongPress(Landroid/view/View;IJFF)Z
+Landroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V
 Landroid/widget/AbsListView;->reportScrollStateChange(I)V
+Landroid/widget/AbsListView;->resurrectSelectionIfNeeded()Z
 Landroid/widget/AbsListView;->smoothScrollBy(IIZZ)V
 Landroid/widget/AbsListView;->trackMotionScroll(II)Z
+Landroid/widget/AbsListView;->updateSelectorState()V
+Landroid/widget/AbsSeekBar;->mDisabledAlpha:F
 Landroid/widget/AbsSeekBar;->mIsDragging:Z
+Landroid/widget/AbsSeekBar;->mIsUserSeekable:Z
 Landroid/widget/AbsSeekBar;->mSplitTrack:Z
 Landroid/widget/AbsSeekBar;->mThumb:Landroid/graphics/drawable/Drawable;
 Landroid/widget/AbsSeekBar;->mTouchProgressOffset:F
+Landroid/widget/AbsSeekBar;->trackTouchEvent(Landroid/view/MotionEvent;)V
+Landroid/widget/ActionMenuPresenter;->dismissPopupMenus()Z
+Landroid/widget/ActionMenuPresenter;->isOverflowMenuShowing()Z
+Landroid/widget/ActionMenuPresenter;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+Landroid/widget/ActionMenuPresenter;->onSaveInstanceState()Landroid/os/Parcelable;
+Landroid/widget/ActionMenuView$ActionMenuChildView;->needsDividerBefore()Z
+Landroid/widget/ActionMenuView$LayoutParams;->cellsUsed:I
+Landroid/widget/ActionMenuView$LayoutParams;->expandable:Z
+Landroid/widget/ActionMenuView$LayoutParams;->expanded:Z
+Landroid/widget/ActionMenuView$LayoutParams;->extraPixels:I
+Landroid/widget/ActionMenuView$LayoutParams;->isOverflowButton:Z
+Landroid/widget/ActionMenuView$LayoutParams;->preventEdgeOffset:Z
+Landroid/widget/ActionMenuView;->hasDividerBeforeChildAt(I)Z
+Landroid/widget/ActionMenuView;->isOverflowMenuShowPending()Z
+Landroid/widget/ActionMenuView;->isOverflowReserved()Z
+Landroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder;
+Landroid/widget/ActionMenuView;->setExpandedActionViewsExclusive(Z)V
+Landroid/widget/ActionMenuView;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Landroid/widget/ActivityChooserModel;->chooseActivity(I)Landroid/content/Intent;
 Landroid/widget/ActivityChooserModel;->get(Landroid/content/Context;Ljava/lang/String;)Landroid/widget/ActivityChooserModel;
+Landroid/widget/ActivityChooserModel;->getActivity(I)Landroid/content/pm/ResolveInfo;
+Landroid/widget/ActivityChooserModel;->getActivityCount()I
+Landroid/widget/ActivityChooserModel;->setIntent(Landroid/content/Intent;)V
+Landroid/widget/ActivityChooserModel;->setOnChooseActivityListener(Landroid/widget/ActivityChooserModel$OnChooseActivityListener;)V
 Landroid/widget/ActivityChooserView;->setExpandActivityOverflowButtonDrawable(Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/AdapterView;->mDataChanged:Z
 Landroid/widget/AdapterView;->mFirstPosition:I
+Landroid/widget/AdapterView;->mNeedSync:Z
 Landroid/widget/AdapterView;->mNextSelectedPosition:I
 Landroid/widget/AdapterView;->mNextSelectedRowId:J
 Landroid/widget/AdapterView;->mOldSelectedPosition:I
+Landroid/widget/AdapterView;->mOnItemClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/widget/AdapterView;->mOnItemSelectedListener:Landroid/widget/AdapterView$OnItemSelectedListener;
+Landroid/widget/AdapterView;->mSelectedPosition:I
+Landroid/widget/AdapterView;->mSyncPosition:I
+Landroid/widget/AdapterView;->selectionChanged()V
 Landroid/widget/AdapterView;->setNextSelectedPositionInt(I)V
 Landroid/widget/AdapterView;->setSelectedPositionInt(I)V
+Landroid/widget/AnalogClock;->mDial:Landroid/graphics/drawable/Drawable;
+Landroid/widget/AnalogClock;->mHourHand:Landroid/graphics/drawable/Drawable;
+Landroid/widget/AnalogClock;->mMinuteHand:Landroid/graphics/drawable/Drawable;
+Landroid/widget/AppSecurityPermissions;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/widget/AppSecurityPermissions;->getPermissionCount()I
+Landroid/widget/AppSecurityPermissions;->getPermissionsView()Landroid/view/View;
+Landroid/widget/ArrayAdapter;->mLock:Ljava/lang/Object;
+Landroid/widget/ArrayAdapter;->mObjects:Ljava/util/List;
+Landroid/widget/ArrayAdapter;->mOriginalValues:Ljava/util/ArrayList;
 Landroid/widget/AutoCompleteTextView;->doAfterTextChanged()V
 Landroid/widget/AutoCompleteTextView;->doBeforeTextChanged()V
 Landroid/widget/AutoCompleteTextView;->ensureImeVisible(Z)V
+Landroid/widget/AutoCompleteTextView;->isInputMethodNotNeeded()Z
+Landroid/widget/AutoCompleteTextView;->mHintView:Landroid/widget/TextView;
+Landroid/widget/AutoCompleteTextView;->mObserver:Landroid/widget/AutoCompleteTextView$PopupDataSetObserver;
+Landroid/widget/AutoCompleteTextView;->mPassThroughClickListener:Landroid/widget/AutoCompleteTextView$PassThroughClickListener;
 Landroid/widget/AutoCompleteTextView;->mPopup:Landroid/widget/ListPopupWindow;
 Landroid/widget/AutoCompleteTextView;->setDropDownAlwaysVisible(Z)V
+Landroid/widget/AutoCompleteTextView;->setDropDownAnimationStyle(I)V
+Landroid/widget/AutoCompleteTextView;->setDropDownDismissedOnCompletion(Z)V
 Landroid/widget/AutoCompleteTextView;->setForceIgnoreOutsideTouch(Z)V
+Landroid/widget/AutoCompleteTextView;->showDropDownAfterLayout()V
 Landroid/widget/BaseAdapter;->mDataSetObservable:Landroid/database/DataSetObservable;
+Landroid/widget/CalendarView;->mDelegate:Landroid/widget/CalendarView$CalendarViewDelegate;
+Landroid/widget/CheckedTextView;->mCheckMarkDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/CheckedTextView;->mCheckMarkGravity:I
 Landroid/widget/CompoundButton;->mBroadcasting:Z
 Landroid/widget/CompoundButton;->mButtonDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/CompoundButton;->mOnCheckedChangeListener:Landroid/widget/CompoundButton$OnCheckedChangeListener;
 Landroid/widget/CursorAdapter;->mChangeObserver:Landroid/widget/CursorAdapter$ChangeObserver;
+Landroid/widget/CursorAdapter;->mContext:Landroid/content/Context;
+Landroid/widget/CursorAdapter;->mCursor:Landroid/database/Cursor;
 Landroid/widget/CursorAdapter;->mDataSetObserver:Landroid/database/DataSetObserver;
 Landroid/widget/CursorAdapter;->mDataValid:Z
 Landroid/widget/CursorAdapter;->mRowIDColumn:I
 Landroid/widget/DatePicker;->mDelegate:Landroid/widget/DatePicker$DatePickerDelegate;
+Landroid/widget/DatePicker;->setValidationCallback(Landroid/widget/DatePicker$ValidationCallback;)V
+Landroid/widget/DateTimeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/widget/DateTimeView;->setTime(J)V
+Landroid/widget/DateTimeView;->update()V
+Landroid/widget/EdgeEffect;->mGlowScaleY:F
 Landroid/widget/EdgeEffect;->mPaint:Landroid/graphics/Paint;
+Landroid/widget/Editor$InputContentType;->privateImeOptions:Ljava/lang/String;
 Landroid/widget/Editor;->invalidateTextDisplayList()V
+Landroid/widget/Editor;->mCreatedWithASelection:Z
 Landroid/widget/Editor;->mInsertionControllerEnabled:Z
+Landroid/widget/Editor;->mSelectHandleCenter:Landroid/graphics/drawable/Drawable;
 Landroid/widget/Editor;->mSelectHandleLeft:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor;->mSelectHandleRight:Landroid/graphics/drawable/Drawable;
 Landroid/widget/Editor;->mSelectionControllerEnabled:Z
 Landroid/widget/Editor;->mShowCursor:J
 Landroid/widget/Editor;->mShowSoftInputOnFocus:Z
+Landroid/widget/ExpandableListView;->GROUP_STATE_SETS:[[I
 Landroid/widget/ExpandableListView;->mChildDivider:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ExpandableListView;->mConnector:Landroid/widget/ExpandableListConnector;
 Landroid/widget/ExpandableListView;->mGroupIndicator:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ExpandableListView;->mIndicatorLeft:I
+Landroid/widget/ExpandableListView;->mIndicatorRight:I
+Landroid/widget/ExpandableListView;->mOnChildClickListener:Landroid/widget/ExpandableListView$OnChildClickListener;
+Landroid/widget/ExpandableListView;->mOnGroupClickListener:Landroid/widget/ExpandableListView$OnGroupClickListener;
+Landroid/widget/ExpandableListView;->mOnGroupCollapseListener:Landroid/widget/ExpandableListView$OnGroupCollapseListener;
+Landroid/widget/ExpandableListView;->mOnGroupExpandListener:Landroid/widget/ExpandableListView$OnGroupExpandListener;
+Landroid/widget/FastScroller;-><init>(Landroid/widget/AbsListView;I)V
 Landroid/widget/FastScroller;->mContainerRect:Landroid/graphics/Rect;
 Landroid/widget/FastScroller;->mHeaderCount:I
 Landroid/widget/FastScroller;->mLongList:Z
@@ -4098,96 +7882,210 @@
 Landroid/widget/FastScroller;->mThumbImage:Landroid/widget/ImageView;
 Landroid/widget/FastScroller;->mTrackDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/FastScroller;->mTrackImage:Landroid/widget/ImageView;
+Landroid/widget/FastScroller;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
+Landroid/widget/FastScroller;->onSizeChanged(IIII)V
+Landroid/widget/FastScroller;->onTouchEvent(Landroid/view/MotionEvent;)Z
+Landroid/widget/FastScroller;->remove()V
+Landroid/widget/FastScroller;->setState(I)V
+Landroid/widget/Filter;->setDelayer(Landroid/widget/Filter$Delayer;)V
+Landroid/widget/FrameLayout;->mForegroundPaddingBottom:I
+Landroid/widget/FrameLayout;->mForegroundPaddingLeft:I
+Landroid/widget/FrameLayout;->mForegroundPaddingRight:I
+Landroid/widget/FrameLayout;->mForegroundPaddingTop:I
+Landroid/widget/FrameLayout;->mMeasureAllChildren:Z
 Landroid/widget/Gallery$FlingRunnable;->startUsingVelocity(I)V
 Landroid/widget/Gallery;->fillToGalleryLeft()V
 Landroid/widget/Gallery;->fillToGalleryRight()V
+Landroid/widget/Gallery;->getCenterOfGallery()I
+Landroid/widget/Gallery;->getCenterOfView(Landroid/view/View;)I
+Landroid/widget/Gallery;->makeAndAddView(IIIZ)Landroid/view/View;
 Landroid/widget/Gallery;->mDownTouchPosition:I
 Landroid/widget/Gallery;->mDownTouchView:Landroid/view/View;
 Landroid/widget/Gallery;->mFlingRunnable:Landroid/widget/Gallery$FlingRunnable;
-Landroid/widget/Gallery;->mSpacing:I
-Landroid/widget/Gallery;->makeAndAddView(IIIZ)Landroid/view/View;
+Landroid/widget/Gallery;->mGestureDetector:Landroid/view/GestureDetector;
 Landroid/widget/Gallery;->moveDirection(I)Z
+Landroid/widget/Gallery;->mSelectedChild:Landroid/view/View;
+Landroid/widget/Gallery;->mSpacing:I
+Landroid/widget/Gallery;->trackMotionScroll(I)V
+Landroid/widget/GridLayout;->UNDEFINED_ALIGNMENT:Landroid/widget/GridLayout$Alignment;
 Landroid/widget/GridView;->fillDown(II)Landroid/view/View;
 Landroid/widget/GridView;->fillUp(II)Landroid/view/View;
 Landroid/widget/GridView;->mColumnWidth:I
 Landroid/widget/GridView;->mHorizontalSpacing:I
 Landroid/widget/GridView;->mNumColumns:I
+Landroid/widget/GridView;->mRequestedColumnWidth:I
+Landroid/widget/GridView;->mRequestedHorizontalSpacing:I
 Landroid/widget/GridView;->mRequestedNumColumns:I
 Landroid/widget/GridView;->mVerticalSpacing:I
+Landroid/widget/GridView;->sequenceScroll(I)Z
+Landroid/widget/HeaderViewListAdapter;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/widget/HeaderViewListAdapter;->mFooterViewInfos:Ljava/util/ArrayList;
+Landroid/widget/HeaderViewListAdapter;->mHeaderViewInfos:Ljava/util/ArrayList;
 Landroid/widget/HorizontalScrollView;->mChildToScrollTo:Landroid/view/View;
 Landroid/widget/HorizontalScrollView;->mEdgeGlowLeft:Landroid/widget/EdgeEffect;
 Landroid/widget/HorizontalScrollView;->mEdgeGlowRight:Landroid/widget/EdgeEffect;
+Landroid/widget/HorizontalScrollView;->mIsBeingDragged:Z
+Landroid/widget/HorizontalScrollView;->mLastMotionX:I
+Landroid/widget/HorizontalScrollView;->mOverflingDistance:I
+Landroid/widget/HorizontalScrollView;->mOverscrollDistance:I
 Landroid/widget/HorizontalScrollView;->mScroller:Landroid/widget/OverScroller;
+Landroid/widget/HorizontalScrollView;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/widget/HorizontalScrollView;->recycleVelocityTracker()V
 Landroid/widget/ImageView;->animateTransform(Landroid/graphics/Matrix;)V
 Landroid/widget/ImageView;->mAdjustViewBounds:Z
 Landroid/widget/ImageView;->mAlpha:I
+Landroid/widget/ImageView;->mCropToPadding:Z
+Landroid/widget/ImageView;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ImageView;->mDrawableHeight:I
+Landroid/widget/ImageView;->mDrawableWidth:I
 Landroid/widget/ImageView;->mDrawMatrix:Landroid/graphics/Matrix;
 Landroid/widget/ImageView;->mMaxHeight:I
 Landroid/widget/ImageView;->mMaxWidth:I
 Landroid/widget/ImageView;->mRecycleableBitmapDrawable:Landroid/graphics/drawable/BitmapDrawable;
 Landroid/widget/ImageView;->mResource:I
 Landroid/widget/ImageView;->mUri:Landroid/net/Uri;
+Landroid/widget/ImageView;->resizeFromDrawable()V
+Landroid/widget/ImageView;->resolveUri()V
+Landroid/widget/ImageView;->scaleTypeToScaleToFit(Landroid/widget/ImageView$ScaleType;)Landroid/graphics/Matrix$ScaleToFit;
+Landroid/widget/ImageView;->setImageResourceAsync(I)Ljava/lang/Runnable;
+Landroid/widget/ImageView;->setImageURIAsync(Landroid/net/Uri;)Ljava/lang/Runnable;
 Landroid/widget/ImageView;->updateDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/LinearLayout$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/LinearLayout;->INDEX_BOTTOM:I
+Landroid/widget/LinearLayout;->INDEX_TOP:I
+Landroid/widget/LinearLayout;->mDivider:Landroid/graphics/drawable/Drawable;
 Landroid/widget/LinearLayout;->mGravity:I
+Landroid/widget/LinearLayout;->mMaxAscent:[I
+Landroid/widget/LinearLayout;->mMaxDescent:[I
+Landroid/widget/LinearLayout;->mTotalLength:I
 Landroid/widget/LinearLayout;->mUseLargestChild:Z
+Landroid/widget/ListPopupWindow;->buildDropDown()I
+Landroid/widget/ListPopupWindow;->isDropDownAlwaysVisible()Z
+Landroid/widget/ListPopupWindow;->mDropDownList:Landroid/widget/DropDownListView;
 Landroid/widget/ListPopupWindow;->mPopup:Landroid/widget/PopupWindow;
+Landroid/widget/ListPopupWindow;->setDropDownAlwaysVisible(Z)V
 Landroid/widget/ListPopupWindow;->setForceIgnoreOutsideTouch(Z)V
+Landroid/widget/ListPopupWindow;->setListItemExpandMax(I)V
+Landroid/widget/ListView;->arrowScroll(I)Z
+Landroid/widget/ListView;->correctTooHigh(I)V
+Landroid/widget/ListView;->correctTooLow(I)V
 Landroid/widget/ListView;->fillDown(II)Landroid/view/View;
 Landroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
 Landroid/widget/ListView;->fillUp(II)Landroid/view/View;
 Landroid/widget/ListView;->findViewTraversal(I)Landroid/view/View;
 Landroid/widget/ListView;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
+Landroid/widget/ListView;->getHeightForPosition(I)I
 Landroid/widget/ListView;->lookForSelectablePosition(IZ)I
+Landroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
 Landroid/widget/ListView;->mAreAllItemsSelectable:Z
+Landroid/widget/ListView;->mDivider:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ListView;->mDividerHeight:I
+Landroid/widget/ListView;->measureHeightOfChildren(IIIII)I
 Landroid/widget/ListView;->mFooterViewInfos:Ljava/util/ArrayList;
 Landroid/widget/ListView;->mHeaderViewInfos:Ljava/util/ArrayList;
+Landroid/widget/ListView;->scrollListItemsBy(I)V
 Landroid/widget/ListView;->setSelectionInt(I)V
+Landroid/widget/ListView;->trackMotionScroll(II)Z
 Landroid/widget/MediaController;->mAnchor:Landroid/view/View;
+Landroid/widget/MediaController;->mContext:Landroid/content/Context;
+Landroid/widget/MediaController;->mCurrentTime:Landroid/widget/TextView;
 Landroid/widget/MediaController;->mDecor:Landroid/view/View;
 Landroid/widget/MediaController;->mDecorLayoutParams:Landroid/view/WindowManager$LayoutParams;
+Landroid/widget/MediaController;->mEndTime:Landroid/widget/TextView;
+Landroid/widget/MediaController;->mFfwdButton:Landroid/widget/ImageButton;
+Landroid/widget/MediaController;->mFfwdListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mNextButton:Landroid/widget/ImageButton;
+Landroid/widget/MediaController;->mPauseButton:Landroid/widget/ImageButton;
+Landroid/widget/MediaController;->mPlayer:Landroid/widget/MediaController$MediaPlayerControl;
+Landroid/widget/MediaController;->mPrevButton:Landroid/widget/ImageButton;
+Landroid/widget/MediaController;->mProgress:Landroid/widget/ProgressBar;
+Landroid/widget/MediaController;->mRewButton:Landroid/widget/ImageButton;
+Landroid/widget/MediaController;->mRewListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mRoot:Landroid/view/View;
+Landroid/widget/MediaController;->mSeekListener:Landroid/widget/SeekBar$OnSeekBarChangeListener;
+Landroid/widget/MediaController;->mShowing:Z
+Landroid/widget/MediaController;->mWindow:Landroid/view/Window;
 Landroid/widget/MediaController;->mWindowManager:Landroid/view/WindowManager;
+Landroid/widget/MediaController;->updatePausePlay()V
+Landroid/widget/NumberPicker;->changeValueByOne(Z)V
+Landroid/widget/NumberPicker;->getTwoDigitFormatter()Landroid/widget/NumberPicker$Formatter;
 Landroid/widget/NumberPicker;->initializeSelectorWheelIndices()V
+Landroid/widget/NumberPicker;->mFlingScroller:Landroid/widget/Scroller;
 Landroid/widget/NumberPicker;->mInputText:Landroid/widget/EditText;
+Landroid/widget/NumberPicker;->mMaximumFlingVelocity:I
 Landroid/widget/NumberPicker;->mMaxValue:I
+Landroid/widget/NumberPicker;->mMinHeight:I
+Landroid/widget/NumberPicker;->mMinWidth:I
+Landroid/widget/NumberPicker;->mOnValueChangeListener:Landroid/widget/NumberPicker$OnValueChangeListener;
 Landroid/widget/NumberPicker;->mSelectionDivider:Landroid/graphics/drawable/Drawable;
 Landroid/widget/NumberPicker;->mSelectionDividerHeight:I
+Landroid/widget/NumberPicker;->mSelectorIndices:[I
 Landroid/widget/NumberPicker;->mSelectorWheelPaint:Landroid/graphics/Paint;
+Landroid/widget/NumberPicker;->mTextSize:I
+Landroid/widget/NumberPicker;->SELECTOR_MIDDLE_ITEM_INDEX:I
+Landroid/widget/NumberPicker;->SELECTOR_WHEEL_ITEM_COUNT:I
 Landroid/widget/OverScroller$SplineOverScroller;->mCurrVelocity:F
+Landroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
+Landroid/widget/OverScroller;->extendDuration(I)V
 Landroid/widget/OverScroller;->isScrollingInDirection(FF)Z
+Landroid/widget/OverScroller;->mInterpolator:Landroid/view/animation/Interpolator;
 Landroid/widget/OverScroller;->mScrollerY:Landroid/widget/OverScroller$SplineOverScroller;
+Landroid/widget/OverScroller;->setInterpolator(Landroid/view/animation/Interpolator;)V
+Landroid/widget/PopupMenu;->mContext:Landroid/content/Context;
 Landroid/widget/PopupMenu;->mPopup:Lcom/android/internal/view/menu/MenuPopupHelper;
 Landroid/widget/PopupWindow;->computeAnimationResource()I
 Landroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams;
 Landroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V
 Landroid/widget/PopupWindow;->mAboveAnchor:Z
+Landroid/widget/PopupWindow;->mAboveAnchorBackgroundDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/PopupWindow;->mAnchor:Ljava/lang/ref/WeakReference;
 Landroid/widget/PopupWindow;->mAnimationStyle:I
 Landroid/widget/PopupWindow;->mBackgroundView:Landroid/view/View;
+Landroid/widget/PopupWindow;->mBelowAnchorBackgroundDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/PopupWindow;->mContentView:Landroid/view/View;
+Landroid/widget/PopupWindow;->mContext:Landroid/content/Context;
+Landroid/widget/PopupWindow;->mDecorView:Landroid/widget/PopupWindow$PopupDecorView;
 Landroid/widget/PopupWindow;->mHeightMode:I
 Landroid/widget/PopupWindow;->mIsDropdown:Z
 Landroid/widget/PopupWindow;->mIsShowing:Z
 Landroid/widget/PopupWindow;->mLastHeight:I
 Landroid/widget/PopupWindow;->mLastWidth:I
+Landroid/widget/PopupWindow;->mLayoutInScreen:Z
+Landroid/widget/PopupWindow;->mNotTouchModal:Z
+Landroid/widget/PopupWindow;->mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener;
 Landroid/widget/PopupWindow;->mOnScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
 Landroid/widget/PopupWindow;->mOverlapAnchor:Z
 Landroid/widget/PopupWindow;->mTouchInterceptor:Landroid/view/View$OnTouchListener;
 Landroid/widget/PopupWindow;->mWidthMode:I
 Landroid/widget/PopupWindow;->mWindowLayoutType:I
+Landroid/widget/PopupWindow;->mWindowManager:Landroid/view/WindowManager;
 Landroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V
+Landroid/widget/PopupWindow;->setAllowScrollingAnchorParent(Z)V
 Landroid/widget/PopupWindow;->setClipToScreenEnabled(Z)V
 Landroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V
 Landroid/widget/PopupWindow;->setLayoutInScreenEnabled(Z)V
 Landroid/widget/PopupWindow;->setLayoutInsetDecor(Z)V
 Landroid/widget/PopupWindow;->setTouchModal(Z)V
 Landroid/widget/PopupWindow;->showAtLocation(Landroid/os/IBinder;III)V
+Landroid/widget/PopupWindow;->updateAboveAnchor(Z)V
 Landroid/widget/ProgressBar;->mCurrentDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/ProgressBar;->mDuration:I
 Landroid/widget/ProgressBar;->mIndeterminate:Z
 Landroid/widget/ProgressBar;->mMaxHeight:I
 Landroid/widget/ProgressBar;->mMinHeight:I
+Landroid/widget/ProgressBar;->mMinWidth:I
+Landroid/widget/ProgressBar;->mMirrorForRtl:Z
 Landroid/widget/ProgressBar;->mOnlyIndeterminate:Z
+Landroid/widget/ProgressBar;->refreshProgress(IIZZ)V
 Landroid/widget/ProgressBar;->setProgressInternal(IZZ)Z
+Landroid/widget/ProgressBar;->startAnimation()V
+Landroid/widget/ProgressBar;->stopAnimation()V
+Landroid/widget/ProgressBar;->tileify(Landroid/graphics/drawable/Drawable;Z)Landroid/graphics/drawable/Drawable;
+Landroid/widget/QuickContactBadge;->mOverlay:Landroid/graphics/drawable/Drawable;
+Landroid/widget/RadioGroup;->mChildOnCheckedChangeListener:Landroid/widget/CompoundButton$OnCheckedChangeListener;
+Landroid/widget/RadioGroup;->mOnCheckedChangeListener:Landroid/widget/RadioGroup$OnCheckedChangeListener;
+Landroid/widget/RatingBar;->mOnRatingBarChangeListener:Landroid/widget/RatingBar$OnRatingBarChangeListener;
+Landroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V
 Landroid/widget/RelativeLayout$LayoutParams;->mBottom:I
 Landroid/widget/RelativeLayout$LayoutParams;->mLeft:I
 Landroid/widget/RelativeLayout$LayoutParams;->mRight:I
@@ -4198,95 +8096,253 @@
 Landroid/widget/RemoteViews$BitmapCache;->mBitmaps:Ljava/util/ArrayList;
 Landroid/widget/RemoteViews$BitmapReflectionAction;->bitmap:Landroid/graphics/Bitmap;
 Landroid/widget/RemoteViews$BitmapReflectionAction;->methodName:Ljava/lang/String;
+Landroid/widget/RemoteViews$OnClickHandler;-><init>()V
+Landroid/widget/RemoteViews$OnClickHandler;->onClickHandler(Landroid/view/View;Landroid/app/PendingIntent;Landroid/content/Intent;)Z
 Landroid/widget/RemoteViews$ReflectionAction;->methodName:Ljava/lang/String;
 Landroid/widget/RemoteViews$ReflectionAction;->value:Ljava/lang/Object;
 Landroid/widget/RemoteViews$SetOnClickPendingIntent;->pendingIntent:Landroid/app/PendingIntent;
 Landroid/widget/RemoteViews$SetPendingIntentTemplate;->pendingIntentTemplate:Landroid/app/PendingIntent;
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->mNestedViews:Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViews;->addView(ILandroid/widget/RemoteViews;I)V
 Landroid/widget/RemoteViews;->estimateMemoryUsage()I
 Landroid/widget/RemoteViews;->mActions:Ljava/util/ArrayList;
 Landroid/widget/RemoteViews;->mApplication:Landroid/content/pm/ApplicationInfo;
 Landroid/widget/RemoteViews;->mBitmapCache:Landroid/widget/RemoteViews$BitmapCache;
+Landroid/widget/RemoteViews;->mergeRemoteViews(Landroid/widget/RemoteViews;)V
 Landroid/widget/RemoteViews;->mLayoutId:I
 Landroid/widget/RemoteViews;->mPortrait:Landroid/widget/RemoteViews;
-Landroid/widget/RemoteViews;->mergeRemoteViews(Landroid/widget/RemoteViews;)V
+Landroid/widget/RemoteViews;->setIsWidgetCollectionChild(Z)V
+Landroid/widget/RemoteViews;->setRemoteAdapter(ILjava/util/ArrayList;I)V
+Landroid/widget/RemoteViewsAdapter;->getRemoteViewsServiceIntent()Landroid/content/Intent;
+Landroid/widget/RemoteViewsAdapter;->isDataReady()Z
 Landroid/widget/RemoteViewsAdapter;->mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
 Landroid/widget/RemoteViewsAdapter;->mWorkerThread:Landroid/os/HandlerThread;
+Landroid/widget/RemoteViewsAdapter;->saveRemoteViewsCache()V
+Landroid/widget/RemoteViewsAdapter;->setRemoteViewsOnClickHandler(Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/RemoteViewsAdapter;->setVisibleRangeHint(II)V
 Landroid/widget/ScrollBarDrawable;->mVerticalThumb:Landroid/graphics/drawable/Drawable;
 Landroid/widget/ScrollBarDrawable;->setHorizontalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/ScrollBarDrawable;->setVerticalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/Scroller;->DECELERATION_RATE:F
+Landroid/widget/Scroller;->INFLEXION:F
+Landroid/widget/Scroller;->mDeceleration:F
+Landroid/widget/Scroller;->mDuration:I
+Landroid/widget/Scroller;->mInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/Scroller;->mPhysicalCoeff:F
+Landroid/widget/ScrollView;->canScroll()Z
+Landroid/widget/ScrollView;->endDrag()V
 Landroid/widget/ScrollView;->mChildToScrollTo:Landroid/view/View;
 Landroid/widget/ScrollView;->mEdgeGlowBottom:Landroid/widget/EdgeEffect;
 Landroid/widget/ScrollView;->mEdgeGlowTop:Landroid/widget/EdgeEffect;
+Landroid/widget/ScrollView;->mFlingStrictSpan:Landroid/os/StrictMode$Span;
 Landroid/widget/ScrollView;->mIsBeingDragged:Z
+Landroid/widget/ScrollView;->mLastMotionY:I
+Landroid/widget/ScrollView;->mLastScroll:J
 Landroid/widget/ScrollView;->mMinimumVelocity:I
 Landroid/widget/ScrollView;->mOverflingDistance:I
 Landroid/widget/ScrollView;->mOverscrollDistance:I
 Landroid/widget/ScrollView;->mScroller:Landroid/widget/OverScroller;
-Landroid/widget/Scroller;->mInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/ScrollView;->mVelocityTracker:Landroid/view/VelocityTracker;
 Landroid/widget/SearchView$SearchAutoComplete;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/widget/SearchView;->mClearingFocus:Z
 Landroid/widget/SearchView;->mCloseButton:Landroid/widget/ImageView;
+Landroid/widget/SearchView;->mCollapsedImeOptions:I
+Landroid/widget/SearchView;->mExpandedInActionView:Z
+Landroid/widget/SearchView;->mIconified:Z
+Landroid/widget/SearchView;->mIconifiedByDefault:Z
+Landroid/widget/SearchView;->mOnClickListener:Landroid/view/View$OnClickListener;
+Landroid/widget/SearchView;->mOnItemClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/widget/SearchView;->mOnQueryChangeListener:Landroid/widget/SearchView$OnQueryTextListener;
 Landroid/widget/SearchView;->mSearchButton:Landroid/widget/ImageView;
+Landroid/widget/SearchView;->mSearchEditFrame:Landroid/view/View;
+Landroid/widget/SearchView;->mSearchHintIcon:Landroid/graphics/drawable/Drawable;
 Landroid/widget/SearchView;->mSearchPlate:Landroid/view/View;
 Landroid/widget/SearchView;->mSearchSrcTextView:Landroid/widget/SearchView$SearchAutoComplete;
+Landroid/widget/SearchView;->mSubmitArea:Landroid/view/View;
+Landroid/widget/SearchView;->mSuggestionsAdapter:Landroid/widget/CursorAdapter;
+Landroid/widget/SearchView;->mUserQuery:Ljava/lang/CharSequence;
+Landroid/widget/SearchView;->mVoiceButton:Landroid/widget/ImageView;
+Landroid/widget/SearchView;->mVoiceButtonEnabled:Z
 Landroid/widget/SearchView;->onCloseClicked()V
 Landroid/widget/SearchView;->setQuery(Ljava/lang/CharSequence;)V
+Landroid/widget/SearchView;->updateSubmitArea()V
+Landroid/widget/SearchView;->updateSubmitButton(Z)V
+Landroid/widget/SearchView;->updateViewsVisibility(Z)V
+Landroid/widget/SeekBar;->mOnSeekBarChangeListener:Landroid/widget/SeekBar$OnSeekBarChangeListener;
+Landroid/widget/SeekBar;->onProgressRefresh(FZI)V
+Landroid/widget/SimpleAdapter;->mData:Ljava/util/List;
+Landroid/widget/SimpleCursorAdapter;->mFrom:[I
+Landroid/widget/SimpleCursorAdapter;->mTo:[I
 Landroid/widget/SlidingDrawer;->mTopOffset:I
+Landroid/widget/SlidingDrawer;->mTouchDelta:I
+Landroid/widget/SlidingDrawer;->mTracking:Z
+Landroid/widget/SlidingDrawer;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/widget/SlidingDrawer;->prepareContent()V
+Landroid/widget/SlidingDrawer;->prepareTracking(I)V
+Landroid/widget/Spinner$DialogPopup;->isShowing()Z
+Landroid/widget/Spinner$SpinnerPopup;->isShowing()Z
+Landroid/widget/Spinner;->mForwardingListener:Landroid/widget/ForwardingListener;
 Landroid/widget/Spinner;->mPopup:Landroid/widget/Spinner$SpinnerPopup;
+Landroid/widget/Spinner;->setOnItemClickListenerInt(Landroid/widget/AdapterView$OnItemClickListener;)V
+Landroid/widget/Switch;->cancelPositionAnimator()V
+Landroid/widget/Switch;->mOffLayout:Landroid/text/Layout;
+Landroid/widget/Switch;->mOnLayout:Landroid/text/Layout;
+Landroid/widget/Switch;->mSwitchHeight:I
+Landroid/widget/Switch;->mSwitchMinWidth:I
+Landroid/widget/Switch;->mSwitchWidth:I
 Landroid/widget/Switch;->mThumbDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Switch;->mThumbWidth:I
 Landroid/widget/Switch;->mTrackDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Switch;->setThumbPosition(F)V
 Landroid/widget/TabHost$IntentContentStrategy;->getContentView()Landroid/view/View;
 Landroid/widget/TabHost$IntentContentStrategy;->tabClosed()V
 Landroid/widget/TabHost$TabSpec;->mContentStrategy:Landroid/widget/TabHost$ContentStrategy;
 Landroid/widget/TabHost$TabSpec;->mIndicatorStrategy:Landroid/widget/TabHost$IndicatorStrategy;
+Landroid/widget/TabHost;->mCurrentTab:I
+Landroid/widget/TabHost;->mOnTabChangeListener:Landroid/widget/TabHost$OnTabChangeListener;
 Landroid/widget/TabHost;->mTabSpecs:Ljava/util/List;
 Landroid/widget/TabWidget;->mDrawBottomStrips:Z
 Landroid/widget/TabWidget;->mSelectedTab:I
 Landroid/widget/TabWidget;->setTabSelectionListener(Landroid/widget/TabWidget$OnTabSelectionChanged;)V
-Landroid/widget/TextView;->LINES:I
+Landroid/widget/TextClock;->getFormat()Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->onTimeChanged()V
+Landroid/widget/TextView$SavedState;->text:Ljava/lang/CharSequence;
 Landroid/widget/TextView;->assumeLayout()V
+Landroid/widget/TextView;->bringTextIntoView()Z
+Landroid/widget/TextView;->checkForRelayout()V
+Landroid/widget/TextView;->compressText(F)Z
 Landroid/widget/TextView;->createEditorIfNeeded()V
+Landroid/widget/TextView;->deleteText_internal(II)V
+Landroid/widget/TextView;->getHintLayout()Landroid/text/Layout;
 Landroid/widget/TextView;->getHorizontallyScrolling()Z
+Landroid/widget/TextView;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
+Landroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment;
+Landroid/widget/TextView;->getLineAtCoordinate(F)I
 Landroid/widget/TextView;->getTextColor(Landroid/content/Context;Landroid/content/res/TypedArray;I)I
 Landroid/widget/TextView;->getTextColors(Landroid/content/Context;Landroid/content/res/TypedArray;)Landroid/content/res/ColorStateList;
+Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
+Landroid/widget/TextView;->getTextForAccessibility()Ljava/lang/CharSequence;
+Landroid/widget/TextView;->getTextServicesLocale(Z)Ljava/util/Locale;
+Landroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path;
+Landroid/widget/TextView;->getVerticalOffset(Z)I
 Landroid/widget/TextView;->isSingleLine()Z
-Landroid/widget/TextView;->mCurTextColor:I
+Landroid/widget/TextView;->isTextEditable()Z
+Landroid/widget/TextView;->LINES:I
+Landroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V
+Landroid/widget/TextView;->mAllowTransformationLengthChange:Z
+Landroid/widget/TextView;->mBoring:Landroid/text/BoringLayout$Metrics;
+Landroid/widget/TextView;->mBufferType:Landroid/widget/TextView$BufferType;
+Landroid/widget/TextView;->mChangeWatcher:Landroid/widget/TextView$ChangeWatcher;
+Landroid/widget/TextView;->mCharWrapper:Landroid/widget/TextView$CharWrapper;
+Landroid/widget/TextView;->mCurHintTextColor:I
 Landroid/widget/TextView;->mCursorDrawableRes:I
+Landroid/widget/TextView;->mCurTextColor:I
+Landroid/widget/TextView;->mDesiredHeightAtMeasure:I
+Landroid/widget/TextView;->mDrawables:Landroid/widget/TextView$Drawables;
+Landroid/widget/TextView;->mEditableFactory:Landroid/text/Editable$Factory;
 Landroid/widget/TextView;->mEditor:Landroid/widget/Editor;
+Landroid/widget/TextView;->mGravity:I
+Landroid/widget/TextView;->mHighlightColor:I
+Landroid/widget/TextView;->mHighlightPaint:Landroid/graphics/Paint;
+Landroid/widget/TextView;->mHighlightPathBogus:Z
+Landroid/widget/TextView;->mHintBoring:Landroid/text/BoringLayout$Metrics;
+Landroid/widget/TextView;->mHintLayout:Landroid/text/Layout;
+Landroid/widget/TextView;->mHorizontallyScrolling:Z
+Landroid/widget/TextView;->mIncludePad:Z
+Landroid/widget/TextView;->mLayout:Landroid/text/Layout;
 Landroid/widget/TextView;->mListeners:Ljava/util/ArrayList;
 Landroid/widget/TextView;->mMarquee:Landroid/widget/TextView$Marquee;
-Landroid/widget/TextView;->mMaxMode:I
+Landroid/widget/TextView;->mMarqueeFadeMode:I
 Landroid/widget/TextView;->mMaximum:I
+Landroid/widget/TextView;->mMaxMode:I
+Landroid/widget/TextView;->mMaxWidth:I
+Landroid/widget/TextView;->mMaxWidthMode:I
+Landroid/widget/TextView;->mMinimum:I
+Landroid/widget/TextView;->mMinWidth:I
+Landroid/widget/TextView;->mMinWidthMode:I
+Landroid/widget/TextView;->mOldMaximum:I
+Landroid/widget/TextView;->mOldMaxMode:I
+Landroid/widget/TextView;->mRestartMarquee:Z
+Landroid/widget/TextView;->mSavedHintLayout:Landroid/text/BoringLayout;
+Landroid/widget/TextView;->mSavedLayout:Landroid/text/BoringLayout;
+Landroid/widget/TextView;->mSavedMarqueeModeLayout:Landroid/text/Layout;
+Landroid/widget/TextView;->mShadowDx:F
+Landroid/widget/TextView;->mShadowDy:F
+Landroid/widget/TextView;->mShadowRadius:F
 Landroid/widget/TextView;->mSingleLine:Z
+Landroid/widget/TextView;->mSpacingAdd:F
+Landroid/widget/TextView;->mSpacingMult:F
+Landroid/widget/TextView;->mSpannableFactory:Landroid/text/Spannable$Factory;
 Landroid/widget/TextView;->mText:Ljava/lang/CharSequence;
+Landroid/widget/TextView;->mTextDir:Landroid/text/TextDirectionHeuristic;
 Landroid/widget/TextView;->mTextPaint:Landroid/text/TextPaint;
+Landroid/widget/TextView;->mTextSelectHandleLeftRes:I
+Landroid/widget/TextView;->mTextSelectHandleRes:I
+Landroid/widget/TextView;->mTextSelectHandleRightRes:I
+Landroid/widget/TextView;->mTransformed:Ljava/lang/CharSequence;
+Landroid/widget/TextView;->mUserSetTextScaleX:Z
+Landroid/widget/TextView;->nullLayouts()V
+Landroid/widget/TextView;->setInputType(IZ)V
+Landroid/widget/TextView;->setRawTextSize(FZ)V
 Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V
+Landroid/widget/TextView;->startMarquee()V
+Landroid/widget/TextView;->startStopMarquee(Z)V
+Landroid/widget/TextView;->stopTextActionMode()V
+Landroid/widget/TextView;->viewportToContentVerticalOffset()I
+Landroid/widget/TimePicker;->mDelegate:Landroid/widget/TimePicker$TimePickerDelegate;
+Landroid/widget/Toast$TN;->handleHide()V
+Landroid/widget/Toast$TN;->mGravity:I
 Landroid/widget/Toast$TN;->mNextView:Landroid/view/View;
 Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
 Landroid/widget/Toast$TN;->mView:Landroid/view/View;
+Landroid/widget/Toast$TN;->mY:I
+Landroid/widget/Toast$TN;->show(Landroid/os/IBinder;)V
 Landroid/widget/Toast;->getService()Landroid/app/INotificationManager;
 Landroid/widget/Toast;->getWindowParams()Landroid/view/WindowManager$LayoutParams;
 Landroid/widget/Toast;->mDuration:I
 Landroid/widget/Toast;->mTN:Landroid/widget/Toast$TN;
 Landroid/widget/Toast;->sService:Landroid/app/INotificationManager;
+Landroid/widget/Toolbar;->mNavButtonView:Landroid/widget/ImageButton;
+Landroid/widget/Toolbar;->mTitleMarginBottom:I
+Landroid/widget/Toolbar;->mTitleMarginEnd:I
+Landroid/widget/Toolbar;->mTitleMarginStart:I
+Landroid/widget/Toolbar;->mTitleMarginTop:I
+Landroid/widget/Toolbar;->mTitleTextView:Landroid/widget/TextView;
 Landroid/widget/VideoView2$OnViewTypeChangedListener;->onViewTypeChanged(Landroid/view/View;I)V
 Landroid/widget/VideoView2;->getMediaController()Landroid/media/session/MediaController;
 Landroid/widget/VideoView2;->setOnViewTypeChangedListener(Landroid/widget/VideoView2$OnViewTypeChangedListener;)V
 Landroid/widget/VideoView2;->setVideoPath(Ljava/lang/String;)V
 Landroid/widget/VideoView;->mCurrentBufferPercentage:I
+Landroid/widget/VideoView;->mCurrentState:I
+Landroid/widget/VideoView;->mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
+Landroid/widget/VideoView;->mHeaders:Ljava/util/Map;
 Landroid/widget/VideoView;->mMediaController:Landroid/widget/MediaController;
+Landroid/widget/VideoView;->mMediaPlayer:Landroid/media/MediaPlayer;
+Landroid/widget/VideoView;->mPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
 Landroid/widget/VideoView;->mSHCallback:Landroid/view/SurfaceHolder$Callback;
+Landroid/widget/VideoView;->mSurfaceHolder:Landroid/view/SurfaceHolder;
+Landroid/widget/VideoView;->mTargetState:I
 Landroid/widget/VideoView;->mUri:Landroid/net/Uri;
 Landroid/widget/VideoView;->mVideoHeight:I
 Landroid/widget/VideoView;->mVideoWidth:I
+Landroid/widget/VideoView;->release(Z)V
+Landroid/widget/VideoView;->STATE_IDLE:I
 Landroid/widget/ViewAnimator;->mFirstTime:Z
 Landroid/widget/ViewAnimator;->mWhichChild:I
+Landroid/widget/ViewAnimator;->showOnly(IZ)V
+Landroid/widget/ViewFlipper;->mUserPresent:Z
+Landroid/widget/ViewFlipper;->updateRunning(Z)V
+Landroid/widget/ZoomControls;->mZoomIn:Landroid/widget/ZoomButton;
+Landroid/widget/ZoomControls;->mZoomOut:Landroid/widget/ZoomButton;
 Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->serialVersionUID:J
 Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->serialVersionUID:J
 Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->serialVersionUID:J
 Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->serialVersionUID:J
 Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->serialVersionUID:J
+Lcom/android/ims/ImsConfigListener$Stub;-><init>()V
 Lcom/android/ims/ImsConfigListener;->onSetFeatureResponse(IIII)V
+Lcom/android/ims/internal/IImsCallSession$Stub;-><init>()V
+Lcom/android/ims/internal/IImsCallSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsCallSession;
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionConferenceStateUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsConferenceState;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionHandover(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionHandoverFailed(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
@@ -4300,29 +8356,44 @@
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionMergeStarted(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionMultipartyStateChanged(Lcom/android/ims/internal/IImsCallSession;Z)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionProgressing(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionResumed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionResumeFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionResumeReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
-Lcom/android/ims/internal/IImsCallSessionListener;->callSessionResumed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
-Lcom/android/ims/internal/IImsCallSessionListener;->callSessionStartFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionStarted(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionStartFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionSuppServiceReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsSuppServiceNotification;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionTerminated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionTtyModeReceived(Lcom/android/ims/internal/IImsCallSession;I)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsConfig$Stub;-><init>()V
+Lcom/android/ims/internal/IImsEcbm$Stub;-><init>()V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationAssociatedUriChanged([Landroid/net/Uri;)V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationChangeFailed(ILandroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsRegistrationListener;->registrationConnected()V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationConnectedWithRadioTech(I)V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationDisconnected(Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationFeatureCapabilityChanged(I[I[I)V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationProgressingWithRadioTech(I)V
 Lcom/android/ims/internal/IImsRegistrationListener;->voiceMessageCountUpdate(I)V
+Lcom/android/ims/internal/IImsService$Stub;-><init>()V
+Lcom/android/ims/internal/IImsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsService;
+Lcom/android/ims/internal/IImsUt$Stub;-><init>()V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationCallBarringQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationCallForwardQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsCallForwardInfo;)V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationCallWaitingQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationQueried(Lcom/android/ims/internal/IImsUt;ILandroid/os/Bundle;)V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationQueryFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
-Lcom/android/ims/internal/IImsUtListener;->utConfigurationUpdateFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsUtListener;->utConfigurationUpdated(Lcom/android/ims/internal/IImsUt;I)V
+Lcom/android/ims/internal/IImsUtListener;->utConfigurationUpdateFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->changeCallDataUsage(J)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->changeCameraCapabilities(Landroid/telecom/VideoProfile$CameraCapabilities;)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->changePeerDimensions(II)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->changeVideoQuality(I)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->handleCallSessionEvent(I)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->receiveSessionModifyRequest(Landroid/telecom/VideoProfile;)V
+Lcom/android/ims/internal/IImsVideoCallCallback;->receiveSessionModifyResponse(ILandroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;-><init>()V
+Lcom/android/ims/internal/IImsVideoCallProvider;->setCallback(Lcom/android/ims/internal/IImsVideoCallCallback;)V
 Lcom/android/ims/internal/uce/common/CapInfo;-><init>()V
 Lcom/android/ims/internal/uce/common/CapInfo;->getCapTimestamp()J
 Lcom/android/ims/internal/uce/common/CapInfo;->isCdViaPresenceSupported()Z
@@ -4491,21 +8562,365 @@
 Lcom/android/ims/internal/uce/uceservice/IUceService;->isServiceStarted()Z
 Lcom/android/ims/internal/uce/uceservice/IUceService;->startService(Lcom/android/ims/internal/uce/uceservice/IUceListener;)Z
 Lcom/android/ims/internal/uce/uceservice/IUceService;->stopService()Z
+Lcom/android/internal/app/AlertController$AlertParams;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/app/AlertController$AlertParams;->apply(Lcom/android/internal/app/AlertController;)V
+Lcom/android/internal/app/AlertController$AlertParams;->mAdapter:Landroid/widget/ListAdapter;
+Lcom/android/internal/app/AlertController$AlertParams;->mCancelable:Z
+Lcom/android/internal/app/AlertController$AlertParams;->mCheckedItem:I
+Lcom/android/internal/app/AlertController$AlertParams;->mCheckedItems:[Z
+Lcom/android/internal/app/AlertController$AlertParams;->mContext:Landroid/content/Context;
+Lcom/android/internal/app/AlertController$AlertParams;->mCursor:Landroid/database/Cursor;
+Lcom/android/internal/app/AlertController$AlertParams;->mCustomTitleView:Landroid/view/View;
+Lcom/android/internal/app/AlertController$AlertParams;->mIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/app/AlertController$AlertParams;->mIconId:I
+Lcom/android/internal/app/AlertController$AlertParams;->mInflater:Landroid/view/LayoutInflater;
+Lcom/android/internal/app/AlertController$AlertParams;->mIsCheckedColumn:Ljava/lang/String;
+Lcom/android/internal/app/AlertController$AlertParams;->mIsMultiChoice:Z
+Lcom/android/internal/app/AlertController$AlertParams;->mIsSingleChoice:Z
+Lcom/android/internal/app/AlertController$AlertParams;->mItems:[Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mLabelColumn:Ljava/lang/String;
+Lcom/android/internal/app/AlertController$AlertParams;->mMessage:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mNegativeButtonListener:Landroid/content/DialogInterface$OnClickListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mNegativeButtonText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mNeutralButtonListener:Landroid/content/DialogInterface$OnClickListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mNeutralButtonText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnCancelListener:Landroid/content/DialogInterface$OnCancelListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnCheckboxClickListener:Landroid/content/DialogInterface$OnMultiChoiceClickListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnClickListener:Landroid/content/DialogInterface$OnClickListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnDismissListener:Landroid/content/DialogInterface$OnDismissListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnItemSelectedListener:Landroid/widget/AdapterView$OnItemSelectedListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mOnKeyListener:Landroid/content/DialogInterface$OnKeyListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mPositiveButtonListener:Landroid/content/DialogInterface$OnClickListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mPositiveButtonText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController$AlertParams;->mView:Landroid/view/View;
+Lcom/android/internal/app/AlertController$RecycleListView;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/app/AlertController$RecycleListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Lcom/android/internal/app/AlertController;-><init>(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)V
+Lcom/android/internal/app/AlertController;->getButton(I)Landroid/widget/Button;
+Lcom/android/internal/app/AlertController;->getListView()Landroid/widget/ListView;
+Lcom/android/internal/app/AlertController;->installContent()V
+Lcom/android/internal/app/AlertController;->mCustomTitleView:Landroid/view/View;
+Lcom/android/internal/app/AlertController;->mForceInverseBackground:Z
+Lcom/android/internal/app/AlertController;->mTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController;->mView:Landroid/view/View;
+Lcom/android/internal/app/AlertController;->onKeyDown(ILandroid/view/KeyEvent;)Z
+Lcom/android/internal/app/AlertController;->onKeyUp(ILandroid/view/KeyEvent;)Z
+Lcom/android/internal/app/AlertController;->setButton(ILjava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;Landroid/os/Message;)V
+Lcom/android/internal/app/AlertController;->setCustomTitle(Landroid/view/View;)V
+Lcom/android/internal/app/AlertController;->setIcon(I)V
+Lcom/android/internal/app/AlertController;->setIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/app/AlertController;->setMessage(Ljava/lang/CharSequence;)V
+Lcom/android/internal/app/AlertController;->setTitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/app/AlertController;->setView(Landroid/view/View;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setMode(IILjava/lang/String;I)V
+Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_checkAudioOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_checkOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_checkPackage:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_finishOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_getOpsForPackage:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_getPackagesForOps:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_noteOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_noteProxyOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_removeUser:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_resetAllModes:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_setAudioRestriction:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_setMode:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_setUidMode:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_setUserRestriction:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_setUserRestrictions:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_startOperation:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_startWatchingMode:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_stopWatchingMode:I
+Lcom/android/internal/app/IAppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService;->getPackagesForOps([I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService;->resetAllModes(ILjava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService;->setMode(IILjava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Lcom/android/internal/app/IBatteryStats$Stub;-><init>()V
+Lcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
+Lcom/android/internal/app/IBatteryStats;->computeChargeTimeRemaining()J
+Lcom/android/internal/app/IBatteryStats;->getAwakeTimeBattery()J
+Lcom/android/internal/app/IBatteryStats;->getStatistics()[B
+Lcom/android/internal/app/IBatteryStats;->isCharging()Z
+Lcom/android/internal/app/IBatteryStats;->noteFullWifiLockAcquired(I)V
+Lcom/android/internal/app/IBatteryStats;->noteFullWifiLockReleased(I)V
+Lcom/android/internal/app/IBatteryStats;->notePhoneDataConnectionState(IZ)V
+Lcom/android/internal/app/IBatteryStats;->notePhoneOff()V
+Lcom/android/internal/app/IBatteryStats;->notePhoneOn()V
+Lcom/android/internal/app/IBatteryStats;->notePhoneSignalStrength(Landroid/telephony/SignalStrength;)V
+Lcom/android/internal/app/IBatteryStats;->notePhoneState(I)V
+Lcom/android/internal/app/IBatteryStats;->noteScreenBrightness(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStartSensor(II)V
+Lcom/android/internal/app/IBatteryStats;->noteStopSensor(II)V
+Lcom/android/internal/app/IBatteryStats;->noteUserActivity(II)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiMulticastDisabled(I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiMulticastEnabled(I)V
+Lcom/android/internal/app/IMediaContainerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IMediaContainerService;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
+Lcom/android/internal/app/IVoiceInteractionManagerService;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+Lcom/android/internal/appwidget/IAppWidgetHost;->providerChanged(ILandroid/appwidget/AppWidgetProviderInfo;)V
+Lcom/android/internal/appwidget/IAppWidgetHost;->updateAppWidget(ILandroid/widget/RemoteViews;)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;-><init>()V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_bindAppWidgetId:I
+Lcom/android/internal/appwidget/IAppWidgetService;->bindAppWidgetId(Ljava/lang/String;IILandroid/content/ComponentName;Landroid/os/Bundle;)Z
+Lcom/android/internal/appwidget/IAppWidgetService;->bindRemoteViewsService(Ljava/lang/String;ILandroid/content/Intent;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/IServiceConnection;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService;->getAppWidgetIds(Landroid/content/ComponentName;)[I
+Lcom/android/internal/backup/IBackupTransport$Stub;-><init>()V
+Lcom/android/internal/backup/IBackupTransport$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/backup/IBackupTransport;
+Lcom/android/internal/backup/IBackupTransport;->clearBackupData(Landroid/content/pm/PackageInfo;)I
+Lcom/android/internal/backup/IBackupTransport;->finishBackup()I
+Lcom/android/internal/backup/IBackupTransport;->finishRestore()V
+Lcom/android/internal/backup/IBackupTransport;->getRestoreData(Landroid/os/ParcelFileDescriptor;)I
+Lcom/android/internal/backup/IBackupTransport;->initializeDevice()I
+Lcom/android/internal/backup/IBackupTransport;->requestBackupTime()J
+Lcom/android/internal/backup/IBackupTransport;->startRestore(J[Landroid/content/pm/PackageInfo;)I
+Lcom/android/internal/backup/IBackupTransport;->transportDirName()Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;-><init>()V
+Lcom/android/internal/content/PackageMonitor;->isPackageDisappearing(Ljava/lang/String;)I
+Lcom/android/internal/content/PackageMonitor;->isPackageModified(Ljava/lang/String;)Z
+Lcom/android/internal/content/PackageMonitor;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
+Lcom/android/internal/content/PackageMonitor;->onPackageRemoved(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Landroid/os/UserHandle;Z)V
+Lcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Z)V
+Lcom/android/internal/content/PackageMonitor;->unregister()V
+Lcom/android/internal/content/ReferrerIntent;-><init>(Landroid/content/Intent;Ljava/lang/String;)V
+Lcom/android/internal/content/ReferrerIntent;->mReferrer:Ljava/lang/String;
+Lcom/android/internal/location/ILocationProvider$Stub;-><init>()V
+Lcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
+Lcom/android/internal/location/ILocationProvider;->disable()V
+Lcom/android/internal/location/ILocationProvider;->enable()V
+Lcom/android/internal/location/ILocationProvider;->getProperties()Lcom/android/internal/location/ProviderProperties;
+Lcom/android/internal/location/ILocationProvider;->getStatus(Landroid/os/Bundle;)I
+Lcom/android/internal/location/ILocationProvider;->getStatusUpdateTime()J
+Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/String;Landroid/os/Bundle;)Z
+Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+Lcom/android/internal/location/ProviderRequest;-><init>()V
+Lcom/android/internal/location/ProviderRequest;->interval:J
+Lcom/android/internal/location/ProviderRequest;->locationRequests:Ljava/util/List;
+Lcom/android/internal/location/ProviderRequest;->reportLocation:Z
+Lcom/android/internal/logging/MetricsLogger;-><init>()V
+Lcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
+Lcom/android/internal/net/LegacyVpnInfo;-><init>()V
+Lcom/android/internal/net/LegacyVpnInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/net/LegacyVpnInfo;->key:Ljava/lang/String;
+Lcom/android/internal/net/LegacyVpnInfo;->state:I
+Lcom/android/internal/net/VpnConfig;-><init>()V
+Lcom/android/internal/net/VpnProfile;-><init>(Landroid/os/Parcel;)V
+Lcom/android/internal/net/VpnProfile;->decode(Ljava/lang/String;[B)Lcom/android/internal/net/VpnProfile;
+Lcom/android/internal/net/VpnProfile;->key:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->name:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->saveLogin:Z
+Lcom/android/internal/net/VpnProfile;->server:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->type:I
+Lcom/android/internal/net/VpnProfile;->username:Ljava/lang/String;
+Lcom/android/internal/os/AtomicFile;-><init>(Ljava/io/File;)V
+Lcom/android/internal/os/AtomicFile;->failWrite(Ljava/io/FileOutputStream;)V
+Lcom/android/internal/os/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
+Lcom/android/internal/os/AtomicFile;->getBaseFile()Ljava/io/File;
+Lcom/android/internal/os/AtomicFile;->openAppend()Ljava/io/FileOutputStream;
+Lcom/android/internal/os/AtomicFile;->openRead()Ljava/io/FileInputStream;
+Lcom/android/internal/os/AtomicFile;->readFully()[B
+Lcom/android/internal/os/AtomicFile;->startWrite()Ljava/io/FileOutputStream;
+Lcom/android/internal/os/AtomicFile;->truncate()V
+Lcom/android/internal/os/BatterySipper$DrainType;->APP:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->values()[Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper;-><init>(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
+Lcom/android/internal/os/BatterySipper;->add(Lcom/android/internal/os/BatterySipper;)V
+Lcom/android/internal/os/BatterySipper;->cpuFgTimeMs:J
+Lcom/android/internal/os/BatterySipper;->cpuPowerMah:D
+Lcom/android/internal/os/BatterySipper;->cpuTimeMs:J
+Lcom/android/internal/os/BatterySipper;->drainType:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper;->getPackages()[Ljava/lang/String;
+Lcom/android/internal/os/BatterySipper;->getUid()I
+Lcom/android/internal/os/BatterySipper;->gpsTimeMs:J
+Lcom/android/internal/os/BatterySipper;->mPackages:[Ljava/lang/String;
+Lcom/android/internal/os/BatterySipper;->packageWithHighestDrain:Ljava/lang/String;
+Lcom/android/internal/os/BatterySipper;->totalPowerMah:D
+Lcom/android/internal/os/BatterySipper;->uidObj:Landroid/os/BatteryStats$Uid;
+Lcom/android/internal/os/BatterySipper;->usageTimeMs:J
+Lcom/android/internal/os/BatterySipper;->userId:I
+Lcom/android/internal/os/BatterySipper;->wakeLockTimeMs:J
+Lcom/android/internal/os/BatterySipper;->wifiRunningTimeMs:J
+Lcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;Z)V
+Lcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;ZZ)V
+Lcom/android/internal/os/BatteryStatsHelper;->clearStats()V
+Lcom/android/internal/os/BatteryStatsHelper;->create(Landroid/os/Bundle;)V
+Lcom/android/internal/os/BatteryStatsHelper;->dropFile(Landroid/content/Context;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsHelper;->getBatteryBroadcast()Landroid/content/Intent;
+Lcom/android/internal/os/BatteryStatsHelper;->getMaxPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getStats()Landroid/os/BatteryStats;
+Lcom/android/internal/os/BatteryStatsHelper;->getTotalPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getUsageList()Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->load()V
+Lcom/android/internal/os/BatteryStatsHelper;->mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
+Lcom/android/internal/os/BatteryStatsHelper;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
+Lcom/android/internal/os/BatteryStatsHelper;->mUsageList:Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->refreshStats(II)V
+Lcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;)V
+Lcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILjava/util/List;)V
+Lcom/android/internal/os/BatteryStatsHelper;->storeState()V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->mCount:Ljava/util/concurrent/atomic/AtomicInteger;
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->getCountLocked(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->writeTimerToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$Timer;J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getBatteryStats()Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startLaunchedLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startRunningLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopLaunchedLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopRunningLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addForegroundTimeLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getForegroundTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getStarts(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getSystemTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getUserTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incStartsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getHandle()I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorStats()Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getUid()I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;-><init>(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->commitPendingDataToDisk()V
+Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryRealtime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryTimeRemaining(J)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryUptime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/os/BatteryStatsImpl;->getAwakeTimeBattery()J
+Lcom/android/internal/os/BatteryStatsImpl;->getAwakeTimePlugged()J
+Lcom/android/internal/os/BatteryStatsImpl;->getBatteryRealtime(J)J
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOff()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOn()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeCurrentLevel()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeStartLevel()I
+Lcom/android/internal/os/BatteryStatsImpl;->getGlobalWifiRunningTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockStats()Ljava/util/Map;
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityBytes(II)J
+Lcom/android/internal/os/BatteryStatsImpl;->getNextHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
+Lcom/android/internal/os/BatteryStatsImpl;->getPackageStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneOnTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getProcessStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenOnTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getServiceStatsLocked(ILjava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+Lcom/android/internal/os/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->getUidStatsLocked(I)Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiOnTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->isOnBattery()Z
+Lcom/android/internal/os/BatteryStatsImpl;->mFullTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mPartialTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mWindowTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->noteAudioOffLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteAudioOnLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePhoneDataConnectionStateLocked(IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePhoneOffLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->notePhoneOnLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->notePhoneSignalStrengthLocked(Landroid/telephony/SignalStrength;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteScreenBrightnessLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteUserActivityLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteVideoOffLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteVideoOnLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastDisabledLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastEnabledLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->readLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->removeUidStatsLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->startIteratingHistoryLocked()Z
+Lcom/android/internal/os/FuseAppLoop;->onCommand(IJJJI[B)V
+Lcom/android/internal/os/FuseAppLoop;->onOpen(JJ)[B
+Lcom/android/internal/os/HandlerCaller;->obtainMessage(I)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIOO(IILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->sendMessage(Landroid/os/Message;)V
+Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
+Lcom/android/internal/os/IDropBoxManagerService;->getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;
+Lcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
+Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;I)D
+Lcom/android/internal/os/PowerProfile;->getBatteryCapacity()D
+Lcom/android/internal/os/PowerProfile;->getNumCpuClusters()I
+Lcom/android/internal/os/PowerProfile;->getNumSpeedStepsInCpuCluster(I)I
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_AT_CMD:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_ON:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_CPU_ACTIVE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_CPU_IDLE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_GPS_ON:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_RADIO_ACTIVE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_RADIO_ON:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_RADIO_SCANNING:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_SCREEN_FULL:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_SCREEN_ON:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_ACTIVE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_ON:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_SCAN:Ljava/lang/String;
+Lcom/android/internal/os/SomeArgs;->arg1:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->arg2:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->arg3:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->argi2:I
+Lcom/android/internal/os/SomeArgs;->argi3:I
+Lcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs;
+Lcom/android/internal/os/SomeArgs;->recycle()V
+Lcom/android/internal/policy/IKeyguardService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardService;
+Lcom/android/internal/policy/IKeyguardService;->doKeyguardTimeout(Landroid/os/Bundle;)V
+Lcom/android/internal/policy/IKeyguardService;->setKeyguardEnabled(Z)V
+Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardStateCallback;
+Lcom/android/internal/R$anim;->fade_in:I
+Lcom/android/internal/R$array;->config_autoBrightnessLcdBacklightValues:I
+Lcom/android/internal/R$array;->config_autoBrightnessLevels:I
 Lcom/android/internal/R$array;->config_mobile_hotspot_provision_app:I
+Lcom/android/internal/R$array;->config_sms_enabled_locking_shift_tables:I
+Lcom/android/internal/R$array;->config_sms_enabled_single_shift_tables:I
+Lcom/android/internal/R$array;->config_tether_bluetooth_regexs:I
+Lcom/android/internal/R$array;->config_tether_upstream_types:I
+Lcom/android/internal/R$array;->config_tether_usb_regexs:I
 Lcom/android/internal/R$array;->config_tether_wifi_regexs:I
 Lcom/android/internal/R$array;->maps_starting_lat_lng:I
 Lcom/android/internal/R$array;->maps_starting_zoom:I
 Lcom/android/internal/R$attr;->actionBarStyle:I
+Lcom/android/internal/R$attr;->buttonStyle:I
+Lcom/android/internal/R$attr;->description:I
+Lcom/android/internal/R$attr;->editTextStyle:I
 Lcom/android/internal/R$attr;->mapViewStyle:I
+Lcom/android/internal/R$attr;->popupWindowStyle:I
+Lcom/android/internal/R$attr;->state_above_anchor:I
 Lcom/android/internal/R$attr;->state_focused:I
 Lcom/android/internal/R$attr;->state_pressed:I
 Lcom/android/internal/R$attr;->state_selected:I
 Lcom/android/internal/R$attr;->switchStyle:I
+Lcom/android/internal/R$attr;->text:I
+Lcom/android/internal/R$attr;->title:I
+Lcom/android/internal/R$attr;->webViewStyle:I
 Lcom/android/internal/R$bool;->config_mms_content_disposition_support:I
 Lcom/android/internal/R$bool;->config_showNavigationBar:I
 Lcom/android/internal/R$dimen;-><init>()V
+Lcom/android/internal/R$dimen;->item_touch_helper_max_drag_scroll_per_frame:I
 Lcom/android/internal/R$dimen;->navigation_bar_height:I
 Lcom/android/internal/R$dimen;->navigation_bar_height_landscape:I
+Lcom/android/internal/R$dimen;->navigation_bar_width:I
 Lcom/android/internal/R$dimen;->status_bar_height:I
 Lcom/android/internal/R$dimen;->toast_y_offset:I
 Lcom/android/internal/R$drawable;->btn_check_off:I
@@ -4517,27 +8932,123 @@
 Lcom/android/internal/R$drawable;->maps_google_logo:I
 Lcom/android/internal/R$drawable;->no_tile_256:I
 Lcom/android/internal/R$drawable;->reticle:I
+Lcom/android/internal/R$drawable;->stat_sys_download:I
+Lcom/android/internal/R$fraction;->config_autoBrightnessAdjustmentMaxGamma:I
+Lcom/android/internal/R$id;->account_name:I
+Lcom/android/internal/R$id;->account_type:I
+Lcom/android/internal/R$id;->alertTitle:I
+Lcom/android/internal/R$id;->allow_button:I
 Lcom/android/internal/R$id;->amPm:I
+Lcom/android/internal/R$id;->authtoken_type:I
+Lcom/android/internal/R$id;->background:I
+Lcom/android/internal/R$id;->back_button:I
+Lcom/android/internal/R$id;->body:I
+Lcom/android/internal/R$id;->buttonPanel:I
+Lcom/android/internal/R$id;->camera:I
+Lcom/android/internal/R$id;->cancel:I
+Lcom/android/internal/R$id;->clip_children_set_tag:I
+Lcom/android/internal/R$id;->clip_children_tag:I
+Lcom/android/internal/R$id;->clip_to_padding_tag:I
+Lcom/android/internal/R$id;->closeButton:I
+Lcom/android/internal/R$id;->content:I
+Lcom/android/internal/R$id;->contentPanel:I
+Lcom/android/internal/R$id;->custom:I
+Lcom/android/internal/R$id;->customPanel:I
+Lcom/android/internal/R$id;->datePicker:I
+Lcom/android/internal/R$id;->day:I
+Lcom/android/internal/R$id;->deny_button:I
+Lcom/android/internal/R$id;->description:I
+Lcom/android/internal/R$id;->edit:I
 Lcom/android/internal/R$id;->edittext_container:I
+Lcom/android/internal/R$id;->find_next:I
+Lcom/android/internal/R$id;->find_prev:I
 Lcom/android/internal/R$id;->icon:I
+Lcom/android/internal/R$id;->keyboard:I
+Lcom/android/internal/R$id;->keyboardView:I
+Lcom/android/internal/R$id;->line1:I
+Lcom/android/internal/R$id;->list_item:I
+Lcom/android/internal/R$id;->matches:I
+Lcom/android/internal/R$id;->mediacontroller_progress:I
+Lcom/android/internal/R$id;->media_actions:I
 Lcom/android/internal/R$id;->message:I
 Lcom/android/internal/R$id;->minute:I
+Lcom/android/internal/R$id;->month:I
+Lcom/android/internal/R$id;->name:I
+Lcom/android/internal/R$id;->notification_header:I
+Lcom/android/internal/R$id;->ok:I
+Lcom/android/internal/R$id;->overlay:I
+Lcom/android/internal/R$id;->packages_list:I
+Lcom/android/internal/R$id;->package_label:I
+Lcom/android/internal/R$id;->parentPanel:I
+Lcom/android/internal/R$id;->pause:I
+Lcom/android/internal/R$id;->pending_intent_tag:I
+Lcom/android/internal/R$id;->progress:I
+Lcom/android/internal/R$id;->redo:I
+Lcom/android/internal/R$id;->remote_input_tag:I
+Lcom/android/internal/R$id;->right_icon:I
+Lcom/android/internal/R$id;->search_src_text:I
+Lcom/android/internal/R$id;->share:I
 Lcom/android/internal/R$id;->shortcut:I
+Lcom/android/internal/R$id;->status_bar_latest_event_content:I
+Lcom/android/internal/R$id;->tabcontent:I
+Lcom/android/internal/R$id;->tabs:I
+Lcom/android/internal/R$id;->text1:I
+Lcom/android/internal/R$id;->text2:I
 Lcom/android/internal/R$id;->text:I
 Lcom/android/internal/R$id;->time:I
 Lcom/android/internal/R$id;->timePicker:I
+Lcom/android/internal/R$id;->time_current:I
 Lcom/android/internal/R$id;->title:I
+Lcom/android/internal/R$id;->titleDivider:I
+Lcom/android/internal/R$id;->titleDividerTop:I
 Lcom/android/internal/R$id;->title_container:I
+Lcom/android/internal/R$id;->title_icon:I
+Lcom/android/internal/R$id;->title_template:I
+Lcom/android/internal/R$id;->topPanel:I
+Lcom/android/internal/R$id;->up:I
+Lcom/android/internal/R$id;->year:I
+Lcom/android/internal/R$id;->zoomControls:I
+Lcom/android/internal/R$id;->zoomMagnify:I
 Lcom/android/internal/R$integer;->config_screenBrightnessDim:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMaximum:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMinimum:I
 Lcom/android/internal/R$integer;->config_toastDefaultGravity:I
+Lcom/android/internal/R$interpolator;->accelerate_cubic:I
+Lcom/android/internal/R$interpolator;->decelerate_cubic:I
+Lcom/android/internal/R$layout;->notification_template_material_base:I
+Lcom/android/internal/R$layout;->preference_header_item:I
 Lcom/android/internal/R$layout;->screen_title:I
+Lcom/android/internal/R$layout;->select_dialog:I
+Lcom/android/internal/R$layout;->select_dialog_multichoice:I
+Lcom/android/internal/R$layout;->select_dialog_singlechoice:I
+Lcom/android/internal/R$layout;->webview_find:I
+Lcom/android/internal/R$layout;->zoom_magnify:I
+Lcom/android/internal/R$plurals;->matches_found:I
+Lcom/android/internal/R$raw;->loaderror:I
+Lcom/android/internal/R$raw;->nodomain:I
 Lcom/android/internal/R$string;->byteShort:I
+Lcom/android/internal/R$string;->cancel:I
+Lcom/android/internal/R$string;->enable_explore_by_touch_warning_title:I
 Lcom/android/internal/R$string;->gigabyteShort:I
 Lcom/android/internal/R$string;->kilobyteShort:I
+Lcom/android/internal/R$string;->map:I
 Lcom/android/internal/R$string;->megabyteShort:I
+Lcom/android/internal/R$string;->notification_title:I
+Lcom/android/internal/R$string;->no_matches:I
+Lcom/android/internal/R$string;->ok:I
 Lcom/android/internal/R$string;->petabyteShort:I
+Lcom/android/internal/R$string;->redo:I
+Lcom/android/internal/R$string;->share:I
 Lcom/android/internal/R$string;->terabyteShort:I
+Lcom/android/internal/R$string;->whichApplication:I
+Lcom/android/internal/R$style;->Animation_DropDownDown:I
+Lcom/android/internal/R$style;->Animation_DropDownUp:I
+Lcom/android/internal/R$style;->Animation_PopupWindow:I
 Lcom/android/internal/R$style;->Theme:I
+Lcom/android/internal/R$style;->Theme_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Holo_Light:I
+Lcom/android/internal/R$style;->Theme_Light:I
+Lcom/android/internal/R$styleable;-><init>()V
 Lcom/android/internal/R$styleable;->AbsListView:[I
 Lcom/android/internal/R$styleable;->AbsListView_cacheColorHint:I
 Lcom/android/internal/R$styleable;->AbsListView_choiceMode:I
@@ -4550,6 +9061,7 @@
 Lcom/android/internal/R$styleable;->AbsListView_stackFromBottom:I
 Lcom/android/internal/R$styleable;->AbsListView_textFilterEnabled:I
 Lcom/android/internal/R$styleable;->AbsListView_transcriptMode:I
+Lcom/android/internal/R$styleable;->AbsSpinner:[I
 Lcom/android/internal/R$styleable;->AccountAuthenticator:[I
 Lcom/android/internal/R$styleable;->AccountAuthenticator_accountPreferences:I
 Lcom/android/internal/R$styleable;->AccountAuthenticator_accountType:I
@@ -4557,8 +9069,14 @@
 Lcom/android/internal/R$styleable;->AccountAuthenticator_icon:I
 Lcom/android/internal/R$styleable;->AccountAuthenticator_label:I
 Lcom/android/internal/R$styleable;->AccountAuthenticator_smallIcon:I
+Lcom/android/internal/R$styleable;->ActionMode:[I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator:[I
+Lcom/android/internal/R$styleable;->AdapterViewFlipper:[I
+Lcom/android/internal/R$styleable;->AlertDialog:[I
+Lcom/android/internal/R$styleable;->AnalogClock:[I
 Lcom/android/internal/R$styleable;->AndroidManifest:[I
 Lcom/android/internal/R$styleable;->AndroidManifestActivity:[I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias:[I
 Lcom/android/internal/R$styleable;->AndroidManifestActivity_allowTaskReparenting:I
 Lcom/android/internal/R$styleable;->AndroidManifestActivity_configChanges:I
 Lcom/android/internal/R$styleable;->AndroidManifestActivity_description:I
@@ -4592,18 +9110,32 @@
 Lcom/android/internal/R$styleable;->AndroidManifestApplication_theme:I
 Lcom/android/internal/R$styleable;->AndroidManifestApplication_uiOptions:I
 Lcom/android/internal/R$styleable;->AndroidManifestData:[I
+Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission:[I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation:[I
 Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter:[I
 Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_priority:I
 Lcom/android/internal/R$styleable;->AndroidManifestMetaData:[I
 Lcom/android/internal/R$styleable;->AndroidManifestMetaData_name:I
 Lcom/android/internal/R$styleable;->AndroidManifestMetaData_resource:I
 Lcom/android/internal/R$styleable;->AndroidManifestMetaData_value:I
+Lcom/android/internal/R$styleable;->AndroidManifestOriginalPackage:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree:[I
+Lcom/android/internal/R$styleable;->AndroidManifestProtectedBroadcast:[I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider:[I
 Lcom/android/internal/R$styleable;->AndroidManifestService:[I
 Lcom/android/internal/R$styleable;->AndroidManifestService_enabled:I
 Lcom/android/internal/R$styleable;->AndroidManifestService_exported:I
 Lcom/android/internal/R$styleable;->AndroidManifestService_name:I
 Lcom/android/internal/R$styleable;->AndroidManifestService_permission:I
 Lcom/android/internal/R$styleable;->AndroidManifestService_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary:[I
 Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission:[I
 Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_name:I
 Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk:[I
@@ -4613,22 +9145,40 @@
 Lcom/android/internal/R$styleable;->AndroidManifest_sharedUserId:I
 Lcom/android/internal/R$styleable;->AndroidManifest_versionCode:I
 Lcom/android/internal/R$styleable;->AndroidManifest_versionName:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo:[I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView:[I
 Lcom/android/internal/R$styleable;->CheckBoxPreference:[I
 Lcom/android/internal/R$styleable;->CheckBoxPreference_disableDependentsState:I
 Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOff:I
 Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOn:I
+Lcom/android/internal/R$styleable;->CheckedTextView:[I
+Lcom/android/internal/R$styleable;->CheckedTextView_checked:I
+Lcom/android/internal/R$styleable;->CheckedTextView_checkMark:I
 Lcom/android/internal/R$styleable;->CompoundButton:[I
 Lcom/android/internal/R$styleable;->CompoundButton_button:I
 Lcom/android/internal/R$styleable;->CompoundButton_checked:I
+Lcom/android/internal/R$styleable;->ContactsDataKind:[I
+Lcom/android/internal/R$styleable;->CycleInterpolator:[I
+Lcom/android/internal/R$styleable;->DatePicker:[I
 Lcom/android/internal/R$styleable;->DialogPreference:[I
 Lcom/android/internal/R$styleable;->DialogPreference_dialogTitle:I
+Lcom/android/internal/R$styleable;->Dream:[I
 Lcom/android/internal/R$styleable;->EdgeEffect:[I
 Lcom/android/internal/R$styleable;->EdgeEffect_colorEdgeEffect:I
+Lcom/android/internal/R$styleable;->FastScroll:[I
+Lcom/android/internal/R$styleable;->FrameLayout:[I
+Lcom/android/internal/R$styleable;->FrameLayout_Layout:[I
+Lcom/android/internal/R$styleable;->Gallery:[I
 Lcom/android/internal/R$styleable;->GridView:[I
 Lcom/android/internal/R$styleable;->IconMenuView:[I
 Lcom/android/internal/R$styleable;->ImageView:[I
 Lcom/android/internal/R$styleable;->ImageView_scaleType:I
 Lcom/android/internal/R$styleable;->ImageView_src:I
+Lcom/android/internal/R$styleable;->Keyboard:[I
+Lcom/android/internal/R$styleable;->KeyboardView:[I
+Lcom/android/internal/R$styleable;->Keyboard_Key:[I
+Lcom/android/internal/R$styleable;->Keyboard_Row:[I
+Lcom/android/internal/R$styleable;->LinearLayout:[I
 Lcom/android/internal/R$styleable;->ListPreference:[I
 Lcom/android/internal/R$styleable;->ListPreference_entries:I
 Lcom/android/internal/R$styleable;->ListView:[I
@@ -4639,8 +9189,15 @@
 Lcom/android/internal/R$styleable;->ListView_headerDividersEnabled:I
 Lcom/android/internal/R$styleable;->ListView_overScrollFooter:I
 Lcom/android/internal/R$styleable;->ListView_overScrollHeader:I
+Lcom/android/internal/R$styleable;->MapView:[I
+Lcom/android/internal/R$styleable;->MapView_apiKey:I
+Lcom/android/internal/R$styleable;->MenuGroup:[I
+Lcom/android/internal/R$styleable;->MenuItem:[I
+Lcom/android/internal/R$styleable;->MenuView:[I
 Lcom/android/internal/R$styleable;->NumberPicker:[I
 Lcom/android/internal/R$styleable;->PopupWindow:[I
+Lcom/android/internal/R$styleable;->PopupWindow_popupAnimationStyle:I
+Lcom/android/internal/R$styleable;->PopupWindow_popupBackground:I
 Lcom/android/internal/R$styleable;->Preference:[I
 Lcom/android/internal/R$styleable;->PreferenceGroup:[I
 Lcom/android/internal/R$styleable;->PreferenceGroup_orderingFromXml:I
@@ -4658,8 +9215,16 @@
 Lcom/android/internal/R$styleable;->Preference_summary:I
 Lcom/android/internal/R$styleable;->Preference_title:I
 Lcom/android/internal/R$styleable;->Preference_widgetLayout:I
+Lcom/android/internal/R$styleable;->ProgressBar:[I
+Lcom/android/internal/R$styleable;->QuickContactBadge:[I
+Lcom/android/internal/R$styleable;->RingtonePreference:[I
 Lcom/android/internal/R$styleable;->ScrollView:[I
 Lcom/android/internal/R$styleable;->ScrollView_fillViewport:I
+Lcom/android/internal/R$styleable;->Searchable:[I
+Lcom/android/internal/R$styleable;->SearchableActionKey:[I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables:[I
+Lcom/android/internal/R$styleable;->Switch:[I
+Lcom/android/internal/R$styleable;->SwitchPreference:[I
 Lcom/android/internal/R$styleable;->SyncAdapter:[I
 Lcom/android/internal/R$styleable;->SyncAdapter_accountType:I
 Lcom/android/internal/R$styleable;->SyncAdapter_allowParallelSyncs:I
@@ -4670,17 +9235,95 @@
 Lcom/android/internal/R$styleable;->SyncAdapter_userVisible:I
 Lcom/android/internal/R$styleable;->TabWidget:[I
 Lcom/android/internal/R$styleable;->TextAppearance:[I
+Lcom/android/internal/R$styleable;->TextAppearance_fontFamily:I
+Lcom/android/internal/R$styleable;->TextAppearance_textAllCaps:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColor:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHighlight:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHint:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorLink:I
+Lcom/android/internal/R$styleable;->TextAppearance_textSize:I
+Lcom/android/internal/R$styleable;->TextAppearance_textStyle:I
+Lcom/android/internal/R$styleable;->TextAppearance_typeface:I
+Lcom/android/internal/R$styleable;->TextClock:[I
 Lcom/android/internal/R$styleable;->TextView:[I
 Lcom/android/internal/R$styleable;->TextViewAppearance:[I
+Lcom/android/internal/R$styleable;->TextViewAppearance_textAppearance:I
+Lcom/android/internal/R$styleable;->TextView_autoLink:I
+Lcom/android/internal/R$styleable;->TextView_autoText:I
+Lcom/android/internal/R$styleable;->TextView_bufferType:I
+Lcom/android/internal/R$styleable;->TextView_capitalize:I
+Lcom/android/internal/R$styleable;->TextView_cursorVisible:I
+Lcom/android/internal/R$styleable;->TextView_digits:I
 Lcom/android/internal/R$styleable;->TextView_drawableBottom:I
+Lcom/android/internal/R$styleable;->TextView_drawableEnd:I
 Lcom/android/internal/R$styleable;->TextView_drawableLeft:I
+Lcom/android/internal/R$styleable;->TextView_drawablePadding:I
 Lcom/android/internal/R$styleable;->TextView_drawableRight:I
+Lcom/android/internal/R$styleable;->TextView_drawableStart:I
 Lcom/android/internal/R$styleable;->TextView_drawableTop:I
+Lcom/android/internal/R$styleable;->TextView_editable:I
+Lcom/android/internal/R$styleable;->TextView_editorExtras:I
+Lcom/android/internal/R$styleable;->TextView_ellipsize:I
+Lcom/android/internal/R$styleable;->TextView_ems:I
+Lcom/android/internal/R$styleable;->TextView_enabled:I
+Lcom/android/internal/R$styleable;->TextView_freezesText:I
+Lcom/android/internal/R$styleable;->TextView_gravity:I
+Lcom/android/internal/R$styleable;->TextView_height:I
+Lcom/android/internal/R$styleable;->TextView_hint:I
+Lcom/android/internal/R$styleable;->TextView_imeActionId:I
+Lcom/android/internal/R$styleable;->TextView_imeActionLabel:I
+Lcom/android/internal/R$styleable;->TextView_imeOptions:I
+Lcom/android/internal/R$styleable;->TextView_includeFontPadding:I
+Lcom/android/internal/R$styleable;->TextView_inputMethod:I
+Lcom/android/internal/R$styleable;->TextView_inputType:I
+Lcom/android/internal/R$styleable;->TextView_lines:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingExtra:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingMultiplier:I
+Lcom/android/internal/R$styleable;->TextView_linksClickable:I
+Lcom/android/internal/R$styleable;->TextView_marqueeRepeatLimit:I
+Lcom/android/internal/R$styleable;->TextView_maxEms:I
+Lcom/android/internal/R$styleable;->TextView_maxHeight:I
+Lcom/android/internal/R$styleable;->TextView_maxLength:I
 Lcom/android/internal/R$styleable;->TextView_maxLines:I
+Lcom/android/internal/R$styleable;->TextView_maxWidth:I
+Lcom/android/internal/R$styleable;->TextView_minEms:I
+Lcom/android/internal/R$styleable;->TextView_minHeight:I
+Lcom/android/internal/R$styleable;->TextView_minLines:I
+Lcom/android/internal/R$styleable;->TextView_minWidth:I
+Lcom/android/internal/R$styleable;->TextView_numeric:I
+Lcom/android/internal/R$styleable;->TextView_password:I
+Lcom/android/internal/R$styleable;->TextView_phoneNumber:I
+Lcom/android/internal/R$styleable;->TextView_privateImeOptions:I
+Lcom/android/internal/R$styleable;->TextView_scrollHorizontally:I
+Lcom/android/internal/R$styleable;->TextView_selectAllOnFocus:I
+Lcom/android/internal/R$styleable;->TextView_shadowColor:I
+Lcom/android/internal/R$styleable;->TextView_shadowDx:I
+Lcom/android/internal/R$styleable;->TextView_shadowDy:I
+Lcom/android/internal/R$styleable;->TextView_shadowRadius:I
+Lcom/android/internal/R$styleable;->TextView_singleLine:I
+Lcom/android/internal/R$styleable;->TextView_text:I
+Lcom/android/internal/R$styleable;->TextView_textAllCaps:I
+Lcom/android/internal/R$styleable;->TextView_textAppearance:I
 Lcom/android/internal/R$styleable;->TextView_textColor:I
+Lcom/android/internal/R$styleable;->TextView_textColorHighlight:I
 Lcom/android/internal/R$styleable;->TextView_textColorHint:I
+Lcom/android/internal/R$styleable;->TextView_textColorLink:I
+Lcom/android/internal/R$styleable;->TextView_textCursorDrawable:I
+Lcom/android/internal/R$styleable;->TextView_textEditSuggestionItemLayout:I
+Lcom/android/internal/R$styleable;->TextView_textIsSelectable:I
+Lcom/android/internal/R$styleable;->TextView_textScaleX:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandle:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleLeft:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleRight:I
+Lcom/android/internal/R$styleable;->TextView_textSize:I
+Lcom/android/internal/R$styleable;->TextView_textStyle:I
+Lcom/android/internal/R$styleable;->TextView_typeface:I
+Lcom/android/internal/R$styleable;->TextView_width:I
+Lcom/android/internal/R$styleable;->Theme:[I
 Lcom/android/internal/R$styleable;->TwoLineListItem:[I
 Lcom/android/internal/R$styleable;->View:[I
+Lcom/android/internal/R$styleable;->ViewAnimator:[I
+Lcom/android/internal/R$styleable;->ViewFlipper:[I
 Lcom/android/internal/R$styleable;->ViewGroup_Layout:[I
 Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_height:I
 Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_width:I
@@ -4688,201 +9331,380 @@
 Lcom/android/internal/R$styleable;->ViewStub_inflatedId:I
 Lcom/android/internal/R$styleable;->ViewStub_layout:I
 Lcom/android/internal/R$styleable;->View_background:I
+Lcom/android/internal/R$styleable;->View_clickable:I
+Lcom/android/internal/R$styleable;->View_focusable:I
 Lcom/android/internal/R$styleable;->View_id:I
+Lcom/android/internal/R$styleable;->View_longClickable:I
+Lcom/android/internal/R$styleable;->WallpaperPreviewInfo:[I
 Lcom/android/internal/R$styleable;->Window:[I
+Lcom/android/internal/R$styleable;->WindowAnimation:[I
 Lcom/android/internal/R$styleable;->Window_windowActionBarFullscreenDecorLayout:I
 Lcom/android/internal/R$styleable;->Window_windowIsFloating:I
 Lcom/android/internal/R$styleable;->Window_windowIsTranslucent:I
 Lcom/android/internal/R$styleable;->Window_windowShowWallpaper:I
 Lcom/android/internal/R$xml;->power_profile:I
-Lcom/android/internal/app/AlertController$AlertParams;->mIconId:I
-Lcom/android/internal/app/AlertController$AlertParams;->mMessage:Ljava/lang/CharSequence;
-Lcom/android/internal/app/AlertController$AlertParams;->mNegativeButtonListener:Landroid/content/DialogInterface$OnClickListener;
-Lcom/android/internal/app/AlertController$AlertParams;->mNegativeButtonText:Ljava/lang/CharSequence;
-Lcom/android/internal/app/AlertController$AlertParams;->mPositiveButtonListener:Landroid/content/DialogInterface$OnClickListener;
-Lcom/android/internal/app/AlertController$AlertParams;->mPositiveButtonText:Ljava/lang/CharSequence;
-Lcom/android/internal/app/AlertController$AlertParams;->mTitle:Ljava/lang/CharSequence;
-Lcom/android/internal/app/AlertController$AlertParams;->mView:Landroid/view/View;
-Lcom/android/internal/app/AlertController$RecycleListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lcom/android/internal/app/AlertController;->getButton(I)Landroid/widget/Button;
-Lcom/android/internal/app/AlertController;->mCustomTitleView:Landroid/view/View;
-Lcom/android/internal/app/AlertController;->mForceInverseBackground:Z
-Lcom/android/internal/app/AlertController;->mTitle:Ljava/lang/CharSequence;
-Lcom/android/internal/app/AlertController;->mView:Landroid/view/View;
-Lcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
-Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setMode(IILjava/lang/String;I)V
-Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
-Lcom/android/internal/app/IAppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;)V
-Lcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Lcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
-Lcom/android/internal/app/IBatteryStats;->getStatistics()[B
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
-Lcom/android/internal/app/IVoiceInteractionManagerService;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
-Lcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
-Lcom/android/internal/content/PackageMonitor;-><init>()V
-Lcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Landroid/os/UserHandle;Z)V
-Lcom/android/internal/content/PackageMonitor;->unregister()V
-Lcom/android/internal/content/ReferrerIntent;-><init>(Landroid/content/Intent;Ljava/lang/String;)V
-Lcom/android/internal/content/ReferrerIntent;->mReferrer:Ljava/lang/String;
-Lcom/android/internal/location/ILocationProvider$Stub;-><init>()V
-Lcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
-Lcom/android/internal/location/ILocationProvider;->disable()V
-Lcom/android/internal/location/ILocationProvider;->enable()V
-Lcom/android/internal/location/ILocationProvider;->getProperties()Lcom/android/internal/location/ProviderProperties;
-Lcom/android/internal/location/ILocationProvider;->getStatus(Landroid/os/Bundle;)I
-Lcom/android/internal/location/ILocationProvider;->getStatusUpdateTime()J
-Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/String;Landroid/os/Bundle;)Z
-Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-Lcom/android/internal/location/ProviderRequest;-><init>()V
-Lcom/android/internal/location/ProviderRequest;->interval:J
-Lcom/android/internal/location/ProviderRequest;->locationRequests:Ljava/util/List;
-Lcom/android/internal/location/ProviderRequest;->reportLocation:Z
-Lcom/android/internal/os/BatterySipper;-><init>(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
-Lcom/android/internal/os/BatterySipper;->add(Lcom/android/internal/os/BatterySipper;)V
-Lcom/android/internal/os/BatterySipper;->drainType:Lcom/android/internal/os/BatterySipper$DrainType;
-Lcom/android/internal/os/BatterySipper;->getUid()I
-Lcom/android/internal/os/BatterySipper;->mPackages:[Ljava/lang/String;
-Lcom/android/internal/os/BatterySipper;->packageWithHighestDrain:Ljava/lang/String;
-Lcom/android/internal/os/BatterySipper;->totalPowerMah:D
-Lcom/android/internal/os/BatterySipper;->uidObj:Landroid/os/BatteryStats$Uid;
-Lcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;ZZ)V
-Lcom/android/internal/os/BatteryStatsHelper;->getMaxPower()D
-Lcom/android/internal/os/BatteryStatsHelper;->getStats()Landroid/os/BatteryStats;
-Lcom/android/internal/os/BatteryStatsHelper;->getTotalPower()D
-Lcom/android/internal/os/BatteryStatsHelper;->load()V
-Lcom/android/internal/os/BatteryStatsHelper;->mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
-Lcom/android/internal/os/BatteryStatsHelper;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
-Lcom/android/internal/os/BatteryStatsHelper;->mUsageList:Ljava/util/List;
-Lcom/android/internal/os/BatteryStatsHelper;->refreshStats(II)V
-Lcom/android/internal/os/BatteryStatsImpl$Timer;->getCountLocked(I)I
-Lcom/android/internal/os/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getForegroundTime(I)J
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getStarts(I)I
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getSystemTime(I)J
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getUserTime(I)J
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getHandle()I
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStats()Landroid/util/ArrayMap;
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorStats()Landroid/util/SparseArray;
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getUid()I
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockStats()Landroid/util/ArrayMap;
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->CREATOR:Landroid/os/Parcelable$Creator;
-Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryRealtime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryUptime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getBatteryRealtime(J)J
-Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmount(I)I
-Lcom/android/internal/os/BatteryStatsImpl;->getDischargeCurrentLevel()I
-Lcom/android/internal/os/BatteryStatsImpl;->getDischargeStartLevel()I
-Lcom/android/internal/os/BatteryStatsImpl;->getGlobalWifiRunningTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getPhoneOnTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTime(IJI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTime(IJI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getScreenOnTime(JI)J
-Lcom/android/internal/os/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
-Lcom/android/internal/os/BatteryStatsImpl;->getUidStatsLocked(I)Lcom/android/internal/os/BatteryStatsImpl$Uid;
-Lcom/android/internal/os/BatteryStatsImpl;->getWifiOnTime(JI)J
-Lcom/android/internal/os/FuseAppLoop;->onCommand(IJJJI[B)V
-Lcom/android/internal/os/FuseAppLoop;->onOpen(JJ)[B
-Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
-Lcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V
-Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
-Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;I)D
-Lcom/android/internal/os/PowerProfile;->getBatteryCapacity()D
-Lcom/android/internal/os/SomeArgs;->arg1:Ljava/lang/Object;
-Lcom/android/internal/os/SomeArgs;->arg2:Ljava/lang/Object;
-Lcom/android/internal/os/SomeArgs;->arg3:Ljava/lang/Object;
-Lcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs;
-Lcom/android/internal/os/SomeArgs;->recycle()V
+Lcom/android/internal/statusbar/IStatusBar$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBar;
+Lcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
+Lcom/android/internal/statusbar/IStatusBarService;->collapsePanels()V
+Lcom/android/internal/statusbar/IStatusBarService;->disable(ILandroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->expandNotificationsPanel()V
+Lcom/android/internal/statusbar/IStatusBarService;->handleSystemKey(I)V
+Lcom/android/internal/statusbar/IStatusBarService;->removeIcon(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->setIconVisibility(Ljava/lang/String;Z)V
+Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
+Lcom/android/internal/telecom/ITelecomService;->getCallState()I
+Lcom/android/internal/telephony/CallerInfo;-><init>()V
+Lcom/android/internal/telephony/CallerInfo;->contactIdOrZero:J
+Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;I)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->name:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->numberLabel:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->numberType:I
+Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String;
+Lcom/android/internal/telephony/EncodeException;-><init>(C)V
+Lcom/android/internal/telephony/EncodeException;-><init>(Ljava/lang/String;)V
+Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;-><init>(I)V
+Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->languageCode:I
+Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->septetCounts:[I
+Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->unencodableCounts:[I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitCount:I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitSize:I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitsRemaining:I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageShiftTable:I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageTable:I
+Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->msgCount:I
+Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(C)I
+Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(CZ)I
+Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptets(CZ)I
+Lcom/android/internal/telephony/GsmAlphabet;->findGsmSeptetLimitIndex(Ljava/lang/String;IIII)I
 Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BII)Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BIIIII)Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BII)Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->gsmToChar(I)C
+Lcom/android/internal/telephony/GsmAlphabet;->packSmsChar([BII)V
+Lcom/android/internal/telephony/GsmAlphabet;->sCharsToGsmTables:[Landroid/util/SparseIntArray;
+Lcom/android/internal/telephony/GsmAlphabet;->sCharsToShiftTables:[Landroid/util/SparseIntArray;
+Lcom/android/internal/telephony/GsmAlphabet;->sEnabledLockingShiftTables:[I
+Lcom/android/internal/telephony/GsmAlphabet;->sEnabledSingleShiftTables:[I
+Lcom/android/internal/telephony/GsmAlphabet;->sHighestEnabledSingleShiftCode:I
+Lcom/android/internal/telephony/GsmAlphabet;->sLanguageShiftTables:[Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->sLanguageTables:[Ljava/lang/String;
 Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;)[B
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;IZII)[B
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPackedWithHeader(Ljava/lang/String;[BII)[B
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm8BitPacked(Ljava/lang/String;)[B
+Lcom/android/internal/telephony/ICarrierConfigLoader;->getConfigForSubId(I)Landroid/os/PersistableBundle;
 Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms;
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener;
+Lcom/android/internal/telephony/IPhoneStateListener;->onCallForwardingIndicatorChanged(Z)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onCallStateChanged(ILjava/lang/String;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onCellLocationChanged(Landroid/os/Bundle;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onDataActivity(I)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onDataConnectionStateChanged(II)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onMessageWaitingIndicatorChanged(Z)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onSignalStrengthChanged(I)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;-><init>()V
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneSubInfo;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIccSerialNumber(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getSubscriberId(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ISms$Stub;-><init>()V
 Lcom/android/internal/telephony/ISms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISms;
 Lcom/android/internal/telephony/ISub$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Lcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub;
+Lcom/android/internal/telephony/ISub;->getDefaultDataSubId()I
+Lcom/android/internal/telephony/ISub;->getDefaultSubId()I
+Lcom/android/internal/telephony/ISub;->setDefaultDataSubId(I)V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->endCall()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->endCallForSubscriber(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
+Lcom/android/internal/telephony/ITelephony$Stub;->DESCRIPTOR:Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_answerRingingCall:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_call:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_endCall:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDeviceId:I
-Lcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
 Lcom/android/internal/telephony/ITelephony;->answerRingingCall()V
 Lcom/android/internal/telephony/ITelephony;->call(Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/internal/telephony/ITelephony;->dial(Ljava/lang/String;)V
 Lcom/android/internal/telephony/ITelephony;->disableDataConnectivity()Z
+Lcom/android/internal/telephony/ITelephony;->disableLocationUpdates()V
 Lcom/android/internal/telephony/ITelephony;->enableDataConnectivity()Z
+Lcom/android/internal/telephony/ITelephony;->enableLocationUpdates()V
 Lcom/android/internal/telephony/ITelephony;->endCall()Z
 Lcom/android/internal/telephony/ITelephony;->endCallForSubscriber(I)Z
+Lcom/android/internal/telephony/ITelephony;->getActivePhoneType()I
 Lcom/android/internal/telephony/ITelephony;->getCallState()I
+Lcom/android/internal/telephony/ITelephony;->getDataActivity()I
 Lcom/android/internal/telephony/ITelephony;->getDataEnabled(I)Z
 Lcom/android/internal/telephony/ITelephony;->getDataState()I
+Lcom/android/internal/telephony/ITelephony;->getNetworkType()I
+Lcom/android/internal/telephony/ITelephony;->getVoiceMessageCount()I
+Lcom/android/internal/telephony/ITelephony;->handlePinMmi(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->handlePinMmiForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->hasIccCard()Z
+Lcom/android/internal/telephony/ITelephony;->iccCloseLogicalChannel(II)Z
+Lcom/android/internal/telephony/ITelephony;->iccTransmitApduLogicalChannel(IIIIIIILjava/lang/String;)Ljava/lang/String;
 Lcom/android/internal/telephony/ITelephony;->isIdle(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isIdleForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isRadioOnForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isRinging(Ljava/lang/String;)Z
 Lcom/android/internal/telephony/ITelephony;->setRadio(Z)Z
 Lcom/android/internal/telephony/ITelephony;->silenceRinger()V
+Lcom/android/internal/telephony/ITelephony;->supplyPin(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->toggleRadioOnOff()V
+Lcom/android/internal/telephony/ITelephony;->updateServiceLocation()V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;-><init>()V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
+Lcom/android/internal/telephony/ITelephonyRegistry;->listen(Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallForwardingChanged(Z)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallState(ILjava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellInfo(Ljava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellLocation(Landroid/os/Bundle;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataActivity(I)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataConnectionFailed(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyOtaspChanged(I)V
+Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IWapPushManager;
+Lcom/android/internal/telephony/IWapPushManager;->addPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
+Lcom/android/internal/telephony/IWapPushManager;->deletePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/IWapPushManager;->updatePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
 Lcom/android/internal/telephony/OperatorInfo$State;->CURRENT:Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/OperatorInfo$State;->FORBIDDEN:Lcom/android/internal/telephony/OperatorInfo$State;
+Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/OperatorInfo$State;)V
 Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/internal/telephony/OperatorInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaLong()Ljava/lang/String;
 Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaShort()Ljava/lang/String;
 Lcom/android/internal/telephony/OperatorInfo;->getOperatorNumeric()Ljava/lang/String;
 Lcom/android/internal/telephony/OperatorInfo;->getState()Lcom/android/internal/telephony/OperatorInfo$State;
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaLong:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaShort:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mOperatorNumeric:Ljava/lang/String;
+Lcom/android/internal/telephony/OperatorInfo;->mState:Lcom/android/internal/telephony/OperatorInfo$State;
+Lcom/android/internal/telephony/OperatorInfo;->rilStateToState(Ljava/lang/String;)Lcom/android/internal/telephony/OperatorInfo$State;
+Lcom/android/internal/telephony/SmsAddress;->origBytes:[B
+Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_0:Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_1:Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_2:Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_3:Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsConstants$MessageClass;->UNKNOWN:Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V
 Lcom/android/internal/telephony/SmsHeader$ConcatRef;->msgCount:I
 Lcom/android/internal/telephony/SmsHeader$ConcatRef;->refNumber:I
 Lcom/android/internal/telephony/SmsHeader$ConcatRef;->seqNumber:I
+Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V
+Lcom/android/internal/telephony/SmsHeader$PortAddrs;->destPort:I
+Lcom/android/internal/telephony/SmsHeader$PortAddrs;->origPort:I
+Lcom/android/internal/telephony/SmsHeader;-><init>()V
 Lcom/android/internal/telephony/SmsHeader;->concatRef:Lcom/android/internal/telephony/SmsHeader$ConcatRef;
+Lcom/android/internal/telephony/SmsHeader;->fromByteArray([B)Lcom/android/internal/telephony/SmsHeader;
+Lcom/android/internal/telephony/SmsHeader;->languageShiftTable:I
+Lcom/android/internal/telephony/SmsHeader;->languageTable:I
+Lcom/android/internal/telephony/SmsHeader;->portAddrs:Lcom/android/internal/telephony/SmsHeader$PortAddrs;
+Lcom/android/internal/telephony/SmsHeader;->toByteArray(Lcom/android/internal/telephony/SmsHeader;)[B
+Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedMessage:[B
+Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedScAddress:[B
+Lcom/android/internal/telephony/SmsMessageBase;-><init>()V
+Lcom/android/internal/telephony/SmsMessageBase;->getDisplayMessageBody()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getDisplayOriginatingAddress()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getMessageBody()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getOriginatingAddress()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getProtocolIdentifier()I
+Lcom/android/internal/telephony/SmsMessageBase;->getPseudoSubject()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getServiceCenterAddress()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getStatus()I
+Lcom/android/internal/telephony/SmsMessageBase;->getTimestampMillis()J
+Lcom/android/internal/telephony/SmsMessageBase;->getUserData()[B
+Lcom/android/internal/telephony/SmsMessageBase;->getUserDataHeader()Lcom/android/internal/telephony/SmsHeader;
+Lcom/android/internal/telephony/SmsMessageBase;->isReplace()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isReplyPathPresent()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isStatusReportMessage()Z
+Lcom/android/internal/telephony/SmsMessageBase;->mIsMwi:Z
+Lcom/android/internal/telephony/SmsMessageBase;->mMessageBody:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->mMessageRef:I
+Lcom/android/internal/telephony/SmsMessageBase;->mMwiDontStore:Z
+Lcom/android/internal/telephony/SmsMessageBase;->mMwiSense:Z
+Lcom/android/internal/telephony/SmsMessageBase;->mOriginatingAddress:Lcom/android/internal/telephony/SmsAddress;
+Lcom/android/internal/telephony/SmsMessageBase;->mPdu:[B
+Lcom/android/internal/telephony/SmsMessageBase;->mScAddress:Ljava/lang/String;
 Lcom/android/internal/telephony/SmsMessageBase;->mUserDataHeader:Lcom/android/internal/telephony/SmsHeader;
 Lcom/android/internal/telephony/SmsRawData;-><init>([B)V
 Lcom/android/internal/telephony/SmsRawData;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/telephony/SmsRawData;->getBytes()[B
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/util/AsyncChannel;-><init>()V
+Lcom/android/internal/util/AsyncChannel;->cmdToString(I)Ljava/lang/String;
+Lcom/android/internal/util/AsyncChannel;->CMD_CHANNEL_FULL_CONNECTION:I
+Lcom/android/internal/util/AsyncChannel;->CMD_CHANNEL_HALF_CONNECTED:I
 Lcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+Lcom/android/internal/util/AsyncChannel;->connected(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+Lcom/android/internal/util/AsyncChannel;->connectSync(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)I
+Lcom/android/internal/util/AsyncChannel;->disconnect()V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;I)V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;II)V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;IIILjava/lang/Object;)V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;ILjava/lang/Object;)V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;Landroid/os/Message;)V
+Lcom/android/internal/util/AsyncChannel;->sendMessage(I)V
+Lcom/android/internal/util/AsyncChannel;->sendMessage(II)V
 Lcom/android/internal/util/AsyncChannel;->sendMessage(III)V
+Lcom/android/internal/util/AsyncChannel;->sendMessage(IIILjava/lang/Object;)V
 Lcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(III)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(Landroid/os/Message;)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->STATUS_SUCCESSFUL:I
 Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;)V
 Lcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;)V
 Lcom/android/internal/util/IndentingPrintWriter;->decreaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
 Lcom/android/internal/util/IndentingPrintWriter;->increaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
+Lcom/android/internal/util/JournaledFile;-><init>(Ljava/io/File;Ljava/io/File;)V
+Lcom/android/internal/util/JournaledFile;->chooseForRead()Ljava/io/File;
+Lcom/android/internal/util/JournaledFile;->chooseForWrite()Ljava/io/File;
+Lcom/android/internal/util/JournaledFile;->commit()V
+Lcom/android/internal/util/JournaledFile;->rollback()V
 Lcom/android/internal/util/XmlUtils;->beginDocument(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+Lcom/android/internal/util/XmlUtils;->convertValueToBoolean(Ljava/lang/CharSequence;Z)Z
+Lcom/android/internal/util/XmlUtils;->convertValueToInt(Ljava/lang/CharSequence;I)I
 Lcom/android/internal/util/XmlUtils;->nextElement(Lorg/xmlpull/v1/XmlPullParser;)V
 Lcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap;
 Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
 Lcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/io/OutputStream;)V
+Lcom/android/internal/view/BaseIWindow;-><init>()V
 Lcom/android/internal/view/IInputConnectionWrapper;->mInputConnection:Landroid/view/inputmethod/InputConnection;
 Lcom/android/internal/view/IInputConnectionWrapper;->mLock:Ljava/lang/Object;
+Lcom/android/internal/view/IInputMethod$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethod;
+Lcom/android/internal/view/IInputMethod;->attachToken(Landroid/os/IBinder;)V
+Lcom/android/internal/view/IInputMethod;->bindInput(Landroid/view/inputmethod/InputBinding;)V
+Lcom/android/internal/view/IInputMethod;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+Lcom/android/internal/view/IInputMethod;->setSessionEnabled(Lcom/android/internal/view/IInputMethodSession;Z)V
+Lcom/android/internal/view/IInputMethod;->showSoftInput(ILandroid/os/ResultReceiver;)V
+Lcom/android/internal/view/IInputMethod;->unbindInput()V
+Lcom/android/internal/view/IInputMethodClient;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
+Lcom/android/internal/view/IInputMethodClient;->setUsingInputMethod(Z)V
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager$Stub;-><init>()V
 Lcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
+Lcom/android/internal/view/IInputMethodManager;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;II)V
+Lcom/android/internal/view/IInputMethodManager;->removeClient(Lcom/android/internal/view/IInputMethodClient;)V
+Lcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
 Lcom/android/internal/view/InputBindResult;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/view/InputBindResult;->method:Lcom/android/internal/view/IInputMethodSession;
+Lcom/android/internal/view/menu/ActionMenuItemView;->hasText()Z
+Lcom/android/internal/view/menu/MenuBuilder$Callback;->onMenuItemSelected(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)Z
+Lcom/android/internal/view/menu/MenuBuilder$Callback;->onMenuModeChange(Lcom/android/internal/view/menu/MenuBuilder;)V
 Lcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;)V
+Lcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;Landroid/content/Context;)V
+Lcom/android/internal/view/menu/MenuBuilder;->collapseItemActionView(Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/MenuBuilder;->getContext()Landroid/content/Context;
+Lcom/android/internal/view/menu/MenuBuilder;->getNonActionItems()Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->getRootMenu()Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList;
 Lcom/android/internal/view/menu/MenuBuilder;->mContext:Landroid/content/Context;
+Lcom/android/internal/view/menu/MenuBuilder;->removeMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;)V
+Lcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
 Lcom/android/internal/view/menu/MenuBuilder;->setCurrentMenuInfo(Landroid/view/ContextMenu$ContextMenuInfo;)V
+Lcom/android/internal/view/menu/MenuBuilder;->setDefaultShowAsAction(I)Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/MenuBuilder;->setOptionalIconsVisible(Z)V
+Lcom/android/internal/view/menu/MenuBuilder;->startDispatchingItemsChanged()V
+Lcom/android/internal/view/menu/MenuBuilder;->stopDispatchingItemsChanged()V
+Lcom/android/internal/view/menu/MenuItemImpl;->invoke()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->isActionButton()Z
 Lcom/android/internal/view/menu/MenuItemImpl;->mIconResId:I
+Lcom/android/internal/view/menu/MenuItemImpl;->requestsActionButton()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->requiresActionButton()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->setActionViewExpanded(Z)V
 Lcom/android/internal/view/menu/MenuItemImpl;->setMenuInfo(Landroid/view/ContextMenu$ContextMenuInfo;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;->dismiss()V
 Lcom/android/internal/view/menu/MenuPopupHelper;->mForceShowIcon:Z
 Lcom/android/internal/view/menu/MenuPopupHelper;->setForceShowIcon(Z)V
+Lcom/android/internal/view/menu/MenuPopupHelper;->setGravity(I)V
+Lcom/android/internal/view/menu/MenuPopupHelper;->show()V
+Lcom/android/internal/view/menu/MenuPopupHelper;->tryShow()Z
+Lcom/android/internal/view/menu/MenuPresenter$Callback;->onOpenSubMenu(Lcom/android/internal/view/menu/MenuBuilder;)Z
 Lcom/android/internal/view/menu/MenuView$ItemView;->getItemData()Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/MenuView;->getWindowAnimations()I
+Lcom/android/internal/view/menu/SubMenuBuilder;->getRootMenu()Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/SubMenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Lcom/android/internal/widget/CachingIconView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
+Lcom/android/internal/widget/ILockSettings;->getBoolean(Ljava/lang/String;ZI)Z
+Lcom/android/internal/widget/ILockSettings;->getLong(Ljava/lang/String;JI)J
+Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings;->havePassword(I)Z
+Lcom/android/internal/widget/ILockSettings;->havePattern(I)Z
+Lcom/android/internal/widget/ILockSettings;->setBoolean(Ljava/lang/String;ZI)V
+Lcom/android/internal/widget/ILockSettings;->setLong(Ljava/lang/String;JI)V
+Lcom/android/internal/widget/ILockSettings;->setString(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/IRemoteViewsFactory;
+Lcom/android/internal/widget/IRemoteViewsFactory;->getCount()I
+Lcom/android/internal/widget/IRemoteViewsFactory;->getItemId(I)J
+Lcom/android/internal/widget/IRemoteViewsFactory;->getLoadingView()Landroid/widget/RemoteViews;
+Lcom/android/internal/widget/IRemoteViewsFactory;->getViewAt(I)Landroid/widget/RemoteViews;
+Lcom/android/internal/widget/IRemoteViewsFactory;->getViewTypeCount()I
+Lcom/android/internal/widget/IRemoteViewsFactory;->hasStableIds()Z
+Lcom/android/internal/widget/IRemoteViewsFactory;->isCreated()Z
+Lcom/android/internal/widget/IRemoteViewsFactory;->onDataSetChanged()V
+Lcom/android/internal/widget/ScrollingTabContainerView;-><init>(Landroid/content/Context;)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->addTab(Landroid/app/ActionBar$Tab;IZ)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->addTab(Landroid/app/ActionBar$Tab;Z)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->animateToTab(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->animateToVisibility(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->removeAllTabs()V
+Lcom/android/internal/widget/ScrollingTabContainerView;->removeTabAt(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->setAllowCollapse(Z)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->setTabSelected(I)V
+Lcom/android/internal/widget/ScrollingTabContainerView;->updateTab(I)V
+Lcom/android/okhttp/Connection;->getSocket()Ljava/net/Socket;
+Lcom/android/okhttp/ConnectionPool;->connections:Ljava/util/Deque;
 Lcom/android/okhttp/ConnectionPool;->keepAliveDurationNs:J
 Lcom/android/okhttp/ConnectionPool;->maxIdleConnections:I
 Lcom/android/okhttp/ConnectionPool;->systemDefault:Lcom/android/okhttp/ConnectionPool;
+Lcom/android/okhttp/HttpUrl$Builder;->build()Lcom/android/okhttp/HttpUrl;
 Lcom/android/okhttp/HttpUrl;->encodedPath()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->newBuilder()Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl;->parse(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
 Lcom/android/okhttp/HttpUrl;->query()Ljava/lang/String;
-Lcom/android/okhttp/OkHttpClient;->DEFAULT_PROTOCOLS:Ljava/util/List;
+Lcom/android/okhttp/internal/http/HttpEngine;->getConnection()Lcom/android/okhttp/Connection;
+Lcom/android/okhttp/internal/http/HttpEngine;->hasResponse()Z
+Lcom/android/okhttp/internal/http/HttpEngine;->httpStream:Lcom/android/okhttp/internal/http/HttpStream;
+Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Request;
+Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest:Lcom/android/okhttp/Request;
+Lcom/android/okhttp/internal/http/HttpEngine;->priorResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->readResponse()V
+Lcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V
+Lcom/android/okhttp/internal/http/HttpEngine;->sentRequestMillis:J
+Lcom/android/okhttp/internal/http/HttpEngine;->userResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->writingRequestHeaders()V
+Lcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z
+Lcom/android/okhttp/OkHttpClient;-><init>()V
 Lcom/android/okhttp/OkHttpClient;->connectionPool:Lcom/android/okhttp/ConnectionPool;
+Lcom/android/okhttp/OkHttpClient;->DEFAULT_PROTOCOLS:Ljava/util/List;
 Lcom/android/okhttp/OkHttpClient;->dns:Lcom/android/okhttp/Dns;
+Lcom/android/okhttp/OkHttpClient;->getConnectionPool()Lcom/android/okhttp/ConnectionPool;
+Lcom/android/okhttp/OkHttpClient;->getCookieHandler()Ljava/net/CookieHandler;
+Lcom/android/okhttp/OkHttpClient;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
+Lcom/android/okhttp/OkHttpClient;->getProxy()Ljava/net/Proxy;
+Lcom/android/okhttp/OkHttpClient;->getProxySelector()Ljava/net/ProxySelector;
+Lcom/android/okhttp/OkHttpClient;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
 Lcom/android/okhttp/OkHttpClient;->setProtocols(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
 Lcom/android/okhttp/OkHttpClient;->setRetryOnConnectionFailure(Z)V
+Lcom/android/okhttp/okio/ByteString;->readObject(Ljava/io/ObjectInputStream;)V
+Lcom/android/okhttp/okio/ByteString;->serialVersionUID:J
+Lcom/android/okhttp/okio/ByteString;->writeObject(Ljava/io/ObjectOutputStream;)V
 Lcom/android/okhttp/Request;->headers:Lcom/android/okhttp/Headers;
 Lcom/android/okhttp/Request;->method:Ljava/lang/String;
 Lcom/android/okhttp/Request;->url:Lcom/android/okhttp/HttpUrl;
@@ -4891,14 +9713,6 @@
 Lcom/android/okhttp/Response;->message:Ljava/lang/String;
 Lcom/android/okhttp/Response;->networkResponse:Lcom/android/okhttp/Response;
 Lcom/android/okhttp/Response;->protocol:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/internal/http/HttpEngine;->httpStream:Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->priorResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->userResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/okio/ByteString;->readObject(Ljava/io/ObjectInputStream;)V
-Lcom/android/okhttp/okio/ByteString;->serialVersionUID:J
-Lcom/android/okhttp/okio/ByteString;->writeObject(Ljava/io/ObjectOutputStream;)V
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->getApplicationProtocol()Ljava/lang/String;
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->getApplicationProtocols()[Ljava/lang/String;
@@ -4925,6 +9739,10 @@
 Lcom/android/org/conscrypt/ConscryptSocketBase;->setHostname(Ljava/lang/String;)V
 Lcom/android/org/conscrypt/ConscryptSocketBase;->setSoWriteTimeout(I)V
 Lcom/android/org/conscrypt/ConscryptSocketBase;->socket:Ljava/net/Socket;
+Lcom/android/org/conscrypt/OpenSSLKey;-><init>(J)V
+Lcom/android/org/conscrypt/OpenSSLKey;->fromPrivateKey(Ljava/security/PrivateKey;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->getNativeRef()Lcom/android/org/conscrypt/NativeRef$EVP_PKEY;
+Lcom/android/org/conscrypt/OpenSSLKey;->getPublicKey()Ljava/security/PublicKey;
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getChannelId()[B
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getHostname()Ljava/lang/String;
@@ -4940,37 +9758,53 @@
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setNpnProtocols([B)V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setSoWriteTimeout(I)V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromX509PemInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->mContext:J
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->serialVersionUID:J
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$ParsingException;->serialVersionUID:J
+Lcom/android/org/conscrypt/TrustedCertificateStore;-><init>()V
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificateChain(Ljava/security/cert/X509Certificate;)Ljava/util/List;
 Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Ldalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V
 Ldalvik/system/BaseDexClassLoader;->addDexPath(Ljava/lang/String;)V
+Ldalvik/system/BaseDexClassLoader;->addDexPath(Ljava/lang/String;Z)V
 Ldalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String;
 Ldalvik/system/BaseDexClassLoader;->pathList:Ldalvik/system/DexPathList;
+Ldalvik/system/BlockGuard$BlockGuardPolicyException;-><init>(IILjava/lang/String;)V
 Ldalvik/system/BlockGuard$Policy;->onNetwork()V
 Ldalvik/system/BlockGuard$Policy;->onReadFromDisk()V
 Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;
+Ldalvik/system/BlockGuard;->LAX_POLICY:Ldalvik/system/BlockGuard$Policy;
+Ldalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V
 Ldalvik/system/CloseGuard;->close()V
 Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard;
 Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V
+Ldalvik/system/CloseGuard;->setEnabled(Z)V
+Ldalvik/system/CloseGuard;->setReporter(Ldalvik/system/CloseGuard$Reporter;)V
 Ldalvik/system/CloseGuard;->warnIfOpen()V
 Ldalvik/system/DexFile$DFEnum;->mNameList:[Ljava/lang/String;
 Ldalvik/system/DexFile;->getClassNameList(Ljava/lang/Object;)[Ljava/lang/String;
 Ldalvik/system/DexFile;->isBackedByOatFile()Z
 Ldalvik/system/DexFile;->loadClassBinaryName(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
+Ldalvik/system/DexFile;->loadDex(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
 Ldalvik/system/DexFile;->mCookie:Ljava/lang/Object;
 Ldalvik/system/DexFile;->mFileName:Ljava/lang/String;
 Ldalvik/system/DexFile;->mInternalCookie:Ljava/lang/Object;
 Ldalvik/system/DexFile;->openDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;
+Ldalvik/system/DexFile;->openDexFileNative(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;
 Ldalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;Ljava/io/File;)V
 Ldalvik/system/DexPathList$Element;-><init>(Ljava/io/File;ZLjava/io/File;Ldalvik/system/DexFile;)V
 Ldalvik/system/DexPathList$Element;->dexFile:Ldalvik/system/DexFile;
+Ldalvik/system/DexPathList$Element;->path:Ljava/io/File;
 Ldalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;)V
 Ldalvik/system/DexPathList$NativeLibraryElement;->path:Ljava/io/File;
 Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)V
 Ldalvik/system/DexPathList;->addDexPath(Ljava/lang/String;Ljava/io/File;)V
+Ldalvik/system/DexPathList;->addNativePath(Ljava/util/Collection;)V
 Ldalvik/system/DexPathList;->definingContext:Ljava/lang/ClassLoader;
 Ldalvik/system/DexPathList;->dexElements:[Ldalvik/system/DexPathList$Element;
+Ldalvik/system/DexPathList;->dexElementsSuppressedExceptions:[Ljava/io/IOException;
 Ldalvik/system/DexPathList;->loadDexFile(Ljava/io/File;Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
 Ldalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;)[Ldalvik/system/DexPathList$Element;
 Ldalvik/system/DexPathList;->makeInMemoryDexElements([Ljava/nio/ByteBuffer;Ljava/util/List;)[Ldalvik/system/DexPathList$Element;
@@ -4980,6 +9814,10 @@
 Ldalvik/system/DexPathList;->nativeLibraryPathElements:[Ldalvik/system/DexPathList$NativeLibraryElement;
 Ldalvik/system/DexPathList;->splitPaths(Ljava/lang/String;Z)Ljava/util/List;
 Ldalvik/system/DexPathList;->systemNativeLibraryDirectories:Ljava/util/List;
+Ldalvik/system/SocketTagger;->get()Ldalvik/system/SocketTagger;
+Ldalvik/system/SocketTagger;->tag(Ljava/net/Socket;)V
+Ldalvik/system/SocketTagger;->untag(Ljava/net/Socket;)V
+Ldalvik/system/VMDebug;->allowHiddenApiReflectionFrom(Ljava/lang/Class;)V
 Ldalvik/system/VMDebug;->dumpReferenceTables()V
 Ldalvik/system/VMDebug;->isDebuggerConnected()Z
 Ldalvik/system/VMRuntime;->addressOf(Ljava/lang/Object;)J
@@ -4988,6 +9826,7 @@
 Ldalvik/system/VMRuntime;->getCurrentInstructionSet()Ljava/lang/String;
 Ldalvik/system/VMRuntime;->getExternalBytesAllocated()J
 Ldalvik/system/VMRuntime;->getInstructionSet(Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/VMRuntime;->getMinimumHeapSize()J
 Ldalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime;
 Ldalvik/system/VMRuntime;->is64Bit()Z
 Ldalvik/system/VMRuntime;->is64BitAbi(Ljava/lang/String;)Z
@@ -4995,6 +9834,7 @@
 Ldalvik/system/VMRuntime;->registerNativeAllocation(I)V
 Ldalvik/system/VMRuntime;->registerNativeFree(I)V
 Ldalvik/system/VMRuntime;->runFinalization(J)V
+Ldalvik/system/VMRuntime;->runFinalizationSync()V
 Ldalvik/system/VMRuntime;->setMinimumHeapSize(J)J
 Ldalvik/system/VMRuntime;->setTargetHeapUtilization(F)F
 Ldalvik/system/VMRuntime;->setTargetSdkVersion(I)V
@@ -5002,8 +9842,10 @@
 Ldalvik/system/VMRuntime;->trackExternalFree(J)V
 Ldalvik/system/VMRuntime;->vmInstructionSet()Ljava/lang/String;
 Ldalvik/system/VMRuntime;->vmLibrary()Ljava/lang/String;
+Ldalvik/system/VMStack;->fillStackTraceElements(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;)I
 Ldalvik/system/VMStack;->getCallingClassLoader()Ljava/lang/ClassLoader;
 Ldalvik/system/VMStack;->getStackClass2()Ljava/lang/Class;
+Ldalvik/system/VMStack;->getThreadStackTrace(Ljava/lang/Thread;)[Ljava/lang/StackTraceElement;
 Ljava/awt/font/NumericShaper;->serialVersionUID:J
 Ljava/awt/font/NumericShaper;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/awt/font/TextAttribute;->serialVersionUID:J
@@ -5014,6 +9856,7 @@
 Ljava/beans/PropertyChangeSupport;->serialVersionUID:J
 Ljava/beans/PropertyChangeSupport;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/io/CharConversionException;->serialVersionUID:J
+Ljava/io/Console;->encoding()Ljava/lang/String;
 Ljava/io/EOFException;->serialVersionUID:J
 Ljava/io/File;->filePath:Ljava/nio/file/Path;
 Ljava/io/File;->fs:Ljava/io/FileSystem;
@@ -5029,30 +9872,75 @@
 Ljava/io/FileDescriptor;->setInt$(I)V
 Ljava/io/FileInputStream;->fd:Ljava/io/FileDescriptor;
 Ljava/io/FileNotFoundException;->serialVersionUID:J
+Ljava/io/FileOutputStream;->channel:Ljava/nio/channels/FileChannel;
 Ljava/io/FileOutputStream;->fd:Ljava/io/FileDescriptor;
-Ljava/io/IOError;->serialVersionUID:J
-Ljava/io/IOException;->serialVersionUID:J
+Ljava/io/FileSystem;->canonicalize(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->checkAccess(Ljava/io/File;I)Z
+Ljava/io/FileSystem;->compare(Ljava/io/File;Ljava/io/File;)I
+Ljava/io/FileSystem;->createDirectory(Ljava/io/File;)Z
+Ljava/io/FileSystem;->createFileExclusively(Ljava/lang/String;)Z
+Ljava/io/FileSystem;->delete(Ljava/io/File;)Z
+Ljava/io/FileSystem;->fromURIPath(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->getBooleanAttributes(Ljava/io/File;)I
+Ljava/io/FileSystem;->getDefaultParent()Ljava/lang/String;
+Ljava/io/FileSystem;->getLastModifiedTime(Ljava/io/File;)J
+Ljava/io/FileSystem;->getLength(Ljava/io/File;)J
+Ljava/io/FileSystem;->getPathSeparator()C
+Ljava/io/FileSystem;->getSeparator()C
+Ljava/io/FileSystem;->getSpace(Ljava/io/File;I)J
+Ljava/io/FileSystem;->hashCode(Ljava/io/File;)I
+Ljava/io/FileSystem;->isAbsolute(Ljava/io/File;)Z
+Ljava/io/FileSystem;->list(Ljava/io/File;)[Ljava/lang/String;
+Ljava/io/FileSystem;->listRoots()[Ljava/io/File;
+Ljava/io/FileSystem;->normalize(Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->prefixLength(Ljava/lang/String;)I
+Ljava/io/FileSystem;->rename(Ljava/io/File;Ljava/io/File;)Z
+Ljava/io/FileSystem;->resolve(Ljava/io/File;)Ljava/lang/String;
+Ljava/io/FileSystem;->resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/io/FileSystem;->setLastModifiedTime(Ljava/io/File;J)Z
+Ljava/io/FileSystem;->setPermission(Ljava/io/File;IZZ)Z
+Ljava/io/FileSystem;->setReadOnly(Ljava/io/File;)Z
 Ljava/io/InterruptedIOException;->serialVersionUID:J
 Ljava/io/InvalidClassException;->serialVersionUID:J
 Ljava/io/InvalidObjectException;->serialVersionUID:J
+Ljava/io/IOError;->serialVersionUID:J
+Ljava/io/IOException;->serialVersionUID:J
 Ljava/io/NotActiveException;->serialVersionUID:J
 Ljava/io/NotSerializableException;->serialVersionUID:J
+Ljava/io/ObjectInputStream;->bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
+Ljava/io/ObjectInputStream;->bytesToDoubles([BI[DII)V
+Ljava/io/ObjectInputStream;->bytesToFloats([BI[FII)V
+Ljava/io/ObjectOutputStream;->protocol:I
+Ljava/io/ObjectStreamClass;->computeDefaultSUID(Ljava/lang/Class;)J
+Ljava/io/ObjectStreamClass;->computeFieldOffsets()V
+Ljava/io/ObjectStreamClass;->fields:[Ljava/io/ObjectStreamField;
 Ljava/io/ObjectStreamClass;->getConstructorId(Ljava/lang/Class;)J
+Ljava/io/ObjectStreamClass;->getLocalDesc()Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->getNumObjFields()I
+Ljava/io/ObjectStreamClass;->getPrimDataSize()I
+Ljava/io/ObjectStreamClass;->hasReadObjectMethod()Z
+Ljava/io/ObjectStreamClass;->hasReadObjectNoDataMethod()Z
+Ljava/io/ObjectStreamClass;->hasWriteObjectData()Z
 Ljava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object;
 Ljava/io/ObjectStreamClass;->newInstance(Ljava/lang/Class;J)Ljava/lang/Object;
 Ljava/io/ObjectStreamClass;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/io/ObjectStreamClass;->serialVersionUID:J
 Ljava/io/ObjectStreamException;->serialVersionUID:J
+Ljava/io/ObjectStreamField;->getField()Ljava/lang/reflect/Field;
 Ljava/io/OptionalDataException;->serialVersionUID:J
+Ljava/io/RandomAccessFile;->fd:Ljava/io/FileDescriptor;
 Ljava/io/StreamCorruptedException;->serialVersionUID:J
 Ljava/io/SyncFailedException;->serialVersionUID:J
-Ljava/io/UTFDataFormatException;->serialVersionUID:J
 Ljava/io/UncheckedIOException;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/io/UncheckedIOException;->serialVersionUID:J
 Ljava/io/UnsupportedEncodingException;->serialVersionUID:J
+Ljava/io/UTFDataFormatException;->serialVersionUID:J
 Ljava/io/WriteAbortedException;->serialVersionUID:J
 Ljava/lang/AbstractMethodError;->serialVersionUID:J
 Ljava/lang/AbstractStringBuilder;->value:[C
+Ljava/lang/annotation/AnnotationFormatError;->serialVersionUID:J
+Ljava/lang/annotation/AnnotationTypeMismatchException;->serialVersionUID:J
+Ljava/lang/annotation/IncompleteAnnotationException;->serialVersionUID:J
 Ljava/lang/ArithmeticException;->serialVersionUID:J
 Ljava/lang/ArrayIndexOutOfBoundsException;->serialVersionUID:J
 Ljava/lang/ArrayStoreException;->serialVersionUID:J
@@ -5061,14 +9949,23 @@
 Ljava/lang/Boolean;->value:Z
 Ljava/lang/BootstrapMethodError;->serialVersionUID:J
 Ljava/lang/Byte;->serialVersionUID:J
+Ljava/lang/Byte;->toHexString(BZ)Ljava/lang/String;
 Ljava/lang/Byte;->value:B
 Ljava/lang/Character;->serialVersionUID:J
 Ljava/lang/Character;->value:C
+Ljava/lang/Class;-><init>()V
 Ljava/lang/Class;->accessFlags:I
+Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;
+Ljava/lang/Class;->clinitThreadId:I
 Ljava/lang/Class;->dexCache:Ljava/lang/Object;
 Ljava/lang/Class;->dexClassDefIndex:I
+Ljava/lang/Class;->getDeclaredMethodsUnchecked(Z)[Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
 Ljava/lang/Class;->ifTable:[Ljava/lang/Object;
+Ljava/lang/Class;->name:Ljava/lang/String;
+Ljava/lang/Class;->objectSize:I
 Ljava/lang/Class;->serialVersionUID:J
+Ljava/lang/Class;->status:I
 Ljava/lang/ClassCastException;->serialVersionUID:J
 Ljava/lang/ClassCircularityError;->serialVersionUID:J
 Ljava/lang/ClassFormatError;->serialVersionUID:J
@@ -5079,8 +9976,8 @@
 Ljava/lang/Daemons$Daemon;->start()V
 Ljava/lang/Daemons$Daemon;->stop()V
 Ljava/lang/Daemons$Daemon;->thread:Ljava/lang/Thread;
-Ljava/lang/Daemons$FinalizerDaemon;->INSTANCE:Ljava/lang/Daemons$FinalizerDaemon;
 Ljava/lang/Daemons$FinalizerDaemon;->finalizingObject:Ljava/lang/Object;
+Ljava/lang/Daemons$FinalizerDaemon;->INSTANCE:Ljava/lang/Daemons$FinalizerDaemon;
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->INSTANCE:Ljava/lang/Daemons$FinalizerWatchdogDaemon;
 Ljava/lang/Daemons$ReferenceQueueDaemon;->INSTANCE:Ljava/lang/Daemons$ReferenceQueueDaemon;
 Ljava/lang/Daemons;->MAX_FINALIZE_NANOS:J
@@ -5089,6 +9986,9 @@
 Ljava/lang/Daemons;->stop()V
 Ljava/lang/Double;->serialVersionUID:J
 Ljava/lang/Double;->value:D
+Ljava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;
+Ljava/lang/Enum;->name:Ljava/lang/String;
+Ljava/lang/Enum;->ordinal:I
 Ljava/lang/Enum;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/lang/Enum;->readObjectNoData()V
 Ljava/lang/EnumConstantNotPresentException;->serialVersionUID:J
@@ -5111,6 +10011,14 @@
 Ljava/lang/Integer;->value:I
 Ljava/lang/InternalError;->serialVersionUID:J
 Ljava/lang/InterruptedException;->serialVersionUID:J
+Ljava/lang/invoke/LambdaConversionException;->serialVersionUID:J
+Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V
+Ljava/lang/invoke/MethodType;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/lang/invoke/MethodType;->readResolve()Ljava/lang/Object;
+Ljava/lang/invoke/MethodType;->serialPersistentFields:[Ljava/io/ObjectStreamField;
+Ljava/lang/invoke/MethodType;->serialVersionUID:J
+Ljava/lang/invoke/MethodType;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/lang/invoke/WrongMethodTypeException;->serialVersionUID:J
 Ljava/lang/LinkageError;->serialVersionUID:J
 Ljava/lang/Long;->serialVersionUID:J
 Ljava/lang/Long;->value:J
@@ -5123,10 +10031,33 @@
 Ljava/lang/NullPointerException;->serialVersionUID:J
 Ljava/lang/Number;->serialVersionUID:J
 Ljava/lang/NumberFormatException;->serialVersionUID:J
+Ljava/lang/Object;->identityHashCode(Ljava/lang/Object;)I
 Ljava/lang/OutOfMemoryError;->serialVersionUID:J
+Ljava/lang/ref/FinalizerReference;->add(Ljava/lang/Object;)V
+Ljava/lang/ref/FinalizerReference;->head:Ljava/lang/ref/FinalizerReference;
+Ljava/lang/ref/FinalizerReference;->next:Ljava/lang/ref/FinalizerReference;
+Ljava/lang/ref/FinalizerReference;->queue:Ljava/lang/ref/ReferenceQueue;
+Ljava/lang/ref/FinalizerReference;->remove(Ljava/lang/ref/FinalizerReference;)V
+Ljava/lang/ref/Reference;->getReferent()Ljava/lang/Object;
+Ljava/lang/ref/Reference;->referent:Ljava/lang/Object;
+Ljava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V
+Ljava/lang/reflect/AccessibleObject;->override:Z
+Ljava/lang/reflect/Constructor;->serializationCopy(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
+Ljava/lang/reflect/Executable;->artMethod:J
+Ljava/lang/reflect/Field;->accessFlags:I
+Ljava/lang/reflect/Field;->getOffset()I
+Ljava/lang/reflect/GenericSignatureFormatError;->serialVersionUID:J
+Ljava/lang/reflect/InvocationTargetException;->serialVersionUID:J
+Ljava/lang/reflect/MalformedParameterizedTypeException;->serialVersionUID:J
+Ljava/lang/reflect/MalformedParametersException;->serialVersionUID:J
+Ljava/lang/reflect/Parameter;-><init>(Ljava/lang/String;ILjava/lang/reflect/Executable;I)V
+Ljava/lang/reflect/Proxy;->invoke(Ljava/lang/reflect/Proxy;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/lang/reflect/Proxy;->serialVersionUID:J
+Ljava/lang/reflect/UndeclaredThrowableException;->serialVersionUID:J
 Ljava/lang/ReflectiveOperationException;->serialVersionUID:J
 Ljava/lang/Runtime;->load(Ljava/lang/String;Ljava/lang/ClassLoader;)V
 Ljava/lang/Runtime;->loadLibrary(Ljava/lang/String;Ljava/lang/ClassLoader;)V
+Ljava/lang/Runtime;->loadLibrary0(Ljava/lang/ClassLoader;Ljava/lang/String;)V
 Ljava/lang/Runtime;->mLibPaths:[Ljava/lang/String;
 Ljava/lang/Runtime;->nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/String;
 Ljava/lang/RuntimeException;->serialVersionUID:J
@@ -5135,11 +10066,19 @@
 Ljava/lang/Short;->serialVersionUID:J
 Ljava/lang/Short;->value:S
 Ljava/lang/StackOverflowError;->serialVersionUID:J
+Ljava/lang/StackTraceElement;->declaringClass:Ljava/lang/String;
+Ljava/lang/StackTraceElement;->fileName:Ljava/lang/String;
+Ljava/lang/StackTraceElement;->lineNumber:I
+Ljava/lang/StackTraceElement;->methodName:Ljava/lang/String;
 Ljava/lang/StackTraceElement;->serialVersionUID:J
 Ljava/lang/String$CaseInsensitiveComparator;->readResolve()Ljava/lang/Object;
 Ljava/lang/String$CaseInsensitiveComparator;->serialVersionUID:J
 Ljava/lang/String;-><init>(II[C)V
+Ljava/lang/String;->count:I
 Ljava/lang/String;->getCharsNoCheck(II[CI)V
+Ljava/lang/String;->hash:I
+Ljava/lang/String;->indexOf([CII[CIII)I
+Ljava/lang/String;->lastIndexOf([CII[CIII)I
 Ljava/lang/String;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/lang/String;->serialVersionUID:J
 Ljava/lang/StringBuffer;->readObject(Ljava/io/ObjectInputStream;)V
@@ -5153,19 +10092,31 @@
 Ljava/lang/System;-><init>()V
 Ljava/lang/System;->arraycopy([BI[BII)V
 Ljava/lang/System;->arraycopy([CI[CII)V
+Ljava/lang/System;->arraycopy([FI[FII)V
 Ljava/lang/System;->arraycopy([II[III)V
+Ljava/lang/System;->arraycopy([JI[JII)V
+Ljava/lang/System;->arraycopy([SI[SII)V
+Ljava/lang/System;->arraycopy([ZI[ZII)V
+Ljava/lang/System;->log(CLjava/lang/String;Ljava/lang/Throwable;)V
+Ljava/lang/System;->logE(Ljava/lang/String;)V
+Ljava/lang/System;->logE(Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/lang/System;->logW(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;IZ)V
 Ljava/lang/Thread;->contextClassLoader:Ljava/lang/ClassLoader;
 Ljava/lang/Thread;->daemon:Z
 Ljava/lang/Thread;->dispatchUncaughtException(Ljava/lang/Throwable;)V
+Ljava/lang/Thread;->getUncaughtExceptionPreHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
 Ljava/lang/Thread;->group:Ljava/lang/ThreadGroup;
 Ljava/lang/Thread;->inheritableThreadLocals:Ljava/lang/ThreadLocal$ThreadLocalMap;
+Ljava/lang/Thread;->inheritedAccessControlContext:Ljava/security/AccessControlContext;
 Ljava/lang/Thread;->lock:Ljava/lang/Object;
 Ljava/lang/Thread;->name:Ljava/lang/String;
 Ljava/lang/Thread;->nativePeer:J
 Ljava/lang/Thread;->parkBlocker:Ljava/lang/Object;
 Ljava/lang/Thread;->priority:I
+Ljava/lang/Thread;->target:Ljava/lang/Runnable;
 Ljava/lang/Thread;->threadLocals:Ljava/lang/ThreadLocal$ThreadLocalMap;
+Ljava/lang/Thread;->threadSeqNumber:J
 Ljava/lang/ThreadDeath;->serialVersionUID:J
 Ljava/lang/ThreadGroup;->add(Ljava/lang/Thread;)V
 Ljava/lang/ThreadGroup;->groups:[Ljava/lang/ThreadGroup;
@@ -5175,10 +10126,13 @@
 Ljava/lang/ThreadGroup;->parent:Ljava/lang/ThreadGroup;
 Ljava/lang/ThreadGroup;->systemThreadGroup:Ljava/lang/ThreadGroup;
 Ljava/lang/ThreadGroup;->threadTerminated(Ljava/lang/Thread;)V
+Ljava/lang/ThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
 Ljava/lang/Throwable;->backtrace:Ljava/lang/Object;
 Ljava/lang/Throwable;->cause:Ljava/lang/Throwable;
 Ljava/lang/Throwable;->detailMessage:Ljava/lang/String;
+Ljava/lang/Throwable;->getOurStackTrace()[Ljava/lang/StackTraceElement;
 Ljava/lang/Throwable;->nativeFillInStackTrace()Ljava/lang/Object;
+Ljava/lang/Throwable;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V
 Ljava/lang/Throwable;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/lang/Throwable;->serialVersionUID:J
 Ljava/lang/Throwable;->stackTrace:[Ljava/lang/StackTraceElement;
@@ -5192,35 +10146,6 @@
 Ljava/lang/VerifyError;->serialVersionUID:J
 Ljava/lang/VirtualMachineError;->serialVersionUID:J
 Ljava/lang/Void;-><init>()V
-Ljava/lang/annotation/AnnotationFormatError;->serialVersionUID:J
-Ljava/lang/annotation/AnnotationTypeMismatchException;->serialVersionUID:J
-Ljava/lang/annotation/IncompleteAnnotationException;->serialVersionUID:J
-Ljava/lang/invoke/LambdaConversionException;->serialVersionUID:J
-Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V
-Ljava/lang/invoke/MethodType;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/lang/invoke/MethodType;->readResolve()Ljava/lang/Object;
-Ljava/lang/invoke/MethodType;->serialPersistentFields:[Ljava/io/ObjectStreamField;
-Ljava/lang/invoke/MethodType;->serialVersionUID:J
-Ljava/lang/invoke/MethodType;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/lang/invoke/WrongMethodTypeException;->serialVersionUID:J
-Ljava/lang/ref/FinalizerReference;->add(Ljava/lang/Object;)V
-Ljava/lang/ref/FinalizerReference;->head:Ljava/lang/ref/FinalizerReference;
-Ljava/lang/ref/FinalizerReference;->next:Ljava/lang/ref/FinalizerReference;
-Ljava/lang/ref/FinalizerReference;->queue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/ref/FinalizerReference;->remove(Ljava/lang/ref/FinalizerReference;)V
-Ljava/lang/ref/Reference;->getReferent()Ljava/lang/Object;
-Ljava/lang/ref/Reference;->referent:Ljava/lang/Object;
-Ljava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V
-Ljava/lang/reflect/Executable;->artMethod:J
-Ljava/lang/reflect/Field;->accessFlags:I
-Ljava/lang/reflect/GenericSignatureFormatError;->serialVersionUID:J
-Ljava/lang/reflect/InvocationTargetException;->serialVersionUID:J
-Ljava/lang/reflect/MalformedParameterizedTypeException;->serialVersionUID:J
-Ljava/lang/reflect/MalformedParametersException;->serialVersionUID:J
-Ljava/lang/reflect/Parameter;-><init>(Ljava/lang/String;ILjava/lang/reflect/Executable;I)V
-Ljava/lang/reflect/Proxy;->invoke(Ljava/lang/reflect/Proxy;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/reflect/Proxy;->serialVersionUID:J
-Ljava/lang/reflect/UndeclaredThrowableException;->serialVersionUID:J
 Ljava/math/BigDecimal;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/math/BigDecimal;->serialVersionUID:J
 Ljava/math/BigDecimal;->writeObject(Ljava/io/ObjectOutputStream;)V
@@ -5232,6 +10157,7 @@
 Ljava/net/Authenticator;->theAuthenticator:Ljava/net/Authenticator;
 Ljava/net/BindException;->serialVersionUID:J
 Ljava/net/ConnectException;->serialVersionUID:J
+Ljava/net/DatagramSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
 Ljava/net/DatagramSocket;->impl:Ljava/net/DatagramSocketImpl;
 Ljava/net/HttpCookie;->assignors:Ljava/util/Map;
 Ljava/net/HttpCookie;->comment:Ljava/lang/String;
@@ -5271,6 +10197,7 @@
 Ljava/net/InetAddress$InetAddressHolder;->hostName:Ljava/lang/String;
 Ljava/net/InetAddress$InetAddressHolder;->originalHostName:Ljava/lang/String;
 Ljava/net/InetAddress;->clearDnsCache()V
+Ljava/net/InetAddress;->getAllByNameOnNet(Ljava/lang/String;I)[Ljava/net/InetAddress;
 Ljava/net/InetAddress;->holder()Ljava/net/InetAddress$InetAddressHolder;
 Ljava/net/InetAddress;->holder:Ljava/net/InetAddress$InetAddressHolder;
 Ljava/net/InetAddress;->isNumeric(Ljava/lang/String;)Z
@@ -5280,55 +10207,60 @@
 Ljava/net/InetAddress;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/net/InetAddress;->serialVersionUID:J
 Ljava/net/InetAddress;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/net/InetSocketAddress;->holder:Ljava/net/InetSocketAddress$InetSocketAddressHolder;
 Ljava/net/InetSocketAddress;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/net/InetSocketAddress;->readObjectNoData()V
 Ljava/net/InetSocketAddress;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/net/InetSocketAddress;->serialVersionUID:J
 Ljava/net/InetSocketAddress;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/net/InterfaceAddress;-><init>()V
 Ljava/net/MalformedURLException;->serialVersionUID:J
 Ljava/net/NoRouteToHostException;->serialVersionUID:J
 Ljava/net/PortUnreachableException;->serialVersionUID:J
 Ljava/net/ProtocolException;->serialVersionUID:J
+Ljava/net/Proxy;-><init>()V
+Ljava/net/ServerSocket;->factory:Ljava/net/SocketImplFactory;
+Ljava/net/Socket;->factory:Ljava/net/SocketImplFactory;
 Ljava/net/Socket;->getFileDescriptor$()Ljava/io/FileDescriptor;
 Ljava/net/Socket;->impl:Ljava/net/SocketImpl;
 Ljava/net/SocketAddress;->serialVersionUID:J
+Ljava/net/SocketException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/net/SocketException;->serialVersionUID:J
 Ljava/net/SocketImpl;->serverSocket:Ljava/net/ServerSocket;
 Ljava/net/SocketImpl;->socket:Ljava/net/Socket;
 Ljava/net/SocketTimeoutException;->serialVersionUID:J
+Ljava/net/UnknownHostException;->serialVersionUID:J
+Ljava/net/UnknownServiceException;->serialVersionUID:J
 Ljava/net/URI;->fragment:Ljava/lang/String;
 Ljava/net/URI;->host:Ljava/lang/String;
 Ljava/net/URI;->port:I
+Ljava/net/URI;->query:Ljava/lang/String;
 Ljava/net/URI;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/net/URI;->serialVersionUID:J
 Ljava/net/URI;->string:Ljava/lang/String;
 Ljava/net/URI;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/net/URISyntaxException;->serialVersionUID:J
+Ljava/net/URL;->factory:Ljava/net/URLStreamHandlerFactory;
 Ljava/net/URL;->handler:Ljava/net/URLStreamHandler;
 Ljava/net/URL;->handlers:Ljava/util/Hashtable;
+Ljava/net/URL;->protocol:Ljava/lang/String;
 Ljava/net/URL;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/net/URL;->readResolve()Ljava/lang/Object;
 Ljava/net/URL;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/net/URL;->serialVersionUID:J
 Ljava/net/URL;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/net/UnknownHostException;->serialVersionUID:J
-Ljava/net/UnknownServiceException;->serialVersionUID:J
-Ljava/nio/Buffer;->_elementSizeShift:I
+Ljava/net/URLClassLoader;->acc:Ljava/security/AccessControlContext;
+Ljava/net/URLClassLoader;->ucp:Lsun/misc/URLClassPath;
 Ljava/nio/Buffer;->address:J
 Ljava/nio/Buffer;->capacity:I
 Ljava/nio/Buffer;->limit:I
 Ljava/nio/Buffer;->position:I
+Ljava/nio/Buffer;->_elementSizeShift:I
 Ljava/nio/BufferOverflowException;->serialVersionUID:J
 Ljava/nio/BufferUnderflowException;->serialVersionUID:J
 Ljava/nio/ByteBuffer;->hb:[B
 Ljava/nio/ByteBuffer;->isReadOnly:Z
 Ljava/nio/ByteBuffer;->offset:I
-Ljava/nio/DirectByteBuffer;-><init>(JI)V
-Ljava/nio/InvalidMarkException;->serialVersionUID:J
-Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;
-Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I
-Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J
-Ljava/nio/ReadOnlyBufferException;->serialVersionUID:J
 Ljava/nio/channels/AcceptPendingException;->serialVersionUID:J
 Ljava/nio/channels/AlreadyBoundException;->serialVersionUID:J
 Ljava/nio/channels/AlreadyConnectedException;->serialVersionUID:J
@@ -5354,15 +10286,19 @@
 Ljava/nio/channels/UnresolvedAddressException;->serialVersionUID:J
 Ljava/nio/channels/UnsupportedAddressTypeException;->serialVersionUID:J
 Ljava/nio/channels/WritePendingException;->serialVersionUID:J
+Ljava/nio/CharBuffer;->toString(II)Ljava/lang/String;
 Ljava/nio/charset/CharacterCodingException;->serialVersionUID:J
+Ljava/nio/charset/Charset;->defaultCharset:Ljava/nio/charset/Charset;
 Ljava/nio/charset/CharsetEncoder;->canEncode(Ljava/nio/CharBuffer;)Z
 Ljava/nio/charset/CoderMalfunctionError;->serialVersionUID:J
 Ljava/nio/charset/IllegalCharsetNameException;->serialVersionUID:J
 Ljava/nio/charset/MalformedInputException;->serialVersionUID:J
 Ljava/nio/charset/UnmappableCharacterException;->serialVersionUID:J
 Ljava/nio/charset/UnsupportedCharsetException;->serialVersionUID:J
+Ljava/nio/DirectByteBuffer;-><init>(JI)V
 Ljava/nio/file/AccessDeniedException;->serialVersionUID:J
 Ljava/nio/file/AtomicMoveNotSupportedException;->serialVersionUID:J
+Ljava/nio/file/attribute/UserPrincipalNotFoundException;->serialVersionUID:J
 Ljava/nio/file/ClosedDirectoryStreamException;->serialVersionUID:J
 Ljava/nio/file/ClosedFileSystemException;->serialVersionUID:J
 Ljava/nio/file/ClosedWatchServiceException;->serialVersionUID:J
@@ -5382,8 +10318,36 @@
 Ljava/nio/file/ProviderMismatchException;->serialVersionUID:J
 Ljava/nio/file/ProviderNotFoundException;->serialVersionUID:J
 Ljava/nio/file/ReadOnlyFileSystemException;->serialVersionUID:J
-Ljava/nio/file/attribute/UserPrincipalNotFoundException;->serialVersionUID:J
+Ljava/nio/InvalidMarkException;->serialVersionUID:J
+Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;
+Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I
+Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J
+Ljava/nio/NioUtils;->freeDirectBuffer(Ljava/nio/ByteBuffer;)V
+Ljava/nio/NioUtils;->unsafeArray(Ljava/nio/ByteBuffer;)[B
+Ljava/nio/NioUtils;->unsafeArrayOffset(Ljava/nio/ByteBuffer;)I
+Ljava/nio/ReadOnlyBufferException;->serialVersionUID:J
 Ljava/security/AccessControlException;->serialVersionUID:J
+Ljava/security/acl/AclNotFoundException;->serialVersionUID:J
+Ljava/security/acl/LastOwnerException;->serialVersionUID:J
+Ljava/security/acl/NotOwnerException;->serialVersionUID:J
+Ljava/security/cert/Certificate$CertificateRep;->serialVersionUID:J
+Ljava/security/cert/Certificate;->serialVersionUID:J
+Ljava/security/cert/CertificateEncodingException;->serialVersionUID:J
+Ljava/security/cert/CertificateException;->serialVersionUID:J
+Ljava/security/cert/CertificateExpiredException;->serialVersionUID:J
+Ljava/security/cert/CertificateNotYetValidException;->serialVersionUID:J
+Ljava/security/cert/CertificateParsingException;->serialVersionUID:J
+Ljava/security/cert/CertificateRevokedException;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/security/cert/CertificateRevokedException;->serialVersionUID:J
+Ljava/security/cert/CertificateRevokedException;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/security/cert/CertPath$CertPathRep;->serialVersionUID:J
+Ljava/security/cert/CertPath;->serialVersionUID:J
+Ljava/security/cert/CertPathBuilderException;->serialVersionUID:J
+Ljava/security/cert/CertPathValidatorException;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/security/cert/CertPathValidatorException;->serialVersionUID:J
+Ljava/security/cert/CertStoreException;->serialVersionUID:J
+Ljava/security/cert/CRLException;->serialVersionUID:J
+Ljava/security/cert/X509Certificate;->serialVersionUID:J
 Ljava/security/CodeSigner;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/security/CodeSigner;->serialVersionUID:J
 Ljava/security/DigestException;->serialVersionUID:J
@@ -5398,7 +10362,9 @@
 Ljava/security/KeyException;->serialVersionUID:J
 Ljava/security/KeyManagementException;->serialVersionUID:J
 Ljava/security/KeyPair;->serialVersionUID:J
+Ljava/security/KeyPairGenerator;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
 Ljava/security/KeyRep;->serialVersionUID:J
+Ljava/security/KeyStore;->keyStoreSpi:Ljava/security/KeyStoreSpi;
 Ljava/security/KeyStoreException;->serialVersionUID:J
 Ljava/security/NoSuchAlgorithmException;->serialVersionUID:J
 Ljava/security/NoSuchProviderException;->serialVersionUID:J
@@ -5408,39 +10374,19 @@
 Ljava/security/ProviderException;->serialVersionUID:J
 Ljava/security/SecureRandom;->serialVersionUID:J
 Ljava/security/SecureRandomSpi;->serialVersionUID:J
+Ljava/security/Signature;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/Signature;
 Ljava/security/SignatureException;->serialVersionUID:J
 Ljava/security/SignedObject;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/security/SignedObject;->serialVersionUID:J
 Ljava/security/Signer;->serialVersionUID:J
-Ljava/security/Timestamp;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/security/Timestamp;->serialVersionUID:J
-Ljava/security/UnrecoverableEntryException;->serialVersionUID:J
-Ljava/security/UnrecoverableKeyException;->serialVersionUID:J
-Ljava/security/acl/AclNotFoundException;->serialVersionUID:J
-Ljava/security/acl/LastOwnerException;->serialVersionUID:J
-Ljava/security/acl/NotOwnerException;->serialVersionUID:J
-Ljava/security/cert/CRLException;->serialVersionUID:J
-Ljava/security/cert/CertPath$CertPathRep;->serialVersionUID:J
-Ljava/security/cert/CertPath;->serialVersionUID:J
-Ljava/security/cert/CertPathBuilderException;->serialVersionUID:J
-Ljava/security/cert/CertPathValidatorException;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/security/cert/CertPathValidatorException;->serialVersionUID:J
-Ljava/security/cert/CertStoreException;->serialVersionUID:J
-Ljava/security/cert/Certificate$CertificateRep;->serialVersionUID:J
-Ljava/security/cert/Certificate;->serialVersionUID:J
-Ljava/security/cert/CertificateEncodingException;->serialVersionUID:J
-Ljava/security/cert/CertificateException;->serialVersionUID:J
-Ljava/security/cert/CertificateExpiredException;->serialVersionUID:J
-Ljava/security/cert/CertificateNotYetValidException;->serialVersionUID:J
-Ljava/security/cert/CertificateParsingException;->serialVersionUID:J
-Ljava/security/cert/CertificateRevokedException;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/security/cert/CertificateRevokedException;->serialVersionUID:J
-Ljava/security/cert/CertificateRevokedException;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/security/cert/X509Certificate;->serialVersionUID:J
 Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String;
 Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V
 Ljava/security/spec/InvalidKeySpecException;->serialVersionUID:J
 Ljava/security/spec/InvalidParameterSpecException;->serialVersionUID:J
+Ljava/security/Timestamp;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/security/Timestamp;->serialVersionUID:J
+Ljava/security/UnrecoverableEntryException;->serialVersionUID:J
+Ljava/security/UnrecoverableKeyException;->serialVersionUID:J
 Ljava/sql/BatchUpdateException;->serialVersionUID:J
 Ljava/sql/DataTruncation;->serialVersionUID:J
 Ljava/sql/Date;->serialVersionUID:J
@@ -5464,6 +10410,7 @@
 Ljava/text/AttributedCharacterIterator$Attribute;->serialVersionUID:J
 Ljava/text/ChoiceFormat;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/text/ChoiceFormat;->serialVersionUID:J
+Ljava/text/Collator;->icuColl:Landroid/icu/text/Collator;
 Ljava/text/DateFormat$Field;->serialVersionUID:J
 Ljava/text/DateFormat;->is24Hour:Ljava/lang/Boolean;
 Ljava/text/DateFormat;->serialVersionUID:J
@@ -5474,6 +10421,7 @@
 Ljava/text/DecimalFormat;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/text/DecimalFormat;->serialVersionUID:J
 Ljava/text/DecimalFormat;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/text/DecimalFormatSymbols;->getPercentString()Ljava/lang/String;
 Ljava/text/DecimalFormatSymbols;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/text/DecimalFormatSymbols;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/text/DecimalFormatSymbols;->serialVersionUID:J
@@ -5484,61 +10432,13 @@
 Ljava/text/MessageFormat;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/text/MessageFormat;->serialVersionUID:J
 Ljava/text/NumberFormat$Field;->serialVersionUID:J
+Ljava/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Ljava/text/NumberFormat;
 Ljava/text/NumberFormat;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/text/NumberFormat;->serialVersionUID:J
 Ljava/text/NumberFormat;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/text/ParseException;->serialVersionUID:J
 Ljava/text/SimpleDateFormat;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/text/SimpleDateFormat;->serialVersionUID:J
-Ljava/time/Clock$FixedClock;->serialVersionUID:J
-Ljava/time/Clock$OffsetClock;->serialVersionUID:J
-Ljava/time/Clock$SystemClock;->serialVersionUID:J
-Ljava/time/Clock$TickClock;->serialVersionUID:J
-Ljava/time/DateTimeException;->serialVersionUID:J
-Ljava/time/Duration;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/Duration;->serialVersionUID:J
-Ljava/time/Duration;->toSeconds()Ljava/math/BigDecimal;
-Ljava/time/Duration;->writeReplace()Ljava/lang/Object;
-Ljava/time/Instant;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/Instant;->serialVersionUID:J
-Ljava/time/Instant;->writeReplace()Ljava/lang/Object;
-Ljava/time/LocalDate;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/LocalDate;->serialVersionUID:J
-Ljava/time/LocalDate;->writeReplace()Ljava/lang/Object;
-Ljava/time/LocalDateTime;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/LocalDateTime;->serialVersionUID:J
-Ljava/time/LocalDateTime;->writeReplace()Ljava/lang/Object;
-Ljava/time/LocalTime;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/LocalTime;->serialVersionUID:J
-Ljava/time/LocalTime;->writeReplace()Ljava/lang/Object;
-Ljava/time/MonthDay;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/MonthDay;->serialVersionUID:J
-Ljava/time/MonthDay;->writeReplace()Ljava/lang/Object;
-Ljava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V
-Ljava/time/OffsetDateTime;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/OffsetDateTime;->serialVersionUID:J
-Ljava/time/OffsetDateTime;->writeReplace()Ljava/lang/Object;
-Ljava/time/OffsetTime;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/OffsetTime;->serialVersionUID:J
-Ljava/time/OffsetTime;->writeReplace()Ljava/lang/Object;
-Ljava/time/Period;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/Period;->serialVersionUID:J
-Ljava/time/Period;->writeReplace()Ljava/lang/Object;
-Ljava/time/Year;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/Year;->serialVersionUID:J
-Ljava/time/Year;->writeReplace()Ljava/lang/Object;
-Ljava/time/YearMonth;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/YearMonth;->serialVersionUID:J
-Ljava/time/YearMonth;->writeReplace()Ljava/lang/Object;
-Ljava/time/ZoneId;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/ZoneId;->serialVersionUID:J
-Ljava/time/ZoneId;->writeReplace()Ljava/lang/Object;
-Ljava/time/ZoneOffset;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/ZoneOffset;->serialVersionUID:J
-Ljava/time/ZoneOffset;->writeReplace()Ljava/lang/Object;
-Ljava/time/ZonedDateTime;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/time/ZonedDateTime;->serialVersionUID:J
-Ljava/time/ZonedDateTime;->writeReplace()Ljava/lang/Object;
 Ljava/time/chrono/AbstractChronology;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/time/chrono/AbstractChronology;->writeReplace()Ljava/lang/Object;
 Ljava/time/chrono/ChronoLocalDateImpl;->serialVersionUID:J
@@ -5572,7 +10472,41 @@
 Ljava/time/chrono/ThaiBuddhistDate;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/time/chrono/ThaiBuddhistDate;->serialVersionUID:J
 Ljava/time/chrono/ThaiBuddhistDate;->writeReplace()Ljava/lang/Object;
+Ljava/time/Clock$FixedClock;->serialVersionUID:J
+Ljava/time/Clock$OffsetClock;->serialVersionUID:J
+Ljava/time/Clock$SystemClock;->serialVersionUID:J
+Ljava/time/Clock$TickClock;->serialVersionUID:J
+Ljava/time/DateTimeException;->serialVersionUID:J
+Ljava/time/Duration;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/Duration;->serialVersionUID:J
+Ljava/time/Duration;->toSeconds()Ljava/math/BigDecimal;
+Ljava/time/Duration;->writeReplace()Ljava/lang/Object;
 Ljava/time/format/DateTimeParseException;->serialVersionUID:J
+Ljava/time/Instant;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/Instant;->serialVersionUID:J
+Ljava/time/Instant;->writeReplace()Ljava/lang/Object;
+Ljava/time/LocalDate;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/LocalDate;->serialVersionUID:J
+Ljava/time/LocalDate;->writeReplace()Ljava/lang/Object;
+Ljava/time/LocalDateTime;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/LocalDateTime;->serialVersionUID:J
+Ljava/time/LocalDateTime;->writeReplace()Ljava/lang/Object;
+Ljava/time/LocalTime;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/LocalTime;->serialVersionUID:J
+Ljava/time/LocalTime;->writeReplace()Ljava/lang/Object;
+Ljava/time/MonthDay;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/MonthDay;->serialVersionUID:J
+Ljava/time/MonthDay;->writeReplace()Ljava/lang/Object;
+Ljava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V
+Ljava/time/OffsetDateTime;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/OffsetDateTime;->serialVersionUID:J
+Ljava/time/OffsetDateTime;->writeReplace()Ljava/lang/Object;
+Ljava/time/OffsetTime;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/OffsetTime;->serialVersionUID:J
+Ljava/time/OffsetTime;->writeReplace()Ljava/lang/Object;
+Ljava/time/Period;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/Period;->serialVersionUID:J
+Ljava/time/Period;->writeReplace()Ljava/lang/Object;
 Ljava/time/temporal/JulianFields$Field;->serialVersionUID:J
 Ljava/time/temporal/UnsupportedTemporalTypeException;->serialVersionUID:J
 Ljava/time/temporal/ValueRange;->readObject(Ljava/io/ObjectInputStream;)V
@@ -5580,6 +10514,12 @@
 Ljava/time/temporal/WeekFields;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/time/temporal/WeekFields;->readResolve()Ljava/lang/Object;
 Ljava/time/temporal/WeekFields;->serialVersionUID:J
+Ljava/time/Year;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/Year;->serialVersionUID:J
+Ljava/time/Year;->writeReplace()Ljava/lang/Object;
+Ljava/time/YearMonth;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/YearMonth;->serialVersionUID:J
+Ljava/time/YearMonth;->writeReplace()Ljava/lang/Object;
 Ljava/time/zone/ZoneOffsetTransition;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/time/zone/ZoneOffsetTransition;->serialVersionUID:J
 Ljava/time/zone/ZoneOffsetTransition;->writeReplace()Ljava/lang/Object;
@@ -5590,6 +10530,16 @@
 Ljava/time/zone/ZoneRules;->serialVersionUID:J
 Ljava/time/zone/ZoneRules;->writeReplace()Ljava/lang/Object;
 Ljava/time/zone/ZoneRulesException;->serialVersionUID:J
+Ljava/time/ZonedDateTime;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/ZonedDateTime;->serialVersionUID:J
+Ljava/time/ZonedDateTime;->writeReplace()Ljava/lang/Object;
+Ljava/time/ZoneId;->of(Ljava/lang/String;Z)Ljava/time/ZoneId;
+Ljava/time/ZoneId;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/ZoneId;->serialVersionUID:J
+Ljava/time/ZoneId;->writeReplace()Ljava/lang/Object;
+Ljava/time/ZoneOffset;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/time/ZoneOffset;->serialVersionUID:J
+Ljava/time/ZoneOffset;->writeReplace()Ljava/lang/Object;
 Ljava/util/AbstractMap$SimpleEntry;->serialVersionUID:J
 Ljava/util/AbstractMap$SimpleImmutableEntry;->serialVersionUID:J
 Ljava/util/ArrayDeque;->elements:[Ljava/lang/Object;
@@ -5598,6 +10548,7 @@
 Ljava/util/ArrayDeque;->serialVersionUID:J
 Ljava/util/ArrayDeque;->tail:I
 Ljava/util/ArrayDeque;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/ArrayList$SubList;->offset:I
 Ljava/util/ArrayList$SubList;->parent:Ljava/util/AbstractList;
 Ljava/util/ArrayList$SubList;->parentOffset:I
 Ljava/util/ArrayList$SubList;->size:I
@@ -5608,6 +10559,8 @@
 Ljava/util/ArrayList;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/util/Arrays$ArrayList;->a:[Ljava/lang/Object;
 Ljava/util/Arrays$ArrayList;->serialVersionUID:J
+Ljava/util/Arrays;->checkOffsetAndCount(III)V
+Ljava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V
 Ljava/util/BitSet;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/BitSet;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljava/util/BitSet;->serialVersionUID:J
@@ -5631,6 +10584,7 @@
 Ljava/util/Collections$EmptyList;-><init>()V
 Ljava/util/Collections$EmptyList;->readResolve()Ljava/lang/Object;
 Ljava/util/Collections$EmptyList;->serialVersionUID:J
+Ljava/util/Collections$EmptyMap;-><init>()V
 Ljava/util/Collections$EmptyMap;->readResolve()Ljava/lang/Object;
 Ljava/util/Collections$EmptyMap;->serialVersionUID:J
 Ljava/util/Collections$EmptySet;->readResolve()Ljava/lang/Object;
@@ -5646,6 +10600,7 @@
 Ljava/util/Collections$SynchronizedCollection;->c:Ljava/util/Collection;
 Ljava/util/Collections$SynchronizedCollection;->serialVersionUID:J
 Ljava/util/Collections$SynchronizedCollection;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/Collections$SynchronizedList;->list:Ljava/util/List;
 Ljava/util/Collections$SynchronizedList;->readResolve()Ljava/lang/Object;
 Ljava/util/Collections$SynchronizedList;->serialVersionUID:J
 Ljava/util/Collections$SynchronizedMap;->m:Ljava/util/Map;
@@ -5676,196 +10631,7 @@
 Ljava/util/Collections$UnmodifiableSet;->serialVersionUID:J
 Ljava/util/Collections$UnmodifiableSortedMap;->serialVersionUID:J
 Ljava/util/Collections$UnmodifiableSortedSet;->serialVersionUID:J
-Ljava/util/ConcurrentModificationException;->serialVersionUID:J
-Ljava/util/Currency;->readResolve()Ljava/lang/Object;
-Ljava/util/Currency;->serialVersionUID:J
-Ljava/util/Date;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/Date;->serialVersionUID:J
-Ljava/util/Date;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/DuplicateFormatFlagsException;->serialVersionUID:J
-Ljava/util/EmptyStackException;->serialVersionUID:J
-Ljava/util/EnumMap;->keyType:Ljava/lang/Class;
-Ljava/util/EnumMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/EnumMap;->serialVersionUID:J
-Ljava/util/EnumMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/EnumSet$SerializationProxy;->readResolve()Ljava/lang/Object;
-Ljava/util/EnumSet$SerializationProxy;->serialVersionUID:J
-Ljava/util/EnumSet;->elementType:Ljava/lang/Class;
-Ljava/util/EnumSet;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/EnumSet;->writeReplace()Ljava/lang/Object;
-Ljava/util/EventObject;->serialVersionUID:J
-Ljava/util/FormatFlagsConversionMismatchException;->serialVersionUID:J
-Ljava/util/FormatterClosedException;->serialVersionUID:J
-Ljava/util/GregorianCalendar;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/GregorianCalendar;->serialVersionUID:J
-Ljava/util/HashMap$HashIterator;->hasNext()Z
-Ljava/util/HashMap$HashIterator;->remove()V
-Ljava/util/HashMap;->modCount:I
-Ljava/util/HashMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/HashMap;->serialVersionUID:J
-Ljava/util/HashMap;->table:[Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/HashSet;->map:Ljava/util/HashMap;
-Ljava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/HashSet;->serialVersionUID:J
-Ljava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/Hashtable;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/Hashtable;->serialVersionUID:J
-Ljava/util/Hashtable;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/IdentityHashMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/IdentityHashMap;->serialVersionUID:J
-Ljava/util/IdentityHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/IllegalFormatCodePointException;->serialVersionUID:J
-Ljava/util/IllegalFormatConversionException;->serialVersionUID:J
-Ljava/util/IllegalFormatException;->serialVersionUID:J
-Ljava/util/IllegalFormatFlagsException;->serialVersionUID:J
-Ljava/util/IllegalFormatPrecisionException;->serialVersionUID:J
-Ljava/util/IllegalFormatWidthException;->serialVersionUID:J
-Ljava/util/IllformedLocaleException;->serialVersionUID:J
-Ljava/util/InputMismatchException;->serialVersionUID:J
-Ljava/util/InvalidPropertiesFormatException;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/InvalidPropertiesFormatException;->serialVersionUID:J
-Ljava/util/InvalidPropertiesFormatException;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z
-Ljava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry;
-Ljava/util/LinkedHashMap;->serialVersionUID:J
-Ljava/util/LinkedHashSet;->serialVersionUID:J
-Ljava/util/LinkedList;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/LinkedList;->serialVersionUID:J
-Ljava/util/LinkedList;->size:I
-Ljava/util/LinkedList;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/Locale;->createConstant(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale;
-Ljava/util/Locale;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/Locale;->readResolve()Ljava/lang/Object;
-Ljava/util/Locale;->serialPersistentFields:[Ljava/io/ObjectStreamField;
-Ljava/util/Locale;->serialVersionUID:J
-Ljava/util/Locale;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/MissingFormatArgumentException;->serialVersionUID:J
-Ljava/util/MissingFormatWidthException;->serialVersionUID:J
-Ljava/util/MissingResourceException;->serialVersionUID:J
-Ljava/util/NoSuchElementException;->serialVersionUID:J
-Ljava/util/PriorityQueue;->modCount:I
-Ljava/util/PriorityQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/PriorityQueue;->serialVersionUID:J
-Ljava/util/PriorityQueue;->size:I
-Ljava/util/PriorityQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/Properties;->serialVersionUID:J
-Ljava/util/Random;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/Random;->seedUniquifier()J
-Ljava/util/Random;->serialPersistentFields:[Ljava/io/ObjectStreamField;
-Ljava/util/Random;->serialVersionUID:J
-Ljava/util/Random;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/ServiceConfigurationError;->serialVersionUID:J
-Ljava/util/SimpleTimeZone;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/SimpleTimeZone;->serialVersionUID:J
-Ljava/util/SimpleTimeZone;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/Stack;->serialVersionUID:J
-Ljava/util/TimeZone;->serialVersionUID:J
-Ljava/util/TooManyListenersException;->serialVersionUID:J
-Ljava/util/TreeMap$AscendingSubMap;->serialVersionUID:J
-Ljava/util/TreeMap$DescendingSubMap;->serialVersionUID:J
-Ljava/util/TreeMap$NavigableSubMap;->serialVersionUID:J
-Ljava/util/TreeMap$SubMap;->readResolve()Ljava/lang/Object;
-Ljava/util/TreeMap$SubMap;->serialVersionUID:J
-Ljava/util/TreeMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/TreeMap;->serialVersionUID:J
-Ljava/util/TreeMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/TreeSet;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/TreeSet;->serialVersionUID:J
-Ljava/util/TreeSet;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/UUID;->leastSigBits:J
-Ljava/util/UUID;->mostSigBits:J
-Ljava/util/UUID;->serialVersionUID:J
-Ljava/util/UnknownFormatConversionException;->serialVersionUID:J
-Ljava/util/UnknownFormatFlagsException;->serialVersionUID:J
-Ljava/util/Vector;->elementData(I)Ljava/lang/Object;
-Ljava/util/Vector;->serialVersionUID:J
-Ljava/util/Vector;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/util/concurrent/ArrayBlockingQueue;->serialVersionUID:J
-Ljava/util/concurrent/BrokenBarrierException;->serialVersionUID:J
-Ljava/util/concurrent/CancellationException;->serialVersionUID:J
-Ljava/util/concurrent/CompletionException;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasMoreElements()Z
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap$KeySetView;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap$Segment;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/ConcurrentHashMap;->serialPersistentFields:[Ljava/io/ObjectStreamField;
-Ljava/util/concurrent/ConcurrentHashMap;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentLinkedDeque;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ConcurrentLinkedQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/ConcurrentLinkedQueue;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentLinkedQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentSkipListMap;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/ConcurrentSkipListMap;->serialVersionUID:J
-Ljava/util/concurrent/ConcurrentSkipListMap;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ConcurrentSkipListSet;->serialVersionUID:J
-Ljava/util/concurrent/CopyOnWriteArrayList;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/CopyOnWriteArrayList;->serialVersionUID:J
-Ljava/util/concurrent/CopyOnWriteArrayList;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/CopyOnWriteArraySet;->al:Ljava/util/concurrent/CopyOnWriteArrayList;
-Ljava/util/concurrent/CopyOnWriteArraySet;->serialVersionUID:J
-Ljava/util/concurrent/CountDownLatch$Sync;->serialVersionUID:J
-Ljava/util/concurrent/CountedCompleter;->serialVersionUID:J
-Ljava/util/concurrent/ExecutionException;->serialVersionUID:J
-Ljava/util/concurrent/Executors$RunnableAdapter;->task:Ljava/lang/Runnable;
-Ljava/util/concurrent/ForkJoinPool$AuxState;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinPool$EmptyTask;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/ForkJoinTask;->serialVersionUID:J
-Ljava/util/concurrent/ForkJoinTask;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/FutureTask;->EXCEPTIONAL:I
-Ljava/util/concurrent/FutureTask;->callable:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/FutureTask;->outcome:Ljava/lang/Object;
-Ljava/util/concurrent/FutureTask;->state:I
-Ljava/util/concurrent/LinkedBlockingDeque;->first:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/LinkedBlockingDeque;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/LinkedBlockingDeque;->serialVersionUID:J
-Ljava/util/concurrent/LinkedBlockingDeque;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/LinkedBlockingQueue;->capacity:I
-Ljava/util/concurrent/LinkedBlockingQueue;->head:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue;->putLock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/LinkedBlockingQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/LinkedBlockingQueue;->serialVersionUID:J
-Ljava/util/concurrent/LinkedBlockingQueue;->takeLock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/LinkedBlockingQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/LinkedTransferQueue$Node;->serialVersionUID:J
-Ljava/util/concurrent/LinkedTransferQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/LinkedTransferQueue;->serialVersionUID:J
-Ljava/util/concurrent/LinkedTransferQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->serialVersionUID:J
-Ljava/util/concurrent/PriorityBlockingQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/RecursiveAction;->serialVersionUID:J
-Ljava/util/concurrent/RecursiveTask;->serialVersionUID:J
-Ljava/util/concurrent/RejectedExecutionException;->serialVersionUID:J
-Ljava/util/concurrent/Semaphore$FairSync;->serialVersionUID:J
-Ljava/util/concurrent/Semaphore$NonfairSync;->serialVersionUID:J
-Ljava/util/concurrent/Semaphore$Sync;->serialVersionUID:J
-Ljava/util/concurrent/Semaphore;->serialVersionUID:J
-Ljava/util/concurrent/SynchronousQueue$FifoWaitQueue;->serialVersionUID:J
-Ljava/util/concurrent/SynchronousQueue$LifoWaitQueue;->serialVersionUID:J
-Ljava/util/concurrent/SynchronousQueue;->readObject(Ljava/io/ObjectInputStream;)V
-Ljava/util/concurrent/SynchronousQueue;->serialVersionUID:J
-Ljava/util/concurrent/SynchronousQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ThreadLocalRandom;->readResolve()Ljava/lang/Object;
-Ljava/util/concurrent/ThreadLocalRandom;->serialPersistentFields:[Ljava/io/ObjectStreamField;
-Ljava/util/concurrent/ThreadLocalRandom;->serialVersionUID:J
-Ljava/util/concurrent/ThreadLocalRandom;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->serialVersionUID:J
-Ljava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut:Z
-Ljava/util/concurrent/TimeoutException;->serialVersionUID:J
 Ljava/util/concurrent/atomic/AtomicBoolean;->serialVersionUID:J
 Ljava/util/concurrent/atomic/AtomicInteger;->serialVersionUID:J
 Ljava/util/concurrent/atomic/AtomicInteger;->value:I
@@ -5895,6 +10661,69 @@
 Ljava/util/concurrent/atomic/LongAdder;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/concurrent/atomic/LongAdder;->serialVersionUID:J
 Ljava/util/concurrent/atomic/LongAdder;->writeReplace()Ljava/lang/Object;
+Ljava/util/concurrent/BrokenBarrierException;->serialVersionUID:J
+Ljava/util/concurrent/CancellationException;->serialVersionUID:J
+Ljava/util/concurrent/CompletionException;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasMoreElements()Z
+Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap$KeySetView;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap$Segment;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/ConcurrentHashMap;->serialPersistentFields:[Ljava/io/ObjectStreamField;
+Ljava/util/concurrent/ConcurrentHashMap;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentLinkedDeque;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ConcurrentLinkedQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/ConcurrentLinkedQueue;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentLinkedQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentSkipListMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/ConcurrentSkipListMap;->serialVersionUID:J
+Ljava/util/concurrent/ConcurrentSkipListMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ConcurrentSkipListSet;->serialVersionUID:J
+Ljava/util/concurrent/CopyOnWriteArrayList;->elements:[Ljava/lang/Object;
+Ljava/util/concurrent/CopyOnWriteArrayList;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/CopyOnWriteArrayList;->serialVersionUID:J
+Ljava/util/concurrent/CopyOnWriteArrayList;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/CopyOnWriteArraySet;->al:Ljava/util/concurrent/CopyOnWriteArrayList;
+Ljava/util/concurrent/CopyOnWriteArraySet;->serialVersionUID:J
+Ljava/util/concurrent/CountDownLatch$Sync;->serialVersionUID:J
+Ljava/util/concurrent/CountedCompleter;->serialVersionUID:J
+Ljava/util/concurrent/ExecutionException;->serialVersionUID:J
+Ljava/util/concurrent/Executors$RunnableAdapter;->task:Ljava/lang/Runnable;
+Ljava/util/concurrent/ForkJoinPool$AuxState;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinPool$EmptyTask;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/ForkJoinTask;->serialVersionUID:J
+Ljava/util/concurrent/ForkJoinTask;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/FutureTask;->callable:Ljava/util/concurrent/Callable;
+Ljava/util/concurrent/FutureTask;->EXCEPTIONAL:I
+Ljava/util/concurrent/FutureTask;->outcome:Ljava/lang/Object;
+Ljava/util/concurrent/FutureTask;->state:I
+Ljava/util/concurrent/LinkedBlockingDeque;->first:Ljava/util/concurrent/LinkedBlockingDeque$Node;
+Ljava/util/concurrent/LinkedBlockingDeque;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/LinkedBlockingDeque;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/LinkedBlockingDeque;->serialVersionUID:J
+Ljava/util/concurrent/LinkedBlockingDeque;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/LinkedBlockingQueue;->capacity:I
+Ljava/util/concurrent/LinkedBlockingQueue;->head:Ljava/util/concurrent/LinkedBlockingQueue$Node;
+Ljava/util/concurrent/LinkedBlockingQueue;->putLock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/LinkedBlockingQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/LinkedBlockingQueue;->serialVersionUID:J
+Ljava/util/concurrent/LinkedBlockingQueue;->takeLock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/LinkedBlockingQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/LinkedTransferQueue$Node;->serialVersionUID:J
+Ljava/util/concurrent/LinkedTransferQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/LinkedTransferQueue;->serialVersionUID:J
+Ljava/util/concurrent/LinkedTransferQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/util/concurrent/locks/AbstractOwnableSynchronizer;->serialVersionUID:J
 Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->serialVersionUID:J
 Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->serialVersionUID:J
@@ -5905,6 +10734,7 @@
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->serialVersionUID:J
 Ljava/util/concurrent/locks/ReentrantLock;->serialVersionUID:J
+Ljava/util/concurrent/locks/ReentrantLock;->sync:Ljava/util/concurrent/locks/ReentrantLock$Sync;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->serialVersionUID:J
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->serialVersionUID:J
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->serialVersionUID:J
@@ -5914,14 +10744,121 @@
 Ljava/util/concurrent/locks/ReentrantReadWriteLock;->serialVersionUID:J
 Ljava/util/concurrent/locks/StampedLock;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/concurrent/locks/StampedLock;->serialVersionUID:J
+Ljava/util/concurrent/PriorityBlockingQueue;->dequeue()Ljava/lang/Object;
+Ljava/util/concurrent/PriorityBlockingQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/PriorityBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/PriorityBlockingQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/PriorityBlockingQueue;->serialVersionUID:J
+Ljava/util/concurrent/PriorityBlockingQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/RecursiveAction;->serialVersionUID:J
+Ljava/util/concurrent/RecursiveTask;->serialVersionUID:J
+Ljava/util/concurrent/RejectedExecutionException;->serialVersionUID:J
+Ljava/util/concurrent/Semaphore$FairSync;->serialVersionUID:J
+Ljava/util/concurrent/Semaphore$NonfairSync;->serialVersionUID:J
+Ljava/util/concurrent/Semaphore$Sync;->serialVersionUID:J
+Ljava/util/concurrent/Semaphore;->serialVersionUID:J
+Ljava/util/concurrent/SynchronousQueue$FifoWaitQueue;->serialVersionUID:J
+Ljava/util/concurrent/SynchronousQueue$LifoWaitQueue;->serialVersionUID:J
+Ljava/util/concurrent/SynchronousQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/concurrent/SynchronousQueue;->serialVersionUID:J
+Ljava/util/concurrent/SynchronousQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ThreadLocalRandom;->readResolve()Ljava/lang/Object;
+Ljava/util/concurrent/ThreadLocalRandom;->serialPersistentFields:[Ljava/io/ObjectStreamField;
+Ljava/util/concurrent/ThreadLocalRandom;->serialVersionUID:J
+Ljava/util/concurrent/ThreadLocalRandom;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->serialVersionUID:J
+Ljava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut:Z
+Ljava/util/concurrent/ThreadPoolExecutor;->ctl:Ljava/util/concurrent/atomic/AtomicInteger;
+Ljava/util/concurrent/ThreadPoolExecutor;->defaultHandler:Ljava/util/concurrent/RejectedExecutionHandler;
+Ljava/util/concurrent/ThreadPoolExecutor;->mainLock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/TimeoutException;->serialVersionUID:J
+Ljava/util/ConcurrentModificationException;->serialVersionUID:J
+Ljava/util/Currency;->readResolve()Ljava/lang/Object;
+Ljava/util/Currency;->serialVersionUID:J
+Ljava/util/Date;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/Date;->serialVersionUID:J
+Ljava/util/Date;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/DuplicateFormatFlagsException;->serialVersionUID:J
+Ljava/util/EmptyStackException;->serialVersionUID:J
+Ljava/util/EnumMap;->keyType:Ljava/lang/Class;
+Ljava/util/EnumMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/EnumMap;->serialVersionUID:J
+Ljava/util/EnumMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/EnumSet$SerializationProxy;->readResolve()Ljava/lang/Object;
+Ljava/util/EnumSet$SerializationProxy;->serialVersionUID:J
+Ljava/util/EnumSet;->elementType:Ljava/lang/Class;
+Ljava/util/EnumSet;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/EnumSet;->writeReplace()Ljava/lang/Object;
+Ljava/util/EventObject;->serialVersionUID:J
+Ljava/util/FormatFlagsConversionMismatchException;->serialVersionUID:J
+Ljava/util/FormatterClosedException;->serialVersionUID:J
+Ljava/util/GregorianCalendar;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/GregorianCalendar;->serialVersionUID:J
+Ljava/util/HashMap$HashIterator;->hasNext()Z
+Ljava/util/HashMap$HashIterator;->remove()V
+Ljava/util/HashMap$Node;->key:Ljava/lang/Object;
+Ljava/util/HashMap$Node;->next:Ljava/util/HashMap$Node;
+Ljava/util/HashMap$Node;->value:Ljava/lang/Object;
+Ljava/util/HashMap;->modCount:I
+Ljava/util/HashMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/HashMap;->serialVersionUID:J
+Ljava/util/HashMap;->table:[Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/HashSet;->map:Ljava/util/HashMap;
+Ljava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/HashSet;->serialVersionUID:J
+Ljava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/Hashtable;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/Hashtable;->serialVersionUID:J
+Ljava/util/Hashtable;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/IdentityHashMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/IdentityHashMap;->serialVersionUID:J
+Ljava/util/IdentityHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/IllegalFormatCodePointException;->serialVersionUID:J
+Ljava/util/IllegalFormatConversionException;->serialVersionUID:J
+Ljava/util/IllegalFormatException;->serialVersionUID:J
+Ljava/util/IllegalFormatFlagsException;->serialVersionUID:J
+Ljava/util/IllegalFormatPrecisionException;->serialVersionUID:J
+Ljava/util/IllegalFormatWidthException;->serialVersionUID:J
+Ljava/util/IllformedLocaleException;->serialVersionUID:J
+Ljava/util/InputMismatchException;->serialVersionUID:J
+Ljava/util/InvalidPropertiesFormatException;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/InvalidPropertiesFormatException;->serialVersionUID:J
+Ljava/util/InvalidPropertiesFormatException;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/util/jar/JarException;->serialVersionUID:J
 Ljava/util/jar/JarFile;->manifest:Ljava/util/jar/Manifest;
 Ljava/util/jar/JarVerifier$VerifierCodeSource;->serialVersionUID:J
+Ljava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z
+Ljava/util/LinkedHashMap;->accessOrder:Z
+Ljava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry;
+Ljava/util/LinkedHashMap;->serialVersionUID:J
+Ljava/util/LinkedHashSet;->serialVersionUID:J
+Ljava/util/LinkedList$Node;->item:Ljava/lang/Object;
+Ljava/util/LinkedList$Node;->next:Ljava/util/LinkedList$Node;
+Ljava/util/LinkedList;->first:Ljava/util/LinkedList$Node;
+Ljava/util/LinkedList;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/LinkedList;->serialVersionUID:J
+Ljava/util/LinkedList;->size:I
+Ljava/util/LinkedList;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/Locale;->createConstant(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale;
+Ljava/util/Locale;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
+Ljava/util/Locale;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/Locale;->readResolve()Ljava/lang/Object;
+Ljava/util/Locale;->serialPersistentFields:[Ljava/io/ObjectStreamField;
+Ljava/util/Locale;->serialVersionUID:J
+Ljava/util/Locale;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/logging/Handler;->sealed:Z
 Ljava/util/logging/Level;->readResolve()Ljava/lang/Object;
 Ljava/util/logging/Level;->serialVersionUID:J
+Ljava/util/logging/Logger;->treeLock:Ljava/lang/Object;
+Ljava/util/logging/LogManager;->getFormatterProperty(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter;
 Ljava/util/logging/LogRecord;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/logging/LogRecord;->serialVersionUID:J
 Ljava/util/logging/LogRecord;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/MissingFormatArgumentException;->serialVersionUID:J
+Ljava/util/MissingFormatWidthException;->serialVersionUID:J
+Ljava/util/MissingResourceException;->serialVersionUID:J
+Ljava/util/NoSuchElementException;->serialVersionUID:J
 Ljava/util/prefs/AbstractPreferences$NodeAddedEvent;->serialVersionUID:J
 Ljava/util/prefs/AbstractPreferences$NodeRemovedEvent;->serialVersionUID:J
 Ljava/util/prefs/BackingStoreException;->serialVersionUID:J
@@ -5932,10 +10869,52 @@
 Ljava/util/prefs/PreferenceChangeEvent;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/prefs/PreferenceChangeEvent;->serialVersionUID:J
 Ljava/util/prefs/PreferenceChangeEvent;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/PriorityQueue;->modCount:I
+Ljava/util/PriorityQueue;->queue:[Ljava/lang/Object;
+Ljava/util/PriorityQueue;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/PriorityQueue;->serialVersionUID:J
+Ljava/util/PriorityQueue;->size:I
+Ljava/util/PriorityQueue;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;
+Ljava/util/Properties;->serialVersionUID:J
+Ljava/util/Random;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/Random;->seedUniquifier()J
+Ljava/util/Random;->serialPersistentFields:[Ljava/io/ObjectStreamField;
+Ljava/util/Random;->serialVersionUID:J
+Ljava/util/Random;->writeObject(Ljava/io/ObjectOutputStream;)V
 Ljava/util/regex/Matcher;->appendPos:I
 Ljava/util/regex/Pattern;->readObject(Ljava/io/ObjectInputStream;)V
 Ljava/util/regex/Pattern;->serialVersionUID:J
 Ljava/util/regex/PatternSyntaxException;->serialVersionUID:J
+Ljava/util/ServiceConfigurationError;->serialVersionUID:J
+Ljava/util/SimpleTimeZone;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/SimpleTimeZone;->serialVersionUID:J
+Ljava/util/SimpleTimeZone;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/Stack;->serialVersionUID:J
+Ljava/util/TimerTask;->period:J
+Ljava/util/TimeZone;->serialVersionUID:J
+Ljava/util/TooManyListenersException;->serialVersionUID:J
+Ljava/util/TreeMap$AscendingSubMap;->serialVersionUID:J
+Ljava/util/TreeMap$DescendingSubMap;->serialVersionUID:J
+Ljava/util/TreeMap$NavigableSubMap;->serialVersionUID:J
+Ljava/util/TreeMap$SubMap;->readResolve()Ljava/lang/Object;
+Ljava/util/TreeMap$SubMap;->serialVersionUID:J
+Ljava/util/TreeMap;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/TreeMap;->serialVersionUID:J
+Ljava/util/TreeMap;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/TreeSet;->readObject(Ljava/io/ObjectInputStream;)V
+Ljava/util/TreeSet;->serialVersionUID:J
+Ljava/util/TreeSet;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/UnknownFormatConversionException;->serialVersionUID:J
+Ljava/util/UnknownFormatFlagsException;->serialVersionUID:J
+Ljava/util/UUID;->leastSigBits:J
+Ljava/util/UUID;->mostSigBits:J
+Ljava/util/UUID;->serialVersionUID:J
+Ljava/util/Vector;->elementData(I)Ljava/lang/Object;
+Ljava/util/Vector;->serialVersionUID:J
+Ljava/util/Vector;->writeObject(Ljava/io/ObjectOutputStream;)V
+Ljava/util/zip/Adler32;->update(II)I
+Ljava/util/zip/CRC32;->update(II)I
 Ljava/util/zip/DataFormatException;->serialVersionUID:J
 Ljava/util/zip/Deflater;->buf:[B
 Ljava/util/zip/Deflater;->finish:Z
@@ -5950,10 +10929,58 @@
 Ljava/util/zip/Inflater;->len:I
 Ljava/util/zip/Inflater;->needDict:Z
 Ljava/util/zip/Inflater;->off:I
+Ljava/util/zip/ZipConstants;->CENATT:I
+Ljava/util/zip/ZipConstants;->CENATX:I
+Ljava/util/zip/ZipConstants;->CENCOM:I
+Ljava/util/zip/ZipConstants;->CENCRC:I
+Ljava/util/zip/ZipConstants;->CENDSK:I
+Ljava/util/zip/ZipConstants;->CENEXT:I
+Ljava/util/zip/ZipConstants;->CENFLG:I
+Ljava/util/zip/ZipConstants;->CENHDR:I
+Ljava/util/zip/ZipConstants;->CENHOW:I
+Ljava/util/zip/ZipConstants;->CENLEN:I
+Ljava/util/zip/ZipConstants;->CENNAM:I
+Ljava/util/zip/ZipConstants;->CENOFF:I
+Ljava/util/zip/ZipConstants;->CENSIG:J
+Ljava/util/zip/ZipConstants;->CENSIZ:I
+Ljava/util/zip/ZipConstants;->CENTIM:I
+Ljava/util/zip/ZipConstants;->CENVEM:I
+Ljava/util/zip/ZipConstants;->CENVER:I
+Ljava/util/zip/ZipConstants;->ENDCOM:I
+Ljava/util/zip/ZipConstants;->ENDHDR:I
+Ljava/util/zip/ZipConstants;->ENDOFF:I
+Ljava/util/zip/ZipConstants;->ENDSIG:J
+Ljava/util/zip/ZipConstants;->ENDSIZ:I
+Ljava/util/zip/ZipConstants;->ENDSUB:I
+Ljava/util/zip/ZipConstants;->ENDTOT:I
+Ljava/util/zip/ZipConstants;->EXTCRC:I
+Ljava/util/zip/ZipConstants;->EXTHDR:I
+Ljava/util/zip/ZipConstants;->EXTLEN:I
+Ljava/util/zip/ZipConstants;->EXTSIG:J
+Ljava/util/zip/ZipConstants;->EXTSIZ:I
+Ljava/util/zip/ZipConstants;->LOCCRC:I
+Ljava/util/zip/ZipConstants;->LOCEXT:I
+Ljava/util/zip/ZipConstants;->LOCFLG:I
+Ljava/util/zip/ZipConstants;->LOCHDR:I
+Ljava/util/zip/ZipConstants;->LOCHOW:I
+Ljava/util/zip/ZipConstants;->LOCLEN:I
+Ljava/util/zip/ZipConstants;->LOCNAM:I
+Ljava/util/zip/ZipConstants;->LOCSIG:J
+Ljava/util/zip/ZipConstants;->LOCSIZ:I
+Ljava/util/zip/ZipConstants;->LOCTIM:I
+Ljava/util/zip/ZipConstants;->LOCVER:I
 Ljava/util/zip/ZipEntry;-><init>(Ljava/lang/String;Ljava/lang/String;JJJII[BJ)V
+Ljava/util/zip/ZipEntry;->method:I
 Ljava/util/zip/ZipError;->serialVersionUID:J
 Ljava/util/zip/ZipException;->serialVersionUID:J
+Ljava/util/zip/ZipFile;->close(J)V
+Ljava/util/zip/ZipFile;->getEntry(J[BZ)J
 Ljava/util/zip/ZipFile;->jzfile:J
+Ljava/util/zip/ZipInputStream;->flag:I
+Ljava/util/zip/ZipInputStream;->tmpbuf:[B
+Ljava/util/zip/ZipOutputStream;->method:I
+Ljava/util/zip/ZipOutputStream;->names:Ljava/util/HashSet;
+Ljava/util/zip/ZipOutputStream;->written:J
 Ljavax/crypto/AEADBadTagException;->serialVersionUID:J
 Ljavax/crypto/BadPaddingException;->serialVersionUID:J
 Ljavax/crypto/ExemptionMechanismException;->serialVersionUID:J
@@ -5963,6 +10990,7 @@
 Ljavax/crypto/SealedObject;->serialVersionUID:J
 Ljavax/crypto/ShortBufferException;->serialVersionUID:J
 Ljavax/crypto/spec/SecretKeySpec;->serialVersionUID:J
+Ljavax/microedition/khronos/egl/EGL10;->eglReleaseThread()Z
 Ljavax/net/ssl/HandshakeCompletedEvent;->serialVersionUID:J
 Ljavax/net/ssl/SSLException;->serialVersionUID:J
 Ljavax/net/ssl/SSLHandshakeException;->serialVersionUID:J
@@ -5971,8 +10999,12 @@
 Ljavax/net/ssl/SSLProtocolException;->serialVersionUID:J
 Ljavax/net/ssl/SSLServerSocketFactory;->defaultServerSocketFactory:Ljavax/net/ssl/SSLServerSocketFactory;
 Ljavax/net/ssl/SSLSessionBindingEvent;->serialVersionUID:J
+Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/net/Socket;Ljava/io/InputStream;Z)Ljava/net/Socket;
 Ljavax/net/ssl/SSLSocketFactory;->defaultSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
+Ljavax/security/auth/callback/PasswordCallback;->serialVersionUID:J
+Ljavax/security/auth/callback/UnsupportedCallbackException;->serialVersionUID:J
 Ljavax/security/auth/DestroyFailedException;->serialVersionUID:J
+Ljavax/security/auth/login/LoginException;->serialVersionUID:J
 Ljavax/security/auth/Subject$SecureSet;->readObject(Ljava/io/ObjectInputStream;)V
 Ljavax/security/auth/Subject$SecureSet;->serialPersistentFields:[Ljava/io/ObjectStreamField;
 Ljavax/security/auth/Subject$SecureSet;->serialVersionUID:J
@@ -5980,9 +11012,6 @@
 Ljavax/security/auth/Subject;->readObject(Ljava/io/ObjectInputStream;)V
 Ljavax/security/auth/Subject;->serialVersionUID:J
 Ljavax/security/auth/Subject;->writeObject(Ljava/io/ObjectOutputStream;)V
-Ljavax/security/auth/callback/PasswordCallback;->serialVersionUID:J
-Ljavax/security/auth/callback/UnsupportedCallbackException;->serialVersionUID:J
-Ljavax/security/auth/login/LoginException;->serialVersionUID:J
 Ljavax/security/auth/x500/X500Principal;->readObject(Ljava/io/ObjectInputStream;)V
 Ljavax/security/auth/x500/X500Principal;->serialVersionUID:J
 Ljavax/security/auth/x500/X500Principal;->writeObject(Ljava/io/ObjectOutputStream;)V
@@ -6007,20 +11036,116 @@
 Llibcore/util/ZoneInfo;->readObject(Ljava/io/ObjectInputStream;)V
 Llibcore/util/ZoneInfo;->serialVersionUID:J
 Lorg/apache/http/conn/ConnectTimeoutException;->serialVersionUID:J
+Lorg/apache/http/conn/ssl/AbstractVerifier;->BAD_COUNTRY_2LDS:[Ljava/lang/String;
 Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>()V
 Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljavax/net/ssl/SSLSocketFactory;)V
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->createKeyManagers(Ljava/security/KeyStore;Ljava/lang/String;)[Ljavax/net/ssl/KeyManager;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->createTrustManagers(Ljava/security/KeyStore;)[Ljavax/net/ssl/TrustManager;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->hostnameVerifier:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->nameResolver:Lorg/apache/http/conn/scheme/HostNameResolver;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->socketfactory:Ljavax/net/ssl/SSLSocketFactory;
+Lorg/apache/http/conn/ssl/SSLSocketFactory;->sslcontext:Ljavax/net/ssl/SSLContext;
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->data:[Ljava/lang/String;
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->length:I
 Lorg/json/JSONArray;->values:Ljava/util/List;
+Lorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
 Lorg/json/JSONObject;->append(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
+Lorg/json/JSONObject;->checkName(Ljava/lang/String;)Ljava/lang/String;
 Lorg/json/JSONObject;->keySet()Ljava/util/Set;
+Lorg/json/JSONObject;->nameValuePairs:Ljava/util/LinkedHashMap;
+Lorg/json/JSONObject;->NEGATIVE_ZERO:Ljava/lang/Double;
 Lorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V
+Lorg/json/JSONStringer;-><init>(I)V
+Lorg/json/JSONStringer;->beforeKey()V
+Lorg/json/JSONStringer;->beforeValue()V
+Lorg/json/JSONStringer;->close(Lorg/json/JSONStringer$Scope;Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
+Lorg/json/JSONStringer;->indent:Ljava/lang/String;
+Lorg/json/JSONStringer;->newline()V
+Lorg/json/JSONStringer;->open(Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
+Lorg/json/JSONStringer;->out:Ljava/lang/StringBuilder;
+Lorg/json/JSONStringer;->peek()Lorg/json/JSONStringer$Scope;
+Lorg/json/JSONStringer;->replaceTop(Lorg/json/JSONStringer$Scope;)V
+Lorg/json/JSONStringer;->stack:Ljava/util/List;
+Lorg/json/JSONStringer;->string(Ljava/lang/String;)V
+Lorg/json/JSONTokener;->in:Ljava/lang/String;
+Lorg/json/JSONTokener;->nextCleanInternal()I
+Lorg/json/JSONTokener;->nextToInternal(Ljava/lang/String;)Ljava/lang/String;
+Lorg/json/JSONTokener;->pos:I
+Lorg/json/JSONTokener;->readArray()Lorg/json/JSONArray;
+Lorg/json/JSONTokener;->readEscapeCharacter()C
+Lorg/json/JSONTokener;->readLiteral()Ljava/lang/Object;
+Lorg/json/JSONTokener;->readObject()Lorg/json/JSONObject;
+Lorg/json/JSONTokener;->skipToEndOfLine()V
+Lorg/w3c/dom/ls/LSSerializerFilter;->getWhatToShow()I
+Lorg/w3c/dom/traversal/NodeFilter;->acceptNode(Lorg/w3c/dom/Node;)S
+Lorg/w3c/dom/traversal/NodeIterator;->detach()V
 Lorg/w3c/dom/traversal/NodeIterator;->nextNode()Lorg/w3c/dom/Node;
+Lorg/xml/sax/helpers/AttributesImpl;->badIndex(I)V
+Lorg/xml/sax/helpers/AttributesImpl;->data:[Ljava/lang/String;
+Lorg/xml/sax/helpers/AttributesImpl;->ensureCapacity(I)V
+Lorg/xml/sax/helpers/AttributesImpl;->length:I
+Lorg/xml/sax/helpers/LocatorImpl;->columnNumber:I
+Lorg/xml/sax/helpers/LocatorImpl;->lineNumber:I
+Lorg/xml/sax/helpers/LocatorImpl;->publicId:Ljava/lang/String;
+Lorg/xml/sax/helpers/LocatorImpl;->systemId:Ljava/lang/String;
+Lorg/xml/sax/helpers/NamespaceSupport;->contextPos:I
+Lorg/xml/sax/helpers/NamespaceSupport;->contexts:[Lorg/xml/sax/helpers/NamespaceSupport$Context;
+Lorg/xml/sax/helpers/NamespaceSupport;->currentContext:Lorg/xml/sax/helpers/NamespaceSupport$Context;
+Lorg/xml/sax/helpers/NamespaceSupport;->EMPTY_ENUMERATION:Ljava/util/Enumeration;
+Lorg/xml/sax/helpers/ParserAdapter;->attAdapter:Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;
+Lorg/xml/sax/helpers/ParserAdapter;->atts:Lorg/xml/sax/helpers/AttributesImpl;
+Lorg/xml/sax/helpers/ParserAdapter;->checkNotParsing(Ljava/lang/String;Ljava/lang/String;)V
+Lorg/xml/sax/helpers/ParserAdapter;->contentHandler:Lorg/xml/sax/ContentHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->dtdHandler:Lorg/xml/sax/DTDHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->entityResolver:Lorg/xml/sax/EntityResolver;
+Lorg/xml/sax/helpers/ParserAdapter;->errorHandler:Lorg/xml/sax/ErrorHandler;
+Lorg/xml/sax/helpers/ParserAdapter;->locator:Lorg/xml/sax/Locator;
+Lorg/xml/sax/helpers/ParserAdapter;->makeException(Ljava/lang/String;)Lorg/xml/sax/SAXParseException;
+Lorg/xml/sax/helpers/ParserAdapter;->nameParts:[Ljava/lang/String;
+Lorg/xml/sax/helpers/ParserAdapter;->namespaces:Z
+Lorg/xml/sax/helpers/ParserAdapter;->nsSupport:Lorg/xml/sax/helpers/NamespaceSupport;
+Lorg/xml/sax/helpers/ParserAdapter;->parser:Lorg/xml/sax/Parser;
+Lorg/xml/sax/helpers/ParserAdapter;->parsing:Z
+Lorg/xml/sax/helpers/ParserAdapter;->prefixes:Z
+Lorg/xml/sax/helpers/ParserAdapter;->processName(Ljava/lang/String;ZZ)[Ljava/lang/String;
+Lorg/xml/sax/helpers/ParserAdapter;->reportError(Ljava/lang/String;)V
+Lorg/xml/sax/helpers/ParserAdapter;->setup(Lorg/xml/sax/Parser;)V
+Lorg/xml/sax/helpers/ParserAdapter;->setupParser()V
+Lorg/xml/sax/helpers/XMLFilterImpl;->contentHandler:Lorg/xml/sax/ContentHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->dtdHandler:Lorg/xml/sax/DTDHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->entityResolver:Lorg/xml/sax/EntityResolver;
+Lorg/xml/sax/helpers/XMLFilterImpl;->errorHandler:Lorg/xml/sax/ErrorHandler;
+Lorg/xml/sax/helpers/XMLFilterImpl;->locator:Lorg/xml/sax/Locator;
+Lorg/xml/sax/helpers/XMLFilterImpl;->parent:Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/helpers/XMLFilterImpl;->setupParse()V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->documentHandler:Lorg/xml/sax/DocumentHandler;
+Lorg/xml/sax/helpers/XMLReaderAdapter;->qAtts:Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;
+Lorg/xml/sax/helpers/XMLReaderAdapter;->setup(Lorg/xml/sax/XMLReader;)V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->setupXMLReader()V
+Lorg/xml/sax/helpers/XMLReaderAdapter;->xmlReader:Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/helpers/XMLReaderFactory;->loadClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/xml/sax/XMLReader;
+Lorg/xml/sax/InputSource;->byteStream:Ljava/io/InputStream;
+Lorg/xml/sax/InputSource;->characterStream:Ljava/io/Reader;
+Lorg/xml/sax/InputSource;->encoding:Ljava/lang/String;
+Lorg/xml/sax/InputSource;->publicId:Ljava/lang/String;
+Lorg/xml/sax/InputSource;->systemId:Ljava/lang/String;
+Lorg/xml/sax/SAXException;->exception:Ljava/lang/Exception;
+Lorg/xml/sax/SAXParseException;->columnNumber:I
+Lorg/xml/sax/SAXParseException;->init(Ljava/lang/String;Ljava/lang/String;II)V
+Lorg/xml/sax/SAXParseException;->lineNumber:I
+Lorg/xml/sax/SAXParseException;->publicId:Ljava/lang/String;
+Lorg/xml/sax/SAXParseException;->systemId:Ljava/lang/String;
 Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe;
+Lsun/misc/Unsafe;->THE_ONE:Lsun/misc/Unsafe;
+Lsun/misc/URLClassPath$JarLoader;->getJarFile()Ljava/util/jar/JarFile;
+Lsun/misc/URLClassPath;->lmap:Ljava/util/HashMap;
+Lsun/misc/URLClassPath;->loaders:Ljava/util/ArrayList;
+Lsun/misc/URLClassPath;->urls:Ljava/util/Stack;
 Lsun/security/pkcs/ParsingException;->serialVersionUID:J
 Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;->serialVersionUID:J
 Lsun/security/util/ObjectIdentifier;->readObject(Ljava/io/ObjectInputStream;)V
 Lsun/security/util/ObjectIdentifier;->serialVersionUID:J
 Lsun/security/util/ObjectIdentifier;->writeObject(Ljava/io/ObjectOutputStream;)V
 Lsun/security/x509/AlgorithmId;->serialVersionUID:J
+Lsun/security/x509/AVA;->hasRFC2253Keyword()Z
 Lsun/util/locale/LocaleSyntaxException;->serialVersionUID:J
diff --git a/config/hiddenapi-vendor-list.txt b/config/hiddenapi-vendor-list.txt
index 649cb6d..781f6e6 100644
--- a/config/hiddenapi-vendor-list.txt
+++ b/config/hiddenapi-vendor-list.txt
@@ -47,8 +47,6 @@
 Landroid/app/TaskStackListener;->onTaskRemoved(I)V
 Landroid/app/TaskStackListener;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
 Landroid/app/TaskStackListener;->onTaskStackChanged()V
-Landroid/app/VrStateCallback;-><init>()V
-Landroid/app/VrStateCallback;->onPersistentVrStateChanged(Z)V
 Landroid/app/WallpaperColors;-><init>(Landroid/graphics/Color;Landroid/graphics/Color;Landroid/graphics/Color;I)V
 Landroid/bluetooth/BluetoothHeadset;->phoneStateChanged(IIILjava/lang/String;I)V
 Landroid/bluetooth/IBluetooth;->sendConnectionStateChange(Landroid/bluetooth/BluetoothDevice;III)V
@@ -71,7 +69,6 @@
 Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
 Landroid/content/ContentValues;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 Landroid/content/ContentValues;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
-Landroid/content/Context;->getOpPackageName()Ljava/lang/String;
 Landroid/content/Context;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
 Landroid/content/Context;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 Landroid/content/Context;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
@@ -152,7 +149,6 @@
 Landroid/net/INetd;->interfaceAddAddress(Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/net/INetworkPolicyManager;->getNetworkQuotaInfo(Landroid/net/NetworkState;)Landroid/net/NetworkQuotaInfo;
 Landroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
-Landroid/net/INetworkStatsService;->openSession()Landroid/net/INetworkStatsSession;
 Landroid/net/INetworkStatsSession;->getHistoryForNetwork(Landroid/net/NetworkTemplate;I)Landroid/net/NetworkStatsHistory;
 Landroid/net/INetworkStatsSession;->getHistoryForUid(Landroid/net/NetworkTemplate;IIII)Landroid/net/NetworkStatsHistory;
 Landroid/net/InterfaceConfiguration;-><init>()V
@@ -516,7 +512,6 @@
 Landroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer;
 Landroid/view/DisplayListCanvas;->drawRenderNode(Landroid/view/RenderNode;)V
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;-><init>()V
-Landroid/view/InputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
 Landroid/view/IWindowManager;->destroyInputConsumer(Ljava/lang/String;)Z
 Landroid/view/IWindowManager;->endProlongedAnimations()V
 Landroid/view/IWindowManager;->getStableInsets(ILandroid/graphics/Rect;)V
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index bae2a26..7c5afba 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -964,7 +964,8 @@
         }
 
         public void setHttpProxy(String host, String port, String exclList, Uri pacFileUrl) {
-            final ConnectivityManager cm = ConnectivityManager.from(getSystemContext());
+            final ConnectivityManager cm = ConnectivityManager.from(
+                getApplication() != null ? getApplication() : getSystemContext());
             final Network network = cm.getBoundNetworkForProcess();
             if (network != null) {
                 Proxy.setHttpProxySystemProperty(cm.getDefaultProxy());
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 64ddfbc..8baa6b8 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -1009,6 +1009,22 @@
     }
 
     @Override
+    public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions) {
+        warnIfCallingFromSystemProcess();
+        String resolvedType = intent.resolveTypeIfNeeded(getContentResolver());
+        try {
+            intent.prepareToLeaveProcess(this);
+            ActivityManager.getService().broadcastIntent(
+                    mMainThread.getApplicationThread(), intent, resolvedType, null,
+                    Activity.RESULT_OK, null, null, receiverPermissions, AppOpsManager.OP_NONE,
+                    null, false, false, user.getIdentifier());
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    @Override
     public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
         warnIfCallingFromSystemProcess();
         String resolvedType = intent.resolveTypeIfNeeded(getContentResolver());
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index b7d3f57..6e37525 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -189,7 +189,7 @@
      */
     public interface OnFinished {
         /**
-         * Called when a send operation as completed.
+         * Called when a send operation has completed.
          *
          * @param pendingIntent The PendingIntent this operation was sent through.
          * @param intent The original Intent that was sent.
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index d135758..fcf7dbfeaf 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -1950,6 +1950,33 @@
 
     /**
      * Broadcast the given intent to all interested BroadcastReceivers, allowing
+     * an array of required permissions to be enforced.  This call is asynchronous; it returns
+     * immediately, and you will continue executing while the receivers are run.  No results are
+     * propagated from receivers and receivers can not abort the broadcast. If you want to allow
+     * receivers to propagate results or abort the broadcast, you must send an ordered broadcast
+     * using {@link #sendOrderedBroadcast(Intent, String)}.
+     *
+     * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts.
+     *
+     * @param intent The Intent to broadcast; all receivers matching this
+     *               Intent will receive the broadcast.
+     * @param user The user to send the broadcast to.
+     * @param receiverPermissions Array of names of permissions that a receiver must hold
+     *                            in order to receive your broadcast.
+     *                            If null or empty, no permissions are required.
+     *
+     * @see android.content.BroadcastReceiver
+     * @see #registerReceiver
+     * @see #sendBroadcast(Intent)
+     * @see #sendOrderedBroadcast(Intent, String)
+     * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle)
+     * @hide
+     */
+    public abstract void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions);
+
+    /**
+     * Broadcast the given intent to all interested BroadcastReceivers, allowing
      * an optional required permission to be enforced.  This
      * call is asynchronous; it returns immediately, and you will continue
      * executing while the receivers are run.  No results are propagated from
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index 85acdc6..3a5fccb 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -449,6 +449,13 @@
     }
 
     /** @hide */
+    @Override
+    public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions) {
+        mBase.sendBroadcastAsUserMultiplePermissions(intent, user, receiverPermissions);
+    }
+
+    /** @hide */
     @SystemApi
     @Override
     public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
diff --git a/core/java/android/hardware/location/IFusedLocationHardware.aidl b/core/java/android/hardware/location/IFusedLocationHardware.aidl
deleted file mode 100644
index 2ea4d23..0000000
--- a/core/java/android/hardware/location/IFusedLocationHardware.aidl
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2013, 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/license/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 android.hardware.location;
-
-import android.hardware.location.IFusedLocationHardwareSink;
-import android.location.FusedBatchOptions;
-
-/**
- * Fused Location hardware interface.
- * This interface is the basic set of supported functionality by Fused Hardware
- * modules that offer Location batching capabilities.
- *
- * @hide
- */
-interface IFusedLocationHardware {
-    /**
-     * Registers a sink with the Location Hardware object.
-     *
-     * @param eventSink     The sink to register.
-     */
-    void registerSink(in IFusedLocationHardwareSink eventSink) = 0;
-
-    /**
-     * Unregisters a sink with the Location Hardware object.
-     *
-     * @param eventSink     The sink to unregister.
-     */
-    void unregisterSink(in IFusedLocationHardwareSink eventSink) = 1;
-
-    /**
-     * Provides access to the batch size available in Hardware.
-     *
-     * @return The batch size the hardware supports.
-     */
-    int getSupportedBatchSize() = 2;
-
-    /**
-     * Requests the Hardware to start batching locations.
-     *
-     * @param id            An Id associated with the request.
-     * @param batchOptions  The options required for batching.
-     *
-     * @throws RuntimeException if the request Id exists.
-     */
-    void startBatching(in int id, in FusedBatchOptions batchOptions) = 3;
-
-    /**
-     * Requests the Hardware to stop batching for the given Id.
-     *
-     * @param id    The request that needs to be stopped.
-     * @throws RuntimeException if the request Id is unknown.
-     */
-    void stopBatching(in int id) = 4;
-
-    /**
-     * Updates a batching operation in progress.
-     *
-     * @param id                The Id of the operation to update.
-     * @param batchOptions     The options to apply to the given operation.
-     *
-     * @throws RuntimeException if the Id of the request is unknown.
-     */
-    void updateBatchingOptions(in int id, in FusedBatchOptions batchOptions) = 5;
-
-    /**
-     * Requests the most recent locations available in Hardware.
-     * This operation does not dequeue the locations, so still other batching
-     * events will continue working.
-     *
-     * @param batchSizeRequested    The number of locations requested.
-     */
-    void requestBatchOfLocations(in int batchSizeRequested) = 6;
-
-    /**
-     * Flags if the Hardware supports injection of diagnostic data.
-     *
-     * @return True if data injection is supported, false otherwise.
-     */
-    boolean supportsDiagnosticDataInjection() = 7;
-
-    /**
-     * Injects diagnostic data into the Hardware subsystem.
-     *
-     * @param data  The data to inject.
-     * @throws RuntimeException if injection is not supported.
-     */
-    void injectDiagnosticData(in String data) = 8;
-
-    /**
-     * Flags if the Hardware supports injection of device context information.
-     *
-     * @return True if device context injection is supported, false otherwise.
-     */
-    boolean supportsDeviceContextInjection() = 9;
-
-    /**
-     * Injects device context information into the Hardware subsystem.
-     *
-     * @param deviceEnabledContext  The context to inject.
-     * @throws RuntimeException if injection is not supported.
-     */
-    void injectDeviceContext(in int deviceEnabledContext) = 10;
-
-    /**
-     * Requests all batched locations currently available in Hardware
-     * and clears the buffer.  Any subsequent calls will not return any
-     * of the locations returned in this call.
-     */
-    void flushBatchedLocations() = 11;
-
-    /**
-     * Returns the version of this FLP HAL implementation.
-     */
-    int getVersion() = 12;
-}
diff --git a/core/java/android/hardware/location/IFusedLocationHardwareSink.aidl b/core/java/android/hardware/location/IFusedLocationHardwareSink.aidl
deleted file mode 100644
index a7dd035..0000000
--- a/core/java/android/hardware/location/IFusedLocationHardwareSink.aidl
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2013, 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/license/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 android.hardware.location;
-
-import android.location.Location;
-
-/**
- * Fused Location hardware event sink interface.
- * This interface defines the set of events that the FusedLocationHardware provides.
- *
- * @hide
- */
-oneway interface IFusedLocationHardwareSink {
-    /**
-     * Event generated when a batch of location information is available.
-     *
-     * @param locations     The batch of location information available.
-     */
-    void onLocationAvailable(in Location[] locations) = 0;
-
-    /**
-     * Event generated from FLP HAL to provide diagnostic data to the platform.
-     *
-     * @param data      The diagnostic data provided by FLP HAL.
-     */
-    void onDiagnosticDataAvailable(in String data) = 1;
-
-    /**
-     * Event generated from FLP HAL to provide a mask of supported
-     * capabilities.  Should be called immediatly after init.
-     */
-    void onCapabilities(int capabilities) = 2;
-
-    /**
-     * Event generated from FLP HAL when the status of location batching
-     * changes (location is successful/unsuccessful).
-     */
-    void onStatusChanged(int status) = 3;
-}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 40f47b0..4ccfea2 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -238,6 +238,14 @@
     public static final String EXTRA_CAPTIVE_PORTAL_URL = "android.net.extra.CAPTIVE_PORTAL_URL";
 
     /**
+     * Key for passing a {@link android.net.captiveportal.CaptivePortalProbeSpec} to the captive
+     * portal login activity.
+     * {@hide}
+     */
+    public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC =
+            "android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
+
+    /**
      * Key for passing a user agent string to the captive portal login activity.
      * {@hide}
      */
diff --git a/core/java/android/net/Network.java b/core/java/android/net/Network.java
index f14847f..8f95607 100644
--- a/core/java/android/net/Network.java
+++ b/core/java/android/net/Network.java
@@ -79,6 +79,21 @@
     private static final long httpKeepAliveDurationMs =
             Long.parseLong(System.getProperty("http.keepAliveDuration", "300000"));  // 5 minutes.
 
+    // A boolean to control how getAllByName()/getByName() behaves in the face
+    // of Private DNS.
+    //
+    // When true, these calls will request that DNS resolution bypass any
+    // Private DNS that might otherwise apply. Use of this feature is restricted
+    // and permission checks are made by netd (attempts to bypass Private DNS
+    // without appropriate permission are silently turned into vanilla DNS
+    // requests). This only affects DNS queries made using this network object.
+    //
+    // It it not parceled to receivers because (a) it can be set or cleared at
+    // anytime and (b) receivers should be explicit about attempts to bypass
+    // Private DNS so that the intent of the code is easily determined and
+    // code search audits are possible.
+    private boolean mPrivateDnsBypass = false;
+
     /**
      * @hide
      */
@@ -102,7 +117,7 @@
      * @throws UnknownHostException if the address lookup fails.
      */
     public InetAddress[] getAllByName(String host) throws UnknownHostException {
-        return InetAddress.getAllByNameOnNet(host, netId);
+        return InetAddress.getAllByNameOnNet(host, getNetIdForResolv());
     }
 
     /**
@@ -116,7 +131,32 @@
      *             if the address lookup fails.
      */
     public InetAddress getByName(String host) throws UnknownHostException {
-        return InetAddress.getByNameOnNet(host, netId);
+        return InetAddress.getByNameOnNet(host, getNetIdForResolv());
+    }
+
+    /**
+     * Specify whether or not Private DNS should be bypassed when attempting
+     * to use {@link getAllByName()}/{@link getByName()} methods on the given
+     * instance for hostname resolution.
+     *
+     * @hide
+     */
+    public void setPrivateDnsBypass(boolean bypass) {
+        mPrivateDnsBypass = bypass;
+    }
+
+    /**
+     * Returns a netid marked with the Private DNS bypass flag.
+     *
+     * This flag must be kept in sync with the NETID_USE_LOCAL_NAMESERVERS flag
+     * in system/netd/include/NetdClient.h.
+     *
+     * @hide
+     */
+    public int getNetIdForResolv() {
+        return mPrivateDnsBypass
+                ? (int) (0x80000000L | (long) netId)  // Non-portable DNS resolution flag.
+                : netId;
     }
 
     /**
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index 19f0c90..83553df 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -17,6 +17,8 @@
 package android.net;
 
 import android.annotation.IntDef;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.ConnectivityManager.NetworkCallback;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -60,15 +62,7 @@
 
     public NetworkCapabilities(NetworkCapabilities nc) {
         if (nc != null) {
-            mNetworkCapabilities = nc.mNetworkCapabilities;
-            mTransportTypes = nc.mTransportTypes;
-            mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps;
-            mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps;
-            mNetworkSpecifier = nc.mNetworkSpecifier;
-            mSignalStrength = nc.mSignalStrength;
-            mUids = nc.mUids;
-            mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid;
-            mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities;
+            set(nc);
         }
     }
 
@@ -84,6 +78,24 @@
         mSignalStrength = SIGNAL_STRENGTH_UNSPECIFIED;
         mUids = null;
         mEstablishingVpnAppUid = INVALID_UID;
+        mSSID = null;
+    }
+
+    /**
+     * Set all contents of this object to the contents of a NetworkCapabilities.
+     * @hide
+     */
+    public void set(NetworkCapabilities nc) {
+        mNetworkCapabilities = nc.mNetworkCapabilities;
+        mTransportTypes = nc.mTransportTypes;
+        mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps;
+        mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps;
+        mNetworkSpecifier = nc.mNetworkSpecifier;
+        mSignalStrength = nc.mSignalStrength;
+        setUids(nc.mUids); // Will make the defensive copy
+        mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid;
+        mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities;
+        mSSID = nc.mSSID;
     }
 
     /**
@@ -275,6 +287,7 @@
      * this network can be used by system apps to upload telemetry data.
      * @hide
      */
+    @SystemApi
     public static final int NET_CAPABILITY_OEM_PAID = 22;
 
     private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS;
@@ -423,6 +436,7 @@
      * @return an array of capability values for this instance.
      * @hide
      */
+    @TestApi
     public @NetCapability int[] getCapabilities() {
         return BitUtils.unpackBits(mNetworkCapabilities);
     }
@@ -687,6 +701,7 @@
      * @return an array of transport type values for this instance.
      * @hide
      */
+    @TestApi
     public @Transport int[] getTransportTypes() {
         return BitUtils.unpackBits(mTransportTypes);
     }
@@ -920,7 +935,7 @@
     /**
      * Sets the signal strength. This is a signed integer, with higher values indicating a stronger
      * signal. The exact units are bearer-dependent. For example, Wi-Fi uses the same RSSI units
-     * reported by WifiManager.
+     * reported by wifi code.
      * <p>
      * Note that when used to register a network callback, this specifies the minimum acceptable
      * signal strength. When received as the state of an existing network it specifies the current
@@ -1052,7 +1067,7 @@
     }
 
     /**
-     * Tests if the set of UIDs that this network applies to is the same of the passed set of UIDs.
+     * Tests if the set of UIDs that this network applies to is the same as the passed network.
      * <p>
      * This test only checks whether equal range objects are in both sets. It will
      * return false if the ranges are not exactly the same, even if the covered UIDs
@@ -1142,6 +1157,62 @@
         mUids.addAll(nc.mUids);
     }
 
+
+    /**
+     * The SSID of the network, or null if not applicable or unknown.
+     * <p>
+     * This is filled in by wifi code.
+     * @hide
+     */
+    private String mSSID;
+
+    /**
+     * Sets the SSID of this network.
+     * @hide
+     */
+    public NetworkCapabilities setSSID(String ssid) {
+        mSSID = ssid;
+        return this;
+    }
+
+    /**
+     * Gets the SSID of this network, or null if none or unknown.
+     * @hide
+     */
+    public String getSSID() {
+        return mSSID;
+    }
+
+    /**
+     * Tests if the SSID of this network is the same as the SSID of the passed network.
+     * @hide
+     */
+    public boolean equalsSSID(NetworkCapabilities nc) {
+        return Objects.equals(mSSID, nc.mSSID);
+    }
+
+    /**
+     * Check if the SSID requirements of this object are matched by the passed object.
+     * @hide
+     */
+    public boolean satisfiedBySSID(NetworkCapabilities nc) {
+        return mSSID == null || mSSID.equals(nc.mSSID);
+    }
+
+    /**
+     * Combine SSIDs of the capabilities.
+     * <p>
+     * This is only legal if either the SSID of this object is null, or both SSIDs are
+     * equal.
+     * @hide
+     */
+    private void combineSSIDs(NetworkCapabilities nc) {
+        if (mSSID != null && !mSSID.equals(nc.mSSID)) {
+            throw new IllegalStateException("Can't combine two SSIDs");
+        }
+        setSSID(nc.mSSID);
+    }
+
     /**
      * Combine a set of Capabilities to this one.  Useful for coming up with the complete set.
      * <p>
@@ -1157,6 +1228,7 @@
         combineSpecifiers(nc);
         combineSignalStrength(nc);
         combineUids(nc);
+        combineSSIDs(nc);
     }
 
     /**
@@ -1175,7 +1247,8 @@
                 && (onlyImmutable || satisfiedByLinkBandwidths(nc))
                 && satisfiedBySpecifier(nc)
                 && (onlyImmutable || satisfiedBySignalStrength(nc))
-                && (onlyImmutable || satisfiedByUids(nc)));
+                && (onlyImmutable || satisfiedByUids(nc))
+                && (onlyImmutable || satisfiedBySSID(nc)));
     }
 
     /**
@@ -1264,7 +1337,8 @@
                 && equalsLinkBandwidths(that)
                 && equalsSignalStrength(that)
                 && equalsSpecifier(that)
-                && equalsUids(that));
+                && equalsUids(that)
+                && equalsSSID(that));
     }
 
     @Override
@@ -1279,7 +1353,8 @@
                 + (mLinkDownBandwidthKbps * 19)
                 + Objects.hashCode(mNetworkSpecifier) * 23
                 + (mSignalStrength * 29)
-                + Objects.hashCode(mUids) * 31;
+                + Objects.hashCode(mUids) * 31
+                + Objects.hashCode(mSSID) * 37;
     }
 
     @Override
@@ -1296,6 +1371,7 @@
         dest.writeParcelable((Parcelable) mNetworkSpecifier, flags);
         dest.writeInt(mSignalStrength);
         dest.writeArraySet(mUids);
+        dest.writeString(mSSID);
     }
 
     public static final Creator<NetworkCapabilities> CREATOR =
@@ -1313,6 +1389,7 @@
                 netCap.mSignalStrength = in.readInt();
                 netCap.mUids = (ArraySet<UidRange>) in.readArraySet(
                         null /* ClassLoader, null for default */);
+                netCap.mSSID = in.readString();
                 return netCap;
             }
             @Override
@@ -1363,6 +1440,10 @@
             sb.append(" EstablishingAppUid: ").append(mEstablishingVpnAppUid);
         }
 
+        if (null != mSSID) {
+            sb.append(" SSID: ").append(mSSID);
+        }
+
         sb.append("]");
         return sb.toString();
     }
diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java
index 1ee0ed7d..f3669fb3 100644
--- a/core/java/android/net/NetworkRequest.java
+++ b/core/java/android/net/NetworkRequest.java
@@ -17,6 +17,8 @@
 package android.net;
 
 import android.annotation.NonNull;
+import android.net.NetworkCapabilities.NetCapability;
+import android.net.NetworkCapabilities.Transport;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.Process;
@@ -165,9 +167,6 @@
          * the requested network's required capabilities.  Note that when searching
          * for a network to satisfy a request, all capabilities requested must be
          * satisfied.
-         * <p>
-         * If the given capability was previously added to the list of unwanted capabilities
-         * then the capability will also be removed from the list of unwanted capabilities.
          *
          * @param capability The capability to add.
          * @return The builder to facilitate chaining
@@ -179,8 +178,7 @@
         }
 
         /**
-         * Removes (if found) the given capability from this builder instance from both required
-         * and unwanted capabilities lists.
+         * Removes (if found) the given capability from this builder instance.
          *
          * @param capability The capability to remove.
          * @return The builder to facilitate chaining.
@@ -199,8 +197,7 @@
          * @hide
          */
         public Builder setCapabilities(NetworkCapabilities nc) {
-            mNetworkCapabilities.clearAll();
-            mNetworkCapabilities.combineCapabilities(nc);
+            mNetworkCapabilities.set(nc);
             return this;
         }
 
@@ -228,6 +225,7 @@
          *
          * @param capability The capability to add to unwanted capability list.
          * @return The builder to facilitate chaining.
+         *
          * @hide
          */
         public Builder addUnwantedCapability(@NetworkCapabilities.NetCapability int capability) {
@@ -426,6 +424,29 @@
         return type == Type.BACKGROUND_REQUEST;
     }
 
+    /**
+     * @see Builder#addCapability(int)
+     */
+    public boolean hasCapability(@NetCapability int capability) {
+        return networkCapabilities.hasCapability(capability);
+    }
+
+    /**
+     * @see Builder#addUnwantedCapability(int)
+     *
+     * @hide
+     */
+    public boolean hasUnwantedCapability(@NetCapability int capability) {
+        return networkCapabilities.hasUnwantedCapability(capability);
+    }
+
+    /**
+     * @see Builder#addTransportType(int)
+     */
+    public boolean hasTransport(@Transport int transportType) {
+        return networkCapabilities.hasTransport(transportType);
+    }
+
     public String toString() {
         return "NetworkRequest [ " + type + " id=" + requestId +
                 (legacyType != ConnectivityManager.TYPE_NONE ? ", legacyType=" + legacyType : "") +
diff --git a/core/java/android/net/SntpClient.java b/core/java/android/net/SntpClient.java
index ffc735c..ddf63ca 100644
--- a/core/java/android/net/SntpClient.java
+++ b/core/java/android/net/SntpClient.java
@@ -80,25 +80,31 @@
      *
      * @param host host name of the server.
      * @param timeout network timeout in milliseconds.
+     * @param network network over which to send the request.
      * @return true if the transaction was successful.
      */
-    public boolean requestTime(String host, int timeout) {
+    public boolean requestTime(String host, int timeout, Network network) {
+        // This flag only affects DNS resolution and not other socket semantics,
+        // therefore it's safe to set unilaterally rather than take more
+        // defensive measures like making a copy.
+        network.setPrivateDnsBypass(true);
         InetAddress address = null;
         try {
-            address = InetAddress.getByName(host);
+            address = network.getByName(host);
         } catch (Exception e) {
             EventLogTags.writeNtpFailure(host, e.toString());
             if (DBG) Log.d(TAG, "request time failed: " + e);
             return false;
         }
-        return requestTime(address, NTP_PORT, timeout);
+        return requestTime(address, NTP_PORT, timeout, network);
     }
 
-    public boolean requestTime(InetAddress address, int port, int timeout) {
+    public boolean requestTime(InetAddress address, int port, int timeout, Network network) {
         DatagramSocket socket = null;
         final int oldTag = TrafficStats.getAndSetThreadStatsTag(TrafficStats.TAG_SYSTEM_NTP);
         try {
             socket = new DatagramSocket();
+            network.bindSocket(socket);
             socket.setSoTimeout(timeout);
             byte[] buffer = new byte[NTP_PACKET_SIZE];
             DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, port);
@@ -168,6 +174,12 @@
         return true;
     }
 
+    @Deprecated
+    public boolean requestTime(String host, int timeout) {
+        Log.w(TAG, "Shame on you for calling the hidden API requestTime()!");
+        return false;
+    }
+
     /**
      * Returns the time computed from the NTP transaction.
      *
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java
index 1bb4adc..e1556b4 100644
--- a/core/java/android/net/Uri.java
+++ b/core/java/android/net/Uri.java
@@ -384,7 +384,7 @@
         if (scheme != null) {
             if (scheme.equalsIgnoreCase("tel") || scheme.equalsIgnoreCase("sip")
                     || scheme.equalsIgnoreCase("sms") || scheme.equalsIgnoreCase("smsto")
-                    || scheme.equalsIgnoreCase("mailto")) {
+                    || scheme.equalsIgnoreCase("mailto") || scheme.equalsIgnoreCase("nfc")) {
                 StringBuilder builder = new StringBuilder(64);
                 builder.append(scheme);
                 builder.append(':');
diff --git a/core/java/android/net/captiveportal/CaptivePortalProbeResult.java b/core/java/android/net/captiveportal/CaptivePortalProbeResult.java
new file mode 100644
index 0000000..1634694
--- /dev/null
+++ b/core/java/android/net/captiveportal/CaptivePortalProbeResult.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2018 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 android.net.captiveportal;
+
+import android.annotation.Nullable;
+
+/**
+ * Result of calling isCaptivePortal().
+ * @hide
+ */
+public final class CaptivePortalProbeResult {
+    public static final int SUCCESS_CODE = 204;
+    public static final int FAILED_CODE = 599;
+    public static final int PORTAL_CODE = 302;
+
+    public static final CaptivePortalProbeResult FAILED = new CaptivePortalProbeResult(FAILED_CODE);
+    public static final CaptivePortalProbeResult SUCCESS =
+            new CaptivePortalProbeResult(SUCCESS_CODE);
+
+    private final int mHttpResponseCode;  // HTTP response code returned from Internet probe.
+    public final String redirectUrl;      // Redirect destination returned from Internet probe.
+    public final String detectUrl;        // URL where a 204 response code indicates
+                                          // captive portal has been appeased.
+    @Nullable
+    public final CaptivePortalProbeSpec probeSpec;
+
+    public CaptivePortalProbeResult(int httpResponseCode) {
+        this(httpResponseCode, null, null);
+    }
+
+    public CaptivePortalProbeResult(int httpResponseCode, String redirectUrl, String detectUrl) {
+        this(httpResponseCode, redirectUrl, detectUrl, null);
+    }
+
+    public CaptivePortalProbeResult(int httpResponseCode, String redirectUrl, String detectUrl,
+            CaptivePortalProbeSpec probeSpec) {
+        mHttpResponseCode = httpResponseCode;
+        this.redirectUrl = redirectUrl;
+        this.detectUrl = detectUrl;
+        this.probeSpec = probeSpec;
+    }
+
+    public boolean isSuccessful() {
+        return mHttpResponseCode == SUCCESS_CODE;
+    }
+
+    public boolean isPortal() {
+        return !isSuccessful() && (mHttpResponseCode >= 200) && (mHttpResponseCode <= 399);
+    }
+
+    public boolean isFailed() {
+        return !isSuccessful() && !isPortal();
+    }
+}
diff --git a/core/java/android/net/captiveportal/CaptivePortalProbeSpec.java b/core/java/android/net/captiveportal/CaptivePortalProbeSpec.java
new file mode 100644
index 0000000..57a926a
--- /dev/null
+++ b/core/java/android/net/captiveportal/CaptivePortalProbeSpec.java
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2018 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 android.net.captiveportal;
+
+import static android.net.captiveportal.CaptivePortalProbeResult.PORTAL_CODE;
+import static android.net.captiveportal.CaptivePortalProbeResult.SUCCESS_CODE;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.text.TextUtils;
+import android.util.Log;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+/** @hide */
+public abstract class CaptivePortalProbeSpec {
+    public static final String HTTP_LOCATION_HEADER_NAME = "Location";
+
+    private static final String TAG = CaptivePortalProbeSpec.class.getSimpleName();
+    private static final String REGEX_SEPARATOR = "@@/@@";
+    private static final String SPEC_SEPARATOR = "@@,@@";
+
+    private final String mEncodedSpec;
+    private final URL mUrl;
+
+    CaptivePortalProbeSpec(String encodedSpec, URL url) {
+        mEncodedSpec = encodedSpec;
+        mUrl = url;
+    }
+
+    /**
+     * Parse a {@link CaptivePortalProbeSpec} from a {@link String}.
+     *
+     * <p>The valid format is a URL followed by two regular expressions, each separated by "@@/@@".
+     * @throws MalformedURLException The URL has invalid format for {@link URL#URL(String)}.
+     * @throws ParseException The string is empty, does not match the above format, or a regular
+     * expression is invalid for {@link Pattern#compile(String)}.
+     */
+    @NonNull
+    public static CaptivePortalProbeSpec parseSpec(String spec) throws ParseException,
+            MalformedURLException {
+        if (TextUtils.isEmpty(spec)) {
+            throw new ParseException("Empty probe spec", 0 /* errorOffset */);
+        }
+
+        String[] splits = TextUtils.split(spec, REGEX_SEPARATOR);
+        if (splits.length != 3) {
+            throw new ParseException("Probe spec does not have 3 parts", 0 /* errorOffset */);
+        }
+
+        final int statusRegexPos = splits[0].length() + REGEX_SEPARATOR.length();
+        final int locationRegexPos = statusRegexPos + splits[1].length() + REGEX_SEPARATOR.length();
+        final Pattern statusRegex = parsePatternIfNonEmpty(splits[1], statusRegexPos);
+        final Pattern locationRegex = parsePatternIfNonEmpty(splits[2], locationRegexPos);
+
+        return new RegexMatchProbeSpec(spec, new URL(splits[0]), statusRegex, locationRegex);
+    }
+
+    @Nullable
+    private static Pattern parsePatternIfNonEmpty(String pattern, int pos) throws ParseException {
+        if (TextUtils.isEmpty(pattern)) {
+            return null;
+        }
+        try {
+            return Pattern.compile(pattern);
+        } catch (PatternSyntaxException e) {
+            throw new ParseException(
+                    String.format("Invalid status pattern [%s]: %s", pattern, e),
+                    pos /* errorOffset */);
+        }
+    }
+
+    /**
+     * Parse a {@link CaptivePortalProbeSpec} from a {@link String}, or return a fallback spec
+     * based on the status code of the provided URL if the spec cannot be parsed.
+     */
+    @Nullable
+    public static CaptivePortalProbeSpec parseSpecOrNull(@Nullable String spec) {
+        if (spec != null) {
+            try {
+                return parseSpec(spec);
+            } catch (ParseException | MalformedURLException e) {
+                Log.e(TAG, "Invalid probe spec: " + spec, e);
+                // Fall through
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Parse a config String to build an array of {@link CaptivePortalProbeSpec}.
+     *
+     * <p>Each spec is separated by @@,@@ and follows the format for {@link #parseSpec(String)}.
+     * <p>This method does not throw but ignores any entry that could not be parsed.
+     */
+    public static CaptivePortalProbeSpec[] parseCaptivePortalProbeSpecs(String settingsVal) {
+        List<CaptivePortalProbeSpec> specs = new ArrayList<>();
+        if (settingsVal != null) {
+            for (String spec : TextUtils.split(settingsVal, SPEC_SEPARATOR)) {
+                try {
+                    specs.add(parseSpec(spec));
+                } catch (ParseException | MalformedURLException e) {
+                    Log.e(TAG, "Invalid probe spec: " + spec, e);
+                }
+            }
+        }
+
+        if (specs.isEmpty()) {
+            Log.e(TAG, String.format("could not create any validation spec from %s", settingsVal));
+        }
+        return specs.toArray(new CaptivePortalProbeSpec[specs.size()]);
+    }
+
+    /**
+     * Get the probe result from HTTP status and location header.
+     */
+    public abstract CaptivePortalProbeResult getResult(int status, @Nullable String locationHeader);
+
+    public String getEncodedSpec() {
+        return mEncodedSpec;
+    }
+
+    public URL getUrl() {
+        return mUrl;
+    }
+
+    /**
+     * Implementation of {@link CaptivePortalProbeSpec} that is based on configurable regular
+     * expressions for the HTTP status code and location header (if any). Matches indicate that
+     * the page is not a portal.
+     * This probe cannot fail: it always returns SUCCESS_CODE or PORTAL_CODE
+     */
+    private static class RegexMatchProbeSpec extends CaptivePortalProbeSpec {
+        @Nullable
+        final Pattern mStatusRegex;
+        @Nullable
+        final Pattern mLocationHeaderRegex;
+
+        RegexMatchProbeSpec(
+                String spec, URL url, Pattern statusRegex, Pattern locationHeaderRegex) {
+            super(spec, url);
+            mStatusRegex = statusRegex;
+            mLocationHeaderRegex = locationHeaderRegex;
+        }
+
+        @Override
+        public CaptivePortalProbeResult getResult(int status, String locationHeader) {
+            final boolean statusMatch = safeMatch(String.valueOf(status), mStatusRegex);
+            final boolean locationMatch = safeMatch(locationHeader, mLocationHeaderRegex);
+            final int returnCode = statusMatch && locationMatch ? SUCCESS_CODE : PORTAL_CODE;
+            return new CaptivePortalProbeResult(
+                    returnCode, locationHeader, getUrl().toString(), this);
+        }
+    }
+
+    private static boolean safeMatch(@Nullable String value, @Nullable Pattern pattern) {
+        // No value is a match ("no location header" passes the location rule for non-redirects)
+        return pattern == null || TextUtils.isEmpty(value) || pattern.matcher(value).matches();
+    }
+}
diff --git a/core/java/android/os/CommonClock.java b/core/java/android/os/CommonClock.java
deleted file mode 100644
index 2ecf317..0000000
--- a/core/java/android/os/CommonClock.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (C) 2012 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 android.os;
-
-import java.net.InetSocketAddress;
-import java.util.NoSuchElementException;
-import android.os.Binder;
-import android.os.CommonTimeUtils;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-
-/**
- * Used for accessing the android common time service's common clock and receiving notifications
- * about common time synchronization status changes.
- * @hide
- */
-public class CommonClock {
-    /**
-     * Sentinel value returned by {@link #getTime()} and {@link #getEstimatedError()} when the
-     * common time service is not able to determine the current common time due to a lack of
-     * synchronization.
-     */
-    public static final long TIME_NOT_SYNCED = -1;
-
-    /**
-     * Sentinel value returned by {@link #getTimelineId()} when the common time service is not
-     * currently synced to any timeline.
-     */
-    public static final long INVALID_TIMELINE_ID = 0;
-
-    /**
-     * Sentinel value returned by {@link #getEstimatedError()} when the common time service is not
-     * currently synced to any timeline.
-     */
-    public static final int ERROR_ESTIMATE_UNKNOWN = 0x7FFFFFFF;
-
-    /**
-     * Value used by {@link #getState()} to indicate that there was an internal error while
-     * attempting to determine the state of the common time service.
-     */
-    public static final int STATE_INVALID = -1;
-
-    /**
-     * Value used by {@link #getState()} to indicate that the common time service is in its initial
-     * state and attempting to find the current timeline master, if any.  The service will
-     * transition to either {@link #STATE_CLIENT} if it finds an active master, or to
-     * {@link #STATE_MASTER} if no active master is found and this client becomes the master of a
-     * new timeline.
-     */
-    public static final int STATE_INITIAL = 0;
-
-    /**
-     * Value used by {@link #getState()} to indicate that the common time service is in its client
-     * state and is synchronizing its time to a different timeline master on the network.
-     */
-    public static final int STATE_CLIENT = 1;
-
-    /**
-     * Value used by {@link #getState()} to indicate that the common time service is in its master
-     * state and is serving as the timeline master for other common time service clients on the
-     * network.
-     */
-    public static final int STATE_MASTER = 2;
-
-    /**
-     * Value used by {@link #getState()} to indicate that the common time service is in its Ronin
-     * state.  Common time service instances in the client state enter the Ronin state after their
-     * timeline master becomes unreachable on the network.  Common time services who enter the Ronin
-     * state will begin a new master election for the timeline they were recently clients of.  As
-     * clients detect they are not the winner and drop out of the election, they will transition to
-     * the {@link #STATE_WAIT_FOR_ELECTION} state.  When there is only one client remaining in the
-     * election, it will assume ownership of the timeline and transition to the
-     * {@link #STATE_MASTER} state.  During the election, all clients will allow their timeline to
-     * drift without applying correction.
-     */
-    public static final int STATE_RONIN = 3;
-
-    /**
-     * Value used by {@link #getState()} to indicate that the common time service is waiting for a
-     * master election to conclude and for the new master to announce itself before transitioning to
-     * the {@link #STATE_CLIENT} state.  If no new master announces itself within the timeout
-     * threshold, the time service will transition back to the {@link #STATE_RONIN} state in order
-     * to restart the election.
-     */
-    public static final int STATE_WAIT_FOR_ELECTION = 4;
-
-    /**
-     * Name of the underlying native binder service
-     */
-    public static final String SERVICE_NAME = "common_time.clock";
-
-    /**
-     * Class constructor.
-     * @throws android.os.RemoteException
-     */
-    public CommonClock()
-    throws RemoteException {
-        mRemote = ServiceManager.getService(SERVICE_NAME);
-        if (null == mRemote)
-            throw new RemoteException();
-
-        mInterfaceDesc = mRemote.getInterfaceDescriptor();
-        mUtils = new CommonTimeUtils(mRemote, mInterfaceDesc);
-        mRemote.linkToDeath(mDeathHandler, 0);
-        registerTimelineChangeListener();
-    }
-
-    /**
-     * Handy class factory method.
-     */
-    static public CommonClock create() {
-        CommonClock retVal;
-
-        try {
-            retVal = new CommonClock();
-        }
-        catch (RemoteException e) {
-            retVal = null;
-        }
-
-        return retVal;
-    }
-
-    /**
-     * Release all native resources held by this {@link android.os.CommonClock} instance.  Once
-     * resources have been released, the {@link android.os.CommonClock} instance is disconnected from
-     * the native service and will throw a {@link android.os.RemoteException} if any of its
-     * methods are called.  Clients should always call release on their client instances before
-     * releasing their last Java reference to the instance.  Failure to do this will cause
-     * non-deterministic native resource reclamation and may cause the common time service to remain
-     * active on the network for longer than it should.
-     */
-    public void release() {
-        unregisterTimelineChangeListener();
-        if (null != mRemote) {
-            try {
-                mRemote.unlinkToDeath(mDeathHandler, 0);
-            }
-            catch (NoSuchElementException e) { }
-            mRemote = null;
-        }
-        mUtils = null;
-    }
-
-    /**
-     * Gets the common clock's current time.
-     *
-     * @return a signed 64-bit value representing the current common time in microseconds, or the
-     * special value {@link #TIME_NOT_SYNCED} if the common time service is currently not
-     * synchronized.
-     * @throws android.os.RemoteException
-     */
-    public long getTime()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetLong(METHOD_GET_COMMON_TIME, TIME_NOT_SYNCED);
-    }
-
-    /**
-     * Gets the current estimation of common clock's synchronization accuracy from the common time
-     * service.
-     *
-     * @return a signed 32-bit value representing the common time service's estimation of
-     * synchronization accuracy in microseconds, or the special value
-     * {@link #ERROR_ESTIMATE_UNKNOWN} if the common time service is currently not synchronized.
-     * Negative values indicate that the local server estimates that the nominal common time is
-     * behind the local server's time (in other words, the local clock is running fast) Positive
-     * values indicate that the local server estimates that the nominal common time is ahead of the
-     * local server's time (in other words, the local clock is running slow)
-     * @throws android.os.RemoteException
-     */
-    public int getEstimatedError()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetInt(METHOD_GET_ESTIMATED_ERROR, ERROR_ESTIMATE_UNKNOWN);
-    }
-
-    /**
-     * Gets the ID of the timeline the common time service is currently synchronizing its clock to.
-     *
-     * @return a long representing the unique ID of the timeline the common time service is
-     * currently synchronizing with, or {@link #INVALID_TIMELINE_ID} if the common time service is
-     * currently not synchronized.
-     * @throws android.os.RemoteException
-     */
-    public long getTimelineId()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetLong(METHOD_GET_TIMELINE_ID, INVALID_TIMELINE_ID);
-    }
-
-    /**
-     * Gets the current state of this clock's common time service in the the master election
-     * algorithm.
-     *
-     * @return a integer indicating the current state of the this clock's common time service in the
-     * master election algorithm or {@link #STATE_INVALID} if there is an internal error.
-     * @throws android.os.RemoteException
-     */
-    public int getState()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetInt(METHOD_GET_STATE, STATE_INVALID);
-    }
-
-    /**
-     * Gets the IP address and UDP port of the current timeline master.
-     *
-     * @return an InetSocketAddress containing the IP address and UDP port of the current timeline
-     * master, or null if there is no current master.
-     * @throws android.os.RemoteException
-     */
-    public InetSocketAddress getMasterAddr()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetSockaddr(METHOD_GET_MASTER_ADDRESS);
-    }
-
-    /**
-     * The OnTimelineChangedListener interface defines a method called by the
-     * {@link android.os.CommonClock} instance to indicate that the time synchronization service has
-     * either synchronized with a new timeline, or is no longer a member of any timeline.  The
-     * client application can implement this interface and register the listener with the
-     * {@link #setTimelineChangedListener(OnTimelineChangedListener)} method.
-     */
-    public interface OnTimelineChangedListener  {
-        /**
-         * Method called when the time service's timeline has changed.
-         *
-         * @param newTimelineId a long which uniquely identifies the timeline the time
-         * synchronization service is now a member of, or {@link #INVALID_TIMELINE_ID} if the the
-         * service is not synchronized to any timeline.
-         */
-        void onTimelineChanged(long newTimelineId);
-    }
-
-    /**
-     * Registers an OnTimelineChangedListener interface.
-     * <p>Call this method with a null listener to stop receiving server death notifications.
-     */
-    public void setTimelineChangedListener(OnTimelineChangedListener listener) {
-        synchronized (mListenerLock) {
-            mTimelineChangedListener = listener;
-        }
-    }
-
-    /**
-     * The OnServerDiedListener interface defines a method called by the
-     * {@link android.os.CommonClock} instance to indicate that the connection to the native media
-     * server has been broken and that the {@link android.os.CommonClock} instance will need to be
-     * released and re-created.  The client application can implement this interface and register
-     * the listener with the {@link #setServerDiedListener(OnServerDiedListener)} method.
-     */
-    public interface OnServerDiedListener  {
-        /**
-         * Method called when the native media server has died.  <p>If the native common time
-         * service encounters a fatal error and needs to restart, the binder connection from the
-         * {@link android.os.CommonClock} instance to the common time service will be broken.  To
-         * restore functionality, clients should {@link #release()} their old visualizer and create
-         * a new instance.
-         */
-        void onServerDied();
-    }
-
-    /**
-     * Registers an OnServerDiedListener interface.
-     * <p>Call this method with a null listener to stop receiving server death notifications.
-     */
-    public void setServerDiedListener(OnServerDiedListener listener) {
-        synchronized (mListenerLock) {
-            mServerDiedListener = listener;
-        }
-    }
-
-    protected void finalize() throws Throwable { release(); }
-
-    private void throwOnDeadServer() throws RemoteException {
-        if ((null == mRemote) || (null == mUtils))
-            throw new RemoteException();
-    }
-
-    private final Object mListenerLock = new Object();
-    private OnTimelineChangedListener mTimelineChangedListener = null;
-    private OnServerDiedListener mServerDiedListener = null;
-
-    private IBinder mRemote = null;
-    private String mInterfaceDesc = "";
-    private CommonTimeUtils mUtils;
-
-    private IBinder.DeathRecipient mDeathHandler = new IBinder.DeathRecipient() {
-        public void binderDied() {
-            synchronized (mListenerLock) {
-                if (null != mServerDiedListener)
-                    mServerDiedListener.onServerDied();
-            }
-        }
-    };
-
-    private class TimelineChangedListener extends Binder {
-        @Override
-        protected boolean onTransact(int code, Parcel data, Parcel reply, int flags)
-        throws RemoteException {
-            switch (code) {
-                case METHOD_CBK_ON_TIMELINE_CHANGED:
-                    data.enforceInterface(DESCRIPTOR);
-                    long timelineId = data.readLong();
-                    synchronized (mListenerLock) {
-                        if (null != mTimelineChangedListener)
-                            mTimelineChangedListener.onTimelineChanged(timelineId);
-                    }
-                    return true;
-            }
-
-            return super.onTransact(code, data, reply, flags);
-        }
-
-        private static final String DESCRIPTOR = "android.os.ICommonClockListener";
-    };
-
-    private TimelineChangedListener mCallbackTgt = null;
-
-    private void registerTimelineChangeListener() throws RemoteException {
-        if (null != mCallbackTgt)
-            return;
-
-        boolean success = false;
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        mCallbackTgt = new TimelineChangedListener();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            data.writeStrongBinder(mCallbackTgt);
-            mRemote.transact(METHOD_REGISTER_LISTENER, data, reply, 0);
-            success = (0 == reply.readInt());
-        }
-        catch (RemoteException e) {
-            success = false;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        // Did we catch a remote exception or fail to register our callback target?  If so, our
-        // object must already be dead (or be as good as dead).  Clear out all of our state so that
-        // our other methods will properly indicate a dead object.
-        if (!success) {
-            mCallbackTgt = null;
-            mRemote = null;
-            mUtils = null;
-        }
-    }
-
-    private void unregisterTimelineChangeListener() {
-        if (null == mCallbackTgt)
-            return;
-
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            data.writeStrongBinder(mCallbackTgt);
-            mRemote.transact(METHOD_UNREGISTER_LISTENER, data, reply, 0);
-        }
-        catch (RemoteException e) { }
-        finally {
-            reply.recycle();
-            data.recycle();
-            mCallbackTgt = null;
-        }
-    }
-
-    private static final int METHOD_IS_COMMON_TIME_VALID = IBinder.FIRST_CALL_TRANSACTION;
-    private static final int METHOD_COMMON_TIME_TO_LOCAL_TIME = METHOD_IS_COMMON_TIME_VALID + 1;
-    private static final int METHOD_LOCAL_TIME_TO_COMMON_TIME = METHOD_COMMON_TIME_TO_LOCAL_TIME + 1;
-    private static final int METHOD_GET_COMMON_TIME = METHOD_LOCAL_TIME_TO_COMMON_TIME + 1;
-    private static final int METHOD_GET_COMMON_FREQ = METHOD_GET_COMMON_TIME + 1;
-    private static final int METHOD_GET_LOCAL_TIME = METHOD_GET_COMMON_FREQ + 1;
-    private static final int METHOD_GET_LOCAL_FREQ = METHOD_GET_LOCAL_TIME + 1;
-    private static final int METHOD_GET_ESTIMATED_ERROR = METHOD_GET_LOCAL_FREQ + 1;
-    private static final int METHOD_GET_TIMELINE_ID = METHOD_GET_ESTIMATED_ERROR + 1;
-    private static final int METHOD_GET_STATE = METHOD_GET_TIMELINE_ID + 1;
-    private static final int METHOD_GET_MASTER_ADDRESS = METHOD_GET_STATE + 1;
-    private static final int METHOD_REGISTER_LISTENER = METHOD_GET_MASTER_ADDRESS + 1;
-    private static final int METHOD_UNREGISTER_LISTENER = METHOD_REGISTER_LISTENER + 1;
-
-    private static final int METHOD_CBK_ON_TIMELINE_CHANGED = IBinder.FIRST_CALL_TRANSACTION;
-}
diff --git a/core/java/android/os/CommonTimeConfig.java b/core/java/android/os/CommonTimeConfig.java
deleted file mode 100644
index 1f9fab5..0000000
--- a/core/java/android/os/CommonTimeConfig.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * Copyright (C) 2012 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 android.os;
-
-import java.net.InetSocketAddress;
-import java.util.NoSuchElementException;
-
-import android.os.CommonTimeUtils;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-
-/**
- * Used for configuring and controlling the status of the android common time service.
- * @hide
- */
-public class CommonTimeConfig {
-    /**
-     * Successful operation.
-     */
-    public static final int SUCCESS = 0;
-    /**
-     * Unspecified error.
-     */
-    public static final int ERROR = -1;
-    /**
-     * Operation failed due to bad parameter value.
-     */
-    public static final int ERROR_BAD_VALUE = -4;
-    /**
-     * Operation failed due to dead remote object.
-     */
-    public static final int ERROR_DEAD_OBJECT = -7;
-
-    /**
-     * Sentinel value returned by {@link #getMasterElectionGroupId()} when an error occurs trying to
-     * fetch the master election group.
-     */
-    public static final long INVALID_GROUP_ID = -1;
-
-    /**
-     * Name of the underlying native binder service
-     */
-    public static final String SERVICE_NAME = "common_time.config";
-
-    /**
-     * Class constructor.
-     * @throws android.os.RemoteException
-     */
-    public CommonTimeConfig()
-    throws RemoteException {
-        mRemote = ServiceManager.getService(SERVICE_NAME);
-        if (null == mRemote)
-            throw new RemoteException();
-
-        mInterfaceDesc = mRemote.getInterfaceDescriptor();
-        mUtils = new CommonTimeUtils(mRemote, mInterfaceDesc);
-        mRemote.linkToDeath(mDeathHandler, 0);
-    }
-
-    /**
-     * Handy class factory method.
-     */
-    static public CommonTimeConfig create() {
-        CommonTimeConfig retVal;
-
-        try {
-            retVal = new CommonTimeConfig();
-        }
-        catch (RemoteException e) {
-            retVal = null;
-        }
-
-        return retVal;
-    }
-
-    /**
-     * Release all native resources held by this {@link android.os.CommonTimeConfig} instance.  Once
-     * resources have been released, the {@link android.os.CommonTimeConfig} instance is
-     * disconnected from the native service and will throw a {@link android.os.RemoteException} if
-     * any of its methods are called.  Clients should always call release on their client instances
-     * before releasing their last Java reference to the instance.  Failure to do this will cause
-     * non-deterministic native resource reclamation and may cause the common time service to remain
-     * active on the network for longer than it should.
-     */
-    public void release() {
-        if (null != mRemote) {
-            try {
-                mRemote.unlinkToDeath(mDeathHandler, 0);
-            }
-            catch (NoSuchElementException e) { }
-            mRemote = null;
-        }
-        mUtils = null;
-    }
-
-    /**
-     * Gets the current priority of the common time service used in the master election protocol.
-     *
-     * @return an 8 bit value indicating the priority of this common time service relative to other
-     * common time services operating in the same domain.
-     * @throws android.os.RemoteException
-     */
-    public byte getMasterElectionPriority()
-    throws RemoteException {
-        throwOnDeadServer();
-        return (byte)mUtils.transactGetInt(METHOD_GET_MASTER_ELECTION_PRIORITY, -1);
-    }
-
-    /**
-     * Sets the current priority of the common time service used in the master election protocol.
-     *
-     * @param priority priority of the common time service used in the master election protocol.
-     * Lower numbers are lower priority.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setMasterElectionPriority(byte priority) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetInt(METHOD_SET_MASTER_ELECTION_PRIORITY, priority);
-    }
-
-    /**
-     * Gets the IP endpoint used by the time service to participate in the master election protocol.
-     *
-     * @return an InetSocketAddress containing the IP address and UDP port being used by the
-     * system's common time service to participate in the master election protocol.
-     * @throws android.os.RemoteException
-     */
-    public InetSocketAddress getMasterElectionEndpoint()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetSockaddr(METHOD_GET_MASTER_ELECTION_ENDPOINT);
-    }
-
-    /**
-     * Sets the IP endpoint used by the common time service to participate in the master election
-     * protocol.
-     *
-     * @param ep The IP address and UDP port to be used by the common time service to participate in
-     * the master election protocol.  The supplied IP address must be either the broadcast or
-     * multicast address, unicast addresses are considered to be illegal values.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setMasterElectionEndpoint(InetSocketAddress ep) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetSockaddr(METHOD_SET_MASTER_ELECTION_ENDPOINT, ep);
-    }
-
-    /**
-     * Gets the current group ID used by the common time service in the master election protocol.
-     *
-     * @return The 64-bit group ID of the common time service.
-     * @throws android.os.RemoteException
-     */
-    public long getMasterElectionGroupId()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetLong(METHOD_GET_MASTER_ELECTION_GROUP_ID, INVALID_GROUP_ID);
-    }
-
-    /**
-     * Sets the current group ID used by the common time service in the master election protocol.
-     *
-     * @param id The 64-bit group ID of the common time service.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setMasterElectionGroupId(long id) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetLong(METHOD_SET_MASTER_ELECTION_GROUP_ID, id);
-    }
-
-    /**
-     * Gets the name of the network interface which the common time service attempts to bind to.
-     *
-     * @return a string with the network interface name which the common time service is bound to,
-     * or null if the service is currently unbound.  Examples of interface names are things like
-     * "eth0", or "wlan0".
-     * @throws android.os.RemoteException
-     */
-    public String getInterfaceBinding()
-    throws RemoteException {
-        throwOnDeadServer();
-
-        String ifaceName = mUtils.transactGetString(METHOD_GET_INTERFACE_BINDING, null);
-
-        if ((null != ifaceName) && (0 == ifaceName.length()))
-                return null;
-
-        return ifaceName;
-    }
-
-    /**
-     * Sets the name of the network interface which the common time service should attempt to bind
-     * to.
-     *
-     * @param ifaceName The name of the network interface ("eth0", "wlan0", etc...) wich the common
-     * time service should attempt to bind to, or null to force the common time service to unbind
-     * from the network and run in networkless mode.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setNetworkBinding(String ifaceName) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-
-        return mUtils.transactSetString(METHOD_SET_INTERFACE_BINDING,
-                                       (null == ifaceName) ? "" : ifaceName);
-    }
-
-    /**
-     * Gets the amount of time the common time service will wait between master announcements when
-     * it is the timeline master.
-     *
-     * @return The time (in milliseconds) between master announcements.
-     * @throws android.os.RemoteException
-     */
-    public int getMasterAnnounceInterval()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetInt(METHOD_GET_MASTER_ANNOUNCE_INTERVAL, -1);
-    }
-
-    /**
-     * Sets the amount of time the common time service will wait between master announcements when
-     * it is the timeline master.
-     *
-     * @param interval The time (in milliseconds) between master announcements.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setMasterAnnounceInterval(int interval) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetInt(METHOD_SET_MASTER_ANNOUNCE_INTERVAL, interval);
-    }
-
-    /**
-     * Gets the amount of time the common time service will wait between time synchronization
-     * requests when it is the client of another common time service on the network.
-     *
-     * @return The time (in milliseconds) between time sync requests.
-     * @throws android.os.RemoteException
-     */
-    public int getClientSyncInterval()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetInt(METHOD_GET_CLIENT_SYNC_INTERVAL, -1);
-    }
-
-    /**
-     * Sets the amount of time the common time service will wait between time synchronization
-     * requests when it is the client of another common time service on the network.
-     *
-     * @param interval The time (in milliseconds) between time sync requests.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setClientSyncInterval(int interval) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetInt(METHOD_SET_CLIENT_SYNC_INTERVAL, interval);
-    }
-
-    /**
-     * Gets the panic threshold for the estimated error level of the common time service.  When the
-     * common time service's estimated error rises above this level, the service will panic and
-     * reset, causing a discontinuity in the currently synchronized timeline.
-     *
-     * @return The threshold (in microseconds) past which the common time service will panic.
-     * @throws android.os.RemoteException
-     */
-    public int getPanicThreshold()
-    throws RemoteException {
-        throwOnDeadServer();
-        return mUtils.transactGetInt(METHOD_GET_PANIC_THRESHOLD, -1);
-    }
-
-    /**
-     * Sets the panic threshold for the estimated error level of the common time service.  When the
-     * common time service's estimated error rises above this level, the service will panic and
-     * reset, causing a discontinuity in the currently synchronized timeline.
-     *
-     * @param threshold The threshold (in microseconds) past which the common time service will
-     * panic.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR}, {@link #ERROR_BAD_VALUE} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setPanicThreshold(int threshold) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-        return mUtils.transactSetInt(METHOD_SET_PANIC_THRESHOLD, threshold);
-    }
-
-    /**
-     * Gets the current state of the common time service's auto disable flag.
-     *
-     * @return The current state of the common time service's auto disable flag.
-     * @throws android.os.RemoteException
-     */
-    public boolean getAutoDisable()
-    throws RemoteException {
-        throwOnDeadServer();
-        return (1 == mUtils.transactGetInt(METHOD_GET_AUTO_DISABLE, 1));
-    }
-
-    /**
-     * Sets the current state of the common time service's auto disable flag.  When the time
-     * service's auto disable flag is set, it will automatically cease all network activity when
-     * it has no active local clients, resuming activity the next time the service has interested
-     * local clients.  When the auto disabled flag is cleared, the common time service will continue
-     * to participate the time synchronization group even when it has no active local clients.
-     *
-     * @param autoDisable The desired state of the common time service's auto disable flag.
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int setAutoDisable(boolean autoDisable) {
-        if (checkDeadServer())
-            return ERROR_DEAD_OBJECT;
-
-        return mUtils.transactSetInt(METHOD_SET_AUTO_DISABLE, autoDisable ? 1 : 0);
-    }
-
-    /**
-     * At startup, the time service enters the initial state and remains there until it is given a
-     * network interface to bind to.  Common time will be unavailable to clients of the common time
-     * service until the service joins a network (even an empty network).  Devices may use the
-     * {@link #forceNetworklessMasterMode()} method to force a time service in the INITIAL state
-     * with no network configuration to assume MASTER status for a brand new timeline in order to
-     * allow clients of the common time service to operate, even though the device is isolated and
-     * not on any network.  When a networkless master does join a network, it will defer to any
-     * masters already on the network, or continue to maintain the timeline it made up during its
-     * networkless state if no other masters are detected.  Attempting to force a client into master
-     * mode while it is actively bound to a network will fail with the status code {@link #ERROR}
-     *
-     * @return {@link #SUCCESS} in case of success,
-     * {@link #ERROR} or {@link #ERROR_DEAD_OBJECT} in case of failure.
-     */
-    public int forceNetworklessMasterMode() {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            mRemote.transact(METHOD_FORCE_NETWORKLESS_MASTER_MODE, data, reply, 0);
-
-            return reply.readInt();
-        }
-        catch (RemoteException e) {
-            return ERROR_DEAD_OBJECT;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-    }
-
-    /**
-     * The OnServerDiedListener interface defines a method called by the
-     * {@link android.os.CommonTimeConfig} instance to indicate that the connection to the native
-     * media server has been broken and that the {@link android.os.CommonTimeConfig} instance will
-     * need to be released and re-created.  The client application can implement this interface and
-     * register the listener with the {@link #setServerDiedListener(OnServerDiedListener)} method.
-     */
-    public interface OnServerDiedListener  {
-        /**
-         * Method called when the native common time service has died.  <p>If the native common time
-         * service encounters a fatal error and needs to restart, the binder connection from the
-         * {@link android.os.CommonTimeConfig} instance to the common time service will be broken.
-         */
-        void onServerDied();
-    }
-
-    /**
-     * Registers an OnServerDiedListener interface.
-     * <p>Call this method with a null listener to stop receiving server death notifications.
-     */
-    public void setServerDiedListener(OnServerDiedListener listener) {
-        synchronized (mListenerLock) {
-            mServerDiedListener = listener;
-        }
-    }
-
-    protected void finalize() throws Throwable { release(); }
-
-    private boolean checkDeadServer() {
-        return ((null == mRemote) || (null == mUtils));
-    }
-
-    private void throwOnDeadServer() throws RemoteException {
-        if (checkDeadServer())
-            throw new RemoteException();
-    }
-
-    private final Object mListenerLock = new Object();
-    private OnServerDiedListener mServerDiedListener = null;
-
-    private IBinder mRemote = null;
-    private String mInterfaceDesc = "";
-    private CommonTimeUtils mUtils;
-
-    private IBinder.DeathRecipient mDeathHandler = new IBinder.DeathRecipient() {
-        public void binderDied() {
-            synchronized (mListenerLock) {
-                if (null != mServerDiedListener)
-                    mServerDiedListener.onServerDied();
-            }
-        }
-    };
-
-    private static final int METHOD_GET_MASTER_ELECTION_PRIORITY = IBinder.FIRST_CALL_TRANSACTION;
-    private static final int METHOD_SET_MASTER_ELECTION_PRIORITY = METHOD_GET_MASTER_ELECTION_PRIORITY + 1;
-    private static final int METHOD_GET_MASTER_ELECTION_ENDPOINT = METHOD_SET_MASTER_ELECTION_PRIORITY + 1;
-    private static final int METHOD_SET_MASTER_ELECTION_ENDPOINT = METHOD_GET_MASTER_ELECTION_ENDPOINT + 1;
-    private static final int METHOD_GET_MASTER_ELECTION_GROUP_ID = METHOD_SET_MASTER_ELECTION_ENDPOINT + 1;
-    private static final int METHOD_SET_MASTER_ELECTION_GROUP_ID = METHOD_GET_MASTER_ELECTION_GROUP_ID + 1;
-    private static final int METHOD_GET_INTERFACE_BINDING = METHOD_SET_MASTER_ELECTION_GROUP_ID + 1;
-    private static final int METHOD_SET_INTERFACE_BINDING = METHOD_GET_INTERFACE_BINDING + 1;
-    private static final int METHOD_GET_MASTER_ANNOUNCE_INTERVAL = METHOD_SET_INTERFACE_BINDING + 1;
-    private static final int METHOD_SET_MASTER_ANNOUNCE_INTERVAL = METHOD_GET_MASTER_ANNOUNCE_INTERVAL + 1;
-    private static final int METHOD_GET_CLIENT_SYNC_INTERVAL = METHOD_SET_MASTER_ANNOUNCE_INTERVAL + 1;
-    private static final int METHOD_SET_CLIENT_SYNC_INTERVAL = METHOD_GET_CLIENT_SYNC_INTERVAL + 1;
-    private static final int METHOD_GET_PANIC_THRESHOLD = METHOD_SET_CLIENT_SYNC_INTERVAL + 1;
-    private static final int METHOD_SET_PANIC_THRESHOLD = METHOD_GET_PANIC_THRESHOLD + 1;
-    private static final int METHOD_GET_AUTO_DISABLE = METHOD_SET_PANIC_THRESHOLD + 1;
-    private static final int METHOD_SET_AUTO_DISABLE = METHOD_GET_AUTO_DISABLE + 1;
-    private static final int METHOD_FORCE_NETWORKLESS_MASTER_MODE = METHOD_SET_AUTO_DISABLE + 1;
-}
diff --git a/core/java/android/os/CommonTimeUtils.java b/core/java/android/os/CommonTimeUtils.java
deleted file mode 100644
index ba060b8..0000000
--- a/core/java/android/os/CommonTimeUtils.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2012 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 android.os;
-
-import java.net.InetAddress;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
-import java.net.InetSocketAddress;
-import java.util.Locale;
-import static android.system.OsConstants.*;
-
-class CommonTimeUtils {
-    /**
-     * Successful operation.
-     */
-    public static final int SUCCESS = 0;
-    /**
-     * Unspecified error.
-     */
-    public static final int ERROR = -1;
-    /**
-     * Operation failed due to bad parameter value.
-     */
-    public static final int ERROR_BAD_VALUE = -4;
-    /**
-     * Operation failed due to dead remote object.
-     */
-    public static final int ERROR_DEAD_OBJECT = -7;
-
-    public CommonTimeUtils(IBinder remote, String interfaceDesc) {
-        mRemote = remote;
-        mInterfaceDesc = interfaceDesc;
-    }
-
-    public int transactGetInt(int method_code, int error_ret_val)
-    throws RemoteException {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        int ret_val;
-
-        try {
-            int res;
-            data.writeInterfaceToken(mInterfaceDesc);
-            mRemote.transact(method_code, data, reply, 0);
-
-            res = reply.readInt();
-            ret_val = (0 == res) ? reply.readInt() : error_ret_val;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        return ret_val;
-    }
-
-    public int transactSetInt(int method_code, int val) {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            data.writeInt(val);
-            mRemote.transact(method_code, data, reply, 0);
-
-            return reply.readInt();
-        }
-        catch (RemoteException e) {
-            return ERROR_DEAD_OBJECT;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-    }
-
-    public long transactGetLong(int method_code, long error_ret_val)
-    throws RemoteException {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        long ret_val;
-
-        try {
-            int res;
-            data.writeInterfaceToken(mInterfaceDesc);
-            mRemote.transact(method_code, data, reply, 0);
-
-            res = reply.readInt();
-            ret_val = (0 == res) ? reply.readLong() : error_ret_val;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        return ret_val;
-    }
-
-    public int transactSetLong(int method_code, long val) {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            data.writeLong(val);
-            mRemote.transact(method_code, data, reply, 0);
-
-            return reply.readInt();
-        }
-        catch (RemoteException e) {
-            return ERROR_DEAD_OBJECT;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-    }
-
-    public String transactGetString(int method_code, String error_ret_val)
-    throws RemoteException {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        String ret_val;
-
-        try {
-            int res;
-            data.writeInterfaceToken(mInterfaceDesc);
-            mRemote.transact(method_code, data, reply, 0);
-
-            res = reply.readInt();
-            ret_val = (0 == res) ? reply.readString() : error_ret_val;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        return ret_val;
-    }
-
-    public int transactSetString(int method_code, String val) {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-            data.writeString(val);
-            mRemote.transact(method_code, data, reply, 0);
-
-            return reply.readInt();
-        }
-        catch (RemoteException e) {
-            return ERROR_DEAD_OBJECT;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-    }
-
-    public InetSocketAddress transactGetSockaddr(int method_code)
-    throws RemoteException {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        InetSocketAddress ret_val = null;
-
-        try {
-            int res;
-            data.writeInterfaceToken(mInterfaceDesc);
-            mRemote.transact(method_code, data, reply, 0);
-
-            res = reply.readInt();
-            if (0 == res) {
-                int type;
-                int port = 0;
-                String addrStr = null;
-
-                type = reply.readInt();
-
-                if (AF_INET == type) {
-                    int addr = reply.readInt();
-                    port = reply.readInt();
-                    addrStr = String.format(Locale.US, "%d.%d.%d.%d",
-                                                       (addr >> 24) & 0xFF,
-                                                       (addr >> 16) & 0xFF,
-                                                       (addr >>  8) & 0xFF,
-                                                        addr        & 0xFF);
-                } else if (AF_INET6 == type) {
-                    int addr1 = reply.readInt();
-                    int addr2 = reply.readInt();
-                    int addr3 = reply.readInt();
-                    int addr4 = reply.readInt();
-
-                    port = reply.readInt();
-
-                    int flowinfo = reply.readInt();
-                    int scope_id = reply.readInt();
-
-                    addrStr = String.format(Locale.US, "[%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X]",
-                                                       (addr1 >> 16) & 0xFFFF, addr1 & 0xFFFF,
-                                                       (addr2 >> 16) & 0xFFFF, addr2 & 0xFFFF,
-                                                       (addr3 >> 16) & 0xFFFF, addr3 & 0xFFFF,
-                                                       (addr4 >> 16) & 0xFFFF, addr4 & 0xFFFF);
-                }
-
-                if (null != addrStr) {
-                    ret_val = new InetSocketAddress(addrStr, port);
-                }
-            }
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        return ret_val;
-    }
-
-    public int transactSetSockaddr(int method_code, InetSocketAddress addr) {
-        android.os.Parcel data  = android.os.Parcel.obtain();
-        android.os.Parcel reply = android.os.Parcel.obtain();
-        int ret_val = ERROR;
-
-        try {
-            data.writeInterfaceToken(mInterfaceDesc);
-
-            if (null == addr) {
-                data.writeInt(0);
-            } else {
-                data.writeInt(1);
-                final InetAddress a = addr.getAddress();
-                final byte[]      b = a.getAddress();
-                final int         p = addr.getPort();
-
-                if (a instanceof Inet4Address) {
-                    int v4addr = (((int)b[0] & 0xFF) << 24) |
-                                 (((int)b[1] & 0xFF) << 16) |
-                                 (((int)b[2] & 0xFF) << 8) |
-                                  ((int)b[3] & 0xFF);
-
-                    data.writeInt(AF_INET);
-                    data.writeInt(v4addr);
-                    data.writeInt(p);
-                } else
-                if (a instanceof Inet6Address) {
-                    int i;
-                    Inet6Address v6 = (Inet6Address)a;
-                    data.writeInt(AF_INET6);
-                    for (i = 0; i < 4; ++i) {
-                        int aword = (((int)b[(i*4) + 0] & 0xFF) << 24) |
-                                    (((int)b[(i*4) + 1] & 0xFF) << 16) |
-                                    (((int)b[(i*4) + 2] & 0xFF) << 8) |
-                                     ((int)b[(i*4) + 3] & 0xFF);
-                        data.writeInt(aword);
-                    }
-                    data.writeInt(p);
-                    data.writeInt(0);   // flow info
-                    data.writeInt(v6.getScopeId());
-                } else {
-                    return ERROR_BAD_VALUE;
-                }
-            }
-
-            mRemote.transact(method_code, data, reply, 0);
-            ret_val = reply.readInt();
-        }
-        catch (RemoteException e) {
-            ret_val = ERROR_DEAD_OBJECT;
-        }
-        finally {
-            reply.recycle();
-            data.recycle();
-        }
-
-        return ret_val;
-    }
-
-    private IBinder mRemote;
-    private String mInterfaceDesc;
-};
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index 5718ef9..bb77a93 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -462,6 +462,35 @@
     }
 
     /**
+     * Attempt to retrieve the PID of the zygote serving the given abi.
+     */
+    public int getZygotePid(String abi) {
+        try {
+            synchronized (mLock) {
+                ZygoteState state = openZygoteSocketIfNeeded(abi);
+
+                // Each query starts with the argument count (1 in this case)
+                state.writer.write("1");
+                // ... followed by a new-line.
+                state.writer.newLine();
+                // ... followed by our only argument.
+                state.writer.write("--get-pid");
+                state.writer.newLine();
+                state.writer.flush();
+
+                // The response is a length prefixed stream of ASCII bytes.
+                int numBytes = state.inputStream.readInt();
+                byte[] bytes = new byte[numBytes];
+                state.inputStream.readFully(bytes);
+
+                return Integer.parseInt(new String(bytes, StandardCharsets.US_ASCII));
+            }
+        } catch (Exception ex) {
+            throw new RuntimeException("Failure retrieving pid", ex);
+        }
+    }
+
+    /**
      * Push hidden API blacklisting exemptions into the zygote process(es).
      *
      * <p>The list of exemptions will take affect for all new processes forked from the zygote after
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 534f9c4..b607d4a 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -9176,6 +9176,15 @@
                 "captive_portal_other_fallback_urls";
 
         /**
+         * A list of captive portal detection specifications used in addition to the fallback URLs.
+         * Each spec has the format url@@/@@statusCodeRegex@@/@@contentRegex. Specs are separated
+         * by "@@,@@".
+         * @hide
+         */
+        public static final String CAPTIVE_PORTAL_FALLBACK_PROBE_SPECS =
+                "captive_portal_fallback_probe_specs";
+
+        /**
          * Whether to use HTTPS for network validation. This is enabled by default and the setting
          * needs to be set to 0 to disable it. This setting is a misnomer because captive portals
          * don't actually use HTTPS, but it's consistent with the other settings.
diff --git a/core/java/android/util/NtpTrustedTime.java b/core/java/android/util/NtpTrustedTime.java
index ed2d3c6..30d7b6c 100644
--- a/core/java/android/util/NtpTrustedTime.java
+++ b/core/java/android/util/NtpTrustedTime.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.net.ConnectivityManager;
+import android.net.Network;
 import android.net.NetworkInfo;
 import android.net.SntpClient;
 import android.os.SystemClock;
@@ -80,6 +81,18 @@
 
     @Override
     public boolean forceRefresh() {
+        // We can't do this at initialization time: ConnectivityService might not be running yet.
+        synchronized (this) {
+            if (mCM == null) {
+                mCM = sContext.getSystemService(ConnectivityManager.class);
+            }
+        }
+
+        final Network network = mCM == null ? null : mCM.getActiveNetwork();
+        return forceRefresh(network);
+    }
+
+    public boolean forceRefresh(Network network) {
         if (TextUtils.isEmpty(mServer)) {
             // missing server, so no trusted time available
             return false;
@@ -88,11 +101,11 @@
         // We can't do this at initialization time: ConnectivityService might not be running yet.
         synchronized (this) {
             if (mCM == null) {
-                mCM = (ConnectivityManager) sContext.getSystemService(Context.CONNECTIVITY_SERVICE);
+                mCM = sContext.getSystemService(ConnectivityManager.class);
             }
         }
 
-        final NetworkInfo ni = mCM == null ? null : mCM.getActiveNetworkInfo();
+        final NetworkInfo ni = mCM == null ? null : mCM.getNetworkInfo(network);
         if (ni == null || !ni.isConnected()) {
             if (LOGD) Log.d(TAG, "forceRefresh: no connectivity");
             return false;
@@ -101,7 +114,7 @@
 
         if (LOGD) Log.d(TAG, "forceRefresh() from cache miss");
         final SntpClient client = new SntpClient();
-        if (client.requestTime(mServer, (int) mTimeout)) {
+        if (client.requestTime(mServer, (int) mTimeout, network)) {
             mHasCache = true;
             mCachedNtpTime = client.getNtpTime();
             mCachedNtpElapsedRealtime = client.getNtpTimeReference();
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index adc5508..b9f33e7 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -150,6 +150,11 @@
             return null;
         }
 
+        if (parsedArgs.pidQuery) {
+            handlePidQuery();
+            return null;
+        }
+
         if (parsedArgs.preloadDefault) {
             handlePreload();
             return null;
@@ -266,6 +271,17 @@
         }
     }
 
+    private void handlePidQuery() {
+        try {
+            String pidString = String.valueOf(Process.myPid());
+            final byte[] pidStringBytes = pidString.getBytes(StandardCharsets.US_ASCII);
+            mSocketOutStream.writeInt(pidStringBytes.length);
+            mSocketOutStream.write(pidStringBytes);
+        } catch (IOException ioe) {
+            throw new IllegalStateException("Error writing to command socket", ioe);
+        }
+    }
+
     /**
      * Preloads resources if the zygote is in lazily preload mode. Writes the result of the
      * preload operation; {@code 0} when a preload was initiated due to this request and {@code 1}
@@ -440,6 +456,11 @@
         boolean startChildZygote;
 
         /**
+         * Whether the current arguments constitute a request for the zygote's PID.
+         */
+        boolean pidQuery;
+
+        /**
          * Exemptions from API blacklisting. These are sent to the pre-forked zygote at boot time,
          * or when they change, via --set-api-blacklist-exemptions.
          */
@@ -586,6 +607,8 @@
                     mountExternal = Zygote.MOUNT_EXTERNAL_WRITE;
                 } else if (arg.equals("--query-abi-list")) {
                     abiListQuery = true;
+                } else if (arg.equals("--get-pid")) {
+                    pidQuery = true;
                 } else if (arg.startsWith("--instruction-set=")) {
                     instructionSet = arg.substring(arg.indexOf('=') + 1);
                 } else if (arg.startsWith("--app-data-dir=")) {
@@ -608,7 +631,7 @@
                 }
             }
 
-            if (abiListQuery) {
+            if (abiListQuery || pidQuery) {
                 if (args.length - curArg > 0) {
                     throw new IllegalArgumentException("Unexpected arguments after --query-abi-list.");
                 }
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 6d55d0b..d56c726 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -368,12 +368,14 @@
                [Network Capabilities] Optional. A comma seprated list of network capabilities.
                    Values must be from NetworkCapabilities#NET_CAPABILITIES_* constants.
                [IP config] Optional. If empty or not specified - DHCP will be used, otherwise
-                    static IP address with the mask.
+                   use the following format to specify static IP configuration:
+		       ip=<ip-address/mask> gateway=<ip-address> dns=<comma-sep-ip-addresses>
+                       domains=<comma-sep-domains> 
          -->
     <string-array translatable="false" name="config_ethernet_interfaces">
         <!--
-        <item>eth1;12,13,14,15;192.168.0.10/24</item>
-        <item>eth2;;192.168.0.11/24</item>
+        <item>eth1;12,13,14,15;ip=192.168.0.10/24 gateway=192.168.0.1 dns=4.4.4.4,8.8.8.8</item>
+        <item>eth2;;ip=192.168.0.11/24</item>
         -->
     </string-array>
 
diff --git a/core/res/res/xml/sms_short_codes.xml b/core/res/res/xml/sms_short_codes.xml
index 8947bf0..fb78b3b 100644
--- a/core/res/res/xml/sms_short_codes.xml
+++ b/core/res/res/xml/sms_short_codes.xml
@@ -61,7 +61,7 @@
     <shortcode country="bh" pattern="\\d{1,5}" free="81181" />
 
     <!-- Brazil: 1-5 digits (standard system default, not country specific) -->
-    <shortcode country="br" pattern="\\d{1,5}" free="6000[012]\\d|876|5500|9963" />
+    <shortcode country="br" pattern="\\d{1,5}" free="6000[012]\\d|876|5500|9963|4141|8000" />
 
     <!-- Belarus: 4 digits -->
     <shortcode country="by" pattern="\\d{4}" premium="3336|4161|444[4689]|501[34]|7781" />
@@ -73,7 +73,7 @@
     <shortcode country="ch" pattern="[2-9]\\d{2,4}" premium="543|83111|30118" free="98765" />
 
     <!-- Chile: 4-5 digits (not confirmed), known premium codes listed -->
-    <shortcode country="cl" pattern="\\d{4,5}" free="9963" />
+    <shortcode country="cl" pattern="\\d{4,5}" free="9963|9240" />
 
     <!-- China: premium shortcodes start with "1066", free shortcodes start with "1065":
          http://clients.txtnation.com/entries/197192-china-premium-sms-short-code-requirements -->
@@ -104,7 +104,7 @@
     <shortcode country="es" premium="[23][57]\\d{3}|280\\d{2}|[79]9[57]\\d{3}" free="116\\d{3}|22791|222145|22189" />
 
     <!-- Finland: 5-6 digits, premium 0600, 0700: http://en.wikipedia.org/wiki/Telephone_numbers_in_Finland -->
-    <shortcode country="fi" pattern="\\d{5,6}" premium="0600.*|0700.*|171(?:59|63)" free="116\\d{3}|14789" />
+    <shortcode country="fi" pattern="\\d{5,6}" premium="0600.*|0700.*|171(?:59|63)" free="116\\d{3}|14789|17110" />
 
     <!-- France: 5 digits, free: 3xxxx, premium [4-8]xxxx, plus EU:
          http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements,
@@ -136,7 +136,7 @@
     <shortcode country="in" pattern="\\d{1,5}" free="59336|53969" />
 
     <!-- Indonesia: 1-5 digits (standard system default, not country specific) -->
-    <shortcode country="id" pattern="\\d{1,5}" free="99477|6006|46645" />
+    <shortcode country="id" pattern="\\d{1,5}" free="99477|6006|46645|363" />
 
     <!-- Ireland: 5 digits, 5xxxx (50xxx=free, 5[12]xxx=standard), plus EU:
          http://www.comreg.ie/_fileupload/publications/ComReg1117.pdf -->
@@ -190,7 +190,7 @@
     <shortcode country="nl" pattern="\\d{4}" premium="4466|5040" free="116\\d{3}|2223|6225|2223" />
 
     <!-- Norway: 4-5 digits (not confirmed), known premium codes listed -->
-    <shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" />
+    <shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" free="2171" />
 
     <!-- New Zealand: 3-4 digits, known premium codes listed -->
     <shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995|4679" free="3067|3068|4053" />
@@ -240,7 +240,7 @@
     <shortcode country="sk" premium="\\d{4}" free="116\\d{3}|8000" />
 
     <!-- Thailand: 4186001 used by AIS_TH_DCB -->
-    <shortcode country="th" pattern="\\d{1,5}" free="4186001" />
+    <shortcode country="th" pattern="\\d{1,5}" premium="4\\d{6}" free="4186001" />
 
     <!-- Tajikistan: 4 digits, known premium codes listed -->
     <shortcode country="tj" pattern="\\d{4}" premium="11[3-7]1|4161|4333|444[689]" />
diff --git a/core/tests/coretests/Android.mk b/core/tests/coretests/Android.mk
index b49f5a9..a97e79b 100644
--- a/core/tests/coretests/Android.mk
+++ b/core/tests/coretests/Android.mk
@@ -49,10 +49,12 @@
 FrameworkCoreTests_intermediates := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/test_apks/res
 LOCAL_RESOURCE_DIR := $(FrameworkCoreTests_intermediates) $(LOCAL_PATH)/res
 
-# Disable AAPT2 to fix:
-# frameworks/base/core/tests/coretests/AndroidManifest.xml:26: error: unknown element <meta-data> found.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
+# Disable AAPT2 because the hacks below depend on the AAPT rules implementation
 LOCAL_USE_AAPT2 := false
+# When AAPT2 is enabled it will need --warn-manifest-validation to fix:
+# frameworks/base/core/tests/coretests/AndroidManifest.xml:26: error: unknown element <meta-data> found.
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+# LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(BUILD_PACKAGE)
 # Rules to copy all the test apks to the intermediate raw resource directory
diff --git a/core/tests/coretests/apks/install_multi_package/Android.mk b/core/tests/coretests/apks/install_multi_package/Android.mk
index 764bc5a..9727593 100644
--- a/core/tests/coretests/apks/install_multi_package/Android.mk
+++ b/core/tests/coretests/apks/install_multi_package/Android.mk
@@ -7,10 +7,11 @@
 
 LOCAL_PACKAGE_NAME := install_multi_package
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # frameworks/base/core/tests/coretests/apks/install_multi_package/AndroidManifest.xml:46: error: unexpected element <package> found in <manifest>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(FrameworkCoreTests_BUILD_PACKAGE)
 #include $(BUILD_PACKAGE)
diff --git a/core/tests/coretests/apks/install_verifier_bad/Android.mk b/core/tests/coretests/apks/install_verifier_bad/Android.mk
index c243372..679327c 100644
--- a/core/tests/coretests/apks/install_verifier_bad/Android.mk
+++ b/core/tests/coretests/apks/install_verifier_bad/Android.mk
@@ -5,9 +5,10 @@
 
 LOCAL_PACKAGE_NAME := install_verifier_bad
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # frameworks/base/core/tests/coretests/apks/install_verifier_bad/AndroidManifest.xml:19: error: unexpected element <package-verifier> found in <manifest>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(FrameworkCoreTests_BUILD_PACKAGE)
diff --git a/core/tests/coretests/apks/install_verifier_good/Android.mk b/core/tests/coretests/apks/install_verifier_good/Android.mk
index 8e9ab46..7d621b3 100644
--- a/core/tests/coretests/apks/install_verifier_good/Android.mk
+++ b/core/tests/coretests/apks/install_verifier_good/Android.mk
@@ -5,9 +5,10 @@
 
 LOCAL_PACKAGE_NAME := install_verifier_good
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # frameworks/base/core/tests/coretests/apks/install_verifier_good/AndroidManifest.xml:19: error: unexpected element <package-verifier> found in <manifest>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(FrameworkCoreTests_BUILD_PACKAGE)
diff --git a/core/tests/coretests/src/android/net/SntpClientTest.java b/core/tests/coretests/src/android/net/SntpClientTest.java
index 8b8cf67..d72738c 100644
--- a/core/tests/coretests/src/android/net/SntpClientTest.java
+++ b/core/tests/coretests/src/android/net/SntpClientTest.java
@@ -16,20 +16,28 @@
 
 package android.net;
 
-import android.net.SntpClient;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
+import android.support.test.runner.AndroidJUnit4;
 import android.util.Log;
+
 import libcore.util.HexEncoding;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.io.IOException;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
 import java.net.SocketException;
 import java.util.Arrays;
-import junit.framework.TestCase;
 
-
-public class SntpClientTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class SntpClientTest {
     private static final String TAG = "SntpClientTest";
 
     private static final int ORIGINATE_TIME_OFFSET = 24;
@@ -58,36 +66,50 @@
             "d9ca945194bd3fff" +
             "d9ca945194bd4001";
 
-    private final SntpTestServer mServer = new SntpTestServer();
-    private final SntpClient mClient = new SntpClient();
+    private SntpTestServer mServer;
+    private SntpClient mClient;
+    private Network mNetwork;
 
+    @Before
+    public void setUp() throws Exception {
+        // NETID_UNSET allows the test to run, with a loopback server, even w/o external networking
+        mNetwork = new Network(ConnectivityManager.NETID_UNSET);
+        mServer = new SntpTestServer();
+        mClient = new SntpClient();
+    }
+
+    @Test
     public void testBasicWorkingSntpClientQuery() throws Exception {
         mServer.setServerReply(HexEncoding.decode(WORKING_VERSION4.toCharArray(), false));
-        assertTrue(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500));
+        assertTrue(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500, mNetwork));
         assertEquals(1, mServer.numRequestsReceived());
         assertEquals(1, mServer.numRepliesSent());
     }
 
+    @Test
     public void testDnsResolutionFailure() throws Exception {
-        assertFalse(mClient.requestTime("ntp.server.doesnotexist.example", 5000));
+        assertFalse(mClient.requestTime("ntp.server.doesnotexist.example", 5000, mNetwork));
     }
 
+    @Test
     public void testTimeoutFailure() throws Exception {
         mServer.clearServerReply();
-        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500));
+        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500, mNetwork));
         assertEquals(1, mServer.numRequestsReceived());
         assertEquals(0, mServer.numRepliesSent());
     }
 
+    @Test
     public void testIgnoreLeapNoSync() throws Exception {
         final byte[] reply = HexEncoding.decode(WORKING_VERSION4.toCharArray(), false);
         reply[0] |= (byte) 0xc0;
         mServer.setServerReply(reply);
-        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500));
+        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500, mNetwork));
         assertEquals(1, mServer.numRequestsReceived());
         assertEquals(1, mServer.numRepliesSent());
     }
 
+    @Test
     public void testAcceptOnlyServerAndBroadcastModes() throws Exception {
         final byte[] reply = HexEncoding.decode(WORKING_VERSION4.toCharArray(), false);
         for (int i = 0; i <= 7; i++) {
@@ -95,7 +117,8 @@
             reply[0] &= (byte) 0xf8;
             reply[0] |= (byte) i;
             mServer.setServerReply(reply);
-            final boolean rval = mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500);
+            final boolean rval = mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500,
+                    mNetwork);
             switch (i) {
                 case NTP_MODE_SERVER:
                 case NTP_MODE_BROADCAST:
@@ -110,6 +133,7 @@
         }
     }
 
+    @Test
     public void testAcceptableStrataOnly() throws Exception {
         final int STRATUM_MIN = 1;
         final int STRATUM_MAX = 15;
@@ -119,7 +143,8 @@
             final String logMsg = "stratum: " + i;
             reply[1] = (byte) i;
             mServer.setServerReply(reply);
-            final boolean rval = mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500);
+            final boolean rval = mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500,
+                    mNetwork);
             if (STRATUM_MIN <= i && i <= STRATUM_MAX) {
                 assertTrue(logMsg, rval);
             } else {
@@ -130,11 +155,12 @@
         }
     }
 
+    @Test
     public void testZeroTransmitTime() throws Exception {
         final byte[] reply = HexEncoding.decode(WORKING_VERSION4.toCharArray(), false);
         Arrays.fill(reply, TRANSMIT_TIME_OFFSET, TRANSMIT_TIME_OFFSET + 8, (byte) 0x00);
         mServer.setServerReply(reply);
-        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500));
+        assertFalse(mClient.requestTime(mServer.getAddress(), mServer.getPort(), 500, mNetwork));
         assertEquals(1, mServer.numRequestsReceived());
         assertEquals(1, mServer.numRepliesSent());
     }
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index 8a7c586..d513936 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -139,6 +139,7 @@
                     Settings.Global.CAPTIVE_PORTAL_HTTP_URL,
                     Settings.Global.CAPTIVE_PORTAL_MODE,
                     Settings.Global.CAPTIVE_PORTAL_OTHER_FALLBACK_URLS,
+                    Settings.Global.CAPTIVE_PORTAL_FALLBACK_PROBE_SPECS,
                     Settings.Global.CAPTIVE_PORTAL_SERVER,
                     Settings.Global.CAPTIVE_PORTAL_USE_HTTPS,
                     Settings.Global.CAPTIVE_PORTAL_USER_AGENT,
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 26741fe..64085ea 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -167,10 +167,6 @@
             file="/system/framework/android.test.mock.jar" />
     <library name="android.test.runner"
             file="/system/framework/android.test.runner.jar" />
-    <library name="javax.obex"
-            file="/system/framework/javax.obex.jar" />
-    <library name="org.apache.http.legacy"
-            file="/system/framework/org.apache.http.legacy.jar" />
 
     <!-- These are the standard packages that are white-listed to always have internet
          access while in power save mode, even if they aren't in the foreground. -->
diff --git a/libs/androidfw/OWNERS b/libs/androidfw/OWNERS
new file mode 100644
index 0000000..23ec5ab
--- /dev/null
+++ b/libs/androidfw/OWNERS
@@ -0,0 +1,2 @@
+set noparent
+toddke@google.com
diff --git a/libs/common_time/Android.mk b/libs/common_time/Android.mk
deleted file mode 100644
index 636f057..0000000
--- a/libs/common_time/Android.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-#
-# common_time_service
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-    common_clock_service.cpp \
-    common_time_config_service.cpp \
-    common_time_server.cpp \
-    common_time_server_api.cpp \
-    common_time_server_packets.cpp \
-    clock_recovery.cpp \
-    common_clock.cpp \
-    main.cpp \
-    utils.cpp \
-    LinearTransform.cpp
-
-# Uncomment to enable vesbose logging and debug service.
-#TIME_SERVICE_DEBUG=true
-ifeq ($(TIME_SERVICE_DEBUG), true)
-LOCAL_SRC_FILES += diag_thread.cpp
-LOCAL_CFLAGS += -DTIME_SERVICE_DEBUG
-endif
-
-LOCAL_SHARED_LIBRARIES := \
-    libbinder \
-    libcommon_time_client \
-    libutils \
-    liblog
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := common_time
-
-LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
-
-include $(BUILD_EXECUTABLE)
diff --git a/libs/common_time/LinearTransform.cpp b/libs/common_time/LinearTransform.cpp
deleted file mode 100644
index 6730855..0000000
--- a/libs/common_time/LinearTransform.cpp
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#define __STDC_LIMIT_MACROS
-
-#include "LinearTransform.h"
-#include <assert.h>
-
-
-// disable sanitize as these functions may intentionally overflow (see comments below).
-// the ifdef can be removed when host builds use clang.
-#if defined(__clang__)
-#define ATTRIBUTE_NO_SANITIZE_INTEGER __attribute__((no_sanitize("integer")))
-#else
-#define ATTRIBUTE_NO_SANITIZE_INTEGER
-#endif
-
-namespace android {
-
-// sanitize failure with T = int32_t and x = 0x80000000
-template<class T>
-ATTRIBUTE_NO_SANITIZE_INTEGER
-static inline T ABS(T x) { return (x < 0) ? -x : x; }
-
-// Static math methods involving linear transformations
-// remote sanitize failure on overflow case.
-ATTRIBUTE_NO_SANITIZE_INTEGER
-static bool scale_u64_to_u64(
-        uint64_t val,
-        uint32_t N,
-        uint32_t D,
-        uint64_t* res,
-        bool round_up_not_down) {
-    uint64_t tmp1, tmp2;
-    uint32_t r;
-
-    assert(res);
-    assert(D);
-
-    // Let U32(X) denote a uint32_t containing the upper 32 bits of a 64 bit
-    // integer X.
-    // Let L32(X) denote a uint32_t containing the lower 32 bits of a 64 bit
-    // integer X.
-    // Let X[A, B] with A <= B denote bits A through B of the integer X.
-    // Let (A | B) denote the concatination of two 32 bit ints, A and B.
-    // IOW X = (A | B) => U32(X) == A && L32(X) == B
-    //
-    // compute M = val * N (a 96 bit int)
-    // ---------------------------------
-    // tmp2 = U32(val) * N (a 64 bit int)
-    // tmp1 = L32(val) * N (a 64 bit int)
-    // which means
-    // M = val * N = (tmp2 << 32) + tmp1
-    tmp2 = (val >> 32) * N;
-    tmp1 = (val & UINT32_MAX) * N;
-
-    // compute M[32, 95]
-    // tmp2 = tmp2 + U32(tmp1)
-    //      = (U32(val) * N) + U32(L32(val) * N)
-    //      = M[32, 95]
-    tmp2 += tmp1 >> 32;
-
-    // if M[64, 95] >= D, then M/D has bits > 63 set and we have
-    // an overflow.
-    if ((tmp2 >> 32) >= D) {
-        *res = UINT64_MAX;
-        return false;
-    }
-
-    // Divide.  Going in we know
-    // tmp2 = M[32, 95]
-    // U32(tmp2) < D
-    r = tmp2 % D;
-    tmp2 /= D;
-
-    // At this point
-    // tmp1      = L32(val) * N
-    // tmp2      = M[32, 95] / D
-    //           = (M / D)[32, 95]
-    // r         = M[32, 95] % D
-    // U32(tmp2) = 0
-    //
-    // compute tmp1 = (r | M[0, 31])
-    tmp1 = (tmp1 & UINT32_MAX) | ((uint64_t)r << 32);
-
-    // Divide again.  Keep the remainder around in order to round properly.
-    r = tmp1 % D;
-    tmp1 /= D;
-
-    // At this point
-    // tmp2      = (M / D)[32, 95]
-    // tmp1      = (M / D)[ 0, 31]
-    // r         =  M % D
-    // U32(tmp1) = 0
-    // U32(tmp2) = 0
-
-    // Pack the result and deal with the round-up case (As well as the
-    // remote possiblility over overflow in such a case).
-    *res = (tmp2 << 32) | tmp1;
-    if (r && round_up_not_down) {
-        ++(*res);
-        if (!(*res)) {
-            *res = UINT64_MAX;
-            return false;
-        }
-    }
-
-    return true;
-}
-
-// at least one known sanitize failure (see comment below)
-ATTRIBUTE_NO_SANITIZE_INTEGER
-static bool linear_transform_s64_to_s64(
-        int64_t  val,
-        int64_t  basis1,
-        int32_t  N,
-        uint32_t D,
-        bool     invert_frac,
-        int64_t  basis2,
-        int64_t* out) {
-    uint64_t scaled, res;
-    uint64_t abs_val;
-    bool is_neg;
-
-    if (!out)
-        return false;
-
-    // Compute abs(val - basis_64). Keep track of whether or not this delta
-    // will be negative after the scale opertaion.
-    if (val < basis1) {
-        is_neg = true;
-        abs_val = basis1 - val;
-    } else {
-        is_neg = false;
-        abs_val = val - basis1;
-    }
-
-    if (N < 0)
-        is_neg = !is_neg;
-
-    if (!scale_u64_to_u64(abs_val,
-                          invert_frac ? D : ABS(N),
-                          invert_frac ? ABS(N) : D,
-                          &scaled,
-                          is_neg))
-        return false; // overflow/undeflow
-
-    // if scaled is >= 0x8000<etc>, then we are going to overflow or
-    // underflow unless ABS(basis2) is large enough to pull us back into the
-    // non-overflow/underflow region.
-    if (scaled & INT64_MIN) {
-        if (is_neg && (basis2 < 0))
-            return false; // certain underflow
-
-        if (!is_neg && (basis2 >= 0))
-            return false; // certain overflow
-
-        if (ABS(basis2) <= static_cast<int64_t>(scaled & INT64_MAX))
-            return false; // not enough
-
-        // Looks like we are OK
-        *out = (is_neg ? (-scaled) : scaled) + basis2;
-    } else {
-        // Scaled fits within signed bounds, so we just need to check for
-        // over/underflow for two signed integers.  Basically, if both scaled
-        // and basis2 have the same sign bit, and the result has a different
-        // sign bit, then we have under/overflow.  An easy way to compute this
-        // is
-        // (scaled_signbit XNOR basis_signbit) &&
-        // (scaled_signbit XOR res_signbit)
-        // ==
-        // (scaled_signbit XOR basis_signbit XOR 1) &&
-        // (scaled_signbit XOR res_signbit)
-
-        if (is_neg)
-            scaled = -scaled; // known sanitize failure
-        res = scaled + basis2;
-
-        if ((scaled ^ basis2 ^ INT64_MIN) & (scaled ^ res) & INT64_MIN)
-            return false;
-
-        *out = res;
-    }
-
-    return true;
-}
-
-bool LinearTransform::doForwardTransform(int64_t a_in, int64_t* b_out) const {
-    if (0 == a_to_b_denom)
-        return false;
-
-    return linear_transform_s64_to_s64(a_in,
-                                       a_zero,
-                                       a_to_b_numer,
-                                       a_to_b_denom,
-                                       false,
-                                       b_zero,
-                                       b_out);
-}
-
-bool LinearTransform::doReverseTransform(int64_t b_in, int64_t* a_out) const {
-    if (0 == a_to_b_numer)
-        return false;
-
-    return linear_transform_s64_to_s64(b_in,
-                                       b_zero,
-                                       a_to_b_numer,
-                                       a_to_b_denom,
-                                       true,
-                                       a_zero,
-                                       a_out);
-}
-
-template <class T> void LinearTransform::reduce(T* N, T* D) {
-    T a, b;
-    if (!N || !D || !(*D)) {
-        assert(false);
-        return;
-    }
-
-    a = *N;
-    b = *D;
-
-    if (a == 0) {
-        *D = 1;
-        return;
-    }
-
-    // This implements Euclid's method to find GCD.
-    if (a < b) {
-        T tmp = a;
-        a = b;
-        b = tmp;
-    }
-
-    while (1) {
-        // a is now the greater of the two.
-        const T remainder = a % b;
-        if (remainder == 0) {
-            *N /= b;
-            *D /= b;
-            return;
-        }
-        // by swapping remainder and b, we are guaranteeing that a is
-        // still the greater of the two upon entrance to the loop.
-        a = b;
-        b = remainder;
-    }
-};
-
-template void LinearTransform::reduce<uint64_t>(uint64_t* N, uint64_t* D);
-template void LinearTransform::reduce<uint32_t>(uint32_t* N, uint32_t* D);
-
-// sanitize failure if *N = 0x80000000
-ATTRIBUTE_NO_SANITIZE_INTEGER
-void LinearTransform::reduce(int32_t* N, uint32_t* D) {
-    if (N && D && *D) {
-        if (*N < 0) {
-            *N = -(*N);
-            reduce(reinterpret_cast<uint32_t*>(N), D);
-            *N = -(*N);
-        } else {
-            reduce(reinterpret_cast<uint32_t*>(N), D);
-        }
-    }
-}
-
-}  // namespace android
diff --git a/libs/common_time/LinearTransform.h b/libs/common_time/LinearTransform.h
deleted file mode 100644
index bf6ab8e..0000000
--- a/libs/common_time/LinearTransform.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#ifndef _LINEAR_TRANSFORM_H
-#define _LINEAR_TRANSFORM_H
-
-#include <stdint.h>
-
-namespace android {
-
-// LinearTransform defines a structure which hold the definition of a
-// transformation from single dimensional coordinate system A into coordinate
-// system B (and back again).  Values in A and in B are 64 bit, the linear
-// scale factor is expressed as a rational number using two 32 bit values.
-//
-// Specifically, let
-// f(a) = b
-// F(b) = f^-1(b) = a
-// then
-//
-// f(a) = (((a - a_zero) * a_to_b_numer) / a_to_b_denom) + b_zero;
-//
-// and
-//
-// F(b) = (((b - b_zero) * a_to_b_denom) / a_to_b_numer) + a_zero;
-//
-struct LinearTransform {
-  int64_t  a_zero;
-  int64_t  b_zero;
-  int32_t  a_to_b_numer;
-  uint32_t a_to_b_denom;
-
-  // Transform from A->B
-  // Returns true on success, or false in the case of a singularity or an
-  // overflow.
-  bool doForwardTransform(int64_t a_in, int64_t* b_out) const;
-
-  // Transform from B->A
-  // Returns true on success, or false in the case of a singularity or an
-  // overflow.
-  bool doReverseTransform(int64_t b_in, int64_t* a_out) const;
-
-  // Helpers which will reduce the fraction N/D using Euclid's method.
-  template <class T> static void reduce(T* N, T* D);
-  static void reduce(int32_t* N, uint32_t* D);
-};
-
-
-}
-
-#endif  // _LINEAR_TRANSFORM_H
diff --git a/libs/common_time/clock_recovery.cpp b/libs/common_time/clock_recovery.cpp
deleted file mode 100644
index 392caa0..0000000
--- a/libs/common_time/clock_recovery.cpp
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-/*
- * A service that exchanges time synchronization information between
- * a master that defines a timeline and clients that follow the timeline.
- */
-
-#define __STDC_LIMIT_MACROS
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-#include <inttypes.h>
-#include <stdint.h>
-
-#include <common_time/local_clock.h>
-#include <assert.h>
-
-#include "clock_recovery.h"
-#include "common_clock.h"
-#ifdef TIME_SERVICE_DEBUG
-#include "diag_thread.h"
-#endif
-
-// Define log macro so we can make LOGV into LOGE when we are exclusively
-// debugging this code.
-#ifdef TIME_SERVICE_DEBUG
-#define LOG_TS ALOGE
-#else
-#define LOG_TS ALOGV
-#endif
-
-namespace android {
-
-ClockRecoveryLoop::ClockRecoveryLoop(LocalClock* local_clock,
-                                     CommonClock* common_clock) {
-    assert(NULL != local_clock);
-    assert(NULL != common_clock);
-
-    local_clock_  = local_clock;
-    common_clock_ = common_clock;
-
-    local_clock_can_slew_ = local_clock_->initCheck() &&
-                           (local_clock_->setLocalSlew(0) == OK);
-    tgt_correction_ = 0;
-    cur_correction_ = 0;
-
-    // Precompute the max rate at which we are allowed to change the VCXO
-    // control.
-    uint64_t N = 0x10000ull * 1000ull;
-    uint64_t D = local_clock_->getLocalFreq() * kMinFullRangeSlewChange_mSec;
-    LinearTransform::reduce(&N, &D);
-    while ((N > INT32_MAX) || (D > UINT32_MAX)) {
-        N >>= 1;
-        D >>= 1;
-        LinearTransform::reduce(&N, &D);
-    }
-    time_to_cur_slew_.a_to_b_numer = static_cast<int32_t>(N);
-    time_to_cur_slew_.a_to_b_denom = static_cast<uint32_t>(D);
-
-    reset(true, true);
-
-#ifdef TIME_SERVICE_DEBUG
-    diag_thread_ = new DiagThread(common_clock_, local_clock_);
-    if (diag_thread_ != NULL) {
-        status_t res = diag_thread_->startWorkThread();
-        if (res != OK)
-            ALOGW("Failed to start A@H clock recovery diagnostic thread.");
-    } else
-        ALOGW("Failed to allocate diagnostic thread.");
-#endif
-}
-
-ClockRecoveryLoop::~ClockRecoveryLoop() {
-#ifdef TIME_SERVICE_DEBUG
-    diag_thread_->stopWorkThread();
-#endif
-}
-
-// Constants.
-const float ClockRecoveryLoop::dT = 1.0;
-const float ClockRecoveryLoop::Kc = 1.0f;
-const float ClockRecoveryLoop::Ti = 15.0f;
-const float ClockRecoveryLoop::Tf = 0.05;
-const float ClockRecoveryLoop::bias_Fc = 0.01;
-const float ClockRecoveryLoop::bias_RC = (dT / (2 * 3.14159f * bias_Fc));
-const float ClockRecoveryLoop::bias_Alpha = (dT / (bias_RC + dT));
-const int64_t ClockRecoveryLoop::panic_thresh_ = 50000;
-const int64_t ClockRecoveryLoop::control_thresh_ = 10000;
-const float ClockRecoveryLoop::COmin = -100.0f;
-const float ClockRecoveryLoop::COmax = 100.0f;
-const uint32_t ClockRecoveryLoop::kMinFullRangeSlewChange_mSec = 300;
-const int ClockRecoveryLoop::kSlewChangeStepPeriod_mSec = 10;
-
-
-void ClockRecoveryLoop::reset(bool position, bool frequency) {
-    Mutex::Autolock lock(&lock_);
-    reset_l(position, frequency);
-}
-
-uint32_t ClockRecoveryLoop::findMinRTTNdx(DisciplineDataPoint* data,
-                                          uint32_t count) {
-    uint32_t min_rtt = 0;
-    for (uint32_t i = 1; i < count; ++i)
-        if (data[min_rtt].rtt > data[i].rtt)
-            min_rtt = i;
-
-    return min_rtt;
-}
-
-bool ClockRecoveryLoop::pushDisciplineEvent(int64_t local_time,
-                                            int64_t nominal_common_time,
-                                            int64_t rtt) {
-    Mutex::Autolock lock(&lock_);
-
-    int64_t local_common_time = 0;
-    common_clock_->localToCommon(local_time, &local_common_time);
-    int64_t raw_delta = nominal_common_time - local_common_time;
-
-#ifdef TIME_SERVICE_DEBUG
-    ALOGE("local=%lld, common=%lld, delta=%lld, rtt=%lld\n",
-         local_common_time, nominal_common_time,
-         raw_delta, rtt);
-#endif
-
-    // If we have not defined a basis for common time, then we need to use these
-    // initial points to do so.  In order to avoid significant initial error
-    // from a particularly bad startup data point, we collect the first N data
-    // points and choose the best of them before moving on.
-    if (!common_clock_->isValid()) {
-        if (startup_filter_wr_ < kStartupFilterSize) {
-            DisciplineDataPoint& d =  startup_filter_data_[startup_filter_wr_];
-            d.local_time = local_time;
-            d.nominal_common_time = nominal_common_time;
-            d.rtt = rtt;
-            startup_filter_wr_++;
-        }
-
-        if (startup_filter_wr_ == kStartupFilterSize) {
-            uint32_t min_rtt = findMinRTTNdx(startup_filter_data_,
-                    kStartupFilterSize);
-
-            common_clock_->setBasis(
-                    startup_filter_data_[min_rtt].local_time,
-                    startup_filter_data_[min_rtt].nominal_common_time);
-        }
-
-        return true;
-    }
-
-    int64_t observed_common;
-    int64_t delta;
-    float delta_f, dCO;
-    int32_t tgt_correction;
-
-    if (OK != common_clock_->localToCommon(local_time, &observed_common)) {
-        // Since we just checked to make certain that this conversion was valid,
-        // and no one else in the system should be messing with it, if this
-        // conversion is suddenly invalid, it is a good reason to panic.
-        ALOGE("Failed to convert local time to common time in %s:%d",
-                __PRETTY_FUNCTION__, __LINE__);
-        return false;
-    }
-
-    // Implement a filter which should match NTP filtering behavior when a
-    // client is associated with only one peer of lower stratum.  Basically,
-    // always use the best of the N last data points, where best is defined as
-    // lowest round trip time.  NTP uses an N of 8; we use a value of 6.
-    //
-    // TODO(johngro) : experiment with other filter strategies.  The goal here
-    // is to mitigate the effects of high RTT data points which typically have
-    // large asymmetries in the TX/RX legs.  Downside of the existing NTP
-    // approach (particularly because of the PID controller we are using to
-    // produce the control signal from the filtered data) are that the rate at
-    // which discipline events are actually acted upon becomes irregular and can
-    // become drawn out (the time between actionable event can go way up).  If
-    // the system receives a strong high quality data point, the proportional
-    // component of the controller can produce a strong correction which is left
-    // in place for too long causing overshoot.  In addition, the integral
-    // component of the system currently is an approximation based on the
-    // assumption of a more or less homogeneous sampling of the error.  Its
-    // unclear what the effect of undermining this assumption would be right
-    // now.
-
-    // Two ideas which come to mind immediately would be to...
-    // 1) Keep a history of more data points (32 or so) and ignore data points
-    //    whose RTT is more than a certain number of standard deviations outside
-    //    of the norm.
-    // 2) Eliminate the PID controller portion of this system entirely.
-    //    Instead, move to a system which uses a very wide filter (128 data
-    //    points or more) with a sum-of-least-squares line fitting approach to
-    //    tracking the long term drift.  This would take the place of the I
-    //    component in the current PID controller.  Also use a much more narrow
-    //    outlier-rejector filter (as described in #1) to drive a short term
-    //    correction factor similar to the P component of the PID controller.
-    assert(filter_wr_ < kFilterSize);
-    filter_data_[filter_wr_].local_time           = local_time;
-    filter_data_[filter_wr_].observed_common_time = observed_common;
-    filter_data_[filter_wr_].nominal_common_time  = nominal_common_time;
-    filter_data_[filter_wr_].rtt                  = rtt;
-    filter_data_[filter_wr_].point_used           = false;
-    uint32_t current_point = filter_wr_;
-    filter_wr_ = (filter_wr_ + 1) % kFilterSize;
-    if (!filter_wr_)
-        filter_full_ = true;
-
-    uint32_t scan_end = filter_full_ ? kFilterSize : filter_wr_;
-    uint32_t min_rtt = findMinRTTNdx(filter_data_, scan_end);
-    // We only use packets with low RTTs for control. If the packet RTT
-    // is less than the panic threshold, we can probably eat the jitter with the
-    // control loop. Otherwise, take the packet only if it better than all
-    // of the packets we have in the history. That way we try to track
-    // something, even if it is noisy.
-    if (current_point == min_rtt || rtt < control_thresh_) {
-        delta_f = delta = nominal_common_time - observed_common;
-
-        last_error_est_valid_ = true;
-        last_error_est_usec_ = delta;
-
-        // Compute the error then clamp to the panic threshold.  If we ever
-        // exceed this amt of error, its time to panic and reset the system.
-        // Given that the error in the measurement of the error could be as
-        // high as the RTT of the data point, we don't actually panic until
-        // the implied error (delta) is greater than the absolute panic
-        // threashold plus the RTT.  IOW - we don't panic until we are
-        // absoluely sure that our best case sync is worse than the absolute
-        // panic threshold.
-        int64_t effective_panic_thresh = panic_thresh_ + rtt;
-        if ((delta > effective_panic_thresh) ||
-            (delta < -effective_panic_thresh)) {
-            // PANIC!!!
-            reset_l(false, true);
-            return false;
-        }
-
-    } else {
-        // We do not have a good packet to look at, but we also do not want to
-        // free-run the clock at some crazy slew rate. So we guess the
-        // trajectory of the clock based on the last controller output and the
-        // estimated bias of our clock against the master.
-        // The net effect of this is that CO == CObias after some extended
-        // period of no feedback.
-        delta_f = last_delta_f_ - dT*(CO - CObias);
-        delta = delta_f;
-    }
-
-    // Velocity form PI control equation.
-    dCO = Kc * (1.0f + dT/Ti) * delta_f - Kc * last_delta_f_;
-    CO += dCO * Tf; // Filter CO by applying gain <1 here.
-
-    // Save error terms for later.
-    last_delta_f_ = delta_f;
-
-    // Clamp CO to +/- 100ppm.
-    if (CO < COmin)
-        CO = COmin;
-    else if (CO > COmax)
-        CO = COmax;
-
-    // Update the controller bias.
-    CObias = bias_Alpha * CO + (1.0f - bias_Alpha) * lastCObias;
-    lastCObias = CObias;
-
-    // Convert PPM to 16-bit int range. Add some guard band (-0.01) so we
-    // don't get fp weirdness.
-    tgt_correction = CO * 327.66;
-
-    // If there was a change in the amt of correction to use, update the
-    // system.
-    setTargetCorrection_l(tgt_correction);
-
-    LOG_TS("clock_loop %" PRId64 " %f %f %f %d\n", raw_delta, delta_f, CO, CObias, tgt_correction);
-
-#ifdef TIME_SERVICE_DEBUG
-    diag_thread_->pushDisciplineEvent(
-            local_time,
-            observed_common,
-            nominal_common_time,
-            tgt_correction,
-            rtt);
-#endif
-
-    return true;
-}
-
-int32_t ClockRecoveryLoop::getLastErrorEstimate() {
-    Mutex::Autolock lock(&lock_);
-
-    if (last_error_est_valid_)
-        return last_error_est_usec_;
-    else
-        return ICommonClock::kErrorEstimateUnknown;
-}
-
-void ClockRecoveryLoop::reset_l(bool position, bool frequency) {
-    assert(NULL != common_clock_);
-
-    if (position) {
-        common_clock_->resetBasis();
-        startup_filter_wr_ = 0;
-    }
-
-    if (frequency) {
-        last_error_est_valid_ = false;
-        last_error_est_usec_ = 0;
-        last_delta_f_ = 0.0;
-        CO = 0.0f;
-        lastCObias = CObias = 0.0f;
-        setTargetCorrection_l(0);
-        applySlew_l();
-    }
-
-    filter_wr_   = 0;
-    filter_full_ = false;
-}
-
-void ClockRecoveryLoop::setTargetCorrection_l(int32_t tgt) {
-    // When we make a change to the slew rate, we need to be careful to not
-    // change it too quickly as it can anger some HDMI sinks out there, notably
-    // some Sony panels from the 2010-2011 timeframe.  From experimenting with
-    // some of these sinks, it seems like swinging from one end of the range to
-    // another in less that 190mSec or so can start to cause trouble.  Adding in
-    // a hefty margin, we limit the system to a full range sweep in no less than
-    // 300mSec.
-    if (tgt_correction_ != tgt) {
-        int64_t now = local_clock_->getLocalTime();
-
-        tgt_correction_ = tgt;
-
-        // Set up the transformation to figure out what the slew should be at
-        // any given point in time in the future.
-        time_to_cur_slew_.a_zero = now;
-        time_to_cur_slew_.b_zero = cur_correction_;
-
-        // Make sure the sign of the slope is headed in the proper direction.
-        bool needs_increase = (cur_correction_ < tgt_correction_);
-        bool is_increasing  = (time_to_cur_slew_.a_to_b_numer > 0);
-        if (( needs_increase && !is_increasing) ||
-            (!needs_increase &&  is_increasing)) {
-            time_to_cur_slew_.a_to_b_numer = -time_to_cur_slew_.a_to_b_numer;
-        }
-
-        // Finally, figure out when the change will be finished and start the
-        // slew operation.
-        time_to_cur_slew_.doReverseTransform(tgt_correction_,
-                                             &slew_change_end_time_);
-
-        applySlew_l();
-    }
-}
-
-bool ClockRecoveryLoop::applySlew_l() {
-    bool ret = true;
-
-    // If cur == tgt, there is no ongoing sleq rate change and we are already
-    // finished.
-    if (cur_correction_ == tgt_correction_)
-        goto bailout;
-
-    if (local_clock_can_slew_) {
-        int64_t now = local_clock_->getLocalTime();
-        int64_t tmp;
-
-        if (now >= slew_change_end_time_) {
-            cur_correction_ = tgt_correction_;
-            next_slew_change_timeout_.setTimeout(-1);
-        } else {
-            time_to_cur_slew_.doForwardTransform(now, &tmp);
-
-            if (tmp > INT16_MAX)
-                cur_correction_ = INT16_MAX;
-            else if (tmp < INT16_MIN)
-                cur_correction_ = INT16_MIN;
-            else
-                cur_correction_ = static_cast<int16_t>(tmp);
-
-            next_slew_change_timeout_.setTimeout(kSlewChangeStepPeriod_mSec);
-            ret = false;
-        }
-
-        local_clock_->setLocalSlew(cur_correction_);
-    } else {
-        // Since we are not actually changing the rate of a HW clock, we don't
-        // need to worry to much about changing the slew rate so fast that we
-        // anger any downstream HDMI devices.
-        cur_correction_ = tgt_correction_;
-        next_slew_change_timeout_.setTimeout(-1);
-
-        // The SW clock recovery implemented by the common clock class expects
-        // values expressed in PPM. CO is in ppm.
-        common_clock_->setSlew(local_clock_->getLocalTime(), CO);
-    }
-
-bailout:
-    return ret;
-}
-
-int ClockRecoveryLoop::applyRateLimitedSlew() {
-    Mutex::Autolock lock(&lock_);
-
-    int ret = next_slew_change_timeout_.msecTillTimeout();
-    if (!ret) {
-        if (applySlew_l())
-            next_slew_change_timeout_.setTimeout(-1);
-        ret = next_slew_change_timeout_.msecTillTimeout();
-    }
-
-    return ret;
-}
-
-}  // namespace android
diff --git a/libs/common_time/clock_recovery.h b/libs/common_time/clock_recovery.h
deleted file mode 100644
index 8066a39..0000000
--- a/libs/common_time/clock_recovery.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#ifndef __CLOCK_RECOVERY_H__
-#define __CLOCK_RECOVERY_H__
-
-#include <stdint.h>
-#include <common_time/ICommonClock.h>
-#include <utils/threads.h>
-
-#include "LinearTransform.h"
-
-#ifdef TIME_SERVICE_DEBUG
-#include "diag_thread.h"
-#endif
-
-#include "utils.h"
-
-namespace android {
-
-class CommonClock;
-class LocalClock;
-
-class ClockRecoveryLoop {
-  public:
-     ClockRecoveryLoop(LocalClock* local_clock, CommonClock* common_clock);
-    ~ClockRecoveryLoop();
-
-    void reset(bool position, bool frequency);
-    bool pushDisciplineEvent(int64_t local_time,
-                             int64_t nominal_common_time,
-                             int64_t data_point_rtt);
-    int32_t getLastErrorEstimate();
-
-    // Applies the next step in any ongoing slew change operation.  Returns a
-    // timeout suitable for use with poll/select indicating the number of mSec
-    // until the next change should be applied.
-    int applyRateLimitedSlew();
-
-  private:
-
-    // Tuned using the "Good Gain" method.
-    // See:
-    // http://techteach.no/publications/books/dynamics_and_control/tuning_pid_controller.pdf
-
-    // Controller period (1Hz for now).
-    static const float dT;
-
-    // Controller gain, positive and unitless. Larger values converge faster,
-    // but can cause instability.
-    static const float Kc;
-
-    // Integral reset time. Smaller values cause loop to track faster, but can
-    // also cause instability.
-    static const float Ti;
-
-    // Controller output filter time constant. Range (0-1). Smaller values make
-    // output smoother, but slow convergence.
-    static const float Tf;
-
-    // Low-pass filter for bias tracker.
-    static const float bias_Fc; // HZ
-    static const float bias_RC; // Computed in constructor.
-    static const float bias_Alpha; // Computed inconstructor.
-
-    // The maximum allowed error (as indicated by a  pushDisciplineEvent) before
-    // we panic.
-    static const int64_t panic_thresh_;
-
-    // The maximum allowed error rtt time for packets to be used for control
-    // feedback, unless the packet is the best in recent memory.
-    static const int64_t control_thresh_;
-
-    typedef struct {
-        int64_t local_time;
-        int64_t observed_common_time;
-        int64_t nominal_common_time;
-        int64_t rtt;
-        bool point_used;
-    } DisciplineDataPoint;
-
-    static uint32_t findMinRTTNdx(DisciplineDataPoint* data, uint32_t count);
-
-    void reset_l(bool position, bool frequency);
-    void setTargetCorrection_l(int32_t tgt);
-    bool applySlew_l();
-
-    // The local clock HW abstraction we use as the basis for common time.
-    LocalClock* local_clock_;
-    bool local_clock_can_slew_;
-
-    // The common clock we end up controlling along with the lock used to
-    // serialize operations.
-    CommonClock* common_clock_;
-    Mutex lock_;
-
-    // parameters maintained while running and reset during a reset
-    // of the frequency correction.
-    bool    last_error_est_valid_;
-    int32_t last_error_est_usec_;
-    float last_delta_f_;
-    int32_t tgt_correction_;
-    int32_t cur_correction_;
-    LinearTransform time_to_cur_slew_;
-    int64_t slew_change_end_time_;
-    Timeout next_slew_change_timeout_;
-
-    // Contoller Output.
-    float CO;
-
-    // Bias tracking for trajectory estimation.
-    float CObias;
-    float lastCObias;
-
-    // Controller output bounds. The controller will not try to
-    // slew faster that +/-100ppm offset from center per interation.
-    static const float COmin;
-    static const float COmax;
-
-    // State kept for filtering the discipline data.
-    static const uint32_t kFilterSize = 16;
-    DisciplineDataPoint filter_data_[kFilterSize];
-    uint32_t filter_wr_;
-    bool filter_full_;
-
-    static const uint32_t kStartupFilterSize = 4;
-    DisciplineDataPoint startup_filter_data_[kStartupFilterSize];
-    uint32_t startup_filter_wr_;
-
-    // Minimum number of milliseconds over which we allow a full range change
-    // (from rail to rail) of the VCXO control signal.  This is the rate
-    // limiting factor which keeps us from changing the clock rate so fast that
-    // we get in trouble with certain HDMI sinks.
-    static const uint32_t kMinFullRangeSlewChange_mSec;
-
-    // How much time (in msec) to wait 
-    static const int kSlewChangeStepPeriod_mSec;
-
-#ifdef TIME_SERVICE_DEBUG
-    sp<DiagThread> diag_thread_;
-#endif
-};
-
-}  // namespace android
-
-#endif  // __CLOCK_RECOVERY_H__
diff --git a/libs/common_time/common_clock.cpp b/libs/common_time/common_clock.cpp
deleted file mode 100644
index aed52f1..0000000
--- a/libs/common_time/common_clock.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#define __STDC_LIMIT_MACROS
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <inttypes.h>
-#include <stdint.h>
-
-#include <utils/Errors.h>
-
-#include "common_clock.h"
-
-namespace android {
-
-CommonClock::CommonClock() {
-    cur_slew_        = 0;
-    cur_trans_valid_ = false;
-
-    cur_trans_.a_zero = 0;
-    cur_trans_.b_zero = 0;
-    cur_trans_.a_to_b_numer = local_to_common_freq_numer_ = 1;
-    cur_trans_.a_to_b_denom = local_to_common_freq_denom_ = 1;
-    duration_trans_ = cur_trans_;
-}
-
-bool CommonClock::init(uint64_t local_freq) {
-    Mutex::Autolock lock(&lock_);
-
-    if (!local_freq)
-        return false;
-
-    uint64_t numer = kCommonFreq;
-    uint64_t denom = local_freq;
-
-    LinearTransform::reduce(&numer, &denom);
-    if ((numer > UINT32_MAX) || (denom > UINT32_MAX)) {
-        ALOGE("Overflow in CommonClock::init while trying to reduce %" PRIu64 "/%" PRIu64,
-             kCommonFreq, local_freq);
-        return false;
-    }
-
-    cur_trans_.a_to_b_numer = local_to_common_freq_numer_ =
-        static_cast<uint32_t>(numer);
-    cur_trans_.a_to_b_denom = local_to_common_freq_denom_ =
-        static_cast<uint32_t>(denom);
-    duration_trans_ = cur_trans_;
-
-    return true;
-}
-
-status_t CommonClock::localToCommon(int64_t local, int64_t *common_out) const {
-    Mutex::Autolock lock(&lock_);
-
-    if (!cur_trans_valid_)
-        return INVALID_OPERATION;
-
-    if (!cur_trans_.doForwardTransform(local, common_out))
-        return INVALID_OPERATION;
-
-    return OK;
-}
-
-status_t CommonClock::commonToLocal(int64_t common, int64_t *local_out) const {
-    Mutex::Autolock lock(&lock_);
-
-    if (!cur_trans_valid_)
-        return INVALID_OPERATION;
-
-    if (!cur_trans_.doReverseTransform(common, local_out))
-        return INVALID_OPERATION;
-
-    return OK;
-}
-
-int64_t CommonClock::localDurationToCommonDuration(int64_t localDur) const {
-    int64_t ret;
-    duration_trans_.doForwardTransform(localDur, &ret);
-    return ret;
-}
-
-void CommonClock::setBasis(int64_t local, int64_t common) {
-    Mutex::Autolock lock(&lock_);
-
-    cur_trans_.a_zero = local;
-    cur_trans_.b_zero = common;
-    cur_trans_valid_ = true;
-}
-
-void CommonClock::resetBasis() {
-    Mutex::Autolock lock(&lock_);
-
-    cur_trans_.a_zero = 0;
-    cur_trans_.b_zero = 0;
-    cur_trans_valid_ = false;
-}
-
-status_t CommonClock::setSlew(int64_t change_time, int32_t ppm) {
-    Mutex::Autolock lock(&lock_);
-
-    int64_t new_local_basis;
-    int64_t new_common_basis;
-
-    if (cur_trans_valid_) {
-        new_local_basis = change_time;
-        if (!cur_trans_.doForwardTransform(change_time, &new_common_basis)) {
-            ALOGE("Overflow when attempting to set slew rate to %d", ppm);
-            return INVALID_OPERATION;
-        }
-    } else {
-        new_local_basis = 0;
-        new_common_basis = 0;
-    }
-
-    cur_slew_ = ppm;
-    uint32_t n1 = local_to_common_freq_numer_;
-    uint32_t n2 = 1000000 + cur_slew_;
-
-    uint32_t d1 = local_to_common_freq_denom_;
-    uint32_t d2 = 1000000;
-
-    // n1/d1 has already been reduced, no need to do so here.
-    LinearTransform::reduce(&n1, &d2);
-    LinearTransform::reduce(&n2, &d1);
-    LinearTransform::reduce(&n2, &d2);
-
-    cur_trans_.a_zero = new_local_basis;
-    cur_trans_.b_zero = new_common_basis;
-    cur_trans_.a_to_b_numer = n1 * n2;
-    cur_trans_.a_to_b_denom = d1 * d2;
-
-    return OK;
-}
-
-}  // namespace android
diff --git a/libs/common_time/common_clock.h b/libs/common_time/common_clock.h
deleted file mode 100644
index 5e4e5f5..0000000
--- a/libs/common_time/common_clock.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef __COMMON_CLOCK_H__
-#define __COMMON_CLOCK_H__
-
-#include <stdint.h>
-
-#include <utils/Errors.h>
-#include <utils/threads.h>
-
-#include "LinearTransform.h"
-
-namespace android {
-
-class CommonClock {
-  public:
-    CommonClock();
-
-    bool      init(uint64_t local_freq);
-
-    status_t  localToCommon(int64_t local, int64_t *common_out) const;
-    status_t  commonToLocal(int64_t common, int64_t *local_out) const;
-    int64_t   localDurationToCommonDuration(int64_t localDur) const;
-    uint64_t  getCommonFreq() const { return kCommonFreq; }
-    bool      isValid() const { return cur_trans_valid_; }
-    status_t  setSlew(int64_t change_time, int32_t ppm);
-    void      setBasis(int64_t local, int64_t common);
-    void      resetBasis();
-  private:
-    mutable Mutex lock_;
-
-    int32_t  cur_slew_;
-    uint32_t local_to_common_freq_numer_;
-    uint32_t local_to_common_freq_denom_;
-
-    LinearTransform duration_trans_;
-    LinearTransform cur_trans_;
-    bool cur_trans_valid_;
-
-    static const uint64_t kCommonFreq = 1000000ull;
-};
-
-}  // namespace android
-#endif  // __COMMON_CLOCK_H__
diff --git a/libs/common_time/common_clock_service.cpp b/libs/common_time/common_clock_service.cpp
deleted file mode 100644
index 592ab1d..0000000
--- a/libs/common_time/common_clock_service.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#include <common_time/local_clock.h>
-#include <utils/String8.h>
-
-#include "common_clock_service.h"
-#include "common_clock.h"
-#include "common_time_server.h"
-
-namespace android {
-
-sp<CommonClockService> CommonClockService::instantiate(
-        CommonTimeServer& timeServer) {
-    sp<CommonClockService> tcc = new CommonClockService(timeServer);
-    if (tcc == NULL)
-        return NULL;
-
-    defaultServiceManager()->addService(ICommonClock::kServiceName, tcc);
-    return tcc;
-}
-
-status_t CommonClockService::dump(int fd, const Vector<String16>& args) {
-    Mutex::Autolock lock(mRegistrationLock);
-    return mTimeServer.dumpClockInterface(fd, args, mListeners.size());
-}
-
-status_t CommonClockService::isCommonTimeValid(bool* valid,
-                                               uint32_t* timelineID) {
-    return mTimeServer.isCommonTimeValid(valid, timelineID);
-}
-
-status_t CommonClockService::commonTimeToLocalTime(int64_t  commonTime,
-                                                   int64_t* localTime) {
-    return mTimeServer.getCommonClock().commonToLocal(commonTime, localTime);
-}
-
-status_t CommonClockService::localTimeToCommonTime(int64_t  localTime,
-                                                   int64_t* commonTime) {
-    return mTimeServer.getCommonClock().localToCommon(localTime, commonTime);
-}
-
-status_t CommonClockService::getCommonTime(int64_t* commonTime) {
-    return localTimeToCommonTime(mTimeServer.getLocalClock().getLocalTime(), commonTime);
-}
-
-status_t CommonClockService::getCommonFreq(uint64_t* freq) {
-    *freq = mTimeServer.getCommonClock().getCommonFreq();
-    return OK;
-}
-
-status_t CommonClockService::getLocalTime(int64_t* localTime) {
-    *localTime = mTimeServer.getLocalClock().getLocalTime();
-    return OK;
-}
-
-status_t CommonClockService::getLocalFreq(uint64_t* freq) {
-    *freq = mTimeServer.getLocalClock().getLocalFreq();
-    return OK;
-}
-
-status_t CommonClockService::getEstimatedError(int32_t* estimate) {
-    *estimate = mTimeServer.getEstimatedError();
-    return OK;
-}
-
-status_t CommonClockService::getTimelineID(uint64_t* id) {
-    *id = mTimeServer.getTimelineID();
-    return OK;
-}
-
-status_t CommonClockService::getState(State* state) {
-    *state = mTimeServer.getState();
-    return OK;
-}
-
-status_t CommonClockService::getMasterAddr(struct sockaddr_storage* addr) {
-    return mTimeServer.getMasterAddr(addr);
-}
-
-status_t CommonClockService::registerListener(
-        const sp<ICommonClockListener>& listener) {
-    Mutex::Autolock lock(mRegistrationLock);
-
-    {   // scoping for autolock pattern
-        Mutex::Autolock lock(mCallbackLock);
-        // check whether this is a duplicate
-        for (size_t i = 0; i < mListeners.size(); i++) {
-            if (IInterface::asBinder(mListeners[i]) == IInterface::asBinder(listener))
-                return ALREADY_EXISTS;
-        }
-    }
-
-    mListeners.add(listener);
-    mTimeServer.reevaluateAutoDisableState(0 != mListeners.size());
-    return IInterface::asBinder(listener)->linkToDeath(this);
-}
-
-status_t CommonClockService::unregisterListener(
-        const sp<ICommonClockListener>& listener) {
-    Mutex::Autolock lock(mRegistrationLock);
-    status_t ret_val = NAME_NOT_FOUND;
-
-    {   // scoping for autolock pattern
-        Mutex::Autolock lock(mCallbackLock);
-        for (size_t i = 0; i < mListeners.size(); i++) {
-            if (IInterface::asBinder(mListeners[i]) == IInterface::asBinder(listener)) {
-                IInterface::asBinder(mListeners[i])->unlinkToDeath(this);
-                mListeners.removeAt(i);
-                ret_val = OK;
-                break;
-            }
-        }
-    }
-
-    mTimeServer.reevaluateAutoDisableState(0 != mListeners.size());
-    return ret_val;
-}
-
-void CommonClockService::binderDied(const wp<IBinder>& who) {
-    Mutex::Autolock lock(mRegistrationLock);
-
-    {   // scoping for autolock pattern
-        Mutex::Autolock lock(mCallbackLock);
-        for (size_t i = 0; i < mListeners.size(); i++) {
-            if (IInterface::asBinder(mListeners[i]) == who) {
-                mListeners.removeAt(i);
-                break;
-            }
-        }
-    }
-
-    mTimeServer.reevaluateAutoDisableState(0 != mListeners.size());
-}
-
-void CommonClockService::notifyOnTimelineChanged(uint64_t timelineID) {
-    Mutex::Autolock lock(mCallbackLock);
-
-    for (size_t i = 0; i < mListeners.size(); i++) {
-        mListeners[i]->onTimelineChanged(timelineID);
-    }
-}
-
-}; // namespace android
diff --git a/libs/common_time/common_clock_service.h b/libs/common_time/common_clock_service.h
deleted file mode 100644
index aea507e..0000000
--- a/libs/common_time/common_clock_service.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#ifndef ANDROID_COMMON_CLOCK_SERVICE_H
-#define ANDROID_COMMON_CLOCK_SERVICE_H
-
-#include <sys/socket.h>
-#include <common_time/ICommonClock.h>
-
-namespace android {
-
-class CommonTimeServer;
-
-class CommonClockService : public BnCommonClock,
-                           public android::IBinder::DeathRecipient {
-  public:
-    static sp<CommonClockService> instantiate(CommonTimeServer& timeServer);
-
-    virtual status_t dump(int fd, const Vector<String16>& args);
-
-    virtual status_t isCommonTimeValid(bool* valid, uint32_t *timelineID);
-    virtual status_t commonTimeToLocalTime(int64_t  common_time,
-                                           int64_t* local_time);
-    virtual status_t localTimeToCommonTime(int64_t  local_time,
-                                           int64_t* common_time);
-    virtual status_t getCommonTime(int64_t* common_time);
-    virtual status_t getCommonFreq(uint64_t* freq);
-    virtual status_t getLocalTime(int64_t* local_time);
-    virtual status_t getLocalFreq(uint64_t* freq);
-    virtual status_t getEstimatedError(int32_t* estimate);
-    virtual status_t getTimelineID(uint64_t* id);
-    virtual status_t getState(ICommonClock::State* state);
-    virtual status_t getMasterAddr(struct sockaddr_storage* addr);
-
-    virtual status_t registerListener(
-            const sp<ICommonClockListener>& listener);
-    virtual status_t unregisterListener(
-            const sp<ICommonClockListener>& listener);
-
-    void notifyOnTimelineChanged(uint64_t timelineID);
-
-  private:
-    explicit CommonClockService(CommonTimeServer& timeServer)
-        : mTimeServer(timeServer) { };
-
-    virtual void binderDied(const wp<IBinder>& who);
-
-    CommonTimeServer& mTimeServer;
-
-    // locks used to synchronize access to the list of registered listeners.
-    // The callback lock is held whenever the list is used to perform callbacks
-    // or while the list is being modified.  The registration lock used to
-    // serialize access across registerListener, unregisterListener, and
-    // binderDied.
-    //
-    // The reason for two locks is that registerListener, unregisterListener,
-    // and binderDied each call into the core service and obtain the core
-    // service thread lock when they call reevaluateAutoDisableState.  The core
-    // service thread obtains the main thread lock whenever its thread is
-    // running, and sometimes needs to call notifyOnTimelineChanged which then
-    // obtains the callback lock.  If callers of registration functions were
-    // holding the callback lock when they called into the core service, we
-    // would have a classic A/B, B/A ordering deadlock.  To avoid this, the
-    // registration functions hold the registration lock for the duration of
-    // their call, but hold the callback lock only while they mutate the list.
-    // This way, the list's size cannot change (because of the registration
-    // lock) during the call into reevaluateAutoDisableState, but the core work
-    // thread can still safely call notifyOnTimelineChanged while holding the
-    // main thread lock.
-    Mutex mCallbackLock;
-    Mutex mRegistrationLock;
-
-    Vector<sp<ICommonClockListener> > mListeners;
-};
-
-};  // namespace android
-
-#endif  // ANDROID_COMMON_CLOCK_SERVICE_H
diff --git a/libs/common_time/common_time_config_service.cpp b/libs/common_time/common_time_config_service.cpp
deleted file mode 100644
index 9585618..0000000
--- a/libs/common_time/common_time_config_service.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#include <utils/String8.h>
-
-#include "common_time_config_service.h"
-#include "common_time_server.h"
-
-namespace android {
-
-sp<CommonTimeConfigService> CommonTimeConfigService::instantiate(
-        CommonTimeServer& timeServer) {
-    sp<CommonTimeConfigService> ctcs = new CommonTimeConfigService(timeServer);
-    if (ctcs == NULL)
-        return NULL;
-
-    defaultServiceManager()->addService(ICommonTimeConfig::kServiceName, ctcs);
-    return ctcs;
-}
-
-status_t CommonTimeConfigService::dump(int fd, const Vector<String16>& args) {
-    return mTimeServer.dumpConfigInterface(fd, args);
-}
-
-status_t CommonTimeConfigService::getMasterElectionPriority(uint8_t *priority) {
-    return mTimeServer.getMasterElectionPriority(priority);
-}
-
-status_t CommonTimeConfigService::setMasterElectionPriority(uint8_t priority) {
-    return mTimeServer.setMasterElectionPriority(priority);
-}
-
-status_t CommonTimeConfigService::getMasterElectionEndpoint(
-        struct sockaddr_storage *addr) {
-    return mTimeServer.getMasterElectionEndpoint(addr);
-}
-
-status_t CommonTimeConfigService::setMasterElectionEndpoint(
-        const struct sockaddr_storage *addr) {
-    return mTimeServer.setMasterElectionEndpoint(addr);
-}
-
-status_t CommonTimeConfigService::getMasterElectionGroupId(uint64_t *id) {
-    return mTimeServer.getMasterElectionGroupId(id);
-}
-
-status_t CommonTimeConfigService::setMasterElectionGroupId(uint64_t id) {
-    return mTimeServer.setMasterElectionGroupId(id);
-}
-
-status_t CommonTimeConfigService::getInterfaceBinding(String16& ifaceName) {
-    String8 tmp;
-    status_t ret = mTimeServer.getInterfaceBinding(tmp);
-    ifaceName = String16(tmp);
-    return ret;
-}
-
-status_t CommonTimeConfigService::setInterfaceBinding(const String16& ifaceName) {
-    String8 tmp(ifaceName);
-    return mTimeServer.setInterfaceBinding(tmp);
-}
-
-status_t CommonTimeConfigService::getMasterAnnounceInterval(int *interval) {
-    return mTimeServer.getMasterAnnounceInterval(interval);
-}
-
-status_t CommonTimeConfigService::setMasterAnnounceInterval(int interval) {
-    return mTimeServer.setMasterAnnounceInterval(interval);
-}
-
-status_t CommonTimeConfigService::getClientSyncInterval(int *interval) {
-    return mTimeServer.getClientSyncInterval(interval);
-}
-
-status_t CommonTimeConfigService::setClientSyncInterval(int interval) {
-    return mTimeServer.setClientSyncInterval(interval);
-}
-
-status_t CommonTimeConfigService::getPanicThreshold(int *threshold) {
-    return mTimeServer.getPanicThreshold(threshold);
-}
-
-status_t CommonTimeConfigService::setPanicThreshold(int threshold) {
-    return mTimeServer.setPanicThreshold(threshold);
-}
-
-status_t CommonTimeConfigService::getAutoDisable(bool *autoDisable) {
-    return mTimeServer.getAutoDisable(autoDisable);
-}
-
-status_t CommonTimeConfigService::setAutoDisable(bool autoDisable) {
-    return mTimeServer.setAutoDisable(autoDisable);
-}
-
-status_t CommonTimeConfigService::forceNetworklessMasterMode() {
-    return mTimeServer.forceNetworklessMasterMode();
-}
-
-}; // namespace android
diff --git a/libs/common_time/common_time_config_service.h b/libs/common_time/common_time_config_service.h
deleted file mode 100644
index 23abb1a..0000000
--- a/libs/common_time/common_time_config_service.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* * Copyright (C) 2012 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.
- */
-
-#ifndef ANDROID_COMMON_TIME_CONFIG_SERVICE_H
-#define ANDROID_COMMON_TIME_CONFIG_SERVICE_H
-
-#include <sys/socket.h>
-#include <common_time/ICommonTimeConfig.h>
-
-namespace android {
-
-class String16;
-class CommonTimeServer;
-
-class CommonTimeConfigService : public BnCommonTimeConfig {
-  public:
-    static sp<CommonTimeConfigService> instantiate(CommonTimeServer& timeServer);
-
-    virtual status_t dump(int fd, const Vector<String16>& args);
-
-    virtual status_t getMasterElectionPriority(uint8_t *priority);
-    virtual status_t setMasterElectionPriority(uint8_t priority);
-    virtual status_t getMasterElectionEndpoint(struct sockaddr_storage *addr);
-    virtual status_t setMasterElectionEndpoint(const struct sockaddr_storage *addr);
-    virtual status_t getMasterElectionGroupId(uint64_t *id);
-    virtual status_t setMasterElectionGroupId(uint64_t id);
-    virtual status_t getInterfaceBinding(String16& ifaceName);
-    virtual status_t setInterfaceBinding(const String16& ifaceName);
-    virtual status_t getMasterAnnounceInterval(int *interval);
-    virtual status_t setMasterAnnounceInterval(int interval);
-    virtual status_t getClientSyncInterval(int *interval);
-    virtual status_t setClientSyncInterval(int interval);
-    virtual status_t getPanicThreshold(int *threshold);
-    virtual status_t setPanicThreshold(int threshold);
-    virtual status_t getAutoDisable(bool *autoDisable);
-    virtual status_t setAutoDisable(bool autoDisable);
-    virtual status_t forceNetworklessMasterMode();
-
-  private:
-    explicit CommonTimeConfigService(CommonTimeServer& timeServer)
-        : mTimeServer(timeServer) { }
-    CommonTimeServer& mTimeServer;
-
-};
-
-};  // namespace android
-
-#endif  // ANDROID_COMMON_TIME_CONFIG_SERVICE_H
diff --git a/libs/common_time/common_time_server.cpp b/libs/common_time/common_time_server.cpp
deleted file mode 100644
index b1495ef..0000000
--- a/libs/common_time/common_time_server.cpp
+++ /dev/null
@@ -1,1507 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-/*
- * A service that exchanges time synchronization information between
- * a master that defines a timeline and clients that follow the timeline.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <arpa/inet.h>
-#include <assert.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <linux/if_ether.h>
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <netinet/ip.h>
-#include <poll.h>
-#include <stdio.h>
-#include <sys/eventfd.h>
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <common_time/local_clock.h>
-#include <binder/IPCThreadState.h>
-#include <binder/ProcessState.h>
-#include <utils/Timers.h>
-
-#include "common_clock_service.h"
-#include "common_time_config_service.h"
-#include "common_time_server.h"
-#include "common_time_server_packets.h"
-#include "clock_recovery.h"
-#include "common_clock.h"
-
-#define MAX_INT ((int)0x7FFFFFFF)
-
-namespace android {
-
-const char*    CommonTimeServer::kDefaultMasterElectionAddr = "255.255.255.255";
-const uint16_t CommonTimeServer::kDefaultMasterElectionPort = 8886;
-const uint64_t CommonTimeServer::kDefaultSyncGroupID = 1;
-const uint8_t  CommonTimeServer::kDefaultMasterPriority = 1;
-const uint32_t CommonTimeServer::kDefaultMasterAnnounceIntervalMs = 10000;
-const uint32_t CommonTimeServer::kDefaultSyncRequestIntervalMs = 1000;
-const uint32_t CommonTimeServer::kDefaultPanicThresholdUsec = 50000;
-const bool     CommonTimeServer::kDefaultAutoDisable = true;
-const int      CommonTimeServer::kSetupRetryTimeoutMs = 30000;
-const int64_t  CommonTimeServer::kNoGoodDataPanicThresholdUsec = 600000000ll;
-const uint32_t CommonTimeServer::kRTTDiscardPanicThreshMultiplier = 5;
-
-// timeout value representing an infinite timeout
-const int CommonTimeServer::kInfiniteTimeout = -1;
-
-/*** Initial state constants ***/
-
-// number of WhoIsMaster attempts sent before giving up
-const int CommonTimeServer::kInitial_NumWhoIsMasterRetries = 6;
-
-// timeout used when waiting for a response to a WhoIsMaster request
-const int CommonTimeServer::kInitial_WhoIsMasterTimeoutMs = 500;
-
-/*** Client state constants ***/
-
-// number of sync requests that can fail before a client assumes its master
-// is dead
-const int CommonTimeServer::kClient_NumSyncRequestRetries = 10;
-
-/*** Master state constants ***/
-
-/*** Ronin state constants ***/
-
-// number of WhoIsMaster attempts sent before declaring ourselves master
-const int CommonTimeServer::kRonin_NumWhoIsMasterRetries = 20;
-
-// timeout used when waiting for a response to a WhoIsMaster request
-const int CommonTimeServer::kRonin_WhoIsMasterTimeoutMs = 500;
-
-/*** WaitForElection state constants ***/
-
-// how long do we wait for an announcement from a master before
-// trying another election?
-const int CommonTimeServer::kWaitForElection_TimeoutMs = 12500;
-
-CommonTimeServer::CommonTimeServer()
-    : Thread(false)
-    , mState(ICommonClock::STATE_INITIAL)
-    , mClockRecovery(&mLocalClock, &mCommonClock)
-    , mSocket(-1)
-    , mLastPacketRxLocalTime(0)
-    , mTimelineID(ICommonClock::kInvalidTimelineID)
-    , mClockSynced(false)
-    , mCommonClockHasClients(false)
-    , mStateChangeLog("Recent State Change Events", 30)
-    , mElectionLog("Recent Master Election Traffic", 30)
-    , mBadPktLog("Recent Bad Packet RX Info", 8)
-    , mInitial_WhoIsMasterRequestTimeouts(0)
-    , mClient_MasterDeviceID(0)
-    , mClient_MasterDevicePriority(0)
-    , mRonin_WhoIsMasterRequestTimeouts(0) {
-    // zero out sync stats
-    resetSyncStats();
-
-    // Setup the master election endpoint to use the default.
-    struct sockaddr_in* meep =
-        reinterpret_cast<struct sockaddr_in*>(&mMasterElectionEP);
-    memset(&mMasterElectionEP, 0, sizeof(mMasterElectionEP));
-    inet_aton(kDefaultMasterElectionAddr, &meep->sin_addr);
-    meep->sin_family = AF_INET;
-    meep->sin_port   = htons(kDefaultMasterElectionPort);
-
-    // Zero out the master endpoint.
-    memset(&mMasterEP, 0, sizeof(mMasterEP));
-    mMasterEPValid    = false;
-    mBindIfaceValid   = false;
-    setForceLowPriority(false);
-
-    // Set all remaining configuration parameters to their defaults.
-    mDeviceID                 = 0;
-    mSyncGroupID              = kDefaultSyncGroupID;
-    mMasterPriority           = kDefaultMasterPriority;
-    mMasterAnnounceIntervalMs = kDefaultMasterAnnounceIntervalMs;
-    mSyncRequestIntervalMs    = kDefaultSyncRequestIntervalMs;
-    mPanicThresholdUsec       = kDefaultPanicThresholdUsec;
-    mAutoDisable              = kDefaultAutoDisable;
-
-    // Create the eventfd we will use to signal our thread to wake up when
-    // needed.
-    mWakeupThreadFD = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
-
-    // seed the random number generator (used to generated timeline IDs)
-    srand48(static_cast<unsigned int>(systemTime()));
-}
-
-CommonTimeServer::~CommonTimeServer() {
-    shutdownThread();
-
-    // No need to grab the lock here.  We are in the destructor; if the the user
-    // has a thread in any of the APIs while the destructor is being called,
-    // there is a threading problem a the application level we cannot reasonably
-    // do anything about.
-    cleanupSocket_l();
-
-    if (mWakeupThreadFD >= 0) {
-        close(mWakeupThreadFD);
-        mWakeupThreadFD = -1;
-    }
-}
-
-bool CommonTimeServer::startServices() {
-    // start the ICommonClock service
-    mICommonClock = CommonClockService::instantiate(*this);
-    if (mICommonClock == NULL)
-        return false;
-
-    // start the ICommonTimeConfig service
-    mICommonTimeConfig = CommonTimeConfigService::instantiate(*this);
-    if (mICommonTimeConfig == NULL)
-        return false;
-
-    return true;
-}
-
-bool CommonTimeServer::threadLoop() {
-    // Register our service interfaces.
-    if (!startServices())
-        return false;
-
-    // Hold the lock while we are in the main thread loop.  It will release the
-    // lock when it blocks, and hold the lock at all other times.
-    mLock.lock();
-    runStateMachine_l();
-    mLock.unlock();
-
-    IPCThreadState::self()->stopProcess();
-    return false;
-}
-
-bool CommonTimeServer::runStateMachine_l() {
-    if (!mLocalClock.initCheck())
-        return false;
-
-    if (!mCommonClock.init(mLocalClock.getLocalFreq()))
-        return false;
-
-    // Enter the initial state.
-    becomeInitial("startup");
-
-    // run the state machine
-    while (!exitPending()) {
-        struct pollfd pfds[2];
-        int rc, timeout;
-        int eventCnt = 0;
-        int64_t wakeupTime;
-        uint32_t t1, t2;
-        bool needHandleTimeout = false;
-
-        // We are always interested in our wakeup FD.
-        pfds[eventCnt].fd      = mWakeupThreadFD;
-        pfds[eventCnt].events  = POLLIN;
-        pfds[eventCnt].revents = 0;
-        eventCnt++;
-
-        // If we have a valid socket, then we are interested in what it has to
-        // say as well.
-        if (mSocket >= 0) {
-            pfds[eventCnt].fd      = mSocket;
-            pfds[eventCnt].events  = POLLIN;
-            pfds[eventCnt].revents = 0;
-            eventCnt++;
-        }
-
-        t1 = static_cast<uint32_t>(mCurTimeout.msecTillTimeout());
-        t2 = static_cast<uint32_t>(mClockRecovery.applyRateLimitedSlew());
-        timeout = static_cast<int>(t1 < t2 ? t1 : t2);
-
-        // Note, we were holding mLock when this function was called.  We
-        // release it only while we are blocking and hold it at all other times.
-        mLock.unlock();
-        rc          = poll(pfds, eventCnt, timeout);
-        wakeupTime  = mLocalClock.getLocalTime();
-        mLock.lock();
-
-        // Is it time to shutdown?  If so, don't hesitate... just do it.
-        if (exitPending())
-            break;
-
-        // Did the poll fail?  This should never happen and is fatal if it does.
-        if (rc < 0) {
-            ALOGE("%s:%d poll failed", __PRETTY_FUNCTION__, __LINE__);
-            return false;
-        }
-
-        if (rc == 0) {
-            needHandleTimeout = !mCurTimeout.msecTillTimeout();
-            if (needHandleTimeout)
-                mCurTimeout.setTimeout(kInfiniteTimeout);
-        }
-
-        // Were we woken up on purpose?  If so, clear the eventfd with a read.
-        if (pfds[0].revents)
-            clearPendingWakeupEvents_l();
-
-        // Is out bind address dirty?  If so, clean up our socket (if any).
-        // Alternatively, do we have an active socket but should be auto
-        // disabled?  If so, release the socket and enter the proper sync state.
-        bool droppedSocket = false;
-        if (mBindIfaceDirty || ((mSocket >= 0) && shouldAutoDisable())) {
-            cleanupSocket_l();
-            mBindIfaceDirty = false;
-            droppedSocket = true;
-        }
-
-        // Do we not have a socket but should have one?  If so, try to set one
-        // up.
-        if ((mSocket < 0) && mBindIfaceValid && !shouldAutoDisable()) {
-            if (setupSocket_l()) {
-                // Success!  We are now joining a new network (either coming
-                // from no network, or coming from a potentially different
-                // network).  Force our priority to be lower so that we defer to
-                // any other masters which may already be on the network we are
-                // joining.  Later, when we enter either the client or the
-                // master state, we will clear this flag and go back to our
-                // normal election priority.
-                setForceLowPriority(true);
-                switch (mState) {
-                    // If we were in initial (whether we had a immediately
-                    // before this network or not) we want to simply reset the
-                    // system and start again.  Forcing a transition from
-                    // INITIAL to INITIAL should do the job.
-                    case CommonClockService::STATE_INITIAL:
-                        becomeInitial("bound interface");
-                        break;
-
-                    // If we were in the master state, then either we were the
-                    // master in a no-network situation, or we were the master
-                    // of a different network and have moved to a new interface.
-                    // In either case, immediately transition to Ronin at low
-                    // priority.  If there is no one in the network we just
-                    // joined, we will become master soon enough.  If there is,
-                    // we want to be certain to defer master status to the
-                    // existing timeline currently running on the network.
-                    //
-                    case CommonClockService::STATE_MASTER:
-                        becomeRonin("leaving networkless mode");
-                        break;
-
-                    // If we were in any other state (CLIENT, RONIN, or
-                    // WAIT_FOR_ELECTION) then we must be moving from one
-                    // network to another.  We have lost our old master;
-                    // transition to RONIN in an attempt to find a new master.
-                    // If there are none out there, we will just assume
-                    // responsibility for the timeline we used to be a client
-                    // of.
-                    default:
-                        becomeRonin("bound interface");
-                        break;
-                }
-            } else {
-                // That's odd... we failed to set up our socket.  This could be
-                // due to some transient network change which will work itself
-                // out shortly; schedule a retry attempt in the near future.
-                mCurTimeout.setTimeout(kSetupRetryTimeoutMs);
-            }
-
-            // One way or the other, we don't have any data to process at this
-            // point (since we just tried to bulid a new socket).  Loop back
-            // around and wait for the next thing to do.
-            continue;
-        } else if (droppedSocket) {
-            // We just lost our socket, and for whatever reason (either no
-            // config, or auto disable engaged) we are not supposed to rebuild
-            // one at this time.  We are not going to rebuild our socket until
-            // something about our config/auto-disabled status changes, so we
-            // are basically in network-less mode.  If we are already in either
-            // INITIAL or MASTER, just stay there until something changes.  If
-            // we are in any other state (CLIENT, RONIN or WAIT_FOR_ELECTION),
-            // then transition to either INITIAL or MASTER depending on whether
-            // or not our timeline is valid.
-            mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-                    "Entering networkless mode interface is %s, "
-                    "shouldAutoDisable = %s",
-                    mBindIfaceValid ? "valid" : "invalid",
-                    shouldAutoDisable() ? "true" : "false");
-            if ((mState != ICommonClock::STATE_INITIAL) &&
-                (mState != ICommonClock::STATE_MASTER)) {
-                if (mTimelineID == ICommonClock::kInvalidTimelineID)
-                    becomeInitial("network-less mode");
-                else
-                    becomeMaster("network-less mode");
-            }
-
-            continue;
-        }
-
-        // Time to handle the timeouts?
-        if (needHandleTimeout) {
-            if (!handleTimeout())
-                ALOGE("handleTimeout failed");
-            continue;
-        }
-
-        // Does our socket have data for us (assuming we still have one, we
-        // may have RXed a packet at the same time as a config change telling us
-        // to shut our socket down)?  If so, process its data.
-        if ((mSocket >= 0) && (eventCnt > 1) && (pfds[1].revents)) {
-            mLastPacketRxLocalTime = wakeupTime;
-            if (!handlePacket())
-                ALOGE("handlePacket failed");
-        }
-    }
-
-    cleanupSocket_l();
-    return true;
-}
-
-void CommonTimeServer::clearPendingWakeupEvents_l() {
-    int64_t tmp;
-    read(mWakeupThreadFD, &tmp, sizeof(tmp));
-}
-
-void CommonTimeServer::wakeupThread_l() {
-    int64_t tmp = 1;
-    write(mWakeupThreadFD, &tmp, sizeof(tmp));
-}
-
-void CommonTimeServer::cleanupSocket_l() {
-    if (mSocket >= 0) {
-        close(mSocket);
-        mSocket = -1;
-    }
-}
-
-void CommonTimeServer::shutdownThread() {
-    // Flag the work thread for shutdown.
-    this->requestExit();
-
-    // Signal the thread in case its sleeping.
-    mLock.lock();
-    wakeupThread_l();
-    mLock.unlock();
-
-    // Wait for the thread to exit.
-    this->join();
-}
-
-bool CommonTimeServer::setupSocket_l() {
-    int rc;
-    bool ret_val = false;
-    struct sockaddr_in* ipv4_addr = NULL;
-    char masterElectionEPStr[64];
-    const int one = 1;
-
-    // This should never be needed, but if we happened to have an old socket
-    // lying around, be sure to not leak it before proceeding.
-    cleanupSocket_l();
-
-    // If we don't have a valid endpoint to bind to, then how did we get here in
-    // the first place?  Regardless, we know that we are going to fail to bind,
-    // so don't even try.
-    if (!mBindIfaceValid)
-        return false;
-
-    sockaddrToString(mMasterElectionEP, true, masterElectionEPStr,
-                     sizeof(masterElectionEPStr));
-    mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-                        "Building socket :: bind = %s master election = %s",
-                        mBindIface.string(), masterElectionEPStr);
-
-    // TODO: add proper support for IPv6.  Right now, we block IPv6 addresses at
-    // the configuration interface level.
-    if (AF_INET != mMasterElectionEP.ss_family) {
-        mStateChangeLog.log(ANDROID_LOG_WARN, LOG_TAG,
-                            "TODO: add proper IPv6 support");
-        goto bailout;
-    }
-
-    // open a UDP socket for the timeline serivce
-    mSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-    if (mSocket < 0) {
-        mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                            "Failed to create socket (errno = %d)", errno);
-        goto bailout;
-    }
-
-    // Bind to the selected interface using Linux's spiffy SO_BINDTODEVICE.
-    struct ifreq ifr;
-    memset(&ifr, 0, sizeof(ifr));
-    snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s", mBindIface.string());
-    ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = 0;
-    rc = setsockopt(mSocket, SOL_SOCKET, SO_BINDTODEVICE,
-                    (void *)&ifr, sizeof(ifr));
-    if (rc) {
-        mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                            "Failed to bind socket at to interface %s "
-                            "(errno = %d)", ifr.ifr_name, errno);
-        goto bailout;
-    }
-
-    // Bind our socket to INADDR_ANY and the master election port.  The
-    // interface binding we made using SO_BINDTODEVICE should limit us to
-    // traffic only on the interface we are interested in.  We need to bind to
-    // INADDR_ANY and the specific master election port in order to be able to
-    // receive both unicast traffic and master election multicast traffic with
-    // just a single socket.
-    struct sockaddr_in bindAddr;
-    ipv4_addr = reinterpret_cast<struct sockaddr_in*>(&mMasterElectionEP);
-    memcpy(&bindAddr, ipv4_addr, sizeof(bindAddr));
-    bindAddr.sin_addr.s_addr = INADDR_ANY;
-    rc = bind(mSocket,
-              reinterpret_cast<const sockaddr *>(&bindAddr),
-              sizeof(bindAddr));
-    if (rc) {
-        mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                            "Failed to bind socket to port %hu (errno = %d)",
-                            ntohs(bindAddr.sin_port), errno);
-        goto bailout;
-    }
-
-    if (0xE0000000 == (ntohl(ipv4_addr->sin_addr.s_addr) & 0xF0000000)) {
-        // If our master election endpoint is a multicast address, be sure to join
-        // the multicast group.
-        struct ip_mreq mreq;
-        mreq.imr_multiaddr = ipv4_addr->sin_addr;
-        mreq.imr_interface.s_addr = htonl(INADDR_ANY);
-        rc = setsockopt(mSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP,
-                        &mreq, sizeof(mreq));
-        if (rc == -1) {
-            ALOGE("Failed to join multicast group at %s.  (errno = %d)",
-                 masterElectionEPStr, errno);
-            goto bailout;
-        }
-
-        // disable loopback of multicast packets
-        const int zero = 0;
-        rc = setsockopt(mSocket, IPPROTO_IP, IP_MULTICAST_LOOP,
-                        &zero, sizeof(zero));
-        if (rc == -1) {
-            mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                                "Failed to disable multicast loopback "
-                                "(errno = %d)", errno);
-            goto bailout;
-        }
-    } else
-    if (ntohl(ipv4_addr->sin_addr.s_addr) == 0xFFFFFFFF) {
-        // If the master election address is the broadcast address, then enable
-        // the broadcast socket option
-        rc = setsockopt(mSocket, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one));
-        if (rc == -1) {
-            mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                                "Failed to enable broadcast (errno = %d)",
-                                errno);
-            goto bailout;
-        }
-    } else {
-        // If the master election address is neither broadcast, nor multicast,
-        // then we are misconfigured.  The config API layer should prevent this
-        // from ever happening.
-        goto bailout;
-    }
-
-    // Set the TTL of sent packets to 1.  (Time protocol sync should never leave
-    // the local subnet)
-    rc = setsockopt(mSocket, IPPROTO_IP, IP_TTL, &one, sizeof(one));
-    if (rc == -1) {
-        mStateChangeLog.log(ANDROID_LOG_ERROR, LOG_TAG,
-                            "Failed to set TTL to %d (errno = %d)", one, errno);
-        goto bailout;
-    }
-
-    // get the device's unique ID
-    if (!assignDeviceID())
-        goto bailout;
-
-    ret_val = true;
-
-bailout:
-    if (!ret_val)
-        cleanupSocket_l();
-    return ret_val;
-}
-
-// generate a unique device ID that can be used for arbitration
-bool CommonTimeServer::assignDeviceID() {
-    if (!mBindIfaceValid)
-        return false;
-
-    struct ifreq ifr;
-    memset(&ifr, 0, sizeof(ifr));
-    ifr.ifr_addr.sa_family = AF_INET;
-    strlcpy(ifr.ifr_name, mBindIface.string(), IFNAMSIZ);
-
-    int rc = ioctl(mSocket, SIOCGIFHWADDR, &ifr);
-    if (rc) {
-        ALOGE("%s:%d ioctl failed", __PRETTY_FUNCTION__, __LINE__);
-        return false;
-    }
-
-    if (ifr.ifr_addr.sa_family != ARPHRD_ETHER) {
-        ALOGE("%s:%d got non-Ethernet address", __PRETTY_FUNCTION__, __LINE__);
-        return false;
-    }
-
-    mDeviceID = 0;
-    for (int i = 0; i < ETH_ALEN; i++) {
-        mDeviceID = (mDeviceID << 8) | ifr.ifr_hwaddr.sa_data[i];
-    }
-
-    return true;
-}
-
-// generate a new timeline ID
-void CommonTimeServer::assignTimelineID() {
-    do {
-        mTimelineID = (static_cast<uint64_t>(lrand48()) << 32)
-                    |  static_cast<uint64_t>(lrand48());
-    } while (mTimelineID == ICommonClock::kInvalidTimelineID);
-}
-
-// Select a preference between the device IDs of two potential masters.
-// Returns true if the first ID wins, or false if the second ID wins.
-bool CommonTimeServer::arbitrateMaster(
-        uint64_t deviceID1, uint8_t devicePrio1,
-        uint64_t deviceID2, uint8_t devicePrio2) {
-    return ((devicePrio1 >  devicePrio2) ||
-           ((devicePrio1 == devicePrio2) && (deviceID1 > deviceID2)));
-}
-
-static void hexDumpToString(const uint8_t* src, size_t src_len,
-                            char* dst, size_t dst_len) {
-    size_t offset = 0;
-    size_t i;
-
-    for (i = 0; (i < src_len) && (offset < dst_len); ++i) {
-        int res;
-        if (0 == (i % 16)) {
-            res = snprintf(dst + offset, dst_len - offset, "\n%04zx :", i);
-            if (res < 0)
-                break;
-            offset += res;
-            if (offset >= dst_len)
-                break;
-        }
-
-        res = snprintf(dst + offset, dst_len - offset, " %02x", src[i]);
-        if (res < 0)
-            break;
-        offset += res;
-    }
-
-    dst[dst_len - 1] = 0;
-}
-
-bool CommonTimeServer::handlePacket() {
-    uint8_t buf[256];
-    struct sockaddr_storage srcAddr;
-    socklen_t srcAddrLen = sizeof(srcAddr);
-
-    ssize_t recvBytes = recvfrom(
-            mSocket, buf, sizeof(buf), 0,
-            reinterpret_cast<sockaddr *>(&srcAddr), &srcAddrLen);
-
-    if (recvBytes < 0) {
-        mBadPktLog.log(ANDROID_LOG_ERROR, LOG_TAG, "recvfrom failed (%s)",
-                       strerror(errno));
-        return false;
-    }
-
-    UniversalTimeServicePacket pkt;
-    if (pkt.deserializePacket(buf, recvBytes, mSyncGroupID) < 0) {
-        char hex[256];
-        char srcEPStr[64];
-
-        hexDumpToString(buf, static_cast<size_t>(recvBytes), hex, sizeof(hex));
-        sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr));
-
-        mBadPktLog.log("Failed to parse %d byte packet from %s.%s",
-                       recvBytes, srcEPStr, hex);
-        return false;
-    }
-
-    bool result;
-    switch (pkt.packetType) {
-        case TIME_PACKET_WHO_IS_MASTER_REQUEST:
-            result = handleWhoIsMasterRequest(&pkt.p.who_is_master_request,
-                                              srcAddr);
-            break;
-
-        case TIME_PACKET_WHO_IS_MASTER_RESPONSE:
-            result = handleWhoIsMasterResponse(&pkt.p.who_is_master_response,
-                                               srcAddr);
-            break;
-
-        case TIME_PACKET_SYNC_REQUEST:
-            result = handleSyncRequest(&pkt.p.sync_request, srcAddr);
-            break;
-
-        case TIME_PACKET_SYNC_RESPONSE:
-            result = handleSyncResponse(&pkt.p.sync_response, srcAddr);
-            break;
-
-        case TIME_PACKET_MASTER_ANNOUNCEMENT:
-            result = handleMasterAnnouncement(&pkt.p.master_announcement,
-                                              srcAddr);
-            break;
-
-        default: {
-            char srcEPStr[64];
-            sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr));
-
-            mBadPktLog.log(ANDROID_LOG_WARN, LOG_TAG,
-                           "unknown packet type (%d) from %s",
-                           pkt.packetType, srcEPStr);
-
-            result = false;
-        } break;
-    }
-
-    return result;
-}
-
-bool CommonTimeServer::handleTimeout() {
-    // If we have no socket, then this must be a timeout to retry socket setup.
-    if (mSocket < 0)
-        return true;
-
-    switch (mState) {
-        case ICommonClock::STATE_INITIAL:
-            return handleTimeoutInitial();
-        case ICommonClock::STATE_CLIENT:
-            return handleTimeoutClient();
-        case ICommonClock::STATE_MASTER:
-            return handleTimeoutMaster();
-        case ICommonClock::STATE_RONIN:
-            return handleTimeoutRonin();
-        case ICommonClock::STATE_WAIT_FOR_ELECTION:
-            return handleTimeoutWaitForElection();
-    }
-
-    return false;
-}
-
-bool CommonTimeServer::handleTimeoutInitial() {
-    if (++mInitial_WhoIsMasterRequestTimeouts ==
-            kInitial_NumWhoIsMasterRetries) {
-        // none of our attempts to discover a master succeeded, so make
-        // this device the master
-        return becomeMaster("initial timeout");
-    } else {
-        // retry the WhoIsMaster request
-        return sendWhoIsMasterRequest();
-    }
-}
-
-bool CommonTimeServer::handleTimeoutClient() {
-    if (shouldPanicNotGettingGoodData())
-        return becomeInitial("timeout panic, no good data");
-
-    if (mClient_SyncRequestPending) {
-        mClient_SyncRequestPending = false;
-
-        if (++mClient_SyncRequestTimeouts < kClient_NumSyncRequestRetries) {
-            // a sync request has timed out, so retry
-            return sendSyncRequest();
-        } else {
-            // The master has failed to respond to a sync request for too many
-            // times in a row.  Assume the master is dead and start electing
-            // a new master.
-            return becomeRonin("master not responding");
-        }
-    } else {
-        // initiate the next sync request
-        return sendSyncRequest();
-    }
-}
-
-bool CommonTimeServer::handleTimeoutMaster() {
-    // send another announcement from the master
-    return sendMasterAnnouncement();
-}
-
-bool CommonTimeServer::handleTimeoutRonin() {
-    if (++mRonin_WhoIsMasterRequestTimeouts == kRonin_NumWhoIsMasterRetries) {
-        // no other master is out there, so we won the election
-        return becomeMaster("no better masters detected");
-    } else {
-        return sendWhoIsMasterRequest();
-    }
-}
-
-bool CommonTimeServer::handleTimeoutWaitForElection() {
-    return becomeRonin("timeout waiting for election conclusion");
-}
-
-bool CommonTimeServer::handleWhoIsMasterRequest(
-        const WhoIsMasterRequestPacket* request,
-        const sockaddr_storage& srcAddr) {
-    // Skip our own messages which come back via broadcast loopback.
-    if (request->senderDeviceID == mDeviceID)
-        return true;
-
-    char srcEPStr[64];
-    sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr));
-    mElectionLog.log("RXed WhoIs master request while in state %s.  "
-                     "src %s reqTID %016llx ourTID %016llx",
-                     stateToString(mState), srcEPStr,
-                     request->timelineID, mTimelineID);
-
-    if (mState == ICommonClock::STATE_MASTER) {
-        // is this request related to this master's timeline?
-        if (request->timelineID != ICommonClock::kInvalidTimelineID &&
-            request->timelineID != mTimelineID)
-            return true;
-
-        WhoIsMasterResponsePacket pkt;
-        pkt.initHeader(mTimelineID, mSyncGroupID);
-        pkt.deviceID = mDeviceID;
-        pkt.devicePriority = effectivePriority();
-
-        mElectionLog.log("TXing WhoIs master resp to %s while in state %s.  "
-                         "ourTID %016llx ourGID %016llx ourDID %016llx "
-                         "ourPrio %u",
-                         srcEPStr, stateToString(mState),
-                         mTimelineID, mSyncGroupID,
-                         pkt.deviceID, pkt.devicePriority);
-
-        uint8_t buf[256];
-        ssize_t bufSz = pkt.serializePacket(buf, sizeof(buf));
-        if (bufSz < 0)
-            return false;
-
-        ssize_t sendBytes = sendto(
-                mSocket, buf, bufSz, 0,
-                reinterpret_cast<const sockaddr *>(&srcAddr),
-                sizeof(srcAddr));
-        if (sendBytes == -1) {
-            ALOGE("%s:%d sendto failed", __PRETTY_FUNCTION__, __LINE__);
-            return false;
-        }
-    } else if (mState == ICommonClock::STATE_RONIN) {
-        // if we hear a WhoIsMaster request from another device following
-        // the same timeline and that device wins arbitration, then we will stop
-        // trying to elect ourselves master and will instead wait for an
-        // announcement from the election winner
-        if (request->timelineID != mTimelineID)
-            return true;
-
-        if (arbitrateMaster(request->senderDeviceID,
-                            request->senderDevicePriority,
-                            mDeviceID,
-                            effectivePriority()))
-            return becomeWaitForElection("would lose election");
-
-        return true;
-    } else if (mState == ICommonClock::STATE_INITIAL) {
-        // If a group of devices booted simultaneously (e.g. after a power
-        // outage) and all of them are in the initial state and there is no
-        // master, then each device may time out and declare itself master at
-        // the same time.  To avoid this, listen for
-        // WhoIsMaster(InvalidTimeline) requests from peers.  If we would lose
-        // arbitration against that peer, reset our timeout count so that the
-        // peer has a chance to become master before we time out.
-        if (request->timelineID == ICommonClock::kInvalidTimelineID &&
-                arbitrateMaster(request->senderDeviceID,
-                                request->senderDevicePriority,
-                                mDeviceID,
-                                effectivePriority())) {
-            mInitial_WhoIsMasterRequestTimeouts = 0;
-        }
-    }
-
-    return true;
-}
-
-bool CommonTimeServer::handleWhoIsMasterResponse(
-        const WhoIsMasterResponsePacket* response,
-        const sockaddr_storage& srcAddr) {
-    // Skip our own messages which come back via broadcast loopback.
-    if (response->deviceID == mDeviceID)
-        return true;
-
-    char srcEPStr[64];
-    sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr));
-    mElectionLog.log("RXed WhoIs master response while in state %s.  "
-                     "src %s respTID %016llx respDID %016llx respPrio %u "
-                     "ourTID %016llx",
-                     stateToString(mState), srcEPStr,
-                     response->timelineID,
-                     response->deviceID,
-                     static_cast<uint32_t>(response->devicePriority),
-                     mTimelineID);
-
-    if (mState == ICommonClock::STATE_INITIAL || mState == ICommonClock::STATE_RONIN) {
-        return becomeClient(srcAddr,
-                            response->deviceID,
-                            response->devicePriority,
-                            response->timelineID,
-                            "heard whois response");
-    } else if (mState == ICommonClock::STATE_CLIENT) {
-        // if we get multiple responses because there are multiple devices
-        // who believe that they are master, then follow the master that
-        // wins arbitration
-        if (arbitrateMaster(response->deviceID,
-                            response->devicePriority,
-                            mClient_MasterDeviceID,
-                            mClient_MasterDevicePriority)) {
-            return becomeClient(srcAddr,
-                                response->deviceID,
-                                response->devicePriority,
-                                response->timelineID,
-                                "heard whois response");
-        }
-    }
-
-    return true;
-}
-
-bool CommonTimeServer::handleSyncRequest(const SyncRequestPacket* request,
-                                         const sockaddr_storage& srcAddr) {
-    SyncResponsePacket pkt;
-    pkt.initHeader(mTimelineID, mSyncGroupID);
-
-    if ((mState == ICommonClock::STATE_MASTER) &&
-        (mTimelineID == request->timelineID)) {
-        int64_t rxLocalTime = mLastPacketRxLocalTime;
-        int64_t rxCommonTime;
-
-        // If we are master on an actual network and have actual clients, then
-        // we are no longer low priority.
-        setForceLowPriority(false);
-
-        if (OK != mCommonClock.localToCommon(rxLocalTime, &rxCommonTime)) {
-            return false;
-        }
-
-        int64_t txLocalTime = mLocalClock.getLocalTime();;
-        int64_t txCommonTime;
-        if (OK != mCommonClock.localToCommon(txLocalTime, &txCommonTime)) {
-            return false;
-        }
-
-        pkt.nak = 0;
-        pkt.clientTxLocalTime  = request->clientTxLocalTime;
-        pkt.masterRxCommonTime = rxCommonTime;
-        pkt.masterTxCommonTime = txCommonTime;
-    } else {
-        pkt.nak = 1;
-        pkt.clientTxLocalTime  = 0;
-        pkt.masterRxCommonTime = 0;
-        pkt.masterTxCommonTime = 0;
-    }
-
-    uint8_t buf[256];
-    ssize_t bufSz = pkt.serializePacket(buf, sizeof(buf));
-    if (bufSz < 0)
-        return false;
-
-    ssize_t sendBytes = sendto(
-            mSocket, &buf, bufSz, 0,
-            reinterpret_cast<const sockaddr *>(&srcAddr),
-            sizeof(srcAddr));
-    if (sendBytes == -1) {
-        ALOGE("%s:%d sendto failed", __PRETTY_FUNCTION__, __LINE__);
-        return false;
-    }
-
-    return true;
-}
-
-bool CommonTimeServer::handleSyncResponse(
-        const SyncResponsePacket* response,
-        const sockaddr_storage& srcAddr) {
-    if (mState != ICommonClock::STATE_CLIENT)
-        return true;
-
-    assert(mMasterEPValid);
-    if (!sockaddrMatch(srcAddr, mMasterEP, true)) {
-        char srcEP[64], expectedEP[64];
-        sockaddrToString(srcAddr, true, srcEP, sizeof(srcEP));
-        sockaddrToString(mMasterEP, true, expectedEP, sizeof(expectedEP));
-        ALOGI("Dropping sync response from unexpected address."
-             " Expected %s Got %s", expectedEP, srcEP);
-        return true;
-    }
-
-    if (response->nak) {
-        // if our master is no longer accepting requests, then we need to find
-        // a new master
-        return becomeRonin("master NAK'ed");
-    }
-
-    mClient_SyncRequestPending = 0;
-    mClient_SyncRequestTimeouts = 0;
-    mClient_PacketRTTLog.logRX(response->clientTxLocalTime,
-                               mLastPacketRxLocalTime);
-
-    bool result;
-    if (!(mClient_SyncRespsRXedFromCurMaster++)) {
-        // the first request/response exchange between a client and a master
-        // may take unusually long due to ARP, so discard it.
-        result = true;
-    } else {
-        int64_t clientTxLocalTime  = response->clientTxLocalTime;
-        int64_t clientRxLocalTime  = mLastPacketRxLocalTime;
-        int64_t masterTxCommonTime = response->masterTxCommonTime;
-        int64_t masterRxCommonTime = response->masterRxCommonTime;
-
-        int64_t rtt       = (clientRxLocalTime - clientTxLocalTime);
-        int64_t avgLocal  = (clientTxLocalTime + clientRxLocalTime) >> 1;
-        int64_t avgCommon = (masterTxCommonTime + masterRxCommonTime) >> 1;
-
-        // if the RTT of the packet is significantly larger than the panic
-        // threshold, we should simply discard it.  Its better to do nothing
-        // than to take cues from a packet like that.
-        int64_t rttCommon = mCommonClock.localDurationToCommonDuration(rtt);
-        if (rttCommon > (static_cast<int64_t>(mPanicThresholdUsec) * 
-                         kRTTDiscardPanicThreshMultiplier)) {
-            ALOGV("Dropping sync response with RTT of %" PRId64 " uSec", rttCommon);
-            mClient_ExpiredSyncRespsRXedFromCurMaster++;
-            if (shouldPanicNotGettingGoodData())
-                return becomeInitial("RX panic, no good data");
-            return true;
-        } else {
-            result = mClockRecovery.pushDisciplineEvent(avgLocal, avgCommon, rttCommon);
-            mClient_LastGoodSyncRX = clientRxLocalTime;
-
-            if (result) {
-                // indicate to listeners that we've synced to the common timeline
-                notifyClockSync();
-            } else {
-                ALOGE("Panic!  Observed clock sync error is too high to tolerate,"
-                        " resetting state machine and starting over.");
-                notifyClockSyncLoss();
-                return becomeInitial("panic");
-            }
-        }
-    }
-
-    mCurTimeout.setTimeout(mSyncRequestIntervalMs);
-    return result;
-}
-
-bool CommonTimeServer::handleMasterAnnouncement(
-        const MasterAnnouncementPacket* packet,
-        const sockaddr_storage& srcAddr) {
-    uint64_t newDeviceID   = packet->deviceID;
-    uint8_t  newDevicePrio = packet->devicePriority;
-    uint64_t newTimelineID = packet->timelineID;
-
-    // Skip our own messages which come back via broadcast loopback.
-    if (newDeviceID == mDeviceID)
-        return true;
-
-    char srcEPStr[64];
-    sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr));
-    mElectionLog.log("RXed master announcement while in state %s.  "
-                     "src %s srcDevID %lld srcPrio %u srcTID %016llx",
-                     stateToString(mState), srcEPStr,
-                     newDeviceID, static_cast<uint32_t>(newDevicePrio),
-                     newTimelineID);
-
-    if (mState == ICommonClock::STATE_INITIAL ||
-        mState == ICommonClock::STATE_RONIN ||
-        mState == ICommonClock::STATE_WAIT_FOR_ELECTION) {
-        // if we aren't currently following a master, then start following
-        // this new master
-        return becomeClient(srcAddr,
-                            newDeviceID,
-                            newDevicePrio,
-                            newTimelineID,
-                            "heard master announcement");
-    } else if (mState == ICommonClock::STATE_CLIENT) {
-        // if the new master wins arbitration against our current master,
-        // then become a client of the new master
-        if (arbitrateMaster(newDeviceID,
-                            newDevicePrio,
-                            mClient_MasterDeviceID,
-                            mClient_MasterDevicePriority))
-            return becomeClient(srcAddr,
-                                newDeviceID,
-                                newDevicePrio,
-                                newTimelineID,
-                                "heard master announcement");
-    } else if (mState == ICommonClock::STATE_MASTER) {
-        // two masters are competing - if the new one wins arbitration, then
-        // cease acting as master
-        if (arbitrateMaster(newDeviceID, newDevicePrio,
-                            mDeviceID, effectivePriority()))
-            return becomeClient(srcAddr, newDeviceID,
-                                newDevicePrio, newTimelineID,
-                                "heard master announcement");
-    }
-
-    return true;
-}
-
-bool CommonTimeServer::sendWhoIsMasterRequest() {
-    assert(mState == ICommonClock::STATE_INITIAL || mState == ICommonClock::STATE_RONIN);
-
-    // If we have no socket, then we must be in the unconfigured initial state.
-    // Don't report any errors, just don't try to send the initial who-is-master
-    // query.  Eventually, our network will either become configured, or we will
-    // be forced into network-less master mode by higher level code.
-    if (mSocket < 0) {
-        assert(mState == ICommonClock::STATE_INITIAL);
-        return true;
-    }
-
-    bool ret = false;
-    WhoIsMasterRequestPacket pkt;
-    pkt.initHeader(mSyncGroupID);
-    pkt.senderDeviceID = mDeviceID;
-    pkt.senderDevicePriority = effectivePriority();
-
-    uint8_t buf[256];
-    ssize_t bufSz = pkt.serializePacket(buf, sizeof(buf));
-    if (bufSz >= 0) {
-        char dstEPStr[64];
-        sockaddrToString(mMasterElectionEP, true, dstEPStr, sizeof(dstEPStr));
-        mElectionLog.log("TXing WhoIs master request to %s while in state %s.  "
-                         "ourTID %016llx ourGID %016llx ourDID %016llx "
-                         "ourPrio %u",
-                         dstEPStr, stateToString(mState),
-                         mTimelineID, mSyncGroupID,
-                         pkt.senderDeviceID, pkt.senderDevicePriority);
-
-        ssize_t sendBytes = sendto(
-                mSocket, buf, bufSz, 0,
-                reinterpret_cast<const sockaddr *>(&mMasterElectionEP),
-                sizeof(mMasterElectionEP));
-        if (sendBytes < 0)
-            ALOGE("WhoIsMaster sendto failed (errno %d)", errno);
-        ret = true;
-    }
-
-    if (mState == ICommonClock::STATE_INITIAL) {
-        mCurTimeout.setTimeout(kInitial_WhoIsMasterTimeoutMs);
-    } else {
-        mCurTimeout.setTimeout(kRonin_WhoIsMasterTimeoutMs);
-    }
-
-    return ret;
-}
-
-bool CommonTimeServer::sendSyncRequest() {
-    // If we are sending sync requests, then we must be in the client state and
-    // we must have a socket (when we have no network, we are only supposed to
-    // be in INITIAL or MASTER)
-    assert(mState == ICommonClock::STATE_CLIENT);
-    assert(mSocket >= 0);
-
-    bool ret = false;
-    SyncRequestPacket pkt;
-    pkt.initHeader(mTimelineID, mSyncGroupID);
-    pkt.clientTxLocalTime = mLocalClock.getLocalTime();
-
-    if (!mClient_FirstSyncTX)
-        mClient_FirstSyncTX = pkt.clientTxLocalTime;
-
-    mClient_PacketRTTLog.logTX(pkt.clientTxLocalTime);
-
-    uint8_t buf[256];
-    ssize_t bufSz = pkt.serializePacket(buf, sizeof(buf));
-    if (bufSz >= 0) {
-        ssize_t sendBytes = sendto(
-                mSocket, buf, bufSz, 0,
-                reinterpret_cast<const sockaddr *>(&mMasterEP),
-                sizeof(mMasterEP));
-        if (sendBytes < 0)
-            ALOGE("SyncRequest sendto failed (errno %d)", errno);
-        ret = true;
-    }
-
-    mClient_SyncsSentToCurMaster++;
-    mCurTimeout.setTimeout(mSyncRequestIntervalMs);
-    mClient_SyncRequestPending = true;
-
-    return ret;
-}
-
-bool CommonTimeServer::sendMasterAnnouncement() {
-    bool ret = false;
-    assert(mState == ICommonClock::STATE_MASTER);
-
-    // If we are being asked to send a master announcement, but we have no
-    // socket, we must be in network-less master mode.  Don't bother to send the
-    // announcement, and don't bother to schedule a timeout.  When the network
-    // comes up, the work thread will get poked and start the process of
-    // figuring out who the current master should be.
-    if (mSocket < 0) {
-        mCurTimeout.setTimeout(kInfiniteTimeout);
-        return true;
-    }
-
-    MasterAnnouncementPacket pkt;
-    pkt.initHeader(mTimelineID, mSyncGroupID);
-    pkt.deviceID = mDeviceID;
-    pkt.devicePriority = effectivePriority();
-
-    uint8_t buf[256];
-    ssize_t bufSz = pkt.serializePacket(buf, sizeof(buf));
-    if (bufSz >= 0) {
-        char dstEPStr[64];
-        sockaddrToString(mMasterElectionEP, true, dstEPStr, sizeof(dstEPStr));
-        mElectionLog.log("TXing Master announcement to %s while in state %s.  "
-                         "ourTID %016llx ourGID %016llx ourDID %016llx "
-                         "ourPrio %u",
-                         dstEPStr, stateToString(mState),
-                         mTimelineID, mSyncGroupID,
-                         pkt.deviceID, pkt.devicePriority);
-
-        ssize_t sendBytes = sendto(
-                mSocket, buf, bufSz, 0,
-                reinterpret_cast<const sockaddr *>(&mMasterElectionEP),
-                sizeof(mMasterElectionEP));
-        if (sendBytes < 0)
-            ALOGE("MasterAnnouncement sendto failed (errno %d)", errno);
-        ret = true;
-    }
-
-    mCurTimeout.setTimeout(mMasterAnnounceIntervalMs);
-    return ret;
-}
-
-bool CommonTimeServer::becomeClient(const sockaddr_storage& masterEP,
-                                    uint64_t masterDeviceID,
-                                    uint8_t  masterDevicePriority,
-                                    uint64_t timelineID,
-                                    const char* cause) {
-    char newEPStr[64], oldEPStr[64];
-    sockaddrToString(masterEP, true, newEPStr, sizeof(newEPStr));
-    sockaddrToString(mMasterEP, mMasterEPValid, oldEPStr, sizeof(oldEPStr));
-
-    mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-            "%s --> CLIENT (%s) :%s"
-            " OldMaster: %02x-%014llx::%016llx::%s"
-            " NewMaster: %02x-%014llx::%016llx::%s",
-            stateToString(mState), cause,
-            (mTimelineID != timelineID) ? " (new timeline)" : "",
-            mClient_MasterDevicePriority, mClient_MasterDeviceID,
-            mTimelineID, oldEPStr,
-            masterDevicePriority, masterDeviceID,
-            timelineID, newEPStr);
-
-    if (mTimelineID != timelineID) {
-        // start following a new timeline
-        mTimelineID = timelineID;
-        mClockRecovery.reset(true, true);
-        notifyClockSyncLoss();
-    } else {
-        // start following a new master on the existing timeline
-        mClockRecovery.reset(false, true);
-    }
-
-    mMasterEP = masterEP;
-    mMasterEPValid = true;
-
-    // If we are on a real network as a client of a real master, then we should
-    // no longer force low priority.  If our master disappears, we should have
-    // the high priority bit set during the election to replace the master
-    // because this group was a real group and not a singleton created in
-    // networkless mode.
-    setForceLowPriority(false);
-
-    mClient_MasterDeviceID = masterDeviceID;
-    mClient_MasterDevicePriority = masterDevicePriority;
-    resetSyncStats();
-
-    setState(ICommonClock::STATE_CLIENT);
-
-    // add some jitter to when the various clients send their requests
-    // in order to reduce the likelihood that a group of clients overload
-    // the master after receiving a master announcement
-    usleep((lrand48() % 100) * 1000);
-
-    return sendSyncRequest();
-}
-
-bool CommonTimeServer::becomeMaster(const char* cause) {
-    uint64_t oldTimelineID = mTimelineID;
-    if (mTimelineID == ICommonClock::kInvalidTimelineID) {
-        // this device has not been following any existing timeline,
-        // so it will create a new timeline and declare itself master
-        assert(!mCommonClock.isValid());
-
-        // set the common time basis
-        mCommonClock.setBasis(mLocalClock.getLocalTime(), 0);
-
-        // assign an arbitrary timeline iD
-        assignTimelineID();
-
-        // notify listeners that we've created a common timeline
-        notifyClockSync();
-    }
-
-    mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-            "%s --> MASTER (%s) : %s timeline %016llx",
-            stateToString(mState), cause,
-            (oldTimelineID == mTimelineID) ? "taking ownership of"
-                                           : "creating new",
-            mTimelineID);
-
-    memset(&mMasterEP, 0, sizeof(mMasterEP));
-    mMasterEPValid = false;
-    mClient_MasterDevicePriority = effectivePriority();
-    mClient_MasterDeviceID = mDeviceID;
-    mClockRecovery.reset(false, true);
-    resetSyncStats();
-
-    setState(ICommonClock::STATE_MASTER);
-    return sendMasterAnnouncement();
-}
-
-bool CommonTimeServer::becomeRonin(const char* cause) {
-    // If we were the client of a given timeline, but had never received even a
-    // single time sync packet, then we transition back to Initial instead of
-    // Ronin.  If we transition to Ronin and end up becoming the new Master, we
-    // will be unable to service requests for other clients because we never
-    // actually knew what time it was.  By going to initial, we ensure that
-    // other clients who know what time it is, but would lose master arbitration
-    // in the Ronin case, will step up and become the proper new master of the
-    // old timeline.
-
-    char oldEPStr[64];
-    sockaddrToString(mMasterEP, mMasterEPValid, oldEPStr, sizeof(oldEPStr));
-    memset(&mMasterEP, 0, sizeof(mMasterEP));
-    mMasterEPValid = false;
-
-    if (mCommonClock.isValid()) {
-        mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-             "%s --> RONIN (%s) : lost track of previously valid timeline "
-             "%02x-%014llx::%016llx::%s (%d TXed %d RXed %d RXExpired)",
-             stateToString(mState), cause,
-             mClient_MasterDevicePriority, mClient_MasterDeviceID,
-             mTimelineID, oldEPStr,
-             mClient_SyncsSentToCurMaster,
-             mClient_SyncRespsRXedFromCurMaster,
-             mClient_ExpiredSyncRespsRXedFromCurMaster);
-
-        mRonin_WhoIsMasterRequestTimeouts = 0;
-        setState(ICommonClock::STATE_RONIN);
-        return sendWhoIsMasterRequest();
-    } else {
-        mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-             "%s --> INITIAL (%s) : never synced timeline "
-             "%02x-%014llx::%016llx::%s (%d TXed %d RXed %d RXExpired)",
-             stateToString(mState), cause,
-             mClient_MasterDevicePriority, mClient_MasterDeviceID,
-             mTimelineID, oldEPStr,
-             mClient_SyncsSentToCurMaster,
-             mClient_SyncRespsRXedFromCurMaster,
-             mClient_ExpiredSyncRespsRXedFromCurMaster);
-
-        return becomeInitial("ronin, no timeline");
-    }
-}
-
-bool CommonTimeServer::becomeWaitForElection(const char* cause) {
-    mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-         "%s --> WAIT_FOR_ELECTION (%s) : dropping out of election,"
-         " waiting %d mSec for completion.",
-         stateToString(mState), cause, kWaitForElection_TimeoutMs);
-
-    setState(ICommonClock::STATE_WAIT_FOR_ELECTION);
-    mCurTimeout.setTimeout(kWaitForElection_TimeoutMs);
-    return true;
-}
-
-bool CommonTimeServer::becomeInitial(const char* cause) {
-    mStateChangeLog.log(ANDROID_LOG_INFO, LOG_TAG,
-                        "Entering INITIAL (%s), total reset.",
-                        cause);
-
-    setState(ICommonClock::STATE_INITIAL);
-
-    // reset clock recovery
-    mClockRecovery.reset(true, true);
-
-    // reset internal state bookkeeping.
-    mCurTimeout.setTimeout(kInfiniteTimeout);
-    memset(&mMasterEP, 0, sizeof(mMasterEP));
-    mMasterEPValid = false;
-    mLastPacketRxLocalTime = 0;
-    mTimelineID = ICommonClock::kInvalidTimelineID;
-    mClockSynced = false;
-    mInitial_WhoIsMasterRequestTimeouts = 0;
-    mClient_MasterDeviceID = 0;
-    mClient_MasterDevicePriority = 0;
-    mRonin_WhoIsMasterRequestTimeouts = 0;
-    resetSyncStats();
-
-    // send the first request to discover the master
-    return sendWhoIsMasterRequest();
-}
-
-void CommonTimeServer::notifyClockSync() {
-    if (!mClockSynced) {
-        mClockSynced = true;
-        mICommonClock->notifyOnTimelineChanged(mTimelineID);
-    }
-}
-
-void CommonTimeServer::notifyClockSyncLoss() {
-    if (mClockSynced) {
-        mClockSynced = false;
-        mICommonClock->notifyOnTimelineChanged(
-                ICommonClock::kInvalidTimelineID);
-    }
-}
-
-void CommonTimeServer::setState(ICommonClock::State s) {
-    mState = s;
-}
-
-const char* CommonTimeServer::stateToString(ICommonClock::State s) {
-    switch(s) {
-        case ICommonClock::STATE_INITIAL:
-            return "INITIAL";
-        case ICommonClock::STATE_CLIENT:
-            return "CLIENT";
-        case ICommonClock::STATE_MASTER:
-            return "MASTER";
-        case ICommonClock::STATE_RONIN:
-            return "RONIN";
-        case ICommonClock::STATE_WAIT_FOR_ELECTION:
-            return "WAIT_FOR_ELECTION";
-        default:
-            return "unknown";
-    }
-}
-
-void CommonTimeServer::sockaddrToString(const sockaddr_storage& addr,
-                                        bool addrValid,
-                                        char* buf, size_t bufLen) {
-    if (!bufLen || !buf)
-        return;
-
-    if (addrValid) {
-        switch (addr.ss_family) {
-            case AF_INET: {
-                const struct sockaddr_in* sa =
-                    reinterpret_cast<const struct sockaddr_in*>(&addr);
-                unsigned long a = ntohl(sa->sin_addr.s_addr);
-                uint16_t      p = ntohs(sa->sin_port);
-                snprintf(buf, bufLen, "%lu.%lu.%lu.%lu:%hu",
-                        ((a >> 24) & 0xFF), ((a >> 16) & 0xFF),
-                        ((a >>  8) & 0xFF),  (a        & 0xFF), p);
-            } break;
-
-            case AF_INET6: {
-                const struct sockaddr_in6* sa =
-                    reinterpret_cast<const struct sockaddr_in6*>(&addr);
-                const uint8_t* a = sa->sin6_addr.s6_addr;
-                uint16_t       p = ntohs(sa->sin6_port);
-                snprintf(buf, bufLen,
-                        "%02X%02X:%02X%02X:%02X%02X:%02X%02X:"
-                        "%02X%02X:%02X%02X:%02X%02X:%02X%02X port %hd",
-                        a[0], a[1], a[ 2], a[ 3], a[ 4], a[ 5], a[ 6], a[ 7],
-                        a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15],
-                        p);
-            } break;
-
-            default:
-                snprintf(buf, bufLen,
-                         "<unknown sockaddr family %d>", addr.ss_family);
-                break;
-        }
-    } else {
-        snprintf(buf, bufLen, "<none>");
-    }
-
-    buf[bufLen - 1] = 0;
-}
-
-bool CommonTimeServer::sockaddrMatch(const sockaddr_storage& a1,
-                                     const sockaddr_storage& a2,
-                                     bool matchAddressOnly) {
-    if (a1.ss_family != a2.ss_family)
-        return false;
-
-    switch (a1.ss_family) {
-        case AF_INET: {
-            const struct sockaddr_in* sa1 =
-                reinterpret_cast<const struct sockaddr_in*>(&a1);
-            const struct sockaddr_in* sa2 =
-                reinterpret_cast<const struct sockaddr_in*>(&a2);
-
-            if (sa1->sin_addr.s_addr != sa2->sin_addr.s_addr)
-                return false;
-
-            return (matchAddressOnly || (sa1->sin_port == sa2->sin_port));
-        } break;
-
-        case AF_INET6: {
-            const struct sockaddr_in6* sa1 =
-                reinterpret_cast<const struct sockaddr_in6*>(&a1);
-            const struct sockaddr_in6* sa2 =
-                reinterpret_cast<const struct sockaddr_in6*>(&a2);
-
-            if (memcmp(&sa1->sin6_addr, &sa2->sin6_addr, sizeof(sa2->sin6_addr)))
-                return false;
-
-            return (matchAddressOnly || (sa1->sin6_port == sa2->sin6_port));
-        } break;
-
-        // Huh?  We don't deal in non-IPv[46] addresses.  Not sure how we got
-        // here, but we don't know how to comapre these addresses and simply
-        // default to a no-match decision.
-        default: return false;
-    }
-}
-
-bool CommonTimeServer::shouldPanicNotGettingGoodData() {
-    if (mClient_FirstSyncTX) {
-        int64_t now = mLocalClock.getLocalTime();
-        int64_t delta = now - (mClient_LastGoodSyncRX
-                             ? mClient_LastGoodSyncRX
-                             : mClient_FirstSyncTX);
-        int64_t deltaUsec = mCommonClock.localDurationToCommonDuration(delta);
-
-        if (deltaUsec >= kNoGoodDataPanicThresholdUsec)
-            return true;
-    }
-
-    return false;
-}
-
-void CommonTimeServer::PacketRTTLog::logTX(int64_t txTime) {
-    txTimes[wrPtr] = txTime;
-    rxTimes[wrPtr] = 0;
-    wrPtr = (wrPtr + 1) % RTT_LOG_SIZE;
-    if (!wrPtr)
-        logFull = true;
-}
-
-void CommonTimeServer::PacketRTTLog::logRX(int64_t txTime, int64_t rxTime) {
-    if (!logFull && !wrPtr)
-        return;
-
-    uint32_t i = logFull ? wrPtr : 0;
-    do {
-        if (txTimes[i] == txTime) {
-            rxTimes[i] = rxTime;
-            break;
-        }
-        i = (i + 1) % RTT_LOG_SIZE;
-    } while (i != wrPtr);
-}
-
-}  // namespace android
diff --git a/libs/common_time/common_time_server.h b/libs/common_time/common_time_server.h
deleted file mode 100644
index 6e18050..0000000
--- a/libs/common_time/common_time_server.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef ANDROID_COMMON_TIME_SERVER_H
-#define ANDROID_COMMON_TIME_SERVER_H
-
-#include <arpa/inet.h>
-#include <stdint.h>
-#include <sys/socket.h>
-
-#include <common_time/ICommonClock.h>
-#include <common_time/local_clock.h>
-#include <utils/String8.h>
-
-#include "clock_recovery.h"
-#include "common_clock.h"
-#include "common_time_server_packets.h"
-#include "utils.h"
-
-#define RTT_LOG_SIZE 30
-
-namespace android {
-
-class CommonClockService;
-class CommonTimeConfigService;
-
-/***** time service implementation *****/
-
-class CommonTimeServer : public Thread {
-  public:
-    CommonTimeServer();
-    ~CommonTimeServer();
-
-    bool startServices();
-
-    // Common Clock API methods
-    CommonClock&        getCommonClock()        { return mCommonClock; }
-    LocalClock&         getLocalClock()         { return mLocalClock; }
-    uint64_t            getTimelineID();
-    int32_t             getEstimatedError();
-    ICommonClock::State getState();
-    status_t            getMasterAddr(struct sockaddr_storage* addr);
-    status_t            isCommonTimeValid(bool* valid, uint32_t* timelineID);
-
-    // Config API methods
-    status_t getMasterElectionPriority(uint8_t *priority);
-    status_t setMasterElectionPriority(uint8_t priority);
-    status_t getMasterElectionEndpoint(struct sockaddr_storage *addr);
-    status_t setMasterElectionEndpoint(const struct sockaddr_storage *addr);
-    status_t getMasterElectionGroupId(uint64_t *id);
-    status_t setMasterElectionGroupId(uint64_t id);
-    status_t getInterfaceBinding(String8& ifaceName);
-    status_t setInterfaceBinding(const String8& ifaceName);
-    status_t getMasterAnnounceInterval(int *interval);
-    status_t setMasterAnnounceInterval(int interval);
-    status_t getClientSyncInterval(int *interval);
-    status_t setClientSyncInterval(int interval);
-    status_t getPanicThreshold(int *threshold);
-    status_t setPanicThreshold(int threshold);
-    status_t getAutoDisable(bool *autoDisable);
-    status_t setAutoDisable(bool autoDisable);
-    status_t forceNetworklessMasterMode();
-
-    // Method used by the CommonClockService to notify the core service about
-    // changes in the number of active common clock clients.
-    void reevaluateAutoDisableState(bool commonClockHasClients);
-
-    status_t dumpClockInterface(int fd, const Vector<String16>& args,
-                                size_t activeClients);
-    status_t dumpConfigInterface(int fd, const Vector<String16>& args);
-
-  private:
-    class PacketRTTLog {
-      public:
-        PacketRTTLog() {
-            resetLog();
-        }
-
-        void resetLog() {
-            wrPtr = 0;
-            logFull = 0;
-        }
-
-        void logTX(int64_t txTime);
-        void logRX(int64_t txTime, int64_t rxTime);
-        void dumpLog(int fd, const CommonClock& cclk);
-
-      private:
-        uint32_t wrPtr;
-        bool logFull;
-        int64_t txTimes[RTT_LOG_SIZE];
-        int64_t rxTimes[RTT_LOG_SIZE];
-    };
-
-    bool threadLoop();
-
-    bool runStateMachine_l();
-    bool setupSocket_l();
-
-    void assignTimelineID();
-    bool assignDeviceID();
-
-    static bool arbitrateMaster(uint64_t deviceID1, uint8_t devicePrio1,
-                                uint64_t deviceID2, uint8_t devicePrio2);
-
-    bool handlePacket();
-    bool handleWhoIsMasterRequest (const WhoIsMasterRequestPacket* request,
-                                   const sockaddr_storage& srcAddr);
-    bool handleWhoIsMasterResponse(const WhoIsMasterResponsePacket* response,
-                                   const sockaddr_storage& srcAddr);
-    bool handleSyncRequest        (const SyncRequestPacket* request,
-                                   const sockaddr_storage& srcAddr);
-    bool handleSyncResponse       (const SyncResponsePacket* response,
-                                   const sockaddr_storage& srcAddr);
-    bool handleMasterAnnouncement (const MasterAnnouncementPacket* packet,
-                                   const sockaddr_storage& srcAddr);
-
-    bool handleTimeout();
-    bool handleTimeoutInitial();
-    bool handleTimeoutClient();
-    bool handleTimeoutMaster();
-    bool handleTimeoutRonin();
-    bool handleTimeoutWaitForElection();
-
-    bool sendWhoIsMasterRequest();
-    bool sendSyncRequest();
-    bool sendMasterAnnouncement();
-
-    bool becomeClient(const sockaddr_storage& masterAddr,
-                      uint64_t masterDeviceID,
-                      uint8_t  masterDevicePriority,
-                      uint64_t timelineID,
-                      const char* cause);
-    bool becomeMaster(const char* cause);
-    bool becomeRonin(const char* cause);
-    bool becomeWaitForElection(const char* cause);
-    bool becomeInitial(const char* cause);
-
-    void notifyClockSync();
-    void notifyClockSyncLoss();
-
-    ICommonClock::State mState;
-    void setState(ICommonClock::State s);
-
-    void clearPendingWakeupEvents_l();
-    void wakeupThread_l();
-    void cleanupSocket_l();
-    void shutdownThread();
-
-    inline uint8_t effectivePriority() const {
-        return (mMasterPriority & 0x7F) |
-               (mForceLowPriority ? 0x00 : 0x80);
-    }
-
-    inline bool shouldAutoDisable() const {
-        return (mAutoDisable && !mCommonClockHasClients);
-    }
-
-    inline void resetSyncStats() {
-        mClient_SyncRequestPending = false;
-        mClient_SyncRequestTimeouts = 0;
-        mClient_SyncsSentToCurMaster = 0;
-        mClient_SyncRespsRXedFromCurMaster = 0;
-        mClient_ExpiredSyncRespsRXedFromCurMaster = 0;
-        mClient_FirstSyncTX = 0;
-        mClient_LastGoodSyncRX = 0;
-        mClient_PacketRTTLog.resetLog();
-    }
-
-    bool shouldPanicNotGettingGoodData();
-
-    // Helper to keep track of the state machine's current timeout
-    Timeout mCurTimeout;
-
-    // common clock, local clock abstraction, and clock recovery loop
-    CommonClock mCommonClock;
-    LocalClock mLocalClock;
-    ClockRecoveryLoop mClockRecovery;
-
-    // implementation of ICommonClock
-    sp<CommonClockService> mICommonClock;
-
-    // implementation of ICommonTimeConfig
-    sp<CommonTimeConfigService> mICommonTimeConfig;
-
-    // UDP socket for the time sync protocol
-    int mSocket;
-
-    // eventfd used to wakeup the work thread in response to configuration
-    // changes.
-    int mWakeupThreadFD;
-
-    // timestamp captured when a packet is received
-    int64_t mLastPacketRxLocalTime;
-
-    // ID of the timeline that this device is following
-    uint64_t mTimelineID;
-
-    // flag for whether the clock has been synced to a timeline
-    bool mClockSynced;
-
-    // flag used to indicate that clients should be considered to be lower
-    // priority than all of their peers during elections.  This flag is set and
-    // cleared by the state machine.  It is set when the client joins a new
-    // network.  If the client had been a master in the old network (or an
-    // isolated master with no network connectivity) it should defer to any
-    // masters which may already be on the network.  It will be cleared whenever
-    // the state machine transitions to the master state.
-    bool mForceLowPriority;
-    inline void setForceLowPriority(bool val) {
-        mForceLowPriority = val;
-        if (mState == ICommonClock::STATE_MASTER)
-            mClient_MasterDevicePriority = effectivePriority();
-    }
-
-    // Lock to synchronize access to internal state and configuration.
-    Mutex mLock;
-
-    // Flag updated by the common clock service to indicate that it does or does
-    // not currently have registered clients.  When the the auto disable flag is
-    // cleared on the common time service, the service will participate in
-    // network synchronization whenever it has a valid network interface to bind
-    // to.  When the auto disable flag is set on the common time service, it
-    // will only participate in network synchronization when it has both a valid
-    // interface AND currently active common clock clients.
-    bool mCommonClockHasClients;
-
-    // Internal logs used for dumpsys.
-    LogRing                 mStateChangeLog;
-    LogRing                 mElectionLog;
-    LogRing                 mBadPktLog;
-
-    // Configuration info
-    struct sockaddr_storage mMasterElectionEP;          // Endpoint over which we conduct master election
-    String8                 mBindIface;                 // Endpoint for the service to bind to.
-    bool                    mBindIfaceValid;            // whether or not the bind Iface is valid.
-    bool                    mBindIfaceDirty;            // whether or not the bind Iface is valid.
-    struct sockaddr_storage mMasterEP;                  // Endpoint of our current master (if any)
-    bool                    mMasterEPValid;
-    uint64_t                mDeviceID;                  // unique ID of this device
-    uint64_t                mSyncGroupID;               // synchronization group ID of this device.
-    uint8_t                 mMasterPriority;            // Priority of this device in master election.
-    uint32_t                mMasterAnnounceIntervalMs;
-    uint32_t                mSyncRequestIntervalMs;
-    uint32_t                mPanicThresholdUsec;
-    bool                    mAutoDisable;
-
-    // Config defaults.
-    static const char*      kDefaultMasterElectionAddr;
-    static const uint16_t   kDefaultMasterElectionPort;
-    static const uint64_t   kDefaultSyncGroupID;
-    static const uint8_t    kDefaultMasterPriority;
-    static const uint32_t   kDefaultMasterAnnounceIntervalMs;
-    static const uint32_t   kDefaultSyncRequestIntervalMs;
-    static const uint32_t   kDefaultPanicThresholdUsec;
-    static const bool       kDefaultAutoDisable;
-
-    // Priority mask and shift fields.
-    static const uint64_t kDeviceIDMask;
-    static const uint8_t  kDevicePriorityMask;
-    static const uint8_t  kDevicePriorityHiLowBit;
-    static const uint32_t kDevicePriorityShift;
-
-    // Unconfgurable constants
-    static const int      kSetupRetryTimeoutMs;
-    static const int64_t  kNoGoodDataPanicThresholdUsec;
-    static const uint32_t kRTTDiscardPanicThreshMultiplier;
-
-    /*** status while in the Initial state ***/
-    int mInitial_WhoIsMasterRequestTimeouts;
-    static const int kInitial_NumWhoIsMasterRetries;
-    static const int kInitial_WhoIsMasterTimeoutMs;
-
-    /*** status while in the Client state ***/
-    uint64_t mClient_MasterDeviceID;
-    uint8_t mClient_MasterDevicePriority;
-    bool mClient_SyncRequestPending;
-    int mClient_SyncRequestTimeouts;
-    uint32_t mClient_SyncsSentToCurMaster;
-    uint32_t mClient_SyncRespsRXedFromCurMaster;
-    uint32_t mClient_ExpiredSyncRespsRXedFromCurMaster;
-    int64_t mClient_FirstSyncTX;
-    int64_t mClient_LastGoodSyncRX;
-    PacketRTTLog mClient_PacketRTTLog;
-    static const int kClient_NumSyncRequestRetries;
-
-
-    /*** status while in the Master state ***/
-    static const uint32_t kDefaultMaster_AnnouncementIntervalMs;
-
-    /*** status while in the Ronin state ***/
-    int mRonin_WhoIsMasterRequestTimeouts;
-    static const int kRonin_NumWhoIsMasterRetries;
-    static const int kRonin_WhoIsMasterTimeoutMs;
-
-    /*** status while in the WaitForElection state ***/
-    static const int kWaitForElection_TimeoutMs;
-
-    static const int kInfiniteTimeout;
-
-    static const char* stateToString(ICommonClock::State s);
-    static void sockaddrToString(const sockaddr_storage& addr, bool addrValid,
-                                 char* buf, size_t bufLen);
-    static bool sockaddrMatch(const sockaddr_storage& a1,
-                              const sockaddr_storage& a2,
-                              bool matchAddressOnly);
-};
-
-}  // namespace android
-
-#endif  // ANDROID_COMMON_TIME_SERVER_H
diff --git a/libs/common_time/common_time_server_api.cpp b/libs/common_time/common_time_server_api.cpp
deleted file mode 100644
index 60e6567..0000000
--- a/libs/common_time/common_time_server_api.cpp
+++ /dev/null
@@ -1,440 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-/*
- * A service that exchanges time synchronization information between
- * a master that defines a timeline and clients that follow the timeline.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <binder/IServiceManager.h>
-#include <binder/IPCThreadState.h>
-
-#include "common_time_server.h"
-
-#include <inttypes.h>
-
-namespace android {
-
-//
-// Clock API
-//
-uint64_t CommonTimeServer::getTimelineID() {
-    AutoMutex _lock(&mLock);
-    return mTimelineID;
-}
-
-ICommonClock::State CommonTimeServer::getState() {
-    AutoMutex _lock(&mLock);
-    return mState;
-}
-
-status_t CommonTimeServer::getMasterAddr(struct sockaddr_storage* addr) {
-    AutoMutex _lock(&mLock);
-    if (mMasterEPValid) {
-        memcpy(addr, &mMasterEP, sizeof(*addr));
-        return OK;
-    }
-
-    return UNKNOWN_ERROR;
-}
-
-int32_t CommonTimeServer::getEstimatedError() {
-    AutoMutex _lock(&mLock);
-
-    if (ICommonClock::STATE_MASTER == mState)
-        return 0;
-
-    if (!mClockSynced)
-        return ICommonClock::kErrorEstimateUnknown;
-
-    return mClockRecovery.getLastErrorEstimate();
-}
-
-status_t CommonTimeServer::isCommonTimeValid(bool* valid,
-                                             uint32_t* timelineID) {
-    AutoMutex _lock(&mLock);
-    *valid = mCommonClock.isValid();
-    *timelineID = mTimelineID;
-    return OK;
-}
-
-//
-// Config API
-//
-status_t CommonTimeServer::getMasterElectionPriority(uint8_t *priority) {
-    AutoMutex _lock(&mLock);
-    *priority = mMasterPriority;
-    return OK;
-}
-
-status_t CommonTimeServer::setMasterElectionPriority(uint8_t priority) {
-    AutoMutex _lock(&mLock);
-
-    if (priority > 0x7F)
-        return BAD_VALUE;
-
-    mMasterPriority = priority;
-    return OK;
-}
-
-status_t CommonTimeServer::getMasterElectionEndpoint(
-        struct sockaddr_storage *addr) {
-    AutoMutex _lock(&mLock);
-    memcpy(addr, &mMasterElectionEP, sizeof(*addr));
-    return OK;
-}
-
-status_t CommonTimeServer::setMasterElectionEndpoint(
-        const struct sockaddr_storage *addr) {
-    AutoMutex _lock(&mLock);
-
-    if (!addr)
-        return BAD_VALUE;
-
-    // TODO: add proper support for IPv6
-    if (addr->ss_family != AF_INET)
-        return BAD_VALUE;
-
-    // Only multicast and broadcast endpoints with explicit ports are allowed.
-    uint16_t ipv4Port = ntohs(
-        reinterpret_cast<const struct sockaddr_in*>(addr)->sin_port);
-    if (!ipv4Port)
-        return BAD_VALUE;
-
-    uint32_t ipv4Addr = ntohl(
-        reinterpret_cast<const struct sockaddr_in*>(addr)->sin_addr.s_addr);
-    if ((ipv4Addr != 0xFFFFFFFF) && (0xE0000000 != (ipv4Addr & 0xF0000000)))
-        return BAD_VALUE;
-
-    memcpy(&mMasterElectionEP, addr, sizeof(mMasterElectionEP));
-
-    // Force a rebind in order to change election enpoints.
-    mBindIfaceDirty = true;
-    wakeupThread_l();
-    return OK;
-}
-
-status_t CommonTimeServer::getMasterElectionGroupId(uint64_t *id) {
-    AutoMutex _lock(&mLock);
-    *id = mSyncGroupID;
-    return OK;
-}
-
-status_t CommonTimeServer::setMasterElectionGroupId(uint64_t id) {
-    AutoMutex _lock(&mLock);
-    mSyncGroupID = id;
-    return OK;
-}
-
-status_t CommonTimeServer::getInterfaceBinding(String8& ifaceName) {
-    AutoMutex _lock(&mLock);
-    if (!mBindIfaceValid)
-        return INVALID_OPERATION;
-    ifaceName = mBindIface;
-    return OK;
-}
-
-status_t CommonTimeServer::setInterfaceBinding(const String8& ifaceName) {
-    AutoMutex _lock(&mLock);
-
-    mBindIfaceDirty = true;
-    if (ifaceName.size()) {
-        mBindIfaceValid = true;
-        mBindIface = ifaceName;
-    } else {
-        mBindIfaceValid = false;
-        mBindIface.clear();
-    }
-
-    wakeupThread_l();
-    return OK;
-}
-
-status_t CommonTimeServer::getMasterAnnounceInterval(int *interval) {
-    AutoMutex _lock(&mLock);
-    *interval = mMasterAnnounceIntervalMs;
-    return OK;
-}
-
-status_t CommonTimeServer::setMasterAnnounceInterval(int interval) {
-    AutoMutex _lock(&mLock);
-
-    if (interval > (6 *3600000)) // Max interval is once every 6 hrs
-        return BAD_VALUE;
-
-    if (interval < 500) // Min interval is once per 0.5 seconds
-        return BAD_VALUE;
-
-    mMasterAnnounceIntervalMs = interval;
-    if (ICommonClock::STATE_MASTER == mState) {
-        int pendingTimeout = mCurTimeout.msecTillTimeout();
-        if ((kInfiniteTimeout == pendingTimeout) ||
-            (pendingTimeout > interval)) {
-            mCurTimeout.setTimeout(mMasterAnnounceIntervalMs);
-            wakeupThread_l();
-        }
-    }
-
-    return OK;
-}
-
-status_t CommonTimeServer::getClientSyncInterval(int *interval) {
-    AutoMutex _lock(&mLock);
-    *interval = mSyncRequestIntervalMs;
-    return OK;
-}
-
-status_t CommonTimeServer::setClientSyncInterval(int interval) {
-    AutoMutex _lock(&mLock);
-
-    if (interval > (3600000)) // Max interval is once every 60 min
-        return BAD_VALUE;
-
-    if (interval < 250) // Min interval is once per 0.25 seconds
-        return BAD_VALUE;
-
-    mSyncRequestIntervalMs = interval;
-    if (ICommonClock::STATE_CLIENT == mState) {
-        int pendingTimeout = mCurTimeout.msecTillTimeout();
-        if ((kInfiniteTimeout == pendingTimeout) ||
-            (pendingTimeout > interval)) {
-            mCurTimeout.setTimeout(mSyncRequestIntervalMs);
-            wakeupThread_l();
-        }
-    }
-
-    return OK;
-}
-
-status_t CommonTimeServer::getPanicThreshold(int *threshold) {
-    AutoMutex _lock(&mLock);
-    *threshold = mPanicThresholdUsec;
-    return OK;
-}
-
-status_t CommonTimeServer::setPanicThreshold(int threshold) {
-    AutoMutex _lock(&mLock);
-
-    if (threshold < 1000) // Min threshold is 1mSec
-        return BAD_VALUE;
-
-    mPanicThresholdUsec = threshold;
-    return OK;
-}
-
-status_t CommonTimeServer::getAutoDisable(bool *autoDisable) {
-    AutoMutex _lock(&mLock);
-    *autoDisable = mAutoDisable;
-    return OK;
-}
-
-status_t CommonTimeServer::setAutoDisable(bool autoDisable) {
-    AutoMutex _lock(&mLock);
-    mAutoDisable = autoDisable;
-    wakeupThread_l();
-    return OK;
-}
-
-status_t CommonTimeServer::forceNetworklessMasterMode() {
-    AutoMutex _lock(&mLock);
-
-    // Can't force networkless master mode if we are currently bound to a
-    // network.
-    if (mSocket >= 0)
-        return INVALID_OPERATION;
-
-    becomeMaster("force networkless");
-
-    return OK;
-}
-
-void CommonTimeServer::reevaluateAutoDisableState(bool commonClockHasClients) {
-    AutoMutex _lock(&mLock);
-    bool needWakeup = (mAutoDisable && mMasterEPValid &&
-                      (commonClockHasClients != mCommonClockHasClients));
-
-    mCommonClockHasClients = commonClockHasClients;
-
-    if (needWakeup) {
-        ALOGI("Waking up service, auto-disable is engaged and service now has%s"
-             " clients", mCommonClockHasClients ? "" : " no");
-        wakeupThread_l();
-    }
-}
-
-#define dump_printf(a, b...) do {                 \
-    int res;                                      \
-    res = snprintf(buffer, sizeof(buffer), a, b); \
-    buffer[sizeof(buffer) - 1] = 0;               \
-    if (res > 0)                                  \
-        write(fd, buffer, res);                   \
-} while (0)
-#define checked_percentage(a, b) ((0 == (b)) ? 0.0f : ((100.0f * (a)) / (b)))
-
-status_t CommonTimeServer::dumpClockInterface(int fd,
-                                              const Vector<String16>& /* args */,
-                                              size_t activeClients) {
-    AutoMutex _lock(&mLock);
-    const size_t SIZE = 256;
-    char buffer[SIZE];
-
-    if (checkCallingPermission(String16("android.permission.DUMP")) == false) {
-        snprintf(buffer, SIZE, "Permission Denial: "
-                 "can't dump CommonClockService from pid=%d, uid=%d\n",
-                 IPCThreadState::self()->getCallingPid(),
-                 IPCThreadState::self()->getCallingUid());
-        write(fd, buffer, strlen(buffer));
-    } else {
-        int64_t commonTime;
-        int64_t localTime;
-        bool    synced;
-        char maStr[64];
-
-        localTime  = mLocalClock.getLocalTime();
-        synced     = (OK == mCommonClock.localToCommon(localTime, &commonTime));
-        sockaddrToString(mMasterEP, mMasterEPValid, maStr, sizeof(maStr));
-
-        dump_printf("Common Clock Service Status\nLocal time     : %" PRId64 "\n",
-                    localTime);
-
-        if (synced)
-            dump_printf("Common time    : %" PRId64 "\n", commonTime);
-        else
-            dump_printf("Common time    : %s\n", "not synced");
-
-        dump_printf("Timeline ID    : %016" PRIu64 "\n", mTimelineID);
-        dump_printf("State          : %s\n", stateToString(mState));
-        dump_printf("Master Addr    : %s\n", maStr);
-
-
-        if (synced) {
-            int32_t est = (ICommonClock::STATE_MASTER != mState)
-                        ? mClockRecovery.getLastErrorEstimate()
-                        : 0;
-            dump_printf("Error Est.     : %.3f msec\n",
-                        static_cast<float>(est) / 1000.0);
-        } else {
-            dump_printf("Error Est.     : %s\n", "unknown");
-        }
-
-        dump_printf("Syncs TXes     : %u\n", mClient_SyncsSentToCurMaster);
-        dump_printf("Syncs RXes     : %u (%.2f%%)\n",
-                    mClient_SyncRespsRXedFromCurMaster,
-                    checked_percentage(
-                        mClient_SyncRespsRXedFromCurMaster,
-                        mClient_SyncsSentToCurMaster));
-        dump_printf("RXs Expired    : %u (%.2f%%)\n",
-                    mClient_ExpiredSyncRespsRXedFromCurMaster,
-                    checked_percentage(
-                        mClient_ExpiredSyncRespsRXedFromCurMaster,
-                        mClient_SyncsSentToCurMaster));
-
-        if (!mClient_LastGoodSyncRX) {
-            dump_printf("Last Good RX   : %s\n", "unknown");
-        } else {
-            int64_t localDelta, usecDelta;
-            localDelta = localTime - mClient_LastGoodSyncRX;
-            usecDelta  = mCommonClock.localDurationToCommonDuration(localDelta);
-            dump_printf("Last Good RX   : %" PRId64 " uSec ago\n", usecDelta);
-        }
-
-        dump_printf("Active Clients : %zu\n", activeClients);
-        mClient_PacketRTTLog.dumpLog(fd, mCommonClock);
-        mStateChangeLog.dumpLog(fd);
-        mElectionLog.dumpLog(fd);
-        mBadPktLog.dumpLog(fd);
-    }
-
-    return NO_ERROR;
-}
-
-status_t CommonTimeServer::dumpConfigInterface(int fd,
-                                               const Vector<String16>& /* args */) {
-    AutoMutex _lock(&mLock);
-    const size_t SIZE = 256;
-    char buffer[SIZE];
-
-    if (checkCallingPermission(String16("android.permission.DUMP")) == false) {
-        snprintf(buffer, SIZE, "Permission Denial: "
-                 "can't dump CommonTimeConfigService from pid=%d, uid=%d\n",
-                 IPCThreadState::self()->getCallingPid(),
-                 IPCThreadState::self()->getCallingUid());
-        write(fd, buffer, strlen(buffer));
-    } else {
-        char meStr[64];
-
-        sockaddrToString(mMasterElectionEP, true, meStr, sizeof(meStr));
-
-        dump_printf("Common Time Config Service Status\n"
-                    "Bound Interface           : %s\n",
-                    mBindIfaceValid ? mBindIface.string() : "<unbound>");
-        dump_printf("Master Election Endpoint  : %s\n", meStr);
-        dump_printf("Master Election Group ID  : %016" PRIu64 "\n", mSyncGroupID);
-        dump_printf("Master Announce Interval  : %d mSec\n",
-                    mMasterAnnounceIntervalMs);
-        dump_printf("Client Sync Interval      : %d mSec\n",
-                    mSyncRequestIntervalMs);
-        dump_printf("Panic Threshold           : %d uSec\n",
-                    mPanicThresholdUsec);
-        dump_printf("Base ME Prio              : 0x%02x\n",
-                    static_cast<uint32_t>(mMasterPriority));
-        dump_printf("Effective ME Prio         : 0x%02x\n",
-                    static_cast<uint32_t>(effectivePriority()));
-        dump_printf("Auto Disable Allowed      : %s\n",
-                    mAutoDisable ? "yes" : "no");
-        dump_printf("Auto Disable Engaged      : %s\n",
-                    shouldAutoDisable() ? "yes" : "no");
-    }
-
-    return NO_ERROR;
-}
-
-void CommonTimeServer::PacketRTTLog::dumpLog(int fd, const CommonClock& cclk) {
-    const size_t SIZE = 256;
-    char buffer[SIZE];
-    uint32_t avail = !logFull ? wrPtr : RTT_LOG_SIZE;
-
-    if (!avail)
-        return;
-
-    dump_printf("\nPacket Log (%d entries)\n", avail);
-
-    uint32_t ndx = 0;
-    uint32_t i = logFull ? wrPtr : 0;
-    do {
-        if (rxTimes[i]) {
-            int64_t delta = rxTimes[i] - txTimes[i];
-            int64_t deltaUsec = cclk.localDurationToCommonDuration(delta);
-            dump_printf("pkt[%2d] : localTX %12" PRId64 " localRX %12" PRId64 " "
-                        "(%.3f msec RTT)\n",
-                        ndx, txTimes[i], rxTimes[i],
-                        static_cast<float>(deltaUsec) / 1000.0);
-        } else {
-            dump_printf("pkt[%2d] : localTX %12" PRId64 " localRX never\n",
-                        ndx, txTimes[i]);
-        }
-        i = (i + 1) % RTT_LOG_SIZE;
-        ndx++;
-    } while (i != wrPtr);
-}
-
-#undef dump_printf
-#undef checked_percentage
-
-}  // namespace android
diff --git a/libs/common_time/common_time_server_packets.cpp b/libs/common_time/common_time_server_packets.cpp
deleted file mode 100644
index c7c893d..0000000
--- a/libs/common_time/common_time_server_packets.cpp
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-/*
- * A service that exchanges time synchronization information between
- * a master that defines a timeline and clients that follow the timeline.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <arpa/inet.h>
-#include <stdint.h>
-
-#include "common_time_server_packets.h"
-
-namespace android {
-
-const uint32_t TimeServicePacketHeader::kMagic =
-    (static_cast<uint32_t>('c') << 24) |
-    (static_cast<uint32_t>('c') << 16) |
-    (static_cast<uint32_t>('l') <<  8) |
-     static_cast<uint32_t>('k');
-
-const uint16_t TimeServicePacketHeader::kCurVersion = 1;
-
-#define SERIALIZE_FIELD(field_name, type, converter)        \
-    do {                                                    \
-        if ((offset + sizeof(field_name)) > length)         \
-            return -1;                                      \
-        *((type*)(data + offset)) = converter(field_name);  \
-        offset += sizeof(field_name);                       \
-    } while (0)
-#define SERIALIZE_INT16(field_name) SERIALIZE_FIELD(field_name, int16_t, htons)
-#define SERIALIZE_INT32(field_name) SERIALIZE_FIELD(field_name, int32_t, htonl)
-#define SERIALIZE_INT64(field_name) SERIALIZE_FIELD(field_name, int64_t, htonq)
-
-#define DESERIALIZE_FIELD(field_name, type, converter)       \
-    do {                                                     \
-        if ((offset + sizeof(field_name)) > length)          \
-            return -1;                                       \
-        (field_name) = converter(*((type*)(data + offset))); \
-        offset += sizeof(field_name);                        \
-    } while (0)
-#define DESERIALIZE_INT16(field_name) DESERIALIZE_FIELD(field_name, int16_t, ntohs)
-#define DESERIALIZE_INT32(field_name) DESERIALIZE_FIELD(field_name, int32_t, ntohl)
-#define DESERIALIZE_INT64(field_name) DESERIALIZE_FIELD(field_name, int64_t, ntohq)
-
-#define kDevicePriorityShift 56
-#define kDeviceIDMask ((static_cast<uint64_t>(1) << kDevicePriorityShift) - 1)
-
-inline uint64_t packDeviceID(uint64_t devID, uint8_t prio) {
-    return (devID & kDeviceIDMask) |
-           (static_cast<uint64_t>(prio) << kDevicePriorityShift);
-}
-
-inline uint64_t unpackDeviceID(uint64_t packed) {
-    return (packed & kDeviceIDMask);
-}
-
-inline uint8_t unpackDevicePriority(uint64_t packed) {
-    return static_cast<uint8_t>(packed >> kDevicePriorityShift);
-}
-
-ssize_t TimeServicePacketHeader::serializeHeader(uint8_t* data,
-                                                 uint32_t length) {
-    ssize_t offset = 0;
-    int16_t pktType = static_cast<int16_t>(packetType);
-    SERIALIZE_INT32(magic);
-    SERIALIZE_INT16(version);
-    SERIALIZE_INT16(pktType);
-    SERIALIZE_INT64(timelineID);
-    SERIALIZE_INT64(syncGroupID);
-    return offset;
-}
-
-ssize_t TimeServicePacketHeader::deserializeHeader(const uint8_t* data,
-                                                   uint32_t length) {
-    ssize_t offset = 0;
-    int16_t tmp;
-    DESERIALIZE_INT32(magic);
-    DESERIALIZE_INT16(version);
-    DESERIALIZE_INT16(tmp);
-    DESERIALIZE_INT64(timelineID);
-    DESERIALIZE_INT64(syncGroupID);
-    packetType = static_cast<TimeServicePacketType>(tmp);
-    return offset;
-}
-
-ssize_t TimeServicePacketHeader::serializePacket(uint8_t* data,
-                                                 uint32_t length) {
-    ssize_t ret, tmp;
-
-    ret = serializeHeader(data, length);
-    if (ret < 0)
-        return ret;
-
-    data += ret;
-    length -= ret;
-
-    switch (packetType) {
-        case TIME_PACKET_WHO_IS_MASTER_REQUEST:
-            tmp =((WhoIsMasterRequestPacket*)(this))->serializePacket(data,
-                                                                      length);
-            break;
-        case TIME_PACKET_WHO_IS_MASTER_RESPONSE:
-            tmp =((WhoIsMasterResponsePacket*)(this))->serializePacket(data,
-                                                                       length);
-            break;
-        case TIME_PACKET_SYNC_REQUEST:
-            tmp =((SyncRequestPacket*)(this))->serializePacket(data, length);
-            break;
-        case TIME_PACKET_SYNC_RESPONSE:
-            tmp =((SyncResponsePacket*)(this))->serializePacket(data, length);
-            break;
-        case TIME_PACKET_MASTER_ANNOUNCEMENT:
-            tmp =((MasterAnnouncementPacket*)(this))->serializePacket(data,
-                                                                      length);
-            break;
-        default:
-            return -1;
-    }
-
-    if (tmp < 0)
-        return tmp;
-
-    return ret + tmp;
-}
-
-ssize_t UniversalTimeServicePacket::deserializePacket(
-        const uint8_t* data,
-        uint32_t length,
-        uint64_t expectedSyncGroupID) {
-    ssize_t ret;
-    TimeServicePacketHeader* header;
-    if (length < 8)
-        return -1;
-
-    packetType = ntohs(*((uint16_t*)(data + 6)));
-    switch (packetType) {
-        case TIME_PACKET_WHO_IS_MASTER_REQUEST:
-            ret = p.who_is_master_request.deserializePacket(data, length);
-            header = &p.who_is_master_request;
-            break;
-        case TIME_PACKET_WHO_IS_MASTER_RESPONSE:
-            ret = p.who_is_master_response.deserializePacket(data, length);
-            header = &p.who_is_master_response;
-            break;
-        case TIME_PACKET_SYNC_REQUEST:
-            ret = p.sync_request.deserializePacket(data, length);
-            header = &p.sync_request;
-            break;
-        case TIME_PACKET_SYNC_RESPONSE:
-            ret = p.sync_response.deserializePacket(data, length);
-            header = &p.sync_response;
-            break;
-        case TIME_PACKET_MASTER_ANNOUNCEMENT:
-            ret = p.master_announcement.deserializePacket(data, length);
-            header = &p.master_announcement;
-            break;
-        default:
-            return -1;
-    }
-
-    if ((ret >= 0) && !header->checkPacket(expectedSyncGroupID))
-        ret = -1;
-
-    return ret;
-}
-
-ssize_t WhoIsMasterRequestPacket::serializePacket(uint8_t* data,
-                                                  uint32_t length) {
-    ssize_t offset = serializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed = packDeviceID(senderDeviceID, senderDevicePriority);
-        SERIALIZE_INT64(packed);
-    }
-    return offset;
-}
-
-ssize_t WhoIsMasterRequestPacket::deserializePacket(const uint8_t* data,
-                                                    uint32_t length) {
-    ssize_t offset = deserializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed;
-        DESERIALIZE_INT64(packed);
-        senderDeviceID       = unpackDeviceID(packed);
-        senderDevicePriority = unpackDevicePriority(packed);
-    }
-    return offset;
-}
-
-ssize_t WhoIsMasterResponsePacket::serializePacket(uint8_t* data,
-                                                   uint32_t length) {
-    ssize_t offset = serializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed = packDeviceID(deviceID, devicePriority);
-        SERIALIZE_INT64(packed);
-    }
-    return offset;
-}
-
-ssize_t WhoIsMasterResponsePacket::deserializePacket(const uint8_t* data,
-                                                     uint32_t length) {
-    ssize_t offset = deserializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed;
-        DESERIALIZE_INT64(packed);
-        deviceID       = unpackDeviceID(packed);
-        devicePriority = unpackDevicePriority(packed);
-    }
-    return offset;
-}
-
-ssize_t SyncRequestPacket::serializePacket(uint8_t* data,
-                                           uint32_t length) {
-    ssize_t offset = serializeHeader(data, length);
-    if (offset > 0) {
-        SERIALIZE_INT64(clientTxLocalTime);
-    }
-    return offset;
-}
-
-ssize_t SyncRequestPacket::deserializePacket(const uint8_t* data,
-                                             uint32_t length) {
-    ssize_t offset = deserializeHeader(data, length);
-    if (offset > 0) {
-        DESERIALIZE_INT64(clientTxLocalTime);
-    }
-    return offset;
-}
-
-ssize_t SyncResponsePacket::serializePacket(uint8_t* data,
-                                            uint32_t length) {
-    ssize_t offset = serializeHeader(data, length);
-    if (offset > 0) {
-        SERIALIZE_INT64(clientTxLocalTime);
-        SERIALIZE_INT64(masterRxCommonTime);
-        SERIALIZE_INT64(masterTxCommonTime);
-        SERIALIZE_INT32(nak);
-    }
-    return offset;
-}
-
-ssize_t SyncResponsePacket::deserializePacket(const uint8_t* data,
-                                              uint32_t length) {
-    ssize_t offset = deserializeHeader(data, length);
-    if (offset > 0) {
-        DESERIALIZE_INT64(clientTxLocalTime);
-        DESERIALIZE_INT64(masterRxCommonTime);
-        DESERIALIZE_INT64(masterTxCommonTime);
-        DESERIALIZE_INT32(nak);
-    }
-    return offset;
-}
-
-ssize_t MasterAnnouncementPacket::serializePacket(uint8_t* data,
-                                                  uint32_t length) {
-    ssize_t offset = serializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed = packDeviceID(deviceID, devicePriority);
-        SERIALIZE_INT64(packed);
-    }
-    return offset;
-}
-
-ssize_t MasterAnnouncementPacket::deserializePacket(const uint8_t* data,
-                                                    uint32_t length) {
-    ssize_t offset = deserializeHeader(data, length);
-    if (offset > 0) {
-        uint64_t packed;
-        DESERIALIZE_INT64(packed);
-        deviceID       = unpackDeviceID(packed);
-        devicePriority = unpackDevicePriority(packed);
-    }
-    return offset;
-}
-
-}  // namespace android
-
diff --git a/libs/common_time/common_time_server_packets.h b/libs/common_time/common_time_server_packets.h
deleted file mode 100644
index 57ba8a2..0000000
--- a/libs/common_time/common_time_server_packets.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef ANDROID_COMMON_TIME_SERVER_PACKETS_H
-#define ANDROID_COMMON_TIME_SERVER_PACKETS_H
-
-#include <stdint.h>
-#include <common_time/ICommonClock.h>
-
-namespace android {
-
-/***** time sync protocol packets *****/
-
-enum TimeServicePacketType {
-    TIME_PACKET_WHO_IS_MASTER_REQUEST = 1,
-    TIME_PACKET_WHO_IS_MASTER_RESPONSE,
-    TIME_PACKET_SYNC_REQUEST,
-    TIME_PACKET_SYNC_RESPONSE,
-    TIME_PACKET_MASTER_ANNOUNCEMENT,
-};
-
-class TimeServicePacketHeader {
-  public:
-    friend class UniversalTimeServicePacket;
-    // magic number identifying the protocol
-    uint32_t magic;
-
-    // protocol version of the packet
-    uint16_t version;
-
-    // type of the packet
-    TimeServicePacketType packetType;
-
-    // the timeline ID
-    uint64_t timelineID;
-
-    // synchronization group this packet belongs to (used to operate multiple
-    // synchronization domains which all use the same master election endpoint)
-    uint64_t syncGroupID;
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-
-  protected:
-    void initHeader(TimeServicePacketType type,
-                    const uint64_t tlID,
-                    const uint64_t groupID) {
-        magic              = kMagic;
-        version            = kCurVersion;
-        packetType         = type;
-        timelineID         = tlID;
-        syncGroupID        = groupID;
-    }
-
-    bool checkPacket(uint64_t expectedSyncGroupID) const {
-        return ((magic       == kMagic) &&
-                (version     == kCurVersion) &&
-                (!expectedSyncGroupID || (syncGroupID == expectedSyncGroupID)));
-    }
-
-    ssize_t serializeHeader(uint8_t* data, uint32_t length);
-    ssize_t deserializeHeader(const uint8_t* data, uint32_t length);
-
-  private:
-    static const uint32_t kMagic;
-    static const uint16_t kCurVersion;
-};
-
-// packet querying for a suitable master
-class WhoIsMasterRequestPacket : public TimeServicePacketHeader {
-  public:
-    uint64_t senderDeviceID;
-    uint8_t senderDevicePriority;
-
-    void initHeader(const uint64_t groupID) {
-        TimeServicePacketHeader::initHeader(TIME_PACKET_WHO_IS_MASTER_REQUEST,
-                                            ICommonClock::kInvalidTimelineID,
-                                            groupID);
-    }
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-    ssize_t deserializePacket(const uint8_t* data, uint32_t length);
-};
-
-// response to a WhoIsMaster request
-class WhoIsMasterResponsePacket : public TimeServicePacketHeader {
-  public:
-    uint64_t deviceID;
-    uint8_t devicePriority;
-
-    void initHeader(const uint64_t tlID, const uint64_t groupID) {
-        TimeServicePacketHeader::initHeader(TIME_PACKET_WHO_IS_MASTER_RESPONSE,
-                                            tlID, groupID);
-    }
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-    ssize_t deserializePacket(const uint8_t* data, uint32_t length);
-};
-
-// packet sent by a client requesting correspondence between local
-// and common time
-class SyncRequestPacket : public TimeServicePacketHeader {
-  public:
-    // local time when this request was transmitted
-    int64_t clientTxLocalTime;
-
-    void initHeader(const uint64_t tlID, const uint64_t groupID) {
-        TimeServicePacketHeader::initHeader(TIME_PACKET_SYNC_REQUEST,
-                                            tlID, groupID);
-    }
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-    ssize_t deserializePacket(const uint8_t* data, uint32_t length);
-};
-
-// response to a sync request sent by the master
-class SyncResponsePacket : public TimeServicePacketHeader {
-  public:
-    // local time when this request was transmitted by the client
-    int64_t clientTxLocalTime;
-
-    // common time when the master received the request
-    int64_t masterRxCommonTime;
-
-    // common time when the master transmitted the response
-    int64_t masterTxCommonTime;
-
-    // flag that is set if the recipient of the sync request is not acting
-    // as a master for the requested timeline
-    uint32_t nak;
-
-    void initHeader(const uint64_t tlID, const uint64_t groupID) {
-        TimeServicePacketHeader::initHeader(TIME_PACKET_SYNC_RESPONSE,
-                                            tlID, groupID);
-    }
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-    ssize_t deserializePacket(const uint8_t* data, uint32_t length);
-};
-
-// announcement of the master's presence
-class MasterAnnouncementPacket : public TimeServicePacketHeader {
-  public:
-    // the master's device ID
-    uint64_t deviceID;
-    uint8_t devicePriority;
-
-    void initHeader(const uint64_t tlID, const uint64_t groupID) {
-        TimeServicePacketHeader::initHeader(TIME_PACKET_MASTER_ANNOUNCEMENT,
-                                            tlID, groupID);
-    }
-
-    ssize_t serializePacket(uint8_t* data, uint32_t length);
-    ssize_t deserializePacket(const uint8_t* data, uint32_t length);
-};
-
-class UniversalTimeServicePacket {
-  public:
-    uint16_t packetType;
-    union {
-        WhoIsMasterRequestPacket  who_is_master_request;
-        WhoIsMasterResponsePacket who_is_master_response;
-        SyncRequestPacket         sync_request;
-        SyncResponsePacket        sync_response;
-        MasterAnnouncementPacket  master_announcement;
-    } p;
-
-    ssize_t deserializePacket(const uint8_t* data,
-                              uint32_t       length,
-                              uint64_t       expectedSyncGroupID);
-};
-
-};  // namespace android
-
-#endif  // ANDROID_COMMON_TIME_SERVER_PACKETS_H
-
-
diff --git a/libs/common_time/diag_thread.cpp b/libs/common_time/diag_thread.cpp
deleted file mode 100644
index 4cb9551..0000000
--- a/libs/common_time/diag_thread.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <fcntl.h>
-#include <linux/in.h>
-#include <linux/tcp.h>
-#include <poll.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <utils/Errors.h>
-#include <utils/misc.h>
-
-#include <common_time/local_clock.h>
-
-#include "common_clock.h"
-#include "diag_thread.h"
-
-#define kMaxEvents 16
-#define kListenPort 9876
-
-static bool setNonblocking(int fd) {
-    int flags = fcntl(fd, F_GETFL);
-    if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) < 0) {
-        ALOGE("Failed to set socket (%d) to non-blocking mode (errno %d)",
-             fd, errno);
-        return false;
-    }
-
-    return true;
-}
-
-static bool setNodelay(int fd) {
-    int tmp = 1;
-    if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &tmp, sizeof(tmp)) < 0) {
-        ALOGE("Failed to set socket (%d) to no-delay mode (errno %d)",
-             fd, errno);
-        return false;
-    }
-
-    return true;
-}
-
-namespace android {
-
-DiagThread::DiagThread(CommonClock* common_clock, LocalClock* local_clock) {
-    common_clock_ = common_clock;
-    local_clock_ = local_clock;
-    listen_fd_ = -1;
-    data_fd_ = -1;
-    kernel_logID_basis_known_ = false;
-    discipline_log_ID_ = 0;
-}
-
-DiagThread::~DiagThread() {
-}
-
-status_t DiagThread::startWorkThread() {
-    status_t res;
-    stopWorkThread();
-    res = run("Diag");
-
-    if (res != OK)
-        ALOGE("Failed to start work thread (res = %d)", res);
-
-    return res;
-}
-
-void DiagThread::stopWorkThread() {
-    status_t res;
-    res = requestExitAndWait(); // block until thread exit.
-    if (res != OK)
-        ALOGE("Failed to stop work thread (res = %d)", res);
-}
-
-bool DiagThread::openListenSocket() {
-    bool ret = false;
-    int flags;
-    cleanupListenSocket();
-
-    if ((listen_fd_ = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
-        ALOGE("Socket failed.");
-        goto bailout;
-    }
-
-    // Set non-blocking operation
-    if (!setNonblocking(listen_fd_))
-        goto bailout;
-
-    struct sockaddr_in addr;
-    memset(&addr, 0, sizeof(addr));
-    addr.sin_family = AF_INET;
-    addr.sin_addr.s_addr = INADDR_ANY;
-    addr.sin_port = htons(kListenPort);
-
-    if (bind(listen_fd_, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
-        ALOGE("Bind failed.");
-        goto bailout;
-    }
-
-    if (listen(listen_fd_, 1) < 0) {
-        ALOGE("Listen failed.");
-        goto bailout;
-    }
-
-    ret = true;
-bailout:
-    if (!ret)
-        cleanupListenSocket();
-
-    return ret;
-}
-
-void DiagThread::cleanupListenSocket() {
-    if (listen_fd_ >= 0) {
-        int res;
-
-        struct linger l;
-        l.l_onoff  = 1;
-        l.l_linger = 0;
-
-        setsockopt(listen_fd_, SOL_SOCKET, SO_LINGER, &l, sizeof(l));
-        shutdown(listen_fd_, SHUT_RDWR);
-        close(listen_fd_);
-        listen_fd_ = -1;
-    }
-}
-
-void DiagThread::cleanupDataSocket() {
-    if (data_fd_ >= 0) {
-        int res;
-
-        struct linger l;
-        l.l_onoff  = 1;
-        l.l_linger = 0;
-
-        setsockopt(data_fd_, SOL_SOCKET, SO_LINGER, &l, sizeof(l));
-        shutdown(data_fd_, SHUT_RDWR);
-        close(data_fd_);
-        data_fd_ = -1;
-    }
-}
-
-void DiagThread::resetLogIDs() {
-    // Drain and discard all of the events from the kernel
-    struct local_time_debug_event events[kMaxEvents];
-    while(local_clock_->getDebugLog(events, kMaxEvents) > 0)
-        ;
-
-    {
-        Mutex::Autolock lock(&discipline_log_lock_);
-        discipline_log_.clear();
-        discipline_log_ID_ = 0;
-    }
-
-    kernel_logID_basis_known_ = false;
-}
-
-void DiagThread::pushDisciplineEvent(int64_t observed_local_time,
-                                     int64_t observed_common_time,
-                                     int64_t nominal_common_time,
-                                     int32_t total_correction,
-                                     int32_t rtt) {
-    Mutex::Autolock lock(&discipline_log_lock_);
-
-    DisciplineEventRecord evt;
-
-    evt.event_id = discipline_log_ID_++;
-
-    evt.action_local_time = local_clock_->getLocalTime();
-    common_clock_->localToCommon(evt.action_local_time,
-            &evt.action_common_time);
-
-    evt.observed_local_time  = observed_local_time;
-    evt.observed_common_time = observed_common_time;
-    evt.nominal_common_time  = nominal_common_time;
-    evt.total_correction     = total_correction;
-    evt.rtt                  = rtt;
-
-    discipline_log_.push_back(evt);
-    while (discipline_log_.size() > kMaxDisciplineLogSize)
-        discipline_log_.erase(discipline_log_.begin());
-}
-
-bool DiagThread::threadLoop() {
-    struct pollfd poll_fds[1];
-
-    if (!openListenSocket()) {
-        ALOGE("Failed to open listen socket");
-        goto bailout;
-    }
-
-    while (!exitPending()) {
-        memset(&poll_fds, 0, sizeof(poll_fds));
-
-        if (data_fd_ < 0) {
-            poll_fds[0].fd     = listen_fd_;
-            poll_fds[0].events = POLLIN;
-        } else {
-            poll_fds[0].fd     = data_fd_;
-            poll_fds[0].events = POLLRDHUP | POLLIN;
-        }
-
-        int poll_res = poll(poll_fds, NELEM(poll_fds), 50);
-        if (poll_res < 0) {
-            ALOGE("Fatal error (%d,%d) while waiting on events",
-                 poll_res, errno);
-            goto bailout;
-        }
-
-        if (exitPending())
-            break;
-
-        if (poll_fds[0].revents) {
-            if (poll_fds[0].fd == listen_fd_) {
-                data_fd_ = accept(listen_fd_, NULL, NULL);
-
-                if (data_fd_ < 0) {
-                    ALOGW("Failed accept on socket %d with err %d",
-                         listen_fd_, errno);
-                } else {
-                    if (!setNonblocking(data_fd_))
-                        cleanupDataSocket();
-                    if (!setNodelay(data_fd_))
-                        cleanupDataSocket();
-                }
-            } else
-                if (poll_fds[0].fd == data_fd_) {
-                    if (poll_fds[0].revents & POLLRDHUP) {
-                        // Connection hung up; time to clean up.
-                        cleanupDataSocket();
-                    } else
-                        if (poll_fds[0].revents & POLLIN) {
-                            uint8_t cmd;
-                            if (read(data_fd_, &cmd, sizeof(cmd)) > 0) {
-                                switch(cmd) {
-                                    case 'r':
-                                    case 'R':
-                                        resetLogIDs();
-                                        break;
-                                }
-                            }
-                        }
-                }
-        }
-
-        struct local_time_debug_event events[kMaxEvents];
-        int amt = local_clock_->getDebugLog(events, kMaxEvents);
-
-        if (amt > 0) {
-            for (int i = 0; i < amt; i++) {
-                struct local_time_debug_event& e = events[i];
-
-                if (!kernel_logID_basis_known_) {
-                    kernel_logID_basis_ = e.local_timesync_event_id;
-                    kernel_logID_basis_known_ = true;
-                }
-
-                char buf[1024];
-                int64_t common_time;
-                status_t res = common_clock_->localToCommon(e.local_time,
-                                                            &common_time);
-                snprintf(buf, sizeof(buf), "E,%lld,%lld,%lld,%d\n",
-                         e.local_timesync_event_id - kernel_logID_basis_,
-                         e.local_time,
-                         common_time,
-                         (OK == res) ? 1 : 0);
-                buf[sizeof(buf) - 1] = 0;
-
-                if (data_fd_ >= 0)
-                    write(data_fd_, buf, strlen(buf));
-            }
-        }
-
-        { // scope for autolock pattern
-            Mutex::Autolock lock(&discipline_log_lock_);
-
-            while (discipline_log_.size() > 0) {
-                char buf[1024];
-                DisciplineEventRecord& e = *discipline_log_.begin();
-                snprintf(buf, sizeof(buf),
-                         "D,%lld,%lld,%lld,%lld,%lld,%lld,%d,%d\n",
-                         e.event_id,
-                         e.action_local_time,
-                         e.action_common_time,
-                         e.observed_local_time,
-                         e.observed_common_time,
-                         e.nominal_common_time,
-                         e.total_correction,
-                         e.rtt);
-                buf[sizeof(buf) - 1] = 0;
-
-                if (data_fd_ >= 0)
-                    write(data_fd_, buf, strlen(buf));
-
-                discipline_log_.erase(discipline_log_.begin());
-            }
-        }
-    }
-
-bailout:
-    cleanupDataSocket();
-    cleanupListenSocket();
-    return false;
-}
-
-}  // namespace android
diff --git a/libs/common_time/diag_thread.h b/libs/common_time/diag_thread.h
deleted file mode 100644
index c630e0d..0000000
--- a/libs/common_time/diag_thread.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-#ifndef __DIAG_THREAD_H__
-#define __DIAG_THREAD_H__
-
-#include <utils/List.h>
-#include <utils/threads.h>
-
-namespace android {
-
-class CommonClock;
-class LocalClock;
-
-class DiagThread : public Thread {
-  public:
-    DiagThread(CommonClock* common_clock, LocalClock* local_clock);
-    ~DiagThread();
-
-    status_t      startWorkThread();
-    void          stopWorkThread();
-    virtual bool  threadLoop();
-
-    void pushDisciplineEvent(int64_t observed_local_time,
-                             int64_t observed_common_time,
-                             int64_t nominal_common_time,
-                             int32_t total_correction,
-                             int32_t rtt);
-
-  private:
-    typedef struct {
-        int64_t event_id;
-        int64_t action_local_time;
-        int64_t action_common_time;
-        int64_t observed_local_time;
-        int64_t observed_common_time;
-        int64_t nominal_common_time;
-        int32_t total_correction;
-        int32_t rtt;
-    } DisciplineEventRecord;
-
-    bool            openListenSocket();
-    void            cleanupListenSocket();
-    void            cleanupDataSocket();
-    void            resetLogIDs();
-
-    CommonClock*    common_clock_;
-    LocalClock*     local_clock_;
-    int             listen_fd_;
-    int             data_fd_;
-
-    int64_t         kernel_logID_basis_;
-    bool            kernel_logID_basis_known_;
-
-    static const size_t         kMaxDisciplineLogSize = 16;
-    Mutex                       discipline_log_lock_;
-    List<DisciplineEventRecord> discipline_log_;
-    int64_t                     discipline_log_ID_;
-};
-
-}  // namespace android
-
-#endif  //__ DIAG_THREAD_H__
diff --git a/libs/common_time/main.cpp b/libs/common_time/main.cpp
deleted file mode 100644
index ac52c85..0000000
--- a/libs/common_time/main.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-/*
- * A service that exchanges time synchronization information between
- * a master that defines a timeline and clients that follow the timeline.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include <binder/IPCThreadState.h>
-#include <binder/ProcessState.h>
-
-#include "common_time_server.h"
-
-int main() {
-    using namespace android;
-
-    sp<CommonTimeServer> service = new CommonTimeServer();
-    if (service == NULL)
-        return 1;
-
-    ProcessState::self()->startThreadPool();
-    service->run("CommonTimeServer", ANDROID_PRIORITY_NORMAL);
-
-    IPCThreadState::self()->joinThreadPool();
-    return 0;
-}
-
diff --git a/libs/common_time/utils.cpp b/libs/common_time/utils.cpp
deleted file mode 100644
index ddcdfe7..0000000
--- a/libs/common_time/utils.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#define LOG_TAG "common_time"
-#include <utils/Log.h>
-
-#include "utils.h"
-
-namespace android {
-
-void Timeout::setTimeout(int msec) {
-    if (msec < 0) {
-        mSystemEndTime = 0;
-        return;
-    }
-
-    mSystemEndTime = systemTime() + (static_cast<nsecs_t>(msec) * 1000000);
-}
-
-int Timeout::msecTillTimeout(nsecs_t nowTime) {
-    if (!mSystemEndTime) {
-        return -1;
-    }
-
-    if (mSystemEndTime < nowTime) {
-        return 0;
-    }
-
-    nsecs_t delta = mSystemEndTime - nowTime;
-    delta += 999999;
-    delta /= 1000000;
-    if (delta > 0x7FFFFFFF) {
-        return 0x7FFFFFFF;
-    }
-
-    return static_cast<int>(delta);
-}
-
-LogRing::LogRing(const char* header, size_t entries)
-    : mSize(entries)
-    , mWr(0)
-    , mIsFull(false)
-    , mHeader(header) {
-    mRingBuffer = new Entry[mSize];
-    if (NULL == mRingBuffer)
-        ALOGE("Failed to allocate log ring with %zu entries.", mSize);
-}
-
-LogRing::~LogRing() {
-    if (NULL != mRingBuffer)
-        delete[] mRingBuffer;
-}
-
-void LogRing::log(int prio, const char* tag, const char* fmt, ...) {
-    va_list argp;
-    va_start(argp, fmt);
-    internalLog(prio, tag, fmt, argp);
-    va_end(argp);
-}
-
-void LogRing::log(const char* fmt, ...) {
-    va_list argp;
-    va_start(argp, fmt);
-    internalLog(0, NULL, fmt, argp);
-    va_end(argp);
-}
-
-void LogRing::internalLog(int prio,
-                          const char* tag,
-                          const char* fmt,
-                          va_list argp) {
-    if (NULL != mRingBuffer) {
-        Mutex::Autolock lock(&mLock);
-        String8 s(String8::formatV(fmt, argp));
-        Entry* last = NULL;
-
-        if (mIsFull || mWr)
-            last = &(mRingBuffer[(mWr + mSize - 1) % mSize]);
-
-
-        if ((NULL != last) && !last->s.compare(s)) {
-            gettimeofday(&(last->last_ts), NULL);
-            ++last->count;
-        } else {
-            gettimeofday(&mRingBuffer[mWr].first_ts, NULL);
-            mRingBuffer[mWr].last_ts = mRingBuffer[mWr].first_ts;
-            mRingBuffer[mWr].count = 1;
-            mRingBuffer[mWr].s.setTo(s);
-
-            mWr = (mWr + 1) % mSize;
-            if (!mWr)
-                mIsFull = true;
-        }
-    }
-
-    if (NULL != tag)
-        LOG_PRI_VA(prio, tag, fmt, argp);
-}
-
-void LogRing::dumpLog(int fd) {
-    if (NULL == mRingBuffer)
-        return;
-
-    Mutex::Autolock lock(&mLock);
-
-    if (!mWr && !mIsFull)
-        return;
-
-    char buf[1024];
-    int res;
-    size_t start = mIsFull ? mWr : 0;
-    size_t count = mIsFull ? mSize : mWr;
-    static const char* kTimeFmt = "%a %b %d %Y %H:%M:%S";
-
-    res = snprintf(buf, sizeof(buf), "\n%s\n", mHeader);
-    if (res > 0)
-        write(fd, buf, res);
-
-    for (size_t i = 0; i < count; ++i) {
-        struct tm t;
-        char timebuf[64];
-        char repbuf[96];
-        size_t ndx = (start + i) % mSize;
-
-        if (1 != mRingBuffer[ndx].count) {
-            localtime_r(&mRingBuffer[ndx].last_ts.tv_sec, &t);
-            strftime(timebuf, sizeof(timebuf), kTimeFmt, &t);
-            snprintf(repbuf, sizeof(repbuf),
-                    " (repeated %d times, last was %s.%03ld)",
-                     mRingBuffer[ndx].count,
-                     timebuf,
-                     mRingBuffer[ndx].last_ts.tv_usec / 1000);
-            repbuf[sizeof(repbuf) - 1] = 0;
-        } else {
-            repbuf[0] = 0;
-        }
-
-        localtime_r(&mRingBuffer[ndx].first_ts.tv_sec, &t);
-        strftime(timebuf, sizeof(timebuf), kTimeFmt, &t);
-        res = snprintf(buf, sizeof(buf), "[%2zu] %s.%03ld :: %s%s\n",
-                       i, timebuf,
-                       mRingBuffer[ndx].first_ts.tv_usec / 1000,
-                       mRingBuffer[ndx].s.string(),
-                       repbuf);
-
-        if (res > 0)
-            write(fd, buf, res);
-    }
-}
-
-}  // namespace android
diff --git a/libs/common_time/utils.h b/libs/common_time/utils.h
deleted file mode 100644
index c28cf0a..0000000
--- a/libs/common_time/utils.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef __UTILS_H__
-#define __UTILS_H__
-
-#include <stdint.h>
-#include <unistd.h>
-
-#include <utils/String8.h>
-#include <utils/threads.h>
-#include <utils/Timers.h>
-
-namespace android {
-
-class Timeout {
-  public:
-    Timeout() : mSystemEndTime(0) { }
-
-    // Set a timeout which should occur msec milliseconds from now.
-    // Negative values will cancel any current timeout;
-    void setTimeout(int msec);
-
-    // Return the number of milliseconds until the timeout occurs, or -1 if
-    // no timeout is scheduled.
-    int msecTillTimeout(nsecs_t nowTime);
-    int msecTillTimeout() { return msecTillTimeout(systemTime()); }
-
-  private:
-    // The systemTime() at which the timeout will be complete, or 0 if no
-    // timeout is currently scheduled.
-    nsecs_t mSystemEndTime;
-};
-
-class LogRing {
-  public:
-    LogRing(const char* header, size_t entries);
-    ~LogRing();
-
-    // Send a log message to logcat as well as storing it in the ring buffer.
-    void log(int prio, const char* tag, const char* fmt, ...);
-
-    // Add a log message the ring buffer, do not send the message to logcat.
-    void log(const char* fmt, ...);
-
-    // Dump the log to an fd (dumpsys style)
-    void dumpLog(int fd);
-
-  private:
-    class Entry {
-      public:
-        uint32_t count;
-        struct timeval first_ts;
-        struct timeval last_ts;
-        String8 s;
-    };
-
-    Mutex  mLock;
-    Entry* mRingBuffer;
-    size_t mSize;
-    size_t mWr;
-    bool   mIsFull;
-    const char* mHeader;
-
-    void internalLog(int prio, const char* tag, const char* fmt, va_list va);
-};
-
-}  // namespace android
-
-#endif  // __UTILS_H__
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 5d7f594..b8815b5 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -295,7 +295,7 @@
 
         // If there's a multi-frameInterval gap we effectively already dropped a frame,
         // so consider the queue healthy.
-        if (swapA.swapCompletedTime - swapB.swapCompletedTime > frameInterval * 3) {
+        if (std::abs(swapA.swapCompletedTime - swapB.swapCompletedTime) > frameInterval * 3) {
             return false;
         }
 
diff --git a/location/java/android/location/IFusedProvider.aidl b/location/java/android/location/IFusedProvider.aidl
deleted file mode 100644
index e86ad1a..0000000
--- a/location/java/android/location/IFusedProvider.aidl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2013 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 android.location;
-
-import android.hardware.location.IFusedLocationHardware;
-
-/**
- * Interface definition for Location providers that require FLP services.
- * @hide
- */
-oneway interface IFusedProvider {
-    /**
-     * Provides access to a FusedLocationHardware instance needed for the provider to work.
-     *
-     * @param instance      The FusedLocationHardware available for the provider to use.
-     */
-    void onFusedLocationHardwareChange(in IFusedLocationHardware instance);
-}
diff --git a/location/lib/Android.mk b/location/lib/Android.mk
index 8424601..6642134 100644
--- a/location/lib/Android.mk
+++ b/location/lib/Android.mk
@@ -42,3 +42,25 @@
 LOCAL_SRC_FILES := $(LOCAL_MODULE)
 
 include $(BUILD_PREBUILT)
+
+# ==== Stub library  ===========================================
+include $(CLEAR_VARS)
+LOCAL_MODULE := com.android.location.provider-stubs-gen
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_SRC_FILES := $(call all-java-files-under,java)
+LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/com.android.location.provider.stubs_intermediates/src
+LOCAL_DROIDDOC_OPTIONS:= \
+    -hide 111 -hide 113 -hide 125 -hide 126 -hide 127 -hide 128 \
+    -stubpackages com.android.location.provider \
+    -nodocs
+LOCAL_UNINSTALLABLE_MODULE := true
+include $(BUILD_DROIDDOC)
+com_android_nfc_extras_gen_stamp := $(full_target)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := com.android.location.provider.stubs
+LOCAL_SOURCE_FILES_ALL_GENERATED := true
+LOCAL_SDK_VERSION := current
+LOCAL_ADDITIONAL_DEPENDENCIES := $(com_android_nfc_extras_gen_stamp)
+com_android_nfc_extras_gen_stamp :=
+include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java b/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
index c7dfc88..843dd67 100644
--- a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
+++ b/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
@@ -23,6 +23,7 @@
 
 /**
  * A class representing an event for Activity changes.
+ * @hide
  */
 public class ActivityChangedEvent {
     private final List<ActivityRecognitionEvent> mActivityRecognitionEvents;
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java b/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
index a39cff2..e54dea4 100644
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
+++ b/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
@@ -18,6 +18,7 @@
 
 /**
  * A class that represents an Activity Recognition Event.
+ * @hide
  */
 public class ActivityRecognitionEvent {
     private final String mActivity;
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
index bc2dae1..0eff7d3 100644
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
+++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
@@ -28,6 +28,7 @@
 
 /**
  * A class that exposes {@link IActivityRecognitionHardware} functionality to unbundled services.
+ * @hide
  */
 public final class ActivityRecognitionProvider {
     private final IActivityRecognitionHardware mService;
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
index 0b878d7..326d901 100644
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
+++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
@@ -27,6 +27,7 @@
 
 /**
  * A client class for interaction with an Activity-Recognition provider.
+ * @hide
  */
 public abstract class ActivityRecognitionProviderClient {
     private static final String TAG = "ArProviderClient";
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
index 7139025..42f77b4 100644
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
+++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
@@ -30,6 +30,7 @@
  * A watcher class for Activity-Recognition instances.
  *
  * @deprecated use {@link ActivityRecognitionProviderClient} instead.
+ * @hide
  */
 @Deprecated
 public class ActivityRecognitionProviderWatcher {
diff --git a/location/lib/java/com/android/location/provider/FusedLocationHardware.java b/location/lib/java/com/android/location/provider/FusedLocationHardware.java
deleted file mode 100644
index eb3b2f4..0000000
--- a/location/lib/java/com/android/location/provider/FusedLocationHardware.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.location.provider;
-
-import android.hardware.location.IFusedLocationHardware;
-import android.hardware.location.IFusedLocationHardwareSink;
-
-import android.location.Location;
-
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.RemoteException;
-import android.util.Log;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Class that exposes IFusedLocationHardware functionality to unbundled services.
- */
-public final class FusedLocationHardware {
-    private static final String TAG = "FusedLocationHardware";
-
-    private IFusedLocationHardware mLocationHardware;
-
-    // the list uses a copy-on-write pattern to update its contents
-    HashMap<FusedLocationHardwareSink, DispatcherHandler> mSinkList =
-            new HashMap<FusedLocationHardwareSink, DispatcherHandler>();
-
-    private IFusedLocationHardwareSink mInternalSink = new IFusedLocationHardwareSink.Stub() {
-        @Override
-        public void onLocationAvailable(Location[] locations) {
-            dispatchLocations(locations);
-        }
-
-        @Override
-        public void onDiagnosticDataAvailable(String data) {
-            dispatchDiagnosticData(data);
-        }
-
-        @Override
-        public void onCapabilities(int capabilities) {
-            dispatchCapabilities(capabilities);
-        }
-
-        @Override
-        public void onStatusChanged(int status) {
-            dispatchStatus(status);
-        }
-    };
-
-    /**
-     * @hide
-     */
-    public FusedLocationHardware(IFusedLocationHardware locationHardware) {
-        mLocationHardware = locationHardware;
-    }
-
-    /*
-     * Methods to provide a Facade for IFusedLocationHardware
-     */
-    public void registerSink(FusedLocationHardwareSink sink, Looper looper) {
-        if(sink == null || looper == null) {
-            throw new IllegalArgumentException("Parameter sink and looper cannot be null.");
-        }
-
-        boolean registerSink;
-        synchronized (mSinkList) {
-            // register only on first insertion
-            registerSink = mSinkList.size() == 0;
-            // guarantee uniqueness
-            if(mSinkList.containsKey(sink)) {
-                return;
-            }
-
-            HashMap<FusedLocationHardwareSink, DispatcherHandler> newSinkList =
-                    new HashMap<FusedLocationHardwareSink, DispatcherHandler>(mSinkList);
-            newSinkList.put(sink, new DispatcherHandler(looper));
-            mSinkList = newSinkList;
-        }
-
-        if(registerSink) {
-            try {
-                mLocationHardware.registerSink(mInternalSink);
-            } catch(RemoteException e) {
-                Log.e(TAG, "RemoteException at registerSink");
-            }
-        }
-    }
-
-    public void unregisterSink(FusedLocationHardwareSink sink) {
-        if(sink == null) {
-            throw new IllegalArgumentException("Parameter sink cannot be null.");
-        }
-
-        boolean unregisterSink;
-        synchronized(mSinkList) {
-            if(!mSinkList.containsKey(sink)) {
-                //done
-                return;
-            }
-
-            HashMap<FusedLocationHardwareSink, DispatcherHandler> newSinkList =
-                    new HashMap<FusedLocationHardwareSink, DispatcherHandler>(mSinkList);
-            newSinkList.remove(sink);
-            //unregister after the last sink
-            unregisterSink = newSinkList.size() == 0;
-
-            mSinkList = newSinkList;
-        }
-
-        if(unregisterSink) {
-            try {
-                mLocationHardware.unregisterSink(mInternalSink);
-            } catch(RemoteException e) {
-                Log.e(TAG, "RemoteException at unregisterSink");
-            }
-        }
-    }
-
-    public int getSupportedBatchSize() {
-        try {
-            return mLocationHardware.getSupportedBatchSize();
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at getSupportedBatchSize");
-            return 0;
-        }
-    }
-
-    public void startBatching(int id, GmsFusedBatchOptions batchOptions) {
-        try {
-            mLocationHardware.startBatching(id, batchOptions.getParcelableOptions());
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at startBatching");
-        }
-    }
-
-    public void stopBatching(int id) {
-        try {
-            mLocationHardware.stopBatching(id);
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at stopBatching");
-        }
-    }
-
-    public void updateBatchingOptions(int id, GmsFusedBatchOptions batchOptions) {
-        try {
-            mLocationHardware.updateBatchingOptions(id, batchOptions.getParcelableOptions());
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at updateBatchingOptions");
-        }
-    }
-
-    public void requestBatchOfLocations(int batchSizeRequest) {
-        try {
-            mLocationHardware.requestBatchOfLocations(batchSizeRequest);
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at requestBatchOfLocations");
-        }
-    }
-
-    public void flushBatchedLocations() {
-        try {
-            mLocationHardware.flushBatchedLocations();
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at flushBatchedLocations");
-        }
-    }
-
-    public boolean supportsDiagnosticDataInjection() {
-        try {
-            return mLocationHardware.supportsDiagnosticDataInjection();
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at supportsDiagnisticDataInjection");
-            return false;
-        }
-    }
-
-    public void injectDiagnosticData(String data) {
-        try {
-            mLocationHardware.injectDiagnosticData(data);
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at injectDiagnosticData");
-        }
-    }
-
-    public boolean supportsDeviceContextInjection() {
-        try {
-            return mLocationHardware.supportsDeviceContextInjection();
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at supportsDeviceContextInjection");
-            return false;
-        }
-    }
-
-    public void injectDeviceContext(int deviceEnabledContext) {
-        try {
-            mLocationHardware.injectDeviceContext(deviceEnabledContext);
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at injectDeviceContext");
-        }
-    }
-
-
-    /**
-     * Returns the version of the FLP HAL.
-     *
-     * <p>Version 1 is the initial release.
-     * <p>Version 2 adds the ability to use {@link #flushBatchedLocations},
-     * {@link FusedLocationHardwareSink#onCapabilities}, and
-     * {@link FusedLocationHardwareSink#onStatusChanged}.
-     *
-     * <p>This method is only available on API 23 or later.  Older APIs have version 1.
-     */
-    public int getVersion() {
-        try {
-            return mLocationHardware.getVersion();
-        } catch(RemoteException e) {
-            Log.e(TAG, "RemoteException at getVersion");
-        }
-        return 1;
-    }
-
-    /*
-     * Helper methods and classes
-     */
-    private class DispatcherHandler extends Handler {
-        public static final int DISPATCH_LOCATION = 1;
-        public static final int DISPATCH_DIAGNOSTIC_DATA = 2;
-        public static final int DISPATCH_CAPABILITIES = 3;
-        public static final int DISPATCH_STATUS = 4;
-
-        public DispatcherHandler(Looper looper) {
-            super(looper, null /*callback*/ , true /*async*/);
-        }
-
-        @Override
-        public void handleMessage(Message message) {
-            MessageCommand command = (MessageCommand) message.obj;
-            switch(message.what) {
-                case DISPATCH_LOCATION:
-                    command.dispatchLocation();
-                    break;
-                case DISPATCH_DIAGNOSTIC_DATA:
-                    command.dispatchDiagnosticData();
-                    break;
-                case DISPATCH_CAPABILITIES:
-                    command.dispatchCapabilities();
-                    break;
-                case DISPATCH_STATUS:
-                    command.dispatchStatus();
-                    break;
-                default:
-                    Log.e(TAG, "Invalid dispatch message");
-                    break;
-            }
-        }
-    }
-
-    private class MessageCommand {
-        private final FusedLocationHardwareSink mSink;
-        private final Location[] mLocations;
-        private final String mData;
-        private final int mCapabilities;
-        private final int mStatus;
-
-        public MessageCommand(
-                FusedLocationHardwareSink sink,
-                Location[] locations,
-                String data,
-                int capabilities,
-                int status) {
-            mSink = sink;
-            mLocations = locations;
-            mData = data;
-            mCapabilities = capabilities;
-            mStatus = status;
-        }
-
-        public void dispatchLocation() {
-            mSink.onLocationAvailable(mLocations);
-        }
-
-        public void dispatchDiagnosticData() {
-            mSink.onDiagnosticDataAvailable(mData);
-        }
-
-        public void dispatchCapabilities() {
-            mSink.onCapabilities(mCapabilities);
-        }
-
-        public void dispatchStatus() {
-            mSink.onStatusChanged(mStatus);
-        }
-    }
-
-    private void dispatchLocations(Location[] locations) {
-        HashMap<FusedLocationHardwareSink, DispatcherHandler> sinks;
-        synchronized (mSinkList) {
-            sinks = mSinkList;
-        }
-
-        for(Map.Entry<FusedLocationHardwareSink, DispatcherHandler> entry : sinks.entrySet()) {
-            Message message = Message.obtain(
-                    entry.getValue(),
-                    DispatcherHandler.DISPATCH_LOCATION,
-                    new MessageCommand(entry.getKey(), locations, null /*data*/, 0, 0));
-            message.sendToTarget();
-        }
-    }
-
-    private void dispatchDiagnosticData(String data) {
-        HashMap<FusedLocationHardwareSink, DispatcherHandler> sinks;
-        synchronized(mSinkList) {
-            sinks = mSinkList;
-        }
-
-        for(Map.Entry<FusedLocationHardwareSink, DispatcherHandler> entry : sinks.entrySet()) {
-            Message message = Message.obtain(
-                    entry.getValue(),
-                    DispatcherHandler.DISPATCH_DIAGNOSTIC_DATA,
-                    new MessageCommand(entry.getKey(), null /*locations*/, data, 0, 0));
-            message.sendToTarget();
-        }
-    }
-
-    private void dispatchCapabilities(int capabilities) {
-        HashMap<FusedLocationHardwareSink, DispatcherHandler> sinks;
-        synchronized(mSinkList) {
-            sinks = mSinkList;
-        }
-
-        for(Map.Entry<FusedLocationHardwareSink, DispatcherHandler> entry : sinks.entrySet()) {
-            Message message = Message.obtain(
-                    entry.getValue(),
-                    DispatcherHandler.DISPATCH_CAPABILITIES,
-                    new MessageCommand(entry.getKey(), null /*locations*/, null, capabilities, 0));
-            message.sendToTarget();
-        }
-    }
-
-    private void dispatchStatus(int status) {
-        HashMap<FusedLocationHardwareSink, DispatcherHandler> sinks;
-        synchronized(mSinkList) {
-            sinks = mSinkList;
-        }
-
-        for(Map.Entry<FusedLocationHardwareSink, DispatcherHandler> entry : sinks.entrySet()) {
-            Message message = Message.obtain(
-                    entry.getValue(),
-                    DispatcherHandler.DISPATCH_STATUS,
-                    new MessageCommand(entry.getKey(), null /*locations*/, null, 0, status));
-            message.sendToTarget();
-        }
-    }
-}
diff --git a/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java b/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java
deleted file mode 100644
index 01d37ac..0000000
--- a/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.location.provider;
-
-import android.location.Location;
-
-/**
- * Base class for sinks to interact with FusedLocationHardware.
- *
- * <p>Default implementations allow new methods to be added without crashing
- * clients compiled against an old library version.
- */
-public class FusedLocationHardwareSink {
-    /**
-     * Called when one or more locations are available from the FLP
-     * HAL.
-     */
-    public void onLocationAvailable(Location[] locations) {
-        // default do nothing
-    }
-
-    /**
-     * Called when diagnostic data is available from the FLP HAL.
-     */
-    public void onDiagnosticDataAvailable(String data) {
-        // default do nothing
-    }
-
-    /**
-     * Called when capabilities are available from the FLP HAL.
-     * Should be called once right after initialization.
-     *
-     * @param capabilities A bitmask of capabilities defined in
-     *                     fused_location.h.
-     */
-    public void onCapabilities(int capabilities) {
-        // default do nothing
-    }
-
-    /**
-     * Called when the status changes in the underlying FLP HAL
-     * implementation (the ability to compute location).  This
-     * callback will only be made on version 2 or later
-     * (see {@link FusedLocationHardware#getVersion()}).
-     *
-     * @param status One of FLP_STATUS_LOCATION_AVAILABLE or
-     *               FLP_STATUS_LOCATION_UNAVAILABLE as defined in
-     *               fused_location.h.
-     */
-    public void onStatusChanged(int status) {
-        // default do nothing
-    }
-}
\ No newline at end of file
diff --git a/location/lib/java/com/android/location/provider/FusedProvider.java b/location/lib/java/com/android/location/provider/FusedProvider.java
index c966ade..78a593b 100644
--- a/location/lib/java/com/android/location/provider/FusedProvider.java
+++ b/location/lib/java/com/android/location/provider/FusedProvider.java
@@ -16,8 +16,6 @@
 
 package com.android.location.provider;
 
-import android.hardware.location.IFusedLocationHardware;
-import android.location.IFusedProvider;
 import android.os.IBinder;
 
 /**
@@ -26,17 +24,12 @@
  * <p>Fused providers can be implemented as services and return the result of
  * {@link com.android.location.provider.FusedProvider#getBinder()} in its getBinder() method.
  *
- * <p>IMPORTANT: This class is effectively a public API for unbundled applications, and must remain
- * API stable. See README.txt in the root of this package for more information.
+ * @deprecated This class should no longer be used. The location service does not uses this.
+ * This class exist here just to prevent existing apps having reference to this class from
+ * breaking.
  */
+@Deprecated
 public abstract class FusedProvider {
-    private IFusedProvider.Stub mProvider = new IFusedProvider.Stub() {
-        @Override
-        public void onFusedLocationHardwareChange(IFusedLocationHardware instance) {
-            setFusedLocationHardware(new FusedLocationHardware(instance));
-        }
-    };
-
     /**
      * Gets the Binder associated with the provider.
      * This is intended to be used for the onBind() method of a service that implements a fused
@@ -45,13 +38,6 @@
      * @return The IBinder instance associated with the provider.
      */
     public IBinder getBinder() {
-        return mProvider;
+        return null;
     }
-
-    /**
-     * Sets the FusedLocationHardware instance in the provider..
-     * @param value     The instance to set. This can be null in cases where the service connection
-     *                  is disconnected.
-     */
-    public abstract void setFusedLocationHardware(FusedLocationHardware value);
 }
diff --git a/location/lib/java/com/android/location/provider/GeocodeProvider.java b/location/lib/java/com/android/location/provider/GeocodeProvider.java
index d7a34af..f7f3d82 100644
--- a/location/lib/java/com/android/location/provider/GeocodeProvider.java
+++ b/location/lib/java/com/android/location/provider/GeocodeProvider.java
@@ -33,6 +33,7 @@
  * <p>IMPORTANT: This class is effectively a public API for unbundled
  * applications, and must remain API stable. See README.txt in the root
  * of this package for more information.
+ * @hide
  */
 public abstract class GeocodeProvider {
 
diff --git a/location/lib/java/com/android/location/provider/GeofenceProvider.java b/location/lib/java/com/android/location/provider/GeofenceProvider.java
index fafaa84..43690ab 100644
--- a/location/lib/java/com/android/location/provider/GeofenceProvider.java
+++ b/location/lib/java/com/android/location/provider/GeofenceProvider.java
@@ -31,6 +31,7 @@
  * <p>IMPORTANT: This class is effectively a public API for unbundled
  * applications, and must remain API stable. See README.txt in the root
  * of this package for more information.
+ * @hide
  */
 public abstract class GeofenceProvider {
 
diff --git a/location/lib/java/com/android/location/provider/GmsFusedBatchOptions.java b/location/lib/java/com/android/location/provider/GmsFusedBatchOptions.java
deleted file mode 100644
index 29818ec..0000000
--- a/location/lib/java/com/android/location/provider/GmsFusedBatchOptions.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.location.provider;
-
-import android.location.FusedBatchOptions;
-
-/**
- * Class that exposes FusedBatchOptions to the GmsCore .
- */
-public class GmsFusedBatchOptions {
-    private FusedBatchOptions mOptions = new FusedBatchOptions();
-
-    /*
-     * Methods that provide a facade for properties in FusedBatchOptions.
-     */
-    public void setMaxPowerAllocationInMW(double value) {
-        mOptions.setMaxPowerAllocationInMW(value);
-    }
-
-    public double getMaxPowerAllocationInMW() {
-        return mOptions.getMaxPowerAllocationInMW();
-    }
-
-    public void setPeriodInNS(long value) {
-        mOptions.setPeriodInNS(value);
-    }
-
-    public long getPeriodInNS() {
-        return mOptions.getPeriodInNS();
-    }
-
-    public void setSmallestDisplacementMeters(float value) {
-        mOptions.setSmallestDisplacementMeters(value);
-    }
-
-    public float getSmallestDisplacementMeters() {
-        return mOptions.getSmallestDisplacementMeters();
-    }
-
-    public void setSourceToUse(int source) {
-        mOptions.setSourceToUse(source);
-    }
-
-    public void resetSourceToUse(int source) {
-        mOptions.resetSourceToUse(source);
-    }
-
-    public boolean isSourceToUseSet(int source) {
-        return mOptions.isSourceToUseSet(source);
-    }
-
-    public int getSourcesToUse() {
-        return mOptions.getSourcesToUse();
-    }
-
-    public void setFlag(int flag) {
-        mOptions.setFlag(flag);
-    }
-
-    public void resetFlag(int flag) {
-        mOptions.resetFlag(flag);
-    }
-
-    public boolean isFlagSet(int flag) {
-        return mOptions.isFlagSet(flag);
-    }
-
-    public int getFlags() {
-        return mOptions.getFlags();
-    }
-
-    /**
-     * Definition of enum flag sets needed by this class.
-     * Such values need to be kept in sync with the ones in fused_location.h
-     */
-
-    public static final class SourceTechnologies {
-        public static int GNSS = 1<<0;
-        public static int WIFI = 1<<1;
-        public static int SENSORS = 1<<2;
-        public static int CELL = 1<<3;
-        public static int BLUETOOTH = 1<<4;
-    }
-
-    public static final class BatchFlags {
-        public static int WAKEUP_ON_FIFO_FULL = 1<<0;
-        public static int CALLBACK_ON_LOCATION_FIX = 1<<1;
-    }
-
-    /*
-     * Method definitions for internal use.
-     */
-
-    /*
-     * @hide
-     */
-    public FusedBatchOptions getParcelableOptions() {
-        return mOptions;
-    }
-}
diff --git a/location/lib/java/com/android/location/provider/LocationProviderBase.java b/location/lib/java/com/android/location/provider/LocationProviderBase.java
index d717f40..30655f5 100644
--- a/location/lib/java/com/android/location/provider/LocationProviderBase.java
+++ b/location/lib/java/com/android/location/provider/LocationProviderBase.java
@@ -56,6 +56,7 @@
 public abstract class LocationProviderBase {
     private final String TAG;
 
+    /** @hide */
     protected final ILocationManager mLocationManager;
     private final ProviderProperties mProperties;
     private final IBinder mBinder;
diff --git a/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java b/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java
index 9ee4df21..b1a1bda 100644
--- a/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java
+++ b/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java
@@ -41,6 +41,7 @@
         mProperties = properties;
     }
 
+    /** @hide */
     public ProviderProperties getProviderProperties() {
         return mProperties;
     }
diff --git a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java
index ad3d1df..6a8e618 100644
--- a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java
+++ b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java
@@ -33,6 +33,7 @@
 public final class ProviderRequestUnbundled {
     private final ProviderRequest mRequest;
 
+    /** @hide */
     public ProviderRequestUnbundled(ProviderRequest request) {
         mRequest = request;
     }
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index b110ccf..29d7dee 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -3664,6 +3664,7 @@
      * @param device Bluetooth device connected/disconnected
      * @param state  new connection state (BluetoothProfile.STATE_xxx)
      * @param profile profile for the A2DP device
+     * @param a2dpVolume New volume for the connecting device. Does nothing if disconnecting.
      * (either {@link android.bluetooth.BluetoothProfile.A2DP} or
      * {@link android.bluetooth.BluetoothProfile.A2DP_SINK})
      * @param suppressNoisyIntent if true the
@@ -3673,12 +3674,13 @@
      * {@hide}
      */
     public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(
-                BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent) {
+                BluetoothDevice device, int state, int profile,
+                boolean suppressNoisyIntent, int a2dpVolume) {
         final IAudioService service = getService();
         int delay = 0;
         try {
             delay = service.setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(device,
-                state, profile, suppressNoisyIntent);
+                state, profile, suppressNoisyIntent, a2dpVolume);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 07b6bbd..d757b81 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -206,7 +206,7 @@
     oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio);
 
     int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device,
-            int state, int profile, boolean suppressNoisyIntent);
+            int state, int profile, boolean suppressNoisyIntent, int a2dpVolume);
 
     // WARNING: read warning at top of file, it is recommended to add new methods at the end
 }
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
index 3eb9d52..e3450ee 100644
--- a/media/java/android/media/RingtoneManager.java
+++ b/media/java/android/media/RingtoneManager.java
@@ -33,6 +33,7 @@
 import android.media.MediaScannerConnection.MediaScannerConnectionClient;
 import android.net.Uri;
 import android.os.Environment;
+import android.os.FileUtils;
 import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
@@ -955,7 +956,8 @@
 
         // Find a filename. Throws FileNotFoundException if none can be found.
         final File outFile = Utils.getUniqueExternalFile(mContext, subdirectory,
-                Utils.getFileDisplayNameFromUri(mContext, fileUri), mimeType);
+                FileUtils.buildValidFatFilename(Utils.getFileDisplayNameFromUri(mContext, fileUri)),
+                        mimeType);
 
         // Copy contents to external ringtone storage. Throws IOException if the copy fails.
         try (final InputStream input = mContext.getContentResolver().openInputStream(fileUri);
diff --git a/media/lib/signer/Android.bp b/media/lib/signer/Android.bp
new file mode 100644
index 0000000..3b25787
--- /dev/null
+++ b/media/lib/signer/Android.bp
@@ -0,0 +1,21 @@
+//
+// Copyright (C) 2018 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.
+//
+
+java_sdk_library {
+    name: "com.android.mediadrm.signer",
+    srcs: ["java/**/*.java"],
+    api_packages: ["com.android.mediadrm.signer"],
+}
diff --git a/media/lib/signer/Android.mk b/media/lib/signer/Android.mk
deleted file mode 100644
index 69ca4d2..0000000
--- a/media/lib/signer/Android.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (C) 2013 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.
-#
-LOCAL_PATH := $(call my-dir)
-
-# the mediadrm signer library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE:= com.android.mediadrm.signer
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java)
-
-include $(BUILD_JAVA_LIBRARY)
-
-
-# ====  com.android.mediadrm.signer.xml lib def  ========================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := com.android.mediadrm.signer.xml
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_CLASS := ETC
-
-# This will install the file in /system/etc/permissions
-#
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-
-include $(BUILD_PREBUILT)
diff --git a/media/lib/signer/api/current.txt b/media/lib/signer/api/current.txt
new file mode 100644
index 0000000..4aa912d
--- /dev/null
+++ b/media/lib/signer/api/current.txt
@@ -0,0 +1,21 @@
+package com.android.mediadrm.signer {
+
+  public final class MediaDrmSigner {
+    method public static com.android.mediadrm.signer.MediaDrmSigner.CertificateRequest getCertificateRequest(android.media.MediaDrm, int, java.lang.String);
+    method public static com.android.mediadrm.signer.MediaDrmSigner.Certificate provideCertificateResponse(android.media.MediaDrm, byte[]) throws android.media.DeniedByServerException;
+    method public static byte[] signRSA(android.media.MediaDrm, byte[], java.lang.String, byte[], byte[]);
+    field public static final int CERTIFICATE_TYPE_X509 = 1; // 0x1
+  }
+
+  public static final class MediaDrmSigner.Certificate {
+    method public byte[] getContent();
+    method public byte[] getWrappedPrivateKey();
+  }
+
+  public static final class MediaDrmSigner.CertificateRequest {
+    method public byte[] getData();
+    method public java.lang.String getDefaultUrl();
+  }
+
+}
+
diff --git a/media/lib/signer/api/removed.txt b/media/lib/signer/api/removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/signer/api/removed.txt
diff --git a/media/lib/signer/api/system-current.txt b/media/lib/signer/api/system-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/signer/api/system-current.txt
diff --git a/media/lib/signer/api/system-removed.txt b/media/lib/signer/api/system-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/signer/api/system-removed.txt
diff --git a/media/lib/signer/api/test-current.txt b/media/lib/signer/api/test-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/signer/api/test-current.txt
diff --git a/media/lib/signer/api/test-removed.txt b/media/lib/signer/api/test-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/signer/api/test-removed.txt
diff --git a/media/lib/signer/com.android.mediadrm.signer.xml b/media/lib/signer/com.android.mediadrm.signer.xml
deleted file mode 100644
index fd3a115..0000000
--- a/media/lib/signer/com.android.mediadrm.signer.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<permissions>
-    <library name="com.android.mediadrm.signer"
-            file="/system/framework/com.android.mediadrm.signer.jar" />
-</permissions>
diff --git a/media/lib/tvremote/Android.bp b/media/lib/tvremote/Android.bp
new file mode 100644
index 0000000..5f101a3
--- /dev/null
+++ b/media/lib/tvremote/Android.bp
@@ -0,0 +1,24 @@
+//
+// Copyright (C) 2018 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.
+//
+
+java_sdk_library {
+    name: "com.android.media.tv.remoteprovider",
+    srcs: ["java/**/*.java"],
+    api_packages: ["com.android.media.tv.remoteprovider"],
+    dex_preopt: {
+        enabled: false,
+    }
+}
diff --git a/media/lib/tvremote/Android.mk b/media/lib/tvremote/Android.mk
deleted file mode 100644
index 1ffdd62..0000000
--- a/media/lib/tvremote/Android.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Copyright (C) 2016 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.
-#
-LOCAL_PATH := $(call my-dir)
-
-# the tvremoteprovider library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE:= com.android.media.tv.remoteprovider
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java)
-
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_JAVA_LIBRARY)
-
-
-# ====  com.android.media.tvremote.xml lib def  ========================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := com.android.media.tv.remoteprovider.xml
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_CLASS := ETC
-
-# This will install the file in /system/etc/permissions
-#
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-
-include $(BUILD_PREBUILT)
diff --git a/media/lib/tvremote/api/current.txt b/media/lib/tvremote/api/current.txt
new file mode 100644
index 0000000..eea9e9c
--- /dev/null
+++ b/media/lib/tvremote/api/current.txt
@@ -0,0 +1,21 @@
+package com.android.media.tv.remoteprovider {
+
+  public abstract class TvRemoteProvider {
+    ctor public TvRemoteProvider(android.content.Context);
+    method public void clearInputBridge(android.os.IBinder) throws java.lang.RuntimeException;
+    method public void closeInputBridge(android.os.IBinder) throws java.lang.RuntimeException;
+    method public android.os.IBinder getBinder();
+    method public final android.content.Context getContext();
+    method public void onInputBridgeConnected(android.os.IBinder);
+    method public void openRemoteInputBridge(android.os.IBinder, java.lang.String, int, int, int) throws java.lang.RuntimeException;
+    method public void sendKeyDown(android.os.IBinder, int) throws java.lang.RuntimeException;
+    method public void sendKeyUp(android.os.IBinder, int) throws java.lang.RuntimeException;
+    method public void sendPointerDown(android.os.IBinder, int, int, int) throws java.lang.RuntimeException;
+    method public void sendPointerSync(android.os.IBinder) throws java.lang.RuntimeException;
+    method public void sendPointerUp(android.os.IBinder, int) throws java.lang.RuntimeException;
+    method public void sendTimestamp(android.os.IBinder, long) throws java.lang.RuntimeException;
+    field public static final java.lang.String SERVICE_INTERFACE = "com.android.media.tv.remoteprovider.TvRemoteProvider";
+  }
+
+}
+
diff --git a/media/lib/tvremote/api/removed.txt b/media/lib/tvremote/api/removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/tvremote/api/removed.txt
diff --git a/media/lib/tvremote/api/system-current.txt b/media/lib/tvremote/api/system-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/tvremote/api/system-current.txt
diff --git a/media/lib/tvremote/api/system-removed.txt b/media/lib/tvremote/api/system-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/tvremote/api/system-removed.txt
diff --git a/media/lib/tvremote/api/test-current.txt b/media/lib/tvremote/api/test-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/tvremote/api/test-current.txt
diff --git a/media/lib/tvremote/api/test-removed.txt b/media/lib/tvremote/api/test-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/lib/tvremote/api/test-removed.txt
diff --git a/media/lib/tvremote/com.android.media.tv.remoteprovider.xml b/media/lib/tvremote/com.android.media.tv.remoteprovider.xml
deleted file mode 100644
index dcf479a..0000000
--- a/media/lib/tvremote/com.android.media.tv.remoteprovider.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-
-<permissions>
-    <library name="com.android.media.tv.remoteprovider"
-        file="/system/framework/com.android.media.tv.remoteprovider.jar" />
-</permissions>
\ No newline at end of file
diff --git a/native/graphics/jni/Android.bp b/native/graphics/jni/Android.bp
index d7695ef..ae141be 100644
--- a/native/graphics/jni/Android.bp
+++ b/native/graphics/jni/Android.bp
@@ -34,6 +34,7 @@
     arch: {
         arm: {
             // TODO: This is to work around b/24465209. Remove after root cause is fixed
+            pack_relocations: false,
             ldflags: ["-Wl,--hash-style=both"],
         },
     },
diff --git a/obex/Android.bp b/obex/Android.bp
new file mode 100644
index 0000000..6558eb3
--- /dev/null
+++ b/obex/Android.bp
@@ -0,0 +1,21 @@
+//
+// Copyright (C) 2018 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.
+//
+
+java_sdk_library {
+    name: "javax.obex",
+    srcs: ["javax/**/*.java"],
+    api_packages: ["javax.obex"],
+}
diff --git a/obex/Android.mk b/obex/Android.mk
deleted file mode 100644
index e7c1fd3..0000000
--- a/obex/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_MODULE:= javax.obex
-
-include $(BUILD_JAVA_LIBRARY)
-
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_MODULE:= javax.obexstatic
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/obex/CleanSpec.mk b/obex/CleanSpec.mk
new file mode 100644
index 0000000..c104234
--- /dev/null
+++ b/obex/CleanSpec.mk
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2018 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.
+#
+
+# runtime lib is renamed from javax.obex.jar to javax.obex.impl.jar
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/javax.obex.jar)
diff --git a/obex/api/current.txt b/obex/api/current.txt
new file mode 100644
index 0000000..1cd562f
--- /dev/null
+++ b/obex/api/current.txt
@@ -0,0 +1,12 @@
+package javax.obex {
+
+  public class ObexPacket {
+    method public static javax.obex.ObexPacket read(java.io.InputStream) throws java.io.IOException;
+    method public static javax.obex.ObexPacket read(int, java.io.InputStream) throws java.io.IOException;
+    field public int mHeaderId;
+    field public int mLength;
+    field public byte[] mPayload;
+  }
+
+}
+
diff --git a/obex/api/removed.txt b/obex/api/removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/obex/api/removed.txt
diff --git a/obex/api/system-current.txt b/obex/api/system-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/obex/api/system-current.txt
diff --git a/obex/api/system-removed.txt b/obex/api/system-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/obex/api/system-removed.txt
diff --git a/obex/api/test-current.txt b/obex/api/test-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/obex/api/test-current.txt
diff --git a/obex/api/test-removed.txt b/obex/api/test-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/obex/api/test-removed.txt
diff --git a/packages/CaptivePortalLogin/AndroidManifest.xml b/packages/CaptivePortalLogin/AndroidManifest.xml
index e01e95b..9ecaa03 100644
--- a/packages/CaptivePortalLogin/AndroidManifest.xml
+++ b/packages/CaptivePortalLogin/AndroidManifest.xml
@@ -23,8 +23,10 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
     <uses-permission android:name="android.permission.NETWORK_BYPASS_PRIVATE_DNS" />
+    <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
 
-    <application android:label="@string/app_name" >
+    <application android:label="@string/app_name"
+                 android:usesCleartextTraffic="true">
         <activity
             android:name="com.android.captiveportallogin.CaptivePortalLoginActivity"
             android:label="@string/action_bar_label"
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
index f66d23d..3630005 100644
--- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
+++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
@@ -16,6 +16,9 @@
 
 package com.android.captiveportallogin;
 
+import static android.net.ConnectivityManager.EXTRA_CAPTIVE_PORTAL_PROBE_SPEC;
+import static android.net.captiveportal.CaptivePortalProbeSpec.HTTP_LOCATION_HEADER_NAME;
+
 import android.app.Activity;
 import android.app.LoadedApk;
 import android.content.Context;
@@ -26,16 +29,18 @@
 import android.net.ConnectivityManager.NetworkCallback;
 import android.net.Network;
 import android.net.NetworkCapabilities;
-import android.net.NetworkInfo;
 import android.net.NetworkRequest;
 import android.net.Proxy;
 import android.net.Uri;
+import android.net.captiveportal.CaptivePortalProbeSpec;
 import android.net.dns.ResolvUtil;
 import android.net.http.SslError;
+import android.net.wifi.WifiInfo;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.support.v4.widget.SwipeRefreshLayout;
+import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.TypedValue;
@@ -84,6 +89,7 @@
     };
 
     private URL mUrl;
+    private CaptivePortalProbeSpec mProbeSpec;
     private String mUserAgent;
     private Network mNetwork;
     private CaptivePortal mCaptivePortal;
@@ -117,6 +123,14 @@
             Log.d(TAG, String.format("onCreate for %s", mUrl.toString()));
         }
 
+        final String spec = getIntent().getStringExtra(EXTRA_CAPTIVE_PORTAL_PROBE_SPEC);
+        try {
+            mProbeSpec = CaptivePortalProbeSpec.parseSpecOrNull(spec);
+        } catch (Exception e) {
+            // Make extra sure that invalid configurations do not cause crashes
+            mProbeSpec = null;
+        }
+
         // Also initializes proxy system properties.
         mCm.bindProcessToNetwork(mNetwork);
         mCm.setProcessDefaultNetworkForHostResolution(
@@ -328,6 +342,7 @@
                 }
                 HttpURLConnection urlConnection = null;
                 int httpResponseCode = 500;
+                String locationHeader = null;
                 try {
                     urlConnection = (HttpURLConnection) network.openConnection(mUrl);
                     urlConnection.setInstanceFollowRedirects(false);
@@ -342,6 +357,7 @@
 
                     urlConnection.getInputStream();
                     httpResponseCode = urlConnection.getResponseCode();
+                    locationHeader = urlConnection.getHeaderField(HTTP_LOCATION_HEADER_NAME);
                     if (DBG) {
                         Log.d(TAG, "probe at " + mUrl +
                                 " ret=" + httpResponseCode +
@@ -352,13 +368,20 @@
                 } finally {
                     if (urlConnection != null) urlConnection.disconnect();
                 }
-                if (httpResponseCode == 204) {
+                if (isDismissed(httpResponseCode, locationHeader, mProbeSpec)) {
                     done(Result.DISMISSED);
                 }
             }
         }).start();
     }
 
+    private static boolean isDismissed(
+            int httpResponseCode, String locationHeader, CaptivePortalProbeSpec probeSpec) {
+        return (probeSpec != null)
+                ? probeSpec.getResult(httpResponseCode, locationHeader).isSuccessful()
+                : (httpResponseCode == 204);
+    }
+
     private class MyWebViewClient extends WebViewClient {
         private static final String INTERNAL_ASSETS = "file:///android_asset/";
 
@@ -534,15 +557,12 @@
     }
 
     private String getHeaderTitle() {
-        NetworkInfo info = mCm.getNetworkInfo(mNetwork);
-        if (info == null) {
-            return getString(R.string.action_bar_label);
-        }
         NetworkCapabilities nc = mCm.getNetworkCapabilities(mNetwork);
-        if (!nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
+        if (nc == null || TextUtils.isEmpty(nc.getSSID())
+            || !nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
             return getString(R.string.action_bar_label);
         }
-        return getString(R.string.action_bar_title, info.getExtraInfo().replaceAll("^\"|\"$", ""));
+        return getString(R.string.action_bar_title, WifiInfo.removeDoubleQuotes(nc.getSSID()));
     }
 
     private String getHeaderSubtitle(URL url) {
diff --git a/packages/CarrierDefaultApp/AndroidManifest.xml b/packages/CarrierDefaultApp/AndroidManifest.xml
index 425df71..4d9aaec 100644
--- a/packages/CarrierDefaultApp/AndroidManifest.xml
+++ b/packages/CarrierDefaultApp/AndroidManifest.xml
@@ -30,7 +30,8 @@
 
     <application
         android:label="@string/app_name"
-        android:directBootAware="true">
+        android:directBootAware="true"
+        android:usesCleartextTraffic="true">
         <receiver android:name="com.android.carrierdefaultapp.CarrierDefaultBroadcastReceiver">
             <intent-filter>
                 <action android:name="com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED" />
diff --git a/packages/CtsShim/build/Android.mk b/packages/CtsShim/build/Android.mk
index 6186a78..e645adc 100644
--- a/packages/CtsShim/build/Android.mk
+++ b/packages/CtsShim/build/Android.mk
@@ -66,10 +66,11 @@
 LOCAL_MULTILIB := both
 LOCAL_JNI_SHARED_LIBRARIES := libshim_jni
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # out/target/common/obj/APPS/CtsShimPriv_intermediates/AndroidManifest.xml:25: error: unexpected element <restrict-update> found in <manifest>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(BUILD_PACKAGE)
 
@@ -111,10 +112,11 @@
 
 LOCAL_MANIFEST_FILE := shim/AndroidManifest.xml
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # frameworks/base/packages/CtsShim/build/shim/AndroidManifest.xml:25: error: unexpected element <restrict-update> found in <manifest>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(BUILD_PACKAGE)
 
diff --git a/packages/services/PacProcessor/Android.mk b/packages/services/PacProcessor/Android.mk
index 5be90c0..75d0363 100644
--- a/packages/services/PacProcessor/Android.mk
+++ b/packages/services/PacProcessor/Android.mk
@@ -26,7 +26,7 @@
 LOCAL_PRIVATE_PLATFORM_APIS := true
 LOCAL_CERTIFICATE := platform
 
-LOCAL_JNI_SHARED_LIBRARIES := libjni_pacprocessor
+LOCAL_JNI_SHARED_LIBRARIES := libjni_pacprocessor libpac
 
 include $(BUILD_PACKAGE)
 
diff --git a/services/art-profile b/services/art-profile
index ae5c909..57eee06 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -10706,7 +10706,6 @@
 PLcom/android/server/location/CountryDetectorBase;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/CountryDetectorBase;->notifyListener(Landroid/location/Country;)V
 PLcom/android/server/location/CountryDetectorBase;->setCountryListener(Landroid/location/CountryListener;)V
-PLcom/android/server/location/FlpHardwareProvider;->isSupported()Z
 PLcom/android/server/location/GeocoderProxy;-><init>(Landroid/content/Context;IIILandroid/os/Handler;)V
 PLcom/android/server/location/GeocoderProxy;->bind()Z
 PLcom/android/server/location/GeocoderProxy;->createAndBind(Landroid/content/Context;IIILandroid/os/Handler;)Lcom/android/server/location/GeocoderProxy;
diff --git a/services/core/java/com/android/server/CommonTimeManagementService.java b/services/core/java/com/android/server/CommonTimeManagementService.java
deleted file mode 100644
index 5cebfa5..0000000
--- a/services/core/java/com/android/server/CommonTimeManagementService.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Copyright (C) 2012 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 com.android.server;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.net.ConnectivityManager;
-import android.net.INetworkManagementEventObserver;
-import android.net.InterfaceConfiguration;
-import android.os.Binder;
-import android.os.CommonTimeConfig;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.INetworkManagementService;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.SystemProperties;
-import android.util.Log;
-
-import com.android.internal.util.DumpUtils;
-import com.android.server.net.BaseNetworkObserver;
-
-/**
- * @hide
- * <p>CommonTimeManagementService manages the configuration of the native Common Time service,
- * reconfiguring the native service as appropriate in response to changes in network configuration.
- */
-class CommonTimeManagementService extends Binder {
-    /*
-     * Constants and globals.
-     */
-    private static final String TAG = CommonTimeManagementService.class.getSimpleName();
-    private static final int NATIVE_SERVICE_RECONNECT_TIMEOUT = 5000;
-    private static final String AUTO_DISABLE_PROP = "ro.common_time.auto_disable";
-    private static final String ALLOW_WIFI_PROP = "ro.common_time.allow_wifi";
-    private static final String SERVER_PRIO_PROP = "ro.common_time.server_prio";
-    private static final String NO_INTERFACE_TIMEOUT_PROP = "ro.common_time.no_iface_timeout";
-    private static final boolean AUTO_DISABLE;
-    private static final boolean ALLOW_WIFI;
-    private static final byte BASE_SERVER_PRIO;
-    private static final int NO_INTERFACE_TIMEOUT;
-    private static final InterfaceScoreRule[] IFACE_SCORE_RULES;
-
-    static {
-        int tmp;
-        AUTO_DISABLE         = (0 != SystemProperties.getInt(AUTO_DISABLE_PROP, 1));
-        ALLOW_WIFI           = (0 != SystemProperties.getInt(ALLOW_WIFI_PROP, 0));
-        tmp                  = SystemProperties.getInt(SERVER_PRIO_PROP, 1);
-        NO_INTERFACE_TIMEOUT = SystemProperties.getInt(NO_INTERFACE_TIMEOUT_PROP, 60000);
-
-        if (tmp < 1)
-            BASE_SERVER_PRIO = 1;
-        else
-        if (tmp > 30)
-            BASE_SERVER_PRIO = 30;
-        else
-            BASE_SERVER_PRIO = (byte)tmp;
-
-        if (ALLOW_WIFI) {
-            IFACE_SCORE_RULES = new InterfaceScoreRule[] {
-                new InterfaceScoreRule("wlan", (byte)1),
-                new InterfaceScoreRule("eth", (byte)2),
-            };
-        } else {
-            IFACE_SCORE_RULES = new InterfaceScoreRule[] {
-                new InterfaceScoreRule("eth", (byte)2),
-            };
-        }
-    };
-
-    /*
-     * Internal state
-     */
-    private final Context mContext;
-    private final Object mLock = new Object();
-    private INetworkManagementService mNetMgr;
-    private CommonTimeConfig mCTConfig;
-    private String mCurIface;
-    private Handler mReconnectHandler = new Handler();
-    private Handler mNoInterfaceHandler = new Handler();
-    private boolean mDetectedAtStartup = false;
-    private byte mEffectivePrio = BASE_SERVER_PRIO;
-
-    /*
-     * Callback handler implementations.
-     */
-    private INetworkManagementEventObserver mIfaceObserver = new BaseNetworkObserver() {
-        @Override
-        public void interfaceStatusChanged(String iface, boolean up) {
-            reevaluateServiceState();
-        }
-        @Override
-        public void interfaceLinkStateChanged(String iface, boolean up) {
-            reevaluateServiceState();
-        }
-        @Override
-        public void interfaceAdded(String iface) {
-            reevaluateServiceState();
-        }
-        @Override
-        public void interfaceRemoved(String iface) {
-            reevaluateServiceState();
-        }
-    };
-
-    private BroadcastReceiver mConnectivityMangerObserver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            reevaluateServiceState();
-        }
-    };
-
-    private CommonTimeConfig.OnServerDiedListener mCTServerDiedListener =
-            () -> scheduleTimeConfigReconnect();
-
-    private Runnable mReconnectRunnable = () -> connectToTimeConfig();
-
-    private Runnable mNoInterfaceRunnable = () -> handleNoInterfaceTimeout();
-
-    /*
-     * Public interface (constructor, systemReady and dump)
-     */
-    public CommonTimeManagementService(Context context) {
-        mContext = context;
-    }
-
-    void systemRunning() {
-        if (ServiceManager.checkService(CommonTimeConfig.SERVICE_NAME) == null) {
-            Log.i(TAG, "No common time service detected on this platform.  " +
-                       "Common time services will be unavailable.");
-            return;
-        }
-
-        mDetectedAtStartup = true;
-
-        IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
-        mNetMgr = INetworkManagementService.Stub.asInterface(b);
-
-        // Network manager is running along-side us, so we should never receiver a remote exception
-        // while trying to register this observer.
-        try {
-            mNetMgr.registerObserver(mIfaceObserver);
-        }
-        catch (RemoteException e) { }
-
-        // Register with the connectivity manager for connectivity changed intents.
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
-        mContext.registerReceiver(mConnectivityMangerObserver, filter);
-
-        // Connect to the common time config service and apply the initial configuration.
-        connectToTimeConfig();
-    }
-
-    @Override
-    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
-
-        if (!mDetectedAtStartup) {
-            pw.println("Native Common Time service was not detected at startup.  " +
-                       "Service is unavailable");
-            return;
-        }
-
-        synchronized (mLock) {
-            pw.println("Current Common Time Management Service Config:");
-            pw.println(String.format("  Native service     : %s",
-                                     (null == mCTConfig) ? "reconnecting"
-                                                         : "alive"));
-            pw.println(String.format("  Bound interface    : %s",
-                                     (null == mCurIface ? "unbound" : mCurIface)));
-            pw.println(String.format("  Allow WiFi         : %s", ALLOW_WIFI ? "yes" : "no"));
-            pw.println(String.format("  Allow Auto Disable : %s", AUTO_DISABLE ? "yes" : "no"));
-            pw.println(String.format("  Server Priority    : %d", mEffectivePrio));
-            pw.println(String.format("  No iface timeout   : %d", NO_INTERFACE_TIMEOUT));
-        }
-    }
-
-    /*
-     * Inner helper classes
-     */
-    private static class InterfaceScoreRule {
-        public final String mPrefix;
-        public final byte mScore;
-        public InterfaceScoreRule(String prefix, byte score) {
-            mPrefix = prefix;
-            mScore = score;
-        }
-    };
-
-    /*
-     * Internal implementation
-     */
-    private void cleanupTimeConfig() {
-        mReconnectHandler.removeCallbacks(mReconnectRunnable);
-        mNoInterfaceHandler.removeCallbacks(mNoInterfaceRunnable);
-        if (null != mCTConfig) {
-            mCTConfig.release();
-            mCTConfig = null;
-        }
-    }
-
-    private void connectToTimeConfig() {
-        // Get access to the common time service configuration interface.  If we catch a remote
-        // exception in the process (service crashed or no running for w/e reason), schedule an
-        // attempt to reconnect in the future.
-        cleanupTimeConfig();
-        try {
-            synchronized (mLock) {
-                mCTConfig = new CommonTimeConfig();
-                mCTConfig.setServerDiedListener(mCTServerDiedListener);
-                mCurIface = mCTConfig.getInterfaceBinding();
-                mCTConfig.setAutoDisable(AUTO_DISABLE);
-                mCTConfig.setMasterElectionPriority(mEffectivePrio);
-            }
-
-            if (NO_INTERFACE_TIMEOUT >= 0)
-                mNoInterfaceHandler.postDelayed(mNoInterfaceRunnable, NO_INTERFACE_TIMEOUT);
-
-            reevaluateServiceState();
-        }
-        catch (RemoteException e) {
-            scheduleTimeConfigReconnect();
-        }
-    }
-
-    private void scheduleTimeConfigReconnect() {
-        cleanupTimeConfig();
-        Log.w(TAG, String.format("Native service died, will reconnect in %d mSec",
-                                 NATIVE_SERVICE_RECONNECT_TIMEOUT));
-        mReconnectHandler.postDelayed(mReconnectRunnable,
-                                      NATIVE_SERVICE_RECONNECT_TIMEOUT);
-    }
-
-    private void handleNoInterfaceTimeout() {
-        if (null != mCTConfig) {
-            Log.i(TAG, "Timeout waiting for interface to come up.  " +
-                       "Forcing networkless master mode.");
-            if (CommonTimeConfig.ERROR_DEAD_OBJECT == mCTConfig.forceNetworklessMasterMode())
-                scheduleTimeConfigReconnect();
-        }
-    }
-
-    private void reevaluateServiceState() {
-        String bindIface = null;
-        byte bestScore = -1;
-        try {
-            // Check to see if this interface is suitable to use for time synchronization.
-            //
-            // TODO : This selection algorithm needs to be enhanced for use with mobile devices.  In
-            // particular, the choice of whether to a wireless interface or not should not be an all
-            // or nothing thing controlled by properties.  It would probably be better if the
-            // platform had some concept of public wireless networks vs. home or friendly wireless
-            // networks (something a user would configure in settings or when a new interface is
-            // added).  Then this algorithm could pick only wireless interfaces which were flagged
-            // as friendly, and be dormant when on public wireless networks.
-            //
-            // Another issue which needs to be dealt with is the use of driver supplied interface
-            // name to determine the network type.  The fact that the wireless interface on a device
-            // is named "wlan0" is just a matter of convention; its not a 100% rule.  For example,
-            // there are devices out there where the wireless is name "tiwlan0", not "wlan0".  The
-            // internal network management interfaces in Android have all of the information needed
-            // to make a proper classification, there is just no way (currently) to fetch an
-            // interface's type (available from the ConnectionManager) as well as its address
-            // (available from either the java.net interfaces or from the NetworkManagment service).
-            // Both can enumerate interfaces, but that is no way to correlate their results (no
-            // common shared key; although using the interface name in the connection manager would
-            // be a good start).  Until this gets resolved, we resort to substring searching for
-            // tags like wlan and eth.
-            //
-            String ifaceList[] = mNetMgr.listInterfaces();
-            if (null != ifaceList) {
-                for (String iface : ifaceList) {
-
-                    byte thisScore = -1;
-                    for (InterfaceScoreRule r : IFACE_SCORE_RULES) {
-                        if (iface.contains(r.mPrefix)) {
-                            thisScore = r.mScore;
-                            break;
-                        }
-                    }
-
-                    if (thisScore <= bestScore)
-                        continue;
-
-                    InterfaceConfiguration config = mNetMgr.getInterfaceConfig(iface);
-                    if (null == config)
-                        continue;
-
-                    if (config.isActive()) {
-                        bindIface = iface;
-                        bestScore = thisScore;
-                    }
-                }
-            }
-        }
-        catch (RemoteException e) {
-            // Bad news; we should not be getting remote exceptions from the connectivity manager
-            // since it is running in SystemServer along side of us.  It probably does not matter
-            // what we do here, but go ahead and unbind the common time service in this case, just
-            // so we have some defined behavior.
-            bindIface = null;
-        }
-
-        boolean doRebind = true;
-        synchronized (mLock) {
-            if ((null != bindIface) && (null == mCurIface)) {
-                Log.e(TAG, String.format("Binding common time service to %s.", bindIface));
-                mCurIface = bindIface;
-            } else
-            if ((null == bindIface) && (null != mCurIface)) {
-                Log.e(TAG, "Unbinding common time service.");
-                mCurIface = null;
-            } else
-            if ((null != bindIface) && (null != mCurIface) && !bindIface.equals(mCurIface)) {
-                Log.e(TAG, String.format("Switching common time service binding from %s to %s.",
-                                         mCurIface, bindIface));
-                mCurIface = bindIface;
-            } else {
-                doRebind = false;
-            }
-        }
-
-        if (doRebind && (null != mCTConfig)) {
-            byte newPrio = (bestScore > 0)
-                         ? (byte)(bestScore * BASE_SERVER_PRIO)
-                         : BASE_SERVER_PRIO;
-            if (newPrio != mEffectivePrio) {
-                mEffectivePrio = newPrio;
-                mCTConfig.setMasterElectionPriority(mEffectivePrio);
-            }
-
-            int res = mCTConfig.setNetworkBinding(mCurIface);
-            if (res != CommonTimeConfig.SUCCESS)
-                scheduleTimeConfigReconnect();
-
-            else if (NO_INTERFACE_TIMEOUT >= 0) {
-                mNoInterfaceHandler.removeCallbacks(mNoInterfaceRunnable);
-                if (null == mCurIface)
-                    mNoInterfaceHandler.postDelayed(mNoInterfaceRunnable, NO_INTERFACE_TIMEOUT);
-            }
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 9838de1..2593690 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -102,6 +102,8 @@
 import android.os.ResultReceiver;
 import android.os.ServiceManager;
 import android.os.ServiceSpecificException;
+import android.os.ShellCallback;
+import android.os.ShellCommand;
 import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -234,8 +236,9 @@
 
     private KeyStore mKeyStore;
 
+    @VisibleForTesting
     @GuardedBy("mVpns")
-    private final SparseArray<Vpn> mVpns = new SparseArray<Vpn>();
+    protected final SparseArray<Vpn> mVpns = new SparseArray<Vpn>();
 
     // TODO: investigate if mLockdownEnabled can be removed and replaced everywhere by
     // a direct call to LockdownVpnTracker.isEnabled().
@@ -494,24 +497,24 @@
     private static final int MAX_VALIDATION_LOGS = 10;
     private static class ValidationLog {
         final Network mNetwork;
-        final String mNetworkExtraInfo;
+        final String mName;
         final ReadOnlyLocalLog mLog;
 
-        ValidationLog(Network network, String networkExtraInfo, ReadOnlyLocalLog log) {
+        ValidationLog(Network network, String name, ReadOnlyLocalLog log) {
             mNetwork = network;
-            mNetworkExtraInfo = networkExtraInfo;
+            mName = name;
             mLog = log;
         }
     }
     private final ArrayDeque<ValidationLog> mValidationLogs =
             new ArrayDeque<ValidationLog>(MAX_VALIDATION_LOGS);
 
-    private void addValidationLogs(ReadOnlyLocalLog log, Network network, String networkExtraInfo) {
+    private void addValidationLogs(ReadOnlyLocalLog log, Network network, String name) {
         synchronized (mValidationLogs) {
             while (mValidationLogs.size() >= MAX_VALIDATION_LOGS) {
                 mValidationLogs.removeLast();
             }
-            mValidationLogs.addFirst(new ValidationLog(network, networkExtraInfo, log));
+            mValidationLogs.addFirst(new ValidationLog(network, name, log));
         }
     }
 
@@ -898,6 +901,15 @@
                 deps);
     }
 
+    private static NetworkCapabilities createDefaultNetworkCapabilitiesForUid(int uid) {
+        final NetworkCapabilities netCap = new NetworkCapabilities();
+        netCap.addCapability(NET_CAPABILITY_INTERNET);
+        netCap.addCapability(NET_CAPABILITY_NOT_RESTRICTED);
+        netCap.removeCapability(NET_CAPABILITY_NOT_VPN);
+        netCap.setSingleUid(uid);
+        return netCap;
+    }
+
     private NetworkRequest createDefaultInternetRequestForTransport(
             int transportType, NetworkRequest.Type type) {
         NetworkCapabilities netCap = new NetworkCapabilities();
@@ -1150,12 +1162,20 @@
         int vpnNetId = NETID_UNSET;
         synchronized (mVpns) {
             final Vpn vpn = mVpns.get(user);
+            // TODO : now that capabilities contain the UID, the appliesToUid test should
+            // be removed as the satisfying test below should be enough.
             if (vpn != null && vpn.appliesToUid(uid)) vpnNetId = vpn.getNetId();
         }
         NetworkAgentInfo nai;
         if (vpnNetId != NETID_UNSET) {
             nai = getNetworkAgentInfoForNetId(vpnNetId);
-            if (nai != null) return nai.network;
+            if (nai != null) {
+                final NetworkCapabilities requiredCaps =
+                    createDefaultNetworkCapabilitiesForUid(uid);
+                if (requiredCaps.satisfiedByNetworkCapabilities(nai.networkCapabilities)) {
+                    return nai.network;
+                }
+            }
         }
         nai = getDefaultNetwork();
         if (nai != null
@@ -1352,7 +1372,8 @@
         if (nai != null) {
             synchronized (nai) {
                 if (nai.networkCapabilities != null) {
-                    return networkCapabilitiesWithoutUidsUnlessAllowed(nai.networkCapabilities,
+                    return networkCapabilitiesRestrictedForCallerPermissions(
+                            nai.networkCapabilities,
                             Binder.getCallingPid(), Binder.getCallingUid());
                 }
             }
@@ -1366,10 +1387,14 @@
         return getNetworkCapabilitiesInternal(getNetworkAgentInfoForNetwork(network));
     }
 
-    private NetworkCapabilities networkCapabilitiesWithoutUidsUnlessAllowed(
+    private NetworkCapabilities networkCapabilitiesRestrictedForCallerPermissions(
             NetworkCapabilities nc, int callerPid, int callerUid) {
-        if (checkSettingsPermission(callerPid, callerUid)) return new NetworkCapabilities(nc);
-        return new NetworkCapabilities(nc).setUids(null);
+        final NetworkCapabilities newNc = new NetworkCapabilities(nc);
+        if (!checkSettingsPermission(callerPid, callerUid)) {
+            newNc.setUids(null);
+            newNc.setSSID(null);
+        }
+        return newNc;
     }
 
     private void restrictRequestUidsForCaller(NetworkCapabilities nc) {
@@ -1415,7 +1440,8 @@
     public boolean isActiveNetworkMetered() {
         enforceAccessPermission();
 
-        final NetworkCapabilities caps = getNetworkCapabilities(getActiveNetwork());
+        final int uid = Binder.getCallingUid();
+        final NetworkCapabilities caps = getUnfilteredActiveNetworkState(uid).networkCapabilities;
         if (caps != null) {
             return !caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
         } else {
@@ -1737,6 +1763,7 @@
                             ni != null ? ni.getState().toString() : "?");
                 } catch (RemoteException e) {
                 }
+                intent.addFlags(Intent.FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS);
             }
             try {
                 mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL, options);
@@ -2032,7 +2059,7 @@
             synchronized (mValidationLogs) {
                 pw.println("mValidationLogs (most recent first):");
                 for (ValidationLog p : mValidationLogs) {
-                    pw.println(p.mNetwork + " - " + p.mNetworkExtraInfo);
+                    pw.println(p.mNetwork + " - " + p.mName);
                     pw.increaseIndent();
                     p.mLog.dump(fd, pw, args);
                     pw.decreaseIndent();
@@ -2377,94 +2404,107 @@
         }
     }
 
+    // This is a no-op if it's called with a message designating a network that has
+    // already been destroyed, because its reference will not be found in the relevant
+    // maps.
     private void handleAsyncChannelDisconnected(Message msg) {
         NetworkAgentInfo nai = mNetworkAgentInfos.get(msg.replyTo);
         if (nai != null) {
-            if (DBG) {
-                log(nai.name() + " got DISCONNECTED, was satisfying " + nai.numNetworkRequests());
-            }
-            // A network agent has disconnected.
-            // TODO - if we move the logic to the network agent (have them disconnect
-            // because they lost all their requests or because their score isn't good)
-            // then they would disconnect organically, report their new state and then
-            // disconnect the channel.
-            if (nai.networkInfo.isConnected()) {
-                nai.networkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED,
-                        null, null);
-            }
-            final boolean wasDefault = isDefaultNetwork(nai);
-            if (wasDefault) {
-                mDefaultInetConditionPublished = 0;
-                // Log default network disconnection before required book-keeping.
-                // Let rematchAllNetworksAndRequests() below record a new default network event
-                // if there is a fallback. Taken together, the two form a X -> 0, 0 -> Y sequence
-                // whose timestamps tell how long it takes to recover a default network.
-                long now = SystemClock.elapsedRealtime();
-                metricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(now, null, nai);
-            }
-            notifyIfacesChangedForNetworkStats();
-            // TODO - we shouldn't send CALLBACK_LOST to requests that can be satisfied
-            // by other networks that are already connected. Perhaps that can be done by
-            // sending all CALLBACK_LOST messages (for requests, not listens) at the end
-            // of rematchAllNetworksAndRequests
-            notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_LOST);
-            mKeepaliveTracker.handleStopAllKeepalives(nai,
-                    ConnectivityManager.PacketKeepalive.ERROR_INVALID_NETWORK);
-            for (String iface : nai.linkProperties.getAllInterfaceNames()) {
-                // Disable wakeup packet monitoring for each interface.
-                wakeupModifyInterface(iface, nai.networkCapabilities, false);
-            }
-            nai.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_DISCONNECTED);
-            mNetworkAgentInfos.remove(msg.replyTo);
-            nai.maybeStopClat();
-            synchronized (mNetworkForNetId) {
-                // Remove the NetworkAgent, but don't mark the netId as
-                // available until we've told netd to delete it below.
-                mNetworkForNetId.remove(nai.network.netId);
-            }
-            // Remove all previously satisfied requests.
-            for (int i = 0; i < nai.numNetworkRequests(); i++) {
-                NetworkRequest request = nai.requestAt(i);
-                NetworkAgentInfo currentNetwork = getNetworkForRequest(request.requestId);
-                if (currentNetwork != null && currentNetwork.network.netId == nai.network.netId) {
-                    clearNetworkForRequest(request.requestId);
-                    sendUpdatedScoreToFactories(request, 0);
-                }
-            }
-            nai.clearLingerState();
-            if (nai.isSatisfyingRequest(mDefaultRequest.requestId)) {
-                removeDataActivityTracking(nai);
-                notifyLockdownVpn(nai);
-                ensureNetworkTransitionWakelock(nai.name());
-            }
-            mLegacyTypeTracker.remove(nai, wasDefault);
-            rematchAllNetworksAndRequests(null, 0);
-            mLingerMonitor.noteDisconnect(nai);
-            if (nai.created) {
-                // Tell netd to clean up the configuration for this network
-                // (routing rules, DNS, etc).
-                // This may be slow as it requires a lot of netd shelling out to ip and
-                // ip[6]tables to flush routes and remove the incoming packet mark rule, so do it
-                // after we've rematched networks with requests which should make a potential
-                // fallback network the default or requested a new network from the
-                // NetworkFactories, so network traffic isn't interrupted for an unnecessarily
-                // long time.
-                try {
-                    mNetd.removeNetwork(nai.network.netId);
-                } catch (Exception e) {
-                    loge("Exception removing network: " + e);
-                }
-                mDnsManager.removeNetwork(nai.network);
-            }
-            synchronized (mNetworkForNetId) {
-                mNetIdInUse.delete(nai.network.netId);
-            }
+            disconnectAndDestroyNetwork(nai);
         } else {
             NetworkFactoryInfo nfi = mNetworkFactoryInfos.remove(msg.replyTo);
             if (DBG && nfi != null) log("unregisterNetworkFactory for " + nfi.name);
         }
     }
 
+    // Destroys a network, remove references to it from the internal state managed by
+    // ConnectivityService, free its interfaces and clean up.
+    // Must be called on the Handler thread.
+    private void disconnectAndDestroyNetwork(NetworkAgentInfo nai) {
+        if (DBG) {
+            log(nai.name() + " got DISCONNECTED, was satisfying " + nai.numNetworkRequests());
+        }
+        // A network agent has disconnected.
+        // TODO - if we move the logic to the network agent (have them disconnect
+        // because they lost all their requests or because their score isn't good)
+        // then they would disconnect organically, report their new state and then
+        // disconnect the channel.
+        if (nai.networkInfo.isConnected()) {
+            nai.networkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED,
+                    null, null);
+        }
+        final boolean wasDefault = isDefaultNetwork(nai);
+        if (wasDefault) {
+            mDefaultInetConditionPublished = 0;
+            // Log default network disconnection before required book-keeping.
+            // Let rematchAllNetworksAndRequests() below record a new default network event
+            // if there is a fallback. Taken together, the two form a X -> 0, 0 -> Y sequence
+            // whose timestamps tell how long it takes to recover a default network.
+            long now = SystemClock.elapsedRealtime();
+            metricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(now, null, nai);
+        }
+        notifyIfacesChangedForNetworkStats();
+        // TODO - we shouldn't send CALLBACK_LOST to requests that can be satisfied
+        // by other networks that are already connected. Perhaps that can be done by
+        // sending all CALLBACK_LOST messages (for requests, not listens) at the end
+        // of rematchAllNetworksAndRequests
+        notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_LOST);
+        mKeepaliveTracker.handleStopAllKeepalives(nai,
+                ConnectivityManager.PacketKeepalive.ERROR_INVALID_NETWORK);
+        for (String iface : nai.linkProperties.getAllInterfaceNames()) {
+            // Disable wakeup packet monitoring for each interface.
+            wakeupModifyInterface(iface, nai.networkCapabilities, false);
+        }
+        nai.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_DISCONNECTED);
+        mNetworkAgentInfos.remove(nai.messenger);
+        nai.maybeStopClat();
+        synchronized (mNetworkForNetId) {
+            // Remove the NetworkAgent, but don't mark the netId as
+            // available until we've told netd to delete it below.
+            mNetworkForNetId.remove(nai.network.netId);
+        }
+        // Remove all previously satisfied requests.
+        for (int i = 0; i < nai.numNetworkRequests(); i++) {
+            NetworkRequest request = nai.requestAt(i);
+            NetworkAgentInfo currentNetwork = getNetworkForRequest(request.requestId);
+            if (currentNetwork != null && currentNetwork.network.netId == nai.network.netId) {
+                clearNetworkForRequest(request.requestId);
+                sendUpdatedScoreToFactories(request, 0);
+            }
+        }
+        nai.clearLingerState();
+        if (nai.isSatisfyingRequest(mDefaultRequest.requestId)) {
+            removeDataActivityTracking(nai);
+            notifyLockdownVpn(nai);
+            ensureNetworkTransitionWakelock(nai.name());
+        }
+        mLegacyTypeTracker.remove(nai, wasDefault);
+        if (!nai.networkCapabilities.hasTransport(TRANSPORT_VPN)) {
+            updateAllVpnsCapabilities();
+        }
+        rematchAllNetworksAndRequests(null, 0);
+        mLingerMonitor.noteDisconnect(nai);
+        if (nai.created) {
+            // Tell netd to clean up the configuration for this network
+            // (routing rules, DNS, etc).
+            // This may be slow as it requires a lot of netd shelling out to ip and
+            // ip[6]tables to flush routes and remove the incoming packet mark rule, so do it
+            // after we've rematched networks with requests which should make a potential
+            // fallback network the default or requested a new network from the
+            // NetworkFactories, so network traffic isn't interrupted for an unnecessarily
+            // long time.
+            try {
+                mNetd.removeNetwork(nai.network.netId);
+            } catch (Exception e) {
+                loge("Exception removing network: " + e);
+            }
+            mDnsManager.removeNetwork(nai.network);
+        }
+        synchronized (mNetworkForNetId) {
+            mNetIdInUse.delete(nai.network.netId);
+        }
+    }
+
     // If this method proves to be too slow then we can maintain a separate
     // pendingIntent => NetworkRequestInfo map.
     // This method assumes that every non-null PendingIntent maps to exactly 1 NetworkRequestInfo.
@@ -3707,6 +3747,26 @@
         }
     }
 
+    /**
+     * Ask all VPN objects to recompute and update their capabilities.
+     *
+     * When underlying networks change, VPNs may have to update capabilities to reflect things
+     * like the metered bit, their transports, and so on. This asks the VPN objects to update
+     * their capabilities, and as this will cause them to send messages to the ConnectivityService
+     * handler thread through their agent, this is asynchronous. When the capabilities objects
+     * are computed they will be up-to-date as they are computed synchronously from here and
+     * this is running on the ConnectivityService thread.
+     * TODO : Fix this and call updateCapabilities inline to remove out-of-order events.
+     */
+    private void updateAllVpnsCapabilities() {
+        synchronized (mVpns) {
+            for (int i = 0; i < mVpns.size(); i++) {
+                final Vpn vpn = mVpns.valueAt(i);
+                vpn.updateCapabilities();
+            }
+        }
+    }
+
     @Override
     public boolean updateLockdownVpn() {
         if (Binder.getCallingUid() != Process.SYSTEM_UID) {
@@ -4181,6 +4241,15 @@
         }
     }
 
+    // This checks that the passed capabilities either do not request a specific SSID, or the
+    // calling app has permission to do so.
+    private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
+            int callerPid, int callerUid) {
+        if (null != nc.getSSID() && !checkSettingsPermission(callerPid, callerUid)) {
+            throw new SecurityException("Insufficient permissions to request a specific SSID");
+        }
+    }
+
     private ArrayList<Integer> getSignalStrengthThresholds(NetworkAgentInfo nai) {
         final SortedSet<Integer> thresholds = new TreeSet();
         synchronized (nai) {
@@ -4238,8 +4307,7 @@
         // the default network request. This allows callers to keep track of
         // the system default network.
         if (type == NetworkRequest.Type.TRACK_DEFAULT) {
-            networkCapabilities = new NetworkCapabilities(mDefaultRequest.networkCapabilities);
-            networkCapabilities.removeCapability(NET_CAPABILITY_NOT_VPN);
+            networkCapabilities = createDefaultNetworkCapabilitiesForUid(Binder.getCallingUid());
             enforceAccessPermission();
         } else {
             networkCapabilities = new NetworkCapabilities(networkCapabilities);
@@ -4250,6 +4318,8 @@
             enforceMeteredApnPolicy(networkCapabilities);
         }
         ensureRequestableCapabilities(networkCapabilities);
+        ensureSufficientPermissionsForRequest(networkCapabilities,
+                Binder.getCallingPid(), Binder.getCallingUid());
         // Set the UID range for this request to the single UID of the requester, or to an empty
         // set of UIDs if the caller has the appropriate permission and UIDs have not been set.
         // This will overwrite any allowed UIDs in the requested capabilities. Though there
@@ -4328,6 +4398,8 @@
         enforceNetworkRequestPermissions(networkCapabilities);
         enforceMeteredApnPolicy(networkCapabilities);
         ensureRequestableCapabilities(networkCapabilities);
+        ensureSufficientPermissionsForRequest(networkCapabilities,
+                Binder.getCallingPid(), Binder.getCallingUid());
         ensureValidNetworkSpecifier(networkCapabilities);
         restrictRequestUidsForCaller(networkCapabilities);
 
@@ -4383,6 +4455,8 @@
         }
 
         NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
+        ensureSufficientPermissionsForRequest(networkCapabilities,
+                Binder.getCallingPid(), Binder.getCallingUid());
         restrictRequestUidsForCaller(nc);
         // Apps without the CHANGE_NETWORK_STATE permission can't use background networks, so
         // make all their listens include NET_CAPABILITY_FOREGROUND. That way, they will get
@@ -4409,6 +4483,8 @@
             enforceAccessPermission();
         }
         ensureValidNetworkSpecifier(networkCapabilities);
+        ensureSufficientPermissionsForRequest(networkCapabilities,
+                Binder.getCallingPid(), Binder.getCallingUid());
 
         final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
         restrictRequestUidsForCaller(nc);
@@ -4541,8 +4617,10 @@
         synchronized (this) {
             nai.networkMonitor.systemReady = mSystemReady;
         }
-        addValidationLogs(nai.networkMonitor.getValidationLogs(), nai.network,
-                networkInfo.getExtraInfo());
+        final String extraInfo = networkInfo.getExtraInfo();
+        final String name = TextUtils.isEmpty(extraInfo)
+                ? nai.networkCapabilities.getSSID() : extraInfo;
+        addValidationLogs(nai.networkMonitor.getValidationLogs(), nai.network, name);
         if (DBG) log("registerNetworkAgent " + nai);
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_AGENT, nai));
         return nai.network.netId;
@@ -4562,7 +4640,7 @@
     }
 
     private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties oldLp) {
-        LinkProperties newLp = networkAgent.linkProperties;
+        LinkProperties newLp = new LinkProperties(networkAgent.linkProperties);
         int netId = networkAgent.network.netId;
 
         // The NetworkAgentInfo does not know whether clatd is running on its network or not. Before
@@ -4596,6 +4674,9 @@
         }
         // TODO - move this check to cover the whole function
         if (!Objects.equals(newLp, oldLp)) {
+            synchronized (networkAgent) {
+                networkAgent.linkProperties = newLp;
+            }
             notifyIfacesChangedForNetworkStats();
             notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
         }
@@ -4846,12 +4927,7 @@
         if (!newNc.hasTransport(TRANSPORT_VPN)) {
             // Tell VPNs about updated capabilities, since they may need to
             // bubble those changes through.
-            synchronized (mVpns) {
-                for (int i = 0; i < mVpns.size(); i++) {
-                    final Vpn vpn = mVpns.valueAt(i);
-                    vpn.updateCapabilities();
-                }
-            }
+            updateAllVpnsCapabilities();
         }
     }
 
@@ -4980,7 +5056,7 @@
             }
             case ConnectivityManager.CALLBACK_CAP_CHANGED: {
                 // networkAgent can't be null as it has been accessed a few lines above.
-                final NetworkCapabilities nc = networkCapabilitiesWithoutUidsUnlessAllowed(
+                final NetworkCapabilities nc = networkCapabilitiesRestrictedForCallerPermissions(
                         networkAgent.networkCapabilities, nri.mPid, nri.mUid);
                 putParcelable(bundle, nc);
                 break;
@@ -5511,6 +5587,7 @@
                 }
                 updateUids(networkAgent, networkAgent.networkCapabilities, null);
             }
+            disconnectAndDestroyNetwork(networkAgent);
         } else if ((oldInfo != null && oldInfo.getState() == NetworkInfo.State.SUSPENDED) ||
                 state == NetworkInfo.State.SUSPENDED) {
             // going into or coming out of SUSPEND: rescore and notify
@@ -5812,4 +5889,61 @@
     private static int encodeBool(boolean b) {
         return b ? 1 : 0;
     }
-}
+
+    @Override
+    public void onShellCommand(FileDescriptor in, FileDescriptor out,
+            FileDescriptor err, String[] args, ShellCallback callback,
+            ResultReceiver resultReceiver) {
+        (new ShellCmd()).exec(this, in, out, err, args, callback, resultReceiver);
+    }
+
+    private class ShellCmd extends ShellCommand {
+
+        @Override
+        public int onCommand(String cmd) {
+            if (cmd == null) {
+                return handleDefaultCommands(cmd);
+            }
+            final PrintWriter pw = getOutPrintWriter();
+            try {
+                switch (cmd) {
+                    case "airplane-mode":
+                        final String action = getNextArg();
+                        if ("enable".equals(action)) {
+                            setAirplaneMode(true);
+                            return 0;
+                        } else if ("disable".equals(action)) {
+                            setAirplaneMode(false);
+                            return 0;
+                        } else if (action == null) {
+                            final ContentResolver cr = mContext.getContentResolver();
+                            final int enabled = Settings.Global.getInt(cr,
+                                    Settings.Global.AIRPLANE_MODE_ON);
+                            pw.println(enabled == 0 ? "disabled" : "enabled");
+                            return 0;
+                        } else {
+                            onHelp();
+                            return -1;
+                        }
+                    default:
+                        return handleDefaultCommands(cmd);
+                }
+            } catch (Exception e) {
+                pw.println(e);
+            }
+            return -1;
+        }
+
+        @Override
+        public void onHelp() {
+            PrintWriter pw = getOutPrintWriter();
+            pw.println("Connectivity service commands:");
+            pw.println("  help");
+            pw.println("    Print this help text.");
+            pw.println("  airplane-mode [enable|disable]");
+            pw.println("    Turn airplane mode on or off.");
+            pw.println("  airplane-mode");
+            pw.println("    Get airplane mode.");
+        }
+    }
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 966e553..c4155a3 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -28,8 +28,6 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.DumpUtils;
 import com.android.server.location.ActivityRecognitionProxy;
-import com.android.server.location.FlpHardwareProvider;
-import com.android.server.location.FusedProxy;
 import com.android.server.location.GeocoderProxy;
 import com.android.server.location.GeofenceManager;
 import com.android.server.location.GeofenceProxy;
@@ -483,13 +481,6 @@
         if (gpsProvider != null && gpsProvider.isEnabled()) {
             gpsProvider.disable();
         }
-
-        // it is needed to check if FLP HW provider is supported before accessing the instance, this
-        // avoids an exception to be thrown by the singleton factory method
-        if (FlpHardwareProvider.isSupported()) {
-            FlpHardwareProvider flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
-            flpHardwareProvider.cleanup();
-        }
     }
 
     /**
@@ -674,27 +665,6 @@
             Slog.e(TAG,  "no geocoder provider found");
         }
 
-        // bind to fused hardware provider if supported
-        // in devices without support, requesting an instance of FlpHardwareProvider will raise an
-        // exception, so make sure we only do that when supported
-        FlpHardwareProvider flpHardwareProvider;
-        if (FlpHardwareProvider.isSupported()) {
-            flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
-            FusedProxy fusedProxy = FusedProxy.createAndBind(
-                    mContext,
-                    mLocationHandler,
-                    flpHardwareProvider.getLocationHardware(),
-                    com.android.internal.R.bool.config_enableHardwareFlpOverlay,
-                    com.android.internal.R.string.config_hardwareFlpPackageName,
-                    com.android.internal.R.array.config_locationProviderPackageNames);
-            if (fusedProxy == null) {
-                Slog.d(TAG, "Unable to bind FusedProxy.");
-            }
-        } else {
-            flpHardwareProvider = null;
-            Slog.d(TAG, "FLP HAL not supported");
-        }
-
         // bind to geofence provider
         GeofenceProxy provider = GeofenceProxy.createAndBind(
                 mContext,com.android.internal.R.bool.config_enableGeofenceOverlay,
@@ -702,7 +672,7 @@
                 com.android.internal.R.array.config_locationProviderPackageNames,
                 mLocationHandler,
                 mGpsGeofenceProxy,
-                flpHardwareProvider != null ? flpHardwareProvider.getGeofenceHardware() : null);
+                null);
         if (provider == null) {
             Slog.d(TAG,  "Unable to bind FLP Geofence proxy.");
         }
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 5d719ad..6d6fd84 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -1789,6 +1789,8 @@
     @Override
     public void setAllowOnlyVpnForUids(boolean add, UidRange[] uidRanges)
             throws ServiceSpecificException {
+        mContext.enforceCallingOrSelfPermission(NETWORK_STACK, TAG);
+
         try {
             mNetdService.networkRejectNonSecureVpn(add, uidRanges);
         } catch (ServiceSpecificException e) {
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 27e7ba8..34d5b3f 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -117,10 +117,10 @@
             return (onSubscriptionsChangedListenerCallback != null);
         }
 
-        boolean canReadPhoneState() {
+        boolean canReadCallLog() {
             try {
-                return TelephonyPermissions.checkReadPhoneState(
-                        context, subId, callerPid, callerUid, callingPackage, "listen");
+                return TelephonyPermissions.checkReadCallLog(
+                        context, subId, callerPid, callerUid, callingPackage);
             } catch (SecurityException e) {
                 return false;
             }
@@ -667,8 +667,8 @@
     }
 
     private String getCallIncomingNumber(Record record, int phoneId) {
-        // Hide the number if record's process can't currently read phone state.
-        return record.canReadPhoneState() ? mCallIncomingNumber[phoneId] : "";
+        // Only reveal the incoming number if the record has read call log permission.
+        return record.canReadCallLog() ? mCallIncomingNumber[phoneId] : "";
     }
 
     private Record add(IBinder binder) {
@@ -729,13 +729,13 @@
         }
     }
 
-    public void notifyCallState(int state, String incomingNumber) {
+    public void notifyCallState(int state, String phoneNumber) {
         if (!checkNotifyPermission("notifyCallState()")) {
             return;
         }
 
         if (VDBG) {
-            log("notifyCallState: state=" + state + " incomingNumber=" + incomingNumber);
+            log("notifyCallState: state=" + state + " phoneNumber=" + phoneNumber);
         }
 
         synchronized (mRecords) {
@@ -743,8 +743,10 @@
                 if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_CALL_STATE) &&
                         (r.subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID)) {
                     try {
-                        String incomingNumberOrEmpty = r.canReadPhoneState() ? incomingNumber : "";
-                        r.callback.onCallStateChanged(state, incomingNumberOrEmpty);
+                        // Ensure the listener has read call log permission; if they do not return
+                        // an empty phone number.
+                        String phoneNumberOrEmpty = r.canReadCallLog() ? phoneNumber : "";
+                        r.callback.onCallStateChanged(state, phoneNumberOrEmpty);
                     } catch (RemoteException ex) {
                         mRemoveList.add(r.binder);
                     }
@@ -755,7 +757,7 @@
 
         // Called only by Telecomm to communicate call state across different phone accounts. So
         // there is no need to add a valid subId or slotId.
-        broadcastCallStateChanged(state, incomingNumber,
+        broadcastCallStateChanged(state, phoneNumber,
                 SubscriptionManager.INVALID_PHONE_INDEX,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
     }
@@ -1571,9 +1573,6 @@
         Intent intent = new Intent(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
         intent.putExtra(PhoneConstants.STATE_KEY,
                 PhoneConstantConversions.convertCallState(state).toString());
-        if (!TextUtils.isEmpty(incomingNumber)) {
-            intent.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, incomingNumber);
-        }
 
         // If a valid subId was specified, we should fire off a subId-specific state
         // change intent and include the subId.
@@ -1589,13 +1588,20 @@
         // Wakeup apps for the (SUBSCRIPTION_)PHONE_STATE broadcast.
         intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
 
+        Intent intentWithPhoneNumber = new Intent(intent);
+        if (!TextUtils.isEmpty(incomingNumber)) {
+            intentWithPhoneNumber.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, incomingNumber);
+        }
         // Send broadcast twice, once for apps that have PRIVILEGED permission and once for those
         // that have the runtime one
-        mContext.sendBroadcastAsUser(intent, UserHandle.ALL,
+        mContext.sendBroadcastAsUser(intentWithPhoneNumber, UserHandle.ALL,
                 android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE);
         mContext.sendBroadcastAsUser(intent, UserHandle.ALL,
                 android.Manifest.permission.READ_PHONE_STATE,
                 AppOpsManager.OP_READ_PHONE_STATE);
+        mContext.sendBroadcastAsUserMultiplePermissions(intentWithPhoneNumber, UserHandle.ALL,
+                new String[] { android.Manifest.permission.READ_PHONE_STATE,
+                        android.Manifest.permission.READ_CALL_LOG});
     }
 
     private void broadcastDataConnectionStateChanged(int state,
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 7da3adb..1546ec1 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -5772,22 +5772,15 @@
         if (true || Build.IS_USER) {
             return;
         }
-        String tracesPath = SystemProperties.get("dalvik.vm.stack-trace-file", null);
-        if (tracesPath == null || tracesPath.length() == 0) {
-            return;
-        }
 
         StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
         StrictMode.allowThreadDiskWrites();
         try {
-            final File tracesFile = new File(tracesPath);
-            final File tracesDir = tracesFile.getParentFile();
-            final File tracesTmp = new File(tracesDir, "__tmp__");
+            File tracesDir = new File("/data/anr");
+            File tracesFile = null;
             try {
-                if (tracesFile.exists()) {
-                    tracesTmp.delete();
-                    tracesFile.renameTo(tracesTmp);
-                }
+                tracesFile = File.createTempFile("app_slow", null, tracesDir);
+
                 StringBuilder sb = new StringBuilder();
                 Time tobj = new Time();
                 tobj.set(System.currentTimeMillis());
@@ -5804,14 +5797,14 @@
                 fos.close();
                 FileUtils.setPermissions(tracesFile.getPath(), 0666, -1, -1); // -rw-rw-rw-
             } catch (IOException e) {
-                Slog.w(TAG, "Unable to prepare slow app traces file: " + tracesPath, e);
+                Slog.w(TAG, "Unable to prepare slow app traces file: " + tracesFile, e);
                 return;
             }
 
             if (app != null) {
                 ArrayList<Integer> firstPids = new ArrayList<Integer>();
                 firstPids.add(app.pid);
-                dumpStackTraces(tracesPath, firstPids, null, null);
+                dumpStackTraces(tracesFile.getAbsolutePath(), firstPids, null, null);
             }
 
             File lastTracesFile = null;
@@ -5829,9 +5822,6 @@
                 lastTracesFile = curTracesFile;
             }
             tracesFile.renameTo(curTracesFile);
-            if (tracesTmp.exists()) {
-                tracesTmp.renameTo(tracesFile);
-            }
         } finally {
             StrictMode.setThreadPolicy(oldPolicy);
         }
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 8399ee2..5491f77 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -2986,6 +2986,9 @@
                 .append(Binder.getCallingPid()).toString();
 
         synchronized (mBluetoothA2dpEnabledLock) {
+            if (mBluetoothA2dpEnabled == on) {
+                return;
+            }
             mBluetoothA2dpEnabled = on;
             sendMsg(mAudioHandler, MSG_SET_FORCE_BT_A2DP_USE, SENDMSG_QUEUE,
                     AudioSystem.FOR_MEDIA,
@@ -3473,7 +3476,7 @@
                             queueMsgUnderWakeLock(mAudioHandler,
                                     MSG_SET_A2DP_SINK_CONNECTION_STATE,
                                     state,
-                                    0 /* arg2 unused */,
+                                    -1,
                                     btDevice,
                                     delay);
                         }
@@ -4159,22 +4162,22 @@
     public int setBluetoothA2dpDeviceConnectionState(BluetoothDevice device, int state, int profile)
     {
         return setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(
-                device, state, profile, false /* suppressNoisyIntent */);
+                device, state, profile, false /* suppressNoisyIntent */, -1 /* a2dpVolume */);
     }
 
     public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(BluetoothDevice device,
-                int state, int profile, boolean suppressNoisyIntent)
+                int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)
     {
         if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE, device)) {
             return 0;
         }
         return setBluetoothA2dpDeviceConnectionStateInt(
-                device, state, profile, suppressNoisyIntent, AudioSystem.DEVICE_NONE);
+                device, state, profile, suppressNoisyIntent, AudioSystem.DEVICE_NONE, a2dpVolume);
     }
 
     public int setBluetoothA2dpDeviceConnectionStateInt(
             BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent,
-            int musicDevice)
+            int musicDevice, int a2dpVolume)
     {
         int delay;
         if (profile != BluetoothProfile.A2DP && profile != BluetoothProfile.A2DP_SINK) {
@@ -4192,7 +4195,7 @@
                     (profile == BluetoothProfile.A2DP ?
                         MSG_SET_A2DP_SINK_CONNECTION_STATE : MSG_SET_A2DP_SRC_CONNECTION_STATE),
                     state,
-                    0 /* arg2 unused */,
+                    a2dpVolume,
                     device,
                     delay);
         }
@@ -4690,41 +4693,41 @@
         }
     }
 
-    /** Handles internal volume messages in separate volume thread. */
-    private class AudioHandler extends Handler {
+    private void setDeviceVolume(VolumeStreamState streamState, int device) {
 
-        private void setDeviceVolume(VolumeStreamState streamState, int device) {
+        synchronized (VolumeStreamState.class) {
+            // Apply volume
+            streamState.applyDeviceVolume_syncVSS(device);
 
-            synchronized (VolumeStreamState.class) {
-                // Apply volume
-                streamState.applyDeviceVolume_syncVSS(device);
-
-                // Apply change to all streams using this one as alias
-                int numStreamTypes = AudioSystem.getNumStreamTypes();
-                for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
-                    if (streamType != streamState.mStreamType &&
-                            mStreamVolumeAlias[streamType] == streamState.mStreamType) {
-                        // Make sure volume is also maxed out on A2DP device for aliased stream
-                        // that may have a different device selected
-                        int streamDevice = getDeviceForStream(streamType);
-                        if ((device != streamDevice) && mAvrcpAbsVolSupported &&
-                                ((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0)) {
-                            mStreamStates[streamType].applyDeviceVolume_syncVSS(device);
-                        }
-                        mStreamStates[streamType].applyDeviceVolume_syncVSS(streamDevice);
+            // Apply change to all streams using this one as alias
+            int numStreamTypes = AudioSystem.getNumStreamTypes();
+            for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
+                if (streamType != streamState.mStreamType &&
+                        mStreamVolumeAlias[streamType] == streamState.mStreamType) {
+                    // Make sure volume is also maxed out on A2DP device for aliased stream
+                    // that may have a different device selected
+                    int streamDevice = getDeviceForStream(streamType);
+                    if ((device != streamDevice) && mAvrcpAbsVolSupported &&
+                            ((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0)) {
+                        mStreamStates[streamType].applyDeviceVolume_syncVSS(device);
                     }
+                    mStreamStates[streamType].applyDeviceVolume_syncVSS(streamDevice);
                 }
             }
-            // Post a persist volume msg
-            sendMsg(mAudioHandler,
-                    MSG_PERSIST_VOLUME,
-                    SENDMSG_QUEUE,
-                    device,
-                    0,
-                    streamState,
-                    PERSIST_DELAY);
-
         }
+        // Post a persist volume msg
+        sendMsg(mAudioHandler,
+                MSG_PERSIST_VOLUME,
+                SENDMSG_QUEUE,
+                device,
+                0,
+                streamState,
+                PERSIST_DELAY);
+
+    }
+
+    /** Handles internal volume messages in separate volume thread. */
+    private class AudioHandler extends Handler {
 
         private void setAllVolumes(VolumeStreamState streamState) {
 
@@ -5071,7 +5074,7 @@
                     break;
 
                 case MSG_SET_A2DP_SINK_CONNECTION_STATE:
-                    onSetA2dpSinkConnectionState((BluetoothDevice)msg.obj, msg.arg1);
+                    onSetA2dpSinkConnectionState((BluetoothDevice)msg.obj, msg.arg1, msg.arg2);
                     mAudioEventWakeLock.release();
                     break;
 
@@ -5309,7 +5312,7 @@
         return mAudioHandler.hasMessages(MSG_BTA2DP_DOCK_TIMEOUT);
     }
 
-    private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state)
+    private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state, int a2dpVolume)
     {
         if (DEBUG_DEVICES) {
             Log.d(TAG, "onSetA2dpSinkConnectionState btDevice=" + btDevice+"state=" + state);
@@ -5360,6 +5363,14 @@
                         makeA2dpDeviceUnavailableNow(mDockAddress);
                     }
                 }
+                if (a2dpVolume != -1) {
+                    VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC];
+                    // Convert index to internal representation in VolumeStreamState
+                    a2dpVolume = a2dpVolume * 10;
+                    streamState.setIndex(a2dpVolume, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
+                            "onSetA2dpSinkConnectionState");
+                    setDeviceVolume(streamState, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP);
+                }
                 makeA2dpDeviceAvailable(address, btDevice.getName(),
                         "onSetA2dpSinkConnectionState");
                 synchronized (mCurAudioRoutes) {
@@ -5429,7 +5440,7 @@
                    // consistent with audio policy manager state
                    setBluetoothA2dpDeviceConnectionStateInt(
                            btDevice, BluetoothA2dp.STATE_DISCONNECTED, BluetoothProfile.A2DP,
-                           false /* suppressNoisyIntent */, musicDevice);
+                           false /* suppressNoisyIntent */, musicDevice, -1 /* a2dpVolume */);
                }
             }
         }
@@ -5439,6 +5450,9 @@
         // address is not used for now, but may be used when multiple a2dp devices are supported
         synchronized (mA2dpAvrcpLock) {
             mAvrcpAbsVolSupported = support;
+            sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE,
+                    AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0,
+                    mStreamStates[AudioSystem.STREAM_MUSIC], 0);
         }
     }
 
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index c81624a..9b9a380 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -19,7 +19,11 @@
 import static android.net.CaptivePortal.APP_RETURN_DISMISSED;
 import static android.net.CaptivePortal.APP_RETURN_UNWANTED;
 import static android.net.CaptivePortal.APP_RETURN_WANTED_AS_IS;
+import static android.net.ConnectivityManager.EXTRA_CAPTIVE_PORTAL_PROBE_SPEC;
+import static android.net.ConnectivityManager.EXTRA_CAPTIVE_PORTAL_URL;
+import static android.net.metrics.ValidationProbeEvent.PROBE_FALLBACK;
 
+import android.annotation.Nullable;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -34,6 +38,8 @@
 import android.net.ProxyInfo;
 import android.net.TrafficStats;
 import android.net.Uri;
+import android.net.captiveportal.CaptivePortalProbeResult;
+import android.net.captiveportal.CaptivePortalProbeSpec;
 import android.net.dns.ResolvUtil;
 import android.net.metrics.IpConnectivityLog;
 import android.net.metrics.NetworkEvent;
@@ -62,6 +68,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.Protocol;
 import com.android.internal.util.State;
 import com.android.internal.util.StateMachine;
@@ -258,6 +265,8 @@
     private final URL mCaptivePortalHttpsUrl;
     private final URL mCaptivePortalHttpUrl;
     private final URL[] mCaptivePortalFallbackUrls;
+    @Nullable
+    private final CaptivePortalProbeSpec[] mCaptivePortalFallbackSpecs;
 
     @VisibleForTesting
     protected boolean mIsCaptivePortalCheckEnabled;
@@ -333,6 +342,7 @@
         mCaptivePortalHttpsUrl = makeURL(getCaptivePortalServerHttpsUrl());
         mCaptivePortalHttpUrl = makeURL(getCaptivePortalServerHttpUrl(settings, context));
         mCaptivePortalFallbackUrls = makeCaptivePortalFallbackUrls();
+        mCaptivePortalFallbackSpecs = makeCaptivePortalFallbackProbeSpecs();
 
         start();
     }
@@ -541,8 +551,12 @@
                                     sendMessage(CMD_CAPTIVE_PORTAL_APP_FINISHED, response);
                                 }
                             }));
-                    intent.putExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL_URL,
-                            mLastPortalProbeResult.detectUrl);
+                    final CaptivePortalProbeResult probeRes = mLastPortalProbeResult;
+                    intent.putExtra(EXTRA_CAPTIVE_PORTAL_URL, probeRes.detectUrl);
+                    if (probeRes.probeSpec != null) {
+                        final String encodedSpec = probeRes.probeSpec.getEncodedSpec();
+                        intent.putExtra(EXTRA_CAPTIVE_PORTAL_PROBE_SPEC, encodedSpec);
+                    }
                     intent.putExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL_USER_AGENT,
                             mCaptivePortalUserAgent);
                     intent.setFlags(
@@ -561,47 +575,6 @@
         }
     }
 
-    /**
-     * Result of calling isCaptivePortal().
-     * @hide
-     */
-    @VisibleForTesting
-    public static final class CaptivePortalProbeResult {
-        static final int SUCCESS_CODE = 204;
-        static final int FAILED_CODE = 599;
-
-        static final CaptivePortalProbeResult FAILED = new CaptivePortalProbeResult(FAILED_CODE);
-        static final CaptivePortalProbeResult SUCCESS = new CaptivePortalProbeResult(SUCCESS_CODE);
-
-        private final int mHttpResponseCode;  // HTTP response code returned from Internet probe.
-        final String redirectUrl;             // Redirect destination returned from Internet probe.
-        final String detectUrl;               // URL where a 204 response code indicates
-                                              // captive portal has been appeased.
-
-        public CaptivePortalProbeResult(
-                int httpResponseCode, String redirectUrl, String detectUrl) {
-            mHttpResponseCode = httpResponseCode;
-            this.redirectUrl = redirectUrl;
-            this.detectUrl = detectUrl;
-        }
-
-        public CaptivePortalProbeResult(int httpResponseCode) {
-            this(httpResponseCode, null, null);
-        }
-
-        boolean isSuccessful() {
-            return mHttpResponseCode == SUCCESS_CODE;
-        }
-
-        boolean isPortal() {
-            return !isSuccessful() && (mHttpResponseCode >= 200) && (mHttpResponseCode <= 399);
-        }
-
-        boolean isFailed() {
-            return !isSuccessful() && !isPortal();
-        }
-    }
-
     // Being in the EvaluatingState State indicates the Network is being evaluated for internet
     // connectivity, or that the user has indicated that this network is unwanted.
     private class EvaluatingState extends State {
@@ -822,8 +795,9 @@
         private void resolveStrictModeHostname() {
             try {
                 // Do a blocking DNS resolution using the network-assigned nameservers.
+                // Do not set AI_ADDRCONFIG in ai_flags so we get all address families in advance.
                 final InetAddress[] ips = ResolvUtil.blockingResolveAllLocally(
-                        mNetwork, mPrivateDnsProviderHostname);
+                        mNetwork, mPrivateDnsProviderHostname, 0 /* aiFlags */);
                 mPrivateDnsConfig = new PrivateDnsConfig(mPrivateDnsProviderHostname, ips);
             } catch (UnknownHostException uhe) {
                 mPrivateDnsConfig = null;
@@ -922,23 +896,47 @@
     }
 
     private URL[] makeCaptivePortalFallbackUrls() {
-        String separator = ",";
-        String firstUrl = mSettings.getSetting(mContext,
-                Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL, DEFAULT_FALLBACK_URL);
-        String joinedUrls = firstUrl + separator + mSettings.getSetting(mContext,
-                Settings.Global.CAPTIVE_PORTAL_OTHER_FALLBACK_URLS, DEFAULT_OTHER_FALLBACK_URLS);
-        List<URL> urls = new ArrayList<>();
-        for (String s : joinedUrls.split(separator)) {
-            URL u = makeURL(s);
-            if (u == null) {
-                continue;
+        try {
+            String separator = ",";
+            String firstUrl = mSettings.getSetting(mContext,
+                    Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL, DEFAULT_FALLBACK_URL);
+            String joinedUrls = firstUrl + separator + mSettings.getSetting(mContext,
+                    Settings.Global.CAPTIVE_PORTAL_OTHER_FALLBACK_URLS,
+                    DEFAULT_OTHER_FALLBACK_URLS);
+            List<URL> urls = new ArrayList<>();
+            for (String s : joinedUrls.split(separator)) {
+                URL u = makeURL(s);
+                if (u == null) {
+                    continue;
+                }
+                urls.add(u);
             }
-            urls.add(u);
+            if (urls.isEmpty()) {
+                Log.e(TAG, String.format("could not create any url from %s", joinedUrls));
+            }
+            return urls.toArray(new URL[urls.size()]);
+        } catch (Exception e) {
+            // Don't let a misconfiguration bootloop the system.
+            Log.e(TAG, "Error parsing configured fallback URLs", e);
+            return new URL[0];
         }
-        if (urls.isEmpty()) {
-            Log.e(TAG, String.format("could not create any url from %s", joinedUrls));
+    }
+
+    private CaptivePortalProbeSpec[] makeCaptivePortalFallbackProbeSpecs() {
+        try {
+            final String settingsValue = mSettings.getSetting(
+                    mContext, Settings.Global.CAPTIVE_PORTAL_FALLBACK_PROBE_SPECS, null);
+            // Probe specs only used if configured in settings
+            if (TextUtils.isEmpty(settingsValue)) {
+                return null;
+            }
+
+            return CaptivePortalProbeSpec.parseCaptivePortalProbeSpecs(settingsValue);
+        } catch (Exception e) {
+            // Don't let a misconfiguration bootloop the system.
+            Log.e(TAG, "Error parsing configured fallback probe specs", e);
+            return null;
         }
-        return urls.toArray(new URL[urls.size()]);
     }
 
     private String getCaptivePortalUserAgent() {
@@ -955,6 +953,15 @@
         return mCaptivePortalFallbackUrls[idx];
     }
 
+    private CaptivePortalProbeSpec nextFallbackSpec() {
+        if (ArrayUtils.isEmpty(mCaptivePortalFallbackSpecs)) {
+            return null;
+        }
+        // Randomly change spec without memory. Also randomize the first attempt.
+        final int idx = Math.abs(new Random().nextInt()) % mCaptivePortalFallbackSpecs.length;
+        return mCaptivePortalFallbackSpecs[idx];
+    }
+
     @VisibleForTesting
     protected CaptivePortalProbeResult isCaptivePortal() {
         if (!mIsCaptivePortalCheckEnabled) {
@@ -1025,7 +1032,7 @@
         // unnecessary resolution.
         final String host = (proxy != null) ? proxy.getHost() : url.getHost();
         sendDnsProbe(host);
-        return sendHttpProbe(url, probeType);
+        return sendHttpProbe(url, probeType, null);
     }
 
     /** Do a DNS resolution of the given server. */
@@ -1061,7 +1068,8 @@
      * @return a CaptivePortalProbeResult inferred from the HTTP response.
      */
     @VisibleForTesting
-    protected CaptivePortalProbeResult sendHttpProbe(URL url, int probeType) {
+    protected CaptivePortalProbeResult sendHttpProbe(URL url, int probeType,
+            @Nullable CaptivePortalProbeSpec probeSpec) {
         HttpURLConnection urlConnection = null;
         int httpResponseCode = CaptivePortalProbeResult.FAILED_CODE;
         String redirectUrl = null;
@@ -1133,7 +1141,12 @@
             TrafficStats.setThreadStatsTag(oldTag);
         }
         logValidationProbe(probeTimer.stop(), probeType, httpResponseCode);
-        return new CaptivePortalProbeResult(httpResponseCode, redirectUrl, url.toString());
+
+        if (probeSpec == null) {
+            return new CaptivePortalProbeResult(httpResponseCode, redirectUrl, url.toString());
+        } else {
+            return probeSpec.getResult(httpResponseCode, redirectUrl);
+        }
     }
 
     private CaptivePortalProbeResult sendParallelHttpProbes(
@@ -1196,11 +1209,12 @@
         if (httpsResult.isPortal() || httpsResult.isSuccessful()) {
             return httpsResult;
         }
-        // If a fallback url exists, use a fallback probe to try again portal detection.
-        URL fallbackUrl = nextFallbackUrl();
+        // If a fallback method exists, use it to retry portal detection.
+        // If we have new-style probe specs, use those. Otherwise, use the fallback URLs.
+        final CaptivePortalProbeSpec probeSpec = nextFallbackSpec();
+        final URL fallbackUrl = (probeSpec != null) ? probeSpec.getUrl() : nextFallbackUrl();
         if (fallbackUrl != null) {
-            CaptivePortalProbeResult result =
-                    sendHttpProbe(fallbackUrl, ValidationProbeEvent.PROBE_FALLBACK);
+            CaptivePortalProbeResult result = sendHttpProbe(fallbackUrl, PROBE_FALLBACK, probeSpec);
             if (result.isPortal()) {
                 return result;
             }
diff --git a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
index 0d935db..36a2476 100644
--- a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
+++ b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
@@ -23,8 +23,10 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.net.NetworkCapabilities;
+import android.net.wifi.WifiInfo;
 import android.os.UserHandle;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.SparseIntArray;
@@ -130,16 +132,17 @@
         final String tag = tagFor(id);
         final int eventId = notifyType.eventId;
         final int transportType;
-        final String extraInfo;
+        final String name;
         if (nai != null) {
             transportType = getFirstTransportType(nai);
-            extraInfo = nai.networkInfo.getExtraInfo();
+            final String extraInfo = nai.networkInfo.getExtraInfo();
+            name = TextUtils.isEmpty(extraInfo) ? nai.networkCapabilities.getSSID() : extraInfo;
             // Only notify for Internet-capable networks.
             if (!nai.networkCapabilities.hasCapability(NET_CAPABILITY_INTERNET)) return;
         } else {
             // Legacy notifications.
             transportType = TRANSPORT_CELLULAR;
-            extraInfo = null;
+            name = null;
         }
 
         // Clear any previous notification with lower priority, otherwise return. http://b/63676954.
@@ -156,9 +159,8 @@
 
         if (DBG) {
             Slog.d(TAG, String.format(
-                    "showNotification tag=%s event=%s transport=%s extraInfo=%s highPrioriy=%s",
-                    tag, nameOf(eventId), getTransportName(transportType), extraInfo,
-                    highPriority));
+                    "showNotification tag=%s event=%s transport=%s name=%s highPriority=%s",
+                    tag, nameOf(eventId), getTransportName(transportType), name, highPriority));
         }
 
         Resources r = Resources.getSystem();
@@ -176,7 +178,8 @@
             switch (transportType) {
                 case TRANSPORT_WIFI:
                     title = r.getString(R.string.wifi_available_sign_in, 0);
-                    details = r.getString(R.string.network_available_sign_in_detailed, extraInfo);
+                    details = r.getString(R.string.network_available_sign_in_detailed,
+                            WifiInfo.removeDoubleQuotes(nai.networkCapabilities.getSSID()));
                     break;
                 case TRANSPORT_CELLULAR:
                     title = r.getString(R.string.network_available_sign_in, 0);
@@ -186,7 +189,7 @@
                     break;
                 default:
                     title = r.getString(R.string.network_available_sign_in, 0);
-                    details = r.getString(R.string.network_available_sign_in_detailed, extraInfo);
+                    details = r.getString(R.string.network_available_sign_in_detailed, name);
                     break;
             }
         } else if (notifyType == NotificationType.NETWORK_SWITCH) {
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 2fda08e..bce735b 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -100,8 +100,6 @@
 import com.android.server.LocalServices;
 import com.android.server.net.BaseNetworkObserver;
 
-import libcore.io.IoUtils;
-
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -122,6 +120,8 @@
 import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import libcore.io.IoUtils;
+
 /**
  * @hide
  */
@@ -172,10 +172,13 @@
     private PendingIntent mStatusIntent;
     private volatile boolean mEnableTeardown = true;
     private final INetworkManagementService mNetd;
-    private VpnConfig mConfig;
-    private NetworkAgent mNetworkAgent;
+    @VisibleForTesting
+    protected VpnConfig mConfig;
+    @VisibleForTesting
+    protected NetworkAgent mNetworkAgent;
     private final Looper mLooper;
-    private final NetworkCapabilities mNetworkCapabilities;
+    @VisibleForTesting
+    protected final NetworkCapabilities mNetworkCapabilities;
     private final SystemServices mSystemServices;
 
     /**
@@ -316,15 +319,12 @@
         boolean roaming = false;
         boolean congested = false;
 
-        if (ArrayUtils.isEmpty(underlyingNetworks)) {
-            // No idea what the underlying networks are; assume sane defaults
-            metered = true;
-            roaming = false;
-            congested = false;
-        } else {
+        boolean hadUnderlyingNetworks = false;
+        if (null != underlyingNetworks) {
             for (Network underlying : underlyingNetworks) {
                 final NetworkCapabilities underlyingCaps = cm.getNetworkCapabilities(underlying);
                 if (underlyingCaps == null) continue;
+                hadUnderlyingNetworks = true;
                 for (int underlyingType : underlyingCaps.getTransportTypes()) {
                     transportTypes = ArrayUtils.appendInt(transportTypes, underlyingType);
                 }
@@ -340,6 +340,12 @@
                 congested |= !underlyingCaps.hasCapability(NET_CAPABILITY_NOT_CONGESTED);
             }
         }
+        if (!hadUnderlyingNetworks) {
+            // No idea what the underlying networks are; assume sane defaults
+            metered = true;
+            roaming = false;
+            congested = false;
+        }
 
         caps.setTransportTypes(transportTypes);
         caps.setLinkDownstreamBandwidthKbps(downKbps);
@@ -1071,7 +1077,8 @@
 
     // Returns true if the VPN has been established and the calling UID is its owner. Used to check
     // that a call to mutate VPN state is admissible.
-    private boolean isCallerEstablishedOwnerLocked() {
+    @VisibleForTesting
+    protected boolean isCallerEstablishedOwnerLocked() {
         return isRunningLocked() && Binder.getCallingUid() == mOwnerUID;
     }
 
@@ -1274,6 +1281,18 @@
                     /* allowedApplications */ null,
                     /* disallowedApplications */ exemptedPackages);
 
+            // The UID range of the first user (0-99999) would block the IPSec traffic, which comes
+            // directly from the kernel and is marked as uid=0. So we adjust the range to allow
+            // it through (b/69873852).
+            for (UidRange range : addedRanges) {
+                if (range.start == 0) {
+                    addedRanges.remove(range);
+                    if (range.stop != 0) {
+                        addedRanges.add(new UidRange(1, range.stop));
+                    }
+                }
+            }
+
             removedRanges.removeAll(addedRanges);
             addedRanges.removeAll(mBlockedUsers);
         }
diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadController.java b/services/core/java/com/android/server/connectivity/tethering/OffloadController.java
index cff216c..a3c2998 100644
--- a/services/core/java/com/android/server/connectivity/tethering/OffloadController.java
+++ b/services/core/java/com/android/server/connectivity/tethering/OffloadController.java
@@ -282,6 +282,7 @@
             return stats;
         }
 
+        @Override
         public void setInterfaceQuota(String iface, long quotaBytes) {
             mHandler.post(() -> {
                 if (quotaBytes == ITetheringStatsProvider.QUOTA_UNLIMITED) {
diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
index 76195c4..207f867 100644
--- a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
+++ b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
@@ -355,6 +355,7 @@
         boolean success;
         String errMsg;
 
+        @Override
         public String toString() {
             if (success) {
                 return "ok";
diff --git a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java
index 5ed14a0..fbee86a 100644
--- a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java
+++ b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java
@@ -16,6 +16,8 @@
 
 package com.android.server.connectivity.tethering;
 
+import static android.net.util.NetworkConstants.asByte;
+import static android.net.util.NetworkConstants.FF;
 import static android.net.util.NetworkConstants.RFC7421_PREFIX_LENGTH;
 
 import android.net.ConnectivityManager;
@@ -64,6 +66,7 @@
  */
 public class TetherInterfaceStateMachine extends StateMachine {
     private static final IpPrefix LINK_LOCAL_PREFIX = new IpPrefix("fe80::/64");
+    private static final byte DOUG_ADAMS = (byte) 42;
 
     private static final String USB_NEAR_IFACE_ADDR = "192.168.42.129";
     private static final int USB_PREFIX_LENGTH = 24;
@@ -185,7 +188,12 @@
 
     private boolean startIPv4() { return configureIPv4(true); }
 
-    private void stopIPv4() { configureIPv4(false); }
+    private void stopIPv4() {
+        configureIPv4(false);
+        // NOTE: All of configureIPv4() will be refactored out of existence
+        // into calls to InterfaceController, shared with startIPv4().
+        mInterfaceCtrl.clearIPv4Address();
+    }
 
     // TODO: Refactor this in terms of calls to InterfaceController.
     private boolean configureIPv4(boolean enabled) {
@@ -199,7 +207,7 @@
             ipAsString = USB_NEAR_IFACE_ADDR;
             prefixLen = USB_PREFIX_LENGTH;
         } else if (mInterfaceType == ConnectivityManager.TETHERING_WIFI) {
-            ipAsString = WIFI_HOST_IFACE_ADDR;
+            ipAsString = getRandomWifiIPv4Address();
             prefixLen = WIFI_HOST_IFACE_PREFIX_LENGTH;
         } else {
             // Nothing to do, BT does this elsewhere.
@@ -248,6 +256,16 @@
         return true;
     }
 
+    private String getRandomWifiIPv4Address() {
+        try {
+            byte[] bytes = NetworkUtils.numericToInetAddress(WIFI_HOST_IFACE_ADDR).getAddress();
+            bytes[3] = getRandomSanitizedByte(DOUG_ADAMS, asByte(0), asByte(1), FF);
+            return InetAddress.getByAddress(bytes).getHostAddress();
+        } catch (Exception e) {
+            return WIFI_HOST_IFACE_ADDR;
+        }
+    }
+
     private boolean startIPv6() {
         mInterfaceParams = mDeps.getInterfaceParams(mIfaceName);
         if (mInterfaceParams == null) {
@@ -752,7 +770,7 @@
     // Given a prefix like 2001:db8::/64 return an address like 2001:db8::1.
     private static Inet6Address getLocalDnsIpFor(IpPrefix localPrefix) {
         final byte[] dnsBytes = localPrefix.getRawAddress();
-        dnsBytes[dnsBytes.length - 1] = getRandomNonZeroByte();
+        dnsBytes[dnsBytes.length - 1] = getRandomSanitizedByte(DOUG_ADAMS, asByte(0), asByte(1));
         try {
             return Inet6Address.getByAddress(null, dnsBytes, 0);
         } catch (UnknownHostException e) {
@@ -761,10 +779,11 @@
         }
     }
 
-    private static byte getRandomNonZeroByte() {
+    private static byte getRandomSanitizedByte(byte dflt, byte... excluded) {
         final byte random = (byte) (new Random()).nextInt();
-        // Don't pick the subnet-router anycast address, since that might be
-        // in use on the upstream already.
-        return (random != 0) ? random : 0x1;
+        for (int value : excluded) {
+            if (random == value) return dflt;
+        }
+        return random;
     }
 }
diff --git a/services/core/java/com/android/server/location/FlpHardwareProvider.java b/services/core/java/com/android/server/location/FlpHardwareProvider.java
deleted file mode 100644
index 5c9b0ea..0000000
--- a/services/core/java/com/android/server/location/FlpHardwareProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.server.location;
-
-import android.content.Context;
-import android.hardware.location.IFusedLocationHardware;
-import android.location.IFusedGeofenceHardware;
-import android.util.Log;
-
-/**
- * This class was an interop layer for JVM types and the JNI code that interacted
- * with the FLP HAL implementation.
- *
- * Now, after Treble FLP & GNSS HAL simplification, it is a thin shell that acts like the
- * pre-existing cases where there was no FLP Hardware support, to keep legacy users of this
- * class operating.
- *
- * {@hide}
- * {@Deprecated}
- */
-public class FlpHardwareProvider {
-    private static FlpHardwareProvider sSingletonInstance = null;
-
-    private final static String TAG = "FlpHardwareProvider";
-
-    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
-    public static FlpHardwareProvider getInstance(Context context) {
-        if (sSingletonInstance == null) {
-            sSingletonInstance = new FlpHardwareProvider();
-            if (DEBUG) Log.d(TAG, "getInstance() created empty provider");
-        }
-        return sSingletonInstance;
-    }
-
-    private FlpHardwareProvider() {
-    }
-
-    public static boolean isSupported() {
-        if (DEBUG) Log.d(TAG, "isSupported() returning false");
-        return false;
-    }
-
-    /**
-     * Interface implementations for services built on top of this functionality.
-     */
-    public static final String LOCATION = "Location";
-
-    public IFusedLocationHardware getLocationHardware() {
-        return null;
-    }
-
-    public IFusedGeofenceHardware getGeofenceHardware() {
-        return null;
-    }
-
-    public void cleanup() {
-        if (DEBUG) Log.d(TAG, "empty cleanup()");
-    }
-}
diff --git a/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java b/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
deleted file mode 100644
index a08d326..0000000
--- a/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.server.location;
-
-import android.content.Context;
-import android.hardware.location.IFusedLocationHardware;
-import android.hardware.location.IFusedLocationHardwareSink;
-import android.location.FusedBatchOptions;
-import android.os.RemoteException;
-
-/**
- * FusedLocationHardware decorator that adds permission checking.
- * @hide
- */
-public class FusedLocationHardwareSecure extends IFusedLocationHardware.Stub {
-    private final IFusedLocationHardware mLocationHardware;
-    private final Context mContext;
-    private final String mPermissionId;
-
-    public FusedLocationHardwareSecure(
-            IFusedLocationHardware locationHardware,
-            Context context,
-            String permissionId) {
-        mLocationHardware = locationHardware;
-        mContext = context;
-        mPermissionId = permissionId;
-    }
-
-    private void checkPermissions() {
-        mContext.enforceCallingPermission(
-                mPermissionId,
-                String.format(
-                        "Permission '%s' not granted to access FusedLocationHardware",
-                        mPermissionId));
-    }
-
-    @Override
-    public void registerSink(IFusedLocationHardwareSink eventSink) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.registerSink(eventSink);
-    }
-
-    @Override
-    public void unregisterSink(IFusedLocationHardwareSink eventSink) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.unregisterSink(eventSink);
-    }
-
-    @Override
-    public int getSupportedBatchSize() throws RemoteException {
-        checkPermissions();
-        return mLocationHardware.getSupportedBatchSize();
-    }
-
-    @Override
-    public void startBatching(int id, FusedBatchOptions batchOptions) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.startBatching(id, batchOptions);
-    }
-
-    @Override
-    public void stopBatching(int id) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.stopBatching(id);
-    }
-
-    @Override
-    public void updateBatchingOptions(
-            int id,
-            FusedBatchOptions batchoOptions
-            ) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.updateBatchingOptions(id, batchoOptions);
-    }
-
-    @Override
-    public void requestBatchOfLocations(int batchSizeRequested) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.requestBatchOfLocations(batchSizeRequested);
-    }
-
-    @Override
-    public boolean supportsDiagnosticDataInjection() throws RemoteException {
-        checkPermissions();
-        return mLocationHardware.supportsDiagnosticDataInjection();
-    }
-
-    @Override
-    public void injectDiagnosticData(String data) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.injectDiagnosticData(data);
-    }
-
-    @Override
-    public boolean supportsDeviceContextInjection() throws RemoteException {
-        checkPermissions();
-        return mLocationHardware.supportsDeviceContextInjection();
-    }
-
-    @Override
-    public void injectDeviceContext(int deviceEnabledContext) throws RemoteException {
-        checkPermissions();
-        mLocationHardware.injectDeviceContext(deviceEnabledContext);
-    }
-
-    @Override
-    public void flushBatchedLocations() throws RemoteException {
-        checkPermissions();
-        mLocationHardware.flushBatchedLocations();
-    }
-
-    @Override
-    public int getVersion() throws RemoteException {
-        checkPermissions();
-        return mLocationHardware.getVersion();
-    }
-}
diff --git a/services/core/java/com/android/server/location/FusedProxy.java b/services/core/java/com/android/server/location/FusedProxy.java
deleted file mode 100644
index f7fac77..0000000
--- a/services/core/java/com/android/server/location/FusedProxy.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2013 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 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 com.android.server.location;
-
-import com.android.server.ServiceWatcher;
-
-import android.Manifest;
-import android.content.Context;
-import android.hardware.location.IFusedLocationHardware;
-import android.location.IFusedProvider;
-import android.os.Handler;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * Proxy that helps bind GCore FusedProvider implementations to the Fused Hardware instances.
- *
- * @hide
- */
-public final class FusedProxy {
-    private final String TAG = "FusedProxy";
-    private final ServiceWatcher mServiceWatcher;
-    private final FusedLocationHardwareSecure mLocationHardware;
-
-    /**
-     * Constructor of the class.
-     * This is private as the class follows a factory pattern for construction.
-     *
-     * @param context           The context needed for construction.
-     * @param handler           The handler needed for construction.
-     * @param locationHardware  The instance of the Fused location hardware assigned to the proxy.
-     */
-    private FusedProxy(
-            Context context,
-            Handler handler,
-            IFusedLocationHardware locationHardware,
-            int overlaySwitchResId,
-            int defaultServicePackageNameResId,
-            int initialPackageNameResId) {
-        mLocationHardware = new FusedLocationHardwareSecure(
-                locationHardware,
-                context,
-                Manifest.permission.LOCATION_HARDWARE);
-        Runnable newServiceWork = new Runnable() {
-            @Override
-            public void run() {
-                bindProvider(mLocationHardware);
-            }
-        };
-
-        // prepare the connection to the provider
-        mServiceWatcher = new ServiceWatcher(
-                context,
-                TAG,
-                "com.android.location.service.FusedProvider",
-                overlaySwitchResId,
-                defaultServicePackageNameResId,
-                initialPackageNameResId,
-                newServiceWork,
-                handler);
-    }
-
-    /**
-     * Creates an instance of the proxy and binds it to the appropriate FusedProvider.
-     *
-     * @param context           The context needed for construction.
-     * @param handler           The handler needed for construction.
-     * @param locationHardware  The instance of the Fused location hardware assigned to the proxy.
-     *
-     * @return An instance of the proxy if it could be bound, null otherwise.
-     */
-    public static FusedProxy createAndBind(
-            Context context,
-            Handler handler,
-            IFusedLocationHardware locationHardware,
-            int overlaySwitchResId,
-            int defaultServicePackageNameResId,
-            int initialPackageNameResId) {
-        FusedProxy fusedProxy = new FusedProxy(
-                context,
-                handler,
-                locationHardware,
-                overlaySwitchResId,
-                defaultServicePackageNameResId,
-                initialPackageNameResId);
-
-        // try to bind the Fused provider
-        if (!fusedProxy.mServiceWatcher.start()) {
-            return null;
-        }
-
-        return fusedProxy;
-    }
-
-    /**
-     * Helper function to bind the FusedLocationHardware to the appropriate FusedProvider instance.
-     *
-     * @param locationHardware  The FusedLocationHardware instance to use for the binding operation.
-     */
-    private void bindProvider(IFusedLocationHardware locationHardware) {
-        IFusedProvider provider = IFusedProvider.Stub.asInterface(mServiceWatcher.getBinder());
-
-        if (provider == null) {
-            Log.e(TAG, "No instance of FusedProvider found on FusedLocationHardware connected.");
-            return;
-        }
-
-        try {
-            provider.onFusedLocationHardwareChange(locationHardware);
-        } catch (RemoteException e) {
-            Log.e(TAG, e.toString());
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index da40692..e5cf394 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -179,6 +179,8 @@
 
     private final PowerManager.WakeLock mWakeLock;
 
+    private final boolean mUseBpfTrafficStats;
+
     private IConnectivityManager mConnManager;
 
     @VisibleForTesting
@@ -328,6 +330,7 @@
         mStatsObservers = checkNotNull(statsObservers, "missing NetworkStatsObservers");
         mSystemDir = checkNotNull(systemDir, "missing systemDir");
         mBaseDir = checkNotNull(baseDir, "missing baseDir");
+        mUseBpfTrafficStats = new File("/sys/fs/bpf/traffic_uid_stats_map").exists();
     }
 
     @VisibleForTesting
@@ -916,7 +919,7 @@
     }
 
     private boolean checkBpfStatsEnable() {
-        return new File("/sys/fs/bpf/traffic_uid_stats_map").exists();
+        return mUseBpfTrafficStats;
     }
 
     /**
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 86fc0cf..864c965 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -9207,6 +9207,29 @@
     }
 
     /**
+     * Clear the package profile if this was an upgrade and the package
+     * version was updated.
+     */
+    private void maybeClearProfilesForUpgradesLI(
+            @Nullable PackageSetting originalPkgSetting,
+            @NonNull PackageParser.Package currentPkg) {
+        if (originalPkgSetting == null || !isUpgrade()) {
+          return;
+        }
+        if (originalPkgSetting.versionCode == currentPkg.mVersionCode) {
+          return;
+        }
+
+        clearAppProfilesLIF(currentPkg, UserHandle.USER_ALL);
+        if (DEBUG_INSTALL) {
+            Slog.d(TAG, originalPkgSetting.name
+                  + " clear profile due to version change "
+                  + originalPkgSetting.versionCode + " != "
+                  + currentPkg.mVersionCode);
+        }
+    }
+
+    /**
      *  Traces a package scan.
      *  @see #scanPackageLI(File, int, int, long, UserHandle)
      */
@@ -9491,6 +9514,9 @@
         // Verify certificates against what was last scanned
         collectCertificatesLI(ps, pkg, scanFile, policyFlags);
 
+        // Reset profile if the application version is changed
+        maybeClearProfilesForUpgradesLI(ps, pkg);
+
         /*
          * A new system app appeared, but we already had a non-system one of the
          * same name installed earlier.
@@ -11000,6 +11026,12 @@
                     // We just determined the app is signed correctly, so bring
                     // over the latest parsed certs.
                     pkgSetting.signatures.mSignatures = pkg.mSignatures;
+
+                    if (signatureCheckPs.sharedUser != null) {
+                        if (signatureCheckPs.sharedUser.signaturesChanged == null) {
+                            signatureCheckPs.sharedUser.signaturesChanged = Boolean.FALSE;
+                        }
+                    }
                 } catch (PackageManagerException e) {
                     if ((policyFlags & PackageParser.PARSE_IS_SYSTEM_DIR) == 0) {
                         throw e;
@@ -11007,19 +11039,25 @@
                     // The signature has changed, but this package is in the system
                     // image...  let's recover!
                     pkgSetting.signatures.mSignatures = pkg.mSignatures;
-                    // However...  if this package is part of a shared user, but it
-                    // doesn't match the signature of the shared user, let's fail.
-                    // What this means is that you can't change the signatures
-                    // associated with an overall shared user, which doesn't seem all
-                    // that unreasonable.
+
+                    // If the system app is part of a shared user we allow that shared user to
+                    // change signatures as well as part of an OTA. We still need to verify that the
+                    // signatures are consistent within the shared user for a given boot, so only
+                    // allow updating the signatures on the first package scanned for the shared
+                    // user (i.e. if the signaturesChanged state hasn't been initialized yet in
+                    // SharedUserSetting).
                     if (signatureCheckPs.sharedUser != null) {
-                        if (compareSignatures(signatureCheckPs.sharedUser.signatures.mSignatures,
+                        if (signatureCheckPs.sharedUser.signaturesChanged != null &&
+                            compareSignatures(signatureCheckPs.sharedUser.signatures.mSignatures,
                                 pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) {
                             throw new PackageManagerException(
                                     INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES,
                                     "Signature mismatch for shared user: "
                                             + pkgSetting.sharedUser);
                         }
+
+                        signatureCheckPs.sharedUser.signatures.mSignatures = pkg.mSignatures;
+                        signatureCheckPs.sharedUser.signaturesChanged = Boolean.TRUE;
                     }
                     // File a report about this.
                     String msg = "System package " + pkg.packageName
diff --git a/services/core/java/com/android/server/pm/SharedUserSetting.java b/services/core/java/com/android/server/pm/SharedUserSetting.java
index 06e020a..74294ea 100644
--- a/services/core/java/com/android/server/pm/SharedUserSetting.java
+++ b/services/core/java/com/android/server/pm/SharedUserSetting.java
@@ -33,6 +33,7 @@
     final ArraySet<PackageSetting> packages = new ArraySet<PackageSetting>();
 
     final PackageSignatures signatures = new PackageSignatures();
+    Boolean signaturesChanged;
 
     SharedUserSetting(String _name, int _pkgFlags, int _pkgPrivateFlags) {
         super(_pkgFlags, _pkgPrivateFlags);
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 0971058..521d558 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -6819,7 +6819,7 @@
             } else {
                 if (DEBUG_WAKEUP) Slog.d(TAG,
                         "null mKeyguardDelegate: setting mKeyguardDrawComplete.");
-                finishKeyguardDrawn();
+                mHandler.sendEmptyMessage(MSG_KEYGUARD_DRAWN_COMPLETE);
             }
         }
     }
diff --git a/services/core/java/com/android/server/updates/ApnDbInstallReceiver.java b/services/core/java/com/android/server/updates/ApnDbInstallReceiver.java
index 3b6f9d6..8d53143 100644
--- a/services/core/java/com/android/server/updates/ApnDbInstallReceiver.java
+++ b/services/core/java/com/android/server/updates/ApnDbInstallReceiver.java
@@ -29,7 +29,7 @@
             "update_db");
 
     public ApnDbInstallReceiver() {
-        super("/data/misc/", "apns-conf.xml", "metadata/", "version");
+        super("/data/misc/apns/", "apns-conf.xml", "metadata/", "version");
     }
 
     @Override
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 60f201f..7caa4d7 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -690,7 +690,6 @@
         WindowManagerService wm = null;
         SerialService serial = null;
         NetworkTimeUpdateService networkTimeUpdater = null;
-        CommonTimeManagementService commonTimeMgmtService = null;
         InputManagerService inputManager = null;
         TelephonyRegistry telephonyRegistry = null;
         ConsumerIrService consumerIr = null;
@@ -1383,15 +1382,6 @@
                 traceEnd();
             }
 
-            traceBeginAndSlog("StartCommonTimeManagementService");
-            try {
-                commonTimeMgmtService = new CommonTimeManagementService(context);
-                ServiceManager.addService("commontime_management", commonTimeMgmtService);
-            } catch (Throwable e) {
-                reportWtf("starting CommonTimeManagementService service", e);
-            }
-            traceEnd();
-
             if (!disableNetwork) {
                 traceBeginAndSlog("CertBlacklister");
                 try {
@@ -1667,7 +1657,6 @@
         final LocationManagerService locationF = location;
         final CountryDetectorService countryDetectorF = countryDetector;
         final NetworkTimeUpdateService networkTimeUpdaterF = networkTimeUpdater;
-        final CommonTimeManagementService commonTimeMgmtServiceF = commonTimeMgmtService;
         final InputManagerService inputManagerF = inputManager;
         final TelephonyRegistry telephonyRegistryF = telephonyRegistry;
         final MediaRouterService mediaRouterF = mediaRouter;
@@ -1813,15 +1802,6 @@
                 reportWtf("Notifying NetworkTimeService running", e);
             }
             traceEnd();
-            traceBeginAndSlog("MakeCommonTimeManagementServiceReady");
-            try {
-                if (commonTimeMgmtServiceF != null) {
-                    commonTimeMgmtServiceF.systemRunning();
-                }
-            } catch (Throwable e) {
-                reportWtf("Notifying CommonTimeManagementService running", e);
-            }
-            traceEnd();
             traceBeginAndSlog("MakeInputManagerServiceReady");
             try {
                 // TODO(BT) Pass parameter to input manager
diff --git a/services/net/java/android/net/apf/ApfCapabilities.java b/services/net/java/android/net/apf/ApfCapabilities.java
index 703b415..dec8ca2 100644
--- a/services/net/java/android/net/apf/ApfCapabilities.java
+++ b/services/net/java/android/net/apf/ApfCapabilities.java
@@ -49,4 +49,14 @@
         return String.format("%s{version: %d, maxSize: %d, format: %d}", getClass().getSimpleName(),
                 apfVersionSupported, maximumApfProgramSize, apfPacketFormat);
     }
+
+    /**
+     * Returns true if the APF interpreter advertises support for the data buffer access opcodes
+     * LDDW and STDW.
+     *
+     * Full LDDW and STDW support is present from APFv4 on.
+     */
+    public boolean hasDataAccess() {
+        return apfVersionSupported >= 4;
+    }
 }
diff --git a/services/net/java/android/net/apf/ApfFilter.java b/services/net/java/android/net/apf/ApfFilter.java
index 92d3709..8ac6ede 100644
--- a/services/net/java/android/net/apf/ApfFilter.java
+++ b/services/net/java/android/net/apf/ApfFilter.java
@@ -24,6 +24,7 @@
 import static com.android.internal.util.BitUtils.getUint8;
 import static com.android.internal.util.BitUtils.uint32;
 
+import android.annotation.Nullable;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -102,6 +103,70 @@
         UPDATE_EXPIRY   // APF program updated for expiry
     }
 
+    /**
+     * APF packet counters.
+     *
+     * Packet counters are 32bit big-endian values, and allocated near the end of the APF data
+     * buffer, using negative byte offsets, where -4 is equivalent to maximumApfProgramSize - 4,
+     * the last writable 32bit word.
+     */
+    @VisibleForTesting
+    private static enum Counter {
+        RESERVED_OOB,  // Points to offset 0 from the end of the buffer (out-of-bounds)
+        TOTAL_PACKETS,
+        PASSED_ARP,
+        PASSED_DHCP,
+        PASSED_IPV4,
+        PASSED_IPV6_NON_ICMP,
+        PASSED_IPV4_UNICAST,
+        PASSED_IPV6_ICMP,
+        PASSED_IPV6_UNICAST_NON_ICMP,
+        PASSED_ARP_NON_IPV4,
+        PASSED_ARP_UNKNOWN,
+        PASSED_ARP_UNICAST_REPLY,
+        PASSED_NON_IP_UNICAST,
+        DROPPED_ETH_BROADCAST,
+        DROPPED_RA,
+        DROPPED_GARP_REPLY,
+        DROPPED_ARP_OTHER_HOST,
+        DROPPED_IPV4_L2_BROADCAST,
+        DROPPED_IPV4_BROADCAST_ADDR,
+        DROPPED_IPV4_BROADCAST_NET,
+        DROPPED_IPV4_MULTICAST,
+        DROPPED_IPV6_ROUTER_SOLICITATION,
+        DROPPED_IPV6_MULTICAST_NA,
+        DROPPED_IPV6_MULTICAST,
+        DROPPED_IPV6_MULTICAST_PING,
+        DROPPED_IPV6_NON_ICMP_MULTICAST,
+        DROPPED_802_3_FRAME,
+        DROPPED_ETHERTYPE_BLACKLISTED;
+
+        // Returns the negative byte offset from the end of the APF data segment for
+        // a given counter.
+        public int offset() {
+            return - this.ordinal() * 4;  // Currently, all counters are 32bit long.
+        }
+
+        // Returns the total size of the data segment in bytes.
+        public static int totalSize() {
+            return (Counter.class.getEnumConstants().length - 1) * 4;
+        }
+    }
+
+    /**
+     * When APFv4 is supported, loads R1 with the offset of the specified counter.
+     */
+    private void maybeSetCounter(ApfGenerator gen, Counter c) {
+        if (mApfCapabilities.hasDataAccess()) {
+            gen.addLoadImmediate(Register.R1, c.offset());
+        }
+    }
+
+    // When APFv4 is supported, these point to the trampolines generated by emitEpilogue().
+    // Otherwise, they're just aliases for PASS_LABEL and DROP_LABEL.
+    private final String mCountAndPassLabel;
+    private final String mCountAndDropLabel;
+
     // Thread to listen for RAs.
     @VisibleForTesting
     class ReceiveThread extends Thread {
@@ -289,6 +354,16 @@
         mDrop802_3Frames = config.ieee802_3Filter;
         mContext = context;
 
+        if (mApfCapabilities.hasDataAccess()) {
+            mCountAndPassLabel = "countAndPass";
+            mCountAndDropLabel = "countAndDrop";
+        } else {
+            // APFv4 unsupported: turn jumps to the counter trampolines to immediately PASS or DROP,
+            // preserving the original pre-APFv4 behavior.
+            mCountAndPassLabel = ApfGenerator.PASS_LABEL;
+            mCountAndDropLabel = ApfGenerator.DROP_LABEL;
+        }
+
         // Now fill the black list from the passed array
         mEthTypeBlackList = filterEthTypeBlackList(config.ethTypeBlackList);
 
@@ -302,6 +377,10 @@
                 new IntentFilter(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED));
     }
 
+    public synchronized void setDataSnapshot(byte[] data) {
+        mDataSnapshot = data;
+    }
+
     private void log(String s) {
         Log.d(TAG, "(" + mInterfaceParams.name + "): " + s);
     }
@@ -350,6 +429,10 @@
         try {
             mHardwareAddress = mInterfaceParams.macAddr.toByteArray();
             synchronized(this) {
+                // Clear APF memory.
+                byte[] zeroes = new byte[mApfCapabilities.maximumApfProgramSize];
+                mIpClientCallback.installPacketFilter(zeroes);
+
                 // Install basic filters
                 installNewProgramLocked();
             }
@@ -729,7 +812,8 @@
                     gen.addJumpIfR0LessThan(filterLifetime, nextFilterLabel);
                 }
             }
-            gen.addJump(gen.DROP_LABEL);
+            maybeSetCounter(gen, Counter.DROPPED_RA);
+            gen.addJump(mCountAndDropLabel);
             gen.defineLabel(nextFilterLabel);
             return filterLifetime;
         }
@@ -764,6 +848,16 @@
     @GuardedBy("this")
     private byte[] mLastInstalledProgram;
 
+    /**
+     * For debugging only. Contains the latest APF buffer snapshot captured from the firmware.
+     *
+     * A typical size for this buffer is 4KB. It is present only if the WiFi HAL supports
+     * IWifiStaIface#readApfPacketFilterData(), and the APF interpreter advertised support for
+     * the opcodes to access the data buffer (LDDW and STDW).
+     */
+    @GuardedBy("this") @Nullable
+    private byte[] mDataSnapshot;
+
     // How many times the program was updated since we started.
     @GuardedBy("this")
     private int mNumProgramUpdates = 0;
@@ -799,31 +893,37 @@
 
         // Pass if not ARP IPv4.
         gen.addLoadImmediate(Register.R0, ARP_HEADER_OFFSET);
-        gen.addJumpIfBytesNotEqual(Register.R0, ARP_IPV4_HEADER, gen.PASS_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_ARP_NON_IPV4);
+        gen.addJumpIfBytesNotEqual(Register.R0, ARP_IPV4_HEADER, mCountAndPassLabel);
 
         // Pass if unknown ARP opcode.
         gen.addLoad16(Register.R0, ARP_OPCODE_OFFSET);
         gen.addJumpIfR0Equals(ARP_OPCODE_REQUEST, checkTargetIPv4); // Skip to unicast check
-        gen.addJumpIfR0NotEquals(ARP_OPCODE_REPLY, gen.PASS_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_ARP_UNKNOWN);
+        gen.addJumpIfR0NotEquals(ARP_OPCODE_REPLY, mCountAndPassLabel);
 
         // Pass if unicast reply.
         gen.addLoadImmediate(Register.R0, ETH_DEST_ADDR_OFFSET);
-        gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, gen.PASS_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_ARP_UNICAST_REPLY);
+        gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, mCountAndPassLabel);
 
         // Either a unicast request, a unicast reply, or a broadcast reply.
         gen.defineLabel(checkTargetIPv4);
         if (mIPv4Address == null) {
             // When there is no IPv4 address, drop GARP replies (b/29404209).
             gen.addLoad32(Register.R0, ARP_TARGET_IP_ADDRESS_OFFSET);
-            gen.addJumpIfR0Equals(IPV4_ANY_HOST_ADDRESS, gen.DROP_LABEL);
+            maybeSetCounter(gen, Counter.DROPPED_GARP_REPLY);
+            gen.addJumpIfR0Equals(IPV4_ANY_HOST_ADDRESS, mCountAndDropLabel);
         } else {
             // When there is an IPv4 address, drop unicast/broadcast requests
             // and broadcast replies with a different target IPv4 address.
             gen.addLoadImmediate(Register.R0, ARP_TARGET_IP_ADDRESS_OFFSET);
-            gen.addJumpIfBytesNotEqual(Register.R0, mIPv4Address, gen.DROP_LABEL);
+            maybeSetCounter(gen, Counter.DROPPED_ARP_OTHER_HOST);
+            gen.addJumpIfBytesNotEqual(Register.R0, mIPv4Address, mCountAndDropLabel);
         }
 
-        gen.addJump(gen.PASS_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_ARP);
+        gen.addJump(mCountAndPassLabel);
     }
 
     /**
@@ -866,7 +966,8 @@
             // NOTE: Relies on R1 containing IPv4 header offset.
             gen.addAddR1();
             gen.addJumpIfBytesNotEqual(Register.R0, mHardwareAddress, skipDhcpv4Filter);
-            gen.addJump(gen.PASS_LABEL);
+            maybeSetCounter(gen, Counter.PASSED_DHCP);
+            gen.addJump(mCountAndPassLabel);
 
             // Drop all multicasts/broadcasts.
             gen.defineLabel(skipDhcpv4Filter);
@@ -874,24 +975,31 @@
             // If IPv4 destination address is in multicast range, drop.
             gen.addLoad8(Register.R0, IPV4_DEST_ADDR_OFFSET);
             gen.addAnd(0xf0);
-            gen.addJumpIfR0Equals(0xe0, gen.DROP_LABEL);
+            maybeSetCounter(gen, Counter.DROPPED_IPV4_MULTICAST);
+            gen.addJumpIfR0Equals(0xe0, mCountAndDropLabel);
 
             // If IPv4 broadcast packet, drop regardless of L2 (b/30231088).
+            maybeSetCounter(gen, Counter.DROPPED_IPV4_BROADCAST_ADDR);
             gen.addLoad32(Register.R0, IPV4_DEST_ADDR_OFFSET);
-            gen.addJumpIfR0Equals(IPV4_BROADCAST_ADDRESS, gen.DROP_LABEL);
+            gen.addJumpIfR0Equals(IPV4_BROADCAST_ADDRESS, mCountAndDropLabel);
             if (mIPv4Address != null && mIPv4PrefixLength < 31) {
+                maybeSetCounter(gen, Counter.DROPPED_IPV4_BROADCAST_NET);
                 int broadcastAddr = ipv4BroadcastAddress(mIPv4Address, mIPv4PrefixLength);
-                gen.addJumpIfR0Equals(broadcastAddr, gen.DROP_LABEL);
+                gen.addJumpIfR0Equals(broadcastAddr, mCountAndDropLabel);
             }
 
             // If L2 broadcast packet, drop.
+            // TODO: can we invert this condition to fall through to the common pass case below?
+            maybeSetCounter(gen, Counter.PASSED_IPV4_UNICAST);
             gen.addLoadImmediate(Register.R0, ETH_DEST_ADDR_OFFSET);
-            gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, gen.PASS_LABEL);
-            gen.addJump(gen.DROP_LABEL);
+            gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, mCountAndPassLabel);
+            maybeSetCounter(gen, Counter.DROPPED_IPV4_L2_BROADCAST);
+            gen.addJump(mCountAndDropLabel);
         }
 
         // Otherwise, pass
-        gen.addJump(gen.PASS_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_IPV4);
+        gen.addJump(mCountAndPassLabel);
     }
 
 
@@ -938,14 +1046,17 @@
 
             // Drop all other packets sent to ff00::/8 (multicast prefix).
             gen.defineLabel(dropAllIPv6MulticastsLabel);
+            maybeSetCounter(gen, Counter.DROPPED_IPV6_NON_ICMP_MULTICAST);
             gen.addLoad8(Register.R0, IPV6_DEST_ADDR_OFFSET);
-            gen.addJumpIfR0Equals(0xff, gen.DROP_LABEL);
+            gen.addJumpIfR0Equals(0xff, mCountAndDropLabel);
             // Not multicast. Pass.
-            gen.addJump(gen.PASS_LABEL);
+            maybeSetCounter(gen, Counter.PASSED_IPV6_UNICAST_NON_ICMP);
+            gen.addJump(mCountAndPassLabel);
             gen.defineLabel(skipIPv6MulticastFilterLabel);
         } else {
             // If not ICMPv6, pass.
-            gen.addJumpIfR0NotEquals(IPPROTO_ICMPV6, gen.PASS_LABEL);
+            maybeSetCounter(gen, Counter.PASSED_IPV6_NON_ICMP);
+            gen.addJumpIfR0NotEquals(IPPROTO_ICMPV6, mCountAndPassLabel);
         }
 
         // If we got this far, the packet is ICMPv6.  Drop some specific types.
@@ -954,7 +1065,8 @@
         String skipUnsolicitedMulticastNALabel = "skipUnsolicitedMulticastNA";
         gen.addLoad8(Register.R0, ICMP6_TYPE_OFFSET);
         // Drop all router solicitations (b/32833400)
-        gen.addJumpIfR0Equals(ICMPV6_ROUTER_SOLICITATION, gen.DROP_LABEL);
+        maybeSetCounter(gen, Counter.DROPPED_IPV6_ROUTER_SOLICITATION);
+        gen.addJumpIfR0Equals(ICMPV6_ROUTER_SOLICITATION, mCountAndDropLabel);
         // If not neighbor announcements, skip filter.
         gen.addJumpIfR0NotEquals(ICMPV6_NEIGHBOR_ADVERTISEMENT, skipUnsolicitedMulticastNALabel);
         // If to ff02::1, drop.
@@ -962,7 +1074,8 @@
         gen.addLoadImmediate(Register.R0, IPV6_DEST_ADDR_OFFSET);
         gen.addJumpIfBytesNotEqual(Register.R0, IPV6_ALL_NODES_ADDRESS,
                 skipUnsolicitedMulticastNALabel);
-        gen.addJump(gen.DROP_LABEL);
+        maybeSetCounter(gen, Counter.DROPPED_IPV6_MULTICAST_NA);
+        gen.addJump(mCountAndDropLabel);
         gen.defineLabel(skipUnsolicitedMulticastNALabel);
     }
 
@@ -985,10 +1098,18 @@
      * </ul>
      */
     @GuardedBy("this")
-    private ApfGenerator beginProgramLocked() throws IllegalInstructionException {
+    private ApfGenerator emitPrologueLocked() throws IllegalInstructionException {
         // This is guaranteed to succeed because of the check in maybeCreate.
         ApfGenerator gen = new ApfGenerator(mApfCapabilities.apfVersionSupported);
 
+        if (mApfCapabilities.hasDataAccess()) {
+            // Increment TOTAL_PACKETS
+            maybeSetCounter(gen, Counter.TOTAL_PACKETS);
+            gen.addLoadData(Register.R0, 0);  // load counter
+            gen.addAdd(1);
+            gen.addStoreData(Register.R0, 0);  // write-back counter
+        }
+
         // Here's a basic summary of what the initial program does:
         //
         // if it's a 802.3 Frame (ethtype < 0x0600):
@@ -1009,12 +1130,14 @@
 
         if (mDrop802_3Frames) {
             // drop 802.3 frames (ethtype < 0x0600)
-            gen.addJumpIfR0LessThan(ETH_TYPE_MIN, gen.DROP_LABEL);
+            maybeSetCounter(gen, Counter.DROPPED_802_3_FRAME);
+            gen.addJumpIfR0LessThan(ETH_TYPE_MIN, mCountAndDropLabel);
         }
 
         // Handle ether-type black list
+        maybeSetCounter(gen, Counter.DROPPED_ETHERTYPE_BLACKLISTED);
         for (int p : mEthTypeBlackList) {
-            gen.addJumpIfR0Equals(p, gen.DROP_LABEL);
+            gen.addJumpIfR0Equals(p, mCountAndDropLabel);
         }
 
         // Add ARP filters:
@@ -1041,8 +1164,10 @@
 
         // Drop non-IP non-ARP broadcasts, pass the rest
         gen.addLoadImmediate(Register.R0, ETH_DEST_ADDR_OFFSET);
-        gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, gen.PASS_LABEL);
-        gen.addJump(gen.DROP_LABEL);
+        maybeSetCounter(gen, Counter.PASSED_NON_IP_UNICAST);
+        gen.addJumpIfBytesNotEqual(Register.R0, ETH_BROADCAST_MAC_ADDRESS, mCountAndPassLabel);
+        maybeSetCounter(gen, Counter.DROPPED_ETH_BROADCAST);
+        gen.addJump(mCountAndDropLabel);
 
         // Add IPv6 filters:
         gen.defineLabel(ipv6FilterLabel);
@@ -1051,6 +1176,39 @@
     }
 
     /**
+     * Append packet counting epilogue to the APF program.
+     *
+     * Currently, the epilogue consists of two trampolines which count passed and dropped packets
+     * before jumping to the actual PASS and DROP labels.
+     */
+    @GuardedBy("this")
+    private void emitEpilogue(ApfGenerator gen) throws IllegalInstructionException {
+        // If APFv4 is unsupported, no epilogue is necessary: if execution reached this far, it
+        // will just fall-through to the PASS label.
+        if (!mApfCapabilities.hasDataAccess()) return;
+
+        // Execution will reach the bottom of the program if none of the filters match,
+        // which will pass the packet to the application processor.
+        maybeSetCounter(gen, Counter.PASSED_IPV6_ICMP);
+
+        // Append the count & pass trampoline, which increments the counter at the data address
+        // pointed to by R1, then jumps to the pass label. This saves a few bytes over inserting
+        // the entire sequence inline for every counter.
+        gen.defineLabel(mCountAndPassLabel);
+        gen.addLoadData(Register.R0, 0);   // R0 = *(R1 + 0)
+        gen.addAdd(1);                     // R0++
+        gen.addStoreData(Register.R0, 0);  // *(R1 + 0) = R0
+        gen.addJump(gen.PASS_LABEL);
+
+        // Same as above for the count & drop trampoline.
+        gen.defineLabel(mCountAndDropLabel);
+        gen.addLoadData(Register.R0, 0);   // R0 = *(R1 + 0)
+        gen.addAdd(1);                     // R0++
+        gen.addStoreData(Register.R0, 0);  // *(R1 + 0) = R0
+        gen.addJump(gen.DROP_LABEL);
+    }
+
+    /**
      * Generate and install a new filter program.
      */
     @GuardedBy("this")
@@ -1060,22 +1218,39 @@
         ArrayList<Ra> rasToFilter = new ArrayList<>();
         final byte[] program;
         long programMinLifetime = Long.MAX_VALUE;
+        long maximumApfProgramSize = mApfCapabilities.maximumApfProgramSize;
+        if (mApfCapabilities.hasDataAccess()) {
+            // Reserve space for the counters.
+            maximumApfProgramSize -= Counter.totalSize();
+        }
+
         try {
             // Step 1: Determine how many RA filters we can fit in the program.
-            ApfGenerator gen = beginProgramLocked();
+            ApfGenerator gen = emitPrologueLocked();
+
+            // The epilogue normally goes after the RA filters, but add it early to include its
+            // length when estimating the total.
+            emitEpilogue(gen);
+
+            // Can't fit the program even without any RA filters?
+            if (gen.programLengthOverEstimate() > maximumApfProgramSize) {
+                Log.e(TAG, "Program exceeds maximum size " + maximumApfProgramSize);
+                return;
+            }
+
             for (Ra ra : mRas) {
                 ra.generateFilterLocked(gen);
                 // Stop if we get too big.
-                if (gen.programLengthOverEstimate() > mApfCapabilities.maximumApfProgramSize) break;
+                if (gen.programLengthOverEstimate() > maximumApfProgramSize) break;
                 rasToFilter.add(ra);
             }
+
             // Step 2: Actually generate the program
-            gen = beginProgramLocked();
+            gen = emitPrologueLocked();
             for (Ra ra : rasToFilter) {
                 programMinLifetime = Math.min(programMinLifetime, ra.generateFilterLocked(gen));
             }
-            // Execution will reach the end of the program if no filters match, which will pass the
-            // packet to the AP.
+            emitEpilogue(gen);
             program = gen.generate();
         } catch (IllegalInstructionException|IllegalStateException e) {
             Log.e(TAG, "Failed to generate APF program.", e);
@@ -1277,6 +1452,23 @@
         installNewProgramLocked();
     }
 
+    static public long counterValue(byte[] data, Counter counter)
+            throws ArrayIndexOutOfBoundsException {
+        // Follow the same wrap-around addressing scheme of the interpreter.
+        int offset = counter.offset();
+        if (offset < 0) {
+            offset = data.length + offset;
+        }
+
+        // Decode 32bit big-endian integer into a long so we can count up beyond 2^31.
+        long value = 0;
+        for (int i = 0; i < 4; i++) {
+            value = value << 8 | (data[offset] & 0xFF);
+            offset++;
+        }
+        return value;
+    }
+
     public synchronized void dump(IndentingPrintWriter pw) {
         pw.println("Capabilities: " + mApfCapabilities);
         pw.println("Receive thread: " + (mReceiveThread != null ? "RUNNING" : "STOPPED"));
@@ -1318,6 +1510,32 @@
             pw.println(HexDump.toHexString(mLastInstalledProgram, false /* lowercase */));
             pw.decreaseIndent();
         }
+
+        pw.println("APF packet counters: ");
+        pw.increaseIndent();
+        if (!mApfCapabilities.hasDataAccess()) {
+            pw.println("APF counters not supported");
+        } else if (mDataSnapshot == null) {
+            pw.println("No last snapshot.");
+        } else {
+            try {
+                Counter[] counters = Counter.class.getEnumConstants();
+                for (Counter c : Arrays.asList(counters).subList(1, counters.length)) {
+                    long value = counterValue(mDataSnapshot, c);
+                    // Only print non-zero counters
+                    if (value != 0) {
+                        pw.println(c.toString() + ": " + value);
+                    }
+                }
+            } catch (ArrayIndexOutOfBoundsException e) {
+                pw.println("Uh-oh: " + e);
+            }
+            if (VDBG) {
+                pw.println("Raw data dump: ");
+                pw.println(HexDump.dumpHexString(mDataSnapshot));
+            }
+        }
+        pw.decreaseIndent();
     }
 
     // TODO: move to android.net.NetworkUtils
diff --git a/services/net/java/android/net/apf/ApfGenerator.java b/services/net/java/android/net/apf/ApfGenerator.java
index 99b2fc6..87a1b5e 100644
--- a/services/net/java/android/net/apf/ApfGenerator.java
+++ b/services/net/java/android/net/apf/ApfGenerator.java
@@ -378,8 +378,7 @@
     }
 
     /**
-     * Returns true if the specified {@code version} is supported by the ApfGenerator, otherwise
-     * false.
+     * Returns true if the ApfGenerator supports the specified {@code version}, otherwise false.
      */
     public static boolean supportsVersion(int version) {
         return version >= MIN_APF_VERSION;
@@ -753,7 +752,7 @@
 
     /**
      * Add an instruction to the end of the program to jump to {@code target} if the bytes of the
-     * packet at, an offset specified by {@code register}, match {@code bytes}.
+     * packet at an offset specified by {@code register} match {@code bytes}.
      */
     public ApfGenerator addJumpIfBytesNotEqual(Register register, byte[] bytes, String target)
             throws IllegalInstructionException {
diff --git a/services/net/java/android/net/dns/ResolvUtil.java b/services/net/java/android/net/dns/ResolvUtil.java
index a2a6615..d9d4b96 100644
--- a/services/net/java/android/net/dns/ResolvUtil.java
+++ b/services/net/java/android/net/dns/ResolvUtil.java
@@ -16,6 +16,8 @@
 
 package android.net.dns;
 
+import static android.system.OsConstants.AI_ADDRCONFIG;
+
 import android.net.Network;
 import android.net.NetworkUtils;
 import android.system.GaiException;
@@ -41,12 +43,17 @@
 
     public static InetAddress[] blockingResolveAllLocally(Network network, String name)
             throws UnknownHostException {
+        // Use AI_ADDRCONFIG by default
+        return blockingResolveAllLocally(network, name, AI_ADDRCONFIG);
+    }
+
+    public static InetAddress[] blockingResolveAllLocally(
+            Network network, String name, int aiFlags) throws UnknownHostException  {
         final StructAddrinfo hints = new StructAddrinfo();
-        // Unnecessary, but expressly no AI_ADDRCONFIG.
-        hints.ai_flags = 0;
-        // Fetch all IP addresses at once to minimize re-resolution.
+        hints.ai_flags = aiFlags;
+        // Other hints identical to the default Inet6AddressImpl implementation
         hints.ai_family = OsConstants.AF_UNSPEC;
-        hints.ai_socktype = OsConstants.SOCK_DGRAM;
+        hints.ai_socktype = OsConstants.SOCK_STREAM;
 
         final Network networkForResolv = getNetworkWithUseLocalNameserversFlag(network);
 
diff --git a/services/net/java/android/net/ip/IpClient.java b/services/net/java/android/net/ip/IpClient.java
index 37bb2ad..7f821ff 100644
--- a/services/net/java/android/net/ip/IpClient.java
+++ b/services/net/java/android/net/ip/IpClient.java
@@ -16,6 +16,7 @@
 
 package android.net.ip;
 
+import com.android.internal.util.HexDump;
 import com.android.internal.util.MessageUtils;
 import com.android.internal.util.WakeupMessage;
 
@@ -174,6 +175,12 @@
         // Install an APF program to filter incoming packets.
         public void installPacketFilter(byte[] filter) {}
 
+        // Asynchronously read back the APF program & data buffer from the wifi driver.
+        // Due to Wifi HAL limitations, the current implementation only supports dumping the entire
+        // buffer. In response to this request, the driver returns the data buffer asynchronously
+        // by sending an IpClient#EVENT_READ_PACKET_FILTER_COMPLETE message.
+        public void startReadPacketFilter() {}
+
         // If multicast filtering cannot be accomplished with APF, this function will be called to
         // actuate multicast filtering using another means.
         public void setFallbackMulticastFilter(boolean enabled) {}
@@ -224,10 +231,10 @@
     // TODO: Find an lighter weight approach.
     private class LoggingCallbackWrapper extends Callback {
         private static final String PREFIX = "INVOKE ";
-        private Callback mCallback;
+        private final Callback mCallback;
 
         public LoggingCallbackWrapper(Callback callback) {
-            mCallback = callback;
+            mCallback = (callback != null) ? callback : new Callback();
         }
 
         private void log(String msg) {
@@ -280,6 +287,11 @@
             log("installPacketFilter(byte[" + filter.length + "])");
         }
         @Override
+        public void startReadPacketFilter() {
+            mCallback.startReadPacketFilter();
+            log("startReadPacketFilter()");
+        }
+        @Override
         public void setFallbackMulticastFilter(boolean enabled) {
             mCallback.setFallbackMulticastFilter(enabled);
             log("setFallbackMulticastFilter(" + enabled + ")");
@@ -591,6 +603,14 @@
     private static final int CMD_SET_MULTICAST_FILTER             = 9;
     private static final int EVENT_PROVISIONING_TIMEOUT           = 10;
     private static final int EVENT_DHCPACTION_TIMEOUT             = 11;
+    private static final int EVENT_READ_PACKET_FILTER_COMPLETE    = 12;
+
+    // Internal commands to use instead of trying to call transitionTo() inside
+    // a given State's enter() method. Calling transitionTo() from enter/exit
+    // encounters a Log.wtf() that can cause trouble on eng builds.
+    private static final int CMD_JUMP_STARTED_TO_RUNNING          = 100;
+    private static final int CMD_JUMP_RUNNING_TO_STOPPING         = 101;
+    private static final int CMD_JUMP_STOPPING_TO_STOPPED         = 102;
 
     private static final int MAX_LOG_RECORDS = 500;
     private static final int MAX_PACKET_RECORDS = 100;
@@ -644,6 +664,14 @@
     private boolean mMulticastFiltering;
     private long mStartTimeMillis;
 
+    /**
+     * Reading the snapshot is an asynchronous operation initiated by invoking
+     * Callback.startReadPacketFilter() and completed when the WiFi Service responds with an
+     * EVENT_READ_PACKET_FILTER_COMPLETE message. The mApfDataSnapshotComplete condition variable
+     * signals when a new snapshot is ready.
+     */
+    private final ConditionVariable mApfDataSnapshotComplete = new ConditionVariable();
+
     public static class Dependencies {
         public INetworkManagementService getNMS() {
             return INetworkManagementService.Stub.asInterface(
@@ -857,6 +885,10 @@
         sendMessage(EVENT_PRE_DHCP_ACTION_COMPLETE);
     }
 
+    public void readPacketFilterComplete(byte[] data) {
+        sendMessage(EVENT_READ_PACKET_FILTER_COMPLETE, data);
+    }
+
     /**
      * Set the TCP buffer sizes to use.
      *
@@ -902,7 +934,16 @@
         pw.println(mTag + " APF dump:");
         pw.increaseIndent();
         if (apfFilter != null) {
+            if (apfCapabilities.hasDataAccess()) {
+                // Request a new snapshot, then wait for it.
+                mApfDataSnapshotComplete.close();
+                mCallback.startReadPacketFilter();
+                if (!mApfDataSnapshotComplete.block(1000)) {
+                    pw.print("TIMEOUT: DUMPING STALE APF SNAPSHOT");
+                }
+            }
             apfFilter.dump(pw);
+
         } else {
             pw.print("No active ApfFilter; ");
             if (provisioningConfig == null) {
@@ -914,7 +955,6 @@
             }
         }
         pw.decreaseIndent();
-
         pw.println();
         pw.println(mTag + " current ProvisioningConfiguration:");
         pw.increaseIndent();
@@ -1385,6 +1425,9 @@
 
             resetLinkProperties();
             if (mStartTimeMillis > 0) {
+                // Completed a life-cycle; send a final empty LinkProperties
+                // (cleared in resetLinkProperties() above) and record an event.
+                mCallback.onLinkPropertiesChange(new LinkProperties(mLinkProperties));
                 recordMetric(IpManagerEvent.COMPLETE_LIFECYCLE);
                 mStartTimeMillis = 0;
             }
@@ -1443,13 +1486,17 @@
         public void enter() {
             if (mDhcpClient == null) {
                 // There's no DHCPv4 for which to wait; proceed to stopped.
-                transitionTo(mStoppedState);
+                deferMessage(obtainMessage(CMD_JUMP_STOPPING_TO_STOPPED));
             }
         }
 
         @Override
         public boolean processMessage(Message msg) {
             switch (msg.what) {
+                case CMD_JUMP_STOPPING_TO_STOPPED:
+                    transitionTo(mStoppedState);
+                    break;
+
                 case CMD_STOP:
                     break;
 
@@ -1483,7 +1530,7 @@
             }
 
             if (readyToProceed()) {
-                transitionTo(mRunningState);
+                deferMessage(obtainMessage(CMD_JUMP_STARTED_TO_RUNNING));
             } else {
                 // Clear all IPv4 and IPv6 before proceeding to RunningState.
                 // Clean up any leftover state from an abnormal exit from
@@ -1500,6 +1547,10 @@
         @Override
         public boolean processMessage(Message msg) {
             switch (msg.what) {
+                case CMD_JUMP_STARTED_TO_RUNNING:
+                    transitionTo(mRunningState);
+                    break;
+
                 case CMD_STOP:
                     transitionTo(mStoppingState);
                     break;
@@ -1528,7 +1579,7 @@
             return HANDLED;
         }
 
-        boolean readyToProceed() {
+        private boolean readyToProceed() {
             return (!mLinkProperties.hasIPv4Address() &&
                     !mLinkProperties.hasGlobalIPv6Address());
         }
@@ -1560,13 +1611,13 @@
 
             if (mConfiguration.mEnableIPv6 && !startIPv6()) {
                 doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV6);
-                transitionTo(mStoppingState);
+                enqueueJumpToStoppingState();
                 return;
             }
 
             if (mConfiguration.mEnableIPv4 && !startIPv4()) {
                 doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV4);
-                transitionTo(mStoppingState);
+                enqueueJumpToStoppingState();
                 return;
             }
 
@@ -1574,7 +1625,7 @@
             if ((config != null) && !applyInitialConfig(config)) {
                 // TODO introduce a new IpManagerEvent constant to distinguish this error case.
                 doImmediateProvisioningFailure(IpManagerEvent.ERROR_INVALID_PROVISIONING);
-                transitionTo(mStoppingState);
+                enqueueJumpToStoppingState();
                 return;
             }
 
@@ -1588,7 +1639,7 @@
             if (mConfiguration.mUsingIpReachabilityMonitor && !startIpReachabilityMonitor()) {
                 doImmediateProvisioningFailure(
                         IpManagerEvent.ERROR_STARTING_IPREACHABILITYMONITOR);
-                transitionTo(mStoppingState);
+                enqueueJumpToStoppingState();
                 return;
             }
         }
@@ -1625,6 +1676,10 @@
             resetLinkProperties();
         }
 
+        private void enqueueJumpToStoppingState() {
+            deferMessage(obtainMessage(CMD_JUMP_RUNNING_TO_STOPPING));
+        }
+
         private ConnectivityPacketTracker createPacketTracker() {
             try {
                 return new ConnectivityPacketTracker(
@@ -1655,6 +1710,7 @@
         @Override
         public boolean processMessage(Message msg) {
             switch (msg.what) {
+                case CMD_JUMP_RUNNING_TO_STOPPING:
                 case CMD_STOP:
                     transitionTo(mStoppingState);
                     break;
@@ -1710,6 +1766,14 @@
                     break;
                 }
 
+                case EVENT_READ_PACKET_FILTER_COMPLETE: {
+                    if (mApfFilter != null) {
+                        mApfFilter.setDataSnapshot((byte[]) msg.obj);
+                    }
+                    mApfDataSnapshotComplete.open();
+                    break;
+                }
+
                 case EVENT_DHCPACTION_TIMEOUT:
                     stopDhcpAction();
                     break;
diff --git a/services/net/java/android/net/util/NetworkConstants.java b/services/net/java/android/net/util/NetworkConstants.java
index 53fd01f..de04fd0 100644
--- a/services/net/java/android/net/util/NetworkConstants.java
+++ b/services/net/java/android/net/util/NetworkConstants.java
@@ -53,7 +53,7 @@
 
     public static final int ETHER_HEADER_LEN = 14;
 
-    private static final byte FF = asByte(0xff);
+    public static final byte FF = asByte(0xff);
     public static final byte[] ETHER_ADDR_BROADCAST = {
         FF, FF, FF, FF, FF, FF
     };
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
index 9702118..cb5f0a7 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
@@ -235,6 +235,12 @@
     }
 
     @Override
+    public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions) {
+        spiedContext.sendBroadcastAsUserMultiplePermissions(intent, user, receiverPermissions);
+    }
+
+    @Override
     public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
         spiedContext.sendBroadcast(intent, receiverPermission, options);
     }
diff --git a/telecomm/java/android/telecom/CallAudioState.java b/telecomm/java/android/telecom/CallAudioState.java
index 4b827d2..e33ba7e 100644
--- a/telecomm/java/android/telecom/CallAudioState.java
+++ b/telecomm/java/android/telecom/CallAudioState.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.TestApi;
 import android.bluetooth.BluetoothDevice;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -100,6 +101,7 @@
     }
 
     /** @hide */
+    @TestApi
     public CallAudioState(boolean isMuted, @CallAudioRoute int route,
             @CallAudioRoute int supportedRouteMask,
             @Nullable BluetoothDevice activeBluetoothDevice,
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 2fdbc71..4045eea 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -1531,6 +1531,14 @@
                     new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"));
         }
 
+        boolean isSelfManaged =
+                (connection.getConnectionProperties() & Connection.PROPERTY_SELF_MANAGED)
+                        == Connection.PROPERTY_SELF_MANAGED;
+        // Self-managed Connections should always use voip audio mode; we default here so that the
+        // local state within the ConnectionService matches the default we assume in Telecom.
+        if (isSelfManaged) {
+            connection.setAudioModeIsVoip(true);
+        }
         connection.setTelecomCallId(callId);
         if (connection.getState() != Connection.STATE_DISCONNECTED) {
             addConnection(callId, connection);
@@ -1570,9 +1578,7 @@
                         createIdList(connection.getConferenceables()),
                         connection.getExtras()));
 
-        if (isIncoming && request.shouldShowIncomingCallUi() &&
-                (connection.getConnectionProperties() & Connection.PROPERTY_SELF_MANAGED) ==
-                        Connection.PROPERTY_SELF_MANAGED) {
+        if (isIncoming && request.shouldShowIncomingCallUi() && isSelfManaged) {
             // Tell ConnectionService to show its incoming call UX.
             connection.onShowIncomingCallUi();
         }
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index b8a1c13..b672e69 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -1895,6 +1895,15 @@
     public static final String KEY_WCDMA_DEFAULT_SIGNAL_STRENGTH_MEASUREMENT_STRING =
             "wcdma_default_signal_strength_measurement_string";
 
+    /**
+     * When a partial sms / mms message stay in raw table for too long without being completed,
+     * we expire them and delete them from the raw table. This carrier config defines the
+     * expiration time.
+     * @hide
+     */
+    public static final String KEY_UNDELIVERED_SMS_MESSAGE_EXPIRATION_TIME =
+            "undelivered_sms_message_expiration_time";
+
     /** The default value for every variable. */
     private final static PersistableBundle sDefaults;
 
diff --git a/telephony/java/android/telephony/MbmsDownloadSession.java b/telephony/java/android/telephony/MbmsDownloadSession.java
index d9fdd97..af4d8d7 100644
--- a/telephony/java/android/telephony/MbmsDownloadSession.java
+++ b/telephony/java/android/telephony/MbmsDownloadSession.java
@@ -207,23 +207,25 @@
     public static final int STATUS_UNKNOWN = 0;
 
     /**
-     * Indicates that the file is actively downloading.
+     * Indicates that the file is actively being downloaded.
      */
     public static final int STATUS_ACTIVELY_DOWNLOADING = 1;
 
     /**
-     * TODO: I don't know...
+     * Indicates that the file is awaiting the next download or repair operations. When a more
+     * precise status is known, the status will change to either {@link #STATUS_PENDING_REPAIR} or
+     * {@link #STATUS_PENDING_DOWNLOAD_WINDOW}.
      */
     public static final int STATUS_PENDING_DOWNLOAD = 2;
 
     /**
-     * Indicates that the file is being repaired after the download being interrupted.
+     * Indicates that the file is awaiting file repair after the download has ended.
      */
     public static final int STATUS_PENDING_REPAIR = 3;
 
     /**
      * Indicates that the file is waiting to download because its download window has not yet
-     * started.
+     * started and is scheduled for a future time.
      */
     public static final int STATUS_PENDING_DOWNLOAD_WINDOW = 4;
 
@@ -609,6 +611,9 @@
      * If the operation encountered an error, the error code will be delivered via
      * {@link MbmsDownloadSessionCallback#onError}.
      *
+     * Repeated calls to this method for the same {@link DownloadRequest} will replace the
+     * previously registered listener.
+     *
      * @param request The {@link DownloadRequest} that you want updates on.
      * @param executor The {@link Executor} on which calls to {@code listener } should be executed.
      * @param listener The listener that should be called when the middleware has information to
@@ -659,6 +664,9 @@
      * If the operation encountered an error, the error code will be delivered via
      * {@link MbmsDownloadSessionCallback#onError}.
      *
+     * Repeated calls to this method for the same {@link DownloadRequest} will replace the
+     * previously registered listener.
+     *
      * @param request The {@link DownloadRequest} provided during registration
      * @param listener The listener provided during registration.
      */
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java
index 3e73b93..f93653e 100644
--- a/telephony/java/android/telephony/PhoneStateListener.java
+++ b/telephony/java/android/telephony/PhoneStateListener.java
@@ -452,7 +452,7 @@
      *
      * @param state call state
      * @param phoneNumber call phone number. If application does not have
-     * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} permission or carrier
+     * {@link android.Manifest.permission#READ_CALL_LOG READ_CALL_LOG} permission or carrier
      * privileges (see {@link TelephonyManager#hasCarrierPrivileges}), an empty string will be
      * passed as an argument.
      */
diff --git a/telephony/java/android/telephony/PhysicalChannelConfig.java b/telephony/java/android/telephony/PhysicalChannelConfig.java
index ce444dd..d2001ae 100644
--- a/telephony/java/android/telephony/PhysicalChannelConfig.java
+++ b/telephony/java/android/telephony/PhysicalChannelConfig.java
@@ -99,6 +99,20 @@
         return mCellConnectionStatus;
     }
 
+    /** @return String representation of the connection status */
+    private String getConnectionStatusString() {
+        switch(mCellConnectionStatus) {
+            case CONNECTION_PRIMARY_SERVING:
+                return "PrimaryServing";
+            case CONNECTION_SECONDARY_SERVING:
+                return "SecondaryServing";
+            case CONNECTION_UNKNOWN:
+                return "Unknown";
+            default:
+                return "Invalid(" + mCellConnectionStatus + ")";
+        }
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) {
@@ -129,4 +143,15 @@
                 return new PhysicalChannelConfig[size];
             }
         };
+
+    @Override
+    public String toString() {
+        return new StringBuilder()
+            .append("{mConnectionStatus=")
+            .append(getConnectionStatusString())
+            .append(",mCellBandwidthDownlinkKhz=")
+            .append(mCellBandwidthDownlinkKhz)
+            .append("}")
+            .toString();
+    }
 }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 16599d2..9de1355 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -334,10 +334,12 @@
      *
      * <p>
      * The {@link #EXTRA_STATE} extra indicates the new call state.
-     * If the new state is RINGING, a second extra
-     * {@link #EXTRA_INCOMING_NUMBER} provides the incoming phone number as
-     * a String.
-     *
+     * If a receiving app has {@link android.Manifest.permission#READ_CALL_LOG} permission, a second
+     * extra {@link #EXTRA_INCOMING_NUMBER} provides the phone number for incoming and outoing calls
+     * as a String.  Note: If the receiving app has
+     * {@link android.Manifest.permission#READ_CALL_LOG} and
+     * {@link android.Manifest.permission#READ_PHONE_STATE} permission, it will receive the
+     * broadcast twice; one with the phone number and another without it.
      * <p class="note">
      * This was a {@link android.content.Context#sendStickyBroadcast sticky}
      * broadcast in version 1.0, but it is no longer sticky.
diff --git a/telephony/java/android/telephony/UiccSlotInfo.java b/telephony/java/android/telephony/UiccSlotInfo.java
index 125161d..a39992b 100644
--- a/telephony/java/android/telephony/UiccSlotInfo.java
+++ b/telephony/java/android/telephony/UiccSlotInfo.java
@@ -148,7 +148,7 @@
         UiccSlotInfo that = (UiccSlotInfo) obj;
         return (mIsActive == that.mIsActive)
                 && (mIsEuicc == that.mIsEuicc)
-                && (mCardId == that.mCardId)
+                && (Objects.equals(mCardId, that.mCardId))
                 && (mCardStateInfo == that.mCardStateInfo)
                 && (mLogicalSlotIdx == that.mLogicalSlotIdx)
                 && (mIsExtendedApduSupported == that.mIsExtendedApduSupported);
diff --git a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
index 6d72181..2831127 100644
--- a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
+++ b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
@@ -29,27 +29,47 @@
 public final class ImsCallForwardInfo implements Parcelable {
     // Refer to ImsUtInterface#CDIV_CF_XXX
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public int mCondition;
     // 0: disabled, 1: enabled
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public int mStatus;
     // 0x91: International, 0x81: Unknown
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public int mToA;
     // Service class
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public int mServiceClass;
     // Number (it will not include the "sip" or "tel" URI scheme)
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public String mNumber;
     // No reply timer for CF
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter.
     public int mTimeSeconds;
 
     /** @hide */
+    // TODO: Will be removed in the future, use public constructor instead.
     public ImsCallForwardInfo() {
     }
 
+    /**
+     * IMS Call Forward Information.
+     */
+    public ImsCallForwardInfo(int condition, int status, int toA, int serviceClass, String number,
+            int replyTimerSec) {
+        mCondition = condition;
+        mStatus = status;
+        mToA = toA;
+        mServiceClass = serviceClass;
+        mNumber = number;
+        mTimeSeconds = replyTimerSec;
+    }
+
     /** @hide */
     public ImsCallForwardInfo(Parcel in) {
         readFromParcel(in);
diff --git a/telephony/java/android/telephony/ims/ImsReasonInfo.java b/telephony/java/android/telephony/ims/ImsReasonInfo.java
index 7d65430..e70e633 100644
--- a/telephony/java/android/telephony/ims/ImsReasonInfo.java
+++ b/telephony/java/android/telephony/ims/ImsReasonInfo.java
@@ -399,6 +399,160 @@
      */
     public static final int CODE_UNOBTAINABLE_NUMBER = 1515;
 
+    /**
+     * The rejection cause is not known.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_UNKNOWN = 1600;
+
+    /**
+     * Ongoing call, and call waiting is disabled.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CALL_WAITING_DISABLED = 1601;
+
+    /**
+     * A call is ongoing on another sub.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_CALL_ON_OTHER_SUB = 1602;
+
+    /**
+     * CDMA call collision.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_1X_COLLISION = 1603;
+
+    /**
+     * IMS is not registered for service yet.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_SERVICE_NOT_REGISTERED = 1604;
+
+    /**
+     * The call type is not allowed on the current RAT.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_CALL_TYPE_NOT_ALLOWED = 1605;
+
+    /**
+     * And emergency call is ongoing.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_E911_CALL = 1606;
+
+    /**
+     * Another call is in the process of being establilshed.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CALL_SETUP = 1607;
+
+    /**
+     * Maximum number of allowed calls are already in progress.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_MAX_CALL_LIMIT_REACHED = 1608;
+
+    /**
+     * Invalid/unsupported SIP headers received.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_UNSUPPORTED_SIP_HEADERS = 1609;
+
+    /**
+     * Invalid/unsupported SDP headers received.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_UNSUPPORTED_SDP_HEADERS = 1610;
+
+    /**
+     * A call transfer is in progress.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CALL_TRANSFER = 1611;
+
+    /**
+     * An internal error occured while processing the call.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_INTERNAL_ERROR = 1612;
+
+    /**
+     * Call failure due to lack of dedicated bearer.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_QOS_FAILURE = 1613;
+
+    /**
+     * A call handover is in progress.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_HANDOVER = 1614;
+
+    /**
+     * Video calling not supported with TTY.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_VT_TTY_NOT_ALLOWED = 1615;
+
+    /**
+     * A call upgrade is in progress.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CALL_UPGRADE = 1616;
+
+    /**
+     * Call from conference server, when TTY mode is ON.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_CONFERENCE_TTY_NOT_ALLOWED = 1617;
+
+    /**
+     * A conference call is ongoing.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CONFERENCE_CALL = 1618;
+
+    /**
+     * A video call with AVPF is not supported.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_VT_AVPF_NOT_ALLOWED = 1619;
+
+    /**
+     * And encrypted call is ongoing; other calls not supported.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_ENCRYPTED_CALL = 1620;
+
+    /**
+     * A CS call is ongoing.
+     * <p>
+     * Used with implicit call rejection.
+     */
+    public static final int CODE_REJECT_ONGOING_CS_CALL = 1621;
+
     /* OEM specific error codes. To be used by OEMs when they don't want to
    reveal error code which would be replaced by ERROR_UNSPECIFIED */
     public static final int CODE_OEM_CAUSE_1 = 0xf001;
diff --git a/telephony/java/android/telephony/ims/ImsSsData.java b/telephony/java/android/telephony/ims/ImsSsData.java
index 1ddf199..b68055e 100644
--- a/telephony/java/android/telephony/ims/ImsSsData.java
+++ b/telephony/java/android/telephony/ims/ImsSsData.java
@@ -15,19 +15,24 @@
  */
 package android.telephony.ims;
 
+import android.annotation.IntDef;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /**
- * Provided STK Call Control Suplementary Service information
+ * Provides STK Call Control Supplementary Service information.
  *
  * {@hide}
  */
 @SystemApi
 public final class ImsSsData implements Parcelable {
 
-    //ServiceType
+    // Supplementary Service Type
+    // Call Forwarding
     public static final int SS_CFU = 0;
     public static final int SS_CF_BUSY = 1;
     public static final int SS_CF_NO_REPLY = 2;
@@ -35,12 +40,16 @@
     public static final int SS_CF_ALL = 4;
     public static final int SS_CF_ALL_CONDITIONAL = 5;
     public static final int SS_CFUT = 6;
+    // Called Line Presentation
     public static final int SS_CLIP = 7;
     public static final int SS_CLIR = 8;
     public static final int SS_COLP = 9;
     public static final int SS_COLR = 10;
+    // Calling Name Presentation
     public static final int SS_CNAP = 11;
+    // Call Waiting
     public static final int SS_WAIT = 12;
+    // Call Barring
     public static final int SS_BAOC = 13;
     public static final int SS_BAOIC = 14;
     public static final int SS_BAOIC_EXC_HOME = 15;
@@ -52,14 +61,14 @@
     public static final int SS_INCOMING_BARRING_DN = 21;
     public static final int SS_INCOMING_BARRING_ANONYMOUS = 22;
 
-    //SSRequestType
+    //Supplementary Service Request Types
     public static final int SS_ACTIVATION = 0;
     public static final int SS_DEACTIVATION = 1;
     public static final int SS_INTERROGATION = 2;
     public static final int SS_REGISTRATION = 3;
     public static final int SS_ERASURE = 4;
 
-    //TeleserviceType
+    // Supplementary Service Teleservice Type
     public static final int SS_ALL_TELE_AND_BEARER_SERVICES = 0;
     public static final int SS_ALL_TELESEVICES = 1;
     public static final int SS_TELEPHONY = 2;
@@ -67,40 +76,227 @@
     public static final int SS_SMS_SERVICES = 4;
     public static final int SS_ALL_TELESERVICES_EXCEPT_SMS = 5;
 
-    // Refer to ServiceType
+    // Service Class of Supplementary Service
+    // See 27.007 +CCFC or +CLCK
     /** @hide */
+    public static final int SERVICE_CLASS_NONE = 0; // no user input
+    /** @hide */
+    public static final int SERVICE_CLASS_VOICE = 1;
+    /** @hide */
+    public static final int SERVICE_CLASS_DATA = (1 << 1);
+    /** @hide */
+    public static final int SERVICE_CLASS_FAX = (1 << 2);
+    /** @hide */
+    public static final int SERVICE_CLASS_SMS = (1 << 3);
+    /** @hide */
+    public static final int SERVICE_CLASS_DATA_SYNC = (1 << 4);
+    /** @hide */
+    public static final int SERVICE_CLASS_DATA_ASYNC = (1 << 5);
+    /** @hide */
+    public static final int SERVICE_CLASS_PACKET = (1 << 6);
+    /** @hide */
+    public static final int SERVICE_CLASS_PAD = (1 << 7);
+
+    /**
+     * Result code used if the operation was successful. See {@link #result}.
+     * @hide
+     */
+    public static final int RESULT_SUCCESS = 0;
+
+    /** @hide */
+    @IntDef(flag = true, prefix = { "SS_" }, value = {
+            SS_CFU,
+            SS_CF_BUSY,
+            SS_CF_NO_REPLY,
+            SS_CF_NOT_REACHABLE,
+            SS_CF_ALL,
+            SS_CF_ALL_CONDITIONAL,
+            SS_CFUT,
+            SS_CLIP,
+            SS_CLIR,
+            SS_COLP,
+            SS_COLR,
+            SS_CNAP,
+            SS_WAIT,
+            SS_BAOC,
+            SS_BAOIC,
+            SS_BAOIC_EXC_HOME,
+            SS_BAIC,
+            SS_BAIC_ROAMING,
+            SS_ALL_BARRING,
+            SS_OUTGOING_BARRING,
+            SS_INCOMING_BARRING,
+            SS_INCOMING_BARRING_DN,
+            SS_INCOMING_BARRING_ANONYMOUS
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ServiceType{}
+
+    /** @hide */
+    @IntDef(flag = true, prefix = { "SERVICE_CLASS" }, value = {
+            SERVICE_CLASS_NONE,
+            SERVICE_CLASS_VOICE,
+            SERVICE_CLASS_DATA,
+            SERVICE_CLASS_FAX,
+            SERVICE_CLASS_SMS,
+            SERVICE_CLASS_DATA_SYNC,
+            SERVICE_CLASS_DATA_ASYNC,
+            SERVICE_CLASS_PACKET,
+            SERVICE_CLASS_PAD
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ServiceClass{}
+
+    /**
+     * The Service type of this Supplementary service. Valid values include:
+     *     SS_CFU,
+     *     SS_CF_BUSY,
+     *     SS_CF_NO_REPLY,
+     *     SS_CF_NOT_REACHABLE,
+     *     SS_CF_ALL,
+     *     SS_CF_ALL_CONDITIONAL,
+     *     SS_CFUT,
+     *     SS_CLIP,
+     *     SS_CLIR,
+     *     SS_COLP,
+     *     SS_COLR,
+     *     SS_CNAP,
+     *     SS_WAIT,
+     *     SS_BAOC,
+     *     SS_BAOIC,
+     *     SS_BAOIC_EXC_HOME,
+     *     SS_BAIC,
+     *     SS_BAIC_ROAMING,
+     *     SS_ALL_BARRING,
+     *     SS_OUTGOING_BARRING,
+     *     SS_INCOMING_BARRING,
+     *     SS_INCOMING_BARRING_DN,
+     *     SS_INCOMING_BARRING_ANONYMOUS
+     *
+     * @hide
+     */
+    // TODO: Make final, do not modify this field directly!
     public int serviceType;
-    // Refere to SSRequestType
-    /** @hide */
+
+    /**
+     * Supplementary Service request Type. Valid values are:
+     *     SS_ACTIVATION,
+     *     SS_DEACTIVATION,
+     *     SS_INTERROGATION,
+     *     SS_REGISTRATION,
+     *     SS_ERASURE
+     *
+     * @hide
+     */
+    // TODO: Make final, do not modify this field directly!
     public int requestType;
-    // Refer to TeleserviceType
-    /** @hide */
+
+    /**
+     * Supplementary Service teleservice type:
+     *     SS_TELESERVICE_ALL_TELE_AND_BEARER,
+     *     SS_TELESERVICE_ALL_TELESEVICES,
+     *     SS_TELESERVICE_TELEPHONY,
+     *     SS_TELESERVICE_ALL_DATA,
+     *     SS_TELESERVICE_SMS,
+     *     SS_TELESERVICE_ALL_TELESERVICES_EXCEPT_SMS
+     *
+     * @hide
+     */
+    // TODO: Make this param final! Do not try to modify this param directly.
     public int teleserviceType;
-    // Service Class
-    /** @hide */
+
+    /**
+     * Supplementary Service service class. Valid values are:
+     *     SERVICE_CLASS_NONE,
+     *     SERVICE_CLASS_VOICE,
+     *     SERVICE_CLASS_DATA,
+     *     SERVICE_CLASS_FAX,
+     *     SERVICE_CLASS_SMS,
+     *     SERVICE_CLASS_DATA_SYNC,
+     *     SERVICE_CLASS_DATA_ASYNC,
+     *     SERVICE_CLASS_PACKET,
+     *     SERVICE_CLASS_PAD
+     *
+     * @hide
+     */
+    // TODO: Make this param final! Do not try to modify this param directly.
     public int serviceClass;
-    // Error information
-    /** @hide */
-    public int result;
 
-    /** @hide */
-    public int[] ssInfo; /* Valid for all supplementary services.
-                             This field will be empty for RequestType SS_INTERROGATION
-                             and ServiceType SS_CF_*, SS_INCOMING_BARRING_DN,
-                             SS_INCOMING_BARRING_ANONYMOUS.*/
+    /**
+     * Result of Supplementary Service operation. Valid values are:
+     *     RESULT_SUCCESS if the result is success, or
+     *     ImsReasonInfo code if the result is a failure.
+     *
+     * @hide
+     */
+    // TODO: Make this param final! Do not try to modify this param directly.
+    public final int result;
 
-    /** @hide */
-    public ImsCallForwardInfo[] cfInfo; /* Valid only for supplementary services
-                                            ServiceType SS_CF_* and RequestType SS_INTERROGATION */
+    private int[] mSsInfo;
+    private ImsCallForwardInfo[] mCfInfo;
+    private ImsSsInfo[] mImsSsInfo;
 
-    /** @hide */
-    public ImsSsInfo[] imsSsInfo;   /* Valid only for ServiceType SS_INCOMING_BARRING_DN and
-                                        ServiceType SS_INCOMING_BARRING_ANONYMOUS */
-
-    public ImsSsData() {}
+    /**
+     * Generate IMS Supplementary Service information.
+     * @param serviceType The Supplementary Service type. Valid entries:
+     *     SS_CFU,
+     *     SS_CF_BUSY,
+     *     SS_CF_NO_REPLY,
+     *     SS_CF_NOT_REACHABLE,
+     *     SS_CF_ALL,
+     *     SS_CF_ALL_CONDITIONAL,
+     *     SS_CFUT,
+     *     SS_CLIP,
+     *     SS_CLIR,
+     *     SS_COLP,
+     *     SS_COLR,
+     *     SS_CNAP,
+     *     SS_WAIT,
+     *     SS_BAOC,
+     *     SS_BAOIC,
+     *     SS_BAOIC_EXC_HOME,
+     *     SS_BAIC,
+     *     SS_BAIC_ROAMING,
+     *     SS_ALL_BARRING,
+     *     SS_OUTGOING_BARRING,
+     *     SS_INCOMING_BARRING,
+     *     SS_INCOMING_BARRING_DN,
+     *     SS_INCOMING_BARRING_ANONYMOUS
+     * @param requestType Supplementary Service request Type. Valid values are:
+     *     SS_ACTIVATION,
+     *     SS_DEACTIVATION,
+     *     SS_INTERROGATION,
+     *     SS_REGISTRATION,
+     *     SS_ERASURE
+     * @param teleserviceType Supplementary Service teleservice type:
+     *     SS_TELESERVICE_ALL_TELE_AND_BEARER,
+     *     SS_TELESERVICE_ALL_TELESEVICES,
+     *     SS_TELESERVICE_TELEPHONY,
+     *     SS_TELESERVICE_ALL_DATA,
+     *     SS_TELESERVICE_SMS,
+     *     SS_TELESERVICE_ALL_TELESERVICES_EXCEPT_SMS
+     * @param serviceClass Supplementary Service service class. See See 27.007 +CCFC or +CLCK.
+     * @param result Result of Supplementary Service operation. Valid values are 0 if the result is
+     *               success, or ImsReasonInfo code if the result is a failure.
+     */
+    public ImsSsData(@ServiceType int serviceType, int requestType, int teleserviceType,
+            @ServiceClass int serviceClass, int result) {
+        this.serviceType = serviceType;
+        this.requestType = requestType;
+        this.teleserviceType = teleserviceType;
+        this.serviceClass = serviceClass;
+        this.result = result;
+    }
 
     private ImsSsData(Parcel in) {
-        readFromParcel(in);
+        serviceType = in.readInt();
+        requestType = in.readInt();
+        teleserviceType = in.readInt();
+        serviceClass = in.readInt();
+        result = in.readInt();
+        mSsInfo = in.createIntArray();
+        mCfInfo = (ImsCallForwardInfo[])in.readParcelableArray(this.getClass().getClassLoader());
+        mImsSsInfo = (ImsSsInfo[])in.readParcelableArray(this.getClass().getClassLoader());
     }
 
     public static final Creator<ImsSsData> CREATOR = new Creator<ImsSsData>() {
@@ -122,18 +318,9 @@
         out.writeInt(teleserviceType);
         out.writeInt(serviceClass);
         out.writeInt(result);
-        out.writeIntArray(ssInfo);
-        out.writeParcelableArray(cfInfo, 0);
-    }
-
-    private void readFromParcel(Parcel in) {
-        serviceType = in.readInt();
-        requestType = in.readInt();
-        teleserviceType = in.readInt();
-        serviceClass = in.readInt();
-        result = in.readInt();
-        ssInfo = in.createIntArray();
-        cfInfo = (ImsCallForwardInfo[])in.readParcelableArray(this.getClass().getClassLoader());
+        out.writeIntArray(mSsInfo);
+        out.writeParcelableArray(mCfInfo, 0);
+        out.writeParcelableArray(mImsSsInfo, 0);
     }
 
     @Override
@@ -200,7 +387,55 @@
     }
 
     public boolean isTypeInterrogation() {
-        return (requestType == SS_INTERROGATION);
+        return (serviceType == SS_INTERROGATION);
+    }
+
+    /** @hide */
+    public void setSuppServiceInfo(int[] ssInfo) {
+        mSsInfo = ssInfo;
+    }
+
+    /** @hide */
+    public void setImsSpecificSuppServiceInfo(ImsSsInfo[] imsSsInfo) {
+        mImsSsInfo = imsSsInfo;
+    }
+
+    /** @hide */
+    public void setCallForwardingInfo(ImsCallForwardInfo[] cfInfo) {
+        mCfInfo = cfInfo;
+    }
+
+    /**
+     * This field will be null for RequestType SS_INTERROGATION
+     * and ServiceType SS_CF_*, SS_INCOMING_BARRING_DN,
+     * SS_INCOMING_BARRING_ANONYMOUS.
+     *
+     * @hide
+     */
+    public int[] getSuppServiceInfo() {
+        return mSsInfo;
+    }
+
+    /**
+     * Valid only for ServiceTypes
+     *  - SS_INCOMING_BARRING_DN and
+     *  - ServiceType SS_INCOMING_BARRING_ANONYMOUS.
+     *  Will be null otherwise.
+     * @hide
+     */
+    public ImsSsInfo[] getImsSpecificSuppServiceInfo() {
+        return mImsSsInfo;
+    }
+
+    /**
+     * Valid only for supplementary services
+     * - ServiceType SS_CF_* and
+     * - RequestType SS_INTERROGATION.
+     * Will be null otherwise.
+     * @hide
+     **/
+    public ImsCallForwardInfo[] getCallForwardInfo() {
+        return mCfInfo;
     }
 
     public String toString() {
diff --git a/telephony/java/android/telephony/ims/ImsSsInfo.java b/telephony/java/android/telephony/ims/ImsSsInfo.java
index 1d1292f..c6f8622 100644
--- a/telephony/java/android/telephony/ims/ImsSsInfo.java
+++ b/telephony/java/android/telephony/ims/ImsSsInfo.java
@@ -36,13 +36,31 @@
 
     // 0: disabled, 1: enabled
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter!
     public int mStatus;
     /** @hide */
+    // TODO: Make private, do not modify this field directly, use getter!
     public String mIcbNum;
 
+    /**@hide*/
+    // TODO: Remove! Do not use this constructor, instead use public version.
     public ImsSsInfo() {
     }
 
+    /**
+     *
+     * @param status The status of the service registration of activation/deactiviation. Valid
+     *    entries include:
+     *    {@link #NOT_REGISTERED},
+     *    {@link #DISABLED},
+     *    {@link #ENABLED}
+     * @param icbNum The Incoming barring number.
+     */
+    public ImsSsInfo(int status, String icbNum) {
+        mStatus = status;
+        mIcbNum = icbNum;
+    }
+
     private ImsSsInfo(Parcel in) {
         readFromParcel(in);
     }
@@ -81,6 +99,12 @@
         }
     };
 
+    /**
+     * @return Supplementary Service Configuration status. Valid Values are:
+     *     {@link #NOT_REGISTERED},
+     *     {@link #DISABLED},
+     *     {@link #ENABLED}
+     */
     public int getStatus() {
         return mStatus;
     }
diff --git a/telephony/java/android/telephony/ims/aidl/IImsMmTelListener.aidl b/telephony/java/android/telephony/ims/aidl/IImsMmTelListener.aidl
index 904e7ca..7bbe30a 100644
--- a/telephony/java/android/telephony/ims/aidl/IImsMmTelListener.aidl
+++ b/telephony/java/android/telephony/ims/aidl/IImsMmTelListener.aidl
@@ -18,6 +18,9 @@
 
 import android.os.Bundle;
 
+import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsReasonInfo;
+
 import com.android.ims.internal.IImsCallSession;
 
 /**
@@ -26,5 +29,6 @@
  */
 oneway interface IImsMmTelListener {
     void onIncomingCall(IImsCallSession c, in Bundle extras);
+    void onRejectedCall(in ImsCallProfile callProfile, in ImsReasonInfo reason);
     void onVoiceMessageCountUpdate(int count);
-}
\ No newline at end of file
+}
diff --git a/telephony/java/android/telephony/ims/feature/MmTelFeature.java b/telephony/java/android/telephony/ims/feature/MmTelFeature.java
index aaf1a1cf8..f12540f 100644
--- a/telephony/java/android/telephony/ims/feature/MmTelFeature.java
+++ b/telephony/java/android/telephony/ims/feature/MmTelFeature.java
@@ -36,6 +36,7 @@
 import android.util.Log;
 
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsReasonInfo;
 import com.android.ims.internal.IImsCallSession;
 import com.android.ims.internal.IImsEcbm;
 import com.android.ims.internal.IImsMultiEndpoint;
@@ -326,6 +327,16 @@
         }
 
         /**
+         * Called when the IMS provider implicitly rejects an incoming call during setup.
+         * @param callProfile An {@link ImsCallProfile} with the call details.
+         * @param reason The {@link ImsReasonInfo} reason for call rejection.
+         */
+        @Override
+        public void onRejectedCall(ImsCallProfile callProfile, ImsReasonInfo reason) {
+
+        }
+
+        /**
          * Updates the Listener when the voice message count for IMS has changed.
          * @param count an integer representing the new message count.
          */
@@ -429,6 +440,26 @@
     }
 
     /**
+     * Notify the framework that a call has been implicitly rejected by this MmTelFeature
+     * during call setup.
+     * @param callProfile The {@link ImsCallProfile} IMS call profile with details.
+     *        This can be null if no call information is available for the rejected call.
+     * @param reason The {@link ImsReasonInfo} call rejection reason.
+     */
+    public final void notifyRejectedCall(ImsCallProfile callProfile, ImsReasonInfo reason) {
+        synchronized (mLock) {
+            if (mListener == null) {
+                throw new IllegalStateException("Session is not available.");
+            }
+            try {
+                mListener.onRejectedCall(callProfile, reason);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
      *
      * @hide
      */
diff --git a/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java b/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
index 2f52c0a..dfb6e2c 100644
--- a/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
+++ b/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
@@ -77,6 +77,11 @@
             result = 31 * result + featureType;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "{s=" + slotId + ", f=" + featureType + "}";
+        }
     }
 
     /**
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index e0297ca..3fd1d04 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -823,6 +823,16 @@
     boolean isResolvingImsBinding();
 
     /**
+    *  @return true if the ImsService to bind to for the slot id specified was set, false otherwise.
+    */
+    boolean setImsService(int slotId, boolean isCarrierImsService, String packageName);
+
+    /**
+    * @return the package name of the carrier/device ImsService associated with this slot.
+    */
+    String getImsService(int slotId, boolean isCarrierImsService);
+
+    /**
      * Set the network selection mode to automatic.
      *
      * @param subId the id of the subscription to update.
diff --git a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
index a182f2b..bbe38b7 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
@@ -15,6 +15,9 @@
  */
 package com.android.internal.telephony;
 
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+
+import android.Manifest;
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
@@ -75,7 +78,7 @@
     /**
      * Check whether the app with the given pid/uid can read phone state.
      *
-    * <p>This method behaves in one of the following ways:
+     * <p>This method behaves in one of the following ways:
      * <ul>
      *   <li>return true: if the caller has the READ_PRIVILEGED_PHONE_STATE permission, the
      *       READ_PHONE_STATE runtime permission, or carrier privileges on the given subId.
@@ -132,6 +135,40 @@
     }
 
     /**
+     * Check whether the app with the given pid/uid can read the call log.
+     * @return {@code true} if the specified app has the read call log permission and AppOpp granted
+     *      to it, {@code false} otherwise.
+     */
+    public static boolean checkReadCallLog(
+            Context context, int subId, int pid, int uid, String callingPackage) {
+        return checkReadCallLog(
+                context, TELEPHONY_SUPPLIER, subId, pid, uid, callingPackage);
+    }
+
+    @VisibleForTesting
+    public static boolean checkReadCallLog(
+            Context context, Supplier<ITelephony> telephonySupplier, int subId, int pid, int uid,
+            String callingPackage) {
+
+        if (context.checkPermission(Manifest.permission.READ_CALL_LOG, pid, uid)
+                != PERMISSION_GRANTED) {
+            // If we don't have the runtime permission, but do have carrier privileges, that
+            // suffices for being able to see the call phone numbers.
+            if (SubscriptionManager.isValidSubscriptionId(subId)) {
+                enforceCarrierPrivilege(telephonySupplier, subId, uid, "readCallLog");
+                return true;
+            }
+            return false;
+        }
+
+        // We have READ_CALL_LOG permission, so return true as long as the AppOps bit hasn't been
+        // revoked.
+        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+        return appOps.noteOp(AppOpsManager.OP_READ_CALL_LOG, uid, callingPackage) ==
+                AppOpsManager.MODE_ALLOWED;
+    }
+
+    /**
      * Returns whether the caller can read phone numbers.
      *
      * <p>Besides apps with the ability to read phone state per {@link #checkReadPhoneState}, the
@@ -204,7 +241,7 @@
     public static void enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
             Context context, int subId, String message) {
         if (context.checkCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE) ==
-                PackageManager.PERMISSION_GRANTED) {
+                PERMISSION_GRANTED) {
             return;
         }
 
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 5e5ba46..8cde612 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -359,6 +359,13 @@
     }
 
     /** @hide */
+    @Override
+    public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions) {
+        throw new UnsupportedOperationException();
+    }
+
+    /** @hide */
     @SystemApi
     @Override
     public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
diff --git a/tests/ActivityTests/Android.mk b/tests/ActivityTests/Android.mk
index 61dbcc3..4c68c8b 100644
--- a/tests/ActivityTests/Android.mk
+++ b/tests/ActivityTests/Android.mk
@@ -9,9 +9,10 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_CERTIFICATE := platform
 
-# Disable AAPT2 to fix:
+LOCAL_USE_AAPT2 := true
+# Disable AAPT2 manifest checks to fix:
 # frameworks/base/tests/ActivityTests/AndroidManifest.xml:42: error: unexpected element <preferred> found in <manifest><application><activity>.
-# TODO(b/79755007): Re-enable AAPT2 when it supports the missing features.
-LOCAL_USE_AAPT2 := false
+# TODO(b/79755007): Remove when AAPT2 recognizes the manifest elements.
+LOCAL_AAPT_FLAGS += --warn-manifest-validation
 
 include $(BUILD_PACKAGE)
diff --git a/tests/BandwidthTests/src/com/android/tests/bandwidthenforcement/BandwidthEnforcementTestService.java b/tests/BandwidthTests/src/com/android/tests/bandwidthenforcement/BandwidthEnforcementTestService.java
index a2427f5..35f1e58 100644
--- a/tests/BandwidthTests/src/com/android/tests/bandwidthenforcement/BandwidthEnforcementTestService.java
+++ b/tests/BandwidthTests/src/com/android/tests/bandwidthenforcement/BandwidthEnforcementTestService.java
@@ -16,7 +16,10 @@
 package com.android.tests.bandwidthenforcement;
 
 import android.app.IntentService;
+import android.content.Context;
 import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.Network;
 import android.net.SntpClient;
 import android.os.Environment;
 import android.util.Log;
@@ -55,7 +58,7 @@
         String outputFile = intent.getStringExtra(OUTPUT_FILE);
         dumpResult("testUrlConnection", testUrlConnection(), outputFile);
         dumpResult("testUrlConnectionv6", testUrlConnectionv6(), outputFile);
-        dumpResult("testSntp", testSntp(), outputFile);
+        dumpResult("testSntp", testSntp(getApplicationContext()), outputFile);
         dumpResult("testDns", testDns(), outputFile);
     }
 
@@ -138,9 +141,12 @@
      * Tests to connect via sntp.
      * @return true if it was able to connect, false otherwise.
      */
-    public static boolean testSntp() {
+    public static boolean testSntp(Context context) {
         final SntpClient client = new SntpClient();
-        if (client.requestTime("0.pool.ntp.org", 10000)) {
+        final ConnectivityManager mCM = context.getSystemService(ConnectivityManager.class);
+        final Network network = mCM.getActiveNetwork();
+
+        if (client.requestTime("0.pool.ntp.org", 10000, network)) {
             return true;
         }
         return false;
diff --git a/tests/net/Android.mk b/tests/net/Android.mk
index a6559e7..b3a82f5 100644
--- a/tests/net/Android.mk
+++ b/tests/net/Android.mk
@@ -32,6 +32,8 @@
 # These are not normally accessible from apps so they must be explicitly included.
 LOCAL_JNI_SHARED_LIBRARIES := \
     android.hidl.token@1.0 \
+    $(UBSAN_RUNTIME_LIBRARY) \
+    libartbase \
     libbacktrace \
     libbase \
     libbinder \
@@ -52,13 +54,14 @@
     libpcre2 \
     libselinux \
     libui \
-    libunwind \
     libutils \
     libvintf \
     libvndksupport \
     libtinyxml2 \
     libunwindstack \
-    libutilscallstack
+    libutilscallstack \
+    libziparchive \
+    libz
 
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 
diff --git a/tests/net/java/android/net/NetworkCapabilitiesTest.java b/tests/net/java/android/net/NetworkCapabilitiesTest.java
index 0696592..2f4d69e 100644
--- a/tests/net/java/android/net/NetworkCapabilitiesTest.java
+++ b/tests/net/java/android/net/NetworkCapabilitiesTest.java
@@ -40,12 +40,14 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import android.os.Parcel;
 import android.support.test.runner.AndroidJUnit4;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.ArraySet;
 
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -54,6 +56,9 @@
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 public class NetworkCapabilitiesTest {
+    private static final String TEST_SSID = "TEST_SSID";
+    private static final String DIFFERENT_TEST_SSID = "DIFFERENT_TEST_SSID";
+
     @Test
     public void testMaybeMarkCapabilitiesRestricted() {
         // verify EIMS is restricted
@@ -268,6 +273,8 @@
             .addCapability(NET_CAPABILITY_EIMS)
             .addCapability(NET_CAPABILITY_NOT_METERED);
         assertEqualsThroughMarshalling(netCap);
+        netCap.setSSID(TEST_SSID);
+        assertEqualsThroughMarshalling(netCap);
     }
 
     @Test
@@ -362,6 +369,27 @@
     }
 
     @Test
+    public void testSSID() {
+        NetworkCapabilities nc1 = new NetworkCapabilities();
+        NetworkCapabilities nc2 = new NetworkCapabilities();
+        assertTrue(nc2.satisfiedBySSID(nc1));
+
+        nc1.setSSID(TEST_SSID);
+        assertTrue(nc2.satisfiedBySSID(nc1));
+        nc2.setSSID("different " + TEST_SSID);
+        assertFalse(nc2.satisfiedBySSID(nc1));
+
+        assertTrue(nc1.satisfiedByImmutableNetworkCapabilities(nc2));
+        assertFalse(nc1.satisfiedByNetworkCapabilities(nc2));
+    }
+
+    private ArraySet<UidRange> uidRange(int from, int to) {
+        final ArraySet<UidRange> range = new ArraySet<>(1);
+        range.add(new UidRange(from, to));
+        return range;
+    }
+
+    @Test
     public void testCombineCapabilities() {
         NetworkCapabilities nc1 = new NetworkCapabilities();
         NetworkCapabilities nc2 = new NetworkCapabilities();
@@ -382,6 +410,35 @@
         // will never be satisfied.
         assertTrue(nc2.hasCapability(NET_CAPABILITY_NOT_ROAMING));
         assertTrue(nc2.hasUnwantedCapability(NET_CAPABILITY_NOT_ROAMING));
+
+        nc1.setSSID(TEST_SSID);
+        nc2.combineCapabilities(nc1);
+        assertTrue(TEST_SSID.equals(nc2.getSSID()));
+
+        // Because they now have the same SSID, the following call should not throw
+        nc2.combineCapabilities(nc1);
+
+        nc1.setSSID(DIFFERENT_TEST_SSID);
+        try {
+            nc2.combineCapabilities(nc1);
+            fail("Expected IllegalStateException: can't combine different SSIDs");
+        } catch (IllegalStateException expected) {}
+        nc1.setSSID(TEST_SSID);
+
+        nc1.setUids(uidRange(10, 13));
+        assertNotEquals(nc1, nc2);
+        nc2.combineCapabilities(nc1);  // Everything + 10~13 is still everything.
+        assertNotEquals(nc1, nc2);
+        nc1.combineCapabilities(nc2);  // 10~13 + everything is everything.
+        assertEquals(nc1, nc2);
+        nc1.setUids(uidRange(10, 13));
+        nc2.setUids(uidRange(20, 23));
+        assertNotEquals(nc1, nc2);
+        nc1.combineCapabilities(nc2);
+        assertTrue(nc1.appliesToUid(12));
+        assertFalse(nc2.appliesToUid(12));
+        assertTrue(nc1.appliesToUid(22));
+        assertTrue(nc2.appliesToUid(22));
     }
 
     @Test
@@ -420,4 +477,38 @@
         p.setDataPosition(0);
         assertEquals(NetworkCapabilities.CREATOR.createFromParcel(p), netCap);
     }
+
+    @Test
+    public void testSet() {
+        NetworkCapabilities nc1 = new NetworkCapabilities();
+        NetworkCapabilities nc2 = new NetworkCapabilities();
+
+        nc1.addUnwantedCapability(NET_CAPABILITY_CAPTIVE_PORTAL);
+        nc1.addCapability(NET_CAPABILITY_NOT_ROAMING);
+        assertNotEquals(nc1, nc2);
+        nc2.set(nc1);
+        assertEquals(nc1, nc2);
+        assertTrue(nc2.hasCapability(NET_CAPABILITY_NOT_ROAMING));
+        assertTrue(nc2.hasUnwantedCapability(NET_CAPABILITY_CAPTIVE_PORTAL));
+
+        // This will effectively move NOT_ROAMING capability from required to unwanted for nc1.
+        nc1.addUnwantedCapability(NET_CAPABILITY_NOT_ROAMING);
+        nc1.setSSID(TEST_SSID);
+        nc2.set(nc1);
+        assertEquals(nc1, nc2);
+        // Contrary to combineCapabilities, set() will have removed the NOT_ROAMING capability
+        // from nc2.
+        assertFalse(nc2.hasCapability(NET_CAPABILITY_NOT_ROAMING));
+        assertTrue(nc2.hasUnwantedCapability(NET_CAPABILITY_NOT_ROAMING));
+        assertTrue(TEST_SSID.equals(nc2.getSSID()));
+
+        nc1.setSSID(DIFFERENT_TEST_SSID);
+        nc2.set(nc1);
+        assertEquals(nc1, nc2);
+        assertTrue(DIFFERENT_TEST_SSID.equals(nc2.getSSID()));
+
+        nc1.setUids(uidRange(10, 13));
+        nc2.set(nc1);  // Overwrites, as opposed to combineCapabilities
+        assertEquals(nc1, nc2);
+    }
 }
diff --git a/tests/net/java/android/net/NetworkStatsHistoryTest.java b/tests/net/java/android/net/NetworkStatsHistoryTest.java
index 1c0c14e..301d04d 100644
--- a/tests/net/java/android/net/NetworkStatsHistoryTest.java
+++ b/tests/net/java/android/net/NetworkStatsHistoryTest.java
@@ -32,9 +32,14 @@
 import static android.text.format.DateUtils.SECOND_IN_MILLIS;
 import static android.text.format.DateUtils.WEEK_IN_MILLIS;
 import static android.text.format.DateUtils.YEAR_IN_MILLIS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.test.suitebuilder.annotation.Suppress;
 import android.util.Log;
 
@@ -46,25 +51,31 @@
 import java.io.DataOutputStream;
 import java.util.Random;
 
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class NetworkStatsHistoryTest extends AndroidTestCase {
+public class NetworkStatsHistoryTest {
     private static final String TAG = "NetworkStatsHistoryTest";
 
     private static final long TEST_START = 1194220800000L;
 
     private NetworkStatsHistory stats;
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         if (stats != null) {
             assertConsistent(stats);
         }
     }
 
+    @Test
     public void testReadOriginalVersion() throws Exception {
-        final DataInputStream in = new DataInputStream(
-                getContext().getResources().openRawResource(R.raw.history_v1));
+        final Context context = InstrumentationRegistry.getContext();
+        final DataInputStream in =
+                new DataInputStream(context.getResources().openRawResource(R.raw.history_v1));
 
         NetworkStatsHistory.Entry entry = null;
         try {
@@ -88,6 +99,7 @@
         }
     }
 
+    @Test
     public void testRecordSingleBucket() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -100,6 +112,7 @@
         assertValues(stats, 0, SECOND_IN_MILLIS, 1024L, 10L, 2048L, 20L, 2L);
     }
 
+    @Test
     public void testRecordEqualBuckets() throws Exception {
         final long bucketDuration = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(bucketDuration);
@@ -114,6 +127,7 @@
         assertValues(stats, 1, HOUR_IN_MILLIS / 2, 512L, 5L, 64L, 1L, 1L);
     }
 
+    @Test
     public void testRecordTouchingBuckets() throws Exception {
         final long BUCKET_SIZE = 15 * MINUTE_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -134,6 +148,7 @@
         assertValues(stats, 2, 4 * MINUTE_IN_MILLIS, 200L, 400L, 1000L, 2000L, 20L);
     }
 
+    @Test
     public void testRecordGapBuckets() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -165,6 +180,7 @@
         assertValues(stats, 3, SECOND_IN_MILLIS, 64L, 1L, 512L, 8L, 2L);
     }
 
+    @Test
     public void testRecordOverlapBuckets() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -182,6 +198,7 @@
         assertValues(stats, 1, (HOUR_IN_MILLIS / 2), 512L, 5L, 512L, 5L, 5L);
     }
 
+    @Test
     public void testRecordEntireGapIdentical() throws Exception {
         // first, create two separate histories far apart
         final NetworkStatsHistory stats1 = new NetworkStatsHistory(HOUR_IN_MILLIS);
@@ -206,6 +223,7 @@
         assertValues(stats, 3, 500L, 250L);
     }
 
+    @Test
     public void testRecordEntireOverlapVaryingBuckets() throws Exception {
         // create history just over hour bucket boundary
         final NetworkStatsHistory stats1 = new NetworkStatsHistory(HOUR_IN_MILLIS);
@@ -247,6 +265,7 @@
         assertValues(stats, 3, 150L, 150L);
     }
 
+    @Test
     public void testRemove() throws Exception {
         stats = new NetworkStatsHistory(HOUR_IN_MILLIS);
 
@@ -280,6 +299,7 @@
         assertEquals(0, stats.size());
     }
 
+    @Test
     public void testTotalData() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -304,7 +324,7 @@
 
     }
 
-    @Suppress
+    @Test
     public void testFuzzing() throws Exception {
         try {
             // fuzzing with random events, looking for crashes
@@ -341,6 +361,7 @@
         return value < 0 ? -value : value;
     }
 
+    @Test
     public void testIgnoreFields() throws Exception {
         final NetworkStatsHistory history = new NetworkStatsHistory(
                 MINUTE_IN_MILLIS, 0, FIELD_RX_BYTES | FIELD_TX_BYTES);
@@ -353,6 +374,7 @@
         assertFullValues(history, UNKNOWN, 1026L, UNKNOWN, 2050L, UNKNOWN, UNKNOWN);
     }
 
+    @Test
     public void testIgnoreFieldsRecordIn() throws Exception {
         final NetworkStatsHistory full = new NetworkStatsHistory(MINUTE_IN_MILLIS, 0, FIELD_ALL);
         final NetworkStatsHistory partial = new NetworkStatsHistory(
@@ -365,6 +387,7 @@
         assertFullValues(partial, UNKNOWN, UNKNOWN, 10L, UNKNOWN, UNKNOWN, 4L);
     }
 
+    @Test
     public void testIgnoreFieldsRecordOut() throws Exception {
         final NetworkStatsHistory full = new NetworkStatsHistory(MINUTE_IN_MILLIS, 0, FIELD_ALL);
         final NetworkStatsHistory partial = new NetworkStatsHistory(
@@ -377,6 +400,7 @@
         assertFullValues(full, MINUTE_IN_MILLIS, 0L, 10L, 0L, 0L, 4L);
     }
 
+    @Test
     public void testSerialize() throws Exception {
         final NetworkStatsHistory before = new NetworkStatsHistory(MINUTE_IN_MILLIS, 40, FIELD_ALL);
         before.recordData(0, 4 * MINUTE_IN_MILLIS,
@@ -396,6 +420,7 @@
         assertFullValues(after, 5 * MINUTE_IN_MILLIS, 1034L, 30L, 2078L, 60L, 54L);
     }
 
+    @Test
     public void testVarLong() throws Exception {
         assertEquals(0L, performVarLong(0L));
         assertEquals(-1L, performVarLong(-1L));
@@ -409,6 +434,7 @@
         assertEquals(Long.MAX_VALUE - 40, performVarLong(Long.MAX_VALUE - 40));
     }
 
+    @Test
     public void testIndexBeforeAfter() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -451,6 +477,7 @@
         assertIndexBeforeAfter(stats, 4, 4, Long.MAX_VALUE);
     }
 
+    @Test
     public void testIntersects() throws Exception {
         final long BUCKET_SIZE = HOUR_IN_MILLIS;
         stats = new NetworkStatsHistory(BUCKET_SIZE);
@@ -485,6 +512,7 @@
         assertTrue(stats.intersects(Long.MIN_VALUE, TEST_START + 1));
     }
 
+    @Test
     public void testSetValues() throws Exception {
         stats = new NetworkStatsHistory(HOUR_IN_MILLIS);
         stats.recordData(TEST_START, TEST_START + 1,
diff --git a/tests/net/java/android/net/apf/ApfTest.java b/tests/net/java/android/net/apf/ApfTest.java
index ed9cbab..0248e97 100644
--- a/tests/net/java/android/net/apf/ApfTest.java
+++ b/tests/net/java/android/net/apf/ApfTest.java
@@ -77,7 +77,7 @@
 @SmallTest
 public class ApfTest {
     private static final int TIMEOUT_MS = 500;
-    private final static int MIN_APF_VERSION = 2;
+    private static final int MIN_APF_VERSION = 2;
 
     @Mock IpConnectivityLog mLog;
     @Mock Context mContext;
@@ -90,20 +90,30 @@
     }
 
     // Expected return codes from APF interpreter.
-    private final static int PASS = 1;
-    private final static int DROP = 0;
+    private static final int PASS = 1;
+    private static final int DROP = 0;
     // Interpreter will just accept packets without link layer headers, so pad fake packet to at
     // least the minimum packet size.
-    private final static int MIN_PKT_SIZE = 15;
+    private static final int MIN_PKT_SIZE = 15;
 
     private static final ApfCapabilities MOCK_APF_CAPABILITIES =
       new ApfCapabilities(2, 1700, ARPHRD_ETHER);
 
-    private final static boolean DROP_MULTICAST = true;
-    private final static boolean ALLOW_MULTICAST = false;
+    private static final boolean DROP_MULTICAST = true;
+    private static final boolean ALLOW_MULTICAST = false;
 
-    private final static boolean DROP_802_3_FRAMES = true;
-    private final static boolean ALLOW_802_3_FRAMES = false;
+    private static final boolean DROP_802_3_FRAMES = true;
+    private static final boolean ALLOW_802_3_FRAMES = false;
+
+    // Constants for opcode encoding
+    private static final byte LI_OP   = (byte)(13 << 3);
+    private static final byte LDDW_OP = (byte)(22 << 3);
+    private static final byte STDW_OP = (byte)(23 << 3);
+    private static final byte SIZE0   = (byte)(0 << 1);
+    private static final byte SIZE8   = (byte)(1 << 1);
+    private static final byte SIZE16  = (byte)(2 << 1);
+    private static final byte SIZE32  = (byte)(3 << 1);
+    private static final byte R1 = 1;
 
     private static ApfConfiguration getDefaultConfig() {
         ApfFilter.ApfConfiguration config = new ApfConfiguration();
@@ -636,29 +646,28 @@
      */
     @Test
     public void testImmediateEncoding() throws IllegalInstructionException {
-        final int LI_OPCODE = 13 << 3;
         ApfGenerator gen;
 
         // 0-byte immediate: li R0, 0
-        gen = new ApfGenerator(3);
+        gen = new ApfGenerator(4);
         gen.addLoadImmediate(Register.R0, 0);
-        assertProgramEquals(new byte[]{LI_OPCODE | (0 << 1)}, gen.generate());
+        assertProgramEquals(new byte[]{LI_OP | SIZE0}, gen.generate());
 
         // 1-byte immediate: li R0, 42
-        gen = new ApfGenerator(3);
+        gen = new ApfGenerator(4);
         gen.addLoadImmediate(Register.R0, 42);
-        assertProgramEquals(new byte[]{LI_OPCODE | (1 << 1), 42}, gen.generate());
+        assertProgramEquals(new byte[]{LI_OP | SIZE8, 42}, gen.generate());
 
         // 2-byte immediate: li R1, 0x1234
-        gen = new ApfGenerator(3);
+        gen = new ApfGenerator(4);
         gen.addLoadImmediate(Register.R1, 0x1234);
-        assertProgramEquals(new byte[]{LI_OPCODE | (2 << 1) | 1 , 0x12, 0x34}, gen.generate());
+        assertProgramEquals(new byte[]{LI_OP | SIZE16 | R1, 0x12, 0x34}, gen.generate());
 
         // 4-byte immediate: li R0, 0x12345678
         gen = new ApfGenerator(3);
         gen.addLoadImmediate(Register.R0, 0x12345678);
         assertProgramEquals(
-                new byte[]{LI_OPCODE | (3 << 1), 0x12, 0x34, 0x56, 0x78},
+                new byte[]{LI_OP | SIZE32, 0x12, 0x34, 0x56, 0x78},
                 gen.generate());
     }
 
@@ -667,28 +676,61 @@
      */
     @Test
     public void testNegativeImmediateEncoding() throws IllegalInstructionException {
-        final int LI_OPCODE = 13 << 3;
         ApfGenerator gen;
 
         // 1-byte negative immediate: li R0, -42
         gen = new ApfGenerator(3);
         gen.addLoadImmediate(Register.R0, -42);
-        assertProgramEquals(new byte[]{LI_OPCODE | (1 << 1), -42}, gen.generate());
+        assertProgramEquals(new byte[]{LI_OP | SIZE8, -42}, gen.generate());
 
-        // 2-byte negative immediate: li R1, -0x1234
+        // 2-byte negative immediate: li R1, -0x1122
         gen = new ApfGenerator(3);
         gen.addLoadImmediate(Register.R1, -0x1122);
-        assertProgramEquals(new byte[]{LI_OPCODE | (2 << 1) | 1, (byte)0xEE, (byte)0xDE},
+        assertProgramEquals(new byte[]{LI_OP | SIZE16 | R1, (byte)0xEE, (byte)0xDE},
                 gen.generate());
 
         // 4-byte negative immediate: li R0, -0x11223344
         gen = new ApfGenerator(3);
         gen.addLoadImmediate(Register.R0, -0x11223344);
         assertProgramEquals(
-                new byte[]{LI_OPCODE | (3 << 1), (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBC},
+                new byte[]{LI_OP | SIZE32, (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBC},
                 gen.generate());
     }
 
+    /**
+     * Test that the generator correctly emits positive and negative immediates for LDDW/STDW.
+     */
+    @Test
+    public void testLoadStoreDataEncoding() throws IllegalInstructionException {
+        ApfGenerator gen;
+
+        // Load data with no offset: lddw R0, [0 + r1]
+        gen = new ApfGenerator(3);
+        gen.addLoadData(Register.R0, 0);
+        assertProgramEquals(new byte[]{LDDW_OP | SIZE0}, gen.generate());
+
+        // Store data with 8bit negative offset: lddw r0, [-42 + r1]
+        gen = new ApfGenerator(3);
+        gen.addStoreData(Register.R0, -42);
+        assertProgramEquals(new byte[]{STDW_OP | SIZE8, -42}, gen.generate());
+
+        // Store data to R1 with 16bit negative offset: stdw r1, [-0x1122 + r0]
+        gen = new ApfGenerator(3);
+        gen.addStoreData(Register.R1, -0x1122);
+        assertProgramEquals(new byte[]{STDW_OP | SIZE16 | R1, (byte)0xEE, (byte)0xDE},
+                gen.generate());
+
+        // Load data to R1 with 32bit negative offset: lddw r1, [0xDEADBEEF + r0]
+        gen = new ApfGenerator(3);
+        gen.addLoadData(Register.R1, 0xDEADBEEF);
+        assertProgramEquals(
+                new byte[]{LDDW_OP | SIZE32 | R1, (byte)0xDE, (byte)0xAD, (byte)0xBE, (byte)0xEF},
+                gen.generate());
+    }
+
+    /**
+     * Test that the interpreter correctly executes STDW with a negative 8bit offset
+     */
     @Test
     public void testApfDataWrite() throws IllegalInstructionException, Exception {
         byte[] packet = new byte[MIN_PKT_SIZE];
@@ -712,12 +754,15 @@
         assertDataMemoryContents(PASS, gen.generate(), packet, data, expected_data);
     }
 
+    /**
+     * Test that the interpreter correctly executes LDDW with a negative 16bit offset
+     */
     @Test
     public void testApfDataRead() throws IllegalInstructionException, Exception {
         // Program that DROPs if address 10 (-6) contains 0x87654321.
         ApfGenerator gen = new ApfGenerator(3);
-        gen.addLoadImmediate(Register.R1, 10);
-        gen.addLoadData(Register.R0, -16);  // 10 + -16 = -6 (offset +10 with data_len=16)
+        gen.addLoadImmediate(Register.R1, 1000);
+        gen.addLoadData(Register.R0, -1006);  // 1000 + -1006 = -6 (offset +10 with data_len=16)
         gen.addJumpIfR0Equals(0x87654321, gen.DROP_LABEL);
         byte[] program = gen.generate();
         byte[] packet = new byte[MIN_PKT_SIZE];
@@ -737,6 +782,11 @@
         assertDataMemoryContents(DROP, program, packet, data, expected_data);
     }
 
+    /**
+     * Test that the interpreter correctly executes LDDW followed by a STDW.
+     * To cover a few more edge cases, LDDW has a 0bit offset, while STDW has a positive 8bit
+     * offset.
+     */
     @Test
     public void testApfDataReadModifyWrite() throws IllegalInstructionException, Exception {
         ApfGenerator gen = new ApfGenerator(3);
@@ -844,7 +894,7 @@
     }
 
     private static class TestApfFilter extends ApfFilter {
-        public final static byte[] MOCK_MAC_ADDR = {1,2,3,4,5,6};
+        public static final byte[] MOCK_MAC_ADDR = {1,2,3,4,5,6};
 
         private FileDescriptor mWriteSocket;
         private final long mFixedTimeMs = SystemClock.elapsedRealtime();
diff --git a/tests/net/java/android/net/captiveportal/CaptivePortalProbeSpecTest.java b/tests/net/java/android/net/captiveportal/CaptivePortalProbeSpecTest.java
new file mode 100644
index 0000000..40a8b3e
--- /dev/null
+++ b/tests/net/java/android/net/captiveportal/CaptivePortalProbeSpecTest.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2018 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 android.net.captiveportal;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNull;
+import static junit.framework.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.ParseException;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class CaptivePortalProbeSpecTest {
+
+    @Test
+    public void testGetResult_Regex() throws MalformedURLException, ParseException {
+        // 2xx status or 404, with an empty (match everything) location regex
+        CaptivePortalProbeSpec statusRegexSpec = CaptivePortalProbeSpec.parseSpec(
+                "http://www.google.com@@/@@2[0-9]{2}|404@@/@@");
+
+        // 404, or 301/302 redirect to some HTTPS page under google.com
+        CaptivePortalProbeSpec redirectSpec = CaptivePortalProbeSpec.parseSpec(
+                "http://google.com@@/@@404|30[12]@@/@@https://([0-9a-z]+\\.)*google\\.com.*");
+
+        assertSuccess(statusRegexSpec.getResult(200, null));
+        assertSuccess(statusRegexSpec.getResult(299, "qwer"));
+        assertSuccess(statusRegexSpec.getResult(404, null));
+        assertSuccess(statusRegexSpec.getResult(404, ""));
+
+        assertPortal(statusRegexSpec.getResult(300, null));
+        assertPortal(statusRegexSpec.getResult(399, "qwer"));
+        assertPortal(statusRegexSpec.getResult(500, null));
+
+        assertSuccess(redirectSpec.getResult(404, null));
+        assertSuccess(redirectSpec.getResult(404, ""));
+        assertSuccess(redirectSpec.getResult(301, "https://www.google.com"));
+        assertSuccess(redirectSpec.getResult(301, "https://www.google.com/test?q=3"));
+        assertSuccess(redirectSpec.getResult(302, "https://google.com/test?q=3"));
+
+        assertPortal(redirectSpec.getResult(299, "https://google.com/test?q=3"));
+        assertPortal(redirectSpec.getResult(299, ""));
+        assertPortal(redirectSpec.getResult(499, null));
+        assertPortal(redirectSpec.getResult(301, "http://login.portal.example.com/loginpage"));
+        assertPortal(redirectSpec.getResult(302, "http://www.google.com/test?q=3"));
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_Empty() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("");
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_Null() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec(null);
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_MissingParts() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("http://google.com/@@/@@123");
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_TooManyParts() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("http://google.com/@@/@@123@@/@@456@@/@@extra");
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_InvalidStatusRegex() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("http://google.com/@@/@@unmatched(parenthesis@@/@@456");
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_InvalidLocationRegex() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("http://google.com/@@/@@123@@/@@unmatched[[]bracket");
+    }
+
+    @Test(expected = MalformedURLException.class)
+    public void testParseSpec_EmptyURL() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("@@/@@123@@/@@123");
+    }
+
+    @Test(expected = ParseException.class)
+    public void testParseSpec_NoParts() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("invalid");
+    }
+
+    @Test(expected = MalformedURLException.class)
+    public void testParseSpec_RegexInvalidUrl() throws MalformedURLException, ParseException {
+        CaptivePortalProbeSpec.parseSpec("notaurl@@/@@123@@/@@123");
+    }
+
+    @Test
+    public void testParseSpecOrNull_UsesSpec() {
+        final String specUrl = "http://google.com/probe";
+        final String redirectUrl = "https://google.com/probe";
+        CaptivePortalProbeSpec spec = CaptivePortalProbeSpec.parseSpecOrNull(
+                specUrl + "@@/@@302@@/@@" + redirectUrl);
+        assertEquals(specUrl, spec.getUrl().toString());
+
+        assertPortal(spec.getResult(302, "http://portal.example.com"));
+        assertSuccess(spec.getResult(302, redirectUrl));
+    }
+
+    @Test
+    public void testParseSpecOrNull_UsesFallback() throws MalformedURLException {
+        CaptivePortalProbeSpec spec = CaptivePortalProbeSpec.parseSpecOrNull(null);
+        assertNull(spec);
+
+        spec = CaptivePortalProbeSpec.parseSpecOrNull("");
+        assertNull(spec);
+
+        spec = CaptivePortalProbeSpec.parseSpecOrNull("@@/@@ @@/@@ @@/@@");
+        assertNull(spec);
+
+        spec = CaptivePortalProbeSpec.parseSpecOrNull("invalid@@/@@123@@/@@456");
+        assertNull(spec);
+    }
+
+    @Test
+    public void testParseSpecOrUseStatusCodeFallback_EmptySpec() throws MalformedURLException {
+        CaptivePortalProbeSpec spec = CaptivePortalProbeSpec.parseSpecOrNull("");
+        assertNull(spec);
+    }
+
+    private void assertIsStatusSpec(CaptivePortalProbeSpec spec) {
+        assertSuccess(spec.getResult(204, null));
+        assertSuccess(spec.getResult(204, "1234"));
+
+        assertPortal(spec.getResult(200, null));
+        assertPortal(spec.getResult(301, null));
+        assertPortal(spec.getResult(302, "1234"));
+        assertPortal(spec.getResult(399, ""));
+
+        assertFailed(spec.getResult(404, null));
+        assertFailed(spec.getResult(500, "1234"));
+    }
+
+    private void assertPortal(CaptivePortalProbeResult result) {
+        assertTrue(result.isPortal());
+    }
+
+    private void assertSuccess(CaptivePortalProbeResult result) {
+        assertTrue(result.isSuccessful());
+    }
+
+    private void assertFailed(CaptivePortalProbeResult result) {
+        assertTrue(result.isFailed());
+    }
+}
diff --git a/tests/net/java/android/net/ip/IpClientTest.java b/tests/net/java/android/net/ip/IpClientTest.java
index e9e880d..89453e0 100644
--- a/tests/net/java/android/net/ip/IpClientTest.java
+++ b/tests/net/java/android/net/ip/IpClientTest.java
@@ -133,9 +133,18 @@
         verify(mNMService, times(1)).registerObserver(arg.capture());
         mObserver = arg.getValue();
         reset(mNMService);
+        // Verify IpClient doesn't call onLinkPropertiesChange() when it starts.
+        verify(mCb, never()).onLinkPropertiesChange(any());
+        reset(mCb);
         return ipc;
     }
 
+    private static LinkProperties makeEmptyLinkProperties(String iface) {
+        final LinkProperties empty = new LinkProperties();
+        empty.setInterfaceName(iface);
+        return empty;
+    }
+
     @Test
     public void testNullInterfaceNameMostDefinitelyThrows() throws Exception {
         setTestInterfaceParams(null);
@@ -197,6 +206,8 @@
         ipc.shutdown();
         verify(mNMService, timeout(100).times(1)).disableIpv6(iface);
         verify(mNMService, timeout(100).times(1)).clearInterfaceAddresses(iface);
+        verify(mCb, timeout(100).times(1))
+                .onLinkPropertiesChange(eq(makeEmptyLinkProperties(iface)));
     }
 
     @Test
@@ -246,6 +257,8 @@
         ipc.shutdown();
         verify(mNMService, timeout(100).times(1)).disableIpv6(iface);
         verify(mNMService, timeout(100).times(1)).clearInterfaceAddresses(iface);
+        verify(mCb, timeout(100).times(1))
+                .onLinkPropertiesChange(eq(makeEmptyLinkProperties(iface)));
     }
 
     @Test
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index e4df974..d6018f1 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -84,6 +84,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.net.CaptivePortal;
 import android.net.ConnectivityManager;
@@ -111,6 +112,8 @@
 import android.net.RouteInfo;
 import android.net.StringNetworkSpecifier;
 import android.net.UidRange;
+import android.net.VpnService;
+import android.net.captiveportal.CaptivePortalProbeResult;
 import android.net.metrics.IpConnectivityLog;
 import android.net.util.MultinetworkPolicyTracker;
 import android.os.ConditionVariable;
@@ -132,6 +135,7 @@
 import android.util.ArraySet;
 import android.util.Log;
 
+import com.android.internal.net.VpnConfig;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.WakeupMessage;
 import com.android.internal.util.test.BroadcastInterceptingContext;
@@ -195,6 +199,7 @@
     private MockNetworkAgent mWiFiNetworkAgent;
     private MockNetworkAgent mCellNetworkAgent;
     private MockNetworkAgent mEthernetNetworkAgent;
+    private MockVpn mMockVpn;
     private Context mContext;
 
     @Mock IpConnectivityMetrics.Logger mMetricsService;
@@ -476,6 +481,14 @@
             mNetworkAgent.sendNetworkCapabilities(mNetworkCapabilities);
         }
 
+        public void setNetworkCapabilities(NetworkCapabilities nc,
+                boolean sendToConnectivityService) {
+            mNetworkCapabilities.set(nc);
+            if (sendToConnectivityService) {
+                mNetworkAgent.sendNetworkCapabilities(mNetworkCapabilities);
+            }
+        }
+
         public void connectWithoutInternet() {
             mNetworkInfo.setDetailedState(DetailedState.CONNECTED, null, null);
             mNetworkAgent.sendNetworkInfo(mNetworkInfo);
@@ -505,6 +518,7 @@
                 mWrappedNetworkMonitor.gen204ProbeResult = 204;
                 NetworkRequest request = new NetworkRequest.Builder()
                         .addTransportType(mNetworkCapabilities.getTransportTypes()[0])
+                        .clearCapabilities()
                         .build();
                 callback = new NetworkCallback() {
                     public void onCapabilitiesChanged(Network network,
@@ -590,6 +604,10 @@
             return mRedirectUrl;
         }
 
+        public NetworkAgent getNetworkAgent() {
+            return mNetworkAgent;
+        }
+
         public NetworkCapabilities getNetworkCapabilities() {
             return mNetworkCapabilities;
         }
@@ -722,6 +740,87 @@
         }
     }
 
+    private static Looper startHandlerThreadAndReturnLooper() {
+        final HandlerThread handlerThread = new HandlerThread("MockVpnThread");
+        handlerThread.start();
+        return handlerThread.getLooper();
+    }
+
+    private class MockVpn extends Vpn {
+        // TODO : the interactions between this mock and the mock network agent are too
+        // hard to get right at this moment, because it's unclear in which case which
+        // target needs to get a method call or both, and in what order. It's because
+        // MockNetworkAgent wants to manage its own NetworkCapabilities, but the Vpn
+        // parent class of MockVpn agent wants that responsibility.
+        // That being said inside the test it should be possible to make the interactions
+        // harder to get wrong with precise speccing, judicious comments, helper methods
+        // and a few sprinkled assertions.
+
+        private boolean mConnected = false;
+        // Careful ! This is different from mNetworkAgent, because MockNetworkAgent does
+        // not inherit from NetworkAgent.
+        private MockNetworkAgent mMockNetworkAgent;
+
+        public MockVpn(int userId) {
+            super(startHandlerThreadAndReturnLooper(), mServiceContext, mNetworkManagementService,
+                    userId);
+        }
+
+        public void setNetworkAgent(MockNetworkAgent agent) {
+            waitForIdle(agent, TIMEOUT_MS);
+            mMockNetworkAgent = agent;
+            mNetworkAgent = agent.getNetworkAgent();
+            mNetworkCapabilities.set(agent.getNetworkCapabilities());
+        }
+
+        public void setUids(Set<UidRange> uids) {
+            mNetworkCapabilities.setUids(uids);
+            updateCapabilities();
+        }
+
+        @Override
+        public int getNetId() {
+            return mMockNetworkAgent.getNetwork().netId;
+        }
+
+        @Override
+        public boolean appliesToUid(int uid) {
+            return mConnected;  // Trickery to simplify testing.
+        }
+
+        @Override
+        protected boolean isCallerEstablishedOwnerLocked() {
+            return mConnected;  // Similar trickery
+        }
+
+        public void connect() {
+            mNetworkCapabilities.set(mMockNetworkAgent.getNetworkCapabilities());
+            mConnected = true;
+            mConfig = new VpnConfig();
+        }
+
+        @Override
+        public void updateCapabilities() {
+            if (!mConnected) return;
+            super.updateCapabilities();
+            // Because super.updateCapabilities will update the capabilities of the agent but not
+            // the mock agent, the mock agent needs to know about them.
+            copyCapabilitiesToNetworkAgent();
+        }
+
+        private void copyCapabilitiesToNetworkAgent() {
+            if (null != mMockNetworkAgent) {
+                mMockNetworkAgent.setNetworkCapabilities(mNetworkCapabilities,
+                        false /* sendToConnectivityService */);
+            }
+        }
+
+        public void disconnect() {
+            mConnected = false;
+            mConfig = null;
+        }
+    }
+
     private class FakeWakeupMessage extends WakeupMessage {
         private static final int UNREASONABLY_LONG_WAIT = 1000;
 
@@ -888,6 +987,17 @@
             return mLastCreatedNetworkMonitor;
         }
 
+        public void mockVpn(int uid) {
+            synchronized (mVpns) {
+                int userId = UserHandle.getUserId(uid);
+                mMockVpn = new MockVpn(userId);
+                // This has no effect unless the VPN is actually connected, because things like
+                // getActiveNetworkForUidInternal call getNetworkAgentInfoForNetId on the VPN
+                // netId, and check if that network is actually connected.
+                mVpns.put(userId, mMockVpn);
+            }
+        }
+
         public void waitForIdle(int timeoutMs) {
             waitForIdleHandler(mHandlerThread, timeoutMs);
         }
@@ -931,8 +1041,9 @@
                 mock(INetworkPolicyManager.class),
                 mock(IpConnectivityLog.class));
 
-        mService.systemReady();
         mCm = new WrappedConnectivityManager(InstrumentationRegistry.getContext(), mService);
+        mService.systemReady();
+        mService.mockVpn(Process.myUid());
         mCm.bindProcessToNetwork(null);
 
         // Ensure that the default setting for Captive Portals is used for most tests
@@ -1345,6 +1456,7 @@
         private final static int TIMEOUT_MS = 100;
 
         private final LinkedBlockingQueue<CallbackInfo> mCallbacks = new LinkedBlockingQueue<>();
+        private Network mLastAvailableNetwork;
 
         protected void setLastCallback(CallbackState state, Network network, Object o) {
             mCallbacks.offer(new CallbackInfo(state, network, o));
@@ -1352,6 +1464,7 @@
 
         @Override
         public void onAvailable(Network network) {
+            mLastAvailableNetwork = network;
             setLastCallback(CallbackState.AVAILABLE, network, null);
         }
 
@@ -1387,9 +1500,14 @@
 
         @Override
         public void onLost(Network network) {
+            mLastAvailableNetwork = null;
             setLastCallback(CallbackState.LOST, network, null);
         }
 
+        public Network getLastAvailableNetwork() {
+            return mLastAvailableNetwork;
+        }
+
         CallbackInfo nextCallback(int timeoutMs) {
             CallbackInfo cb = null;
             try {
@@ -1525,7 +1643,8 @@
 
         void expectCapabilitiesLike(Predicate<NetworkCapabilities> fn, MockNetworkAgent agent) {
             CallbackInfo cbi = expectCallback(CallbackState.NETWORK_CAPABILITIES, agent);
-            assertTrue(fn.test((NetworkCapabilities) cbi.arg));
+            assertTrue("Received capabilities don't match expectations : " + cbi.arg,
+                    fn.test((NetworkCapabilities) cbi.arg));
         }
 
         void assertNoCallback() {
@@ -1656,6 +1775,7 @@
         callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         defaultCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         mWiFiNetworkAgent.connect(true);
         // We get AVAILABLE on wifi when wifi connects and satisfies our unmetered request.
@@ -1666,6 +1786,7 @@
         callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
         defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
         assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         mEthernetNetworkAgent.connect(true);
         callback.expectAvailableCallbacksUnvalidated(mEthernetNetworkAgent);
@@ -1674,11 +1795,13 @@
         callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
         defaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
         assertEquals(mEthernetNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         mEthernetNetworkAgent.disconnect();
         callback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
         defaultCallback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
         defaultCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         for (int i = 0; i < 4; i++) {
             MockNetworkAgent oldNetwork, newNetwork;
@@ -1707,6 +1830,7 @@
         defaultCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_METERED, mWiFiNetworkAgent);
         defaultCallback.assertNoCallback();
         callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Wifi no longer satisfies our listen, which is for an unmetered network.
         // But because its score is 55, it's still up (and the default network).
@@ -1716,8 +1840,11 @@
         mWiFiNetworkAgent.disconnect();
         defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
         mCellNetworkAgent.disconnect();
         defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
+        waitForIdle();
+        assertEquals(null, mCm.getActiveNetwork());
 
         mCm.unregisterNetworkCallback(callback);
         waitForIdle();
@@ -1734,6 +1861,7 @@
         callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
         defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
         assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring up wifi with a score of 20.
         // Cell stays up because it would satisfy the default request if it validated.
@@ -1742,12 +1870,14 @@
         callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         mWiFiNetworkAgent.disconnect();
         callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
         assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring up wifi with a score of 70.
         // Cell is lingered because it would not satisfy any request, even if it validated.
@@ -1758,6 +1888,7 @@
         callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
         defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Tear down wifi.
         mWiFiNetworkAgent.disconnect();
@@ -1765,6 +1896,7 @@
         defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
         assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring up wifi, then validate it. Previous versions would immediately tear down cell, but
         // it's arguably correct to linger it, since it was the default network before it validated.
@@ -1776,6 +1908,7 @@
         callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
         defaultCallback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
         assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         mWiFiNetworkAgent.disconnect();
         callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
@@ -1784,12 +1917,15 @@
         mCellNetworkAgent.disconnect();
         callback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
         defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
+        waitForIdle();
+        assertEquals(null, mCm.getActiveNetwork());
 
         // If a network is lingering, and we add and remove a request from it, resume lingering.
         mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
         mCellNetworkAgent.connect(true);
         callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         defaultCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
         mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(true);
         defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
@@ -1797,6 +1933,7 @@
         // TODO: Investigate sending validated before losing.
         callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
         callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         NetworkRequest cellRequest = new NetworkRequest.Builder()
                 .addTransportType(TRANSPORT_CELLULAR).build();
@@ -1813,6 +1950,7 @@
         callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Cell is now the default network. Pin it with a cell-specific request.
         noopCallback = new NetworkCallback();  // Can't reuse NetworkCallbacks. http://b/20701525
@@ -1823,6 +1961,7 @@
         mWiFiNetworkAgent.connect(true);
         callback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
         defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
         // The default request is lingering on cell, but nothing happens to cell, and we send no
         // callbacks for it, because it's kept up by cellRequest.
         callback.assertNoCallback();
@@ -1846,6 +1985,7 @@
         callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
         trackDefaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
         defaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Let linger run its course.
         callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent, lingerTimeoutMs);
@@ -2494,23 +2634,27 @@
         mCellNetworkAgent.connect(true);
         cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         defaultNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
+        assertEquals(defaultNetworkCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring up wifi and expect CALLBACK_AVAILABLE.
         mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(true);
         cellNetworkCallback.assertNoCallback();
         defaultNetworkCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
+        assertEquals(defaultNetworkCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring down cell. Expect no default network callback, since it wasn't the default.
         mCellNetworkAgent.disconnect();
         cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
         defaultNetworkCallback.assertNoCallback();
+        assertEquals(defaultNetworkCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring up cell. Expect no default network callback, since it won't be the default.
         mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
         mCellNetworkAgent.connect(true);
         cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         defaultNetworkCallback.assertNoCallback();
+        assertEquals(defaultNetworkCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         // Bring down wifi. Expect the default network callback to notified of LOST wifi
         // followed by AVAILABLE cell.
@@ -2521,6 +2665,24 @@
         mCellNetworkAgent.disconnect();
         cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
         defaultNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
+        waitForIdle();
+        assertEquals(null, mCm.getActiveNetwork());
+
+        final int uid = Process.myUid();
+        final MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
+        final ArraySet<UidRange> ranges = new ArraySet<>();
+        ranges.add(new UidRange(uid, uid));
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.setUids(ranges);
+        vpnNetworkAgent.connect(true);
+        mMockVpn.connect();
+        defaultNetworkCallback.expectAvailableThenValidatedCallbacks(vpnNetworkAgent);
+        assertEquals(defaultNetworkCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
+
+        vpnNetworkAgent.disconnect();
+        defaultNetworkCallback.expectCallback(CallbackState.LOST, vpnNetworkAgent);
+        waitForIdle();
+        assertEquals(null, mCm.getActiveNetwork());
     }
 
     @Test
@@ -4011,6 +4173,7 @@
         final TestNetworkCallback genericNotVpnNetworkCallback = new TestNetworkCallback();
         final TestNetworkCallback wifiNetworkCallback = new TestNetworkCallback();
         final TestNetworkCallback vpnNetworkCallback = new TestNetworkCallback();
+        final TestNetworkCallback defaultCallback = new TestNetworkCallback();
         final NetworkRequest genericNotVpnRequest = new NetworkRequest.Builder().build();
         final NetworkRequest genericRequest = new NetworkRequest.Builder()
                 .removeCapability(NET_CAPABILITY_NOT_VPN).build();
@@ -4023,6 +4186,8 @@
         mCm.registerNetworkCallback(genericNotVpnRequest, genericNotVpnNetworkCallback);
         mCm.registerNetworkCallback(wifiRequest, wifiNetworkCallback);
         mCm.registerNetworkCallback(vpnNetworkRequest, vpnNetworkCallback);
+        mCm.registerDefaultNetworkCallback(defaultCallback);
+        defaultCallback.assertNoCallback();
 
         mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(false);
@@ -4030,26 +4195,30 @@
         genericNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         genericNotVpnNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         wifiNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
+        defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         vpnNetworkCallback.assertNoCallback();
-
-        // TODO : check callbacks agree with the return value of mCm.getActiveNetwork().
-        // Right now this is not possible because establish() is not adequately instrumented
-        // in this test.
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         final MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
         final ArraySet<UidRange> ranges = new ArraySet<>();
         ranges.add(new UidRange(uid, uid));
-        vpnNetworkAgent.setUids(ranges);
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.setUids(ranges);
         vpnNetworkAgent.connect(false);
+        mMockVpn.connect();
 
         genericNetworkCallback.expectAvailableCallbacksUnvalidated(vpnNetworkAgent);
         genericNotVpnNetworkCallback.assertNoCallback();
         wifiNetworkCallback.assertNoCallback();
         vpnNetworkCallback.expectAvailableCallbacksUnvalidated(vpnNetworkAgent);
+        defaultCallback.expectAvailableCallbacksUnvalidated(vpnNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         genericNetworkCallback.expectCallback(CallbackState.NETWORK_CAPABILITIES, vpnNetworkAgent);
         genericNotVpnNetworkCallback.assertNoCallback();
         vpnNetworkCallback.expectCapabilitiesLike(nc -> null == nc.getUids(), vpnNetworkAgent);
+        defaultCallback.expectCallback(CallbackState.NETWORK_CAPABILITIES, vpnNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
 
         ranges.clear();
         vpnNetworkAgent.setUids(ranges);
@@ -4059,13 +4228,24 @@
         wifiNetworkCallback.assertNoCallback();
         vpnNetworkCallback.expectCallback(CallbackState.LOST, vpnNetworkAgent);
 
+        // TODO : The default network callback should actually get a LOST call here (also see the
+        // comment below for AVAILABLE). This is because ConnectivityService does not look at UID
+        // ranges at all when determining whether a network should be rematched. In practice, VPNs
+        // can't currently update their UIDs without disconnecting, so this does not matter too
+        // much, but that is the reason the test here has to check for an update to the
+        // capabilities instead of the expected LOST then AVAILABLE.
+        defaultCallback.expectCallback(CallbackState.NETWORK_CAPABILITIES, vpnNetworkAgent);
+
         ranges.add(new UidRange(uid, uid));
-        vpnNetworkAgent.setUids(ranges);
+        mMockVpn.setUids(ranges);
 
         genericNetworkCallback.expectAvailableCallbacksValidated(vpnNetworkAgent);
         genericNotVpnNetworkCallback.assertNoCallback();
         wifiNetworkCallback.assertNoCallback();
         vpnNetworkCallback.expectAvailableCallbacksValidated(vpnNetworkAgent);
+        // TODO : Here like above, AVAILABLE would be correct, but because this can't actually
+        // happen outside of the test, ConnectivityService does not rematch callbacks.
+        defaultCallback.expectCallback(CallbackState.NETWORK_CAPABILITIES, vpnNetworkAgent);
 
         mWiFiNetworkAgent.disconnect();
 
@@ -4073,6 +4253,7 @@
         genericNotVpnNetworkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         wifiNetworkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         vpnNetworkCallback.assertNoCallback();
+        defaultCallback.assertNoCallback();
 
         vpnNetworkAgent.disconnect();
 
@@ -4080,9 +4261,161 @@
         genericNotVpnNetworkCallback.assertNoCallback();
         wifiNetworkCallback.assertNoCallback();
         vpnNetworkCallback.expectCallback(CallbackState.LOST, vpnNetworkAgent);
+        defaultCallback.expectCallback(CallbackState.LOST, vpnNetworkAgent);
+        assertEquals(null, mCm.getActiveNetwork());
 
         mCm.unregisterNetworkCallback(genericNetworkCallback);
         mCm.unregisterNetworkCallback(wifiNetworkCallback);
         mCm.unregisterNetworkCallback(vpnNetworkCallback);
+        mCm.unregisterNetworkCallback(defaultCallback);
+    }
+
+    @Test
+    public void testVpnWithAndWithoutInternet() {
+        final int uid = Process.myUid();
+
+        final TestNetworkCallback defaultCallback = new TestNetworkCallback();
+        mCm.registerDefaultNetworkCallback(defaultCallback);
+        defaultCallback.assertNoCallback();
+
+        mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
+        mWiFiNetworkAgent.connect(true);
+
+        defaultCallback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
+
+        MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
+        final ArraySet<UidRange> ranges = new ArraySet<>();
+        ranges.add(new UidRange(uid, uid));
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.setUids(ranges);
+        vpnNetworkAgent.connect(true /* validated */, false /* hasInternet */);
+        mMockVpn.connect();
+
+        defaultCallback.assertNoCallback();
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
+
+        vpnNetworkAgent.disconnect();
+        defaultCallback.assertNoCallback();
+
+        vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.setUids(ranges);
+        vpnNetworkAgent.connect(true /* validated */, true /* hasInternet */);
+        mMockVpn.connect();
+        defaultCallback.expectAvailableThenValidatedCallbacks(vpnNetworkAgent);
+        assertEquals(defaultCallback.getLastAvailableNetwork(), mCm.getActiveNetwork());
+
+        vpnNetworkAgent.disconnect();
+        defaultCallback.expectCallback(CallbackState.LOST, vpnNetworkAgent);
+        defaultCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
+
+        vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
+        ranges.clear();
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.setUids(ranges);
+        vpnNetworkAgent.connect(false /* validated */, true /* hasInternet */);
+        mMockVpn.connect();
+        defaultCallback.assertNoCallback();
+
+        mCm.unregisterNetworkCallback(defaultCallback);
+    }
+
+    @Test
+    public void testVpnSetUnderlyingNetworks() {
+        final int uid = Process.myUid();
+
+        final TestNetworkCallback vpnNetworkCallback = new TestNetworkCallback();
+        final NetworkRequest vpnNetworkRequest = new NetworkRequest.Builder()
+                .removeCapability(NET_CAPABILITY_NOT_VPN)
+                .addTransportType(TRANSPORT_VPN)
+                .build();
+        NetworkCapabilities nc;
+        mCm.registerNetworkCallback(vpnNetworkRequest, vpnNetworkCallback);
+        vpnNetworkCallback.assertNoCallback();
+
+        final MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN);
+        final ArraySet<UidRange> ranges = new ArraySet<>();
+        ranges.add(new UidRange(uid, uid));
+        mMockVpn.setNetworkAgent(vpnNetworkAgent);
+        mMockVpn.connect();
+        mMockVpn.setUids(ranges);
+        vpnNetworkAgent.connect(true /* validated */, false /* hasInternet */);
+
+        vpnNetworkCallback.expectAvailableThenValidatedCallbacks(vpnNetworkAgent);
+        nc = mCm.getNetworkCapabilities(vpnNetworkAgent.getNetwork());
+        assertTrue(nc.hasTransport(TRANSPORT_VPN));
+        assertFalse(nc.hasTransport(TRANSPORT_CELLULAR));
+        assertFalse(nc.hasTransport(TRANSPORT_WIFI));
+        // For safety reasons a VPN without underlying networks is considered metered.
+        assertFalse(nc.hasCapability(NET_CAPABILITY_NOT_METERED));
+
+        // Connect cell and use it as an underlying network.
+        mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
+        mCellNetworkAgent.connect(true);
+
+        mService.setUnderlyingNetworksForVpn(
+                new Network[] { mCellNetworkAgent.getNetwork() });
+
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
+                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
+        mWiFiNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED);
+        mWiFiNetworkAgent.connect(true);
+
+        mService.setUnderlyingNetworksForVpn(
+                new Network[] { mCellNetworkAgent.getNetwork(), mWiFiNetworkAgent.getNetwork() });
+
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
+                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        // Don't disconnect, but note the VPN is not using wifi any more.
+        mService.setUnderlyingNetworksForVpn(
+                new Network[] { mCellNetworkAgent.getNetwork() });
+
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
+                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        // Use Wifi but not cell. Note the VPN is now unmetered.
+        mService.setUnderlyingNetworksForVpn(
+                new Network[] { mWiFiNetworkAgent.getNetwork() });
+
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && !caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
+                && caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        // Use both again.
+        mService.setUnderlyingNetworksForVpn(
+                new Network[] { mCellNetworkAgent.getNetwork(), mWiFiNetworkAgent.getNetwork() });
+
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
+                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        // Disconnect cell. Receive update without even removing the dead network from the
+        // underlying networks – it's dead anyway. Not metered any more.
+        mCellNetworkAgent.disconnect();
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && !caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
+                && caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        // Disconnect wifi too. No underlying networks means this is now metered.
+        mWiFiNetworkAgent.disconnect();
+        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
+                && !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
+                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
+                vpnNetworkAgent);
+
+        mMockVpn.disconnect();
     }
 }
diff --git a/tests/net/java/com/android/server/connectivity/TetheringTest.java b/tests/net/java/com/android/server/connectivity/TetheringTest.java
index d241b32..9994cdd 100644
--- a/tests/net/java/com/android/server/connectivity/TetheringTest.java
+++ b/tests/net/java/com/android/server/connectivity/TetheringTest.java
@@ -779,11 +779,12 @@
         sendWifiApStateChanged(WIFI_AP_STATE_ENABLED, TEST_WLAN_IFNAME, IFACE_IP_MODE_TETHERED);
         mLooper.dispatchAll();
 
-        // We verify get/set called twice here: once for setup and once during
+        // We verify get/set called thrice here: once for setup and twice during
         // teardown because all events happen over the course of the single
-        // dispatchAll() above.
+        // dispatchAll() above. Note that once the TISM IPv4 address config
+        // code is refactored the two calls during shutdown will revert to one.
         verify(mNMService, times(2)).getInterfaceConfig(TEST_WLAN_IFNAME);
-        verify(mNMService, times(2))
+        verify(mNMService, times(3))
                 .setInterfaceConfig(eq(TEST_WLAN_IFNAME), any(InterfaceConfiguration.class));
         verify(mNMService, times(1)).tetherInterface(TEST_WLAN_IFNAME);
         verify(mWifiManager).updateInterfaceIpState(
diff --git a/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java b/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
index 7c77cf5..19d3a2e 100644
--- a/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
+++ b/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
@@ -173,6 +173,7 @@
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_UNREQUESTED);
         InOrder inOrder = inOrder(mNMService, mStatsService, mTetherHelper);
         inOrder.verify(mNMService).untetherInterface(IFACE_NAME);
+        inOrder.verify(mNMService).setInterfaceConfig(eq(IFACE_NAME), any());
         inOrder.verify(mTetherHelper).updateInterfaceState(
                 mTestedSm, STATE_AVAILABLE, TETHER_ERROR_NO_ERROR);
         inOrder.verify(mTetherHelper).updateLinkProperties(
@@ -270,6 +271,7 @@
         inOrder.verify(mNMService).stopInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE);
         inOrder.verify(mNMService).disableNat(IFACE_NAME, UPSTREAM_IFACE);
         inOrder.verify(mNMService).untetherInterface(IFACE_NAME);
+        inOrder.verify(mNMService).setInterfaceConfig(eq(IFACE_NAME), any());
         inOrder.verify(mTetherHelper).updateInterfaceState(
                 mTestedSm, STATE_AVAILABLE, TETHER_ERROR_NO_ERROR);
         inOrder.verify(mTetherHelper).updateLinkProperties(
diff --git a/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java b/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
index da0a48a..6f14332 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
@@ -26,6 +26,9 @@
 import static android.os.Process.myUid;
 import static android.text.format.DateUtils.HOUR_IN_MILLIS;
 import static android.text.format.DateUtils.MINUTE_IN_MILLIS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import static com.android.server.net.NetworkStatsCollection.multiplySafe;
 
@@ -37,11 +40,12 @@
 import android.net.NetworkTemplate;
 import android.os.Process;
 import android.os.UserHandle;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.telephony.SubscriptionPlan;
 import android.telephony.TelephonyManager;
-import android.test.AndroidTestCase;
 import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.SmallTest;
 import android.text.format.DateUtils;
 import android.util.RecurrenceRule;
 
@@ -64,11 +68,17 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Tests for {@link NetworkStatsCollection}.
  */
+@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class NetworkStatsCollectionTest extends AndroidTestCase {
+public class NetworkStatsCollectionTest {
 
     private static final String TEST_FILE = "test.bin";
     private static final String TEST_IMSI = "310260000000000";
@@ -79,18 +89,15 @@
 
     private static Clock sOriginalClock;
 
-    @Override
+    @Before
     public void setUp() throws Exception {
-        super.setUp();
         sOriginalClock = RecurrenceRule.sClock;
-
         // ignore any device overlay while testing
         NetworkTemplate.forceAllNetworkTypes();
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         RecurrenceRule.sClock = sOriginalClock;
     }
 
@@ -98,8 +105,10 @@
         RecurrenceRule.sClock = Clock.fixed(instant, ZoneId.systemDefault());
     }
 
+    @Test
     public void testReadLegacyNetwork() throws Exception {
-        final File testFile = new File(getContext().getFilesDir(), TEST_FILE);
+        final File testFile =
+                new File(InstrumentationRegistry.getContext().getFilesDir(), TEST_FILE);
         stageFile(R.raw.netstats_v1, testFile);
 
         final NetworkStatsCollection collection = new NetworkStatsCollection(30 * MINUTE_IN_MILLIS);
@@ -124,8 +133,10 @@
                 636016770L, 709306L, 88038768L, 518836L, NetworkStatsAccess.Level.DEVICE);
     }
 
+    @Test
     public void testReadLegacyUid() throws Exception {
-        final File testFile = new File(getContext().getFilesDir(), TEST_FILE);
+        final File testFile =
+                new File(InstrumentationRegistry.getContext().getFilesDir(), TEST_FILE);
         stageFile(R.raw.netstats_uid_v4, testFile);
 
         final NetworkStatsCollection collection = new NetworkStatsCollection(30 * MINUTE_IN_MILLIS);
@@ -150,8 +161,10 @@
                 637076152L, 711413L, 88343717L, 521022L, NetworkStatsAccess.Level.DEVICE);
     }
 
+    @Test
     public void testReadLegacyUidTags() throws Exception {
-        final File testFile = new File(getContext().getFilesDir(), TEST_FILE);
+        final File testFile =
+                new File(InstrumentationRegistry.getContext().getFilesDir(), TEST_FILE);
         stageFile(R.raw.netstats_uid_v4, testFile);
 
         final NetworkStatsCollection collection = new NetworkStatsCollection(30 * MINUTE_IN_MILLIS);
@@ -176,6 +189,7 @@
                 77017831L, 100995L, 35436758L, 92344L);
     }
 
+    @Test
     public void testStartEndAtomicBuckets() throws Exception {
         final NetworkStatsCollection collection = new NetworkStatsCollection(HOUR_IN_MILLIS);
 
@@ -190,6 +204,7 @@
         assertEquals(2 * HOUR_IN_MILLIS, collection.getEndMillis());
     }
 
+    @Test
     public void testAccessLevels() throws Exception {
         final NetworkStatsCollection collection = new NetworkStatsCollection(HOUR_IN_MILLIS);
         final NetworkStats.Entry entry = new NetworkStats.Entry();
@@ -250,8 +265,10 @@
                 0, NetworkStatsAccess.Level.DEVICE);
     }
 
+    @Test
     public void testAugmentPlan() throws Exception {
-        final File testFile = new File(getContext().getFilesDir(), TEST_FILE);
+        final File testFile =
+                new File(InstrumentationRegistry.getContext().getFilesDir(), TEST_FILE);
         stageFile(R.raw.netstats_v1, testFile);
 
         final NetworkStatsCollection emptyCollection = new NetworkStatsCollection(30 * MINUTE_IN_MILLIS);
@@ -439,6 +456,7 @@
         }
     }
 
+    @Test
     public void testAugmentPlanGigantic() throws Exception {
         // We're in the future, but not that far off
         setClock(Instant.parse("2012-06-01T00:00:00.00Z"));
@@ -461,6 +479,7 @@
         assertEquals(4_939_212_386L, getHistory(large, plan, TIME_A, TIME_C).getTotalBytes());
     }
 
+    @Test
     public void testRounding() throws Exception {
         final NetworkStatsCollection coll = new NetworkStatsCollection(HOUR_IN_MILLIS);
 
@@ -482,6 +501,7 @@
         assertEquals(TIME_A - HOUR_IN_MILLIS, coll.roundDown(TIME_A - 1));
     }
 
+    @Test
     public void testMultiplySafe() {
         assertEquals(25, multiplySafe(50, 1, 2));
         assertEquals(100, multiplySafe(50, 2, 1));
@@ -510,7 +530,7 @@
         InputStream in = null;
         OutputStream out = null;
         try {
-            in = getContext().getResources().openRawResource(rawId);
+            in = InstrumentationRegistry.getContext().getResources().openRawResource(rawId);
             out = new FileOutputStream(file);
             Streams.copy(in, out);
         } finally {
diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
index 2fb9faf..6836626 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -93,8 +93,8 @@
 import android.os.PowerManager;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.runner.AndroidJUnit4;
+import android.support.test.filters.SmallTest;
 import android.telephony.TelephonyManager;
-import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 import android.util.TrustedTime;
 
@@ -216,7 +216,6 @@
               ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
         verify(mNetManager).registerObserver(networkObserver.capture());
         mNetworkObserver = networkObserver.getValue();
-
     }
 
     @After
diff --git a/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java b/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java
index 2166240..25bd7c0 100644
--- a/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java
+++ b/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java
@@ -175,6 +175,12 @@
     }
 
     @Override
+    public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
+            String[] receiverPermissions) {
+        sendBroadcast(intent);
+    }
+
+    @Override
     public void sendBroadcastAsUser(Intent intent, UserHandle user) {
         sendBroadcast(intent);
     }
diff --git a/tools/aapt2/OWNERS b/tools/aapt2/OWNERS
index d76233e..23ec5ab 100644
--- a/tools/aapt2/OWNERS
+++ b/tools/aapt2/OWNERS
@@ -1,2 +1,2 @@
 set noparent
-adamlesinski@google.com
+toddke@google.com
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index 7742f36..3a312b0 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -1923,6 +1923,12 @@
           .OptionalFlag("--version-name",
                         "Version name to inject into the AndroidManifest.xml if none is present.",
                         &options.manifest_fixer_options.version_name_default)
+          .OptionalSwitch("--replace-version",
+                         "If --version-code and/or --version-name are specified, these\n"
+                         "values will replace any value already in the manifest. By\n"
+                         "default, nothing is changed if the manifest already defines\n"
+                         "these attributes.",
+                         &options.manifest_fixer_options.replace_version)
           .OptionalSwitch("--shared-lib", "Generates a shared Android runtime library.",
                           &shared_lib)
           .OptionalSwitch("--static-lib", "Generate a static Android library.", &static_lib)
@@ -1968,6 +1974,9 @@
                         &options.manifest_fixer_options.rename_instrumentation_target_package)
           .OptionalFlagList("-0", "File extensions not to compress.",
                             &options.extensions_to_not_compress)
+          .OptionalSwitch("--warn-manifest-validation",
+                          "Treat manifest validation errors as warnings.",
+                          &options.manifest_fixer_options.warn_validation)
           .OptionalFlagList("--split",
                             "Split resources matching a set of configs out to a Split APK.\n"
                             "Syntax: path/to/output.apk:<config>[,<config>[...]].\n"
diff --git a/tools/aapt2/java/ManifestClassGenerator.cpp b/tools/aapt2/java/ManifestClassGenerator.cpp
index cad4c6c..f4391e1 100644
--- a/tools/aapt2/java/ManifestClassGenerator.cpp
+++ b/tools/aapt2/java/ManifestClassGenerator.cpp
@@ -22,9 +22,11 @@
 #include "java/AnnotationProcessor.h"
 #include "java/ClassDefinition.h"
 #include "util/Maybe.h"
+#include "text/Unicode.h"
 #include "xml/XmlDom.h"
 
-using android::StringPiece;
+using ::android::StringPiece;
+using ::aapt::text::IsJavaIdentifier;
 
 namespace aapt {
 
@@ -46,11 +48,8 @@
     return {};
   }
 
-  iter = util::FindNonAlphaNumericAndNotInSet(result, "_");
-  if (iter != result.end()) {
-    diag->Error(DiagMessage(source) << "invalid character '"
-                                    << StringPiece(iter, 1) << "' in '"
-                                    << result << "'");
+  if (!IsJavaIdentifier(result)) {
+    diag->Error(DiagMessage(source) << "invalid Java identifier '" << result << "'");
     return {};
   }
 
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index 6fb1793..ca7b653 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -127,9 +127,9 @@
     diag->Error(DiagMessage(el->line_number)
                 << "attribute 'package' in <manifest> tag must not be a reference");
     return false;
-  } else if (!util::IsJavaPackageName(attr->value)) {
+  } else if (!util::IsAndroidPackageName(attr->value)) {
     diag->Error(DiagMessage(el->line_number)
-                << "attribute 'package' in <manifest> tag is not a valid Java package name: '"
+                << "attribute 'package' in <manifest> tag is not a valid Android package name: '"
                 << attr->value << "'");
     return false;
   }
@@ -237,6 +237,9 @@
   manifest_action.Action(FixCoreAppAttribute);
   manifest_action.Action([&](xml::Element* el) -> bool {
     if (options_.version_name_default) {
+      if (options_.replace_version) {
+        el->RemoveAttribute(xml::kSchemaAndroid, "versionName");
+      }
       if (el->FindAttribute(xml::kSchemaAndroid, "versionName") == nullptr) {
         el->attributes.push_back(
             xml::Attribute{xml::kSchemaAndroid, "versionName",
@@ -245,6 +248,9 @@
     }
 
     if (options_.version_code_default) {
+      if (options_.replace_version) {
+        el->RemoveAttribute(xml::kSchemaAndroid, "versionCode");
+      }
       if (el->FindAttribute(xml::kSchemaAndroid, "versionCode") == nullptr) {
         el->attributes.push_back(
             xml::Attribute{xml::kSchemaAndroid, "versionCode",
@@ -409,7 +415,10 @@
     return false;
   }
 
-  if (!executor.Execute(xml::XmlActionExecutorPolicy::kWhitelist, context->GetDiagnostics(), doc)) {
+  xml::XmlActionExecutorPolicy policy = options_.warn_validation
+                                            ? xml::XmlActionExecutorPolicy::kWhitelistWarning
+                                            : xml::XmlActionExecutorPolicy::kWhitelist;
+  if (!executor.Execute(policy, context->GetDiagnostics(), doc)) {
     return false;
   }
 
diff --git a/tools/aapt2/link/ManifestFixer.h b/tools/aapt2/link/ManifestFixer.h
index 470f65e..d7a5931 100644
--- a/tools/aapt2/link/ManifestFixer.h
+++ b/tools/aapt2/link/ManifestFixer.h
@@ -33,8 +33,22 @@
   Maybe<std::string> target_sdk_version_default;
   Maybe<std::string> rename_manifest_package;
   Maybe<std::string> rename_instrumentation_target_package;
+
+  // The version name to set if 'android:versionName' is not defined in <manifest> or if
+  // replace_version is set.
   Maybe<std::string> version_name_default;
+
+  // The version code to set if 'android:versionCode' is not defined in <manifest> or if
+  // replace_version is set.
   Maybe<std::string> version_code_default;
+
+  // Wether validation errors should be treated only as warnings. If this is 'true', then an
+  // incorrect node will not result in an error, but only as a warning, and the parsing will
+  // continue.
+  bool warn_validation = false;
+
+  // Whether to replace the manifest version with the the command line version
+  bool replace_version = false;
 };
 
 /**
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index da7f410..e6410c9 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -19,7 +19,9 @@
 #include "test/Test.h"
 
 using ::android::StringPiece;
+using ::testing::IsNull;
 using ::testing::NotNull;
+using ::testing::StrEq;
 
 namespace aapt {
 
@@ -109,7 +111,9 @@
 }
 
 TEST_F(ManifestFixerTest, UseDefaultSdkVersionsIfNonePresent) {
-  ManifestFixerOptions options = {std::string("8"), std::string("22")};
+  ManifestFixerOptions options;
+  options.min_sdk_version_default = std::string("8");
+  options.target_sdk_version_default = std::string("22");
 
   std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
       <manifest xmlns:android="http://schemas.android.com/apk/res/android"
@@ -190,7 +194,9 @@
 }
 
 TEST_F(ManifestFixerTest, UsesSdkMustComeBeforeApplication) {
-  ManifestFixerOptions options = {std::string("8"), std::string("22")};
+  ManifestFixerOptions options;
+  options.min_sdk_version_default = std::string("8");
+  options.target_sdk_version_default = std::string("22");
   std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
           <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                     package="android">
@@ -334,6 +340,136 @@
   EXPECT_EQ(std::string("0x10000000"), attr->value);
 }
 
+TEST_F(ManifestFixerTest, DontUseDefaultVersionNameAndCode) {
+ManifestFixerOptions options;
+options.version_name_default = std::string("Beta");
+options.version_code_default = std::string("0x10000000");
+
+std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+                package="android"
+                android:versionCode="0x20000000"
+                android:versionName="Alpha" />)EOF",
+                                                          options);
+ASSERT_THAT(doc, NotNull());
+
+xml::Element* manifest_el = doc->root.get();
+ASSERT_THAT(manifest_el, NotNull());
+
+xml::Attribute* attr =
+    manifest_el->FindAttribute(xml::kSchemaAndroid, "versionName");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("Alpha"));
+
+attr = manifest_el->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("0x20000000"));
+}
+
+TEST_F(ManifestFixerTest, ReplaceVersionNameAndCode) {
+ManifestFixerOptions options;
+options.replace_version = true;
+options.version_name_default = std::string("Beta");
+options.version_code_default = std::string("0x10000000");
+
+std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+              package="android"
+              android:versionCode="0x20000000"
+              android:versionName="Alpha" />)EOF",
+                                                          options);
+ASSERT_THAT(doc, NotNull());
+
+xml::Element* manifest_el = doc->root.get();
+ASSERT_THAT(manifest_el, NotNull());
+
+xml::Attribute* attr =
+    manifest_el->FindAttribute(xml::kSchemaAndroid, "versionName");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("Beta"));
+
+attr = manifest_el->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("0x10000000"));
+}
+
+TEST_F(ManifestFixerTest, ReplaceVersionName) {
+ManifestFixerOptions options;
+options.replace_version = true;
+options.version_name_default = std::string("Beta");
+
+std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+            package="android"
+            android:versionCode="0x20000000"
+            android:versionName="Alpha" />)EOF",
+                                                          options);
+ASSERT_THAT(doc, NotNull());
+
+xml::Element* manifest_el = doc->root.get();
+ASSERT_THAT(manifest_el, NotNull());
+
+xml::Attribute* attr =
+    manifest_el->FindAttribute(xml::kSchemaAndroid, "versionName");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("Beta"));
+
+attr = manifest_el->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("0x20000000"));
+}
+
+TEST_F(ManifestFixerTest, ReplaceVersionCode) {
+ManifestFixerOptions options;
+options.replace_version = true;
+options.version_code_default = std::string("0x10000000");
+
+std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+            package="android"
+            android:versionCode="0x20000000"
+            android:versionName="Alpha" />)EOF",
+                                                          options);
+ASSERT_THAT(doc, NotNull());
+
+xml::Element* manifest_el = doc->root.get();
+ASSERT_THAT(manifest_el, NotNull());
+
+xml::Attribute* attr =
+    manifest_el->FindAttribute(xml::kSchemaAndroid, "versionName");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("Alpha"));
+
+attr = manifest_el->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("0x10000000"));
+}
+
+TEST_F(ManifestFixerTest, DontReplaceVersionNameOrCode) {
+ManifestFixerOptions options;
+options.replace_version = true;
+
+std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android"
+          android:versionCode="0x20000000"
+          android:versionName="Alpha" />)EOF",
+                                                          options);
+ASSERT_THAT(doc, NotNull());
+
+xml::Element* manifest_el = doc->root.get();
+ASSERT_THAT(manifest_el, NotNull());
+
+xml::Attribute* attr =
+    manifest_el->FindAttribute(xml::kSchemaAndroid, "versionName");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("Alpha"));
+
+attr = manifest_el->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ASSERT_THAT(attr, NotNull());
+EXPECT_THAT(attr->value, StrEq("0x20000000"));
+}
+
 TEST_F(ManifestFixerTest, EnsureManifestAttributesAreTyped) {
   EXPECT_EQ(nullptr,
             Verify("<manifest package=\"android\" coreApp=\"hello\" />"));
@@ -439,4 +575,27 @@
   EXPECT_THAT(Verify(input), NotNull());
 }
 
+TEST_F(ManifestFixerTest, UnexpectedElementsInManifest) {
+  std::string input = R"(
+      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android">
+        <beep/>
+      </manifest>)";
+  ManifestFixerOptions options;
+  options.warn_validation = true;
+
+  // Unexpected element should result in a warning if the flag is set to 'true'.
+  std::unique_ptr<xml::XmlResource> manifest = VerifyWithOptions(input, options);
+  ASSERT_THAT(manifest, NotNull());
+
+  // Unexpected element should result in an error if the flag is set to 'false'.
+  options.warn_validation = false;
+  manifest = VerifyWithOptions(input, options);
+  ASSERT_THAT(manifest, IsNull());
+
+  // By default the flag should be set to 'false'.
+  manifest = Verify(input);
+  ASSERT_THAT(manifest, IsNull());
+}
+
 }  // namespace aapt
diff --git a/tools/aapt2/text/Unicode.cpp b/tools/aapt2/text/Unicode.cpp
index 75eeb46..3735b3e 100644
--- a/tools/aapt2/text/Unicode.cpp
+++ b/tools/aapt2/text/Unicode.cpp
@@ -85,7 +85,8 @@
     return false;
   }
 
-  if (!IsXidStart(iter.Next())) {
+  const char32_t first_codepoint = iter.Next();
+  if (!IsXidStart(first_codepoint) && first_codepoint != U'_' && first_codepoint != U'$') {
     return false;
   }
 
diff --git a/tools/aapt2/text/Unicode_test.cpp b/tools/aapt2/text/Unicode_test.cpp
index d47fb28..a8e797c 100644
--- a/tools/aapt2/text/Unicode_test.cpp
+++ b/tools/aapt2/text/Unicode_test.cpp
@@ -44,10 +44,11 @@
 TEST(UnicodeTest, IsJavaIdentifier) {
   EXPECT_TRUE(IsJavaIdentifier("FøøBar_12"));
   EXPECT_TRUE(IsJavaIdentifier("Føø$Bar"));
+  EXPECT_TRUE(IsJavaIdentifier("_FøøBar"));
+  EXPECT_TRUE(IsJavaIdentifier("$Føø$Bar"));
 
   EXPECT_FALSE(IsJavaIdentifier("12FøøBar"));
-  EXPECT_FALSE(IsJavaIdentifier("_FøøBar"));
-  EXPECT_FALSE(IsJavaIdentifier("$Føø$Bar"));
+  EXPECT_FALSE(IsJavaIdentifier(".Hello"));
 }
 
 TEST(UnicodeTest, IsValidResourceEntryName) {
diff --git a/tools/aapt2/util/Util.cpp b/tools/aapt2/util/Util.cpp
index 51a75d7..7c1c1ad 100644
--- a/tools/aapt2/util/Util.cpp
+++ b/tools/aapt2/util/Util.cpp
@@ -24,6 +24,7 @@
 #include "androidfw/StringPiece.h"
 #include "utils/Unicode.h"
 
+#include "text/Unicode.h"
 #include "text/Utf8Iterator.h"
 #include "util/BigBuffer.h"
 #include "util/Maybe.h"
@@ -94,72 +95,55 @@
   return StringPiece(start, end - start);
 }
 
-StringPiece::const_iterator FindNonAlphaNumericAndNotInSet(
-    const StringPiece& str, const StringPiece& allowed_chars) {
-  const auto end_iter = str.end();
-  for (auto iter = str.begin(); iter != end_iter; ++iter) {
-    char c = *iter;
-    if ((c >= u'a' && c <= u'z') || (c >= u'A' && c <= u'Z') ||
-        (c >= u'0' && c <= u'9')) {
-      continue;
-    }
-
-    bool match = false;
-    for (char i : allowed_chars) {
-      if (c == i) {
-        match = true;
-        break;
-      }
-    }
-
-    if (!match) {
-      return iter;
+static int IsJavaNameImpl(const StringPiece& str) {
+  int pieces = 0;
+  for (const StringPiece& piece : Tokenize(str, '.')) {
+    pieces++;
+    if (!text::IsJavaIdentifier(piece)) {
+      return -1;
     }
   }
-  return end_iter;
+  return pieces;
 }
 
 bool IsJavaClassName(const StringPiece& str) {
-  size_t pieces = 0;
-  for (const StringPiece& piece : Tokenize(str, '.')) {
-    pieces++;
-    if (piece.empty()) {
-      return false;
-    }
-
-    // Can't have starting or trailing $ character.
-    if (piece.data()[0] == '$' || piece.data()[piece.size() - 1] == '$') {
-      return false;
-    }
-
-    if (FindNonAlphaNumericAndNotInSet(piece, "$_") != piece.end()) {
-      return false;
-    }
-  }
-  return pieces >= 2;
+  return IsJavaNameImpl(str) >= 2;
 }
 
 bool IsJavaPackageName(const StringPiece& str) {
-  if (str.empty()) {
-    return false;
-  }
+  return IsJavaNameImpl(str) >= 1;
+}
 
-  size_t pieces = 0;
+static int IsAndroidNameImpl(const StringPiece& str) {
+  int pieces = 0;
   for (const StringPiece& piece : Tokenize(str, '.')) {
-    pieces++;
     if (piece.empty()) {
-      return false;
+      return -1;
     }
 
-    if (piece.data()[0] == '_' || piece.data()[piece.size() - 1] == '_') {
-      return false;
+    const char first_character = piece.data()[0];
+    if (!::isalpha(first_character)) {
+      return -1;
     }
 
-    if (FindNonAlphaNumericAndNotInSet(piece, "_") != piece.end()) {
-      return false;
+    bool valid = std::all_of(piece.begin() + 1, piece.end(), [](const char c) -> bool {
+      return ::isalnum(c) || c == '_';
+    });
+
+    if (!valid) {
+      return -1;
     }
+    pieces++;
   }
-  return pieces >= 1;
+  return pieces;
+}
+
+bool IsAndroidPackageName(const StringPiece& str) {
+  return IsAndroidNameImpl(str) > 1 || str == "android";
+}
+
+bool IsAndroidSplitName(const StringPiece& str) {
+  return IsAndroidNameImpl(str) > 0;
 }
 
 Maybe<std::string> GetFullyQualifiedClassName(const StringPiece& package,
@@ -176,7 +160,7 @@
     return {};
   }
 
-  std::string result(package.data(), package.size());
+  std::string result = package.to_string();
   if (classname.data()[0] != '.') {
     result += '.';
   }
diff --git a/tools/aapt2/util/Util.h b/tools/aapt2/util/Util.h
index 8f021ab..f12746f 100644
--- a/tools/aapt2/util/Util.h
+++ b/tools/aapt2/util/Util.h
@@ -53,48 +53,40 @@
 std::vector<std::string> Split(const android::StringPiece& str, char sep);
 std::vector<std::string> SplitAndLowercase(const android::StringPiece& str, char sep);
 
-/**
- * Returns true if the string starts with prefix.
- */
+// Returns true if the string starts with prefix.
 bool StartsWith(const android::StringPiece& str, const android::StringPiece& prefix);
 
-/**
- * Returns true if the string ends with suffix.
- */
+// Returns true if the string ends with suffix.
 bool EndsWith(const android::StringPiece& str, const android::StringPiece& suffix);
 
-/**
- * Creates a new StringPiece16 that points to a substring
- * of the original string without leading or trailing whitespace.
- */
+// Creates a new StringPiece16 that points to a substring of the original string without leading or
+// trailing whitespace.
 android::StringPiece TrimWhitespace(const android::StringPiece& str);
 
-/**
- * Returns an iterator to the first character that is not alpha-numeric and that
- * is not in the allowedChars set.
- */
-android::StringPiece::const_iterator FindNonAlphaNumericAndNotInSet(
-    const android::StringPiece& str, const android::StringPiece& allowed_chars);
-
-/**
- * Tests that the string is a valid Java class name.
- */
+// Tests that the string is a valid Java class name.
 bool IsJavaClassName(const android::StringPiece& str);
 
-/**
- * Tests that the string is a valid Java package name.
- */
+// Tests that the string is a valid Java package name.
 bool IsJavaPackageName(const android::StringPiece& str);
 
-/**
- * Converts the class name to a fully qualified class name from the given
- * `package`. Ex:
- *
- * asdf         --> package.asdf
- * .asdf        --> package.asdf
- * .a.b         --> package.a.b
- * asdf.adsf    --> asdf.adsf
- */
+// Tests that the string is a valid Android package name. More strict than a Java package name.
+// - First character of each component (separated by '.') must be an ASCII letter.
+// - Subsequent characters of a component can be ASCII alphanumeric or an underscore.
+// - Package must contain at least two components, unless it is 'android'.
+bool IsAndroidPackageName(const android::StringPiece& str);
+
+// Tests that the string is a valid Android split name.
+// - First character of each component (separated by '.') must be an ASCII letter.
+// - Subsequent characters of a component can be ASCII alphanumeric or an underscore.
+bool IsAndroidSplitName(const android::StringPiece& str);
+
+// Converts the class name to a fully qualified class name from the given
+// `package`. Ex:
+//
+// asdf         --> package.asdf
+// .asdf        --> package.asdf
+// .a.b         --> package.a.b
+// asdf.adsf    --> asdf.adsf
 Maybe<std::string> GetFullyQualifiedClassName(const android::StringPiece& package,
                                               const android::StringPiece& class_name);
 
@@ -108,23 +100,17 @@
   return 0;
 }
 
-/**
- * Makes a std::unique_ptr<> with the template parameter inferred by the compiler.
- * This will be present in C++14 and can be removed then.
- */
+// Makes a std::unique_ptr<> with the template parameter inferred by the compiler.
+// This will be present in C++14 and can be removed then.
 template <typename T, class... Args>
 std::unique_ptr<T> make_unique(Args&&... args) {
   return std::unique_ptr<T>(new T{std::forward<Args>(args)...});
 }
 
-/**
- * Writes a set of items to the std::ostream, joining the times with the
- * provided
- * separator.
- */
+// Writes a set of items to the std::ostream, joining the times with the provided separator.
 template <typename Container>
-::std::function<::std::ostream&(::std::ostream&)> Joiner(
-    const Container& container, const char* sep) {
+::std::function<::std::ostream&(::std::ostream&)> Joiner(const Container& container,
+                                                         const char* sep) {
   using std::begin;
   using std::end;
   const auto begin_iter = begin(container);
@@ -140,32 +126,19 @@
   };
 }
 
-/**
- * Helper method to extract a UTF-16 string from a StringPool. If the string is
- * stored as UTF-8,
- * the conversion to UTF-16 happens within ResStringPool.
- */
+// Helper method to extract a UTF-16 string from a StringPool. If the string is stored as UTF-8,
+// the conversion to UTF-16 happens within ResStringPool.
 android::StringPiece16 GetString16(const android::ResStringPool& pool, size_t idx);
 
-/**
- * Helper method to extract a UTF-8 string from a StringPool. If the string is
- * stored as UTF-16,
- * the conversion from UTF-16 to UTF-8 does not happen in ResStringPool and is
- * done by this method,
- * which maintains no state or cache. This means we must return an std::string
- * copy.
- */
+// Helper method to extract a UTF-8 string from a StringPool. If the string is stored as UTF-16,
+// the conversion from UTF-16 to UTF-8 does not happen in ResStringPool and is done by this method,
+// which maintains no state or cache. This means we must return an std::string copy.
 std::string GetString(const android::ResStringPool& pool, size_t idx);
 
-/**
- * Checks that the Java string format contains no non-positional arguments
- * (arguments without
- * explicitly specifying an index) when there are more than one argument. This
- * is an error
- * because translations may rearrange the order of the arguments in the string,
- * which will
- * break the string interpolation.
- */
+// Checks that the Java string format contains no non-positional arguments (arguments without
+// explicitly specifying an index) when there are more than one argument. This is an error
+// because translations may rearrange the order of the arguments in the string, which will
+// break the string interpolation.
 bool VerifyJavaStringFormat(const android::StringPiece& str);
 
 class StringBuilder {
@@ -194,36 +167,38 @@
   std::string error_;
 };
 
-inline const std::string& StringBuilder::ToString() const { return str_; }
+inline const std::string& StringBuilder::ToString() const {
+  return str_;
+}
 
-inline const std::string& StringBuilder::Error() const { return error_; }
+inline const std::string& StringBuilder::Error() const {
+  return error_;
+}
 
-inline bool StringBuilder::IsEmpty() const { return str_.empty(); }
+inline bool StringBuilder::IsEmpty() const {
+  return str_.empty();
+}
 
-inline size_t StringBuilder::Utf16Len() const { return utf16_len_; }
+inline size_t StringBuilder::Utf16Len() const {
+  return utf16_len_;
+}
 
-inline StringBuilder::operator bool() const { return error_.empty(); }
+inline StringBuilder::operator bool() const {
+  return error_.empty();
+}
 
-/**
- * Converts a UTF8 string to a UTF16 string.
- */
+// Converts a UTF8 string to a UTF16 string.
 std::u16string Utf8ToUtf16(const android::StringPiece& utf8);
 std::string Utf16ToUtf8(const android::StringPiece16& utf16);
 
-/**
- * Writes the entire BigBuffer to the output stream.
- */
+// Writes the entire BigBuffer to the output stream.
 bool WriteAll(std::ostream& out, const BigBuffer& buffer);
 
-/*
- * Copies the entire BigBuffer into a single buffer.
- */
+// Copies the entire BigBuffer into a single buffer.
 std::unique_ptr<uint8_t[]> Copy(const BigBuffer& buffer);
 
-/**
- * A Tokenizer implemented as an iterable collection. It does not allocate
- * any memory on the heap nor use standard containers.
- */
+// A Tokenizer implemented as an iterable collection. It does not allocate any memory on the heap
+// nor use standard containers.
 class Tokenizer {
  public:
   class iterator {
@@ -269,38 +244,42 @@
   const iterator end_;
 };
 
-inline Tokenizer Tokenize(const android::StringPiece& str, char sep) { return Tokenizer(str, sep); }
+inline Tokenizer Tokenize(const android::StringPiece& str, char sep) {
+  return Tokenizer(str, sep);
+}
 
-inline uint16_t HostToDevice16(uint16_t value) { return htods(value); }
+inline uint16_t HostToDevice16(uint16_t value) {
+  return htods(value);
+}
 
-inline uint32_t HostToDevice32(uint32_t value) { return htodl(value); }
+inline uint32_t HostToDevice32(uint32_t value) {
+  return htodl(value);
+}
 
-inline uint16_t DeviceToHost16(uint16_t value) { return dtohs(value); }
+inline uint16_t DeviceToHost16(uint16_t value) {
+  return dtohs(value);
+}
 
-inline uint32_t DeviceToHost32(uint32_t value) { return dtohl(value); }
+inline uint32_t DeviceToHost32(uint32_t value) {
+  return dtohl(value);
+}
 
-/**
- * Given a path like: res/xml-sw600dp/foo.xml
- *
- * Extracts "res/xml-sw600dp/" into outPrefix.
- * Extracts "foo" into outEntry.
- * Extracts ".xml" into outSuffix.
- *
- * Returns true if successful.
- */
+// Given a path like: res/xml-sw600dp/foo.xml
+//
+// Extracts "res/xml-sw600dp/" into outPrefix.
+// Extracts "foo" into outEntry.
+// Extracts ".xml" into outSuffix.
+//
+// Returns true if successful.
 bool ExtractResFilePathParts(const android::StringPiece& path, android::StringPiece* out_prefix,
                              android::StringPiece* out_entry, android::StringPiece* out_suffix);
 
 }  // namespace util
 
-/**
- * Stream operator for functions. Calls the function with the stream as an
- * argument.
- * In the aapt namespace for lookup.
- */
-inline ::std::ostream& operator<<(
-    ::std::ostream& out,
-    const ::std::function<::std::ostream&(::std::ostream&)>& f) {
+// Stream operator for functions. Calls the function with the stream as an argument.
+// In the aapt namespace for lookup.
+inline ::std::ostream& operator<<(::std::ostream& out,
+                                  const ::std::function<::std::ostream&(::std::ostream&)>& f) {
   return f(out);
 }
 
diff --git a/tools/aapt2/util/Util_test.cpp b/tools/aapt2/util/Util_test.cpp
index adb5291..2d1242a 100644
--- a/tools/aapt2/util/Util_test.cpp
+++ b/tools/aapt2/util/Util_test.cpp
@@ -117,24 +117,46 @@
   EXPECT_TRUE(util::IsJavaClassName("android.test.Class$Inner"));
   EXPECT_TRUE(util::IsJavaClassName("android_test.test.Class"));
   EXPECT_TRUE(util::IsJavaClassName("_android_.test._Class_"));
-  EXPECT_FALSE(util::IsJavaClassName("android.test.$Inner"));
-  EXPECT_FALSE(util::IsJavaClassName("android.test.Inner$"));
+  EXPECT_TRUE(util::IsJavaClassName("android.test.$Inner"));
+  EXPECT_TRUE(util::IsJavaClassName("android.test.Inner$"));
+  EXPECT_TRUE(util::IsJavaClassName("com.foo.FøøBar"));
+
   EXPECT_FALSE(util::IsJavaClassName(".test.Class"));
   EXPECT_FALSE(util::IsJavaClassName("android"));
+  EXPECT_FALSE(util::IsJavaClassName("FooBar"));
 }
 
 TEST(UtilTest, IsJavaPackageName) {
   EXPECT_TRUE(util::IsJavaPackageName("android"));
   EXPECT_TRUE(util::IsJavaPackageName("android.test"));
   EXPECT_TRUE(util::IsJavaPackageName("android.test_thing"));
-  EXPECT_FALSE(util::IsJavaPackageName("_android"));
-  EXPECT_FALSE(util::IsJavaPackageName("android_"));
+  EXPECT_TRUE(util::IsJavaPackageName("_android"));
+  EXPECT_TRUE(util::IsJavaPackageName("android_"));
+  EXPECT_TRUE(util::IsJavaPackageName("android._test"));
+  EXPECT_TRUE(util::IsJavaPackageName("cøm.foo"));
+
   EXPECT_FALSE(util::IsJavaPackageName("android."));
   EXPECT_FALSE(util::IsJavaPackageName(".android"));
-  EXPECT_FALSE(util::IsJavaPackageName("android._test"));
   EXPECT_FALSE(util::IsJavaPackageName(".."));
 }
 
+TEST(UtilTest, IsAndroidPackageName) {
+  EXPECT_TRUE(util::IsAndroidPackageName("android"));
+  EXPECT_TRUE(util::IsAndroidPackageName("android.test"));
+  EXPECT_TRUE(util::IsAndroidPackageName("com.foo"));
+  EXPECT_TRUE(util::IsAndroidPackageName("com.foo.test_thing"));
+  EXPECT_TRUE(util::IsAndroidPackageName("com.foo.testing_thing_"));
+  EXPECT_TRUE(util::IsAndroidPackageName("com.foo.test_99_"));
+
+  EXPECT_FALSE(util::IsAndroidPackageName("android._test"));
+  EXPECT_FALSE(util::IsAndroidPackageName("com"));
+  EXPECT_FALSE(util::IsAndroidPackageName("_android"));
+  EXPECT_FALSE(util::IsAndroidPackageName("android."));
+  EXPECT_FALSE(util::IsAndroidPackageName(".android"));
+  EXPECT_FALSE(util::IsAndroidPackageName(".."));
+  EXPECT_FALSE(util::IsAndroidPackageName("cøm.foo"));
+}
+
 TEST(UtilTest, FullyQualifiedClassName) {
   EXPECT_THAT(util::GetFullyQualifiedClassName("android", ".asdf"), Eq("android.asdf"));
   EXPECT_THAT(util::GetFullyQualifiedClassName("android", ".a.b"), Eq("android.a.b"));
diff --git a/tools/aapt2/xml/XmlActionExecutor.cpp b/tools/aapt2/xml/XmlActionExecutor.cpp
index cc664a5..cb844f0 100644
--- a/tools/aapt2/xml/XmlActionExecutor.cpp
+++ b/tools/aapt2/xml/XmlActionExecutor.cpp
@@ -16,6 +16,8 @@
 
 #include "xml/XmlActionExecutor.h"
 
+using ::android::StringPiece;
+
 namespace aapt {
 namespace xml {
 
@@ -46,8 +48,8 @@
   *msg << el->name << ">";
 }
 
-bool XmlNodeAction::Execute(XmlActionExecutorPolicy policy, SourcePathDiagnostics* diag,
-                            Element* el) const {
+bool XmlNodeAction::Execute(XmlActionExecutorPolicy policy, std::vector<StringPiece>* bread_crumb,
+                            SourcePathDiagnostics* diag, Element* el) const {
   bool error = false;
   for (const ActionFuncWithDiag& action : actions_) {
     error |= !action(el, diag);
@@ -57,17 +59,29 @@
     if (child_el->namespace_uri.empty()) {
       std::map<std::string, XmlNodeAction>::const_iterator iter = map_.find(child_el->name);
       if (iter != map_.end()) {
-        error |= !iter->second.Execute(policy, diag, child_el);
+        // Use the iterator's copy of the element name, because the element may be modified.
+        bread_crumb->push_back(iter->first);
+        error |= !iter->second.Execute(policy, bread_crumb, diag, child_el);
+        bread_crumb->pop_back();
         continue;
       }
 
-      if (policy == XmlActionExecutorPolicy::kWhitelist) {
+      if (policy != XmlActionExecutorPolicy::kNone) {
         DiagMessage error_msg(child_el->line_number);
-        error_msg << "unknown element ";
+        error_msg << "unexpected element ";
         PrintElementToDiagMessage(child_el, &error_msg);
-        error_msg << " found";
-        diag->Error(error_msg);
-        error = true;
+        error_msg << " found in ";
+        for (const StringPiece& element : *bread_crumb) {
+          error_msg << "<" << element << ">";
+        }
+        if (policy == XmlActionExecutorPolicy::kWhitelistWarning) {
+          // Treat the error only as a warning.
+          diag->Warn(error_msg);
+        } else {
+          // Policy is XmlActionExecutorPolicy::kWhitelist, we should fail.
+          diag->Error(error_msg);
+          error = true;
+        }
       }
     }
   }
@@ -90,14 +104,15 @@
   if (el->namespace_uri.empty()) {
     std::map<std::string, XmlNodeAction>::const_iterator iter = map_.find(el->name);
     if (iter != map_.end()) {
-      return iter->second.Execute(policy, &source_diag, el);
+      std::vector<StringPiece> bread_crumb;
+      bread_crumb.push_back(iter->first);
+      return iter->second.Execute(policy, &bread_crumb, &source_diag, el);
     }
 
     if (policy == XmlActionExecutorPolicy::kWhitelist) {
       DiagMessage error_msg(el->line_number);
-      error_msg << "unknown element ";
+      error_msg << "unexpected root element ";
       PrintElementToDiagMessage(el, &error_msg);
-      error_msg << " found";
       source_diag.Error(error_msg);
       return false;
     }
diff --git a/tools/aapt2/xml/XmlActionExecutor.h b/tools/aapt2/xml/XmlActionExecutor.h
index 1d70045..f689b2a 100644
--- a/tools/aapt2/xml/XmlActionExecutor.h
+++ b/tools/aapt2/xml/XmlActionExecutor.h
@@ -34,62 +34,57 @@
   // Actions are run if elements are matched, errors occur only when actions return false.
   kNone,
 
-  // The actions defined must match and run. If an element is found that does
-  // not match an action, an error occurs.
+  // The actions defined must match and run. If an element is found that does not match an action,
+  // an error occurs.
   // Note: namespaced elements are always ignored.
   kWhitelist,
+
+  // The actions defined should match and run. if an element is found that does not match an
+  // action, a warning is printed.
+  // Note: namespaced elements are always ignored.
+  kWhitelistWarning,
 };
 
-/**
- * Contains the actions to perform at this XML node. This is a recursive data
- * structure that
- * holds XmlNodeActions for child XML nodes.
- */
+// Contains the actions to perform at this XML node. This is a recursive data structure that
+// holds XmlNodeActions for child XML nodes.
 class XmlNodeAction {
  public:
   using ActionFuncWithDiag = std::function<bool(Element*, SourcePathDiagnostics*)>;
   using ActionFunc = std::function<bool(Element*)>;
 
-  /**
-   * Find or create a child XmlNodeAction that will be performed for the child
-   * element with the name `name`.
-   */
-  XmlNodeAction& operator[](const std::string& name) { return map_[name]; }
+  // Find or create a child XmlNodeAction that will be performed for the child element with the
+  // name `name`.
+  XmlNodeAction& operator[](const std::string& name) {
+    return map_[name];
+  }
 
-  /**
-   * Add an action to be performed at this XmlNodeAction.
-   */
+  // Add an action to be performed at this XmlNodeAction.
   void Action(ActionFunc f);
   void Action(ActionFuncWithDiag);
 
  private:
   friend class XmlActionExecutor;
 
-  bool Execute(XmlActionExecutorPolicy policy, SourcePathDiagnostics* diag, Element* el) const;
+  bool Execute(XmlActionExecutorPolicy policy, std::vector<::android::StringPiece>* bread_crumb,
+               SourcePathDiagnostics* diag, Element* el) const;
 
   std::map<std::string, XmlNodeAction> map_;
   std::vector<ActionFuncWithDiag> actions_;
 };
 
-/**
- * Allows the definition of actions to execute at specific XML elements defined
- * by their
- * hierarchy.
- */
+// Allows the definition of actions to execute at specific XML elements defined by their hierarchy.
 class XmlActionExecutor {
  public:
   XmlActionExecutor() = default;
 
-  /**
-   * Find or create a root XmlNodeAction that will be performed for the root XML
-   * element with the name `name`.
-   */
-  XmlNodeAction& operator[](const std::string& name) { return map_[name]; }
+  // Find or create a root XmlNodeAction that will be performed for the root XML element with the
+  // name `name`.
+  XmlNodeAction& operator[](const std::string& name) {
+    return map_[name];
+  }
 
-  /**
-   * Execute the defined actions for this XmlResource.
-   * Returns true if all actions return true, otherwise returns false.
-   */
+  // Execute the defined actions for this XmlResource.
+  // Returns true if all actions return true, otherwise returns false.
   bool Execute(XmlActionExecutorPolicy policy, IDiagnostics* diag, XmlResource* doc) const;
 
  private:
diff --git a/tools/aapt2/xml/XmlActionExecutor_test.cpp b/tools/aapt2/xml/XmlActionExecutor_test.cpp
index 0fe7ab0..d39854e 100644
--- a/tools/aapt2/xml/XmlActionExecutor_test.cpp
+++ b/tools/aapt2/xml/XmlActionExecutor_test.cpp
@@ -56,9 +56,13 @@
   XmlActionExecutor executor;
   executor["manifest"]["application"];
 
-  std::unique_ptr<XmlResource> doc =
-      test::BuildXmlDom("<manifest><application /><activity /></manifest>");
+  std::unique_ptr<XmlResource> doc;
   StdErrDiagnostics diag;
+
+  doc = test::BuildXmlDom("<manifest><application /><activity /></manifest>");
+  ASSERT_FALSE(executor.Execute(XmlActionExecutorPolicy::kWhitelist, &diag, doc.get()));
+
+  doc = test::BuildXmlDom("<manifest><application><activity /></application></manifest>");
   ASSERT_FALSE(executor.Execute(XmlActionExecutorPolicy::kWhitelist, &diag, doc.get()));
 }
 
diff --git a/tools/aapt2/xml/XmlDom.cpp b/tools/aapt2/xml/XmlDom.cpp
index 1d122db..22767781 100644
--- a/tools/aapt2/xml/XmlDom.cpp
+++ b/tools/aapt2/xml/XmlDom.cpp
@@ -394,6 +394,15 @@
   return nullptr;
 }
 
+void Element::RemoveAttribute(const StringPiece& ns, const StringPiece& name) {
+  auto new_attr_end = std::remove_if(attributes.begin(), attributes.end(),
+    [&](const Attribute& attr) -> bool {
+      return ns == attr.namespace_uri && name == attr.name;
+    });
+
+  attributes.erase(new_attr_end, attributes.end());
+}
+
 Element* Element::FindChild(const StringPiece& ns, const StringPiece& name) {
   return FindChildWithAttribute(ns, name, {}, {}, {});
 }
diff --git a/tools/aapt2/xml/XmlDom.h b/tools/aapt2/xml/XmlDom.h
index 1542243..995cdb24 100644
--- a/tools/aapt2/xml/XmlDom.h
+++ b/tools/aapt2/xml/XmlDom.h
@@ -98,6 +98,9 @@
   Attribute* FindAttribute(const android::StringPiece& ns, const android::StringPiece& name);
   const Attribute* FindAttribute(const android::StringPiece& ns,
                                  const android::StringPiece& name) const;
+  void RemoveAttribute(const android::StringPiece& ns,
+                       const android::StringPiece& name);
+
   Element* FindChild(const android::StringPiece& ns, const android::StringPiece& name);
   Element* FindChildWithAttribute(const android::StringPiece& ns, const android::StringPiece& name,
                                   const android::StringPiece& attr_ns,
diff --git a/tools/incident_report/main.cpp b/tools/incident_report/main.cpp
index 1d8809f6..4b67a3e98 100644
--- a/tools/incident_report/main.cpp
+++ b/tools/incident_report/main.cpp
@@ -529,6 +529,7 @@
             args[argpos++] = NULL;
             execvp(args[0], (char*const*)args);
             fprintf(stderr, "execvp failed: %s\n", strerror(errno));
+            free(args);
             return 0;
         } else {
             // parent