// Baseline format: 1.0
AcronymName: android.app.NotificationChannel#isImportanceLockedByOEM():
    
AcronymName: android.app.NotificationChannel#setImportanceLockedByOEM(boolean):
    


ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_ADDITIONAL_CALL_INFO:
    Inconsistent extra value; expected `android.telephony.ims.extra.ADDITIONAL_CALL_INFO`, was `AdditionalCallInfo`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CALL_RAT_TYPE:
    Inconsistent extra value; expected `android.telephony.ims.extra.CALL_RAT_TYPE`, was `CallRadioTech`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CHILD_NUMBER:
    Inconsistent extra value; expected `android.telephony.ims.extra.CHILD_NUMBER`, was `ChildNum`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNA:
    Inconsistent extra value; expected `android.telephony.ims.extra.CNA`, was `cna`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNAP:
    Inconsistent extra value; expected `android.telephony.ims.extra.CNAP`, was `cnap`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CODEC:
    Inconsistent extra value; expected `android.telephony.ims.extra.CODEC`, was `Codec`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DIALSTRING:
    Inconsistent extra value; expected `android.telephony.ims.extra.DIALSTRING`, was `dialstring`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DISPLAY_TEXT:
    Inconsistent extra value; expected `android.telephony.ims.extra.DISPLAY_TEXT`, was `DisplayText`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_EMERGENCY_CALL:
    Inconsistent extra value; expected `android.telephony.ims.extra.EMERGENCY_CALL`, was `e_call`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_IS_CALL_PULL:
    Inconsistent extra value; expected `android.telephony.ims.extra.IS_CALL_PULL`, was `CallPull`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OI:
    Inconsistent extra value; expected `android.telephony.ims.extra.OI`, was `oi`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OIR:
    Inconsistent extra value; expected `android.telephony.ims.extra.OIR`, was `oir`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_REMOTE_URI:
    Inconsistent extra value; expected `android.telephony.ims.extra.REMOTE_URI`, was `remote_uri`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_USSD:
    Inconsistent extra value; expected `android.telephony.ims.extra.USSD`, was `ussd`
ActionValue: android.telephony.ims.ImsReasonInfo#EXTRA_MSG_SERVICE_NOT_AUTHORIZED:
    Inconsistent extra value; expected `android.telephony.ims.extra.MSG_SERVICE_NOT_AUTHORIZED`, was `Forbidden. Not Authorized for Service`
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_CLEANUP:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_DOWNLOAD_RESULT_INTERNAL:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_FILE_DESCRIPTOR_REQUEST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FD_COUNT:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FINAL_URI:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FREE_URI_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_PAUSED_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_PAUSED_URI_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_SERVICE_ID:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_FILES_IN_USE:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_FILE_ROOT:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_LIST:
    


ArrayReturn: android.app.UiAutomation#executeShellCommandRw(String):
    
ArrayReturn: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #1:
    
ArrayReturn: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #10:
    
ArrayReturn: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #11:
    
ArrayReturn: android.metrics.LogMaker#LogMaker(Object[]) parameter #0:
    
ArrayReturn: android.metrics.LogMaker#deserialize(Object[]) parameter #0:
    
ArrayReturn: android.metrics.LogMaker#serialize():
    
ArrayReturn: android.net.TestNetworkManager#createTunInterface(android.net.LinkAddress[]) parameter #0:
    
ArrayReturn: android.os.HwBlob#wrapArray(boolean[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(byte[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(double[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(float[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(int[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(long[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(short[]):
    
ArrayReturn: android.os.NativeHandle#NativeHandle(java.io.FileDescriptor[], int[], boolean) parameter #0:
    
ArrayReturn: android.os.NativeHandle#getFileDescriptors():
    
ArrayReturn: android.security.keystore.AttestationUtils#attestDeviceIds(android.content.Context, int[], byte[]):
    
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    Method parameter should be Collection<ImsSsInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsSsInfo[]`
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
    Method parameter should be Collection<ImsCallForwardInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsCallForwardInfo[]`
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    Method parameter should be Collection<ImsSsInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsSsInfo[]`
ArrayReturn: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
    Method parameter should be Collection<Uri> (or subclass) instead of raw array; was `android.net.Uri[]`
ArrayReturn: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #0:
    
ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
    
ArrayReturn: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillOptions(CharSequence[]) parameter #0:
    
ArrayReturn: android.view.inspector.InspectableProperty#enumMapping():
    
ArrayReturn: android.view.inspector.InspectableProperty#flagMapping():
    


AutoBoxing: android.os.HwBlob#wrapArray(byte[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(double[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(float[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(int[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(long[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(short[]):
    
AutoBoxing: android.os.VintfObject#getTargetFrameworkCompatibilityMatrixVersion():
    


BannedThrow: android.app.ActivityTaskManager#removeStacksInWindowingModes(int[]):
    
BannedThrow: android.app.ActivityTaskManager#removeStacksWithActivityTypes(int[]):
    
BannedThrow: android.app.ActivityTaskManager#resizeStack(int, android.graphics.Rect):
    
BannedThrow: android.app.ActivityTaskManager#setTaskWindowingMode(int, int, boolean):
    
BannedThrow: android.app.ActivityTaskManager#setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, int[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, short[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int[], short[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, int):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, short):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int[], int[]):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#Builder(android.media.audiopolicy.AudioMixingRule):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#build():
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setDevice(android.media.AudioDeviceInfo):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setRouteFlags(int):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#setFocusDuckingBehavior(int):
    
BannedThrow: android.media.audiopolicy.AudioPolicy.Builder#addMix(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy.Builder#setLooper(android.os.Looper):
    
BannedThrow: android.os.HwBinder#getService(String, String):
    
BannedThrow: android.os.HwBinder#getService(String, String, boolean):
    
BannedThrow: android.os.Process#getThreadScheduler(int):
    


CallbackInterface: android.app.prediction.AppPredictor.Callback:
    
CallbackInterface: android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback:
    
CallbackInterface: android.widget.Magnifier.Callback:
    


CallbackMethodName: android.os.RemoteCallback:
    


CompileTimeConstant: android.view.inputmethod.InputMethodSystemProperty#MULTI_CLIENT_IME_ENABLED:
    


ConcreteCollection: android.content.AutofillOptions#whitelistedActivitiesForAugmentedAutofill:
    
ConcreteCollection: android.content.ContentCaptureOptions#ContentCaptureOptions(int, int, int, int, int, android.util.ArraySet<android.content.ComponentName>) parameter #5:
    
ConcreteCollection: android.content.ContentCaptureOptions#whitelistedComponents:
    
ConcreteCollection: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
ConcreteCollection: android.os.HwParcel#readBoolVector():
    
ConcreteCollection: android.os.HwParcel#readDoubleVector():
    
ConcreteCollection: android.os.HwParcel#readFloatVector():
    
ConcreteCollection: android.os.HwParcel#readInt16Vector():
    
ConcreteCollection: android.os.HwParcel#readInt32Vector():
    
ConcreteCollection: android.os.HwParcel#readInt64Vector():
    
ConcreteCollection: android.os.HwParcel#readInt8Vector():
    
ConcreteCollection: android.os.HwParcel#readNativeHandleVector():
    
ConcreteCollection: android.os.HwParcel#readStringVector():
    
ConcreteCollection: android.os.HwParcel#writeBoolVector(java.util.ArrayList<java.lang.Boolean>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeDoubleVector(java.util.ArrayList<java.lang.Double>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeFloatVector(java.util.ArrayList<java.lang.Float>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt16Vector(java.util.ArrayList<java.lang.Short>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt32Vector(java.util.ArrayList<java.lang.Integer>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt64Vector(java.util.ArrayList<java.lang.Long>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt8Vector(java.util.ArrayList<java.lang.Byte>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeNativeHandleVector(java.util.ArrayList<android.os.NativeHandle>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeStringVector(java.util.ArrayList<java.lang.String>) parameter #0:
    
ConcreteCollection: android.service.autofill.CompositeUserData#getFieldClassificationAlgorithms():
    
ConcreteCollection: android.service.autofill.CompositeUserData#getFieldClassificationArgs():
    
ConcreteCollection: android.service.autofill.InternalTransformation#batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>) parameter #2:
    
ConcreteCollection: android.service.autofill.UserData#getFieldClassificationAlgorithms():
    
ConcreteCollection: android.telephony.ims.ImsConferenceState#mParticipants:
    Field type is concrete collection (`java.util.HashMap`); must be higher-level interface


ContextFirst: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #1:
    


ContextNameSuffix: android.telephony.mbms.vendor.MbmsGroupCallServiceBase:
    


EndsWithImpl: android.view.contentcapture.ViewNode.ViewStructureImpl:
    


Enum: android.view.inspector.InspectableProperty.ValueType:
    


EqualsAndHashCode: android.app.prediction.AppPredictionContext#equals(Object):
    
EqualsAndHashCode: android.app.prediction.AppTarget#equals(Object):
    
EqualsAndHashCode: android.app.prediction.AppTargetEvent#equals(Object):
    
EqualsAndHashCode: android.net.apf.ApfCapabilities#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ApfProgramEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ApfStats#equals(Object):
    
EqualsAndHashCode: android.net.metrics.DhcpClientEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.IpManagerEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.IpReachabilityEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.NetworkEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.RaEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ValidationProbeEvent#equals(Object):
    
EqualsAndHashCode: android.os.IncidentManager.PendingReport#equals(Object):
    
EqualsAndHashCode: android.os.StrictMode.ViolationInfo#hashCode():
    


ExecutorRegistration: android.app.AppOpsManager#startWatchingActive(int[], android.app.AppOpsManager.OnOpActiveChangedListener):
    
ExecutorRegistration: android.app.AppOpsManager#stopWatchingActive(android.app.AppOpsManager.OnOpActiveChangedListener):
    
ExecutorRegistration: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler):
    
ExecutorRegistration: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper):
    
ExecutorRegistration: android.media.audiofx.AudioEffect#setParameterListener(android.media.audiofx.AudioEffect.OnParameterChangeListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyVolumeCallback(android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback):
    
ExecutorRegistration: android.os.IncidentManager#cancelAuthorization(android.os.IncidentManager.AuthListener):
    
ExecutorRegistration: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener):
    
ExecutorRegistration: android.os.RemoteCallback#RemoteCallback(android.os.RemoteCallback.OnResultListener, android.os.Handler):
    
ExecutorRegistration: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler):
    
ExecutorRegistration: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener):
    Registration methods should have overload that accepts delivery Executor: `setListener`
ExecutorRegistration: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener):
    Registration methods should have overload that accepts delivery Executor: `setListener`
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback):
    


ForbiddenSuperClass: android.app.AppDetailsActivity:
    


GenericException: android.app.ActivityView#finalize():
    
GenericException: android.app.prediction.AppPredictor#finalize():
    
GenericException: android.service.autofill.CharSequenceTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.DateTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.ImageTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.augmented.FillWindow#finalize():
    


GetterSetterNames: android.app.NotificationChannel#isImportanceLockedByCriticalDeviceFunction():
    
GetterSetterNames: android.app.NotificationChannel#isImportanceLockedByOEM():
    
GetterSetterNames: android.location.GnssClock#setBiasNanos(double):
    
GetterSetterNames: android.location.GnssClock#setBiasUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssClock#setDriftNanosPerSecond(double):
    
GetterSetterNames: android.location.GnssClock#setDriftUncertaintyNanosPerSecond(double):
    
GetterSetterNames: android.location.GnssClock#setElapsedRealtimeNanos(long):
    
GetterSetterNames: android.location.GnssClock#setElapsedRealtimeUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssClock#setFullBiasNanos(long):
    
GetterSetterNames: android.location.GnssClock#setLeapSecond(int):
    
GetterSetterNames: android.location.GnssClock#setTimeUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setCarrierFrequencyHz(float):
    
GetterSetterNames: android.location.GnssMeasurement#setCodeType(String):
    
GetterSetterNames: android.location.GnssMeasurement#setSnrInDb(double):
    
GetterSetterNames: android.location.LocationRequest#isLocationSettingsIgnored():
    
GetterSetterNames: android.os.IncidentReportArgs#isAll():
    
GetterSetterNames: android.service.notification.NotificationStats#setDirectReplied():
    
GetterSetterNames: android.service.notification.NotificationStats#setExpanded():
    
GetterSetterNames: android.service.notification.NotificationStats#setSeen():
    
GetterSetterNames: android.service.notification.NotificationStats#setSnoozed():
    
GetterSetterNames: android.service.notification.NotificationStats#setViewedSettings():
    
GetterSetterNames: android.view.View#isAutofilled():
    
GetterSetterNames: android.view.View#isDefaultFocusHighlightEnabled():
    


IllegalStateException: android.media.audiopolicy.AudioMix.Builder#build():
    


IntentBuilderName: android.app.backup.BackupManager#getConfigurationIntent(String):
    
IntentBuilderName: android.app.backup.BackupManager#getDataManagementIntent(String):
    


IntentName: android.provider.Settings.Secure#VOICE_INTERACTION_SERVICE:
    
IntentName: android.provider.Telephony.Sms.Intents#SMS_CARRIER_PROVISION_ACTION:
    
IntentName: android.service.notification.Adjustment#KEY_CONTEXTUAL_ACTIONS:
    


InterfaceConstant: android.service.autofill.AutofillFieldClassificationService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.autofill.augmented.AugmentedAutofillService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.contentcapture.ContentCaptureService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.notification.NotificationAssistantService#SERVICE_INTERFACE:
    
InterfaceConstant: android.telecom.PhoneAccountSuggestionService#SERVICE_INTERFACE:
    


InternalField: android.telephony.ims.ImsConferenceState#mParticipants:
    Internal field mParticipants must not be exposed


KotlinOperator: android.os.WorkSource#get(int):
    


ListenerInterface: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener:
    
ListenerInterface: android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener:
    
ListenerInterface: android.os.IncidentManager.AuthListener:
    
ListenerInterface: android.telephony.ims.ImsCallSessionListener:
    Listeners should be an interface, or otherwise renamed Callback: ImsCallSessionListener
ListenerInterface: android.telephony.ims.ImsUtListener:
    Listeners should be an interface, or otherwise renamed Callback: ImsUtListener


ListenerLast: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) parameter #4:
    
ListenerLast: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper) parameter #2:
    
ListenerLast: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler) parameter #2:
    
ListenerLast: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) parameter #1:
    
ListenerLast: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) parameter #1:
    


ManagerConstructor: android.content.pm.ShortcutManager#ShortcutManager(android.content.Context):
    


ManagerLookup: android.telephony.ims.ImsMmTelManager#createForSubscriptionId(int):
    Managers must always be obtained from Context (`createForSubscriptionId`)
ManagerLookup: android.telephony.ims.ProvisioningManager#createForSubscriptionId(int):
    Managers must always be obtained from Context (`createForSubscriptionId`)


MethodNameTense: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
    Unexpected tense; probably meant `enabled`, was `getCapabilitiesToEnable`


MethodNameUnits: android.telephony.ims.ImsCallForwardInfo#getTimeSeconds():
    Returned time values must be in milliseconds, was `getTimeSeconds`


MinMaxConstant: android.view.autofill.AutofillManager#MAX_TEMP_AUGMENTED_SERVICE_DURATION_MS:
    


MissingNullability: android.app.Activity#onMovedToDisplay(int, android.content.res.Configuration) parameter #1:
    
MissingNullability: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int) parameter #0:
    
MissingNullability: android.app.ActivityManager#alwaysShowUnsupportedCompileSdkWarning(android.content.ComponentName) parameter #0:
    
MissingNullability: android.app.ActivityManager#forceStopPackage(String) parameter #0:
    
MissingNullability: android.app.ActivityManager#getPackageImportance(String) parameter #0:
    
MissingNullability: android.app.ActivityManager#removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener) parameter #0:
    
MissingNullability: android.app.ActivityManager#scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int) parameter #0:
    
MissingNullability: android.app.ActivityManager.TaskDescription#getIconFilename():
    
MissingNullability: android.app.ActivityTaskManager#clearLaunchParamsForPackages(java.util.List<java.lang.String>) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#listAllStacks():
    
MissingNullability: android.app.ActivityTaskManager#moveTopActivityToPinnedStack(int, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#removeStacksInWindowingModes(int[]) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#removeStacksWithActivityTypes(int[]) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#resizeDockedStack(android.graphics.Rect, android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#resizeDockedStack(android.graphics.Rect, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#resizeStack(int, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#resizeStack(int, android.graphics.Rect, boolean) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#resizeTask(int, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) parameter #4:
    
MissingNullability: android.app.ActivityTaskManager#supportsMultiWindow(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#supportsSplitScreenMultiWindow(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet) parameter #1:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int) parameter #1:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int, boolean) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int, boolean) parameter #1:
    
MissingNullability: android.app.ActivityView#gatherTransparentRegion(android.graphics.Region) parameter #0:
    
MissingNullability: android.app.ActivityView#onVisibilityChanged(android.view.View, int) parameter #0:
    
MissingNullability: android.app.ActivityView#setCallback(android.app.ActivityView.StateCallback) parameter #0:
    
MissingNullability: android.app.ActivityView#setForwardedInsets(android.graphics.Insets) parameter #0:
    
MissingNullability: android.app.ActivityView#startActivity(android.content.Intent, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.ActivityView.StateCallback#onActivityViewDestroyed(android.app.ActivityView) parameter #0:
    
MissingNullability: android.app.ActivityView.StateCallback#onActivityViewReady(android.app.ActivityView) parameter #0:
    
MissingNullability: android.app.ActivityView.StateCallback#onTaskCreated(int, android.content.ComponentName) parameter #1:
    
MissingNullability: android.app.AppDetailsActivity#onCreate(android.os.Bundle) parameter #0:
    
MissingNullability: android.app.AppOpsManager#getOpStrs():
    
MissingNullability: android.app.AppOpsManager#isOperationActive(int, int, String) parameter #2:
    
MissingNullability: android.app.AppOpsManager#opToPermission(int):
    
MissingNullability: android.app.AppOpsManager#permissionToOpCode(String) parameter #0:
    
MissingNullability: android.app.AppOpsManager#setMode(String, int, String, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager#setMode(String, int, String, int) parameter #2:
    
MissingNullability: android.app.AppOpsManager#setMode(int, int, String, int) parameter #2:
    
MissingNullability: android.app.AppOpsManager#setUidMode(String, int, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalOp#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalOps#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalUidOps#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.OnOpActiveChangedListener#onOpActiveChanged(int, int, String, boolean) parameter #2:
    
MissingNullability: android.app.AppOpsManager.OpEntry#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.NotificationManager#allowAssistantAdjustment(String) parameter #0:
    
MissingNullability: android.app.NotificationManager#disallowAssistantAdjustment(String) parameter #0:
    
MissingNullability: android.app.NotificationManager#getEffectsSuppressor():
    
MissingNullability: android.app.NotificationManager#matchesCallFilter(android.os.Bundle) parameter #0:
    
MissingNullability: android.app.PictureInPictureParams#getActions():
    
MissingNullability: android.app.PictureInPictureParams#getSourceRectHint():
    
MissingNullability: android.app.TimePickerDialog#getTimePicker():
    
MissingNullability: android.app.UiAutomation#executeShellCommandRw(String):
    
MissingNullability: android.app.UiAutomation#executeShellCommandRw(String) parameter #0:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.app.WallpaperManager#setWallpaperComponent(android.content.ComponentName) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#compareTo(android.app.WindowConfiguration) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#getAppBounds():
    
MissingNullability: android.app.WindowConfiguration#getBounds():
    
MissingNullability: android.app.WindowConfiguration#setAppBounds(android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#setBounds(android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#setTo(android.app.WindowConfiguration) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.admin.DevicePolicyManager#getOwnerInstalledCaCerts(android.os.UserHandle):
    
MissingNullability: android.app.admin.SecurityLog.SecurityEvent#SecurityEvent(long, byte[]) parameter #1:
    
MissingNullability: android.app.backup.BackupManager#getConfigurationIntent(String):
    
MissingNullability: android.app.backup.BackupManager#getConfigurationIntent(String) parameter #0:
    
MissingNullability: android.app.backup.BackupManager#getDataManagementIntent(String):
    
MissingNullability: android.app.backup.BackupManager#getDataManagementIntent(String) parameter #0:
    
MissingNullability: android.app.backup.BackupManager#getDestinationString(String):
    
MissingNullability: android.app.backup.BackupManager#getDestinationString(String) parameter #0:
    
MissingNullability: android.app.prediction.AppPredictionSessionId#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppPredictor#getSessionId():
    
MissingNullability: android.app.prediction.AppTarget#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppTargetEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppTargetId#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.AutofillOptions#forWhitelistingItself():
    
MissingNullability: android.content.AutofillOptions#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.ContentCaptureOptions#forWhitelistingItself():
    
MissingNullability: android.content.ContentCaptureOptions#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.ContentResolver#getSyncAdapterPackagesForAuthorityAsUser(String, int):
    
MissingNullability: android.content.ContentResolver#getSyncAdapterPackagesForAuthorityAsUser(String, int) parameter #0:
    
MissingNullability: android.content.Context#createPackageContextAsUser(String, int, android.os.UserHandle):
    
MissingNullability: android.content.Context#createPackageContextAsUser(String, int, android.os.UserHandle) parameter #0:
    
MissingNullability: android.content.Context#createPackageContextAsUser(String, int, android.os.UserHandle) parameter #2:
    
MissingNullability: android.content.Context#getDisplay():
    
MissingNullability: android.content.Context#getUser():
    
MissingNullability: android.content.ContextWrapper#getDisplay():
    
MissingNullability: android.content.ContextWrapper#setContentCaptureOptions(android.content.ContentCaptureOptions) parameter #0:
    
MissingNullability: android.content.pm.ActivityInfo#isTranslucentOrFloating(android.content.res.TypedArray) parameter #0:
    
MissingNullability: android.content.pm.LauncherApps#LauncherApps(android.content.Context) parameter #0:
    
MissingNullability: android.content.pm.PackageInstaller.SessionParams#setGrantedRuntimePermissions(String[]) parameter #0:
    
MissingNullability: android.content.pm.PackageManager#getNamesForUids(int[]) parameter #0:
    
MissingNullability: android.content.pm.ShortcutManager#ShortcutManager(android.content.Context) parameter #0:
    
MissingNullability: android.content.res.AssetManager#getOverlayableMap(String) parameter #0:
    
MissingNullability: android.content.res.Configuration#windowConfiguration:
    
MissingNullability: android.content.rollback.PackageRollbackInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.rollback.RollbackInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDebug#getDatabaseInfo():
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#DbStats(String, long, long, int, int, int, int) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#cache:
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#dbName:
    
MissingNullability: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #2:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #3:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#cursorRequeried(android.database.Cursor) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]):
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#setBindArguments(String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getDefaultJournalMode():
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getDefaultSyncMode():
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getWALSyncMode():
    
MissingNullability: android.graphics.ImageDecoder#createSource(android.content.res.Resources, java.io.InputStream, int) parameter #0:
    
MissingNullability: android.graphics.ImageDecoder#createSource(android.content.res.Resources, java.io.InputStream, int) parameter #1:
    
MissingNullability: android.graphics.drawable.AdaptiveIconDrawable#getSafeZone():
    
MissingNullability: android.graphics.drawable.ColorDrawable#getXfermode():
    
MissingNullability: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) parameter #0:
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getBucketBoundaries():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getLocalDate():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getStats():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.AmbientDisplayConfiguration#AmbientDisplayConfiguration(android.content.Context) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#luxTimestamps:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#luxValues:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#packageName:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration#getCurve():
    
MissingNullability: android.hardware.display.BrightnessConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration.Builder#Builder(float[], float[]) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration.Builder#Builder(float[], float[]) parameter #1:
    
MissingNullability: android.hardware.display.BrightnessCorrection#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.DisplayManager#getAmbientBrightnessStats():
    
MissingNullability: android.hardware.display.DisplayManager#getBrightnessConfiguration():
    
MissingNullability: android.hardware.display.DisplayManager#getBrightnessEvents():
    
MissingNullability: android.hardware.display.DisplayManager#getStableDisplaySize():
    
MissingNullability: android.hardware.display.DisplayManager#setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration) parameter #0:
    
MissingNullability: android.location.GnssClock#set(android.location.GnssClock) parameter #0:
    
MissingNullability: android.location.GnssMeasurement#set(android.location.GnssMeasurement) parameter #0:
    
MissingNullability: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #0:
    
MissingNullability: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #1:
    
MissingNullability: android.location.GnssNavigationMessage#set(android.location.GnssNavigationMessage) parameter #0:
    
MissingNullability: android.location.GnssNavigationMessage#setData(byte[]) parameter #0:
    
MissingNullability: android.location.LocationManager#getTestProviderCurrentRequests(String) parameter #0:
    
MissingNullability: android.location.LocationRequest#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.media.AudioFocusInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #3:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #4:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #6:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #10:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #11:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #3:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #4:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #6:
    
MissingNullability: android.media.PlaybackParams#setAudioStretchMode(int):
    
MissingNullability: android.media.audiofx.AudioEffect#EFFECT_TYPE_NULL:
    
MissingNullability: android.media.audiofx.AudioEffect#byteArrayToInt(byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#byteArrayToShort(byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, int[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, short[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int[], short[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int[], short[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#intToByteArray(int):
    
MissingNullability: android.media.audiofx.AudioEffect#isEffectTypeAvailable(java.util.UUID) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int, byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], int[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], int[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameterListener(android.media.audiofx.AudioEffect.OnParameterChangeListener) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#shortToByteArray(short):
    
MissingNullability: android.media.audiofx.AudioEffect.Descriptor#Descriptor(android.os.Parcel) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.Descriptor#writeToParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #2:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #3:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#Builder(android.media.audiopolicy.AudioMixingRule) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#build():
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setDevice(android.media.AudioDeviceInfo):
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat):
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setRouteFlags(int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object) parameter #1:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#build():
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object) parameter #1:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix):
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix):
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#setRegistration(String) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#toLogFriendlyString():
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusAbandon(android.media.AudioFocusInfo) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusGrant(android.media.AudioFocusInfo, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusLoss(android.media.AudioFocusInfo, boolean) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusRequest(android.media.AudioFocusInfo, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener#onMixStateUpdate(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#Builder(android.content.Context) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener) parameter #0:
    
MissingNullability: android.metrics.LogMaker#LogMaker(Object[]) parameter #0:
    
MissingNullability: android.metrics.LogMaker#addTaggedData(int, Object):
    
MissingNullability: android.metrics.LogMaker#addTaggedData(int, Object) parameter #1:
    
MissingNullability: android.metrics.LogMaker#clearCategory():
    
MissingNullability: android.metrics.LogMaker#clearPackageName():
    
MissingNullability: android.metrics.LogMaker#clearSubtype():
    
MissingNullability: android.metrics.LogMaker#clearTaggedData(int):
    
MissingNullability: android.metrics.LogMaker#clearType():
    
MissingNullability: android.metrics.LogMaker#deserialize(Object[]) parameter #0:
    
MissingNullability: android.metrics.LogMaker#getCounterName():
    
MissingNullability: android.metrics.LogMaker#getPackageName():
    
MissingNullability: android.metrics.LogMaker#getTaggedData(int):
    
MissingNullability: android.metrics.LogMaker#isSubsetOf(android.metrics.LogMaker) parameter #0:
    
MissingNullability: android.metrics.LogMaker#isValidValue(Object) parameter #0:
    
MissingNullability: android.metrics.LogMaker#serialize():
    
MissingNullability: android.metrics.LogMaker#setCategory(int):
    
MissingNullability: android.metrics.LogMaker#setPackageName(String):
    
MissingNullability: android.metrics.LogMaker#setPackageName(String) parameter #0:
    
MissingNullability: android.metrics.LogMaker#setSubtype(int):
    
MissingNullability: android.metrics.LogMaker#setType(int):
    
MissingNullability: android.metrics.MetricsReader#next():
    
MissingNullability: android.net.NetworkCapabilities#getCapabilities():
    
MissingNullability: android.net.StaticIpConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.TestNetworkInterface#CREATOR:
    
MissingNullability: android.net.TestNetworkInterface#TestNetworkInterface(android.os.ParcelFileDescriptor, String) parameter #0:
    
MissingNullability: android.net.TestNetworkInterface#TestNetworkInterface(android.os.ParcelFileDescriptor, String) parameter #1:
    
MissingNullability: android.net.TestNetworkInterface#getFileDescriptor():
    
MissingNullability: android.net.TestNetworkInterface#getInterfaceName():
    
MissingNullability: android.net.TestNetworkInterface#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.TestNetworkManager#createTapInterface():
    
MissingNullability: android.net.TestNetworkManager#createTunInterface(android.net.LinkAddress[]):
    
MissingNullability: android.net.apf.ApfCapabilities#CREATOR:
    
MissingNullability: android.net.apf.ApfCapabilities#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.metrics.DhcpClientEvent.Builder#setMsg(String) parameter #0:
    
MissingNullability: android.os.Build#is64BitAbi(String) parameter #0:
    
MissingNullability: android.os.Build.VERSION#ACTIVE_CODENAMES:
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...):
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...) parameter #0:
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...) parameter #1:
    
MissingNullability: android.os.FileUtils#contains(java.io.File, java.io.File) parameter #0:
    
MissingNullability: android.os.FileUtils#contains(java.io.File, java.io.File) parameter #1:
    
MissingNullability: android.os.HwBinder#getService(String, String):
    
MissingNullability: android.os.HwBinder#getService(String, String) parameter #0:
    
MissingNullability: android.os.HwBinder#getService(String, String) parameter #1:
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean):
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean) parameter #0:
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean) parameter #1:
    
MissingNullability: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.HwBinder#registerService(String) parameter #0:
    
MissingNullability: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.HwBlob#copyToBoolArray(long, boolean[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToDoubleArray(long, double[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToFloatArray(long, float[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt16Array(long, short[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt32Array(long, int[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt64Array(long, long[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt8Array(long, byte[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#getString(long):
    
MissingNullability: android.os.HwBlob#putBlob(long, android.os.HwBlob) parameter #1:
    
MissingNullability: android.os.HwBlob#putBoolArray(long, boolean[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putDoubleArray(long, double[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putFloatArray(long, float[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt16Array(long, short[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt32Array(long, int[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt64Array(long, long[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt8Array(long, byte[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putString(long, String) parameter #1:
    
MissingNullability: android.os.HwBlob#wrapArray(boolean[]):
    
MissingNullability: android.os.HwBlob#wrapArray(byte[]):
    
MissingNullability: android.os.HwBlob#wrapArray(double[]):
    
MissingNullability: android.os.HwBlob#wrapArray(float[]):
    
MissingNullability: android.os.HwBlob#wrapArray(int[]):
    
MissingNullability: android.os.HwBlob#wrapArray(long[]):
    
MissingNullability: android.os.HwBlob#wrapArray(short[]):
    
MissingNullability: android.os.HwParcel#enforceInterface(String) parameter #0:
    
MissingNullability: android.os.HwParcel#readBoolVector():
    
MissingNullability: android.os.HwParcel#readBuffer(long):
    
MissingNullability: android.os.HwParcel#readDoubleVector():
    
MissingNullability: android.os.HwParcel#readEmbeddedBuffer(long, long, long, boolean):
    
MissingNullability: android.os.HwParcel#readFloatVector():
    
MissingNullability: android.os.HwParcel#readInt16Vector():
    
MissingNullability: android.os.HwParcel#readInt32Vector():
    
MissingNullability: android.os.HwParcel#readInt64Vector():
    
MissingNullability: android.os.HwParcel#readInt8Vector():
    
MissingNullability: android.os.HwParcel#readString():
    
MissingNullability: android.os.HwParcel#readStringVector():
    
MissingNullability: android.os.HwParcel#readStrongBinder():
    
MissingNullability: android.os.HwParcel#writeBoolVector(java.util.ArrayList<java.lang.Boolean>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeBuffer(android.os.HwBlob) parameter #0:
    
MissingNullability: android.os.HwParcel#writeDoubleVector(java.util.ArrayList<java.lang.Double>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeFloatVector(java.util.ArrayList<java.lang.Float>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt16Vector(java.util.ArrayList<java.lang.Short>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt32Vector(java.util.ArrayList<java.lang.Integer>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt64Vector(java.util.ArrayList<java.lang.Long>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt8Vector(java.util.ArrayList<java.lang.Byte>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInterfaceToken(String) parameter #0:
    
MissingNullability: android.os.HwParcel#writeString(String) parameter #0:
    
MissingNullability: android.os.HwParcel#writeStringVector(java.util.ArrayList<java.lang.String>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeStrongBinder(android.os.IHwBinder) parameter #0:
    
MissingNullability: android.os.IHwBinder#linkToDeath(android.os.IHwBinder.DeathRecipient, long) parameter #0:
    
MissingNullability: android.os.IHwBinder#queryLocalInterface(String):
    
MissingNullability: android.os.IHwBinder#queryLocalInterface(String) parameter #0:
    
MissingNullability: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.IHwBinder#unlinkToDeath(android.os.IHwBinder.DeathRecipient) parameter #0:
    
MissingNullability: android.os.IHwInterface#asBinder():
    
MissingNullability: android.os.IncidentManager#approveReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#cancelAuthorization(android.os.IncidentManager.AuthListener) parameter #0:
    
MissingNullability: android.os.IncidentManager#deleteIncidentReports(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#denyReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#getIncidentReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#getIncidentReportList(String) parameter #0:
    
MissingNullability: android.os.IncidentManager#getPendingReports():
    
MissingNullability: android.os.IncidentManager#reportIncident(android.os.IncidentReportArgs) parameter #0:
    
MissingNullability: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener) parameter #1:
    
MissingNullability: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener) parameter #3:
    
MissingNullability: android.os.IncidentManager.IncidentReport#IncidentReport(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentManager.IncidentReport#getInputStream():
    
MissingNullability: android.os.IncidentManager.IncidentReport#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#IncidentReportArgs(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#addHeader(byte[]) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#readFromParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor):
    
MissingNullability: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor) parameter #0:
    
MissingNullability: android.os.RemoteCallback#RemoteCallback(android.os.RemoteCallback.OnResultListener) parameter #0:
    
MissingNullability: android.os.RemoteCallback#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.StrictMode#setViolationLogger(android.os.StrictMode.ViolationLogger) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel, boolean) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#broadcastIntentAction:
    
MissingNullability: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String) parameter #1:
    
MissingNullability: android.os.StrictMode.ViolationInfo#getStackTrace():
    
MissingNullability: android.os.StrictMode.ViolationInfo#getViolationClass():
    
MissingNullability: android.os.StrictMode.ViolationInfo#getViolationDetails():
    
MissingNullability: android.os.StrictMode.ViolationInfo#tags:
    
MissingNullability: android.os.StrictMode.ViolationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationLogger#log(android.os.StrictMode.ViolationInfo) parameter #0:
    
MissingNullability: android.os.UserHandle#of(int):
    
MissingNullability: android.os.VibrationEffect#RINGTONES:
    
MissingNullability: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #0:
    
MissingNullability: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #1:
    
MissingNullability: android.os.VibrationEffect#get(int):
    
MissingNullability: android.os.VibrationEffect#get(int, boolean):
    
MissingNullability: android.os.VibrationEffect.OneShot#OneShot(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.OneShot#scale(float, int):
    
MissingNullability: android.os.VibrationEffect.OneShot#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Prebaked#Prebaked(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Prebaked#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(long[], int[], int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(long[], int[], int) parameter #1:
    
MissingNullability: android.os.VibrationEffect.Waveform#getAmplitudes():
    
MissingNullability: android.os.VibrationEffect.Waveform#getTimings():
    
MissingNullability: android.os.VibrationEffect.Waveform#scale(float, int):
    
MissingNullability: android.os.VibrationEffect.Waveform#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VintfObject#getHalNamesAndVersions():
    
MissingNullability: android.os.VintfObject#getSepolicyVersion():
    
MissingNullability: android.os.VintfObject#getTargetFrameworkCompatibilityMatrixVersion():
    
MissingNullability: android.os.VintfObject#getVndkSnapshots():
    
MissingNullability: android.os.VintfObject#report():
    
MissingNullability: android.os.VintfRuntimeInfo#getCpuInfo():
    
MissingNullability: android.os.VintfRuntimeInfo#getHardwareId():
    
MissingNullability: android.os.VintfRuntimeInfo#getKernelVersion():
    
MissingNullability: android.os.VintfRuntimeInfo#getNodeName():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsName():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsRelease():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsVersion():
    
MissingNullability: android.os.WorkSource#add(int, String) parameter #1:
    
MissingNullability: android.os.WorkSource#addReturningNewbs(android.os.WorkSource) parameter #0:
    
MissingNullability: android.os.WorkSource#getName(int):
    
MissingNullability: android.os.WorkSource#setReturningDiffs(android.os.WorkSource) parameter #0:
    
MissingNullability: android.os.health.HealthKeys.Constants#Constants(Class) parameter #0:
    
MissingNullability: android.os.health.HealthKeys.Constants#getDataType():
    
MissingNullability: android.os.health.HealthKeys.Constants#getKeys(int):
    
MissingNullability: android.os.health.HealthStats#HealthStats(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.health.HealthStatsWriter) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#getHealthStats():
    
MissingNullability: android.os.health.HealthStatsParceler#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.health.HealthStatsWriter#HealthStatsWriter(android.os.health.HealthKeys.Constants) parameter #0:
    
MissingNullability: android.os.health.HealthStatsWriter#addMeasurements(int, String, long) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addStats(int, String, android.os.health.HealthStatsWriter) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addStats(int, String, android.os.health.HealthStatsWriter) parameter #2:
    
MissingNullability: android.os.health.HealthStatsWriter#addTimers(int, String, android.os.health.TimerStat) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addTimers(int, String, android.os.health.TimerStat) parameter #2:
    
MissingNullability: android.os.health.HealthStatsWriter#flattenToParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.storage.StorageVolume#getPath():
    
MissingNullability: android.permission.RuntimePermissionPresentationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.provider.CalendarContract.Calendars#SYNC_WRITABLE_COLUMNS:
    
MissingNullability: android.provider.CalendarContract.Events#SYNC_WRITABLE_COLUMNS:
    
MissingNullability: android.provider.ContactsContract.CommonDataKinds.Phone#ENTERPRISE_CONTENT_URI:
    
MissingNullability: android.provider.ContactsContract.RawContactsEntity#CORP_CONTENT_URI:
    
MissingNullability: android.provider.DeviceConfig#getProperty(String, String):
    
MissingNullability: android.provider.DeviceConfig#getString(String, String, String):
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File):
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File):
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#waitForIdle(android.content.Context) parameter #0:
    
MissingNullability: android.security.KeyStoreException#KeyStoreException(int, String) parameter #1:
    
MissingNullability: android.security.keystore.AttestationUtils#attestDeviceIds(android.content.Context, int[], byte[]) parameter #0:
    
MissingNullability: android.security.keystore.KeyProtection.Builder#setBoundToSpecificSecureUserId(long):
    
MissingNullability: android.service.autofill.AutofillFieldClassificationService#onBind(android.content.Intent):
    
MissingNullability: android.service.autofill.AutofillFieldClassificationService#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.service.autofill.CompositeUserData#getCategoryIds():
    
MissingNullability: android.service.autofill.CompositeUserData#getDefaultFieldClassificationArgs():
    
MissingNullability: android.service.autofill.CompositeUserData#getFieldClassificationAlgorithms():
    
MissingNullability: android.service.autofill.CompositeUserData#getFieldClassificationArgs():
    
MissingNullability: android.service.autofill.CompositeUserData#getValues():
    
MissingNullability: android.service.autofill.CompositeUserData#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.autofill.UserData#getFieldClassificationAlgorithms():
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #2:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#onUnbind(android.content.Intent) parameter #0:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #2:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #0:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #1:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #2:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #3:
    
MissingNullability: android.service.notification.Adjustment#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context) parameter #0:
    
MissingNullability: android.service.notification.NotificationStats#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #1:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #2:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(android.os.Parcel) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#getConfirmation():
    
MissingNullability: android.service.notification.SnoozeCriterion#getExplanation():
    
MissingNullability: android.service.notification.SnoozeCriterion#getId():
    
MissingNullability: android.service.notification.SnoozeCriterion#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telecom.Call.Details#getTelecomCallId():
    
MissingNullability: android.telecom.CallScreeningService.CallResponse.Builder#setShouldScreenCallFurther(boolean):
    
MissingNullability: android.telecom.Conference#getPrimaryConnection():
    
MissingNullability: android.telecom.PhoneAccountSuggestionService#onBind(android.content.Intent):
    
MissingNullability: android.telecom.PhoneAccountSuggestionService#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.telephony.CallQuality#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `dest` in method `writeToParcel`
MissingNullability: android.telephony.DataSpecificRegistrationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.LteVopsSupportInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.NetworkRegistrationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ServiceState#addNetworkRegistrationInfo(android.telephony.NetworkRegistrationInfo) parameter #0:
    
MissingNullability: android.telephony.ServiceState#setCellBandwidths(int[]) parameter #0:
    
MissingNullability: android.telephony.SmsManager#checkSmsShortCodeDestination(String, String) parameter #0:
    
MissingNullability: android.telephony.SmsManager#checkSmsShortCodeDestination(String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#checkCarrierPrivilegesForPackage(String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent):
    Missing nullability on method `getCarrierPackageNamesForIntent` return
MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent) parameter #0:
    Missing nullability on parameter `intent` in method `getCarrierPackageNamesForIntent`
MissingNullability: android.telephony.TelephonyManager#getLine1AlphaTag():
    
MissingNullability: android.telephony.TelephonyManager#getRadioHalVersion():
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #2:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #3:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #4:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #5:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #6:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #2:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #3:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #4:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #5:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #6:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #7:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #8:
    
MissingNullability: android.telephony.ims.ImsCallForwardInfo#getNumber():
    Missing nullability on method `getNumber` return
MissingNullability: android.telephony.ims.ImsCallForwardInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #2:
    Missing nullability on parameter `callExtras` in method `ImsCallProfile`
MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #3:
    Missing nullability on parameter `mediaProfile` in method `ImsCallProfile`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String):
    Missing nullability on method `getCallExtra` return
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtra`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String):
    Missing nullability on method `getCallExtra` return
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtra`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #1:
    Missing nullability on parameter `defaultValue` in method `getCallExtra`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtraBoolean`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String, boolean) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtraBoolean`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtraInt`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String, int) parameter #0:
    Missing nullability on parameter `name` in method `getCallExtraInt`
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtras():
    Missing nullability on method `getCallExtras` return
MissingNullability: android.telephony.ims.ImsCallProfile#getMediaProfile():
    Missing nullability on method `getMediaProfile` return
MissingNullability: android.telephony.ims.ImsCallProfile#getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `callProfile` in method `getVideoStateFromImsCallProfile`
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #0:
    Missing nullability on parameter `name` in method `setCallExtra`
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #1:
    Missing nullability on parameter `value` in method `setCallExtra`
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraBoolean(String, boolean) parameter #0:
    Missing nullability on parameter `name` in method `setCallExtraBoolean`
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraInt(String, int) parameter #0:
    Missing nullability on parameter `name` in method `setCallExtraInt`
MissingNullability: android.telephony.ims.ImsCallProfile#updateCallExtras(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `updateCallExtras`
MissingNullability: android.telephony.ims.ImsCallProfile#updateCallType(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `updateCallType`
MissingNullability: android.telephony.ims.ImsCallProfile#updateMediaProfile(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `updateMediaProfile`
MissingNullability: android.telephony.ims.ImsCallProfile#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionConferenceExtendFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `newSession` in method `callSessionConferenceExtendReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    Missing nullability on parameter `profile` in method `callSessionConferenceExtendReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `newSession` in method `callSessionConferenceExtended`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    Missing nullability on parameter `profile` in method `callSessionConferenceExtended`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState) parameter #0:
    Missing nullability on parameter `state` in method `callSessionConferenceStateUpdated`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
    Missing nullability on parameter `reasonInfo` in method `callSessionHandover`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
    Missing nullability on parameter `reasonInfo` in method `callSessionHandoverFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHeld(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionHeld`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionHoldFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionHoldReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiated(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionInitiated`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionInitiatedFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionInviteParticipantsRequestFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeComplete(android.telephony.ims.stub.ImsCallSessionImplBase) parameter #0:
    Missing nullability on parameter `newSession` in method `callSessionMergeComplete`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionMergeFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `newSession` in method `callSessionMergeStarted`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    Missing nullability on parameter `profile` in method `callSessionMergeStarted`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionProgressing(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionProgressing`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRemoveParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionRemoveParticipantsRequestFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionResumeFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionResumeReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumed(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionResumed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttMessageReceived(String) parameter #0:
    Missing nullability on parameter `rttMessage` in method `callSessionRttMessageReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `callProfile` in method `callSessionRttModifyRequestReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification) parameter #0:
    Missing nullability on parameter `suppSrvNotification` in method `callSessionSuppServiceReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionTerminated(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionTerminated`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `reasonInfo` in method `callSessionUpdateFailed`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionUpdateReceived`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdated(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `profile` in method `callSessionUpdated`
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUssdMessageReceived(int, String) parameter #1:
    Missing nullability on parameter `ussdMessage` in method `callSessionUssdMessageReceived`
MissingNullability: android.telephony.ims.ImsConferenceState#getConnectionStateForStatus(String) parameter #0:
    Missing nullability on parameter `status` in method `getConnectionStateForStatus`
MissingNullability: android.telephony.ims.ImsConferenceState#mParticipants:
    Missing nullability on field `mParticipants` in class `class android.telephony.ims.ImsConferenceState`
MissingNullability: android.telephony.ims.ImsConferenceState#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsExternalCallState#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsReasonInfo#ImsReasonInfo(int, int, String) parameter #2:
    Missing nullability on parameter `extraMessage` in method `ImsReasonInfo`
MissingNullability: android.telephony.ims.ImsReasonInfo#getExtraMessage():
    Missing nullability on method `getExtraMessage` return
MissingNullability: android.telephony.ims.ImsReasonInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsService#createMmTelFeature(int):
    Missing nullability on method `createMmTelFeature` return
MissingNullability: android.telephony.ims.ImsService#createRcsFeature(int):
    Missing nullability on method `createRcsFeature` return
MissingNullability: android.telephony.ims.ImsService#getConfig(int):
    Missing nullability on method `getConfig` return
MissingNullability: android.telephony.ims.ImsService#getRegistration(int):
    Missing nullability on method `getRegistration` return
MissingNullability: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration) parameter #0:
    Missing nullability on parameter `c` in method `onUpdateSupportedImsFeatures`
MissingNullability: android.telephony.ims.ImsService#querySupportedImsFeatures():
    Missing nullability on method `querySupportedImsFeatures` return
MissingNullability: android.telephony.ims.ImsSsData#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsSsInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsStreamMediaProfile#copyFrom(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    Missing nullability on parameter `profile` in method `copyFrom`
MissingNullability: android.telephony.ims.ImsStreamMediaProfile#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #4:
    Missing nullability on parameter `number` in method `ImsSuppServiceNotification`
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #5:
    Missing nullability on parameter `history` in method `ImsSuppServiceNotification`
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#history:
    Missing nullability on field `history` in class `class android.telephony.ims.ImsSuppServiceNotification`
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#number:
    Missing nullability on field `number` in class `class android.telephony.ims.ImsSuppServiceNotification`
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.telephony.ims.ImsUtListener#onSupplementaryServiceIndication(android.telephony.ims.ImsSsData) parameter #0:
    Missing nullability on parameter `ssData` in method `onSupplementaryServiceIndication`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    Missing nullability on parameter `cbInfo` in method `onUtConfigurationCallBarringQueried`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
    Missing nullability on parameter `cfInfo` in method `onUtConfigurationCallForwardQueried`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    Missing nullability on parameter `cwInfo` in method `onUtConfigurationCallWaitingQueried`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueried(int, android.os.Bundle) parameter #1:
    Missing nullability on parameter `configuration` in method `onUtConfigurationQueried`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueryFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    Missing nullability on parameter `error` in method `onUtConfigurationQueryFailed`
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationUpdateFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    Missing nullability on parameter `error` in method `onUtConfigurationUpdateFailed`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities) parameter #0:
    Missing nullability on parameter `CameraCapabilities` in method `changeCameraCapabilities`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #0:
    Missing nullability on parameter `fromProfile` in method `onSendSessionModifyRequest`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
    Missing nullability on parameter `toProfile` in method `onSendSessionModifyRequest`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyResponse(android.telecom.VideoProfile) parameter #0:
    Missing nullability on parameter `responseProfile` in method `onSendSessionModifyResponse`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String) parameter #0:
    Missing nullability on parameter `cameraId` in method `onSetCamera`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String, int) parameter #0:
    Missing nullability on parameter `cameraId` in method `onSetCamera`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetDisplaySurface(android.view.Surface) parameter #0:
    Missing nullability on parameter `surface` in method `onSetDisplaySurface`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPauseImage(android.net.Uri) parameter #0:
    Missing nullability on parameter `uri` in method `onSetPauseImage`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPreviewSurface(android.view.Surface) parameter #0:
    Missing nullability on parameter `surface` in method `onSetPreviewSurface`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyRequest(android.telecom.VideoProfile) parameter #0:
    Missing nullability on parameter `VideoProfile` in method `receiveSessionModifyRequest`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
    Missing nullability on parameter `requestedProfile` in method `receiveSessionModifyResponse`
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #2:
    Missing nullability on parameter `responseProfile` in method `receiveSessionModifyResponse`
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToDisable():
    Missing nullability on method `getCapabilitiesToDisable` return
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
    Missing nullability on method `getCapabilitiesToEnable` return
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `dest` in method `writeToParcel`
MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #0:
    Missing nullability on parameter `request` in method `changeEnabledCapabilities`
MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #1:
    Missing nullability on parameter `c` in method `changeEnabledCapabilities`
MissingNullability: android.telephony.ims.feature.MmTelFeature#queryCapabilityStatus():
    Missing nullability on method `queryCapabilityStatus` return
MissingNullability: android.telephony.ims.feature.MmTelFeature.MmTelCapabilities#MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities) parameter #0:
    Missing nullability on parameter `c` in method `MmTelCapabilities`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#accept(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
    Missing nullability on parameter `profile` in method `accept`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#deflect(String) parameter #0:
    Missing nullability on parameter `deflectNumber` in method `deflect`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#extendToConference(String[]) parameter #0:
    Missing nullability on parameter `participants` in method `extendToConference`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallId():
    Missing nullability on method `getCallId` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallProfile():
    Missing nullability on method `getCallProfile` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getImsVideoCallProvider():
    Missing nullability on method `getImsVideoCallProvider` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getLocalCallProfile():
    Missing nullability on method `getLocalCallProfile` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String):
    Missing nullability on method `getProperty` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String) parameter #0:
    Missing nullability on parameter `name` in method `getProperty`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getRemoteCallProfile():
    Missing nullability on method `getRemoteCallProfile` return
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#hold(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    Missing nullability on parameter `profile` in method `hold`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#inviteParticipants(String[]) parameter #0:
    Missing nullability on parameter `participants` in method `inviteParticipants`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#removeParticipants(String[]) parameter #0:
    Missing nullability on parameter `participants` in method `removeParticipants`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#resume(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    Missing nullability on parameter `profile` in method `resume`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendDtmf(char, android.os.Message) parameter #1:
    Missing nullability on parameter `result` in method `sendDtmf`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttMessage(String) parameter #0:
    Missing nullability on parameter `rttMessage` in method `sendRttMessage`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttModifyRequest(android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `toProfile` in method `sendRttModifyRequest`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendUssd(String) parameter #0:
    Missing nullability on parameter `ussdMessage` in method `sendUssd`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener) parameter #0:
    Missing nullability on parameter `listener` in method `setListener`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `callee` in method `start`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #1:
    Missing nullability on parameter `profile` in method `start`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #0:
    Missing nullability on parameter `participants` in method `startConference`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #1:
    Missing nullability on parameter `profile` in method `startConference`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#update(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
    Missing nullability on parameter `profile` in method `update`
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase.State#toString(int):
    Missing nullability on method `toString` return
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#getConfigString(int):
    Missing nullability on method `getConfigString` return
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#notifyProvisionedValueChanged(int, String) parameter #1:
    Missing nullability on parameter `value` in method `notifyProvisionedValueChanged`
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#setConfig(int, String) parameter #1:
    Missing nullability on parameter `value` in method `setConfig`
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#getServiceFeatures():
    Missing nullability on method `getServiceFeatures` return
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    Missing nullability on parameter `dest` in method `writeToParcel`
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#addFeature(int, int):
    Missing nullability on method `addFeature` return
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#build():
    Missing nullability on method `build` return
MissingNullability: android.telephony.ims.stub.ImsMultiEndpointImplBase#onImsExternalCallStateUpdate(java.util.List<android.telephony.ims.ImsExternalCallState>) parameter #0:
    Missing nullability on parameter `externalCallDialogs` in method `onImsExternalCallStateUpdate`
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onDeregistered(android.telephony.ims.ImsReasonInfo) parameter #0:
    Missing nullability on parameter `info` in method `onDeregistered`
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
    Missing nullability on parameter `uris` in method `onSubscriberAssociatedUriChanged`
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    Missing nullability on parameter `info` in method `onTechnologyChangeFailed`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#getSmsFormat():
    Missing nullability on method `getSmsFormat` return
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #1:
    Missing nullability on parameter `format` in method `onSmsReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #2:
    Missing nullability on parameter `pdu` in method `onSmsReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #1:
    Missing nullability on parameter `format` in method `onSmsStatusReportReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #2:
    Missing nullability on parameter `pdu` in method `onSmsStatusReportReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #2:
    Missing nullability on parameter `format` in method `onSmsStatusReportReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #3:
    Missing nullability on parameter `pdu` in method `onSmsStatusReportReceived`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #2:
    Missing nullability on parameter `format` in method `sendSms`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #3:
    Missing nullability on parameter `smsc` in method `sendSms`
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #5:
    Missing nullability on parameter `pdu` in method `sendSms`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#queryCallForward(int, String) parameter #1:
    Missing nullability on parameter `number` in method `queryCallForward`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener) parameter #0:
    Missing nullability on parameter `listener` in method `setListener`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#transact(android.os.Bundle) parameter #0:
    Missing nullability on parameter `ssInfo` in method `transact`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarring(int, int, String[]) parameter #2:
    Missing nullability on parameter `barrList` in method `updateCallBarring`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarringForServiceClass(int, int, String[], int) parameter #2:
    Missing nullability on parameter `barrList` in method `updateCallBarringForServiceClass`
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallForward(int, int, String, int, int) parameter #2:
    Missing nullability on parameter `number` in method `updateCallForward`
MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String):
    
MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String) parameter #0:
    
MissingNullability: android.telephony.mbms.FileInfo#FileInfo(android.net.Uri, String) parameter #0:
    
MissingNullability: android.telephony.mbms.FileInfo#FileInfo(android.net.Uri, String) parameter #1:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #0:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #1:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #2:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #3:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #4:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #5:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #6:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #0:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #1:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #2:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #3:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #4:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #5:
    
MissingNullability: android.telephony.mbms.UriPathPair#getContentUri():
    
MissingNullability: android.telephony.mbms.UriPathPair#getFilePathUri():
    
MissingNullability: android.telephony.mbms.UriPathPair#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#asBinder():
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#cancelDownload(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#download(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestUpdateFileServices(int, java.util.List<java.lang.String>) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#resetDownloadKnowledge(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#setTempFileRootDirectory(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#onBind(android.content.Intent):
    
MissingNullability: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#asBinder():
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#getPlaybackUri(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#requestUpdateStreamingServices(int, java.util.List<java.lang.String>) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#stopStreaming(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String):
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String) parameter #1:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#afterTextChanged(android.text.Editable) parameter #0:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#beforeTextChanged(CharSequence, int, int, int) parameter #0:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#onTextChanged(CharSequence, int, int, int) parameter #0:
    
MissingNullability: android.transition.TransitionManager#getTransition(android.transition.Scene):
    
MissingNullability: android.transition.TransitionManager#getTransition(android.transition.Scene) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#getAllFeatureFlags():
    
MissingNullability: android.util.FeatureFlagUtils#isEnabled(android.content.Context, String) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#isEnabled(android.content.Context, String) parameter #1:
    
MissingNullability: android.util.FeatureFlagUtils#setEnabled(android.content.Context, String, boolean) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#setEnabled(android.content.Context, String, boolean) parameter #1:
    
MissingNullability: android.util.TimeUtils#formatDuration(long):
    
MissingNullability: android.util.proto.EncodedBuffer#dumpBuffers(String) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #1:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #2:
    
MissingNullability: android.util.proto.EncodedBuffer#getBytes(int):
    
MissingNullability: android.util.proto.EncodedBuffer#getDebugString():
    
MissingNullability: android.util.proto.EncodedBuffer#writeRawBuffer(byte[]) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#writeRawBuffer(byte[], int, int) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.OutputStream) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#dump(String) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#getBytes():
    
MissingNullability: android.util.proto.ProtoOutputStream#write(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#write(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeBytes(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeObject(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedBool(long, boolean[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedDouble(long, double[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedEnum(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFixed32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFixed64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFloat(long, float[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSFixed32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSFixed64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedUInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedUInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedBytes(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedObject(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedString(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeString(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoParseException#ProtoParseException(String) parameter #0:
    
MissingNullability: android.util.proto.ProtoStream#FIELD_TYPE_NAMES:
    
MissingNullability: android.util.proto.ProtoStream#getFieldCountString(long):
    
MissingNullability: android.util.proto.ProtoStream#getFieldIdString(long):
    
MissingNullability: android.util.proto.ProtoStream#getFieldTypeString(long):
    
MissingNullability: android.util.proto.ProtoStream#getWireTypeString(int):
    
MissingNullability: android.util.proto.ProtoStream#token2String(long):
    
MissingNullability: android.util.proto.WireTypeMismatchException#WireTypeMismatchException(String) parameter #0:
    
MissingNullability: android.view.Choreographer#postCallback(int, Runnable, Object) parameter #1:
    
MissingNullability: android.view.Choreographer#postCallback(int, Runnable, Object) parameter #2:
    
MissingNullability: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long) parameter #1:
    
MissingNullability: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long) parameter #2:
    
MissingNullability: android.view.Choreographer#removeCallbacks(int, Runnable, Object) parameter #1:
    
MissingNullability: android.view.Choreographer#removeCallbacks(int, Runnable, Object) parameter #2:
    
MissingNullability: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #0:
    
MissingNullability: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #3:
    
MissingNullability: android.view.KeyEvent#actionToString(int):
    
MissingNullability: android.view.View#getTooltipView():
    
MissingNullability: android.view.View#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #0:
    
MissingNullability: android.view.View#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #0:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #2:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #0:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #2:
    
MissingNullability: android.view.WindowManager.LayoutParams#accessibilityTitle:
    
MissingNullability: android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener#onAccessibilityServicesStateChanged(android.view.accessibility.AccessibilityManager) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityNodeInfo#setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityNodeInfo#writeToParcelNoRecycle(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityWindowInfo#setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger) parameter #0:
    
MissingNullability: android.view.contentcapture.ContentCaptureEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode#getAutofillId():
    
MissingNullability: android.view.contentcapture.ViewNode#getClassName():
    
MissingNullability: android.view.contentcapture.ViewNode#getContentDescription():
    
MissingNullability: android.view.contentcapture.ViewNode#getExtras():
    
MissingNullability: android.view.contentcapture.ViewNode#getHint():
    
MissingNullability: android.view.contentcapture.ViewNode#getIdEntry():
    
MissingNullability: android.view.contentcapture.ViewNode#getIdPackage():
    
MissingNullability: android.view.contentcapture.ViewNode#getIdType():
    
MissingNullability: android.view.contentcapture.ViewNode#getLocaleList():
    
MissingNullability: android.view.contentcapture.ViewNode#getText():
    
MissingNullability: android.view.contentcapture.ViewNode#getTextIdEntry():
    
MissingNullability: android.view.contentcapture.ViewNode#getTextLineBaselines():
    
MissingNullability: android.view.contentcapture.ViewNode#getTextLineCharOffsets():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#asyncNewChild(int):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getAutofillId():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getExtras():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getHint():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getNode():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getTempRect():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getText():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newChild(int):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newHtmlInfoBuilder(String):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newHtmlInfoBuilder(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillHints(String[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillId(android.view.autofill.AutofillId) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillId(android.view.autofill.AutofillId, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillOptions(CharSequence[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillValue(android.view.autofill.AutofillValue) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setClassName(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setContentDescription(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setHint(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setHtmlInfo(android.view.ViewStructure.HtmlInfo) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #1:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #2:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #3:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setLocaleList(android.os.LocaleList) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setText(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setText(CharSequence, int, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTextIdEntry(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTextLines(int[], int[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTextLines(int[], int[]) parameter #1:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTransformation(android.graphics.Matrix) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setWebDomain(String) parameter #0:
    
MissingNullability: android.widget.CalendarView#getBoundsForDate(long, android.graphics.Rect) parameter #1:
    
MissingNullability: android.widget.ImageView#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #0:
    
MissingNullability: android.widget.ImageView#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #1:
    
MissingNullability: android.widget.Magnifier#getMagnifierDefaultSize():
    
MissingNullability: android.widget.Magnifier#setOnOperationCompleteCallback(android.widget.Magnifier.Callback) parameter #0:
    
MissingNullability: android.widget.NumberPicker#getDisplayedValueForCurrentSelection():
    
MissingNullability: android.widget.PopupMenu#getMenuListView():
    
MissingNullability: android.widget.TimePicker#getAmView():
    
MissingNullability: android.widget.TimePicker#getHourView():
    
MissingNullability: android.widget.TimePicker#getMinuteView():
    
MissingNullability: android.widget.TimePicker#getPmView():
    


MutableBareField: android.content.AutofillOptions#appDisabledExpiration:
    
MutableBareField: android.content.AutofillOptions#augmentedAutofillEnabled:
    
MutableBareField: android.content.AutofillOptions#disabledActivities:
    
MutableBareField: android.content.AutofillOptions#whitelistedActivitiesForAugmentedAutofill:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#cache:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#dbName:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#dbSize:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#lookaside:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#pageSize:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#largestMemAlloc:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#memoryUsed:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#pageCacheOverflow:
    
MutableBareField: android.os.StrictMode.ViolationInfo#broadcastIntentAction:
    
MutableBareField: android.os.StrictMode.ViolationInfo#durationMillis:
    
MutableBareField: android.os.StrictMode.ViolationInfo#numAnimationsRunning:
    
MutableBareField: android.os.StrictMode.ViolationInfo#numInstances:
    
MutableBareField: android.os.StrictMode.ViolationInfo#tags:
    
MutableBareField: android.os.StrictMode.ViolationInfo#violationNumThisLoop:
    
MutableBareField: android.os.StrictMode.ViolationInfo#violationUptimeMillis:
    


NoByteOrShort: android.media.audiofx.AudioEffect#byteArrayToShort(byte[]):
    
NoByteOrShort: android.media.audiofx.AudioEffect#setParameter(int, short) parameter #1:
    
NoByteOrShort: android.media.audiofx.AudioEffect#shortToByteArray(short) parameter #0:
    
NoByteOrShort: android.os.HwBlob#getInt16(long):
    
NoByteOrShort: android.os.HwBlob#getInt8(long):
    
NoByteOrShort: android.os.HwBlob#putInt16(long, short) parameter #1:
    
NoByteOrShort: android.os.HwBlob#putInt8(long, byte) parameter #1:
    
NoByteOrShort: android.os.HwParcel#readInt16():
    
NoByteOrShort: android.os.HwParcel#readInt8():
    
NoByteOrShort: android.os.HwParcel#writeInt16(short) parameter #0:
    
NoByteOrShort: android.os.HwParcel#writeInt8(byte) parameter #0:
    
NoByteOrShort: android.util.proto.EncodedBuffer#readRawByte():
    
NoByteOrShort: android.util.proto.EncodedBuffer#writeRawByte(byte) parameter #0:
    


NoClone: android.net.util.SocketUtils#bindSocketToInterface(java.io.FileDescriptor, String) parameter #0:
    
NoClone: android.net.util.SocketUtils#closeSocket(java.io.FileDescriptor) parameter #0:
    
NoClone: android.os.NativeHandle#NativeHandle(java.io.FileDescriptor, boolean) parameter #0:
    
NoClone: android.os.NativeHandle#getFileDescriptor():
    
NoClone: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor) parameter #0:
    
NoClone: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
NoClone: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
NoClone: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    


NotCloseable: android.app.ActivityView:
    
NotCloseable: android.app.prediction.AppPredictor:
    
NotCloseable: android.os.HwParcel:
    
NotCloseable: android.telephony.ims.stub.ImsUtImplBase:
    Classes that release resources (close()) should implement AutoClosable and CloseGuard: class android.telephony.ims.stub.ImsUtImplBase


OnNameExpected: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.PrintWriter, String[]):
    
OnNameExpected: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
OnNameExpected: android.service.notification.ConditionProviderService#isBound():
    
OnNameExpected: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context):
    
OnNameExpected: android.service.quicksettings.TileService#isQuickSettingsSupported():
    
OnNameExpected: android.telephony.ims.ImsService#createMmTelFeature(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#createRcsFeature(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#disableIms(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#enableIms(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#getConfig(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#getRegistration(int):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#querySupportedImsFeatures():
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#readyForFeatureCreation():
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#dispose(int):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#stopGroupCall(int, long):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>):
    


PackageLayering: android.util.FeatureFlagUtils:
    


ParcelConstructor: android.os.IncidentManager.IncidentReport#IncidentReport(android.os.Parcel):
    
ParcelConstructor: android.os.IncidentReportArgs#IncidentReportArgs(android.os.Parcel):
    
ParcelConstructor: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.OneShot#OneShot(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.Prebaked#Prebaked(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.Waveform#Waveform(android.os.Parcel):
    
ParcelConstructor: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.Parcel):
    
ParcelConstructor: android.service.notification.SnoozeCriterion#SnoozeCriterion(android.os.Parcel):
    


ParcelCreator: android.app.WindowConfiguration:
    
ParcelCreator: android.net.metrics.ApfProgramEvent:
    
ParcelCreator: android.net.metrics.ApfStats:
    
ParcelCreator: android.net.metrics.DhcpClientEvent:
    
ParcelCreator: android.net.metrics.DhcpErrorEvent:
    
ParcelCreator: android.net.metrics.IpConnectivityLog.Event:
    
ParcelCreator: android.net.metrics.IpManagerEvent:
    
ParcelCreator: android.net.metrics.IpReachabilityEvent:
    
ParcelCreator: android.net.metrics.NetworkEvent:
    
ParcelCreator: android.net.metrics.RaEvent:
    
ParcelCreator: android.net.metrics.ValidationProbeEvent:
    
ParcelCreator: android.os.VibrationEffect.OneShot:
    
ParcelCreator: android.os.VibrationEffect.Prebaked:
    
ParcelCreator: android.os.VibrationEffect.Waveform:
    
ParcelCreator: android.service.autofill.InternalOnClickAction:
    
ParcelCreator: android.service.autofill.InternalSanitizer:
    
ParcelCreator: android.service.autofill.InternalTransformation:
    
ParcelCreator: android.service.autofill.InternalValidator:
    


ParcelNotFinal: android.app.WindowConfiguration:
    
ParcelNotFinal: android.net.metrics.IpConnectivityLog.Event:
    
ParcelNotFinal: android.os.IncidentManager.IncidentReport:
    
ParcelNotFinal: android.os.VibrationEffect.OneShot:
    
ParcelNotFinal: android.os.VibrationEffect.Prebaked:
    
ParcelNotFinal: android.os.VibrationEffect.Waveform:
    
ParcelNotFinal: android.os.health.HealthStatsParceler:
    
ParcelNotFinal: android.service.autofill.InternalOnClickAction:
    
ParcelNotFinal: android.service.autofill.InternalSanitizer:
    
ParcelNotFinal: android.service.autofill.InternalTransformation:
    
ParcelNotFinal: android.service.autofill.InternalValidator:
    


ProtectedMember: android.app.ActivityView#onVisibilityChanged(android.view.View, int):
    
ProtectedMember: android.app.AppDetailsActivity#onCreate(android.os.Bundle):
    
ProtectedMember: android.os.VibrationEffect#scale(int, float, int):
    
ProtectedMember: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context):
    
ProtectedMember: android.util.proto.ProtoStream#FIELD_TYPE_NAMES:
    
ProtectedMember: android.view.View#resetResolvedDrawables():
    
ProtectedMember: android.view.ViewGroup#resetResolvedDrawables():
    


RawAidl: android.telephony.mbms.vendor.MbmsDownloadServiceBase:
    
RawAidl: android.telephony.mbms.vendor.MbmsStreamingServiceBase:
    


RethrowRemoteException: android.app.ActivityManager#resumeAppSwitches():
    
RethrowRemoteException: android.os.HwBinder#getService(String, String):
    
RethrowRemoteException: android.os.HwBinder#getService(String, String, boolean):
    
RethrowRemoteException: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.os.HwBinder#registerService(String):
    
RethrowRemoteException: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration):
    Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#cancelDownload(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#download(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#listPendingDownloads(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestUpdateFileServices(int, java.util.List<java.lang.String>):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#resetDownloadKnowledge(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#setTempFileRootDirectory(int, String):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#getPlaybackUri(int, String):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#requestUpdateStreamingServices(int, java.util.List<java.lang.String>):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#stopStreaming(int, String):
    


SamShouldBeLast: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int):
    
SamShouldBeLast: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
SamShouldBeLast: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
SamShouldBeLast: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]):
    
SamShouldBeLast: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]):
    
SamShouldBeLast: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener):
    
SamShouldBeLast: android.os.BugreportManager#startBugreport(android.os.ParcelFileDescriptor, android.os.ParcelFileDescriptor, android.os.BugreportParams, java.util.concurrent.Executor, android.os.BugreportManager.BugreportCallback):
    
SamShouldBeLast: android.os.IHwBinder#linkToDeath(android.os.IHwBinder.DeathRecipient, long):
    
SamShouldBeLast: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String):
    
SamShouldBeLast: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler):
    
SamShouldBeLast: android.permission.PermissionControllerManager#revokeRuntimePermissions(java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, java.util.concurrent.Executor, android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback):
    
SamShouldBeLast: android.service.autofill.CharSequenceTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.DateTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.ImageTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.InternalTransformation#batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>):
    
SamShouldBeLast: android.telephony.ims.ImsMmTelManager#getFeatureState(java.util.function.Consumer<java.lang.Integer>, java.util.concurrent.Executor):
    SAM-compatible parameters (such as parameter 1, "callback", in android.telephony.ims.ImsMmTelManager.getFeatureState) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.view.Choreographer#postCallback(int, Runnable, Object):
    
SamShouldBeLast: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long):
    
SamShouldBeLast: android.view.Choreographer#removeCallbacks(int, Runnable, Object):
    
SamShouldBeLast: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>):
    
SamShouldBeLast: android.view.accessibility.AccessibilityManager#addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener, android.os.Handler):
    


ServiceName: android.Manifest.permission#BIND_CELL_BROADCAST_SERVICE:
    
ServiceName: android.app.AppOpsManager#OPSTR_BIND_ACCESSIBILITY_SERVICE:
    
ServiceName: android.provider.Settings.Secure#ACCESSIBILITY_SHORTCUT_TARGET_SERVICE:
    
ServiceName: android.provider.Settings.Secure#AUTOFILL_SERVICE:
    
ServiceName: android.provider.Settings.Secure#VOICE_INTERACTION_SERVICE:
    


SetterReturnsThis: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener):
    
SetterReturnsThis: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener):
    


StaticUtils: android.os.health.HealthKeys:
    
StaticUtils: android.service.autofill.InternalTransformation:
    
StaticUtils: android.telephony.mbms.vendor.VendorUtils:
    
StaticUtils: android.util.FeatureFlagUtils:
    
StaticUtils: android.util.proto.ProtoStream:
    
StaticUtils: android.view.inputmethod.InputMethodSystemProperty:
    


StreamFiles: android.os.Environment#buildPath(java.io.File, java.lang.String...):
    
StreamFiles: android.os.FileUtils#contains(java.io.File, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanFile(android.content.Context, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File):
    


UseParcelFileDescriptor: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    


UserHandle: android.app.admin.DevicePolicyManager#getOwnerInstalledCaCerts(android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#addRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.app.role.RoleManager#clearRoleHoldersAsUser(String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.app.role.RoleManager#getRoleHoldersAsUser(String, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#removeRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.content.pm.PackageManager#getInstallReason(String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#getPermissionFlags(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#grantRuntimePermission(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#revokeRuntimePermission(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#updatePermissionFlags(String, String, int, int, android.os.UserHandle):
    
UserHandle: android.location.LocationManager#setLocationEnabledForUser(boolean, android.os.UserHandle):
    


UserHandleName: android.app.ActivityView#startActivity(android.content.Intent, android.os.UserHandle):
    
UserHandleName: android.content.AutofillOptions:
    
UserHandleName: android.content.ContentCaptureOptions:
    
UserHandleName: android.os.IncidentReportArgs:
    
UserHandleName: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle):
    
UserHandleName: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle):
    


VisiblySynchronized: PsiClassObjectAccessExpression:
    
VisiblySynchronized: PsiThisExpression:
    
VisiblySynchronized: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int):
    
VisiblySynchronized: android.app.ActivityManager#removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener):
    
VisiblySynchronized: android.content.ContentProviderClient#setDetectNotResponding(long):
    
VisiblySynchronized: android.content.res.AssetManager#getApkPaths():
    
VisiblySynchronized: android.content.res.AssetManager#getOverlayableMap(String):
    
VisiblySynchronized: android.os.MessageQueue#removeSyncBarrier(int):
    
