非 SDK 接口在 Android Q 中的受限情况出现变化

为了帮助确保应用稳定性和兼容性,Android 平台开始限制您的应用可在 Android 9(API 级别 28)中使用哪些非 SDK 接口。Android Q 包含更新后的受限非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。我们的目标是在限制使用非 SDK 接口之前确保有可用的公开替代方案。

如果您不打算以 Android Q 为目标平台,那么其中一些变更可能不会立即对您产生影响。虽然您目前可以使用灰名单中的一些非 SDK 接口(取决于您应用的目标 API 级别),但如果您使用任何非 SDK 方法或字段,则应用无法运行的风险终归较高。

如果您不确定自己的应用是否使用了非 SDK 接口,则可以测试该应用进行确认。如果您的应用依赖于非 SDK 接口,则应该开始计划迁移到 SDK 替代方案。不过,我们知道某些应用具有使用非 SDK 接口的有效用例。如果您无法为应用中的某项功能找到使用非 SDK 接口的替代方案,则应该请求新的公共 API

浅灰和深灰列表的命名发生变化

在 Android 9(API 级别 28)中,灰名单分为以下两个列表:

  • 包含非 SDK 接口(无论目标 API 级别是什么,您都可以使用这些接口)的浅灰列表。
  • 包含非 SDK 接口(如果您应用的目标 API 级别是 28 或更高,您将无法使用这些接口)的深灰列表。

在 Android Q 中,我们现在将这两个列表都称为灰名单,但列入灰名单且受目标 API 级别限制的非 SDK 接口(之前列入浅灰列表)现在也会由可在其中使用此类接口的最高目标 SDK 版本引用。

示例

如果某个非 SDK 接口列在 Android 9(API 级别 28)的深灰列表中,则该接口现在位于 greylist-max-o 列表中,其中“o”代表 Oreo 或 Android 8.1(API 级别 27)。在这种情况下,如果您的应用以 Android 8.1(API 级别 27)或更低版本为目标平台,您将只能使用属于 greylist-max-o 列表的接口。

同样,如果某个列入灰名单的非 SDK 接口之前未在 Android Pie 中受限,但现在却在 Android Q 中受限,则该接口位于 greylist-max-p 列表中,其中“p”代表 Pie 或 Android 9(API 级别 28)。

通过这些名称,您应该可以深入了解可在其中使用某个已列入灰名单的 API 的最高目标 SDK 级别(在该 API 受相应平台的限制之前)。

非 SDK 接口的代码注释

除了列表名称发生变化之外,现在可使用以下注释在代码中为许多非 SDK 接口添加注释。

注释 含义
@UnsupportedAppUsage 不受限制的灰名单
@UnsupportedAppUsage(maxTargetSdk = 0) 黑名单
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.O) 受限制的灰名单。仅供以 Android 8.1 Oreo(API 级别 27)或更低版本为目标平台的应用进行访问。
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) 受限制的灰名单。仅供以 Android 9 Pie(API 级别 28)或更低版本为目标平台的应用进行访问。

由于 Android 8.1 Oreo(API 级别 27)的受限灰名单中有大量非 SDK 接口,因此该列表中的很多接口未添加注释。虽然这些新注释可以提供快速参考点,但如果您不确定自己的应用是否会使用非 SDK 接口,则应测试该应用

在 Android Q 中授予对非 SDK 接口的访问权限

在 Android Q 中,可用于授予对非 SDK 接口的访问权限的命令已更改。您可以更改 API 强制执行政策,以允许在开发设备上访问非 SDK 接口。为此,请使用以下 ADB 命令:

    adb shell settings put global hidden_api_policy  1
    

要将 API 强制执行政策重置为默认设置,请使用以下命令:

    adb shell settings delete global hidden_api_policy
    

这些命令无需设备启用 root 权限即可执行。

您可以将 API 强制执行政策中的整数设置为以下某个值:

  • 0:停用所有非 SDK 接口检测。如果使用此设置,系统会停止输出有关非 SDK 接口使用情况的所有日志消息,并阻止您使用 StrictMode API 测试应用。建议不要使用此设置。
  • 1:允许访问所有非 SDK 接口,但同时输出日志消息,并且在其中显示针对所有非 SDK 接口使用情况的警告。如果使用此设置,您还可以使用 StrictMode API 测试应用。
  • 2:禁止使用已针对您的目标 API 级别列入黑名单或受限灰名单的非 SDK 接口。

Android Q 的列表更改

本部分介绍了 Android 9(API 级别 28)中列入灰名单的非 SDK 接口;这些接口目前在 Android Q 中受限,或已添加到 Android Q 中的 Android SDK(白名单)中。

目前在 Android Q 中受限的灰名单中的非 SDK 接口

以下代码框列出了 Android 9(API 级别 28)中列入灰名单的所有非 SDK 接口;这些接口目前在 Android Q 中受限。建议尽可能使用备选 API。我们注意到接口存在误报问题,因为我们原本认为这些接口可能正在使用中,而事实证明并非如此。每个接口占一行。

我们的目标是在限制使用非 SDK 接口之前确保有可用的公开替代方案,并且我们知道您的应用可能具有使用这些接口的有效用例。如果您当前在 Android 9 中使用的某个接口现在受限,则应该针对该接口请求新的公共 API

Landroid/accessibilityservice/AccessibilityService;->mWindowToken:Landroid/os/IBinder;   # False Positive
    Landroid/accounts/AccountManager$AmsTask;->mActivity:Landroid/app/Activity;   # False Positive
    Landroid/accounts/AccountManager$AmsTask;->mHandler:Landroid/os/Handler;   # False Positive
    Landroid/accounts/AccountManager$AmsTask;->mResponse:Landroid/accounts/IAccountManagerResponse;   # False Positive
    Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mAuthTokenType:Ljava/lang/String;   # False Positive
    Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mLoginOptions:Landroid/os/Bundle;   # False Positive
    Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mMyCallback:Landroid/accounts/AccountManagerCallback;   # False Positive
    Landroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;)V   # False Positive
    Landroid/animation/LayoutTransition;->cancel()V   # This is used by androidx.transitions only for the API levels less than 18, so it is safe to restrict it after P. If developers are using it directly we encourage them to migrate to AndroidX Transition library instead
    Landroid/animation/LayoutTransition;->cancel(I)V
    Landroid/animation/ValueAnimator;->sDurationScale:F
    Landroid/app/Activity;->mVisibleFromClient:Z   # False Positive
    Landroid/app/Activity;->mVoiceInteractor:Landroid/app/VoiceInteractor;   # False Positive
    Landroid/app/Activity;->setParent(Landroid/app/Activity;)V   # False Positive
    Landroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I   # False Positive
    Landroid/app/ActivityThread$ActivityClientRecord;-><init>()V   # False Positive
    Landroid/app/ActivityThread$AppBindData;->compatInfo:Landroid/content/res/CompatibilityInfo;   # False Positive
    Landroid/app/ActivityThread;->getPackageInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;I)Landroid/app/LoadedApk;   # False Positive
    Landroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V   # False Positive
    Landroid/app/ActivityThread;->mLocalProviders:Landroid/util/ArrayMap;   # False Positive
    Landroid/app/ActivityThread;->mResourcesManager:Landroid/app/ResourcesManager;   # False Positive
    Landroid/app/ActivityThread;->peekPackageInfo(Ljava/lang/String;Z)Landroid/app/LoadedApk;   # False Positive
    Landroid/app/ActivityThread;->sMainThreadHandler:Landroid/os/Handler;   # False Positive
    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;   # False Positive
    Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->tag:Ljava/lang/String;   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordHistoryLength(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLength(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLetters(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumNumeric(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumSymbols(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I   # False Positive
    Landroid/app/assist/AssistContent;->mClipData:Landroid/content/ClipData;   # False Positive
    Landroid/app/assist/AssistContent;->mExtras:Landroid/os/Bundle;   # False Positive
    Landroid/app/assist/AssistContent;->mIntent:Landroid/content/Intent;   # False Positive
    Landroid/app/assist/AssistContent;->mIsAppProvidedIntent:Z   # False Positive
    Landroid/app/assist/AssistContent;->mStructuredData:Ljava/lang/String;   # False Positive
    Landroid/app/assist/AssistContent;->mUri:Landroid/net/Uri;   # False Positive
    Landroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V   # False Positive
    Landroid/app/ContentProviderHolder;->noReleaseNeeded:Z   # False Positive
    Landroid/app/ContextImpl;->mFlags:I   # False Positive
    Landroid/app/ContextImpl;->mOpPackageName:Ljava/lang/String;   # False Positive
    Landroid/app/ContextImpl;->mSharedPrefsPaths:Landroid/util/ArrayMap;   # False Positive
    Landroid/app/Dialog;->CANCEL:I   # False Positive
    Landroid/app/Dialog;->mHandler:Landroid/os/Handler;   # False Positive
    Landroid/app/DownloadManager$Query;->orderBy(Ljava/lang/String;I)Landroid/app/DownloadManager$Query;   # False Positive
    Landroid/app/DownloadManager;->setAccessFilename(Z)V   # False Positive
    Landroid/app/Fragment;->mView:Landroid/view/View;   # False Positive
    Landroid/app/Fragment;->sClassMap:Landroid/util/ArrayMap;   # False Positive
    Landroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
    Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V   # False Positive
    Landroid/app/ISearchManager$Stub;-><init>()V
    Landroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
    Landroid/app/IUiModeManager;->disableCarMode(I)V
    Landroid/app/job/JobInfo;->flags:I   # False Positive
    Landroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/app/job/JobWorkItem;->mDeliveryCount:I   # False Positive
    Landroid/app/job/JobWorkItem;->mGrants:Ljava/lang/Object;   # False Positive
    Landroid/app/job/JobWorkItem;->mIntent:Landroid/content/Intent;   # False Positive
    Landroid/app/job/JobWorkItem;->mWorkId:I   # False Positive
    Landroid/app/KeyguardManager;->isDeviceLocked(I)Z   # False Positive
    Landroid/app/LoadedApk$ReceiverDispatcher;->mContext:Landroid/content/Context;   # False Positive
    Landroid/app/LoadedApk$ServiceDispatcher;->mContext:Landroid/content/Context;   # False Positive
    Landroid/app/LoadedApk;->mDataDirFile:Ljava/io/File;   # False Positive
    Landroid/app/LoadedApk;->mServices:Landroid/util/ArrayMap;   # False Positive
    Landroid/app/Notification$Action;->mIcon:Landroid/graphics/drawable/Icon;   # False Positive
    Landroid/app/ProgressDialog;->mProgress:Landroid/widget/ProgressBar;   # False Positive
    Landroid/app/ResultInfo;->CREATOR:Landroid/os/Parcelable$Creator;   # False Positive
    Landroid/app/UiAutomation;-><init>(Landroid/os/Looper;Landroid/app/IUiAutomationConnection;)V   # False Positive
    Landroid/app/UiAutomation;->connect()V   # False Positive
    Landroid/app/UiAutomation;->disconnect()V   # False Positive
    Landroid/app/usage/ConfigurationStats;->mActivationCount:I   # False Positive
    Landroid/app/usage/ConfigurationStats;->mBeginTimeStamp:J   # False Positive
    Landroid/app/usage/ConfigurationStats;->mConfiguration:Landroid/content/res/Configuration;   # False Positive
    Landroid/app/usage/ConfigurationStats;->mEndTimeStamp:J   # False Positive
    Landroid/app/usage/ConfigurationStats;->mLastTimeActive:J   # False Positive
    Landroid/app/usage/ConfigurationStats;->mTotalTimeActive:J   # False Positive
    Landroid/app/usage/UsageEvents$Event;->mClass:Ljava/lang/String;   # False Positive
    Landroid/app/usage/UsageEvents$Event;->mConfiguration:Landroid/content/res/Configuration;   # False Positive
    Landroid/app/usage/UsageEvents$Event;->mEventType:I   # False Positive
    Landroid/app/usage/UsageEvents$Event;->mPackage:Ljava/lang/String;   # False Positive
    Landroid/app/usage/UsageEvents$Event;->mTimeStamp:J   # False Positive
    Landroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/app/usage/UsageEvents;->findStringIndex(Ljava/lang/String;)I   # False Positive
    Landroid/app/usage/UsageEvents;->mEventCount:I   # False Positive
    Landroid/app/usage/UsageEvents;->mEventsToWrite:Ljava/util/List;   # False Positive
    Landroid/app/usage/UsageEvents;->mIndex:I   # False Positive
    Landroid/app/usage/UsageEvents;->mStringPool:[Ljava/lang/String;   # False Positive
    Landroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V   # False Positive
    Landroid/app/usage/UsageEvents;->writeEventToParcel(Landroid/app/usage/UsageEvents$Event;Landroid/os/Parcel;I)V   # False Positive
    Landroid/app/usage/UsageStats;->mBeginTimeStamp:J   # False Positive
    Landroid/app/usage/UsageStats;->mEndTimeStamp:J   # False Positive
    Landroid/app/usage/UsageStats;->mLastTimeUsed:J   # False Positive
    Landroid/app/usage/UsageStats;->mPackageName:Ljava/lang/String;   # False Positive
    Landroid/app/usage/UsageStatsManager;->mContext:Landroid/content/Context;   # False Positive
    Landroid/app/usage/UsageStatsManager;->sEmptyResults:Landroid/app/usage/UsageEvents;   # False Positive
    Landroid/app/WallpaperManager;->setBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;ZII)I   # False Positive
    Landroid/bluetooth/BluetoothA2dp;->getPriority(Landroid/bluetooth/BluetoothDevice;)I   # False Positive
    Landroid/bluetooth/BluetoothA2dp;->stateToString(I)Ljava/lang/String;   # False Positive
    Landroid/bluetooth/BluetoothClass;-><init>(I)V   # False Positive
    Landroid/bluetooth/BluetoothGatt;->mAuthRetryState:I   # False Positive
    Landroid/bluetooth/BluetoothProfile;->PAN:I   # False Positive
    Landroid/bluetooth/BluetoothUuid;->AdvAudioDist:Landroid/os/ParcelUuid;   # False Positive
    Landroid/bluetooth/BluetoothUuid;->AudioSink:Landroid/os/ParcelUuid;   # False Positive
    Landroid/bluetooth/BluetoothUuid;->Handsfree:Landroid/os/ParcelUuid;   # False Positive
    Landroid/bluetooth/BluetoothUuid;->HSP:Landroid/os/ParcelUuid;   # False Positive
    Landroid/bluetooth/IBluetooth$Stub;-><init>()V
    Landroid/bluetooth/IBluetoothA2dp$Stub;-><init>()V
    Landroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V   # False Positive
    Landroid/content/BroadcastReceiver$PendingResult;->mFlags:I   # False Positive
    Landroid/content/BroadcastReceiver$PendingResult;->mResultCode:I   # False Positive
    Landroid/content/BroadcastReceiver$PendingResult;->mResultData:Ljava/lang/String;   # False Positive
    Landroid/content/BroadcastReceiver$PendingResult;->mToken:Landroid/os/IBinder;   # False Positive
    Landroid/content/BroadcastReceiver$PendingResult;->mType:I   # False Positive
    Landroid/content/ClipData$Item;->mUri:Landroid/net/Uri;   # False Positive
    Landroid/content/ContentProvider;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Landroid/content/pm/PathPermission;)V   # False Positive
    Landroid/content/ContentProviderClient;->mPackageName:Ljava/lang/String;   # False Positive
    Landroid/content/Context;->COUNTRY_DETECTOR:Ljava/lang/String;   # False Positive
    Landroid/content/Entity;->mSubValues:Ljava/util/ArrayList;   # False Positive
    Landroid/content/Entity;->mValues:Landroid/content/ContentValues;   # False Positive
    Landroid/content/IContentProvider;->descriptor:Ljava/lang/String;   # False Positive
    Landroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver;
    Landroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
    Landroid/content/IntentFilter;->isVerified()Z   # False Positive
    Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->mPM:Landroid/content/pm/PackageManager;   # False Positive
    Landroid/content/pm/ApplicationInfo$DisplayNameComparator;->sCollator:Ljava/text/Collator;   # False Positive
    Landroid/content/pm/ApplicationInfo;->disableCompatibilityMode()V   # False Positive
    Landroid/content/pm/ApplicationInfo;->isPackageUnavailable(Landroid/content/pm/PackageManager;)Z   # False Positive
    Landroid/content/pm/LauncherApps;->mService:Landroid/content/pm/ILauncherApps;   # False Positive
    Landroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/content/pm/PackageInfoLite;->CREATOR:Landroid/os/Parcelable$Creator;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->active:Z   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->appIcon:Landroid/graphics/Bitmap;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->appLabel:Ljava/lang/CharSequence;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->appPackageName:Ljava/lang/String;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->installerPackageName:Ljava/lang/String;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->mode:I   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->progress:F   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->sessionId:I   # False Positive
    Landroid/content/pm/PackageInstaller$SessionInfo;->sizeBytes:J   # False Positive
    Landroid/content/pm/PackageInstaller$SessionParams;->appLabel:Ljava/lang/String;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionParams;->appPackageName:Ljava/lang/String;   # False Positive
    Landroid/content/pm/PackageInstaller$SessionParams;->mode:I   # False Positive
    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;   # False Positive
    Landroid/content/pm/PackageStats;->userHandle:I   # False Positive
    Landroid/content/pm/ParceledListSlice;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;   # False Positive
    Landroid/content/pm/ShortcutInfo;->getIcon()Landroid/graphics/drawable/Icon;   # False Positive
    Landroid/content/pm/ShortcutManager;->mService:Landroid/content/pm/IShortcutService;   # False Positive
    Landroid/content/res/CompatibilityInfo;->CREATOR:Landroid/os/Parcelable$Creator;   # False Positive
    Landroid/content/RestrictionsManager;->mService:Landroid/content/IRestrictionsManager;   # False Positive
    Landroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;)V   # False Positive
    Landroid/content/SyncAdapterType;->supportsUploading:Z   # False Positive
    Landroid/content/SyncAdapterType;->userVisible:Z   # False Positive
    Landroid/content/SyncInfo;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/content/SyncRequest;->mAuthority:Ljava/lang/String;   # False Positive
    Landroid/content/SyncRequest;->mExtras:Landroid/os/Bundle;   # False Positive
    Landroid/database/AbstractCursor;->mExtras:Landroid/os/Bundle;   # False Positive
    Landroid/database/DatabaseUtils;->getTypeOfObject(Ljava/lang/Object;)I   # False Positive
    Landroid/database/MatrixCursor;->data:[Ljava/lang/Object;   # False Positive
    Landroid/database/MatrixCursor;->rowCount:I   # False Positive
    Landroid/database/sqlite/SQLiteCustomFunction;->name:Ljava/lang/String;   # False Positive
    Landroid/database/sqlite/SQLiteQueryBuilder;->computeProjection([Ljava/lang/String;)[Ljava/lang/String;   # False Positive
    Landroid/database/sqlite/SQLiteQueryBuilder;->mDistinct:Z   # False Positive
    Landroid/database/sqlite/SQLiteQueryBuilder;->mTables:Ljava/lang/String;   # False Positive
    Landroid/database/sqlite/SQLiteQueryBuilder;->mWhereClause:Ljava/lang/StringBuilder;   # False Positive
    Landroid/graphics/Bitmap;->mNinePatchChunk:[B   # Bitmap#getNinePatchChunk already exists since API level 1
    Landroid/graphics/BitmapRegionDecoder;-><init>(J)V   # False Positive
    Landroid/graphics/Canvas;-><init>(J)V   # False Positive
    Landroid/graphics/Canvas;->mBitmap:Landroid/graphics/Bitmap;
    Landroid/graphics/drawable/AnimatedStateListDrawable;->mState:Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;   # False Positive
    Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;-><init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V   # False Positive
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mAngle:I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradient:I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradientColors:[I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mHeight:I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mInnerRadius:I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mInnerRadiusRatio:F
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mOrientation:Landroid/graphics/drawable/GradientDrawable$Orientation;
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mPadding:Landroid/graphics/Rect;
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mRadius:F
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mRadiusArray:[F
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mShape:I
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mSolidColors:Landroid/content/res/ColorStateList;
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mStrokeDashGap:F
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mStrokeDashWidth:F
    Landroid/graphics/drawable/GradientDrawable$GradientState;->mStrokeWidth:I
    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;->mGradientState:Landroid/graphics/drawable/GradientDrawable$GradientState;
    Landroid/graphics/drawable/GradientDrawable;->mPadding:Landroid/graphics/Rect;
    Landroid/graphics/drawable/Icon;->getDataBytes()[B   # False Positive
    Landroid/graphics/drawable/Icon;->getDataOffset()I   # False Positive
    Landroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources;   # False Positive
    Landroid/graphics/drawable/Icon;->mString1:Ljava/lang/String;   # False Positive
    Landroid/graphics/drawable/Icon;->mType:I   # False Positive
    Landroid/graphics/fonts/FontVariationAxis;->mTag:I   # False Positive
    Landroid/graphics/Movie;-><init>(J)V   # False Positive
    Landroid/graphics/Paint;->mTypeface:Landroid/graphics/Typeface;   # False Positive
    Landroid/graphics/Picture;->mNativePicture:J
    Landroid/graphics/Typeface;-><init>(J)V   # False Positive
    Landroid/graphics/Typeface;->setDefault(Landroid/graphics/Typeface;)V
    Landroid/hardware/Camera;->mNativeContext:J   # False Positive
    Landroid/hardware/Camera;->setPreviewSurface(Landroid/view/Surface;)V   # False Positive
    Landroid/hardware/HardwareBuffer;-><init>(J)V   # False Positive
    Landroid/hardware/input/InputManager;->mIm:Landroid/hardware/input/IInputManager;   # False Positive
    Landroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V   # False Positive
    Landroid/inputmethodservice/InputMethodService;->mTheme:I   # False Positive
    Landroid/inputmethodservice/InputMethodService;->mTmpInsets:Landroid/inputmethodservice/InputMethodService$Insets;   # False Positive
    Landroid/inputmethodservice/Keyboard;->resize(II)V   # False Positive
    Landroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V   # False Positive
    Landroid/location/GpsStatus;->setTimeToFirstFix(I)V   # False Positive
    Landroid/location/Location;->mProvider:Ljava/lang/String;   # False Positive
    Landroid/location/LocationManager;->sendNiResponse(II)Z   # False Positive
    Landroid/location/LocationRequest;->checkDisplacement(F)V   # False Positive
    Landroid/location/LocationRequest;->checkInterval(J)V   # False Positive
    Landroid/location/LocationRequest;->checkProvider(Ljava/lang/String;)V   # False Positive
    Landroid/location/LocationRequest;->checkQuality(I)V   # False Positive
    Landroid/location/LocationRequest;->mExpireAt:J   # False Positive
    Landroid/location/LocationRequest;->mExplicitFastestInterval:Z   # False Positive
    Landroid/location/LocationRequest;->mFastestInterval:J   # False Positive
    Landroid/location/LocationRequest;->mNumUpdates:I   # False Positive
    Landroid/location/LocationRequest;->mQuality:I   # False Positive
    Landroid/location/LocationRequest;->mSmallestDisplacement:F   # False Positive
    Landroid/media/AudioAttributes;->mContentType:I   # False Positive
    Landroid/media/AudioAttributes;->mFlags:I   # False Positive
    Landroid/media/AudioAttributes;->mSource:I   # False Positive
    Landroid/media/audiofx/AudioEffect;->command(I[B[B)I   # False Positive
    Landroid/media/AudioSystem;->getPrimaryOutputFrameCount()I
    Landroid/media/AudioSystem;->getPrimaryOutputSamplingRate()I
    Landroid/media/AudioTrack;->getLatency()I
    Landroid/media/CamcorderProfile;->native_init()V   # False Positive
    Landroid/media/ExifInterface;->convertRationalLatLonToFloat(Ljava/lang/String;Ljava/lang/String;)F   # False Positive
    Landroid/media/ExifInterface;->mFilename:Ljava/lang/String;   # False Positive
    Landroid/media/ExifInterface;->mHasThumbnail:Z   # False Positive
    Landroid/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat;   # False Positive
    Landroid/media/MediaCodec;->mNativeContext:J   # False Positive
    Landroid/media/MediaCodecInfo$VideoCapabilities;->create(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$VideoCapabilities;   # False Positive
    Landroid/media/MediaMetadataRetriever;->native_finalize()V   # False Positive
    Landroid/media/MediaMetadataRetriever;->native_init()V   # False Positive
    Landroid/media/MediaMetadataRetriever;->native_setup()V   # False Positive
    Landroid/media/MediaRecorder;->_prepare()V   # False Positive
    Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;   # False Positive
    Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;   # False Positive
    Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;   # False Positive
    Landroid/media/MediaRecorder;->native_finalize()V   # False Positive
    Landroid/media/MediaRecorder;->native_init()V   # False Positive
    Landroid/media/MediaRecorder;->native_reset()V   # False Positive
    Landroid/media/MediaRouter$RouteInfo;->isDefault()Z   # False Positive
    Landroid/media/PlaybackParams;->mSet:I   # False Positive
    Landroid/media/PlaybackParams;->mSpeed:F   # False Positive
    Landroid/media/ThumbnailUtils;->closeSilently(Landroid/os/ParcelFileDescriptor;)V   # False Positive
    Landroid/media/ThumbnailUtils;->computeInitialSampleSize(Landroid/graphics/BitmapFactory$Options;II)I   # False Positive
    Landroid/media/ThumbnailUtils;->computeSampleSize(Landroid/graphics/BitmapFactory$Options;II)I   # False Positive
    Landroid/media/ThumbnailUtils;->createThumbnailFromEXIF(Ljava/lang/String;IILandroid/media/ThumbnailUtils$SizedThumbnailBitmap;)V   # False Positive
    Landroid/media/ThumbnailUtils;->makeInputStream(Landroid/net/Uri;Landroid/content/ContentResolver;)Landroid/os/ParcelFileDescriptor;   # False Positive
    Landroid/media/ThumbnailUtils;->transform(Landroid/graphics/Matrix;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;   # False Positive
    Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;   # Use  getLinkProperties(getActiveNetwork())
    Landroid/net/ConnectivityManager;->unregisterNetworkFactory(Landroid/os/Messenger;)V   # False Positive
    Landroid/net/http/SslError;->mErrors:I   # False Positive
    Landroid/net/http/SslError;->mUrl:Ljava/lang/String;   # False Positive
    Landroid/net/IConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
    Landroid/net/IConnectivityManager;->reportInetCondition(II)V
    Landroid/net/LinkAddress;->address:Ljava/net/InetAddress;   # False Positive
    Landroid/net/LinkAddress;->isIPv6()Z
    Landroid/net/LinkAddress;->prefixLength:I   # False Positive
    Landroid/net/LinkProperties;->hasGlobalIPv6Address()Z
    Landroid/net/LinkProperties;->hasIPv4Address()Z
    Landroid/net/LinkProperties;->hasIPv4DefaultRoute()Z
    Landroid/net/LinkProperties;->hasIPv4DnsServer()Z
    Landroid/net/LinkProperties;->hasIPv6DefaultRoute()Z
    Landroid/net/LinkProperties;->hasIPv6DnsServer()Z
    Landroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z   # False Positive
    Landroid/net/LinkProperties;->isIPv6Provisioned()Z
    Landroid/net/LinkProperties;->mIfaceName:Ljava/lang/String;   # False Positive
    Landroid/net/NetworkAgent;->sendNetworkInfo(Landroid/net/NetworkInfo;)V   # False Positive
    Landroid/net/NetworkCapabilities;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;   # False Positive
    Landroid/net/NetworkCapabilities;->mSignalStrength:I
    Landroid/net/NetworkFactory;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V   # False Positive
    Landroid/net/NetworkFactory;->setScoreFilter(I)V   # False Positive
    Landroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V   # False Positive
    Landroid/net/NetworkPolicyManager;->unregisterListener(Landroid/net/INetworkPolicyListener;)V   # False Positive
    Landroid/net/NetworkRequest;->legacyType:I   # False Positive
    Landroid/net/NetworkState;->network:Landroid/net/Network;   # False Positive
    Landroid/net/NetworkUtils;->numericToInetAddress(Ljava/lang/String;)Ljava/net/InetAddress;
    Landroid/net/RouteInfo;->isHost()Z   # False Positive
    Landroid/net/RouteInfo;->mIsHost:Z   # False Positive
    Landroid/net/SSLCertificateSocketFactory;->getAlpnSelectedProtocol(Ljava/net/Socket;)[B   # False Positive
    Landroid/net/SSLCertificateSocketFactory;->setChannelIdPrivateKey(Ljava/security/PrivateKey;)V   # False Positive
    Landroid/net/SSLCertificateSocketFactory;->TAG:Ljava/lang/String;   # False Positive
    Landroid/net/StaticIpConfiguration;->dnsServers:Ljava/util/ArrayList;
    Landroid/net/StaticIpConfiguration;->domains:Ljava/lang/String;
    Landroid/net/StaticIpConfiguration;->gateway:Ljava/net/InetAddress;
    Landroid/net/StaticIpConfiguration;->ipAddress:Landroid/net/LinkAddress;
    Landroid/net/WebAddress;->mPort:I   # False Positive
    Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->createRequest(Ljava/lang/String;II)Ljava/lang/String;   # False Positive
    Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;-><init>(Ljava/util/List;)V   # False Positive
    Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->mQueryList:Ljava/util/List;   # False Positive
    Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;-><init>(ILjava/lang/String;)V   # False Positive
    Landroid/net/wifi/p2p/WifiP2pManager;-><init>(Landroid/net/wifi/p2p/IWifiP2pManager;)V   # False Positive
    Landroid/net/wifi/p2p/WifiP2pWfdInfo;-><init>()V   # False Positive
    Landroid/net/wifi/WifiConfiguration;->INVALID_RSSI:I   # False Positive
    Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;   # False Positive
    Landroid/nfc/NfcManager;-><init>(Landroid/content/Context;)V   # False Positive
    Landroid/os/BatteryStats$Counter;-><init>()V
    Landroid/os/BatteryStats$HistoryItem;->clear()V
    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$Timer;-><init>()V
    Landroid/os/BatteryStats$Uid$Pkg;-><init>()V
    Landroid/os/BatteryStats$Uid$Proc;-><init>()V
    Landroid/os/BatteryStats$Uid$Sensor;-><init>()V
    Landroid/os/BatteryStats$Uid$Wakelock;-><init>()V
    Landroid/os/BatteryStats;-><init>()V
    Landroid/os/BatteryStats;->getMobileRadioActiveTime(JI)J
    Landroid/os/BatteryStats;->getNetworkActivityBytes(II)J
    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/health/SystemHealthManager;->from(Landroid/content/Context;)Landroid/os/health/SystemHealthManager;   # False Positive
    Landroid/os/IPowerManager;->nap(J)V
    Landroid/os/Parcel;->mCreators:Ljava/util/HashMap;
    Landroid/os/PowerManager;->mHandler:Landroid/os/Handler;
    Landroid/os/Process;->sendSignalQuiet(II)V
    Landroid/os/Registrant;->getHandler()Landroid/os/Handler;
    Landroid/os/RegistrantList;->get(I)Ljava/lang/Object;
    Landroid/os/RemoteCallback;->mHandler:Landroid/os/Handler;
    Landroid/os/storage/DiskInfo;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/os/storage/DiskInfo;->CREATOR:Landroid/os/Parcelable$Creator;   # False Positive
    Landroid/os/storage/IObbActionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IObbActionListener;
    Landroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;   # False Positive
    Landroid/os/SystemProperties;->native_add_change_callback()V
    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_set(Ljava/lang/String;Ljava/lang/String;)V
    Landroid/os/UserHandle;->formatUid(Ljava/io/PrintWriter;I)V
    Landroid/os/WorkSource;->sGoneWork:Landroid/os/WorkSource;
    Landroid/os/WorkSource;->sNewbWork:Landroid/os/WorkSource;
    Landroid/os/WorkSource;->sTmpWorkSource:Landroid/os/WorkSource;
    Landroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
    Landroid/preference/Preference;->onKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z   # False Positive
    Landroid/preference/PreferenceManager;->mFragment:Landroid/preference/PreferenceFragment;   # False Positive
    Landroid/preference/PreferenceManager;->setFragment(Landroid/preference/PreferenceFragment;)V   # False Positive
    Landroid/provider/Telephony$Sms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;   # False Positive
    Landroid/security/KeyStore;->isEmpty()Z   # False Positive
    Landroid/security/KeyStore;->reset()Z   # False Positive
    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   # False Positive
    Landroid/service/dreams/DreamService;->isDozing()Z   # False Positive
    Landroid/service/dreams/DreamService;->stopDozing()V   # False Positive
    Landroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager;   # False Positive
    Landroid/service/notification/NotificationListenerService;->mHandler:Landroid/os/Handler;   # False Positive
    Landroid/service/notification/NotificationListenerService;->mNoMan:Landroid/app/INotificationManager;   # False Positive
    Landroid/service/notification/NotificationListenerService;->TAG:Ljava/lang/String;   # False Positive
    Landroid/service/notification/StatusBarNotification;->initialPid:I   # False Positive
    Landroid/service/notification/StatusBarNotification;->notification:Landroid/app/Notification;   # False Positive
    Landroid/service/notification/StatusBarNotification;->postTime:J   # False Positive
    Landroid/service/notification/StatusBarNotification;->tag:Ljava/lang/String;   # False Positive
    Landroid/service/notification/StatusBarNotification;->user:Landroid/os/UserHandle;   # False Positive
    Landroid/service/wallpaper/WallpaperService$Engine;->mPendingXOffset:F   # False Positive
    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/ParcelableCall;->CREATOR:Landroid/os/Parcelable$Creator;   # False Positive
    Landroid/telecom/ParcelableCall;->getConnectTimeMillis()J   # False Positive
    Landroid/telecom/ParcelableCall;->getDisconnectCause()Landroid/telecom/DisconnectCause;   # False Positive
    Landroid/telecom/ParcelableCall;->getHandle()Landroid/net/Uri;   # False Positive
    Landroid/telecom/ParcelableCall;->getId()Ljava/lang/String;   # False Positive
    Landroid/telecom/Phone;->setProximitySensorOff(Z)V
    Landroid/telecom/Phone;->setProximitySensorOn()V
    Landroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;)V   # False Positive
    Landroid/telecom/PhoneAccountHandle;->mComponentName:Landroid/content/ComponentName;
    Landroid/telecom/PhoneAccountHandle;->mId:Ljava/lang/String;   # False Positive
    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;->getSimCallManager(I)Landroid/telecom/PhoneAccountHandle;
    Landroid/telecom/VideoCallImpl;->destroy()V
    Landroid/telephony/CarrierMessagingServiceManager;-><init>()V
    Landroid/telephony/cdma/CdmaCellLocation;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z   # False Positive
    Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationId:I   # False Positive
    Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLatitude:I   # False Positive
    Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLongitude:I   # False Positive
    Landroid/telephony/cdma/CdmaCellLocation;->mNetworkId:I   # False Positive
    Landroid/telephony/cdma/CdmaCellLocation;->mSystemId:I   # False Positive
    Landroid/telephony/CellIdentityLte;-><init>(IIIII)V   # False Positive
    Landroid/telephony/CellInfoCdma;-><init>(Landroid/telephony/CellInfoCdma;)V   # False Positive
    Landroid/telephony/CellInfoLte;->setCellIdentity(Landroid/telephony/CellIdentityLte;)V   # False Positive
    Landroid/telephony/CellInfoLte;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthLte;)V   # False Positive
    Landroid/telephony/CellSignalStrengthLte;->mSignalStrength:I
    Landroid/telephony/gsm/GsmCellLocation;->setPsc(I)V   # False Positive
    Landroid/telephony/NeighboringCellInfo;->mCid:I   # False Positive
    Landroid/telephony/NeighboringCellInfo;->mLac:I   # False Positive
    Landroid/telephony/NeighboringCellInfo;->mNetworkType:I   # False Positive
    Landroid/telephony/NeighboringCellInfo;->mPsc:I   # False Positive
    Landroid/telephony/NeighboringCellInfo;->mRssi:I   # False Positive
    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/RadioAccessFamily;->getNetworkTypeFromRaf(I)I   # False Positive
    Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I   # False Positive
    Landroid/telephony/ServiceState;->bearerBitmapHasCdma(I)Z   # False Positive
    Landroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z   # False Positive
    Landroid/telephony/ServiceState;->getCssIndicator()I   # False Positive
    Landroid/telephony/ServiceState;->getDataNetworkType()I   # TelephonyManager.getServiceState().getNetworkRegistrationState(NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN).getAccessNetworkTechnology()
    Landroid/telephony/ServiceState;->getDataRoaming()Z   # TelephonyManager.getServiceState().getNetworkRegistrationState(NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN).isRomaing()
    Landroid/telephony/ServiceState;->getDataRoamingType()I   # SystemAPI ServiceState.getNetworkRegistrationState(NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN).getRoamingType()
    Landroid/telephony/ServiceState;->getVoiceNetworkType()I
    Landroid/telephony/ServiceState;->getVoiceOperatorNumeric()Ljava/lang/String;   # System API ServiceState.getOperatorNumeric()
    Landroid/telephony/ServiceState;->getVoiceRegState()I   # Public: ServiceState.getState() or SystemAPI NetworkRegistrationState.getRegState()
    Landroid/telephony/ServiceState;->getVoiceRoaming()Z   # SystemAPI ServiceState.getNetworkRegistrationState(NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN).getRoamingType()
    Landroid/telephony/ServiceState;->getVoiceRoamingType()I
    Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I   # False Positive
    Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I   # False Positive
    Landroid/telephony/ServiceState;->mCdmaEriIconMode:I   # False Positive
    Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I   # False Positive
    Landroid/telephony/ServiceState;->mCssIndicator:Z   # False Positive
    Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z   # TelephonyManager.getServiceState().isManualNetworkSelection()
    Landroid/telephony/ServiceState;->mNetworkId:I   # TelephonyManager.getServiceState().getCdmaNetworkId()
    Landroid/telephony/ServiceState;->mSystemId:I   # TelephonyManager.getServiceState().getCdmaSystemId()
    Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IWLAN:I   # dont use the internal RIL version, move to SystemAPI TelephonyManager.NETWORK_TYPE_IWLAN
    Landroid/telephony/ServiceState;->setCdmaDefaultRoamingIndicator(I)V   # False Positive
    Landroid/telephony/ServiceState;->setCdmaEriIconIndex(I)V   # False Positive
    Landroid/telephony/ServiceState;->setCdmaEriIconMode(I)V   # False Positive
    Landroid/telephony/ServiceState;->setCdmaRoamingIndicator(I)V   # False Positive
    Landroid/telephony/ServiceState;->setCssIndicator(I)V   # False Positive
    Landroid/telephony/ServiceState;->setDataRegState(I)V   # False Positive
    Landroid/telephony/ServiceState;->setEmergencyOnly(Z)V   # False Positive
    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   # CellSignalStrengthLte.getRssi()
    Landroid/telephony/SignalStrength;->getLteSignalStrength()I
    Landroid/telephony/SignalStrength;->getTdScdmaAsuLevel()I
    Landroid/telephony/SignalStrength;->getTdScdmaDbm()I
    Landroid/telephony/SignalStrength;->getTdScdmaLevel()I
    Landroid/telephony/SignalStrength;->setFromNotifierBundle(Landroid/os/Bundle;)V
    Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GOOD:I   # CellSignalStrength.SIGNAL_STRENGTH_GOOD
    Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GREAT:I   # CellSignalStrength.SIGNAL_STRENGTH_GREAT
    Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_MODERATE:I   # CellSignalStrength.SIGNAL_STRENGTH_MODERATE
    Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I   # CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN
    Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_POOR:I   # CellSignalStrength.SIGNAL_STRENGTH_POOR
    Landroid/telephony/SmsManager;->mSubId:I   # False Positive
    Landroid/telephony/SubscriptionManager;->getPhoneId(I)I
    Landroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z   # SubscriptionManager.isUsableSubscriptionId(int subscriptionId)
    Landroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z   # False Positive
    Landroid/telephony/SubscriptionManager;->NAME_SOURCE_USER_INPUT:I   # False Positive
    Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;I)V
    Landroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;   # context.getSystemService(Context.TELEPHONY_SERVICE)
    Landroid/telephony/TelephonyManager;->getDataNetworkType(I)I   # TelephonyManager.createForSubscriptionId(int subId).getServiceState().getNetworkRegistrationState(NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN).getAccessNetworkTechnology()
    Landroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;   # context.getSystemService(Context.TELEPHONY_SERVICE)
    Landroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
    Landroid/telephony/TelephonyManager;->getMsisdn(I)Ljava/lang/String;
    Landroid/telephony/TelephonyManager;->getNetworkOperator(I)Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getNetworkOperator()
    Landroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getNetworkOperatorName()
    Landroid/telephony/TelephonyManager;->getOtaSpNumberSchemaForPhone(ILjava/lang/String;)Ljava/lang/String;   # False Positive
    Landroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;   # TelephonyManager.createForSubscriptionId(int subId).getServiceState()
    Landroid/telephony/TelephonyManager;->getSimCountryIso(I)Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getSimCountryIso()
    Landroid/telephony/TelephonyManager;->getSimOperator(I)Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getSimOperator()
    Landroid/telephony/TelephonyManager;->getSimOperatorName(I)Ljava/lang/String;
    Landroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getSimOperator()
    Landroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String;   # TelephonyManager.createForSubscriptionId(int subId).getSimOperator()
    Landroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String;   # recomment to use subId to query instead of phoneId. see TelephonyManager.createForSubscriptionId(int subId).getSimOperator()
    Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String;   # TelephonyManager createForSubscriptionId(int subId).getSubscriberId()
    Landroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I   # TelephonyManage.createForSubscriptionId(int subId).getVoiceNetworkType()
    Landroid/telephony/TelephonyManager;->isImsRegistered()Z   # SystemAPI ImsMmTelManager#registerImsRegistrationCallback to listen IMS registration state change
    Landroid/telephony/TelephonyManager;->setBasebandVersionForPhone(ILjava/lang/String;)V   # False Positive
    Landroid/telephony/TelephonyManager;->setPhoneType(II)V   # False Positive
    Landroid/telephony/TelephonyManager;->setSimCountryIsoForPhone(ILjava/lang/String;)V   # False Positive
    Landroid/telephony/TelephonyManager;->setSimOperatorNameForPhone(ILjava/lang/String;)V   # False Positive
    Landroid/telephony/TelephonyManager;->setSimStateForPhone(ILjava/lang/String;)V   # False Positive
    Landroid/telephony/VoLteServiceState;-><init>(I)V   # False Positive
    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   # False Positive
    Landroid/text/method/HideReturnsTransformationMethod;->sInstance:Landroid/text/method/HideReturnsTransformationMethod;   # False Positive
    Landroid/text/method/PasswordTransformationMethod;->DOT:C   # False Positive
    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;->getHeight(Z)I   # False Positive
    Landroid/text/style/BulletSpan;->mColor:I   # False Positive
    Landroid/text/style/BulletSpan;->mGapWidth:I   # False Positive
    Landroid/text/style/BulletSpan;->mWantColor:Z   # False Positive
    Landroid/text/TextLine;->mSpanned:Landroid/text/Spanned;   # False Positive
    Landroid/text/TextLine;->sCached:[Landroid/text/TextLine;
    Landroid/transition/ChangeBounds;->BOTTOM_RIGHT_ONLY_PROPERTY:Landroid/util/Property;   # Developers should use View.setLeftTopRightBottom() instead.
    Landroid/transition/ChangeBounds;->POSITION_PROPERTY:Landroid/util/Property;   # Developers should use View.setLeftTopRightBottom() instead.
    Landroid/transition/Scene;->mEnterAction:Ljava/lang/Runnable;
    Landroid/transition/Scene;->mExitAction:Ljava/lang/Runnable;
    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;->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;->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/DebugUtils;->buildShortClassTag(Ljava/lang/Object;Ljava/lang/StringBuilder;)V   # False Positive
    Landroid/util/LongSparseLongArray;->mKeys:[J
    Landroid/util/LongSparseLongArray;->mSize:I
    Landroid/util/LongSparseLongArray;->mValues:[J
    Landroid/util/Slog;->wtfStack(Ljava/lang/String;Ljava/lang/String;)I   # False Positive
    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/TimeUtils;->formatDuration(JLjava/io/PrintWriter;)V   # False Positive
    Landroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;I)V   # False Positive
    Landroid/view/accessibility/AccessibilityEvent;->mAction:I   # False Positive
    Landroid/view/accessibility/AccessibilityManager;->mIsEnabled:Z
    Landroid/view/accessibility/AccessibilityManager;->mIsHighTextContrastEnabled:Z
    Landroid/view/animation/Animation;->mListener:Landroid/view/animation/Animation$AnimationListener;
    Landroid/view/Choreographer;->mLock:Ljava/lang/Object;   # False Positive
    Landroid/view/Choreographer;->USE_VSYNC:Z
    Landroid/view/ContextThemeWrapper;->mTheme:Landroid/content/res/Resources$Theme;
    Landroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z
    Landroid/view/DisplayInfo;-><init>()V
    Landroid/view/DisplayInfo;->displayCutout:Landroid/view/DisplayCutout;
    Landroid/view/DisplayListCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
    Landroid/view/GestureDetector;->LONGPRESS_TIMEOUT:I
    Landroid/view/GhostView;->addGhost(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/GhostView;
    Landroid/view/GhostView;->removeGhost(Landroid/view/View;)V
    Landroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
    Landroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
    Landroid/view/InputDevice;->mIsExternal:Z
    Landroid/view/inputmethod/InputMethodManager;->mH:Landroid/view/inputmethod/InputMethodManager$H;
    Landroid/view/inputmethod/InputMethodManager;->mNextServedView:Landroid/view/View;   # Hacks to  fix context leaks are backported to androidx.activity.ComponentActivity
    Landroid/view/inputmethod/InputMethodManager;->mServedInputConnectionWrapper:Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;   # False Positive
    Landroid/view/inputmethod/InputMethodManager;->mServedView:Landroid/view/View;   # Hacks to  fix context leaks are backported to androidx.activity.ComponentActivity
    Landroid/view/inputmethod/InputMethodManager;->notifyUserAction()V
    Landroid/view/inputmethod/InputMethodManager;->showSoftInputUnchecked(ILandroid/os/ResultReceiver;)V
    Landroid/view/IWindowManager;->setInTouchMode(Z)V
    Landroid/view/IWindowManager;->showStrictModeViolation(Z)V
    Landroid/view/KeyEvent;->mSource:I   # False Positive
    Landroid/view/KeyEvent;->recycle()V   # False Positive
    Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object;   # LayoutInflater's mConstructorArgs was being accessed for two reasons: reading and writing the context. When onCreateView() was called, the inflation context was not being passed, so if the developer wanted to get it, they had to read it from mConstructorArgs. When the developer wanted to create a view, with createView(), the developer could not adjust the view's constructor context. New APIs for createView() and onCreateView() were added that take the View Context as an argument.
    Landroid/view/LayoutInflater;->mContext:Landroid/content/Context;
    Landroid/view/LayoutInflater;->mFactorySet:Z   # mFactorySet is being modified by app developers to reset the factory
                                                   # on an existing LayoutInflater. Instead, a developer should use the
                                                   # existing LayoutInflater#cloneInContext() to create a new LayoutInflater
                                                   # and set the factory on it instead.
                                                   #
                                                   # This is often desired at the Activity level, so that any part of
                                                   # the application getting a LayoutInflater using the Activity as
                                                   # a Context will get the LayoutInflater with a custom factory. To
                                                   # do this, the Activity has to replace the returned LayoutInflater.
                                                   # Something like this should work:
                                                   #
                                                   #  private LayoutInflater mLayoutInflater;
                                                   #
                                                   #  @Override
                                                   #  public Object getSystemService(String name) {
                                                   #    if (Context.LAYOUT_INFLATER_SERVICE.equals(name)) {
                                                   #      if (mLayoutInflater == null) {
                                                   #        mLayoutInflater =
                                                   #          ((LayoutInflater)super.getSystemService(name)).cloneInContext(this);
                                                   #        mLayoutInflater.setFactory(new CustomLayoutFactory());
                                                   #      }
                                                   #      return mLayoutInflater;
                                                   #    }
                                                   #    return super.getSystemService(name);
                                                   #  }
    Landroid/view/LayoutInflater;->sConstructorMap:Ljava/util/HashMap;
    Landroid/view/MotionEvent;->mNativePtr:J   # Developers should use the public accessor methods of MotionEvent. There isn't any need to access mNativePtr directly.
    Landroid/view/PointerIcon;->load(Landroid/content/Context;)Landroid/view/PointerIcon;   # False Positive
    Landroid/view/PointerIcon;->mType:I   # False Positive
    Landroid/view/RenderNodeAnimator;->setTarget(Landroid/view/View;)V
    Landroid/view/ScaleGestureDetector;->mMinSpan:I   # To retrieve the min scaling span value in pixels, you can now use ViewConfiguration.get([context]).getScaledMinScalingSpan().
    Landroid/view/ScaleGestureDetector;->mSpanSlop:I
    Landroid/view/SurfaceView;->mDrawingStopped:Z   # False Positive
    Landroid/view/SurfaceView;->mIsCreating:Z   # False Positive
    Landroid/view/SurfaceView;->mLastLockTime:J   # False Positive
    Landroid/view/SurfaceView;->mRequestedHeight:I   # False Positive
    Landroid/view/SurfaceView;->mRequestedWidth:I   # False Positive
    Landroid/view/SurfaceView;->mSurfaceFrame:Landroid/graphics/Rect;   # False Positive
    Landroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V   # Should not be used directly as it violates internal code guarantees. Instead Views need to be actually attached to the window.
    Landroid/view/View;->dispatchDetachedFromWindow()V   # Should not be used directly as it violates internal code guarantees. Instead Views need to be actually attached to the window.
    Landroid/view/View;->getWindowSession()Landroid/view/IWindowSession;   # False Positive
    Landroid/view/View;->internalSetPadding(IIII)V   # Please use setPadding(int, int, int, int), setPaddingRelative(int, int, int, int), or any of the padding XML attributes.
    Landroid/view/View;->mAnimator:Landroid/view/ViewPropertyAnimator;   # False Positive
    Landroid/view/View;->mAttachInfo:Landroid/view/View$AttachInfo;
    Landroid/view/View;->mBottom:I
    Landroid/view/View;->mHasPerformedLongPress:Z   # False Positive
    Landroid/view/View;->mLayoutParams:Landroid/view/ViewGroup$LayoutParams;   # Users should rely on the getter / setter. The setter additionally guarantees internal state correctness.
    Landroid/view/View;->mLeft:I
    Landroid/view/View;->mMinHeight:I
    Landroid/view/View;->mMinWidth:I
    Landroid/view/View;->mParent:Landroid/view/ViewParent;
    Landroid/view/View;->mPrivateFlags:I
    Landroid/view/View;->mPrivateFlags2:I
    Landroid/view/View;->mPrivateFlags3:I
    Landroid/view/View;->mRight:I
    Landroid/view/View;->mScrollX:I   # Please use getScrollX(), getScrollY(), setScrollX(int), setScrollY(int) instead
    Landroid/view/View;->mScrollY:I   # Please use getScrollX(), getScrollY(), setScrollX(int), setScrollY(int) instead
    Landroid/view/View;->mTop:I
    Landroid/view/View;->mViewFlags:I   # Directly use the now public View.setTransitionVisibility() instead of reflecting on the field
    Landroid/view/View;->setAlphaNoInvalidation(F)Z   # N/A
    Landroid/view/View;->setFlags(II)V   # False Positive
    Landroid/view/View;->setFrame(IIII)Z   # Use setLeftTopRightBottom() instead. Overriding of setFrame is not a recommended approach for custom ViewGroups. Developers can always add their logic into onSizeChanged() callback.
    Landroid/view/View;->startActivityForResult(Landroid/content/Intent;I)V   # False Positive
    Landroid/view/ViewConfiguration;->sHasPermanentMenuKey:Z
    Landroid/view/ViewGroup;->FLAG_DISALLOW_INTERCEPT:I   # Set this flag indirectly using the requestDisallowInterceptTouchEvent method instead.
    Landroid/view/ViewGroup;->FLAG_SUPPORT_STATIC_TRANSFORMATIONS:I   # Use the setStaticTransformationsEnabled setter method instead.
    Landroid/view/ViewGroup;->FLAG_USE_CHILD_DRAWING_ORDER:I   # There is already a setter called setChildrenDrawingOrderEnabled and getter called isChildrenDrawingOrderEnabled.
    Landroid/view/ViewGroup;->mChildren:[Landroid/view/View;
    Landroid/view/ViewGroup;->mChildrenCount:I
    Landroid/view/ViewGroup;->mFocused:Landroid/view/View;   # False Positive
    Landroid/view/ViewGroup;->mGroupFlags:I
    Landroid/view/ViewGroup;->mOnHierarchyChangeListener:Landroid/view/ViewGroup$OnHierarchyChangeListener;   # Use the setOnHierarchyChangeListener setter method instead to provide listener implementation.
    Landroid/view/Window;->mWindowManager:Landroid/view/WindowManager;   # False Positive
    Landroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z   # False Positive
    Landroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession;   # False Positive
    Landroid/view/WindowManagerGlobal;->trimMemory(I)V
    Landroid/webkit/ConsoleMessage;->mLevel:Landroid/webkit/ConsoleMessage$MessageLevel;   # False Positive
    Landroid/webkit/ConsoleMessage;->mLineNumber:I   # False Positive
    Landroid/webkit/ConsoleMessage;->mMessage:Ljava/lang/String;   # False Positive
    Landroid/webkit/ConsoleMessage;->mSourceId:Ljava/lang/String;   # False Positive
    Landroid/widget/AbsListView$FlingRunnable;->endFling()V   # AbsListView#smoothScrollBy(0,0) can be used instead to stop a fling/scroll early
    Landroid/widget/AbsListView$FlingRunnable;->start(I)V   # Developers can use AbsListView#fling(int) instead
    Landroid/widget/AbsListView$LayoutParams;->viewType:I   # False Positive
    Landroid/widget/AbsListView;->mActivePointerId:I   # False Positive
    Landroid/widget/AbsListView;->mEdgeGlowBottom:Landroid/widget/EdgeEffect;   # Use new AbsListView APIs for set(Top|Bottom)EdgeEffectColor / get(Top|Bottom)EdgeEffectColor
    Landroid/widget/AbsListView;->mEdgeGlowTop:Landroid/widget/EdgeEffect;   # Use new AbsListView APIs for set(Top|Bottom)EdgeEffectColor / get(Top|Bottom)EdgeEffectColor
    Landroid/widget/AbsListView;->mFastScroll:Landroid/widget/FastScroller;   # RecyclerView
    Landroid/widget/AbsListView;->mFlingRunnable:Landroid/widget/AbsListView$FlingRunnable;   # AbsListView#smoothScrollBy(0,0) can be used instead to stop a fling/scroll early
    Landroid/widget/AbsListView;->mMaximumVelocity:I
    Landroid/widget/AbsListView;->mOnScrollListener:Landroid/widget/AbsListView$OnScrollListener;
    Landroid/widget/AbsListView;->mOverflingDistance:I
    Landroid/widget/AbsListView;->mRecycler:Landroid/widget/AbsListView$RecycleBin;   # Use RecyclerView
    Landroid/widget/AbsListView;->mSelector:Landroid/graphics/drawable/Drawable;   # False Positive
    Landroid/widget/AbsListView;->mSelectorPosition:I
    Landroid/widget/AbsListView;->mSelectorRect:Landroid/graphics/Rect;   # Developers should use RecyclerView which provides appropriate APIs to have sticky headers.
    Landroid/widget/AbsListView;->mTouchMode:I   # RecyclerView (allow to set custom scroller)
    Landroid/widget/AbsListView;->reportScrollStateChange(I)V   # RecyclerView
    Landroid/widget/AbsListView;->trackMotionScroll(II)Z
    Landroid/widget/AdapterView;->mDataChanged:Z   # For ListViews -> RecyclerView.  For Spinners -> use a custom DataSetObserver to control this field.
    Landroid/widget/AutoCompleteTextView;->doAfterTextChanged()V
    Landroid/widget/AutoCompleteTextView;->doBeforeTextChanged()V
    Landroid/widget/AutoCompleteTextView;->ensureImeVisible(Z)V
    Landroid/widget/AutoCompleteTextView;->isInputMethodNotNeeded()Z
    Landroid/widget/AutoCompleteTextView;->setDropDownAnimationStyle(I)V   # False Positive
    Landroid/widget/EdgeEffect;->mPaint:Landroid/graphics/Paint;
    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;->mShowCursor:J   # This seems to be used in combination with mCursorDrawableRes to set a custom cursor and 'blink' it - developers should now use TextView#setTextCursorDrawable to set a custom cursor - not sure why they would need to handle the blinking themselves anymore.
    Landroid/widget/Gallery;->getCenterOfGallery()I   # False Positive
    Landroid/widget/Gallery;->getCenterOfView(Landroid/view/View;)I   # False Positive
    Landroid/widget/Gallery;->mGestureDetector:Landroid/view/GestureDetector;   # False Positive
    Landroid/widget/Gallery;->mSelectedChild:Landroid/view/View;   # False Positive
    Landroid/widget/GridView;->fillDown(II)Landroid/view/View;
    Landroid/widget/GridView;->fillUp(II)Landroid/view/View;
    Landroid/widget/GridView;->mColumnWidth:I
    Landroid/widget/GridView;->mNumColumns:I
    Landroid/widget/GridView;->mRequestedNumColumns:I
    Landroid/widget/HorizontalScrollView;->mEdgeGlowLeft:Landroid/widget/EdgeEffect;   # Use new HorizontalScrollView APIs for set(Left|Right)EdgeEffectColor / get(Left|Right)EdgeEffectColor
    Landroid/widget/HorizontalScrollView;->mEdgeGlowRight:Landroid/widget/EdgeEffect;   # Use new HorizontalScrollView APIs for set(Left|Right)EdgeEffectColor / get(Left|Right)EdgeEffectColor
    Landroid/widget/ImageView;->mDrawMatrix:Landroid/graphics/Matrix;
    Landroid/widget/ImageView;->mMaxHeight:I
    Landroid/widget/ImageView;->mMaxWidth:I
    Landroid/widget/LinearLayout;->mGravity:I
    Landroid/widget/ListView;->correctTooHigh(I)V   # False Positive
    Landroid/widget/ListView;->correctTooLow(I)V   # False Positive
    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;->mDividerHeight:I   # False Positive
    Landroid/widget/ListView;->measureHeightOfChildren(IIIII)I   # False Positive
    Landroid/widget/MediaController;->mCurrentTime:Landroid/widget/TextView;   # False Positive
    Landroid/widget/MediaController;->mEndTime:Landroid/widget/TextView;   # False Positive
    Landroid/widget/MediaController;->mNextButton:Landroid/widget/ImageButton;   # False Positive
    Landroid/widget/MediaController;->mPrevButton:Landroid/widget/ImageButton;   # False Positive
    Landroid/widget/NumberPicker;->mSelectionDivider:Landroid/graphics/drawable/Drawable;
    Landroid/widget/NumberPicker;->mSelectionDividerHeight:I
    Landroid/widget/NumberPicker;->mSelectorWheelPaint:Landroid/graphics/Paint;
    Landroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V
    Landroid/widget/PopupWindow;->mAboveAnchorBackgroundDrawable:Landroid/graphics/drawable/Drawable;   # False Positive
    Landroid/widget/PopupWindow;->mBelowAnchorBackgroundDrawable:Landroid/graphics/drawable/Drawable;   # False Positive
    Landroid/widget/PopupWindow;->mOnScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
    Landroid/widget/PopupWindow;->mOverlapAnchor:Z
    Landroid/widget/ProgressBar;->mCurrentDrawable:Landroid/graphics/drawable/Drawable;
    Landroid/widget/ProgressBar;->mDuration:I   # In order to access the duration of the indeterminate animation, please provide a Drawable to setIndeterminateDrawable(Drawable) (or via the indeterminateDrawable xml attribute) that implements Animatable.  Then you have full control over the animation.
    Landroid/widget/ProgressBar;->mIndeterminate:Z
    Landroid/widget/ProgressBar;->mMaxHeight:I
    Landroid/widget/ProgressBar;->mMinHeight:I
    Landroid/widget/ProgressBar;->mMinWidth:I
    Landroid/widget/RelativeLayout;->mGravity:I
    Landroid/widget/RemoteViews$Action;->mergeBehavior()I
    Landroid/widget/RemoteViews$Action;->viewId:I
    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$ReflectionAction;->methodName:Ljava/lang/String;
    Landroid/widget/RemoteViews$ReflectionAction;->value:Ljava/lang/Object;
    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;->setRemoteAdapter(ILjava/util/ArrayList;I)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/ScrollView;->mChildToScrollTo:Landroid/view/View;
    Landroid/widget/ScrollView;->mEdgeGlowBottom:Landroid/widget/EdgeEffect;   # Use new ScrollView APIs for set(Top|Bottom)EdgeEffectColor / get(Top|Bottom)EdgeEffectColor
    Landroid/widget/ScrollView;->mEdgeGlowTop:Landroid/widget/EdgeEffect;   # Use new ScrollView APIs for set(Top|Bottom)EdgeEffectColor / get(Top|Bottom)EdgeEffectColor
    Landroid/widget/ScrollView;->mMinimumVelocity:I
    Landroid/widget/ScrollView;->mOverflingDistance:I
    Landroid/widget/ScrollView;->mOverscrollDistance:I
    Landroid/widget/SearchView;->onCloseClicked()V   # False Positive
    Landroid/widget/SearchView;->setQuery(Ljava/lang/CharSequence;)V   # False Positive
    Landroid/widget/SimpleAdapter;->mData:Ljava/util/List;   # False Positive
    Landroid/widget/SimpleCursorAdapter;->mFrom:[I   # False Positive
    Landroid/widget/TextView;->getHorizontallyScrolling()Z
    Landroid/widget/TextView;->mCurHintTextColor:I   # False Positive
    Landroid/widget/TextView;->mCursorDrawableRes:I
    Landroid/widget/TextView;->mCurTextColor:I
    Landroid/widget/TextView;->mHorizontallyScrolling:Z
    Landroid/widget/TextView;->mTextSelectHandleLeftRes:I
    Landroid/widget/TextView;->mTextSelectHandleRes:I
    Landroid/widget/TextView;->mTextSelectHandleRightRes:I
    Landroid/widget/TextView;->startMarquee()V   # False Positive
    Landroid/widget/TextView;->startStopMarquee(Z)V   # False Positive
    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   # False Positive
    Landroid/widget/Toast;->getService()Landroid/app/INotificationManager;
    Landroid/widget/Toast;->mTN:Landroid/widget/Toast$TN;
    Landroid/widget/Toast;->sService:Landroid/app/INotificationManager;
    Landroid/widget/Toolbar;->mNavButtonView:Landroid/widget/ImageButton;   # False Positive
    Landroid/widget/VideoView;->mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;   # False Positive
    Landroid/widget/VideoView;->mSurfaceHolder:Landroid/view/SurfaceHolder;   # False Positive
    Landroid/widget/VideoView;->STATE_IDLE:I   # False Positive
    Lcom/android/internal/net/VpnProfile;->server:Ljava/lang/String;   # False Positive
    Lcom/android/internal/os/AtomicFile;->getBaseFile()Ljava/io/File;   # False Positive
    Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias:[I
    Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission:[I
    Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation:[I
    Lcom/android/internal/R$styleable;->AndroidManifestOriginalPackage:[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;->AndroidManifestSupportsScreens:[I
    Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration:[I
    Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature:[I
    Lcom/android/internal/R$styleable;->CycleInterpolator:[I
    Lcom/android/internal/R$styleable;->LinearLayout:[I
    Lcom/android/internal/R$styleable;->MenuView:[I
    Lcom/android/internal/R$styleable;->Searchable:[I
    Lcom/android/internal/R$styleable;->SearchableActionKey:[I
    Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BIILjava/lang/String;)Ljava/lang/String;   # False Positive
    Lcom/android/internal/telephony/IPhoneSubInfo$Stub;-><init>()V
    Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallForwardingChanged(Z)V
    Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellLocation(Landroid/os/Bundle;)V
    Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataActivity(I)V
    Lcom/android/internal/telephony/ITelephonyRegistry;->notifyOtaspChanged(I)V
    Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V   # False Positive
    Lcom/android/internal/telephony/SmsMessageBase;->getProtocolIdentifier()I   # False Positive
    Lcom/android/internal/telephony/SmsMessageBase;->getServiceCenterAddress()Ljava/lang/String;   # False Positive
    Lcom/android/internal/telephony/SmsMessageBase;->getStatus()I   # False Positive
    Lcom/android/internal/telephony/SmsMessageBase;->isReplace()Z   # False Positive
    Lcom/android/internal/telephony/SmsMessageBase;->isReplyPathPresent()Z   # False Positive
    Lcom/android/internal/util/AsyncChannel;->cmdToString(I)Ljava/lang/String;   # False Positive
    Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;I)V   # False Positive
    Lcom/android/internal/util/JournaledFile;->chooseForRead()Ljava/io/File;   # False Positive
    Lcom/android/internal/util/JournaledFile;->chooseForWrite()Ljava/io/File;   # False Positive
    Lcom/android/internal/util/JournaledFile;->commit()V   # False Positive
    Lcom/android/internal/util/JournaledFile;->rollback()V   # False Positive
    Lcom/android/internal/view/BaseIWindow;-><init>()V
    Lcom/android/internal/view/IInputConnectionWrapper;->mInputConnection:Landroid/view/inputmethod/InputConnection;   # False Positive
    Lcom/android/internal/view/menu/MenuPopupHelper;->setForceShowIcon(Z)V
    Lcom/android/internal/view/menu/MenuPopupHelper;->setForceShowIcon(Z)V   # Use PopupMenu#setForceShowIcon instead of reflection in MenuPopupHelper
    Ljava/lang/Boolean;->value:Z
    Ljava/lang/Byte;->value:B
    Ljava/lang/Character;->value:C
    Ljava/lang/Double;->value:D
    Ljava/lang/Float;->value:F
    Ljava/lang/Integer;->value:I
    Ljava/lang/Long;->value:J
    Ljava/lang/Short;->value:S
    Ljava/net/InetAddress;->isNumeric(Ljava/lang/String;)Z   # android.net.InetAddresses.isNumericAddress(String) - there is a behavioural difference between the original method and its replacement.
    Ljava/net/InetAddress;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;   # android.net.InetAddresses.parseNumericAddress(String) - there is a behavioural difference between the original method and its replacement.
    Ljavax/net/ssl/SSLServerSocketFactory;->defaultServerSocketFactory:Ljavax/net/ssl/SSLServerSocketFactory;   # Use getDefault() method instead
    Ljavax/net/ssl/SSLSocketFactory;->defaultSocketFactory:Ljavax/net/ssl/SSLSocketFactory;   # Use getDefault() method instead
    Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>()V   # False Positive
    Lorg/apache/http/conn/ssl/SSLSocketFactory;->hostnameVerifier:Lorg/apache/http/conn/ssl/X509HostnameVerifier;   # False Positive
    

Android Q 中已列入白名单的非 SDK 接口(这些接口原本列在灰名单中)

以下代码框列出了 Android 9(API 级别 28)中列入灰名单的所有非 SDK 接口,这些接口在 Android Q 中已列入 Android SDK(白名单)。每个接口各占一行。

Landroid/app/admin/DevicePolicyManager;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
    Landroid/app/AppOpsManager;->MODE_FOREGROUND:I
    Landroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
    Landroid/app/AppOpsManager;->unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I
    Landroid/app/AppOpsManager;->WATCH_FOREGROUND_CHANGES:I
    Landroid/content/Context;->getOpPackageName()Ljava/lang/String;
    Landroid/content/ContextWrapper;->getOpPackageName()Ljava/lang/String;
    Landroid/content/res/Resources;->getFloat(I)F
    Landroid/graphics/drawable/AnimatedVectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/BitmapDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/Drawable;->isProjected()Z
    Landroid/graphics/drawable/DrawableWrapper;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/GradientDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/InsetDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    Landroid/graphics/drawable/StateListDrawable;->getStateCount()I
    Landroid/graphics/drawable/StateListDrawable;->getStateDrawable(I)Landroid/graphics/drawable/Drawable;
    Landroid/graphics/drawable/StateListDrawable;->getStateSet(I)[I
    Landroid/graphics/drawable/VectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
    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/Paint;->getTextRunAdvances([CIIIIZ[FI)F
    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/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/camera2/CameraCharacteristics$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
    Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
    Landroid/hardware/camera2/CaptureResult$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
    Landroid/icu/text/Transliterator;->createFromRules(Ljava/lang/String;Ljava/lang/String;I)Landroid/icu/text/Transliterator;
    Landroid/icu/text/Transliterator;->getInstance(Ljava/lang/String;I)Landroid/icu/text/Transliterator;
    Landroid/icu/text/Transliterator;->getInstance(Ljava/lang/String;)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/UForwardCharacterIterator;->DONE:I
    Landroid/media/MediaPlayer2$TrackInfo;->getLanguage()Ljava/lang/String;
    Landroid/media/MediaPlayer2$TrackInfo;->getTrackType()I
    Landroid/media/ThumbnailUtils;->createImageThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;
    Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_1_1:I
    Landroid/media/tv/TvContract$PreviewProgramColumns;->ASPECT_RATIO_16_9: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/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
    Landroid/net/LinkProperties;->clear()V
    Landroid/net/LinkProperties;->getMtu()I
    Landroid/net/LinkProperties;->setDnsServers(Ljava/util/Collection;)V
    Landroid/net/LinkProperties;->setDomains(Ljava/lang/String;)V
    Landroid/net/LinkProperties;->setHttpProxy(Landroid/net/ProxyInfo;)V
    Landroid/net/LinkProperties;->setInterfaceName(Ljava/lang/String;)V
    Landroid/net/LinkProperties;->setLinkAddresses(Ljava/util/Collection;)V
    Landroid/net/LinkProperties;->setMtu(I)V
    Landroid/net/NetworkCapabilities;->getSignalStrength()I
    Landroid/net/RouteInfo;->hasGateway()Z
    Landroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z
    Landroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List;
    Landroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V
    Landroid/os/Process;->BLUETOOTH_UID:I
    Landroid/os/Process;->ROOT_UID:I
    Landroid/os/Process;->SHELL_UID:I
    Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_COUNTS:Ljava/lang/String;
    Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX:Ljava/lang/String;
    Landroid/provider/ContactsContract$ContactCounts;->EXTRA_ADDRESS_BOOK_INDEX_TITLES:Ljava/lang/String;
    Landroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
    Landroid/service/notification/StatusBarNotification;->getUid()I
    Landroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
    Landroid/system/Os;->connect(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
    Landroid/system/OsConstants;->AF_NETLINK:I
    Landroid/system/OsConstants;->AF_PACKET:I
    Landroid/system/OsConstants;->ARPHRD_ETHER:I
    Landroid/system/OsConstants;->ETH_P_ALL:I
    Landroid/system/OsConstants;->ETH_P_ARP:I
    Landroid/system/OsConstants;->ETH_P_IP:I
    Landroid/system/OsConstants;->ETH_P_IPV6:I
    Landroid/system/OsConstants;->ICMP6_ECHO_REPLY:I
    Landroid/system/OsConstants;->ICMP6_ECHO_REQUEST:I
    Landroid/system/OsConstants;->ICMP_ECHO:I
    Landroid/system/OsConstants;->ICMP_ECHOREPLY:I
    Landroid/system/OsConstants;->NETLINK_ROUTE:I
    Landroid/system/OsConstants;->RTMGRP_NEIGH:I
    Landroid/system/Os;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I
    Landroid/system/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
    Landroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval;
    Landroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String;
    Landroid/telecom/TelecomManager;->getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;
    Landroid/telecom/VideoProfile$CameraCapabilities;-><init>(IIZF)V
    Landroid/telephony/SubscriptionManager;->DEFAULT_SUBSCRIPTION_ID:I
    Landroid/telephony/SubscriptionManager;->getSlotIndex(I)I
    Landroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
    Landroid/text/style/SuggestionSpan;->getUnderlineColor()I
    Landroid/text/TextPaint;->underlineColor:I
    Landroid/text/TextPaint;->underlineThickness:F
    Landroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I
    Landroid/util/ArraySet;-><init>(Ljava/util/Collection;)V
    Landroid/view/InputDevice;->isExternal()Z
    Landroid/view/SurfaceControl$Transaction;->apply()V
    Landroid/view/SurfaceControl$Transaction;-><init>()V
    Landroid/view/SurfaceControl$Transaction;->setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
    Landroid/view/SurfaceControl$Transaction;->setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
    Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
    Landroid/view/View;->getLocationInSurface([I)V
    Landroid/view/View;->getTransitionAlpha()F
    Landroid/view/ViewGroup;->suppressLayout(Z)V
    Landroid/view/View;->setAnimationMatrix(Landroid/graphics/Matrix;)V
    Landroid/view/View;->setLeftTopRightBottom(IIII)V
    Landroid/view/View;->setTransitionAlpha(F)V
    Landroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
    Landroid/view/View;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
    Landroid/view/WindowInsets;->inset(IIII)Landroid/view/WindowInsets;
    Landroid/widget/ImageView;->animateTransform(Landroid/graphics/Matrix;)V
    Landroid/widget/PopupWindow;->setClipToScreenEnabled(Z)V
    Landroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V
    Landroid/widget/PopupWindow;->setLayoutInScreenEnabled(Z)V
    Landroid/widget/PopupWindow;->setTouchModal(Z)V
    Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
    Landroid/widget/TextView;->isSingleLine()Z
    Lcom/android/org/conscrypt/AbstractConscryptSocket;->getApplicationProtocol()Ljava/lang/String;
    Lcom/android/org/conscrypt/AbstractConscryptSocket;->getHandshakeApplicationProtocol()Ljava/lang/String;
    Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasMoreElements()Z
    Ljava/util/HashMap$HashIterator;->hasNext()Z
    Ljava/util/HashMap$HashIterator;->remove()V
    Ljava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z
    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