1# Copyright (C) 2023 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15# List of APIs not supported by libcore. 16# This list doesn't block anyone to add the APIs into libcore, but the APIs are not shown 17# during API analysis by libcore-openjdk-analyzer. 18# See UnsupportedNewApis.java for the API signature format 19 20# Android doesn't support java.lang.Module system. 21java/lang/LayerInstantiationException 22java/lang/Module 23java/lang/ModuleLayer 24java/lang/module/Configuration 25java/lang/module/FindException 26java/lang/module/InvalidModuleDescriptorException 27java/lang/module/ModuleDescriptor 28java/lang/module/ModuleFinder 29java/lang/module/ModuleReader 30java/lang/module/ModuleReference 31java/lang/module/ResolutionException 32java/lang/module/ResolvedModule 33java/lang/Class#forName(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class; 34java/lang/Class#getModule()Ljava/lang/Module; 35java/lang/ClassLoader#findClass(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class; 36java/lang/ClassLoader#findResource(Ljava/lang/String;Ljava/lang/String;)Ljava/net/URL; 37java/lang/ClassLoader#getUnnamedModule()Ljava/lang/Module; 38java/lang/StackTraceElement#<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V 39java/lang/StackTraceElement#getModuleName()Ljava/lang/String; 40java/lang/StackTraceElement#getModuleVersion()Ljava/lang/String; 41java/util/ResourceBundle#getBundle(Ljava/lang/String;Ljava/lang/Module;)Ljava/util/ResourceBundle; 42java/util/ResourceBundle#getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Module;)Ljava/util/ResourceBundle; 43java/util/ServiceLoader#load(Ljava/lang/ModuleLayer;Ljava/lang/Class;)Ljava/util/ServiceLoader; 44 45# libcore doesn't support the following i18n SPI because the i18n stack is closely 46# integrated with ICU. 47java/text/spi/BreakIteratorProvider 48java/text/spi/CollatorProvider 49java/text/spi/DateFormatProvider 50java/text/spi/DateFormatSymbolsProvider 51java/text/spi/DecimalFormatSymbolsProvider 52java/text/spi/NumberFormatProvider 53java/util/spi/CalendarDataProvider 54java/util/spi/CalendarNameProvider 55java/util/spi/CurrencyNameProvider 56java/util/spi/LocaleNameProvider 57java/util/spi/LocaleServiceProvider 58java/util/spi/TimeZoneNameProvider 59 60# libcore doesn't support Type annotation reflection APIs since Android O. http://b/30391692 61java/lang/reflect/AnnotatedArrayType 62java/lang/reflect/AnnotatedParameterizedType 63java/lang/reflect/AnnotatedType 64java/lang/reflect/AnnotatedTypeVariable 65java/lang/reflect/AnnotatedWildcardType 66java/lang/Class#getAnnotatedInterfaces()[Ljava/lang/reflect/AnnotatedType; 67java/lang/Class#getAnnotatedSuperclass()Ljava/lang/reflect/AnnotatedType; 68java/lang/reflect/Constructor#getAnnotatedReceiverType()Ljava/lang/reflect/AnnotatedType; 69java/lang/reflect/Constructor#getAnnotatedReturnType()Ljava/lang/reflect/AnnotatedType; 70java/lang/reflect/Executable#getAnnotatedExceptionTypes()[Ljava/lang/reflect/AnnotatedType; 71java/lang/reflect/Executable#getAnnotatedParameterTypes()[Ljava/lang/reflect/AnnotatedType; 72java/lang/reflect/Executable#getAnnotatedReceiverType()Ljava/lang/reflect/AnnotatedType; 73java/lang/reflect/Executable#getAnnotatedReturnType()Ljava/lang/reflect/AnnotatedType; 74java/lang/reflect/Field#getAnnotatedType()Ljava/lang/reflect/AnnotatedType; 75java/lang/reflect/Method#getAnnotatedReturnType()Ljava/lang/reflect/AnnotatedType; 76java/lang/reflect/Parameter#getAnnotatedType()Ljava/lang/reflect/AnnotatedType; 77java/lang/reflect/TypeVariable#getAnnotatedBounds()[Ljava/lang/reflect/AnnotatedType; 78 79# Please use android.icu.text.CompactDecimalFormat available since Android N. http://b/262705909 80# This CompactDecimalFormat uses the same LDML TR-35 spec. It's better using the ICU one 81# when the spec and implementation are written and maintained consistently. 82java/text/CompactNumberFormat 83java/text/NumberFormat#getCompactNumberInstance()Ljava/text/NumberFormat; 84java/text/NumberFormat#getCompactNumberInstance(Ljava/util/Locale;Ljava/text/NumberFormat$Style;)Ljava/text/NumberFormat; 85java/text/NumberFormat$Style#LONG:Ljava/text/NumberFormat$Style; 86java/text/NumberFormat$Style#SHORT:Ljava/text/NumberFormat$Style; 87java/text/NumberFormat$Style#valueOf(Ljava/lang/String;)Ljava/text/NumberFormat$Style; 88java/text/NumberFormat$Style#values()[Ljava/text/NumberFormat$Style; 89 90# Android doesn't support SecurityManager. 91java/io/FilePermission#equals(Ljava/lang/Object;)Z 92java/io/FilePermission#hashCode()I 93java/io/FilePermission#newPermissionCollection()Ljava/security/PermissionCollection; 94java/net/SocketPermission#equals(Ljava/lang/Object;)Z 95java/net/SocketPermission#hashCode()I 96java/net/SocketPermission#newPermissionCollection()Ljava/security/PermissionCollection; 97java/net/URLPermission 98java/security/AccessControlContext#equals(Ljava/lang/Object;)Z 99java/security/AccessControlContext#hashCode()I 100java/security/AccessController#doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object; 101java/security/AccessController#doPrivilegedWithCombiner(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object; 102java/security/AccessController#doPrivilegedWithCombiner(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object; 103java/security/AllPermission#equals(Ljava/lang/Object;)Z 104java/security/AllPermission#hashCode()I 105java/security/AllPermission#newPermissionCollection()Ljava/security/PermissionCollection; 106java/security/AuthProvider#<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 107java/security/BasicPermission#equals(Ljava/lang/Object;)Z 108java/security/BasicPermission#hashCode()I 109java/security/BasicPermission#newPermissionCollection()Ljava/security/PermissionCollection; 110java/security/CodeSource#equals(Ljava/lang/Object;)Z 111java/security/CodeSource#hashCode()I 112java/security/CodeSource#toString()Ljava/lang/String; 113java/security/Permission#equals(Ljava/lang/Object;)Z 114java/security/Permission#hashCode()I 115java/security/Permission#toString()Ljava/lang/String; 116java/security/PermissionCollection#elementsAsStream()Ljava/util/stream/Stream; 117java/security/PermissionCollection#toString()Ljava/lang/String; 118java/security/ProtectionDomain#staticPermissionsOnly()Z 119java/security/ProtectionDomain#toString()Ljava/lang/String; 120java/security/UnresolvedPermission#equals(Ljava/lang/Object;)Z 121java/security/UnresolvedPermission#hashCode()I 122java/security/UnresolvedPermission#newPermissionCollection()Ljava/security/PermissionCollection; 123java/security/UnresolvedPermission#toString()Ljava/lang/String; 124java/security/URIParameter 125java/util/PropertyPermission#equals(Ljava/lang/Object;)Z 126java/util/PropertyPermission#getActions()Ljava/lang/String; 127java/util/PropertyPermission#hashCode()I 128java/util/PropertyPermission#implies(Ljava/security/Permission;)Z 129java/util/PropertyPermission#newPermissionCollection()Ljava/security/PermissionCollection; 130 131# Only a limited set of javax.security.auth.login APIs are supported due to KeyStore. 132# The rest of APIs are not supported. 133javax/security/auth/RefreshFailedException 134javax/security/auth/Refreshable 135javax/security/auth/callback/ChoiceCallback 136javax/security/auth/callback/ConfirmationCallback 137javax/security/auth/callback/LanguageCallback 138javax/security/auth/callback/NameCallback 139javax/security/auth/callback/TextInputCallback 140javax/security/auth/callback/TextOutputCallback 141javax/security/auth/login/AccountException 142javax/security/auth/login/AccountExpiredException 143javax/security/auth/login/AccountLockedException 144javax/security/auth/login/AccountNotFoundException 145javax/security/auth/login/AppConfigurationEntry 146javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag 147javax/security/auth/login/Configuration 148javax/security/auth/login/Configuration$Parameters 149javax/security/auth/login/ConfigurationSpi 150javax/security/auth/login/CredentialException 151javax/security/auth/login/CredentialExpiredException 152javax/security/auth/login/CredentialNotFoundException 153javax/security/auth/login/FailedLoginException 154javax/security/auth/login/LoginContext 155javax/security/auth/spi/LoginModule 156javax/security/auth/PrivateCredentialPermission#equals(Ljava/lang/Object;)Z 157javax/security/auth/PrivateCredentialPermission#hashCode()I 158javax/security/auth/PrivateCredentialPermission#newPermissionCollection()Ljava/security/PermissionCollection; 159 160# libcore doesn't intend to support loading resources not in classloader. 161java/util/spi/AbstractResourceBundleProvider 162java/util/spi/ResourceBundleControlProvider 163java/util/spi/ResourceBundleProvider 164 165# libcore doesn't need a provider of compiler / documentation tool on device. 166java/util/spi/ToolProvider 167 168# Neither Runtime$Version nor multi-release JARs are applicable to Android. 169java/lang/Runtime$Version 170java/lang/Runtime#version()Ljava/lang/Runtime$Version; 171java/util/jar/Attributes$Name#MULTI_RELEASE:Ljava/util/jar/Attributes$Name; 172java/util/jar/JarFile#<init>(Ljava/io/File;ZILjava/lang/Runtime$Version;)V 173java/util/jar/JarFile#baseVersion()Ljava/lang/Runtime$Version; 174java/util/jar/JarFile#getVersion()Ljava/lang/Runtime$Version; 175java/util/jar/JarFile#isMultiRelease()Z 176java/util/jar/JarFile#runtimeVersion()Ljava/lang/Runtime$Version; 177java/util/jar/JarFile#versionedStream()Ljava/util/stream/Stream; 178 179# ART doesn't expose a class loading lock. 180# The API was removed by the commit de626ec8a109ea18283d96c720cc57e2f32f67fa 181java/lang/ClassLoader#getClassLoadingLock(Ljava/lang/String;)Ljava/lang/Object; 182