diff options
104 files changed, 1598 insertions, 2401 deletions
diff --git a/Android.bp b/Android.bp index fd61e6037eda..589685174698 100644 --- a/Android.bp +++ b/Android.bp @@ -873,6 +873,11 @@ aidl_interface { "core/java/android/net/TcpKeepalivePacketDataParcelable.aidl", ], api_dir: "aidl/networkstack", + backend: { + java: { + sdk_version: "28", + }, + }, } filegroup { @@ -1081,6 +1086,7 @@ java_library { "core/java/android/annotation/Nullable.java", "core/java/android/annotation/SystemApi.java", "core/java/android/annotation/TestApi.java", + "core/java/android/annotation/UnsupportedAppUsage.java", "core/java/android/os/HwBinder.java", "core/java/android/os/HwBlob.java", "core/java/android/os/HwParcel.java", diff --git a/api/current.txt b/api/current.txt index 0fa6cc623bef..733dd0c0ca59 100755 --- a/api/current.txt +++ b/api/current.txt @@ -6451,7 +6451,7 @@ package android.app.admin { method @Nullable public String[] getAccountTypesWithManagementDisabled(); method @Nullable public java.util.List<android.content.ComponentName> getActiveAdmins(); method @NonNull public java.util.Set<java.lang.String> getAffiliationIds(@NonNull android.content.ComponentName); - method @Nullable public java.util.List<java.lang.String> getAlwaysOnVpnLockdownWhitelist(@NonNull android.content.ComponentName); + method @Nullable public java.util.Set<java.lang.String> getAlwaysOnVpnLockdownWhitelist(@NonNull android.content.ComponentName); method @Nullable public String getAlwaysOnVpnPackage(@NonNull android.content.ComponentName); method @WorkerThread @NonNull public android.os.Bundle getApplicationRestrictions(@Nullable android.content.ComponentName, String); method @Deprecated @Nullable public String getApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName); @@ -6559,7 +6559,7 @@ package android.app.admin { method public void setAccountManagementDisabled(@NonNull android.content.ComponentName, String, boolean); method public void setAffiliationIds(@NonNull android.content.ComponentName, @NonNull java.util.Set<java.lang.String>); method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean) throws android.content.pm.PackageManager.NameNotFoundException; - method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean, @Nullable java.util.List<java.lang.String>) throws android.content.pm.PackageManager.NameNotFoundException; + method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean, @Nullable java.util.Set<java.lang.String>) throws android.content.pm.PackageManager.NameNotFoundException; method public boolean setApplicationHidden(@NonNull android.content.ComponentName, String, boolean); method @WorkerThread public void setApplicationRestrictions(@Nullable android.content.ComponentName, String, android.os.Bundle); method @Deprecated public void setApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName, @Nullable String) throws android.content.pm.PackageManager.NameNotFoundException; @@ -27227,10 +27227,9 @@ package android.net { } public final class DnsResolver { - method public static android.net.DnsResolver getInstance(); - method public void query(@Nullable android.net.Network, @NonNull byte[], int, @NonNull android.os.Handler, @NonNull android.net.DnsResolver.RawAnswerListener) throws android.system.ErrnoException; - method public void query(@Nullable android.net.Network, @NonNull String, int, int, int, @NonNull android.os.Handler, @NonNull android.net.DnsResolver.RawAnswerListener) throws android.system.ErrnoException; - method public void query(@Nullable android.net.Network, @NonNull String, int, @NonNull android.os.Handler, @NonNull android.net.DnsResolver.InetAddressAnswerListener) throws android.system.ErrnoException; + method @NonNull public static android.net.DnsResolver getInstance(); + method public <T> void query(@Nullable android.net.Network, @NonNull byte[], int, @NonNull java.util.concurrent.Executor, @NonNull android.net.DnsResolver.AnswerCallback<T>); + method public <T> void query(@Nullable android.net.Network, @NonNull String, int, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.DnsResolver.AnswerCallback<T>); field public static final int CLASS_IN = 1; // 0x1 field public static final int FLAG_EMPTY = 0; // 0x0 field public static final int FLAG_NO_CACHE_LOOKUP = 4; // 0x4 @@ -27240,12 +27239,23 @@ package android.net { field public static final int TYPE_AAAA = 28; // 0x1c } - public static interface DnsResolver.InetAddressAnswerListener { - method public void onAnswer(@NonNull java.util.List<java.net.InetAddress>); + public abstract static class DnsResolver.AnswerCallback<T> { + ctor public DnsResolver.AnswerCallback(@NonNull android.net.DnsResolver.AnswerParser<T>); + method public abstract void onAnswer(@NonNull T); + method public abstract void onParseException(@NonNull android.net.ParseException); + method public abstract void onQueryException(@NonNull android.system.ErrnoException); } - public static interface DnsResolver.RawAnswerListener { - method public void onAnswer(@Nullable byte[]); + public static interface DnsResolver.AnswerParser<T> { + method @NonNull public T parse(@NonNull byte[]) throws android.net.ParseException; + } + + public abstract static class DnsResolver.InetAddressAnswerCallback extends android.net.DnsResolver.AnswerCallback<java.util.List<java.net.InetAddress>> { + ctor public DnsResolver.InetAddressAnswerCallback(); + } + + public abstract static class DnsResolver.RawAnswerCallback extends android.net.DnsResolver.AnswerCallback<byte[]> { + ctor public DnsResolver.RawAnswerCallback(); } public class InetAddresses { @@ -27559,6 +27569,8 @@ package android.net { } public class ParseException extends java.lang.RuntimeException { + ctor public ParseException(@NonNull String); + ctor public ParseException(@NonNull String, @NonNull Throwable); field public String response; } @@ -43034,14 +43046,14 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig(); method public int getCarrierIdFromSimMccMnc(); method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.telephony.CellLocation getCellLocation(); - method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList(); - method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList(int); method public int getDataActivity(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getDataNetworkType(); method public int getDataState(); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceId(); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceId(int); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion(); + method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @NonNull public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList(); + method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @NonNull public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList(int); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String[] getForbiddenPlmns(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getGroupIdLevel1(); method public String getIccAuthentication(int, int, String); @@ -43093,9 +43105,9 @@ package android.telephony { method public String iccTransmitApduBasicChannel(int, int, int, int, int, String); method public String iccTransmitApduLogicalChannel(int, int, int, int, int, int, String); method public boolean isConcurrentVoiceAndDataSupported(); - method public boolean isCurrentEmergencyNumber(@NonNull String); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean isDataEnabled(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataRoamingEnabled(); + method public boolean isEmergencyNumber(@NonNull String); method public boolean isHearingAidCompatibilitySupported(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isMultisimSupported(); method public boolean isNetworkRoaming(); @@ -43161,7 +43173,7 @@ package android.telephony { field public static final String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID"; field public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME"; field public static final String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; - field public static final String EXTRA_INCOMING_NUMBER = "incoming_number"; + field @Deprecated public static final String EXTRA_INCOMING_NUMBER = "incoming_number"; field public static final String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH"; field public static final String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; field public static final String EXTRA_NETWORK_COUNTRY = "android.telephony.extra.NETWORK_COUNTRY"; @@ -43414,15 +43426,13 @@ package android.telephony.emergency { public final class EmergencyNumber implements java.lang.Comparable<android.telephony.emergency.EmergencyNumber> android.os.Parcelable { method public int compareTo(@NonNull android.telephony.emergency.EmergencyNumber); method public int describeContents(); - method public String getCountryIso(); + method @NonNull public String getCountryIso(); method public int getEmergencyCallRouting(); - method public int getEmergencyNumberSourceBitmask(); - method public java.util.List<java.lang.Integer> getEmergencyNumberSources(); - method public java.util.List<java.lang.Integer> getEmergencyServiceCategories(); - method public int getEmergencyServiceCategoryBitmask(); + method @NonNull public java.util.List<java.lang.Integer> getEmergencyNumberSources(); + method @NonNull public java.util.List<java.lang.Integer> getEmergencyServiceCategories(); method @NonNull public java.util.List<java.lang.String> getEmergencyUrns(); - method public String getMnc(); - method public String getNumber(); + method @NonNull public String getMnc(); + method @NonNull public String getNumber(); method public boolean isFromSources(int); method public boolean isInEmergencyServiceCategories(int); method public void writeToParcel(android.os.Parcel, int); diff --git a/api/removed.txt b/api/removed.txt index d6169cbd883a..72202ad9712a 100644 --- a/api/removed.txt +++ b/api/removed.txt @@ -304,17 +304,11 @@ package android.media.tv { package android.net { public class ConnectivityManager { - method @Deprecated public void getLatestTetheringEntitlementValue(int, boolean, @NonNull android.net.ConnectivityManager.TetheringEntitlementValueListener, @Nullable android.os.Handler); method @Deprecated public boolean requestRouteToHost(int, int); method @Deprecated public int startUsingNetworkFeature(int, String); method @Deprecated public int stopUsingNetworkFeature(int, String); } - @Deprecated public abstract static class ConnectivityManager.TetheringEntitlementValueListener { - ctor public ConnectivityManager.TetheringEntitlementValueListener(); - method public void onEntitlementResult(int); - } - @Deprecated public class NetworkBadging { method @NonNull public static android.graphics.drawable.Drawable getWifiIcon(@IntRange(from=0, to=4) int, int, @Nullable android.content.res.Resources.Theme); field public static final int BADGING_4K = 30; // 0x1e diff --git a/api/system-current.txt b/api/system-current.txt index 849035da993f..d372e89a679a 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3525,16 +3525,16 @@ package android.net.metrics { package android.net.util { - public class SocketUtils { + public final class SocketUtils { method public static void addArpEntry(@NonNull java.net.Inet4Address, @NonNull android.net.MacAddress, @NonNull String, @NonNull java.io.FileDescriptor) throws java.io.IOException; method public static void attachControlPacketFilter(@NonNull java.io.FileDescriptor, int) throws java.net.SocketException; method public static void attachDhcpFilter(@NonNull java.io.FileDescriptor) throws java.net.SocketException; method public static void attachRaFilter(@NonNull java.io.FileDescriptor, int) throws java.net.SocketException; method public static void bindSocketToInterface(@NonNull java.io.FileDescriptor, @NonNull String) throws android.system.ErrnoException; method public static void closeSocket(@Nullable java.io.FileDescriptor) throws java.io.IOException; - method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); - method public static java.net.SocketAddress makePacketSocketAddress(short, int); - method public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]); + method @NonNull public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); + method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int); + method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]); method public static void setSocketTimeValueOption(@NonNull java.io.FileDescriptor, int, int, long) throws android.system.ErrnoException; } @@ -6397,10 +6397,14 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoiceActivationState(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmi(String); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmiForSubscriber(int, String); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCurrentPotentialEmergencyNumber(@NonNull String); + method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean iccCloseLogicalChannelBySlot(int, int); + method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot(int, @Nullable String, int); + method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String iccTransmitApduBasicChannelBySlot(int, int, int, int, int, int, @Nullable String); + method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String iccTransmitApduLogicalChannelBySlot(int, int, int, int, int, int, int, @Nullable String); method public boolean isDataConnectivityPossible(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook(); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isRebootRequiredForModemConfigChange(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); @@ -6784,7 +6788,7 @@ package android.telephony.ims { method public static int getCallTypeFromVideoState(int); method public int getEmergencyCallRouting(); method public int getEmergencyServiceCategories(); - method public java.util.List<java.lang.String> getEmergencyUrns(); + method @NonNull public java.util.List<java.lang.String> getEmergencyUrns(); method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile(); method public int getRestrictCause(); method public int getServiceType(); @@ -6802,7 +6806,7 @@ package android.telephony.ims { method public void setEmergencyCallRouting(int); method public void setEmergencyCallTesting(boolean); method public void setEmergencyServiceCategories(int); - method public void setEmergencyUrns(java.util.List<java.lang.String>); + method public void setEmergencyUrns(@NonNull java.util.List<java.lang.String>); method public void setHasKnownUserIntentEmergency(boolean); method public void updateCallExtras(android.telephony.ims.ImsCallProfile); method public void updateCallType(android.telephony.ims.ImsCallProfile); diff --git a/api/test-current.txt b/api/test-current.txt index 6372197b86b5..bf5ccd0c2646 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -935,16 +935,16 @@ package android.net.metrics { package android.net.util { - public class SocketUtils { + public final class SocketUtils { method public static void addArpEntry(@NonNull java.net.Inet4Address, @NonNull android.net.MacAddress, @NonNull String, @NonNull java.io.FileDescriptor) throws java.io.IOException; method public static void attachControlPacketFilter(@NonNull java.io.FileDescriptor, int) throws java.net.SocketException; method public static void attachDhcpFilter(@NonNull java.io.FileDescriptor) throws java.net.SocketException; method public static void attachRaFilter(@NonNull java.io.FileDescriptor, int) throws java.net.SocketException; method public static void bindSocketToInterface(@NonNull java.io.FileDescriptor, @NonNull String) throws android.system.ErrnoException; method public static void closeSocket(@Nullable java.io.FileDescriptor) throws java.io.IOException; - method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); - method public static java.net.SocketAddress makePacketSocketAddress(short, int); - method public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]); + method @NonNull public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); + method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int); + method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]); method public static void setSocketTimeValueOption(@NonNull java.io.FileDescriptor, int, int, long) throws android.system.ErrnoException; } diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt index 0959462e0b7e..c3d057b66be8 100644 --- a/config/hiddenapi-greylist.txt +++ b/config/hiddenapi-greylist.txt @@ -378,232 +378,17 @@ Landroid/net/wifi/IWifiScanner$Stub;-><init>()V Landroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner; Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager; Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_enable:I -Landroid/os/AsyncResult;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V -Landroid/os/AsyncResult;->exception:Ljava/lang/Throwable; -Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;)Landroid/os/AsyncResult; -Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;Ljava/lang/Object;Ljava/lang/Throwable;)Landroid/os/AsyncResult; -Landroid/os/AsyncResult;->result:Ljava/lang/Object; -Landroid/os/AsyncResult;->userObj:Ljava/lang/Object; -Landroid/os/AsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; -Landroid/os/AsyncTask;->mStatus:Landroid/os/AsyncTask$Status; -Landroid/os/AsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; -Landroid/os/AsyncTask;->mWorker:Landroid/os/AsyncTask$WorkerRunnable; -Landroid/os/AsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; -Landroid/os/AsyncTask;->setDefaultExecutor(Ljava/util/concurrent/Executor;)V -Landroid/os/BaseBundle;->isParcelled()Z -Landroid/os/BaseBundle;->mMap:Landroid/util/ArrayMap; -Landroid/os/BaseBundle;->mParcelledData:Landroid/os/Parcel; -Landroid/os/BaseBundle;->unparcel()V -Landroid/os/BatteryManager;->EXTRA_CHARGE_COUNTER:Ljava/lang/String; -Landroid/os/BatteryManager;->EXTRA_INVALID_CHARGER:Ljava/lang/String; -Landroid/os/BatteryManager;->EXTRA_MAX_CHARGING_CURRENT:Ljava/lang/String; -Landroid/os/BatteryManager;->EXTRA_MAX_CHARGING_VOLTAGE:Ljava/lang/String; -Landroid/os/BatteryStats$Counter;->getCountLocked(I)I -Landroid/os/BatteryStats$HistoryItem;-><init>()V -Landroid/os/BatteryStats$HistoryItem;->batteryHealth:B -Landroid/os/BatteryStats$HistoryItem;->batteryLevel:B -Landroid/os/BatteryStats$HistoryItem;->batteryPlugType:B -Landroid/os/BatteryStats$HistoryItem;->batteryStatus:B -Landroid/os/BatteryStats$HistoryItem;->batteryVoltage:C -Landroid/os/BatteryStats$HistoryItem;->cmd:B -Landroid/os/BatteryStats$HistoryItem;->CMD_UPDATE:B -Landroid/os/BatteryStats$HistoryItem;->states2:I -Landroid/os/BatteryStats$HistoryItem;->states:I -Landroid/os/BatteryStats$HistoryItem;->time:J -Landroid/os/BatteryStats$Timer;->getCountLocked(I)I -Landroid/os/BatteryStats$Timer;->getTotalTimeLocked(JI)J -Landroid/os/BatteryStats$Uid$Pkg$Serv;->getLaunches(I)I -Landroid/os/BatteryStats$Uid$Pkg$Serv;->getStarts(I)I -Landroid/os/BatteryStats$Uid$Pkg$Serv;->getStartTime(JI)J -Landroid/os/BatteryStats$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap; -Landroid/os/BatteryStats$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap; Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V -Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->overTime:J -Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->type:I -Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->usedTime:J -Landroid/os/BatteryStats$Uid$Proc;->countExcessivePowers()I -Landroid/os/BatteryStats$Uid$Proc;->getExcessivePower(I)Landroid/os/BatteryStats$Uid$Proc$ExcessivePower; -Landroid/os/BatteryStats$Uid$Proc;->getForegroundTime(I)J -Landroid/os/BatteryStats$Uid$Proc;->getStarts(I)I -Landroid/os/BatteryStats$Uid$Proc;->getSystemTime(I)J -Landroid/os/BatteryStats$Uid$Proc;->getUserTime(I)J -Landroid/os/BatteryStats$Uid$Sensor;->getHandle()I -Landroid/os/BatteryStats$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer; -Landroid/os/BatteryStats$Uid$Sensor;->GPS:I -Landroid/os/BatteryStats$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer; Landroid/os/BatteryStats$Uid;-><init>()V -Landroid/os/BatteryStats$Uid;->getAudioTurnedOnTimer()Landroid/os/BatteryStats$Timer; -Landroid/os/BatteryStats$Uid;->getFullWifiLockTime(JI)J -Landroid/os/BatteryStats$Uid;->getMobileRadioActiveTime(I)J -Landroid/os/BatteryStats$Uid;->getNetworkActivityBytes(II)J -Landroid/os/BatteryStats$Uid;->getPackageStats()Landroid/util/ArrayMap; -Landroid/os/BatteryStats$Uid;->getProcessStats()Landroid/util/ArrayMap; -Landroid/os/BatteryStats$Uid;->getSensorStats()Landroid/util/SparseArray; -Landroid/os/BatteryStats$Uid;->getUid()I -Landroid/os/BatteryStats$Uid;->getVideoTurnedOnTimer()Landroid/os/BatteryStats$Timer; -Landroid/os/BatteryStats$Uid;->getWakelockStats()Landroid/util/ArrayMap; -Landroid/os/BatteryStats$Uid;->getWifiBatchedScanTime(IJI)J -Landroid/os/BatteryStats$Uid;->getWifiMulticastTime(JI)J -Landroid/os/BatteryStats$Uid;->getWifiRunningTime(JI)J -Landroid/os/BatteryStats$Uid;->getWifiScanTime(JI)J -Landroid/os/BatteryStats;->computeBatteryRealtime(JI)J -Landroid/os/BatteryStats;->computeBatteryTimeRemaining(J)J -Landroid/os/BatteryStats;->computeBatteryUptime(JI)J -Landroid/os/BatteryStats;->computeChargeTimeRemaining(J)J -Landroid/os/BatteryStats;->dumpLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V -Landroid/os/BatteryStats;->getBatteryUptime(J)J -Landroid/os/BatteryStats;->getGlobalWifiRunningTime(JI)J -Landroid/os/BatteryStats;->getNextHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z -Landroid/os/BatteryStats;->getPhoneOnTime(JI)J -Landroid/os/BatteryStats;->getPhoneSignalStrengthTime(IJI)J -Landroid/os/BatteryStats;->getScreenBrightnessTime(IJI)J -Landroid/os/BatteryStats;->getScreenOnTime(JI)J -Landroid/os/BatteryStats;->getUidStats()Landroid/util/SparseArray; -Landroid/os/BatteryStats;->getWifiOnTime(JI)J -Landroid/os/BatteryStats;->NUM_DATA_CONNECTION_TYPES:I -Landroid/os/BatteryStats;->NUM_SCREEN_BRIGHTNESS_BINS:I -Landroid/os/BatteryStats;->startIteratingHistoryLocked()Z -Landroid/os/BatteryStats;->STATS_CURRENT:I -Landroid/os/BatteryStats;->WAKE_TYPE_PARTIAL:I -Landroid/os/Binder;->execTransact(IJJI)Z -Landroid/os/Binder;->mObject:J -Landroid/os/Broadcaster;-><init>()V -Landroid/os/Broadcaster;->broadcast(Landroid/os/Message;)V -Landroid/os/Broadcaster;->cancelRequest(ILandroid/os/Handler;I)V -Landroid/os/Broadcaster;->request(ILandroid/os/Handler;I)V -Landroid/os/Build$VERSION;->ACTIVE_CODENAMES:[Ljava/lang/String; -Landroid/os/Build;->getLong(Ljava/lang/String;)J -Landroid/os/Build;->getString(Ljava/lang/String;)Ljava/lang/String; -Landroid/os/Build;->IS_DEBUGGABLE:Z -Landroid/os/Build;->IS_EMULATOR:Z -Landroid/os/Bundle;->filterValues()Landroid/os/Bundle; -Landroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle; -Landroid/os/Bundle;->getIBinder(Ljava/lang/String;)Landroid/os/IBinder; -Landroid/os/Bundle;->getSize()I -Landroid/os/Bundle;->putIBinder(Ljava/lang/String;Landroid/os/IBinder;)V -Landroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V -Landroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle; -Landroid/os/Debug$MemoryInfo;->dalvikPrivateClean:I -Landroid/os/Debug$MemoryInfo;->dalvikRss:I -Landroid/os/Debug$MemoryInfo;->dalvikSharedClean:I -Landroid/os/Debug$MemoryInfo;->dalvikSwappablePss:I -Landroid/os/Debug$MemoryInfo;->dalvikSwappedOut:I -Landroid/os/Debug$MemoryInfo;->dalvikSwappedOutPss:I -Landroid/os/Debug$MemoryInfo;->getOtherLabel(I)Ljava/lang/String; -Landroid/os/Debug$MemoryInfo;->getOtherPrivate(I)I -Landroid/os/Debug$MemoryInfo;->getOtherPrivateDirty(I)I -Landroid/os/Debug$MemoryInfo;->getOtherPss(I)I -Landroid/os/Debug$MemoryInfo;->getOtherSharedDirty(I)I -Landroid/os/Debug$MemoryInfo;->getSummaryCode()I -Landroid/os/Debug$MemoryInfo;->getSummaryGraphics()I -Landroid/os/Debug$MemoryInfo;->getSummaryJavaHeap()I -Landroid/os/Debug$MemoryInfo;->getSummaryNativeHeap()I -Landroid/os/Debug$MemoryInfo;->getSummaryPrivateOther()I -Landroid/os/Debug$MemoryInfo;->getSummaryStack()I -Landroid/os/Debug$MemoryInfo;->getSummarySystem()I -Landroid/os/Debug$MemoryInfo;->getTotalUss()I -Landroid/os/Debug$MemoryInfo;->hasSwappedOutPss:Z -Landroid/os/Debug$MemoryInfo;->nativePrivateClean:I -Landroid/os/Debug$MemoryInfo;->nativeRss:I -Landroid/os/Debug$MemoryInfo;->nativeSharedClean:I -Landroid/os/Debug$MemoryInfo;->nativeSwappablePss:I -Landroid/os/Debug$MemoryInfo;->nativeSwappedOut:I -Landroid/os/Debug$MemoryInfo;->nativeSwappedOutPss:I -Landroid/os/Debug$MemoryInfo;->NUM_DVK_STATS:I -Landroid/os/Debug$MemoryInfo;->NUM_OTHER_STATS:I -Landroid/os/Debug$MemoryInfo;->otherPrivateClean:I -Landroid/os/Debug$MemoryInfo;->otherRss:I -Landroid/os/Debug$MemoryInfo;->otherSharedClean:I -Landroid/os/Debug$MemoryInfo;->otherStats:[I -Landroid/os/Debug$MemoryInfo;->otherSwappablePss:I -Landroid/os/Debug$MemoryInfo;->otherSwappedOut:I -Landroid/os/Debug$MemoryInfo;->otherSwappedOutPss:I -Landroid/os/Debug;-><init>()V -Landroid/os/Debug;->countInstancesOfClass(Ljava/lang/Class;)J -Landroid/os/Debug;->dumpNativeHeap(Ljava/io/FileDescriptor;)V -Landroid/os/Debug;->dumpReferenceTables()V -Landroid/os/Debug;->getCaller()Ljava/lang/String; -Landroid/os/Debug;->getCallers(I)Ljava/lang/String; -Landroid/os/Debug;->getMemInfo([J)V -Landroid/os/Debug;->getMemoryInfo(ILandroid/os/Debug$MemoryInfo;)V -Landroid/os/DropBoxManager;->mService:Lcom/android/internal/os/IDropBoxManagerService; -Landroid/os/Environment$UserEnvironment;-><init>(I)V -Landroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File; -Landroid/os/Environment$UserEnvironment;->getExternalStorageDirectory()Ljava/io/File; -Landroid/os/Environment$UserEnvironment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAndroidDataDirs()[Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->buildExternalStorageAppObbDirs(Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->buildPaths([Ljava/io/File;[Ljava/lang/String;)[Ljava/io/File; -Landroid/os/Environment;->getDataSystemDirectory()Ljava/io/File; -Landroid/os/Environment;->getLegacyExternalStorageDirectory()Ljava/io/File; -Landroid/os/Environment;->getLegacyExternalStorageObbDirectory()Ljava/io/File; -Landroid/os/Environment;->getOemDirectory()Ljava/io/File; -Landroid/os/Environment;->getStorageDirectory()Ljava/io/File; -Landroid/os/Environment;->getVendorDirectory()Ljava/io/File; -Landroid/os/Environment;->initForCurrentUser()V -Landroid/os/Environment;->maybeTranslateEmulatedPathToInternal(Ljava/io/File;)Ljava/io/File; -Landroid/os/Environment;->sCurrentUser:Landroid/os/Environment$UserEnvironment; -Landroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V -Landroid/os/FileObserver;->s_observerThread:Landroid/os/FileObserver$ObserverThread; Landroid/os/FileUtils;-><init>()V -Landroid/os/FileUtils;->checksumCrc32(Ljava/io/File;)J -Landroid/os/FileUtils;->copyFile(Ljava/io/File;Ljava/io/File;)Z -Landroid/os/FileUtils;->copyToFile(Ljava/io/InputStream;Ljava/io/File;)Z -Landroid/os/FileUtils;->deleteContents(Ljava/io/File;)Z -Landroid/os/FileUtils;->deleteOlderFiles(Ljava/io/File;IJ)Z -Landroid/os/FileUtils;->isFilenameSafe(Ljava/io/File;)Z -Landroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String; -Landroid/os/FileUtils;->setPermissions(Ljava/io/File;III)I -Landroid/os/FileUtils;->setPermissions(Ljava/io/FileDescriptor;III)I -Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I -Landroid/os/FileUtils;->stringToFile(Ljava/io/File;Ljava/lang/String;)V -Landroid/os/FileUtils;->stringToFile(Ljava/lang/String;Ljava/lang/String;)V -Landroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z -Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V -Landroid/os/Handler;-><init>(Z)V -Landroid/os/Handler;->getIMessenger()Landroid/os/IMessenger; -Landroid/os/Handler;->getMain()Landroid/os/Handler; -Landroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message; -Landroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z -Landroid/os/Handler;->mCallback:Landroid/os/Handler$Callback; -Landroid/os/Handler;->mLooper:Landroid/os/Looper; -Landroid/os/Handler;->mMessenger:Landroid/os/IMessenger; -Landroid/os/HwBinder;->reportSyspropChanged()V -Landroid/os/HwParcel;-><init>(Z)V -Landroid/os/HwRemoteBinder;-><init>()V Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -Landroid/os/IBinder;->SYSPROPS_TRANSACTION:I Landroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService; Landroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController; -Landroid/os/IDeviceIdleController;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V Landroid/os/IDeviceIdleController;->getAppIdTempWhitelist()[I Landroid/os/IDeviceIdleController;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String; Landroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Landroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService; -Landroid/os/INetworkManagementService;->clearInterfaceAddresses(Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->disableIpv6(Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->disableNat(Ljava/lang/String;Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->enableIpv6(Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->enableNat(Ljava/lang/String;Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->getInterfaceConfig(Ljava/lang/String;)Landroid/net/InterfaceConfiguration; -Landroid/os/INetworkManagementService;->getIpForwardingEnabled()Z -Landroid/os/INetworkManagementService;->isBandwidthControlEnabled()Z -Landroid/os/INetworkManagementService;->isTetheringStarted()Z Landroid/os/INetworkManagementService;->listTetheredInterfaces()[Ljava/lang/String; -Landroid/os/INetworkManagementService;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V -Landroid/os/INetworkManagementService;->setInterfaceConfig(Ljava/lang/String;Landroid/net/InterfaceConfiguration;)V -Landroid/os/INetworkManagementService;->setInterfaceIpv6PrivacyExtensions(Ljava/lang/String;Z)V -Landroid/os/INetworkManagementService;->setIpForwardingEnabled(Z)V -Landroid/os/INetworkManagementService;->setIPv6AddrGenMode(Ljava/lang/String;I)V -Landroid/os/INetworkManagementService;->startTethering([Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->stopTethering()V -Landroid/os/INetworkManagementService;->tetherInterface(Ljava/lang/String;)V -Landroid/os/INetworkManagementService;->unregisterObserver(Landroid/net/INetworkManagementEventObserver;)V -Landroid/os/INetworkManagementService;->untetherInterface(Ljava/lang/String;)V Landroid/os/IPermissionController$Stub$Proxy;->checkPermission(Ljava/lang/String;II)Z Landroid/os/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPermissionController; Landroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V @@ -611,313 +396,21 @@ Landroid/os/IPowerManager$Stub$Proxy;->isLightDeviceIdleMode()Z Landroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager; Landroid/os/IPowerManager$Stub;->TRANSACTION_acquireWakeLock:I Landroid/os/IPowerManager$Stub;->TRANSACTION_goToSleep:I -Landroid/os/IPowerManager;->goToSleep(JII)V -Landroid/os/IPowerManager;->isInteractive()Z -Landroid/os/IPowerManager;->reboot(ZLjava/lang/String;Z)V Landroid/os/IPowerManager;->releaseWakeLock(Landroid/os/IBinder;I)V -Landroid/os/IPowerManager;->userActivity(JII)V -Landroid/os/IPowerManager;->wakeUp(JLjava/lang/String;Ljava/lang/String;)V Landroid/os/IRecoverySystem$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRecoverySystem; Landroid/os/IRemoteCallback$Stub;-><init>()V -Landroid/os/IRemoteCallback;->sendResult(Landroid/os/Bundle;)V -Landroid/os/IServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -Landroid/os/IServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; Landroid/os/IUpdateEngine$Stub;-><init>()V Landroid/os/IUpdateEngineCallback;->onStatusUpdate(IF)V Landroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager; -Landroid/os/IUserManager;->getUserInfo(I)Landroid/content/pm/UserInfo; Landroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService; -Landroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;I)V -Landroid/os/Looper;->mLogging:Landroid/util/Printer; -Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue; -Landroid/os/Looper;->setTraceTag(J)V -Landroid/os/Looper;->sMainLooper:Landroid/os/Looper; -Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal; -Landroid/os/MemoryFile;->deactivate()V -Landroid/os/MemoryFile;->getFileDescriptor()Ljava/io/FileDescriptor; -Landroid/os/MemoryFile;->getSize(Ljava/io/FileDescriptor;)I -Landroid/os/MemoryFile;->native_get_size(Ljava/io/FileDescriptor;)I -Landroid/os/MemoryFile;->native_pin(Ljava/io/FileDescriptor;Z)Z -Landroid/os/Message;->callback:Ljava/lang/Runnable; -Landroid/os/Message;->flags:I -Landroid/os/Message;->markInUse()V -Landroid/os/Message;->next:Landroid/os/Message; -Landroid/os/Message;->recycleUnchecked()V -Landroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message; -Landroid/os/Message;->target:Landroid/os/Handler; -Landroid/os/Message;->toString(J)Ljava/lang/String; -Landroid/os/Message;->when:J -Landroid/os/MessageQueue;->dispatchEvents(II)I -Landroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z -Landroid/os/MessageQueue;->mIdleHandlers:Ljava/util/ArrayList; -Landroid/os/MessageQueue;->mMessages:Landroid/os/Message; -Landroid/os/MessageQueue;->mNextBarrierToken:I -Landroid/os/MessageQueue;->mPtr:J -Landroid/os/MessageQueue;->mQuitAllowed:Z -Landroid/os/MessageQueue;->nativePollOnce(JI)V -Landroid/os/MessageQueue;->next()Landroid/os/Message; -Landroid/os/MessageQueue;->postSyncBarrier()I -Landroid/os/MessageQueue;->removeSyncBarrier(I)V Landroid/os/Parcel$ReadWriteHelper;-><init>()V -Landroid/os/Parcel;->getGlobalAllocCount()J -Landroid/os/Parcel;->getGlobalAllocSize()J -Landroid/os/Parcel;->mNativePtr:J -Landroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V -Landroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet; -Landroid/os/Parcel;->readBlob()[B -Landroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence; -Landroid/os/Parcel;->readCreator(Landroid/os/Parcelable$Creator;Ljava/lang/ClassLoader;)Landroid/os/Parcelable; -Landroid/os/Parcel;->readExceptionCode()I -Landroid/os/Parcel;->readParcelableCreator(Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator; -Landroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List; -Landroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor; -Landroid/os/Parcel;->readStringArray()[Ljava/lang/String; -Landroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V -Landroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V -Landroid/os/Parcel;->writeBlob([B)V -Landroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V -Landroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V -Landroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V -Landroid/os/ParcelableParcel;-><init>(Ljava/lang/ClassLoader;)V -Landroid/os/ParcelableParcel;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator; -Landroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader; -Landroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel; -Landroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V -Landroid/os/ParcelFileDescriptor;->fromData([BLjava/lang/String;)Landroid/os/ParcelFileDescriptor; -Landroid/os/ParcelFileDescriptor;->getFile(Ljava/io/FileDescriptor;)Ljava/io/File; -Landroid/os/ParcelFileDescriptor;->seekTo(J)J -Landroid/os/PerformanceCollector;-><init>()V -Landroid/os/PerformanceCollector;->beginSnapshot(Ljava/lang/String;)V -Landroid/os/PerformanceCollector;->endSnapshot()Landroid/os/Bundle; -Landroid/os/PerformanceCollector;->startTiming(Ljava/lang/String;)V -Landroid/os/PerformanceCollector;->stopTiming(Ljava/lang/String;)Landroid/os/Bundle; -Landroid/os/PowerManager$WakeLock;->mFlags:I -Landroid/os/PowerManager$WakeLock;->mTag:Ljava/lang/String; -Landroid/os/PowerManager;->ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED:Ljava/lang/String; -Landroid/os/PowerManager;->ACTION_POWER_SAVE_MODE_CHANGING:Ljava/lang/String; -Landroid/os/PowerManager;->BRIGHTNESS_ON:I -Landroid/os/PowerManager;->EXTRA_POWER_SAVE_MODE:Ljava/lang/String; -Landroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I -Landroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I -Landroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I -Landroid/os/PowerManager;->goToSleep(JII)V -Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_TIMEOUT:I -Landroid/os/PowerManager;->isLightDeviceIdleMode()Z -Landroid/os/PowerManager;->mService:Landroid/os/IPowerManager; -Landroid/os/PowerManager;->setPowerSaveMode(Z)Z -Landroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V -Landroid/os/PowerManager;->wakeUp(JLjava/lang/String;)V -Landroid/os/Process;->DRM_UID:I -Landroid/os/Process;->getFreeMemory()J -Landroid/os/Process;->getParentPid(I)I -Landroid/os/Process;->getPids(Ljava/lang/String;[I)[I -Landroid/os/Process;->getPidsForCommands([Ljava/lang/String;)[I -Landroid/os/Process;->getPss(I)J -Landroid/os/Process;->getTotalMemory()J -Landroid/os/Process;->getUidForPid(I)I -Landroid/os/Process;->isIsolated(I)Z -Landroid/os/Process;->LOG_UID:I -Landroid/os/Process;->MEDIA_UID:I -Landroid/os/Process;->myPpid()I -Landroid/os/Process;->NFC_UID:I -Landroid/os/Process;->parseProcLine([BII[I[Ljava/lang/String;[J[F)Z -Landroid/os/Process;->PROC_COMBINE:I -Landroid/os/Process;->PROC_OUT_FLOAT:I -Landroid/os/Process;->PROC_OUT_LONG:I -Landroid/os/Process;->PROC_OUT_STRING:I -Landroid/os/Process;->PROC_PARENS:I -Landroid/os/Process;->PROC_QUOTES:I -Landroid/os/Process;->PROC_SPACE_TERM:I -Landroid/os/Process;->PROC_TAB_TERM:I -Landroid/os/Process;->PROC_TERM_MASK:I -Landroid/os/Process;->PROC_ZERO_TERM:I -Landroid/os/Process;->readProcFile(Ljava/lang/String;[I[Ljava/lang/String;[J[F)Z -Landroid/os/Process;->readProcLines(Ljava/lang/String;[Ljava/lang/String;[J)V -Landroid/os/Process;->setArgV0(Ljava/lang/String;)V -Landroid/os/Process;->setProcessGroup(II)V -Landroid/os/Process;->VPN_UID:I -Landroid/os/Process;->WIFI_UID:I -Landroid/os/RecoverySystem;->verifyPackageCompatibility(Ljava/io/InputStream;)Z -Landroid/os/Registrant;-><init>(Landroid/os/Handler;ILjava/lang/Object;)V -Landroid/os/Registrant;->clear()V -Landroid/os/Registrant;->messageForRegistrant()Landroid/os/Message; -Landroid/os/Registrant;->notifyRegistrant()V -Landroid/os/Registrant;->notifyRegistrant(Landroid/os/AsyncResult;)V -Landroid/os/Registrant;->notifyResult(Ljava/lang/Object;)V Landroid/os/RegistrantList;-><init>()V -Landroid/os/RegistrantList;->add(Landroid/os/Handler;ILjava/lang/Object;)V -Landroid/os/RegistrantList;->add(Landroid/os/Registrant;)V -Landroid/os/RegistrantList;->addUnique(Landroid/os/Handler;ILjava/lang/Object;)V -Landroid/os/RegistrantList;->notifyRegistrants()V -Landroid/os/RegistrantList;->notifyRegistrants(Landroid/os/AsyncResult;)V -Landroid/os/RegistrantList;->notifyResult(Ljava/lang/Object;)V -Landroid/os/RegistrantList;->remove(Landroid/os/Handler;)V -Landroid/os/RegistrantList;->removeCleared()V -Landroid/os/RegistrantList;->size()I -Landroid/os/RemoteCallbackList;->mCallbacks:Landroid/util/ArrayMap; -Landroid/os/RemoteException;->rethrowFromSystemServer()Ljava/lang/RuntimeException; -Landroid/os/SELinux;->checkSELinuxAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -Landroid/os/SELinux;->getContext()Ljava/lang/String; -Landroid/os/SELinux;->getFileContext(Ljava/lang/String;)Ljava/lang/String; -Landroid/os/SELinux;->getPidContext(I)Ljava/lang/String; -Landroid/os/SELinux;->isSELinuxEnabled()Z -Landroid/os/SELinux;->isSELinuxEnforced()Z -Landroid/os/SELinux;->restoreconRecursive(Ljava/io/File;)Z Landroid/os/ServiceManager;-><init>()V -Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V -Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;Z)V -Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V -Landroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -Landroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager; -Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; -Landroid/os/ServiceManager;->listServices()[Ljava/lang/String; -Landroid/os/ServiceManager;->sCache:Ljava/util/HashMap; -Landroid/os/ServiceManager;->sServiceManager:Landroid/os/IServiceManager; -Landroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager; -Landroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder; -Landroid/os/ServiceManagerProxy;->mRemote:Landroid/os/IBinder; -Landroid/os/SharedMemory;->getFd()I -Landroid/os/ShellCommand;->peekNextArg()Ljava/lang/String; -Landroid/os/StatFs;->mStat:Landroid/system/StructStatVfs; Landroid/os/storage/IObbActionListener$Stub;-><init>()V Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager; Landroid/os/storage/StorageEventListener;-><init>()V -Landroid/os/StrictMode$Span;->finish()V -Landroid/os/StrictMode$ThreadPolicy;->mask:I -Landroid/os/StrictMode$VmPolicy$Builder;->mMask:I -Landroid/os/StrictMode$VmPolicy;->mask:I -Landroid/os/StrictMode;->conditionallyCheckInstanceCounts()V -Landroid/os/StrictMode;->disableDeathOnFileUriExposure()V -Landroid/os/StrictMode;->enableDeathOnFileUriExposure()V -Landroid/os/StrictMode;->enterCriticalSpan(Ljava/lang/String;)Landroid/os/StrictMode$Span; -Landroid/os/StrictMode;->getThreadPolicyMask()I -Landroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V -Landroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V -Landroid/os/StrictMode;->onWebViewMethodCalledOnWrongThread(Ljava/lang/Throwable;)V -Landroid/os/StrictMode;->sLastVmViolationTime:Ljava/util/HashMap; -Landroid/os/StrictMode;->sWindowManager:Landroid/util/Singleton; -Landroid/os/StrictMode;->violationsBeingTimed:Ljava/lang/ThreadLocal; -Landroid/os/SystemClock;-><init>()V -Landroid/os/SystemClock;->currentThreadTimeMicro()J -Landroid/os/SystemClock;->currentTimeMicro()J -Landroid/os/SystemProperties;-><init>()V -Landroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V -Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String; -Landroid/os/SystemProperties;->native_get_long(Ljava/lang/String;J)J -Landroid/os/SystemProperties;->PROP_NAME_MAX:I -Landroid/os/SystemProperties;->reportSyspropChanged()V -Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList; -Landroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V -Landroid/os/SystemService;->start(Ljava/lang/String;)V -Landroid/os/SystemService;->stop(Ljava/lang/String;)V -Landroid/os/SystemVibrator;-><init>()V -Landroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V -Landroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V -Landroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V -Landroid/os/Trace;->isTagEnabled(J)Z -Landroid/os/Trace;->nativeGetEnabledTags()J -Landroid/os/Trace;->sEnabledTags:J -Landroid/os/Trace;->setAppTracingAllowed(Z)V -Landroid/os/Trace;->traceBegin(JLjava/lang/String;)V -Landroid/os/Trace;->traceCounter(JLjava/lang/String;I)V -Landroid/os/Trace;->traceEnd(J)V -Landroid/os/Trace;->TRACE_TAG_APP:J -Landroid/os/Trace;->TRACE_TAG_VIEW:J -Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String; -Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Landroid/os/UEventObserver;-><init>()V -Landroid/os/UEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V -Landroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V -Landroid/os/UEventObserver;->stopObserving()V -Landroid/os/UpdateLock;->acquire()V -Landroid/os/UpdateLock;->isHeld()Z -Landroid/os/UpdateLock;->NOW_IS_CONVENIENT:Ljava/lang/String; -Landroid/os/UpdateLock;->release()V -Landroid/os/UpdateLock;->TIMESTAMP:Ljava/lang/String; -Landroid/os/UpdateLock;->UPDATE_LOCK_CHANGED:Ljava/lang/String; -Landroid/os/UserHandle;-><init>(I)V -Landroid/os/UserHandle;->AID_APP_END:I -Landroid/os/UserHandle;->AID_APP_START:I -Landroid/os/UserHandle;->AID_CACHE_GID_START:I -Landroid/os/UserHandle;->AID_ROOT:I -Landroid/os/UserHandle;->AID_SHARED_GID_START:I -Landroid/os/UserHandle;->CURRENT_OR_SELF:Landroid/os/UserHandle; -Landroid/os/UserHandle;->ERR_GID:I -Landroid/os/UserHandle;->getAppIdFromSharedAppGid(I)I -Landroid/os/UserHandle;->getCallingUserId()I -Landroid/os/UserHandle;->getUid(II)I -Landroid/os/UserHandle;->getUserId(I)I -Landroid/os/UserHandle;->isApp(I)Z -Landroid/os/UserHandle;->isIsolated(I)Z -Landroid/os/UserHandle;->isSameApp(II)Z -Landroid/os/UserHandle;->mHandle:I -Landroid/os/UserHandle;->MU_ENABLED:Z -Landroid/os/UserHandle;->OWNER:Landroid/os/UserHandle; -Landroid/os/UserHandle;->PER_USER_RANGE:I -Landroid/os/UserHandle;->USER_ALL:I -Landroid/os/UserHandle;->USER_CURRENT:I -Landroid/os/UserHandle;->USER_CURRENT_OR_SELF:I -Landroid/os/UserHandle;->USER_NULL:I -Landroid/os/UserHandle;->USER_OWNER:I -Landroid/os/UserHandle;->USER_SERIAL_SYSTEM:I -Landroid/os/UserHandle;->USER_SYSTEM:I -Landroid/os/UserManager;->createProfileForUser(Ljava/lang/String;II)Landroid/content/pm/UserInfo; -Landroid/os/UserManager;->createUser(Ljava/lang/String;I)Landroid/content/pm/UserInfo; -Landroid/os/UserManager;->DISALLOW_RECORD_AUDIO:Ljava/lang/String; -Landroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager; -Landroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List; -Landroid/os/UserManager;->getMaxSupportedUsers()I -Landroid/os/UserManager;->getProfileIdsWithDisabled(I)[I -Landroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo; -Landroid/os/UserManager;->getProfiles(I)Ljava/util/List; -Landroid/os/UserManager;->getUserHandle()I -Landroid/os/UserManager;->getUserHandle(I)I -Landroid/os/UserManager;->getUserIcon(I)Landroid/graphics/Bitmap; -Landroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo; -Landroid/os/UserManager;->getUsers()Ljava/util/List; -Landroid/os/UserManager;->getUsers(Z)Ljava/util/List; -Landroid/os/UserManager;->getUserSerialNumber(I)I -Landroid/os/UserManager;->getUserStartRealtime()J -Landroid/os/UserManager;->getUserUnlockRealtime()J -Landroid/os/UserManager;->hasBaseUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z -Landroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z -Landroid/os/UserManager;->isAdminUser()Z -Landroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z -Landroid/os/UserManager;->isGuestUser(I)Z -Landroid/os/UserManager;->isLinkedUser()Z -Landroid/os/UserManager;->isUserAdmin(I)Z -Landroid/os/UserManager;->isUserUnlocked(I)Z -Landroid/os/UserManager;->mService:Landroid/os/IUserManager; -Landroid/os/UserManager;->removeUser(I)Z -Landroid/os/Vibrator;-><init>()V -Landroid/os/VintfObject;->getHalNamesAndVersions()[Ljava/lang/String; -Landroid/os/VintfObject;->getSepolicyVersion()Ljava/lang/String; -Landroid/os/VintfObject;->getTargetFrameworkCompatibilityMatrixVersion()Ljava/lang/Long; -Landroid/os/VintfObject;->getVndkSnapshots()Ljava/util/Map; -Landroid/os/VintfObject;->report()[Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getCpuInfo()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getHardwareId()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getKernelVersion()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getNodeName()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getOsName()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getOsRelease()Ljava/lang/String; -Landroid/os/VintfRuntimeInfo;->getOsVersion()Ljava/lang/String; -Landroid/os/WorkSource;-><init>(I)V -Landroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V -Landroid/os/WorkSource;->add(I)Z -Landroid/os/WorkSource;->add(ILjava/lang/String;)Z -Landroid/os/WorkSource;->addReturningNewbs(Landroid/os/WorkSource;)Landroid/os/WorkSource; -Landroid/os/WorkSource;->get(I)I -Landroid/os/WorkSource;->getName(I)Ljava/lang/String; -Landroid/os/WorkSource;->mNames:[Ljava/lang/String; -Landroid/os/WorkSource;->mNum:I -Landroid/os/WorkSource;->mUids:[I -Landroid/os/WorkSource;->setReturningDiffs(Landroid/os/WorkSource;)[Landroid/os/WorkSource; -Landroid/os/WorkSource;->size()I -Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/String;)V -Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/Throwable;)V Landroid/preference/PreferenceGroupAdapter;->getItem(I)Landroid/preference/Preference; Landroid/R$styleable;->ActionBar:[I Landroid/R$styleable;->ActionBar_background:I @@ -1901,48 +1394,6 @@ Lcom/android/internal/statusbar/IStatusBar$Stub;->asInterface(Landroid/os/IBinde Lcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V Lcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService; Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; -Lcom/android/internal/telephony/BaseCommands;->mCallStateRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mCallWaitingInfoRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mCatCallSetUpRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCatCcAlphaRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCatEventRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCatProCmdRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCatSessionEndRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCdmaPrlChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mCdmaSmsRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mCdmaSubscriptionChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/BaseCommands;->mEmergencyCallbackModeRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mExitEmergencyCallbackModeRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mGsmBroadcastSmsRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mGsmSmsRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mHardwareConfigChangeRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mIccRefreshRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mIccSmsFullRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mIccStatusChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mImsNetworkStateChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mNITZTimeRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mOtaProvisionRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mPhoneRadioCapabilityChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mPhoneType:I -Lcom/android/internal/telephony/BaseCommands;->mPreferredNetworkType:I -Lcom/android/internal/telephony/BaseCommands;->mResendIncallMuteRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mRestrictedStateRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mRilCellInfoListRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mRingbackToneRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mRingRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mSignalStrengthRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mSmsOnSimRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mSmsStatusRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mSrvccStateRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mSsnRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mSsRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mStateMonitor:Ljava/lang/Object; -Lcom/android/internal/telephony/BaseCommands;->mSubscriptionStatusRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/BaseCommands;->mUnsolOemHookRawRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mUSSDRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/BaseCommands;->mVoiceRadioTechChangedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/Call$State;->ACTIVE:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->ALERTING:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->DIALING:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->DISCONNECTED:Lcom/android/internal/telephony/Call$State; @@ -1950,232 +1401,22 @@ Lcom/android/internal/telephony/Call$State;->DISCONNECTING:Lcom/android/internal Lcom/android/internal/telephony/Call$State;->HOLDING:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->IDLE:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->INCOMING:Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/Call$State;->isAlive()Z -Lcom/android/internal/telephony/Call$State;->isRinging()Z Lcom/android/internal/telephony/Call$State;->values()[Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call$State;->WAITING:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/Call;-><init>()V -Lcom/android/internal/telephony/Call;->getConnections()Ljava/util/List; -Lcom/android/internal/telephony/Call;->getEarliestConnection()Lcom/android/internal/telephony/Connection; -Lcom/android/internal/telephony/Call;->getLatestConnection()Lcom/android/internal/telephony/Connection; -Lcom/android/internal/telephony/Call;->getPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/Call;->getState()Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/Call;->hangup()V -Lcom/android/internal/telephony/Call;->isIdle()Z -Lcom/android/internal/telephony/Call;->isMultiparty()Z -Lcom/android/internal/telephony/Call;->mConnections:Ljava/util/ArrayList; -Lcom/android/internal/telephony/Call;->mState:Lcom/android/internal/telephony/Call$State; Lcom/android/internal/telephony/CallerInfoAsyncQuery$CallerInfoAsyncQueryHandler;-><init>(Lcom/android/internal/telephony/CallerInfoAsyncQuery;Landroid/content/Context;)V Lcom/android/internal/telephony/CallerInfoAsyncQuery$CookieWrapper;-><init>()V Lcom/android/internal/telephony/CallerInfoAsyncQuery;->release()V Lcom/android/internal/telephony/CallForwardInfo;-><init>()V -Lcom/android/internal/telephony/CallForwardInfo;->number:Ljava/lang/String; -Lcom/android/internal/telephony/CallForwardInfo;->reason:I -Lcom/android/internal/telephony/CallForwardInfo;->serviceClass:I -Lcom/android/internal/telephony/CallForwardInfo;->status:I -Lcom/android/internal/telephony/CallForwardInfo;->timeSeconds:I -Lcom/android/internal/telephony/CallForwardInfo;->toa:I -Lcom/android/internal/telephony/CallManager;->canConference(Lcom/android/internal/telephony/Call;I)Z -Lcom/android/internal/telephony/CallManager;->canDial(Lcom/android/internal/telephony/Phone;)Z -Lcom/android/internal/telephony/CallManager;->conference(Lcom/android/internal/telephony/Call;)V -Lcom/android/internal/telephony/CallManager;->getActiveFgCall(I)Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallManager;->getActiveFgCallState(I)Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/CallManager;->getBackgroundCalls()Ljava/util/List; -Lcom/android/internal/telephony/CallManager;->getBgCallConnections()Ljava/util/List; -Lcom/android/internal/telephony/CallManager;->getBgPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getContext()Landroid/content/Context; -Lcom/android/internal/telephony/CallManager;->getDefaultPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getFgCallConnections()Ljava/util/List; -Lcom/android/internal/telephony/CallManager;->getFgPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getFgPhone(I)Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getFirstActiveBgCall()Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallManager;->getFirstActiveBgCall(I)Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallManager;->getFirstActiveRingingCall()Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallManager;->getFirstActiveRingingCall(I)Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallManager;->getInstance()Lcom/android/internal/telephony/CallManager; -Lcom/android/internal/telephony/CallManager;->getPhoneInCall()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getRingingCalls()Ljava/util/List; -Lcom/android/internal/telephony/CallManager;->getRingingPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/CallManager;->getState()Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/CallManager;->getState(I)Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/CallManager;->hasActiveBgCall()Z -Lcom/android/internal/telephony/CallManager;->hasActiveBgCall(I)Z -Lcom/android/internal/telephony/CallManager;->hasActiveFgCall()Z -Lcom/android/internal/telephony/CallManager;->hasActiveFgCall(I)Z -Lcom/android/internal/telephony/CallManager;->hasActiveRingingCall(I)Z -Lcom/android/internal/telephony/CallManager;->hasMoreThanOneRingingCall()Z -Lcom/android/internal/telephony/CallManager;->hasMoreThanOneRingingCall(I)Z -Lcom/android/internal/telephony/CallManager;->mBackgroundCalls:Ljava/util/ArrayList; -Lcom/android/internal/telephony/CallManager;->mEmptyConnections:Ljava/util/ArrayList; -Lcom/android/internal/telephony/CallManager;->mForegroundCalls:Ljava/util/ArrayList; -Lcom/android/internal/telephony/CallManager;->mPhones:Ljava/util/ArrayList; -Lcom/android/internal/telephony/CallManager;->mRingingCalls:Ljava/util/ArrayList; -Lcom/android/internal/telephony/CallManager;->registerForDisconnect(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CallManager;->registerForNewRingingConnection(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CallManager;->registerForPreciseCallStateChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CallManager;->registerPhone(Lcom/android/internal/telephony/Phone;)Z -Lcom/android/internal/telephony/CallManager;->unregisterForDisconnect(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CallManager;->unregisterForNewRingingConnection(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CallManager;->unregisterForPreciseCallStateChanged(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CallManager;->unregisterPhone(Lcom/android/internal/telephony/Phone;)V -Lcom/android/internal/telephony/CallStateException;-><init>(Ljava/lang/String;)V Lcom/android/internal/telephony/CallTracker;-><init>()V -Lcom/android/internal/telephony/CallTracker;->getState()Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/CallTracker;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/CallTracker;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/CallTracker;->mNeedsPoll:Z -Lcom/android/internal/telephony/CallTracker;->mNumberConverted:Z -Lcom/android/internal/telephony/CallTracker;->mPendingOperations:I -Lcom/android/internal/telephony/CallTracker;->registerForVoiceCallEnded(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CarrierServiceBindHelper;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/CarrierServiceBindHelper;->mHandler:Landroid/os/Handler; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->CLOSE_CHANNEL:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->DISPLAY_TEXT:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->fromInt(I)Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->GET_CHANNEL_STATUS:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->GET_INKEY:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->GET_INPUT:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->LANGUAGE_NOTIFICATION:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->LAUNCH_BROWSER:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->OPEN_CHANNEL:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->PLAY_TONE:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->PROVIDE_LOCAL_INFORMATION:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->RECEIVE_DATA:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->REFRESH:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SELECT_ITEM:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SEND_DATA:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SEND_DTMF:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SEND_SMS:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SEND_SS:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SEND_USSD:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SET_UP_CALL:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SET_UP_EVENT_LIST:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SET_UP_IDLE_MODE_TEXT:Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface$CommandType;->SET_UP_MENU:Lcom/android/internal/telephony/cat/AppInterface$CommandType; Lcom/android/internal/telephony/cat/AppInterface$CommandType;->values()[Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings;->callMsg:Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings;->confirmMsg:Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListSettings;->eventList:[I -Lcom/android/internal/telephony/cat/CatCmdMessage;->getCallSettings()Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage;->getCmdType()Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/CatCmdMessage;->geTextMessage()Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/CatCmdMessage;->getSetEventList()Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage;->hasIconLoadFailed()Z -Lcom/android/internal/telephony/cat/CatCmdMessage;->mCallSettings:Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage;->mCmdDet:Lcom/android/internal/telephony/cat/CommandDetails; -Lcom/android/internal/telephony/cat/CatCmdMessage;->mInput:Lcom/android/internal/telephony/cat/Input; -Lcom/android/internal/telephony/cat/CatCmdMessage;->mMenu:Lcom/android/internal/telephony/cat/Menu; -Lcom/android/internal/telephony/cat/CatCmdMessage;->mTextMsg:Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/CatLog;->d(Ljava/lang/Object;Ljava/lang/String;)V -Lcom/android/internal/telephony/cat/CatLog;->d(Ljava/lang/String;Ljava/lang/String;)V -Lcom/android/internal/telephony/cat/CatLog;->e(Ljava/lang/Object;Ljava/lang/String;)V -Lcom/android/internal/telephony/cat/CatResponseMessage;->setEventDownload(I[B)V -Lcom/android/internal/telephony/cat/CatService;->dispose()V -Lcom/android/internal/telephony/cat/CatService;->isStkAppInstalled()Z -Lcom/android/internal/telephony/cat/CatService;->mCmdIf:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/cat/CatService;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/cat/CatService;->mCurrntCmd:Lcom/android/internal/telephony/cat/CatCmdMessage; -Lcom/android/internal/telephony/cat/CatService;->mMenuCmd:Lcom/android/internal/telephony/cat/CatCmdMessage; -Lcom/android/internal/telephony/cat/CatService;->mMsgDecoder:Lcom/android/internal/telephony/cat/RilMessageDecoder; -Lcom/android/internal/telephony/cat/CatService;->mSlotId:I -Lcom/android/internal/telephony/cat/CatService;->mStkAppInstalled:Z -Lcom/android/internal/telephony/cat/CatService;->mUiccController:Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/cat/CatService;->sendTerminalResponse(Lcom/android/internal/telephony/cat/CommandDetails;Lcom/android/internal/telephony/cat/ResultCode;ZILcom/android/internal/telephony/cat/ResponseData;)V -Lcom/android/internal/telephony/cat/CatService;->sInstance:[Lcom/android/internal/telephony/cat/CatService; -Lcom/android/internal/telephony/cat/CatService;->sInstanceLock:Ljava/lang/Object; -Lcom/android/internal/telephony/cat/CommandDetails;->commandNumber:I -Lcom/android/internal/telephony/cat/CommandDetails;->commandQualifier:I -Lcom/android/internal/telephony/cat/CommandDetails;->compRequired:Z -Lcom/android/internal/telephony/cat/CommandDetails;->typeOfCommand:I -Lcom/android/internal/telephony/cat/CommandParams;-><init>(Lcom/android/internal/telephony/cat/CommandDetails;)V -Lcom/android/internal/telephony/cat/CommandParams;->getCommandType()Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/CommandParams;->mCmdDet:Lcom/android/internal/telephony/cat/CommandDetails; -Lcom/android/internal/telephony/cat/CommandParamsFactory;->dispose()V -Lcom/android/internal/telephony/cat/CommandParamsFactory;->mIconLoader:Lcom/android/internal/telephony/cat/IconLoader; -Lcom/android/internal/telephony/cat/CommandParamsFactory;->searchForNextTag(Lcom/android/internal/telephony/cat/ComprehensionTlvTag;Ljava/util/Iterator;)Lcom/android/internal/telephony/cat/ComprehensionTlv; -Lcom/android/internal/telephony/cat/CommandParamsFactory;->searchForTag(Lcom/android/internal/telephony/cat/ComprehensionTlvTag;Ljava/util/List;)Lcom/android/internal/telephony/cat/ComprehensionTlv; -Lcom/android/internal/telephony/cat/ComprehensionTlv;->getLength()I -Lcom/android/internal/telephony/cat/ComprehensionTlv;->getRawValue()[B -Lcom/android/internal/telephony/cat/ComprehensionTlv;->getTag()I -Lcom/android/internal/telephony/cat/ComprehensionTlv;->getValueIndex()I -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->ADDRESS:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->ALPHA_ID:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->COMMAND_DETAILS:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->DEVICE_IDENTITIES:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->ICON_ID:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->RESULT:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->SMS_TPDU:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->TEXT_ATTRIBUTE:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->TEXT_STRING:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->USSD_STRING:Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag;->value()I -Lcom/android/internal/telephony/cat/DeviceIdentities;->destinationId:I -Lcom/android/internal/telephony/cat/DisplayTextParams;-><init>(Lcom/android/internal/telephony/cat/CommandDetails;Lcom/android/internal/telephony/cat/TextMessage;)V -Lcom/android/internal/telephony/cat/DisplayTextParams;->mTextMsg:Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/Duration$TimeUnit;->value()I -Lcom/android/internal/telephony/cat/Duration;->timeInterval:I -Lcom/android/internal/telephony/cat/Duration;->timeUnit:Lcom/android/internal/telephony/cat/Duration$TimeUnit; -Lcom/android/internal/telephony/cat/GetInputParams;-><init>(Lcom/android/internal/telephony/cat/CommandDetails;Lcom/android/internal/telephony/cat/Input;)V -Lcom/android/internal/telephony/cat/IconId;->recordNumber:I -Lcom/android/internal/telephony/cat/IconLoader;->loadIcon(ILandroid/os/Message;)V -Lcom/android/internal/telephony/cat/Menu;->titleAttrs:Ljava/util/List; -Lcom/android/internal/telephony/cat/PlayToneParams;-><init>(Lcom/android/internal/telephony/cat/CommandDetails;Lcom/android/internal/telephony/cat/TextMessage;Lcom/android/internal/telephony/cat/Tone;Lcom/android/internal/telephony/cat/Duration;Z)V Lcom/android/internal/telephony/cat/ResponseData;-><init>()V -Lcom/android/internal/telephony/cat/ResponseData;->format(Ljava/io/ByteArrayOutputStream;)V -Lcom/android/internal/telephony/cat/ResultCode;->BACKWARD_MOVE_BY_USER:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->BEYOND_TERMINAL_CAPABILITY:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->BIP_ERROR:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->CMD_DATA_NOT_UNDERSTOOD:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->HELP_INFO_REQUIRED:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->LAUNCH_BROWSER_ERROR:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->NETWORK_CRNTLY_UNABLE_TO_PROCESS:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->NO_RESPONSE_FROM_USER:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->OK:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_ICON_NOT_DISPLAYED:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_LIMITED_SERVICE:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_MODIFIED_BY_NAA:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_NAA_NOT_ACTIVE:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_TONE_NOT_PLAYED:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_WITH_ADDITIONAL_EFS_READ:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_WITH_MISSING_INFO:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_WITH_MODIFICATION:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->PRFRMD_WITH_PARTIAL_COMPREHENSION:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->REQUIRED_VALUES_MISSING:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->TERMINAL_CRNTLY_UNABLE_TO_PROCESS:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->UICC_SESSION_TERM_BY_USER:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->USER_NOT_ACCEPT:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->USIM_CALL_CONTROL_PERMANENT:Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultCode;->value()I Lcom/android/internal/telephony/cat/ResultCode;->values()[Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultException;-><init>(Lcom/android/internal/telephony/cat/ResultCode;)V -Lcom/android/internal/telephony/cat/RilMessage;-><init>(ILjava/lang/String;)V -Lcom/android/internal/telephony/cat/RilMessage;->mData:Ljava/lang/Object; -Lcom/android/internal/telephony/cat/RilMessage;->mId:I -Lcom/android/internal/telephony/cat/RilMessageDecoder;->getInstance(Landroid/os/Handler;Lcom/android/internal/telephony/uicc/IccFileHandler;I)Lcom/android/internal/telephony/cat/RilMessageDecoder; -Lcom/android/internal/telephony/cat/RilMessageDecoder;->mCmdParamsFactory:Lcom/android/internal/telephony/cat/CommandParamsFactory; Lcom/android/internal/telephony/cat/RilMessageDecoder;->mCurrentRilMessage:Lcom/android/internal/telephony/cat/RilMessage; -Lcom/android/internal/telephony/cat/RilMessageDecoder;->mInstance:[Lcom/android/internal/telephony/cat/RilMessageDecoder; -Lcom/android/internal/telephony/cat/RilMessageDecoder;->mStateStart:Lcom/android/internal/telephony/cat/RilMessageDecoder$StateStart; Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendCmdForExecution(Lcom/android/internal/telephony/cat/RilMessage;)V Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendStartDecodingMessageParams(Lcom/android/internal/telephony/cat/RilMessage;)V -Lcom/android/internal/telephony/cat/SelectItemParams;-><init>(Lcom/android/internal/telephony/cat/CommandDetails;Lcom/android/internal/telephony/cat/Menu;Z)V -Lcom/android/internal/telephony/cat/TextMessage;-><init>()V -Lcom/android/internal/telephony/cat/TextMessage;->iconSelfExplanatory:Z -Lcom/android/internal/telephony/cat/TextMessage;->text:Ljava/lang/String; Lcom/android/internal/telephony/cat/ValueObject;-><init>()V -Lcom/android/internal/telephony/cat/ValueParser;->retrieveAlphaId(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Ljava/lang/String; Lcom/android/internal/telephony/cat/ValueParser;->retrieveDeviceIdentities(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Lcom/android/internal/telephony/cat/DeviceIdentities; -Lcom/android/internal/telephony/cat/ValueParser;->retrieveTextAttribute(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Ljava/util/List; -Lcom/android/internal/telephony/cat/ValueParser;->retrieveTextString(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Ljava/lang/String; -Lcom/android/internal/telephony/cdma/CdmaCallWaitingNotification;->number:Ljava/lang/String; -Lcom/android/internal/telephony/cdma/CdmaMmiCode;->makeEmptyNull(Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/cdma/CdmaMmiCode;->mSc:Ljava/lang/String; -Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher;->getFormat()Ljava/lang/String; -Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher;->handleCdmaStatusReport(Lcom/android/internal/telephony/cdma/SmsMessage;)V -Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager;->getCdmaSubscriptionSource()I -Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager;->getInstance(Landroid/content/Context;Lcom/android/internal/telephony/CommandsInterface;Landroid/os/Handler;ILjava/lang/Object;)Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager; -Lcom/android/internal/telephony/cdma/EriManager$EriDisplayInformation;->mEriIconText:Ljava/lang/String; -Lcom/android/internal/telephony/cdma/EriManager;->getEriDisplayInformation(II)Lcom/android/internal/telephony/cdma/EriManager$EriDisplayInformation; Lcom/android/internal/telephony/cdma/sms/BearerData$CodingException;-><init>(Ljava/lang/String;)V Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;-><init>()V Lcom/android/internal/telephony/cdma/sms/BearerData;-><init>()V @@ -2229,130 +1470,6 @@ Lcom/android/internal/telephony/cdma/SmsMessage;->mBearerData:Lcom/android/inter Lcom/android/internal/telephony/cdma/SmsMessage;->mEnvelope:Lcom/android/internal/telephony/cdma/sms/SmsEnvelope; Lcom/android/internal/telephony/cdma/SmsMessage;->parseSms()V Lcom/android/internal/telephony/cdma/SmsMessage;->privateGetSubmitPdu(Ljava/lang/String;ZLcom/android/internal/telephony/cdma/sms/UserData;)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu; -Lcom/android/internal/telephony/CommandException$Error;->GENERIC_FAILURE:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException$Error;->PASSWORD_INCORRECT:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException$Error;->RADIO_NOT_AVAILABLE:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException$Error;->REQUEST_NOT_SUPPORTED:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException$Error;->SIM_PUK2:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException$Error;->SMS_FAIL_RETRY:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException;-><init>(Lcom/android/internal/telephony/CommandException$Error;)V -Lcom/android/internal/telephony/CommandException;->fromRilErrno(I)Lcom/android/internal/telephony/CommandException; -Lcom/android/internal/telephony/CommandException;->getCommandError()Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException;->mError:Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandsInterface;->acceptCall(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->acknowledgeLastIncomingCdmaSms(ZILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->acknowledgeLastIncomingGsmSms(ZILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->changeBarringPassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->deleteSmsOnRuim(ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->deleteSmsOnSim(ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->exitEmergencyCallbackMode(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getBasebandVersion(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getCdmaBroadcastConfig(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getCDMASubscription(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getDataCallList(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getIccCardStatus(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getIMEISV(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getIMSI(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getLastDataCallFailCause(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getLastPdpFailCause(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getNetworkSelectionMode(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getOperator(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getPDPContextList(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getPreferredNetworkType(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getSignalStrength(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getSmscAddress(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->getVoiceRegistrationState(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->handleCallSetupRequestFromSim(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->iccIO(IILjava/lang/String;IIILjava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->iccIOForApp(IILjava/lang/String;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->invokeOemRilRequestRaw([BLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->queryCallForwardStatus(IILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->queryCallWaiting(ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->queryFacilityLock(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->queryTTYMode(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForAvailable(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForCdmaOtaProvision(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForCellInfoList(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForIccRefresh(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForImsNetworkStateChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForNotAvailable(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForOffOrNotAvailable(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForOn(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForRadioStateChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->registerForRilConnected(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->reportSmsMemoryStatus(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->reportStkServiceIsRunning(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->requestIccSimAuthentication(ILjava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->requestShutdown(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->sendDtmf(CLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->sendEnvelope(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->sendTerminalResponse(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setCallForward(IIILjava/lang/String;ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setCallWaiting(ZILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setCdmaBroadcastActivation(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setDataAllowed(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setEmergencyCallbackMode(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setFacilityLock(Ljava/lang/String;ZLjava/lang/String;ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setNetworkSelectionModeAutomatic(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setNetworkSelectionModeManual(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCallRing(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCatCallSetUp(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCatCcAlphaNotify(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCatEvent(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCatProactiveCmd(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnCatSessionEnd(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnIccRefresh(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnIccSmsFull(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnNewGsmBroadcastSms(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnNITZTime(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnSignalStrengthUpdate(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnSmsOnSim(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnSmsStatus(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setOnSuppServiceNotification(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/CommandsInterface;->setPhoneType(I)V -Lcom/android/internal/telephony/CommandsInterface;->setPreferredNetworkType(ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setRadioPower(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setSmscAddress(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setTTYMode(ILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->setUiccSubscription(IIIILandroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->supplyIccPin(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->switchWaitingOrHoldingAndActive(Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForAvailable(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForCdmaOtaProvision(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForOffOrNotAvailable(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForOn(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForRilConnected(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->unregisterForVoiceRadioTechChanged(Landroid/os/Handler;)V -Lcom/android/internal/telephony/CommandsInterface;->writeSmsToRuim(ILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/CommandsInterface;->writeSmsToSim(ILjava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/Connection$PostDialState;->CANCELLED:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection$PostDialState;->COMPLETE:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection$PostDialState;->NOT_STARTED:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection$PostDialState;->STARTED:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection$PostDialState;->WAIT:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection$PostDialState;->WILD:Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection;-><init>(I)V -Lcom/android/internal/telephony/Connection;->getAddress()Ljava/lang/String; -Lcom/android/internal/telephony/Connection;->getCall()Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/Connection;->getConnectTime()J -Lcom/android/internal/telephony/Connection;->getCreateTime()J -Lcom/android/internal/telephony/Connection;->getDisconnectCause()I -Lcom/android/internal/telephony/Connection;->getDisconnectTime()J -Lcom/android/internal/telephony/Connection;->getDurationMillis()J -Lcom/android/internal/telephony/Connection;->getState()Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/Connection;->getUserData()Ljava/lang/Object; -Lcom/android/internal/telephony/Connection;->hangup()V -Lcom/android/internal/telephony/Connection;->isAlive()Z -Lcom/android/internal/telephony/Connection;->isIncoming()Z -Lcom/android/internal/telephony/Connection;->LOG_TAG:Ljava/lang/String; -Lcom/android/internal/telephony/Connection;->mAddress:Ljava/lang/String; -Lcom/android/internal/telephony/Connection;->mCnapName:Ljava/lang/String; -Lcom/android/internal/telephony/Connection;->mCnapNamePresentation:I -Lcom/android/internal/telephony/Connection;->mDialString:Ljava/lang/String; -Lcom/android/internal/telephony/Connection;->mDuration:J -Lcom/android/internal/telephony/Connection;->mIsIncoming:Z -Lcom/android/internal/telephony/Connection;->mNumberPresentation:I -Lcom/android/internal/telephony/Connection;->setVideoState(I)V Lcom/android/internal/telephony/DctConstants$Activity;->DATAIN:Lcom/android/internal/telephony/DctConstants$Activity; Lcom/android/internal/telephony/DctConstants$Activity;->DATAINANDOUT:Lcom/android/internal/telephony/DctConstants$Activity; Lcom/android/internal/telephony/DctConstants$Activity;->DATAOUT:Lcom/android/internal/telephony/DctConstants$Activity; @@ -2365,22 +1482,7 @@ Lcom/android/internal/telephony/DctConstants$State;->FAILED:Lcom/android/interna Lcom/android/internal/telephony/DctConstants$State;->IDLE:Lcom/android/internal/telephony/DctConstants$State; Lcom/android/internal/telephony/DctConstants$State;->RETRYING:Lcom/android/internal/telephony/DctConstants$State; Lcom/android/internal/telephony/DctConstants$State;->values()[Lcom/android/internal/telephony/DctConstants$State; -Lcom/android/internal/telephony/DefaultPhoneNotifier;->mRegistry:Lcom/android/internal/telephony/ITelephonyRegistry; -Lcom/android/internal/telephony/DriverCall$State;->ACTIVE:Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall$State;->ALERTING:Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall$State;->DIALING:Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall$State;->HOLDING:Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall$State;->INCOMING:Lcom/android/internal/telephony/DriverCall$State; Lcom/android/internal/telephony/DriverCall$State;->values()[Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall$State;->WAITING:Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall;-><init>()V -Lcom/android/internal/telephony/DriverCall;->index:I -Lcom/android/internal/telephony/DriverCall;->isMT:Z -Lcom/android/internal/telephony/DriverCall;->isVoice:Z -Lcom/android/internal/telephony/DriverCall;->name:Ljava/lang/String; -Lcom/android/internal/telephony/DriverCall;->number:Ljava/lang/String; -Lcom/android/internal/telephony/DriverCall;->numberPresentation:I -Lcom/android/internal/telephony/DriverCall;->state:Lcom/android/internal/telephony/DriverCall$State; Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;-><init>(Lcom/android/internal/telephony/gsm/SmsCbHeader;Landroid/telephony/SmsCbLocation;)V Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;->matchesLocation(Ljava/lang/String;II)Z Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler;->mSmsCbPageMap:Ljava/util/HashMap; @@ -2459,79 +1561,7 @@ Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mLock:Ljava/lang/Obje Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mPhoneBookRecords:Ljava/util/ArrayList; Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->reset()V Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V -Lcom/android/internal/telephony/GsmCdmaCall;->attachFake(Lcom/android/internal/telephony/Connection;Lcom/android/internal/telephony/Call$State;)V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->clearDisconnected()V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->disableDataCallInEmergencyCall(Ljava/lang/String;)V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->fakeHoldForegroundBeforeDial()V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->getPhone()Lcom/android/internal/telephony/GsmCdmaPhone; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->handleEcmTimer(I)V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->isPhoneTypeGsm()Z -Lcom/android/internal/telephony/GsmCdmaCallTracker;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mBackgroundCall:Lcom/android/internal/telephony/GsmCdmaCall; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mForegroundCall:Lcom/android/internal/telephony/GsmCdmaCall; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mPendingMO:Lcom/android/internal/telephony/GsmCdmaConnection; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mPhone:Lcom/android/internal/telephony/GsmCdmaPhone; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mRingingCall:Lcom/android/internal/telephony/GsmCdmaCall; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->mState:Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->obtainCompleteMessage()Landroid/os/Message; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->obtainCompleteMessage(I)Landroid/os/Message; -Lcom/android/internal/telephony/GsmCdmaCallTracker;->setMute(Z)V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->switchWaitingOrHoldingAndActive()V -Lcom/android/internal/telephony/GsmCdmaCallTracker;->updatePhoneState()V Lcom/android/internal/telephony/GsmCdmaConnection$MyHandler;-><init>(Lcom/android/internal/telephony/GsmCdmaConnection;Landroid/os/Looper;)V -Lcom/android/internal/telephony/GsmCdmaConnection;->acquireWakeLock()V -Lcom/android/internal/telephony/GsmCdmaConnection;->createWakeLock(Landroid/content/Context;)V -Lcom/android/internal/telephony/GsmCdmaConnection;->disconnectCauseFromCode(I)I -Lcom/android/internal/telephony/GsmCdmaConnection;->fetchDtmfToneDelay(Lcom/android/internal/telephony/GsmCdmaPhone;)V -Lcom/android/internal/telephony/GsmCdmaConnection;->findNextPCharOrNonPOrNonWCharIndex(Ljava/lang/String;I)I -Lcom/android/internal/telephony/GsmCdmaConnection;->findPOrWCharToAppend(Ljava/lang/String;II)C -Lcom/android/internal/telephony/GsmCdmaConnection;->formatDialString(Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaConnection;->getState()Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/GsmCdmaConnection;->isPause(C)Z -Lcom/android/internal/telephony/GsmCdmaConnection;->isPhoneTypeGsm()Z -Lcom/android/internal/telephony/GsmCdmaConnection;->isWait(C)Z -Lcom/android/internal/telephony/GsmCdmaConnection;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/GsmCdmaConnection;->maskDialString(Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaConnection;->mIndex:I -Lcom/android/internal/telephony/GsmCdmaConnection;->mOwner:Lcom/android/internal/telephony/GsmCdmaCallTracker; -Lcom/android/internal/telephony/GsmCdmaConnection;->onConnectedInOrOut()V -Lcom/android/internal/telephony/GsmCdmaConnection;->updateParent(Lcom/android/internal/telephony/GsmCdmaCall;Lcom/android/internal/telephony/GsmCdmaCall;)V -Lcom/android/internal/telephony/GsmCdmaPhone$Cfu;-><init>(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/GsmCdmaPhone;->exitEmergencyCallbackMode()V -Lcom/android/internal/telephony/GsmCdmaPhone;->getCallTracker()Lcom/android/internal/telephony/CallTracker; -Lcom/android/internal/telephony/GsmCdmaPhone;->getCdmaEriText()Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaPhone;->getEsn()Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaPhone;->getLine1Number()Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaPhone;->getPhoneType()I -Lcom/android/internal/telephony/GsmCdmaPhone;->getServiceState()Landroid/telephony/ServiceState; -Lcom/android/internal/telephony/GsmCdmaPhone;->getState()Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/GsmCdmaPhone;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/GsmCdmaPhone;->handleInCallMmiCommands(Ljava/lang/String;)Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isCfEnable(I)Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isEriFileLoaded()Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isInCall()Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isManualSelProhibitedInGlobalMode()Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isPhoneTypeGsm()Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isValidCommandInterfaceCFAction(I)Z -Lcom/android/internal/telephony/GsmCdmaPhone;->isValidCommandInterfaceCFReason(I)Z -Lcom/android/internal/telephony/GsmCdmaPhone;->logd(Ljava/lang/String;)V -Lcom/android/internal/telephony/GsmCdmaPhone;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/GsmCdmaPhone;->mCT:Lcom/android/internal/telephony/GsmCdmaCallTracker; -Lcom/android/internal/telephony/GsmCdmaPhone;->mEcmExitRespRegistrant:Landroid/os/Registrant; -Lcom/android/internal/telephony/GsmCdmaPhone;->mEriManager:Lcom/android/internal/telephony/cdma/EriManager; -Lcom/android/internal/telephony/GsmCdmaPhone;->mIccSmsInterfaceManager:Lcom/android/internal/telephony/IccSmsInterfaceManager; -Lcom/android/internal/telephony/GsmCdmaPhone;->mIsimUiccRecords:Lcom/android/internal/telephony/uicc/IsimUiccRecords; -Lcom/android/internal/telephony/GsmCdmaPhone;->mPendingMMIs:Ljava/util/ArrayList; -Lcom/android/internal/telephony/GsmCdmaPhone;->mSST:Lcom/android/internal/telephony/ServiceStateTracker; -Lcom/android/internal/telephony/GsmCdmaPhone;->notifyPreciseCallStateChanged()V -Lcom/android/internal/telephony/GsmCdmaPhone;->notifyServiceStateChanged(Landroid/telephony/ServiceState;)V -Lcom/android/internal/telephony/GsmCdmaPhone;->setOnEcbModeExitResponse(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/GsmCdmaPhone;->syncClirSetting()V -Lcom/android/internal/telephony/IccCard;->getState()Lcom/android/internal/telephony/IccCardConstants$State; -Lcom/android/internal/telephony/IccCard;->registerForNetworkLocked(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/IccCard;->supplyNetworkDepersonalization(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/IccCard;->supplyPin(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/IccCard;->supplyPuk(Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)V Lcom/android/internal/telephony/IccCardConstants$State;->ABSENT:Lcom/android/internal/telephony/IccCardConstants$State; Lcom/android/internal/telephony/IccCardConstants$State;->CARD_IO_ERROR:Lcom/android/internal/telephony/IccCardConstants$State; Lcom/android/internal/telephony/IccCardConstants$State;->NETWORK_LOCKED:Lcom/android/internal/telephony/IccCardConstants$State; @@ -2542,47 +1572,7 @@ Lcom/android/internal/telephony/IccCardConstants$State;->PUK_REQUIRED:Lcom/andro Lcom/android/internal/telephony/IccCardConstants$State;->READY:Lcom/android/internal/telephony/IccCardConstants$State; Lcom/android/internal/telephony/IccCardConstants$State;->UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State; Lcom/android/internal/telephony/IccCardConstants$State;->values()[Lcom/android/internal/telephony/IccCardConstants$State; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->checkThread()V -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->DBG:Z -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->logd(Ljava/lang/String;)V -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->mAdnCache:Lcom/android/internal/telephony/uicc/AdnRecordCache; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->mBaseHandler:Landroid/os/Handler; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;->updateEfForIccType(I)I Lcom/android/internal/telephony/IccProvider;-><init>()V -Lcom/android/internal/telephony/IccProvider;->ADDRESS_BOOK_COLUMN_NAMES:[Ljava/lang/String; -Lcom/android/internal/telephony/IccProvider;->DBG:Z -Lcom/android/internal/telephony/IccProvider;->loadRecord(Lcom/android/internal/telephony/uicc/AdnRecord;Landroid/database/MatrixCursor;I)V -Lcom/android/internal/telephony/IccProvider;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->copyMessageToIccEf(Ljava/lang/String;I[B[B)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->disableCdmaBroadcastRange(II)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->disableGsmBroadcastRange(II)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->enableCdmaBroadcastRange(II)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->enableGsmBroadcastRange(II)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->enforceReceiveAndSend(Ljava/lang/String;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->filterDestAddress(Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->getAllMessagesFromIccEf(Ljava/lang/String;)Ljava/util/List; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->getImsSmsFormat()Ljava/lang/String; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->getPremiumSmsPermission(Ljava/lang/String;)I -Lcom/android/internal/telephony/IccSmsInterfaceManager;->injectSmsPdu([BLjava/lang/String;Landroid/app/PendingIntent;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->isImsSmsSupported()Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mAppOps:Landroid/app/AppOpsManager; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/IccSmsInterfaceManager$CellBroadcastRangeManager; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mHandler:Landroid/os/Handler; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mSms:Ljava/util/List; -Lcom/android/internal/telephony/IccSmsInterfaceManager;->mSuccess:Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->sendData(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->sendStoredMultipartText(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->sendStoredText(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->setCdmaBroadcastConfig([Lcom/android/internal/telephony/cdma/CdmaSmsBroadcastConfigInfo;)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->setCellBroadcastConfig([Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;)Z -Lcom/android/internal/telephony/IccSmsInterfaceManager;->setPremiumSmsPermission(Ljava/lang/String;I)V -Lcom/android/internal/telephony/IccSmsInterfaceManager;->updateMessageOnIccEf(Ljava/lang/String;II[B)Z Lcom/android/internal/telephony/IIccPhoneBook$Stub$Proxy;->mRemote:Landroid/os/IBinder; Lcom/android/internal/telephony/IIccPhoneBook$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IIccPhoneBook; Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsInEf(I)Ljava/util/List; @@ -2591,142 +1581,24 @@ Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSize(I)[I Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSizeForSubscriber(II)[I Lcom/android/internal/telephony/IIccPhoneBook;->updateAdnRecordsInEfBySearch(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms; -Lcom/android/internal/telephony/imsphone/ImsExternalCall;-><init>(Lcom/android/internal/telephony/Phone;Lcom/android/internal/telephony/imsphone/ImsExternalConnection;)V Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalCallStateListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalConnectionListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V -Lcom/android/internal/telephony/imsphone/ImsExternalConnection;->rebuildCapabilities()V -Lcom/android/internal/telephony/imsphone/ImsExternalConnection;->setActive()V -Lcom/android/internal/telephony/imsphone/ImsPhone$Cf;-><init>(Ljava/lang/String;ZLandroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->getActionFromCFAction(I)I -Lcom/android/internal/telephony/imsphone/ImsPhone;->getBackgroundCall()Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhone;->getCallForwardingOption(ILandroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->getCallWaiting(Landroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->getConditionFromCFReason(I)I -Lcom/android/internal/telephony/imsphone/ImsPhone;->getForegroundCall()Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhone;->getRingingCall()Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhone;->getServiceState()Landroid/telephony/ServiceState; -Lcom/android/internal/telephony/imsphone/ImsPhone;->getState()Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/imsphone/ImsPhone;->handleEnterEmergencyCallbackMode()V -Lcom/android/internal/telephony/imsphone/ImsPhone;->handleExitEmergencyCallbackMode()V -Lcom/android/internal/telephony/imsphone/ImsPhone;->handleInCallMmiCommands(Ljava/lang/String;)Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->isCfEnable(I)Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->isUtEnabled()Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->isValidCommandInterfaceCFAction(I)Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->isValidCommandInterfaceCFReason(I)Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->isVolteEnabled()Z -Lcom/android/internal/telephony/imsphone/ImsPhone;->mCT:Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; -Lcom/android/internal/telephony/imsphone/ImsPhone;->mPendingMMIs:Ljava/util/ArrayList; -Lcom/android/internal/telephony/imsphone/ImsPhone;->mSS:Landroid/telephony/ServiceState; Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyCallForwardingIndicator()V Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyPreciseCallStateChanged()V -Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyUnknownConnection(Lcom/android/internal/telephony/Connection;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->onMMIDone(Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->sendErrorResponse(Landroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->sendErrorResponse(Landroid/os/Message;Ljava/lang/Throwable;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->setCallForwardingOption(IILjava/lang/String;IILandroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->setCallWaiting(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->setImsRegistered(Z)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->setOnEcbModeExitResponse(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/imsphone/ImsPhone;->setServiceState(I)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->attach(Lcom/android/internal/telephony/Connection;Lcom/android/internal/telephony/Call$State;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->attachFake(Lcom/android/internal/telephony/Connection;Lcom/android/internal/telephony/Call$State;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->getConnections()Ljava/util/List; Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->getImsCall()Lcom/android/ims/ImsCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->hangup()V -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->merge(Lcom/android/internal/telephony/imsphone/ImsPhoneCall;Lcom/android/internal/telephony/Call$State;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->onHangupLocal()V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->addConnection(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->clearDisconnected()V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->dial(Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/internal/telephony/Connection; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->dialPendingMO()V Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->findConnection(Lcom/android/ims/ImsCall;)Lcom/android/internal/telephony/imsphone/ImsPhoneConnection; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->getEcbmInterface()Lcom/android/ims/ImsEcbm; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->getUtInterface()Lcom/android/ims/ImsUtInterface; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->handleEcmTimer(I)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mAllowEmergencyVideoCalls:Z -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mBackgroundCall:Lcom/android/internal/telephony/imsphone/ImsPhoneCall; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mCallExpectedToResume:Lcom/android/ims/ImsCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mConnections:Ljava/util/ArrayList; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mForegroundCall:Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mHandoverCall:Lcom/android/internal/telephony/imsphone/ImsPhoneCall; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsCallListener:Lcom/android/ims/ImsCall$Listener; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsManager:Lcom/android/ims/ImsManager; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mOnHoldToneId:I -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mOnHoldToneStarted:Z -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mPendingMO:Lcom/android/internal/telephony/imsphone/ImsPhoneConnection; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mPendingUssd:Landroid/os/Message; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mPhone:Lcom/android/internal/telephony/imsphone/ImsPhone; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mRingingCall:Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mSwitchingFgAndBgCalls:Z -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mSyncHold:Ljava/lang/Object; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mUssdSession:Lcom/android/ims/ImsCall; Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;I)V Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;IZ)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->removeConnection(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;)V Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->setVideoCallProvider(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Lcom/android/ims/ImsCall;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->switchAfterConferenceSuccess()V -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->updatePhoneState()V Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$MyHandler;-><init>(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Landroid/os/Looper;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->acquireWakeLock()V -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->createWakeLock(Landroid/content/Context;)V -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->getCall()Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->getOwner()Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->isMultiparty()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mDisconnected:Z Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mImsCall:Lcom/android/ims/ImsCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mOwner:Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mParent:Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->onDisconnect()Z Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->update(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;)Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->getCLIRMode()I -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->getDialingNumber()Ljava/lang/String; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->getErrorMessage(Landroid/os/AsyncResult;)Ljava/lang/CharSequence; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->getScString()Ljava/lang/CharSequence; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isActivate()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isDeactivate()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isEmptyOrNull(Ljava/lang/CharSequence;)Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isErasure()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isRegister()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isSupportedOverImsPhone()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->isTemporaryModeCLIR()Z -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->mPhone:Lcom/android/internal/telephony/imsphone/ImsPhone; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->newFromDialString(Ljava/lang/String;Lcom/android/internal/telephony/imsphone/ImsPhone;)Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->processCode()V -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;->serviceClassToCFString(I)Ljava/lang/CharSequence; Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;-><init>(Lcom/android/internal/telephony/InboundSmsHandler;Lcom/android/internal/telephony/InboundSmsTracker;)V -Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;->mDeleteWhere:Ljava/lang/String; -Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;->mDeleteWhereArgs:[Ljava/lang/String; -Lcom/android/internal/telephony/InboundSmsHandler;->acknowledgeLastIncomingSms(ZILandroid/os/Message;)V -Lcom/android/internal/telephony/InboundSmsHandler;->deleteFromRawTable(Ljava/lang/String;[Ljava/lang/String;I)V -Lcom/android/internal/telephony/InboundSmsHandler;->dispatchIntent(Landroid/content/Intent;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;)V -Lcom/android/internal/telephony/InboundSmsHandler;->dispatchNormalMessage(Lcom/android/internal/telephony/SmsMessageBase;)I -Lcom/android/internal/telephony/InboundSmsHandler;->getPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/InboundSmsHandler;->handleInjectSms(Landroid/os/AsyncResult;)V -Lcom/android/internal/telephony/InboundSmsHandler;->handleNewSms(Landroid/os/AsyncResult;)V -Lcom/android/internal/telephony/InboundSmsHandler;->handleSmsWhitelisting(Landroid/content/ComponentName;)Landroid/os/Bundle; -Lcom/android/internal/telephony/InboundSmsHandler;->isSkipNotifyFlagSet(I)Z -Lcom/android/internal/telephony/InboundSmsHandler;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/InboundSmsHandler;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/InboundSmsHandler;->mCellBroadcastHandler:Lcom/android/internal/telephony/CellBroadcastHandler; -Lcom/android/internal/telephony/InboundSmsHandler;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/InboundSmsHandler;->mDeliveringState:Lcom/android/internal/telephony/InboundSmsHandler$DeliveringState; -Lcom/android/internal/telephony/InboundSmsHandler;->mDeviceIdleController:Landroid/os/IDeviceIdleController; -Lcom/android/internal/telephony/InboundSmsHandler;->mIdleState:Lcom/android/internal/telephony/InboundSmsHandler$IdleState; -Lcom/android/internal/telephony/InboundSmsHandler;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/InboundSmsHandler;->mResolver:Landroid/content/ContentResolver; -Lcom/android/internal/telephony/InboundSmsHandler;->mUserManager:Landroid/os/UserManager; -Lcom/android/internal/telephony/InboundSmsHandler;->mWaitingState:Lcom/android/internal/telephony/InboundSmsHandler$WaitingState; -Lcom/android/internal/telephony/InboundSmsHandler;->mWakeLock:Landroid/os/PowerManager$WakeLock; -Lcom/android/internal/telephony/InboundSmsHandler;->mWapPush:Lcom/android/internal/telephony/WapPushOverSms; -Lcom/android/internal/telephony/InboundSmsHandler;->processMessagePart(Lcom/android/internal/telephony/InboundSmsTracker;)Z -Lcom/android/internal/telephony/InboundSmsHandler;->showNewMessageNotification()V -Lcom/android/internal/telephony/InboundSmsHandler;->writeInboxMessage(Landroid/content/Intent;)Landroid/net/Uri; -Lcom/android/internal/telephony/InboundSmsTracker;->getFormat()Ljava/lang/String; -Lcom/android/internal/telephony/InboundSmsTracker;->getIndexOffset()I -Lcom/android/internal/telephony/IntRangeManager;->mRanges:Ljava/util/ArrayList; Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener; Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceId(Ljava/lang/String;)Ljava/lang/String; @@ -2748,91 +1620,6 @@ Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDeviceId:I Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry; Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IWapPushManager; -Lcom/android/internal/telephony/MccTable$MccEntry;->mIso:Ljava/lang/String; -Lcom/android/internal/telephony/MccTable;->countryCodeForMcc(I)Ljava/lang/String; -Lcom/android/internal/telephony/MccTable;->defaultLanguageForMcc(I)Ljava/lang/String; -Lcom/android/internal/telephony/MccTable;->defaultTimeZoneForMcc(I)Ljava/lang/String; -Lcom/android/internal/telephony/MccTable;->entryForMcc(I)Lcom/android/internal/telephony/MccTable$MccEntry; -Lcom/android/internal/telephony/MccTable;->getLocaleForLanguageCountry(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale; -Lcom/android/internal/telephony/MccTable;->smallestDigitsMccForMnc(I)I -Lcom/android/internal/telephony/MmiCode$State;->CANCELLED:Lcom/android/internal/telephony/MmiCode$State; -Lcom/android/internal/telephony/MmiCode$State;->COMPLETE:Lcom/android/internal/telephony/MmiCode$State; -Lcom/android/internal/telephony/MmiCode$State;->FAILED:Lcom/android/internal/telephony/MmiCode$State; -Lcom/android/internal/telephony/MmiCode$State;->PENDING:Lcom/android/internal/telephony/MmiCode$State; -Lcom/android/internal/telephony/MmiCode;->getPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/Phone;->dispose()V -Lcom/android/internal/telephony/Phone;->exitEmergencyCallbackMode()V -Lcom/android/internal/telephony/Phone;->getActiveApnTypes()[Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getCallTracker()Lcom/android/internal/telephony/CallTracker; -Lcom/android/internal/telephony/Phone;->getCellLocation()Landroid/telephony/CellLocation; -Lcom/android/internal/telephony/Phone;->getContext()Landroid/content/Context; -Lcom/android/internal/telephony/Phone;->getDataConnectionState()Lcom/android/internal/telephony/PhoneConstants$DataState; -Lcom/android/internal/telephony/Phone;->getIccCard()Lcom/android/internal/telephony/IccCard; -Lcom/android/internal/telephony/Phone;->getIccFileHandler()Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/Phone;->getIccSerialNumber()Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getIccSmsInterfaceManager()Lcom/android/internal/telephony/IccSmsInterfaceManager; -Lcom/android/internal/telephony/Phone;->getImsPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/Phone;->getIsimRecords()Lcom/android/internal/telephony/uicc/IsimRecords; -Lcom/android/internal/telephony/Phone;->getMsisdn()Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getNai()Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getPhoneId()I -Lcom/android/internal/telephony/Phone;->getPhoneName()Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getPhoneType()I -Lcom/android/internal/telephony/Phone;->getServiceStateTracker()Lcom/android/internal/telephony/ServiceStateTracker; -Lcom/android/internal/telephony/Phone;->getSmscAddress(Landroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->getState()Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/Phone;->getSubId()I -Lcom/android/internal/telephony/Phone;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/Phone;->getUiccCard()Lcom/android/internal/telephony/uicc/UiccCard; -Lcom/android/internal/telephony/Phone;->getVideoState(Lcom/android/internal/telephony/Call;)I -Lcom/android/internal/telephony/Phone;->invokeOemRilRequestRaw([BLandroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->invokeOemRilRequestStrings([Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->isCspPlmnEnabled()Z -Lcom/android/internal/telephony/Phone;->isUtEnabled()Z -Lcom/android/internal/telephony/Phone;->isVideoEnabled()Z -Lcom/android/internal/telephony/Phone;->isVolteEnabled()Z -Lcom/android/internal/telephony/Phone;->isWifiCallingEnabled()Z -Lcom/android/internal/telephony/Phone;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/Phone;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/Phone;->mIccRecords:Ljava/util/concurrent/atomic/AtomicReference; -Lcom/android/internal/telephony/Phone;->mImsPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/Phone;->mMmiRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/Phone;->mNotifier:Lcom/android/internal/telephony/PhoneNotifier; -Lcom/android/internal/telephony/Phone;->mPhoneId:I -Lcom/android/internal/telephony/Phone;->mSmsStorageMonitor:Lcom/android/internal/telephony/SmsStorageMonitor; -Lcom/android/internal/telephony/Phone;->mUiccApplication:Ljava/util/concurrent/atomic/AtomicReference; -Lcom/android/internal/telephony/Phone;->mUiccController:Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/Phone;->needsOtaServiceProvisioning()Z -Lcom/android/internal/telephony/Phone;->notifyOtaspChanged(I)V -Lcom/android/internal/telephony/Phone;->registerForDisconnect(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForEcmTimerReset(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForIncomingRing(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForMmiComplete(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForMmiInitiate(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForNewRingingConnection(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForPreciseCallStateChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForRingbackTone(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForServiceStateChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForSimRecordsLoaded(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->registerForUnknownConnection(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->selectNetworkManually(Lcom/android/internal/telephony/OperatorInfo;ZLandroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->setNetworkSelectionModeAutomatic(Landroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->setOnEcbModeExitResponse(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->setOnPostDialCharacter(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/Phone;->setPreferredNetworkType(ILandroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->setSmscAddress(Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/Phone;->unregisterForDisconnect(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForEcmTimerReset(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForIncomingRing(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForMmiComplete(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForMmiInitiate(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForNewRingingConnection(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForPreciseCallStateChanged(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForRingbackTone(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForServiceStateChanged(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForSimRecordsLoaded(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unregisterForUnknownConnection(Landroid/os/Handler;)V -Lcom/android/internal/telephony/Phone;->unsetOnEcbModeExitResponse(Landroid/os/Handler;)V Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState; Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTING:Lcom/android/internal/telephony/PhoneConstants$DataState; Lcom/android/internal/telephony/PhoneConstants$DataState;->DISCONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState; @@ -2846,152 +1633,7 @@ Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_ALLOWED:I Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_PAYPHONE:I Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_RESTRICTED:I Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_UNKNOWN:I -Lcom/android/internal/telephony/PhoneFactory;->calculatePreferredNetworkType(Landroid/content/Context;I)I -Lcom/android/internal/telephony/PhoneFactory;->getDefaultPhone()Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneFactory;->getDefaultSubscription()I -Lcom/android/internal/telephony/PhoneFactory;->getPhone(I)Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneFactory;->getPhones()[Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneFactory;->makeDefaultPhone(Landroid/content/Context;)V -Lcom/android/internal/telephony/PhoneFactory;->sCommandsInterface:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/PhoneFactory;->sContext:Landroid/content/Context; -Lcom/android/internal/telephony/PhoneFactory;->sMadeDefaults:Z -Lcom/android/internal/telephony/PhoneFactory;->sPhoneNotifier:Lcom/android/internal/telephony/PhoneNotifier; -Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState;->NONE:Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState; -Lcom/android/internal/telephony/PhoneInternalInterface;->PREFERRED_NT_MODE:I -Lcom/android/internal/telephony/PhoneNotifier;->notifyMessageWaitingChanged(Lcom/android/internal/telephony/Phone;)V -Lcom/android/internal/telephony/PhoneNotifier;->notifySignalStrength(Lcom/android/internal/telephony/Phone;)V -Lcom/android/internal/telephony/PhoneStateIntentReceiver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->getSignalStrengthDbm()I -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->mSignalStrength:Landroid/telephony/SignalStrength; -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->mWants:I -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->notifyServiceState(I)V -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->notifySignalStrength(I)V -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->registerIntent()V -Lcom/android/internal/telephony/PhoneStateIntentReceiver;->unregisterIntent()V -Lcom/android/internal/telephony/PhoneSubInfoController;->getDefaultSubscription()I -Lcom/android/internal/telephony/PhoneSubInfoController;->getPhone(I)Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneSubInfoController;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/PhoneSubInfoController;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/PhoneSubInfoController;->mPhone:[Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneSwitcher;->activate(I)V -Lcom/android/internal/telephony/PhoneSwitcher;->deactivate(I)V -Lcom/android/internal/telephony/PhoneSwitcher;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/PhoneSwitcher;->mMaxActivePhones:I -Lcom/android/internal/telephony/PhoneSwitcher;->mNumPhones:I -Lcom/android/internal/telephony/PhoneSwitcher;->mPhones:[Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/ProxyController;->completeRadioCapabilityTransaction()V -Lcom/android/internal/telephony/ProxyController;->getInstance()Lcom/android/internal/telephony/ProxyController; -Lcom/android/internal/telephony/ProxyController;->logd(Ljava/lang/String;)V -Lcom/android/internal/telephony/ProxyController;->mOldRadioAccessFamily:[I -Lcom/android/internal/telephony/ProxyController;->mRadioCapabilitySessionId:I -Lcom/android/internal/telephony/ProxyController;->mSetRadioAccessFamilyStatus:[I -Lcom/android/internal/telephony/ProxyController;->mUniqueIdGenerator:Ljava/util/concurrent/atomic/AtomicInteger; -Lcom/android/internal/telephony/ProxyController;->sendRadioCapabilityRequest(IIIILjava/lang/String;II)V -Lcom/android/internal/telephony/ProxyController;->sProxyController:Lcom/android/internal/telephony/ProxyController; -Lcom/android/internal/telephony/RadioCapability;->getRadioAccessFamily()I -Lcom/android/internal/telephony/RetryManager;->configure(Ljava/lang/String;)Z -Lcom/android/internal/telephony/RetryManager;->getRetryTimer()I -Lcom/android/internal/telephony/RetryManager;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/RetryManager;->mApnType:Ljava/lang/String; -Lcom/android/internal/telephony/RetryManager;->mFailFastInterApnDelay:J -Lcom/android/internal/telephony/RetryManager;->mInterApnDelay:J -Lcom/android/internal/telephony/RetryManager;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/RIL;-><init>(Landroid/content/Context;II)V -Lcom/android/internal/telephony/RIL;-><init>(Landroid/content/Context;IILjava/lang/Integer;)V -Lcom/android/internal/telephony/RIL;->acquireWakeLock(Lcom/android/internal/telephony/RILRequest;I)V -Lcom/android/internal/telephony/RIL;->clearRequestList(IZ)V -Lcom/android/internal/telephony/RIL;->clearWakeLock(I)Z -Lcom/android/internal/telephony/RIL;->decrementWakeLock(Lcom/android/internal/telephony/RILRequest;)V -Lcom/android/internal/telephony/RIL;->findAndRemoveRequestFromList(I)Lcom/android/internal/telephony/RILRequest; -Lcom/android/internal/telephony/RIL;->getResponseForTimedOutRILRequest(Lcom/android/internal/telephony/RILRequest;)Ljava/lang/Object; -Lcom/android/internal/telephony/RIL;->hangupForegroundResumeBackground(Landroid/os/Message;)V -Lcom/android/internal/telephony/RIL;->hangupWaitingOrBackground(Landroid/os/Message;)V -Lcom/android/internal/telephony/RIL;->invokeOemRilRequestRaw([BLandroid/os/Message;)V -Lcom/android/internal/telephony/RIL;->makeStaticRadioCapability()Lcom/android/internal/telephony/RadioCapability; -Lcom/android/internal/telephony/RIL;->mRequestList:Landroid/util/SparseArray; -Lcom/android/internal/telephony/RIL;->mTestingEmergencyCall:Ljava/util/concurrent/atomic/AtomicBoolean; -Lcom/android/internal/telephony/RIL;->mWakeLock:Landroid/os/PowerManager$WakeLock; -Lcom/android/internal/telephony/RIL;->notifyRegistrantsCdmaInfoRec(Lcom/android/internal/telephony/cdma/CdmaInformationRecords;)V -Lcom/android/internal/telephony/RIL;->notifyRegistrantsRilConnectionChanged(I)V -Lcom/android/internal/telephony/RIL;->requestToString(I)Ljava/lang/String; -Lcom/android/internal/telephony/RIL;->responseToString(I)Ljava/lang/String; -Lcom/android/internal/telephony/RIL;->retToString(ILjava/lang/Object;)Ljava/lang/String; -Lcom/android/internal/telephony/RIL;->riljLog(Ljava/lang/String;)V -Lcom/android/internal/telephony/RIL;->setRadioPower(ZLandroid/os/Message;)V -Lcom/android/internal/telephony/RIL;->unsljLog(I)V -Lcom/android/internal/telephony/RIL;->unsljLogMore(ILjava/lang/String;)V -Lcom/android/internal/telephony/RIL;->unsljLogRet(ILjava/lang/Object;)V -Lcom/android/internal/telephony/RIL;->unsljLogvRet(ILjava/lang/Object;)V Lcom/android/internal/telephony/RILConstants;->PREFERRED_NETWORK_MODE:I -Lcom/android/internal/telephony/RILRequest;->mRequest:I -Lcom/android/internal/telephony/RILRequest;->mResult:Landroid/os/Message; -Lcom/android/internal/telephony/RILRequest;->mSerial:I -Lcom/android/internal/telephony/RILRequest;->obtain(ILandroid/os/Message;)Lcom/android/internal/telephony/RILRequest; -Lcom/android/internal/telephony/RILRequest;->onError(ILjava/lang/Object;)V -Lcom/android/internal/telephony/RILRequest;->release()V -Lcom/android/internal/telephony/RILRequest;->serialString()Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->fixUnknownMcc(Ljava/lang/String;I)Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->getCurrentDataConnectionState()I -Lcom/android/internal/telephony/ServiceStateTracker;->getDesiredPowerState()Z -Lcom/android/internal/telephony/ServiceStateTracker;->getPhoneId()I -Lcom/android/internal/telephony/ServiceStateTracker;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->isConcurrentVoiceAndDataAllowed()Z -Lcom/android/internal/telephony/ServiceStateTracker;->isGprsConsistent(II)Z -Lcom/android/internal/telephony/ServiceStateTracker;->isImsRegistered()Z -Lcom/android/internal/telephony/ServiceStateTracker;->isInHomeSidNid(II)Z -Lcom/android/internal/telephony/ServiceStateTracker;->isInvalidOperatorNumeric(Ljava/lang/String;)Z -Lcom/android/internal/telephony/ServiceStateTracker;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/ServiceStateTracker;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/ServiceStateTracker;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/ServiceStateTracker;->mCr:Landroid/content/ContentResolver; -Lcom/android/internal/telephony/ServiceStateTracker;->mCurDataSpn:Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->mCurPlmn:Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->mCurShowPlmn:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mCurShowSpn:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mCurSpn:Ljava/lang/String; -Lcom/android/internal/telephony/ServiceStateTracker;->mDataRoamingOffRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->mDataRoamingOnRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->mDefaultRoamingIndicator:I -Lcom/android/internal/telephony/ServiceStateTracker;->mDesiredPowerState:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mDeviceShuttingDown:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mEmergencyOnly:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mIccRecords:Lcom/android/internal/telephony/uicc/IccRecords; -Lcom/android/internal/telephony/ServiceStateTracker;->mIntentReceiver:Landroid/content/BroadcastReceiver; -Lcom/android/internal/telephony/ServiceStateTracker;->mIsSubscriptionFromRuim:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mMaxDataCalls:I -Lcom/android/internal/telephony/ServiceStateTracker;->mNetworkAttachedRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->mNewMaxDataCalls:I -Lcom/android/internal/telephony/ServiceStateTracker;->mNewReasonDataDenied:I -Lcom/android/internal/telephony/ServiceStateTracker;->mNewSS:Landroid/telephony/ServiceState; -Lcom/android/internal/telephony/ServiceStateTracker;->mOnSubscriptionsChangedListener:Lcom/android/internal/telephony/ServiceStateTracker$SstSubscriptionsChangedListener; -Lcom/android/internal/telephony/ServiceStateTracker;->mPhone:Lcom/android/internal/telephony/GsmCdmaPhone; -Lcom/android/internal/telephony/ServiceStateTracker;->mPreferredNetworkType:I -Lcom/android/internal/telephony/ServiceStateTracker;->mReasonDataDenied:I -Lcom/android/internal/telephony/ServiceStateTracker;->mReportedGprsNoReg:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mRoamingIndicator:I -Lcom/android/internal/telephony/ServiceStateTracker;->mSignalStrength:Landroid/telephony/SignalStrength; -Lcom/android/internal/telephony/ServiceStateTracker;->mSpnUpdatePending:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mSS:Landroid/telephony/ServiceState; -Lcom/android/internal/telephony/ServiceStateTracker;->mStartedGprsRegCheck:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mSubId:I -Lcom/android/internal/telephony/ServiceStateTracker;->mSubscriptionController:Lcom/android/internal/telephony/SubscriptionController; -Lcom/android/internal/telephony/ServiceStateTracker;->mSubscriptionManager:Landroid/telephony/SubscriptionManager; -Lcom/android/internal/telephony/ServiceStateTracker;->mUiccApplcation:Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/ServiceStateTracker;->mUiccController:Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/ServiceStateTracker;->mVoiceRoamingOffRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->mVoiceRoamingOnRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->notifySignalStrength()Z -Lcom/android/internal/telephony/ServiceStateTracker;->pollState()V -Lcom/android/internal/telephony/ServiceStateTracker;->reRegisterNetwork(Landroid/os/Message;)V -Lcom/android/internal/telephony/ServiceStateTracker;->resetServiceStateInIwlanMode()V -Lcom/android/internal/telephony/ServiceStateTracker;->setOperatorIdd(Ljava/lang/String;)V -Lcom/android/internal/telephony/ServiceStateTracker;->setRoamingType(Landroid/telephony/ServiceState;)V -Lcom/android/internal/telephony/ServiceStateTracker;->setSignalStrengthDefaultValues()V -Lcom/android/internal/telephony/ServiceStateTracker;->updateOtaspState()V -Lcom/android/internal/telephony/ServiceStateTracker;->updatePhoneObject()V -Lcom/android/internal/telephony/ServiceStateTracker;->updateRoamingState()V -Lcom/android/internal/telephony/ServiceStateTracker;->updateSpnDisplay()V -Lcom/android/internal/telephony/ServiceStateTracker;->useDataRegStateForDataOnlyDevices()V Lcom/android/internal/telephony/sip/SipPhone$SipCall;->hold()V Lcom/android/internal/telephony/sip/SipPhone$SipCall;->switchWith(Lcom/android/internal/telephony/sip/SipPhone$SipCall;)V Lcom/android/internal/telephony/sip/SipPhone$SipCall;->unhold()V @@ -3015,99 +1657,14 @@ Lcom/android/internal/telephony/SmsApplication;->getSmsApplicationData(Ljava/lan Lcom/android/internal/telephony/SmsApplication;->isDefaultSmsApplication(Landroid/content/Context;Ljava/lang/String;)Z Lcom/android/internal/telephony/SmsApplication;->setDefaultApplication(Ljava/lang/String;Landroid/content/Context;)V Lcom/android/internal/telephony/SmsApplication;->shouldWriteMessageForPackage(Ljava/lang/String;Landroid/content/Context;)Z -Lcom/android/internal/telephony/SmsBroadcastUndelivered;-><init>(Landroid/content/Context;Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler;)V -Lcom/android/internal/telephony/SMSDispatcher$ConfirmDialogListener;->mNegativeButton:Landroid/widget/Button; -Lcom/android/internal/telephony/SMSDispatcher$ConfirmDialogListener;->mPositiveButton:Landroid/widget/Button; -Lcom/android/internal/telephony/SMSDispatcher$ConfirmDialogListener;->mRememberUndoInstruction:Landroid/widget/TextView; Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Ljava/util/ArrayList;[Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V -Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;->sendSmsByCarrierApp(Ljava/lang/String;Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSenderCallback;)V Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;)V Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsSender;)V -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->isMultipart()Z -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mAppInfo:Landroid/content/pm/PackageInfo; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mData:Ljava/util/HashMap; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mDeliveryIntent:Landroid/app/PendingIntent; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mDestAddress:Ljava/lang/String; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mMessageRef:I -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mMessageUri:Landroid/net/Uri; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mPersistMessage:Z -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mSentIntent:Landroid/app/PendingIntent; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->mTimestamp:J -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->onFailed(Landroid/content/Context;II)V -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->onSent(Landroid/content/Context;)V -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;->updateSentMessageStatus(Landroid/content/Context;I)V Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V -Lcom/android/internal/telephony/SMSDispatcher;->calculateLength(Ljava/lang/CharSequence;Z)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails; -Lcom/android/internal/telephony/SMSDispatcher;->checkCallerIsPhoneOrCarrierApp()V -Lcom/android/internal/telephony/SMSDispatcher;->deliveryPendingList:Ljava/util/ArrayList; -Lcom/android/internal/telephony/SMSDispatcher;->dispose()V -Lcom/android/internal/telephony/SMSDispatcher;->getCarrierAppPackageName()Ljava/lang/String; -Lcom/android/internal/telephony/SMSDispatcher;->getMultipartMessageText(Ljava/util/ArrayList;)Ljava/lang/String; -Lcom/android/internal/telephony/SMSDispatcher;->getNextConcatenatedRef()I -Lcom/android/internal/telephony/SMSDispatcher;->getSubId()I -Lcom/android/internal/telephony/SMSDispatcher;->handleConfirmShortCode(ZLcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V -Lcom/android/internal/telephony/SMSDispatcher;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/SMSDispatcher;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/SMSDispatcher;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/SMSDispatcher;->mResolver:Landroid/content/ContentResolver; -Lcom/android/internal/telephony/SMSDispatcher;->mTelephonyManager:Landroid/telephony/TelephonyManager; -Lcom/android/internal/telephony/SMSDispatcher;->processSendSmsResponse(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;II)V -Lcom/android/internal/telephony/SMSDispatcher;->sendMultipartSms(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V -Lcom/android/internal/telephony/SMSDispatcher;->sendSms(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V -Lcom/android/internal/telephony/SMSDispatcher;->sendSubmitPdu(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V Lcom/android/internal/telephony/SmsMessageBase;-><init>()V -Lcom/android/internal/telephony/SmsResponse;-><init>(ILjava/lang/String;I)V -Lcom/android/internal/telephony/SmsResponse;->mAckPdu:Ljava/lang/String; -Lcom/android/internal/telephony/SmsResponse;->mErrorCode:I -Lcom/android/internal/telephony/SmsResponse;->mMessageRef:I -Lcom/android/internal/telephony/SmsStorageMonitor;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/SmsUsageMonitor;-><init>(Landroid/content/Context;)V -Lcom/android/internal/telephony/SmsUsageMonitor;->check(Ljava/lang/String;I)Z -Lcom/android/internal/telephony/SubscriptionController;->broadcastDefaultDataSubIdChanged(I)V -Lcom/android/internal/telephony/SubscriptionController;->colorArr:[I -Lcom/android/internal/telephony/SubscriptionController;->enforceModifyPhoneState(Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionController;->getActiveSubInfoCount(Ljava/lang/String;)I -Lcom/android/internal/telephony/SubscriptionController;->getActiveSubscriptionInfo(ILjava/lang/String;)Landroid/telephony/SubscriptionInfo; -Lcom/android/internal/telephony/SubscriptionController;->getActiveSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List; -Lcom/android/internal/telephony/SubscriptionController;->getDefaultDataSubId()I -Lcom/android/internal/telephony/SubscriptionController;->getDefaultSmsSubId()I -Lcom/android/internal/telephony/SubscriptionController;->getDefaultSubId()I -Lcom/android/internal/telephony/SubscriptionController;->getDefaultVoiceSubId()I -Lcom/android/internal/telephony/SubscriptionController;->getInstance()Lcom/android/internal/telephony/SubscriptionController; -Lcom/android/internal/telephony/SubscriptionController;->getPhoneId(I)I -Lcom/android/internal/telephony/SubscriptionController;->getSubId(I)[I -Lcom/android/internal/telephony/SubscriptionController;->getSubIdUsingPhoneId(I)I -Lcom/android/internal/telephony/SubscriptionController;->getSubInfo(Ljava/lang/String;Ljava/lang/Object;)Ljava/util/List; -Lcom/android/internal/telephony/SubscriptionController;->getSubInfoRecord(Landroid/database/Cursor;)Landroid/telephony/SubscriptionInfo; -Lcom/android/internal/telephony/SubscriptionController;->isActiveSubId(I)Z -Lcom/android/internal/telephony/SubscriptionController;->isSubInfoReady()Z -Lcom/android/internal/telephony/SubscriptionController;->logd(Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionController;->logdl(Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionController;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionController;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/SubscriptionController;->mDefaultPhoneId:I -Lcom/android/internal/telephony/SubscriptionController;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/SubscriptionController;->notifySubscriptionInfoChanged()V -Lcom/android/internal/telephony/SubscriptionController;->setDefaultDataSubId(I)V -Lcom/android/internal/telephony/SubscriptionController;->setDefaultFallbackSubId(II)V -Lcom/android/internal/telephony/SubscriptionController;->setDefaultSmsSubId(I)V -Lcom/android/internal/telephony/SubscriptionController;->setDefaultVoiceSubId(I)V -Lcom/android/internal/telephony/SubscriptionController;->setPlmnSpn(IZLjava/lang/String;ZLjava/lang/String;)Z -Lcom/android/internal/telephony/SubscriptionController;->updateAllDataConnectionTrackers()V -Lcom/android/internal/telephony/SubscriptionController;->validateSubId(I)V -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->broadcastSimStateChanged(ILjava/lang/String;Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->isAllIccIdQueryDone()Z -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->logd(Ljava/lang/String;)V -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->mCurrentlyActiveUserId:I -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->mIccId:[Ljava/lang/String; -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->mPackageManager:Landroid/content/pm/IPackageManager; -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->mPhone:[Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/SubscriptionInfoUpdater;->PROJECT_SIM_NUM:I -Lcom/android/internal/telephony/TelephonyCapabilities;->supportsAdn(I)Z Lcom/android/internal/telephony/TelephonyProperties;->PROPERTY_ICC_OPERATOR_NUMERIC:Ljava/lang/String; Lcom/android/internal/telephony/test/InterpreterEx;-><init>(Ljava/lang/String;)V Lcom/android/internal/telephony/test/SimulatedCommands;->acceptCall(Landroid/os/Message;)V @@ -3124,143 +1681,11 @@ Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseActiveAccept Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseHeldOrUDUB()Z Lcom/android/internal/telephony/test/SimulatedGsmCallState;->separateCall(I)Z Lcom/android/internal/telephony/test/SimulatedGsmCallState;->switchActiveAndHeldOrWaiting()Z -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>(IILjava/lang/String;Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>(II[B)V -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>(Ljava/lang/String;Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecord;-><init>([B)V -Lcom/android/internal/telephony/uicc/AdnRecord;->buildAdnString(I)[B -Lcom/android/internal/telephony/uicc/AdnRecord;->CREATOR:Landroid/os/Parcelable$Creator; -Lcom/android/internal/telephony/uicc/AdnRecord;->getEmails()[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecord;->getNumber()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecord;->isEmpty()Z -Lcom/android/internal/telephony/uicc/AdnRecord;->mAlphaTag:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecord;->mEfid:I -Lcom/android/internal/telephony/uicc/AdnRecord;->mEmails:[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecord;->mExtRecord:I -Lcom/android/internal/telephony/uicc/AdnRecord;->mNumber:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecord;->mRecordNumber:I -Lcom/android/internal/telephony/uicc/AdnRecord;->setEmails([Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecordCache;->extensionEfForEf(I)I -Lcom/android/internal/telephony/uicc/AdnRecordCache;->getRecordsIfLoaded(I)Ljava/util/ArrayList; -Lcom/android/internal/telephony/uicc/AdnRecordCache;->mAdnLikeWaiters:Landroid/util/SparseArray; -Lcom/android/internal/telephony/uicc/AdnRecordCache;->mFh:Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/AdnRecordCache;->mUserWriteResponse:Landroid/util/SparseArray; -Lcom/android/internal/telephony/uicc/AdnRecordCache;->mUsimPhoneBookManager:Lcom/android/internal/telephony/gsm/UsimPhoneBookManager; -Lcom/android/internal/telephony/uicc/AdnRecordCache;->reset()V -Lcom/android/internal/telephony/uicc/AdnRecordCache;->sendErrorResponse(Landroid/os/Message;Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/AdnRecordCache;->updateAdnByIndex(ILcom/android/internal/telephony/uicc/AdnRecord;ILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/AdnRecordLoader;-><init>(Lcom/android/internal/telephony/uicc/IccFileHandler;)V -Lcom/android/internal/telephony/uicc/AdnRecordLoader;->getEFPath(I)Ljava/lang/String; -Lcom/android/internal/telephony/uicc/AdnRecordLoader;->loadFromEF(IIILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/AdnRecordLoader;->mFh:Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/AdnRecordLoader;->updateEF(Lcom/android/internal/telephony/uicc/AdnRecord;IIILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_DETECTED:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_PIN:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_PUK:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_READY:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_SUBSCRIPTION_PERSO:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->APPSTATE_UNKNOWN:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_CSIM:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_ISIM:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_RUIM:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_SIM:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_UNKNOWN:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->APPTYPE_USIM:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_SIM_NETWORK:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_SIM_NETWORK_SUBSET:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_SIM_SERVICE_PROVIDER:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->PERSOSUBSTATE_UNKNOWN:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;-><init>()V -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;->AppTypeFromRILInt(I)Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;->app_type:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardStatus$CardState;->CARDSTATE_ABSENT:Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/IccCardStatus$CardState;->CARDSTATE_ERROR:Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/IccCardStatus$CardState;->CARDSTATE_PRESENT:Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/IccCardStatus$CardState;->isCardPresent()Z -Lcom/android/internal/telephony/uicc/IccCardStatus$PinState;->PINSTATE_DISABLED:Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/IccCardStatus$PinState;->PINSTATE_ENABLED_BLOCKED:Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/IccCardStatus$PinState;->PINSTATE_ENABLED_PERM_BLOCKED:Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/IccCardStatus;->mApplications:[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus; -Lcom/android/internal/telephony/uicc/IccCardStatus;->mCardState:Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/IccCardStatus;->mCdmaSubscriptionAppIndex:I -Lcom/android/internal/telephony/uicc/IccCardStatus;->mGsmUmtsSubscriptionAppIndex:I -Lcom/android/internal/telephony/uicc/IccCardStatus;->mImsSubscriptionAppIndex:I -Lcom/android/internal/telephony/uicc/IccCardStatus;->mUniversalPinState:Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/IccFileHandler$LoadLinearFixedContext;-><init>(IILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler$LoadLinearFixedContext;->mRecordSize:I -Lcom/android/internal/telephony/uicc/IccFileHandler$LoadLinearFixedContext;->results:Ljava/util/ArrayList; -Lcom/android/internal/telephony/uicc/IccFileHandler;->getEFLinearRecordSize(ILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->getEFLinearRecordSize(ILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->getEFPath(I)Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccFileHandler;->loadEFLinearFixed(IILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->loadEFLinearFixed(ILjava/lang/String;ILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->loadEFLinearFixedAll(ILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->loadEFLinearFixedAll(ILjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->loadEFTransparent(ILandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->mAid:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccFileHandler;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/uicc/IccFileHandler;->mParentApp:Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/IccFileHandler;->updateEFLinearFixed(II[BLjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->updateEFLinearFixed(ILjava/lang/String;I[BLjava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccFileHandler;->updateEFTransparent(I[BLandroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccIoResult;-><init>(IILjava/lang/String;)V -Lcom/android/internal/telephony/uicc/IccIoResult;-><init>(II[B)V -Lcom/android/internal/telephony/uicc/IccIoResult;->payload:[B -Lcom/android/internal/telephony/uicc/IccIoResult;->success()Z -Lcom/android/internal/telephony/uicc/IccIoResult;->sw1:I -Lcom/android/internal/telephony/uicc/IccIoResult;->sw2:I -Lcom/android/internal/telephony/uicc/IccRecords;->auth_rsp:Lcom/android/internal/telephony/uicc/IccIoResult; -Lcom/android/internal/telephony/uicc/IccRecords;->getGid1()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getIccId()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getIccSimChallengeResponse(ILjava/lang/String;)Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getIMSI()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getMsisdnNumber()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getOperatorNumeric()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getRecordsLoaded()Z -Lcom/android/internal/telephony/uicc/IccRecords;->getServiceProviderName()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->getUsimServiceTable()Lcom/android/internal/telephony/uicc/UsimServiceTable; -Lcom/android/internal/telephony/uicc/IccRecords;->handleRefresh(Lcom/android/internal/telephony/uicc/IccRefreshResponse;)V -Lcom/android/internal/telephony/uicc/IccRecords;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/IccRecords;->mAdnCache:Lcom/android/internal/telephony/uicc/AdnRecordCache; -Lcom/android/internal/telephony/uicc/IccRecords;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/uicc/IccRecords;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/uicc/IccRecords;->mDestroyed:Ljava/util/concurrent/atomic/AtomicBoolean; -Lcom/android/internal/telephony/uicc/IccRecords;->mFh:Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/IccRecords;->mGid1:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->mIccId:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->mImsi:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->mIsVoiceMailFixed:Z -Lcom/android/internal/telephony/uicc/IccRecords;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/uicc/IccRecords;->mMncLength:I -Lcom/android/internal/telephony/uicc/IccRecords;->mParentApp:Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/IccRecords;->mRecordsEventsRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/uicc/IccRecords;->mRecordsToLoad:I -Lcom/android/internal/telephony/uicc/IccRecords;->mSpn:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->mTelephonyManager:Landroid/telephony/TelephonyManager; -Lcom/android/internal/telephony/uicc/IccRecords;->mVoiceMailNum:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRecords;->registerForNetworkSelectionModeAutomatic(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/IccRecords;->registerForNewSms(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/IccRecords;->registerForRecordsEvents(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/IccRecords;->registerForRecordsLoaded(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/IccRecords;->setMsisdnNumber(Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)V -Lcom/android/internal/telephony/uicc/IccRecords;->setVoiceCallForwardingFlag(IZLjava/lang/String;)V -Lcom/android/internal/telephony/uicc/IccRecords;->unregisterForNetworkSelectionModeAutomatic(Landroid/os/Handler;)V -Lcom/android/internal/telephony/uicc/IccRecords;->unregisterForNewSms(Landroid/os/Handler;)V -Lcom/android/internal/telephony/uicc/IccRecords;->unregisterForRecordsEvents(Landroid/os/Handler;)V -Lcom/android/internal/telephony/uicc/IccRecords;->unregisterForRecordsLoaded(Landroid/os/Handler;)V Lcom/android/internal/telephony/uicc/IccRefreshResponse;-><init>()V -Lcom/android/internal/telephony/uicc/IccRefreshResponse;->aid:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccRefreshResponse;->efId:I -Lcom/android/internal/telephony/uicc/IccRefreshResponse;->refreshResult:I -Lcom/android/internal/telephony/uicc/IccServiceTable;->getTag()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IccServiceTable;->mServiceTable:[B Lcom/android/internal/telephony/uicc/IccUtils;->adnStringFieldToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/uicc/IccUtils;->bcdToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String; @@ -3272,175 +1697,7 @@ Lcom/android/internal/telephony/uicc/IccUtils;->hexStringToBytes(Ljava/lang/Stri Lcom/android/internal/telephony/uicc/IccUtils;->networkNameToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/uicc/IccUtils;->parseToBnW([BI)Landroid/graphics/Bitmap; Lcom/android/internal/telephony/uicc/IccUtils;->parseToRGB([BIZ)Landroid/graphics/Bitmap; -Lcom/android/internal/telephony/uicc/IsimRecords;->getIsimDomain()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimRecords;->getIsimImpi()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimRecords;->getIsimImpu()[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->auth_rsp:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->fetchIsimRecords()V -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->isimTlvToString([B)Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mIsimDomain:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mIsimImpi:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mIsimImpu:[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mIsimIst:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mIsimPcscf:[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/IsimUiccRecords;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/uicc/RuimRecords;->adjstMinDigits(I)I -Lcom/android/internal/telephony/uicc/RuimRecords;->fetchRuimRecords()V -Lcom/android/internal/telephony/uicc/RuimRecords;->getAssetLanguages(Landroid/content/Context;)[Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->getCsimSpnDisplayCondition()Z -Lcom/android/internal/telephony/uicc/RuimRecords;->getMdn()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->getMdnNumber()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->getRUIMOperatorNumeric()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/RuimRecords;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/RuimRecords;->mEFli:[B -Lcom/android/internal/telephony/uicc/RuimRecords;->mEFpl:[B -Lcom/android/internal/telephony/uicc/RuimRecords;->mMin:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->mNai:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/RuimRecords;->onGetCSimEprlDone(Landroid/os/AsyncResult;)V -Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->INIT:Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->READ_SPN_3GPP:Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->READ_SPN_CPHS:Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->READ_SPN_SHORT_CPHS:Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->values()[Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -Lcom/android/internal/telephony/uicc/SIMRecords;->fetchSimRecords()V -Lcom/android/internal/telephony/uicc/SIMRecords;->getExtFromEf(I)I -Lcom/android/internal/telephony/uicc/SIMRecords;->getMsisdnNumber()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/SIMRecords;->getOperatorNumeric()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/SIMRecords;->getSpnFsm(ZLandroid/os/AsyncResult;)V -Lcom/android/internal/telephony/uicc/SIMRecords;->getVoiceMailNumber()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/SIMRecords;->isCphsMailboxEnabled()Z -Lcom/android/internal/telephony/uicc/SIMRecords;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/SIMRecords;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/SIMRecords;->logv(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfCff:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfCfis:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfCPHS_MWI:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfLi:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfMWIS:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mEfPl:[B -Lcom/android/internal/telephony/uicc/SIMRecords;->mSpnDisplayCondition:I -Lcom/android/internal/telephony/uicc/SIMRecords;->mUsimServiceTable:Lcom/android/internal/telephony/uicc/UsimServiceTable; -Lcom/android/internal/telephony/uicc/SIMRecords;->mVmConfig:Lcom/android/internal/telephony/uicc/VoiceMailConstants; -Lcom/android/internal/telephony/uicc/SIMRecords;->setVoiceCallForwardingFlag(IZLjava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccCard;->getApplication(I)Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/UiccCard;->getApplicationByType(I)Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/UiccCard;->getApplicationIndex(I)Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/UiccCard;->getCardState()Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/UiccCard;->getCarrierPackageNamesForIntent(Landroid/content/pm/PackageManager;Landroid/content/Intent;)Ljava/util/List; -Lcom/android/internal/telephony/uicc/UiccCard;->getIccId()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/UiccCard;->getNumApplications()I -Lcom/android/internal/telephony/uicc/UiccCard;->getOperatorBrandOverride()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/UiccCard;->isApplicationOnIcc(Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;)Z -Lcom/android/internal/telephony/uicc/UiccCard;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccCard;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccCard;->mCardState:Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/UiccCard;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/uicc/UiccCard;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/uicc/UiccCard;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/uicc/UiccCard;->mPhoneId:I -Lcom/android/internal/telephony/uicc/UiccCardApplication;->dispose()V -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getAid()Ljava/lang/String; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getAuthContext()I -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getIccFileHandler()Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getIccRecords()Lcom/android/internal/telephony/uicc/IccRecords; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getPersoSubState()Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getPhoneId()I -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getPin1State()Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getState()Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->getType()Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccCardApplication;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mAid:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mAppState:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mAppType:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mCi:Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mDestroyed:Z -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mPersoSubState:Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->mPin1State:Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/UiccCardApplication;->registerForReady(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/UiccCardApplication;->unregisterForReady(Landroid/os/Handler;)V -Lcom/android/internal/telephony/uicc/UiccCardApplication;->update(Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;Landroid/content/Context;Lcom/android/internal/telephony/CommandsInterface;)V -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$TLV;->length:Ljava/lang/Integer; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$TLV;->value:Ljava/lang/String; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules;->mLoadedCallback:Landroid/os/Message; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules;->mState:Ljava/util/concurrent/atomic/AtomicInteger; -Lcom/android/internal/telephony/uicc/UiccController;->getIccFileHandler(II)Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/UiccController;->getIccRecords(II)Lcom/android/internal/telephony/uicc/IccRecords; -Lcom/android/internal/telephony/uicc/UiccController;->getInstance()Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/uicc/UiccController;->getUiccCard(I)Lcom/android/internal/telephony/uicc/UiccCard; -Lcom/android/internal/telephony/uicc/UiccController;->getUiccCardApplication(II)Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/UiccController;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/uicc/UiccController;->mCis:[Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/uicc/UiccController;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/uicc/UiccController;->mInstance:Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/uicc/UiccController;->mLock:Ljava/lang/Object; -Lcom/android/internal/telephony/uicc/UiccController;->registerForIccChanged(Landroid/os/Handler;ILjava/lang/Object;)V -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->ALLOWED_CSG_LISTS_AND_INDICATIONS:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->CFI_STATUS:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->CSG_DISPLAY_CONTROL:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->FDN:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->MBDN:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->MSISDN:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->MWI_STATUS:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->OPERATOR_CSG_LISTS_AND_INDICATIONS:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->OPERATOR_PLMN_LIST:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->PLMN_NETWORK_NAME:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->SDN:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->SM_OVER_IP:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->SM_SERVICE_PARAMS:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->SM_STORAGE:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;->SPN:Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable;->isAvailable(Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;)Z -Lcom/android/internal/telephony/uicc/VoiceMailConstants;-><init>()V -Lcom/android/internal/telephony/UiccPhoneBookController;-><init>([Lcom/android/internal/telephony/Phone;)V -Lcom/android/internal/telephony/UiccPhoneBookController;->getDefaultSubscription()I -Lcom/android/internal/telephony/UiccPhoneBookController;->getIccPhoneBookInterfaceManager(I)Lcom/android/internal/telephony/IccPhoneBookInterfaceManager; -Lcom/android/internal/telephony/UiccPhoneBookController;->mPhone:[Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/UiccSmsController;->copyMessageToIccEfForSubscriber(ILjava/lang/String;I[B[B)Z -Lcom/android/internal/telephony/UiccSmsController;->disableCellBroadcastForSubscriber(III)Z -Lcom/android/internal/telephony/UiccSmsController;->disableCellBroadcastRangeForSubscriber(IIII)Z -Lcom/android/internal/telephony/UiccSmsController;->enableCellBroadcastForSubscriber(III)Z -Lcom/android/internal/telephony/UiccSmsController;->enableCellBroadcastRangeForSubscriber(IIII)Z -Lcom/android/internal/telephony/UiccSmsController;->getAllMessagesFromIccEfForSubscriber(ILjava/lang/String;)Ljava/util/List; -Lcom/android/internal/telephony/UiccSmsController;->getIccSmsInterfaceManager(I)Lcom/android/internal/telephony/IccSmsInterfaceManager; -Lcom/android/internal/telephony/UiccSmsController;->getImsSmsFormatForSubscriber(I)Ljava/lang/String; -Lcom/android/internal/telephony/UiccSmsController;->getPreferredSmsSubscription()I -Lcom/android/internal/telephony/UiccSmsController;->isImsSmsSupportedForSubscriber(I)Z -Lcom/android/internal/telephony/UiccSmsController;->sendDataForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V -Lcom/android/internal/telephony/UiccSmsController;->sendErrorInPendingIntent(Landroid/app/PendingIntent;I)V -Lcom/android/internal/telephony/UiccSmsController;->sendErrorInPendingIntents(Ljava/util/List;I)V -Lcom/android/internal/telephony/UiccSmsController;->updateMessageOnIccEfForSubscriber(ILjava/lang/String;II[B)Z -Lcom/android/internal/telephony/UUSInfo;->getDcs()I -Lcom/android/internal/telephony/UUSInfo;->getType()I -Lcom/android/internal/telephony/UUSInfo;->getUserData()[B -Lcom/android/internal/telephony/WakeLockStateMachine;->log(Ljava/lang/String;)V -Lcom/android/internal/telephony/WakeLockStateMachine;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/WakeLockStateMachine;->mIdleState:Lcom/android/internal/telephony/WakeLockStateMachine$IdleState; -Lcom/android/internal/telephony/WakeLockStateMachine;->mPhone:Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/WapPushOverSms;->dispatchWapPdu([BLandroid/content/BroadcastReceiver;Lcom/android/internal/telephony/InboundSmsHandler;)I -Lcom/android/internal/telephony/WapPushOverSms;->getDeliveryOrReadReportThreadId(Landroid/content/Context;Lcom/google/android/mms/pdu/GenericPdu;)J -Lcom/android/internal/telephony/WapPushOverSms;->isDuplicateNotification(Landroid/content/Context;Lcom/google/android/mms/pdu/NotificationInd;)Z -Lcom/android/internal/telephony/WapPushOverSms;->isWapPushForMms([BLcom/android/internal/telephony/InboundSmsHandler;)Z -Lcom/android/internal/telephony/WapPushOverSms;->mContext:Landroid/content/Context; -Lcom/android/internal/telephony/WapPushOverSms;->mDeviceIdleController:Landroid/os/IDeviceIdleController; -Lcom/android/internal/telephony/WapPushOverSms;->mWapPushManager:Lcom/android/internal/telephony/IWapPushManager; -Lcom/android/internal/telephony/WspTypeDecoder;-><init>([B)V -Lcom/android/internal/telephony/WspTypeDecoder;->decodeContentType(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeIntegerValue(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeShortInteger(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeTextString(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeUintvarInteger(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeValueLength(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->decodeXWapApplicationId(I)Z -Lcom/android/internal/telephony/WspTypeDecoder;->getContentParameters()Ljava/util/HashMap; -Lcom/android/internal/telephony/WspTypeDecoder;->getDecodedDataLength()I -Lcom/android/internal/telephony/WspTypeDecoder;->getValue32()J -Lcom/android/internal/telephony/WspTypeDecoder;->getValueString()Ljava/lang/String; -Lcom/android/internal/telephony/WspTypeDecoder;->mWspData:[B -Lcom/android/internal/telephony/WspTypeDecoder;->seekXWapApplicationId(II)Z Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Lcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object; Lcom/android/internal/util/ArrayUtils;->appendInt([II)[I diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 3871d7a2418a..e2322f3e2eeb 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -104,6 +104,7 @@ import java.security.spec.PKCS8EncodedKeySpec; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.Executor; @@ -4488,7 +4489,8 @@ public class DevicePolicyManager { * </ul> * The call will fail if called with the package name of an unsupported VPN app. * <p> Enabling lockdown via {@code lockdownEnabled} argument carries the risk that any failure - * of the VPN provider could break networking for all apps. + * of the VPN provider could break networking for all apps. This method clears any lockdown + * whitelist set by {@link #setAlwaysOnVpnPackage(ComponentName, String, boolean, Set)}. * * @param vpnPackage The package name for an installed VPN app on the device, or {@code null} to * remove an existing always-on VPN configuration. @@ -4498,11 +4500,11 @@ public class DevicePolicyManager { * @throws NameNotFoundException if {@code vpnPackage} is not installed. * @throws UnsupportedOperationException if {@code vpnPackage} exists but does not support being * set as always-on, or if always-on VPN is not available. - * @see #setAlwaysOnVpnPackage(ComponentName, String, boolean, List) + * @see #setAlwaysOnVpnPackage(ComponentName, String, boolean, Set) */ public void setAlwaysOnVpnPackage(@NonNull ComponentName admin, @Nullable String vpnPackage, boolean lockdownEnabled) throws NameNotFoundException { - setAlwaysOnVpnPackage(admin, vpnPackage, lockdownEnabled, Collections.emptyList()); + setAlwaysOnVpnPackage(admin, vpnPackage, lockdownEnabled, Collections.emptySet()); } /** @@ -4512,6 +4514,11 @@ public class DevicePolicyManager { * System apps can always bypass VPN. * <p> Note that the system doesn't update the whitelist when packages are installed or * uninstalled, the admin app must call this method to keep the list up to date. + * <p> When {@code lockdownEnabled} is false {@code lockdownWhitelist} is ignored . When + * {@code lockdownEnabled} is {@code true} and {@code lockdownWhitelist} is {@code null} or + * empty, only system apps can bypass VPN. + * <p> Setting always-on VPN package to {@code null} or using + * {@link #setAlwaysOnVpnPackage(ComponentName, String, boolean)} clears lockdown whitelist. * * @param vpnPackage package name for an installed VPN app on the device, or {@code null} * to remove an existing always-on VPN configuration @@ -4528,13 +4535,13 @@ public class DevicePolicyManager { * available. */ public void setAlwaysOnVpnPackage(@NonNull ComponentName admin, @Nullable String vpnPackage, - boolean lockdownEnabled, @Nullable List<String> lockdownWhitelist) + boolean lockdownEnabled, @Nullable Set<String> lockdownWhitelist) throws NameNotFoundException { throwIfParentInstance("setAlwaysOnVpnPackage"); if (mService != null) { try { - mService.setAlwaysOnVpnPackage( - admin, vpnPackage, lockdownEnabled, lockdownWhitelist); + mService.setAlwaysOnVpnPackage(admin, vpnPackage, lockdownEnabled, + lockdownWhitelist == null ? null : new ArrayList<>(lockdownWhitelist)); } catch (ServiceSpecificException e) { switch (e.errorCode) { case ERROR_VPN_PACKAGE_NOT_FOUND: @@ -4572,7 +4579,7 @@ public class DevicePolicyManager { } /** - * Called by device or profile owner to query the list of packages that are allowed to access + * Called by device or profile owner to query the set of packages that are allowed to access * the network directly when always-on VPN is in lockdown mode but not connected. Returns * {@code null} when always-on VPN is not active or not in lockdown mode. * @@ -4580,13 +4587,15 @@ public class DevicePolicyManager { * * @throws SecurityException if {@code admin} is not a device or a profile owner. * - * @see #setAlwaysOnVpnPackage(ComponentName, String, boolean, List) + * @see #setAlwaysOnVpnPackage(ComponentName, String, boolean, Set) */ - public @Nullable List<String> getAlwaysOnVpnLockdownWhitelist(@NonNull ComponentName admin) { + public @Nullable Set<String> getAlwaysOnVpnLockdownWhitelist(@NonNull ComponentName admin) { throwIfParentInstance("getAlwaysOnVpnLockdownWhitelist"); if (mService != null) { try { - return mService.getAlwaysOnVpnLockdownWhitelist(admin); + final List<String> whitelist = + mService.getAlwaysOnVpnLockdownWhitelist(admin); + return whitelist == null ? null : new HashSet<>(whitelist); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/bluetooth/BluetoothHearingAid.java b/core/java/android/bluetooth/BluetoothHearingAid.java index c5a0bbd2f802..58ff2e14fd50 100644 --- a/core/java/android/bluetooth/BluetoothHearingAid.java +++ b/core/java/android/bluetooth/BluetoothHearingAid.java @@ -22,7 +22,6 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; -import android.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -91,7 +90,6 @@ public final class BluetoothHearingAid implements BluetoothProfile { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED"; @@ -323,7 +321,8 @@ public final class BluetoothHearingAid implements BluetoothProfile { /** * {@inheritDoc} */ - @Override public @NonNull List<BluetoothDevice> getDevicesMatchingConnectionStates( + @Override + public @NonNull List<BluetoothDevice> getDevicesMatchingConnectionStates( @NonNull int[] states) { if (VDBG) log("getDevicesMatchingStates()"); try { @@ -345,7 +344,8 @@ public final class BluetoothHearingAid implements BluetoothProfile { * {@inheritDoc} */ @Override - public int getConnectionState(@NonNull BluetoothDevice device) { + public @BluetoothProfile.BtProfileState int getConnectionState( + @NonNull BluetoothDevice device) { if (VDBG) log("getState(" + device + ")"); try { mServiceLock.readLock().lock(); @@ -385,7 +385,6 @@ public final class BluetoothHearingAid implements BluetoothProfile { * @return false on immediate error, true otherwise * @hide */ - @UnsupportedAppUsage public boolean setActiveDevice(@Nullable BluetoothDevice device) { if (DBG) log("setActiveDevice(" + device + ")"); try { @@ -417,7 +416,6 @@ public final class BluetoothHearingAid implements BluetoothProfile { * @hide */ @RequiresPermission(Manifest.permission.BLUETOOTH) - @UnsupportedAppUsage public List<BluetoothDevice> getActiveDevices() { if (VDBG) log("getActiveDevices()"); try { diff --git a/core/java/android/bluetooth/BluetoothProfile.java b/core/java/android/bluetooth/BluetoothProfile.java index b8670dbeadad..dabe0fdac39a 100644 --- a/core/java/android/bluetooth/BluetoothProfile.java +++ b/core/java/android/bluetooth/BluetoothProfile.java @@ -18,11 +18,14 @@ package android.bluetooth; import android.Manifest; +import android.annotation.IntDef; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.os.Build; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.List; /** @@ -60,6 +63,16 @@ public interface BluetoothProfile { /** The profile is in disconnecting state */ int STATE_DISCONNECTING = 3; + /** @hide */ + @IntDef({ + STATE_DISCONNECTED, + STATE_CONNECTING, + STATE_CONNECTED, + STATE_DISCONNECTING, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface BtProfileState {} + /** * Headset and Handsfree profile */ @@ -263,7 +276,7 @@ public interface BluetoothProfile { * #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING} */ @RequiresPermission(Manifest.permission.BLUETOOTH) - public int getConnectionState(BluetoothDevice device); + @BtProfileState int getConnectionState(BluetoothDevice device); /** * An interface for notifying BluetoothProfile IPC clients when they have diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index d08379fab047..e5802c23eb6f 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -2816,23 +2816,6 @@ public class ConnectivityManager { } /** - * @removed - * @deprecated This API would be removed when all of caller has been updated. - * */ - @Deprecated - public abstract static class TetheringEntitlementValueListener { - /** - * Called to notify entitlement result. - * - * @param resultCode a int value of entitlement result. It may be one of - * {@link #TETHER_ERROR_NO_ERROR}, - * {@link #TETHER_ERROR_PROVISION_FAILED}, or - * {@link #TETHER_ERROR_ENTITLEMENT_UNKONWN}. - */ - public void onEntitlementResult(int resultCode) {} - } - - /** * Get the last value of the entitlement check on this downstream. If the cached value is * {@link #TETHER_ERROR_NO_ERROR} or showEntitlementUi argument is false, it just return the * cached value. Otherwise, a UI-based entitlement check would be performed. It is not @@ -2878,31 +2861,6 @@ public class ConnectivityManager { } /** - * @removed - * @deprecated This API would be removed when all of caller has been updated. - * */ - @Deprecated - public void getLatestTetheringEntitlementValue(int type, boolean showEntitlementUi, - @NonNull final TetheringEntitlementValueListener listener, @Nullable Handler handler) { - Preconditions.checkNotNull(listener, "TetheringEntitlementValueListener cannot be null."); - ResultReceiver wrappedListener = new ResultReceiver(handler) { - @Override - protected void onReceiveResult(int resultCode, Bundle resultData) { - listener.onEntitlementResult(resultCode); - } - }; - - try { - String pkgName = mContext.getOpPackageName(); - Log.i(TAG, "getLatestTetheringEntitlementValue:" + pkgName); - mService.getLatestTetheringEntitlementResult(type, wrappedListener, - showEntitlementUi, pkgName); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - - /** * Report network connectivity status. This is currently used only * to alter status bar UI. * <p>This method requires the caller to hold the permission diff --git a/core/java/android/net/DnsPacket.java b/core/java/android/net/DnsPacket.java index 0ac02b1b7b37..83e57e0a047b 100644 --- a/core/java/android/net/DnsPacket.java +++ b/core/java/android/net/DnsPacket.java @@ -71,7 +71,7 @@ public abstract class DnsPacket { } /** - * It's used both for DNS questions and DNS resource records. + * Superclass for DNS questions and DNS resource records. * * DNS questions (No TTL/RDATA) * DNS resource records (With TTL/RDATA) @@ -96,12 +96,13 @@ public abstract class DnsPacket { /** * Create a new DnsRecord from a positioned ByteBuffer. * - * @param ByteBuffer input of record, must be in network byte order - * (which is the default). * Reads the passed ByteBuffer from its current position and decodes a DNS record. * When this constructor returns, the reading position of the ByteBuffer has been * advanced to the end of the DNS header record. * This is meant to chain with other methods reading a DNS response in sequence. + * + * @param ByteBuffer input of record, must be in network byte order + * (which is the default). */ DnsRecord(int recordType, @NonNull ByteBuffer buf) throws BufferUnderflowException, ParseException { @@ -205,16 +206,6 @@ public abstract class DnsPacket { protected final DnsHeader mHeader; protected final List<DnsRecord>[] mRecords; - public static class ParseException extends Exception { - public ParseException(String msg) { - super(msg); - } - - public ParseException(String msg, Throwable cause) { - super(msg, cause); - } - } - protected DnsPacket(@NonNull byte[] data) throws ParseException { if (null == data) throw new ParseException("Parse header failed, null input data"); final ByteBuffer buffer; diff --git a/core/java/android/net/DnsResolver.java b/core/java/android/net/DnsResolver.java index d3bc3e66fbee..93b8cf801d45 100644 --- a/core/java/android/net/DnsResolver.java +++ b/core/java/android/net/DnsResolver.java @@ -22,11 +22,11 @@ import static android.net.NetworkUtils.resNetworkSend; import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_ERROR; import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT; +import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; -import android.os.Handler; -import android.os.MessageQueue; +import android.os.Looper; import android.system.ErrnoException; import android.util.Log; @@ -37,8 +37,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; - +import java.util.concurrent.Executor; /** * Dns resolver class for asynchronous dns querying @@ -81,66 +80,137 @@ public final class DnsResolver { public static final int FLAG_NO_CACHE_STORE = 1 << 1; public static final int FLAG_NO_CACHE_LOOKUP = 1 << 2; - private static final int DNS_RAW_RESPONSE = 1; - private static final int NETID_UNSET = 0; private static final DnsResolver sInstance = new DnsResolver(); /** - * listener for receiving raw answers + * Get instance for DnsResolver + */ + public static @NonNull DnsResolver getInstance() { + return sInstance; + } + + private DnsResolver() {} + + /** + * Answer parser for parsing raw answers + * + * @param <T> The type of the parsed answer */ - public interface RawAnswerListener { + public interface AnswerParser<T> { /** - * {@code byte[]} is {@code null} if query timed out + * Creates a <T> answer by parsing the given raw answer. + * + * @param rawAnswer the raw answer to be parsed + * @return a parsed <T> answer + * @throws ParseException if parsing failed */ - void onAnswer(@Nullable byte[] answer); + @NonNull T parse(@NonNull byte[] rawAnswer) throws ParseException; } /** - * listener for receiving parsed answers + * Base class for answer callbacks + * + * @param <T> The type of the parsed answer */ - public interface InetAddressAnswerListener { + public abstract static class AnswerCallback<T> { + /** @hide */ + public final AnswerParser<T> parser; + + public AnswerCallback(@NonNull AnswerParser<T> parser) { + this.parser = parser; + }; + /** - * Will be called exactly once with all the answers to the query. - * size of addresses will be zero if no available answer could be parsed. + * Success response to + * {@link android.net.DnsResolver#query query()}. + * + * Invoked when the answer to a query was successfully parsed. + * + * @param answer parsed answer to the query. + * + * {@see android.net.DnsResolver#query query()} */ - void onAnswer(@NonNull List<InetAddress> addresses); + public abstract void onAnswer(@NonNull T answer); + + /** + * Error response to + * {@link android.net.DnsResolver#query query()}. + * + * Invoked when there is no valid answer to + * {@link android.net.DnsResolver#query query()} + * + * @param exception a {@link ParseException} object with additional + * detail regarding the failure + */ + public abstract void onParseException(@NonNull ParseException exception); + + /** + * Error response to + * {@link android.net.DnsResolver#query query()}. + * + * Invoked if an error happens when + * issuing the DNS query or receiving the result. + * {@link android.net.DnsResolver#query query()} + * + * @param exception an {@link ErrnoException} object with additional detail + * regarding the failure + */ + public abstract void onQueryException(@NonNull ErrnoException exception); } /** - * Get instance for DnsResolver + * Callback for receiving raw answers */ - public static DnsResolver getInstance() { - return sInstance; + public abstract static class RawAnswerCallback extends AnswerCallback<byte[]> { + public RawAnswerCallback() { + super(rawAnswer -> rawAnswer); + } } - private DnsResolver() {} + /** + * Callback for receiving parsed {@link InetAddress} answers + * + * Note that if the answer does not contain any IP addresses, + * onAnswer will be called with an empty list. + */ + public abstract static class InetAddressAnswerCallback + extends AnswerCallback<List<InetAddress>> { + public InetAddressAnswerCallback() { + super(rawAnswer -> new DnsAddressAnswer(rawAnswer).getAddresses()); + } + } /** - * Pass in a blob and corresponding setting, - * get a blob back asynchronously with the entire raw answer. + * Send a raw DNS query. + * The answer will be provided asynchronously through the provided {@link AnswerCallback}. * * @param network {@link Network} specifying which network for querying. * {@code null} for query on default network. * @param query blob message * @param flags flags as a combination of the FLAGS_* constants - * @param handler {@link Handler} to specify the thread - * upon which the {@link RawAnswerListener} will be invoked. - * @param listener a {@link RawAnswerListener} which will be called to notify the caller + * @param executor The {@link Executor} that the callback should be executed on. + * @param callback an {@link AnswerCallback} which will be called to notify the caller * of the result of dns query. */ - public void query(@Nullable Network network, @NonNull byte[] query, @QueryFlag int flags, - @NonNull Handler handler, @NonNull RawAnswerListener listener) throws ErrnoException { - final FileDescriptor queryfd = resNetworkSend((network != null + public <T> void query(@Nullable Network network, @NonNull byte[] query, @QueryFlag int flags, + @NonNull @CallbackExecutor Executor executor, @NonNull AnswerCallback<T> callback) { + final FileDescriptor queryfd; + try { + queryfd = resNetworkSend((network != null ? network.netId : NETID_UNSET), query, query.length, flags); - registerFDListener(handler.getLooper().getQueue(), queryfd, - answerbuf -> listener.onAnswer(answerbuf)); + } catch (ErrnoException e) { + callback.onQueryException(e); + return; + } + + registerFDListener(executor, queryfd, callback); } /** - * Pass in a domain name and corresponding setting, - * get a blob back asynchronously with the entire raw answer. + * Send a DNS query with the specified name, class and query type. + * The answer will be provided asynchronously through the provided {@link AnswerCallback}. * * @param network {@link Network} specifying which network for querying. * {@code null} for query on default network. @@ -148,74 +218,53 @@ public final class DnsResolver { * @param nsClass dns class as one of the CLASS_* constants * @param nsType dns resource record (RR) type as one of the TYPE_* constants * @param flags flags as a combination of the FLAGS_* constants - * @param handler {@link Handler} to specify the thread - * upon which the {@link RawAnswerListener} will be invoked. - * @param listener a {@link RawAnswerListener} which will be called to notify the caller + * @param executor The {@link Executor} that the callback should be executed on. + * @param callback an {@link AnswerCallback} which will be called to notify the caller * of the result of dns query. */ - public void query(@Nullable Network network, @NonNull String domain, @QueryClass int nsClass, - @QueryType int nsType, @QueryFlag int flags, - @NonNull Handler handler, @NonNull RawAnswerListener listener) throws ErrnoException { - final FileDescriptor queryfd = resNetworkQuery((network != null - ? network.netId : NETID_UNSET), domain, nsClass, nsType, flags); - registerFDListener(handler.getLooper().getQueue(), queryfd, - answerbuf -> listener.onAnswer(answerbuf)); - } - - /** - * Pass in a domain name and corresponding setting, - * get back a set of InetAddresses asynchronously. - * - * @param network {@link Network} specifying which network for querying. - * {@code null} for query on default network. - * @param domain domain name for querying - * @param flags flags as a combination of the FLAGS_* constants - * @param handler {@link Handler} to specify the thread - * upon which the {@link InetAddressAnswerListener} will be invoked. - * @param listener an {@link InetAddressAnswerListener} which will be called to - * notify the caller of the result of dns query. - * - */ - public void query(@Nullable Network network, @NonNull String domain, @QueryFlag int flags, - @NonNull Handler handler, @NonNull InetAddressAnswerListener listener) - throws ErrnoException { - final FileDescriptor v4fd = resNetworkQuery((network != null - ? network.netId : NETID_UNSET), domain, CLASS_IN, TYPE_A, flags); - final FileDescriptor v6fd = resNetworkQuery((network != null - ? network.netId : NETID_UNSET), domain, CLASS_IN, TYPE_AAAA, flags); - - final InetAddressAnswerAccumulator accmulator = - new InetAddressAnswerAccumulator(2, listener); - final Consumer<byte[]> consumer = answerbuf -> - accmulator.accumulate(parseAnswers(answerbuf)); - - registerFDListener(handler.getLooper().getQueue(), v4fd, consumer); - registerFDListener(handler.getLooper().getQueue(), v6fd, consumer); + public <T> void query(@Nullable Network network, @NonNull String domain, + @QueryClass int nsClass, @QueryType int nsType, @QueryFlag int flags, + @NonNull @CallbackExecutor Executor executor, @NonNull AnswerCallback<T> callback) { + final FileDescriptor queryfd; + try { + queryfd = resNetworkQuery((network != null + ? network.netId : NETID_UNSET), domain, nsClass, nsType, flags); + } catch (ErrnoException e) { + callback.onQueryException(e); + return; + } + registerFDListener(executor, queryfd, callback); } - private void registerFDListener(@NonNull MessageQueue queue, - @NonNull FileDescriptor queryfd, @NonNull Consumer<byte[]> answerConsumer) { - queue.addOnFileDescriptorEventListener( + private <T> void registerFDListener(@NonNull Executor executor, + @NonNull FileDescriptor queryfd, @NonNull AnswerCallback<T> answerCallback) { + Looper.getMainLooper().getQueue().addOnFileDescriptorEventListener( queryfd, FD_EVENTS, (fd, events) -> { - byte[] answerbuf = null; - try { - // TODO: Implement result function in Java side instead of using JNI - // Because JNI method close fd prior than unregistering fd on - // event listener. - answerbuf = resNetworkResult(fd); - } catch (ErrnoException e) { - Log.e(TAG, "resNetworkResult:" + e.toString()); - } - answerConsumer.accept(answerbuf); + executor.execute(() -> { + byte[] answerbuf = null; + try { + answerbuf = resNetworkResult(fd); + } catch (ErrnoException e) { + Log.e(TAG, "resNetworkResult:" + e.toString()); + answerCallback.onQueryException(e); + return; + } + try { + answerCallback.onAnswer( + answerCallback.parser.parse(answerbuf)); + } catch (ParseException e) { + answerCallback.onParseException(e); + } + }); // Unregister this fd listener return 0; }); } - private class DnsAddressAnswer extends DnsPacket { + private static class DnsAddressAnswer extends DnsPacket { private static final String TAG = "DnsResolver.DnsAddressAnswer"; private static final boolean DBG = false; @@ -226,12 +275,6 @@ public final class DnsResolver { if ((mHeader.flags & (1 << 15)) == 0) { throw new ParseException("Not an answer packet"); } - if (mHeader.rcode != 0) { - throw new ParseException("Response error, rcode:" + mHeader.rcode); - } - if (mHeader.getRecordCount(ANSECTION) == 0) { - throw new ParseException("No available answer"); - } if (mHeader.getRecordCount(QDSECTION) == 0) { throw new ParseException("No question found"); } @@ -241,6 +284,8 @@ public final class DnsResolver { public @NonNull List<InetAddress> getAddresses() { final List<InetAddress> results = new ArrayList<InetAddress>(); + if (mHeader.getRecordCount(ANSECTION) == 0) return results; + for (final DnsRecord ansSec : mRecords[ANSECTION]) { // Only support A and AAAA, also ignore answers if query type != answer type. int nsType = ansSec.nsType; @@ -259,34 +304,4 @@ public final class DnsResolver { } } - private @Nullable List<InetAddress> parseAnswers(@Nullable byte[] data) { - try { - return (data == null) ? null : new DnsAddressAnswer(data).getAddresses(); - } catch (DnsPacket.ParseException e) { - Log.e(TAG, "Parse answer fail " + e.getMessage()); - return null; - } - } - - private class InetAddressAnswerAccumulator { - private final List<InetAddress> mAllAnswers; - private final InetAddressAnswerListener mAnswerListener; - private final int mTargetAnswerCount; - private int mReceivedAnswerCount = 0; - - InetAddressAnswerAccumulator(int size, @NonNull InetAddressAnswerListener listener) { - mTargetAnswerCount = size; - mAllAnswers = new ArrayList<>(); - mAnswerListener = listener; - } - - public void accumulate(@Nullable List<InetAddress> answer) { - if (null != answer) { - mAllAnswers.addAll(answer); - } - if (++mReceivedAnswerCount == mTargetAnswerCount) { - mAnswerListener.onAnswer(mAllAnswers); - } - } - } } diff --git a/core/java/android/net/ParseException.java b/core/java/android/net/ParseException.java index 2380e863d043..9d4727a84bc0 100644 --- a/core/java/android/net/ParseException.java +++ b/core/java/android/net/ParseException.java @@ -16,15 +16,22 @@ package android.net; +import android.annotation.NonNull; + /** - * Thrown when parsing a URL fails. + * Thrown when parsing failed. */ // See non-public class {@link WebAddress}. public class ParseException extends RuntimeException { public String response; - ParseException(String response) { + public ParseException(@NonNull String response) { super(response); this.response = response; } + + public ParseException(@NonNull String response, @NonNull Throwable cause) { + super(response, cause); + this.response = response; + } } diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java index 870d8b1b7c22..ea245a4879c3 100644 --- a/core/java/android/net/VpnService.java +++ b/core/java/android/net/VpnService.java @@ -27,6 +27,8 @@ import android.annotation.UnsupportedAppUsage; import android.app.Activity; import android.app.PendingIntent; import android.app.Service; +import android.app.admin.DevicePolicyManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.IPackageManager; @@ -48,6 +50,7 @@ import java.net.InetAddress; import java.net.Socket; import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * VpnService is a base class for applications to extend and build their @@ -138,7 +141,7 @@ public class VpnService extends Service { * provides users with the ability to set it as always-on, so that VPN connection is * persisted after device reboot and app upgrade. Always-on VPN can also be enabled by device * owner and profile owner apps through - * {@link android.app.admin.DevicePolicyManager#setAlwaysOnVpnPackage}. + * {@link DevicePolicyManager#setAlwaysOnVpnPackage}. * * <p>VPN apps not supporting this feature should opt out by adding this meta-data field to the * {@code VpnService} component of {@code AndroidManifest.xml}. In case there is more than one @@ -370,7 +373,10 @@ public class VpnService extends Service { } /** - * Returns whether the service is running in always-on VPN mode. + * Returns whether the service is running in always-on VPN mode. In this mode the system ensures + * that the service is always running by restarting it when necessary, e.g. after reboot. + * + * @see DevicePolicyManager#setAlwaysOnVpnPackage(ComponentName, String, boolean, Set) */ public final boolean isAlwaysOn() { try { @@ -381,8 +387,11 @@ public class VpnService extends Service { } /** - * Returns whether the service is running in always-on VPN mode blocking connections without - * VPN. + * Returns whether the service is running in always-on VPN lockdown mode. In this mode the + * system ensures that the service is always running and that the apps aren't allowed to bypass + * the VPN. + * + * @see DevicePolicyManager#setAlwaysOnVpnPackage(ComponentName, String, boolean, Set) */ public final boolean isLockdownEnabled() { try { diff --git a/core/java/android/net/util/SocketUtils.java b/core/java/android/net/util/SocketUtils.java index 5827f9ec9343..6f8aece848f8 100644 --- a/core/java/android/net/util/SocketUtils.java +++ b/core/java/android/net/util/SocketUtils.java @@ -45,7 +45,7 @@ import java.net.SocketException; */ @SystemApi @TestApi -public class SocketUtils { +public final class SocketUtils { /** * Create a raw datagram socket that is bound to an interface. * @@ -63,6 +63,7 @@ public class SocketUtils { /** * Make a socket address to communicate with netlink. */ + @NonNull public static SocketAddress makeNetlinkSocketAddress(int portId, int groupsMask) { return new NetlinkSocketAddress(portId, groupsMask); } @@ -70,13 +71,15 @@ public class SocketUtils { /** * Make socket address that packet sockets can bind to. */ - public static SocketAddress makePacketSocketAddress(short protocol, int ifIndex) { - return new PacketSocketAddress(protocol, ifIndex); + @NonNull + public static SocketAddress makePacketSocketAddress(int protocol, int ifIndex) { + return new PacketSocketAddress((short) protocol, ifIndex); } /** * Make a socket address that packet socket can send packets to. */ + @NonNull public static SocketAddress makePacketSocketAddress(int ifIndex, @NonNull byte[] hwAddr) { return new PacketSocketAddress(ifIndex, hwAddr); } diff --git a/core/java/android/os/AsyncResult.java b/core/java/android/os/AsyncResult.java index 5bad09d17e7b..58a27015f2df 100644 --- a/core/java/android/os/AsyncResult.java +++ b/core/java/android/os/AsyncResult.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.os.Message; /** @hide */ @@ -25,13 +26,17 @@ public class AsyncResult /*************************** Instance Variables **************************/ // Expect either exception or result to be null + @UnsupportedAppUsage public Object userObj; + @UnsupportedAppUsage public Throwable exception; + @UnsupportedAppUsage public Object result; /***************************** Class Methods *****************************/ /** Saves and sets m.obj */ + @UnsupportedAppUsage public static AsyncResult forMessage(Message m, Object r, Throwable ex) { @@ -45,6 +50,7 @@ public class AsyncResult } /** Saves and sets m.obj */ + @UnsupportedAppUsage public static AsyncResult forMessage(Message m) { @@ -58,6 +64,7 @@ public class AsyncResult } /** please note, this sets m.obj to be this */ + @UnsupportedAppUsage public AsyncResult (Object uo, Object r, Throwable ex) { diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java index a851e04e78ec..d259f386ea77 100644 --- a/core/java/android/os/AsyncTask.java +++ b/core/java/android/os/AsyncTask.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.MainThread; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.annotation.WorkerThread; import java.util.ArrayDeque; @@ -259,15 +260,20 @@ public abstract class AsyncTask<Params, Progress, Result> { private static final int MESSAGE_POST_RESULT = 0x1; private static final int MESSAGE_POST_PROGRESS = 0x2; + @UnsupportedAppUsage private static volatile Executor sDefaultExecutor = SERIAL_EXECUTOR; private static InternalHandler sHandler; + @UnsupportedAppUsage private final WorkerRunnable<Params, Result> mWorker; + @UnsupportedAppUsage private final FutureTask<Result> mFuture; + @UnsupportedAppUsage private volatile Status mStatus = Status.PENDING; private final AtomicBoolean mCancelled = new AtomicBoolean(); + @UnsupportedAppUsage private final AtomicBoolean mTaskInvoked = new AtomicBoolean(); private final Handler mHandler; @@ -331,6 +337,7 @@ public abstract class AsyncTask<Params, Progress, Result> { } /** @hide */ + @UnsupportedAppUsage public static void setDefaultExecutor(Executor exec) { sDefaultExecutor = exec; } diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java index 0fef78d1f4ba..117d11a4c74b 100644 --- a/core/java/android/os/BaseBundle.java +++ b/core/java/android/os/BaseBundle.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.util.ArrayMap; import android.util.Log; import android.util.MathUtils; @@ -82,6 +83,7 @@ public class BaseBundle { // Invariant - exactly one of mMap / mParcelledData will be null // (except inside a call to unparcel) + @UnsupportedAppUsage ArrayMap<String, Object> mMap = null; /* @@ -89,6 +91,7 @@ public class BaseBundle { * data are stored as a Parcel containing a Bundle. When the data * are unparcelled, mParcelledData willbe set to null. */ + @UnsupportedAppUsage Parcel mParcelledData = null; /** @@ -225,6 +228,7 @@ public class BaseBundle { * If the underlying data are stored as a Parcel, unparcel them * using the currently assigned class loader. */ + @UnsupportedAppUsage /* package */ void unparcel() { synchronized (this) { final Parcel source = mParcelledData; @@ -311,6 +315,7 @@ public class BaseBundle { /** * @hide */ + @UnsupportedAppUsage public boolean isParcelled() { return mParcelledData != null; } diff --git a/core/java/android/os/BatteryManager.java b/core/java/android/os/BatteryManager.java index 954071a0ee97..1a6e012e0ff3 100644 --- a/core/java/android/os/BatteryManager.java +++ b/core/java/android/os/BatteryManager.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; import android.hardware.health.V1_0.Constants; @@ -109,6 +110,7 @@ public class BatteryManager { * to the device. * {@hide} */ + @UnsupportedAppUsage public static final String EXTRA_INVALID_CHARGER = "invalid_charger"; /** @@ -116,6 +118,7 @@ public class BatteryManager { * Int value set to the maximum charging current supported by the charger in micro amperes. * {@hide} */ + @UnsupportedAppUsage public static final String EXTRA_MAX_CHARGING_CURRENT = "max_charging_current"; /** @@ -123,6 +126,7 @@ public class BatteryManager { * Int value set to the maximum charging voltage supported by the charger in micro volts. * {@hide} */ + @UnsupportedAppUsage public static final String EXTRA_MAX_CHARGING_VOLTAGE = "max_charging_voltage"; /** @@ -130,6 +134,7 @@ public class BatteryManager { * integer containing the charge counter present in the battery. * {@hide} */ + @UnsupportedAppUsage public static final String EXTRA_CHARGE_COUNTER = "charge_counter"; /** diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 517eaf83d336..6beddfdc5904 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.app.ActivityManager; import android.app.job.JobParameters; import android.content.Context; @@ -71,6 +72,7 @@ public abstract class BatteryStats implements Parcelable { /** * A constant indicating a partial wake lock timer. */ + @UnsupportedAppUsage public static final int WAKE_TYPE_PARTIAL = 0; /** @@ -196,6 +198,7 @@ public abstract class BatteryStats implements Parcelable { /** * Include only the current run in the stats. */ + @UnsupportedAppUsage public static final int STATS_CURRENT = 1; /** @@ -390,6 +393,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT */ + @UnsupportedAppUsage public abstract int getCountLocked(int which); /** @@ -491,6 +495,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT */ + @UnsupportedAppUsage public abstract int getCountLocked(int which); /** @@ -501,6 +506,7 @@ public abstract class BatteryStats implements Parcelable { * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT * @return a time in microseconds */ + @UnsupportedAppUsage public abstract long getTotalTimeLocked(long elapsedRealtimeUs, int which); /** @@ -603,6 +609,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Strings to Uid.Wakelock objects. */ + @UnsupportedAppUsage public abstract ArrayMap<String, ? extends Wakelock> getWakelockStats(); /** @@ -637,6 +644,7 @@ public abstract class BatteryStats implements Parcelable { * The statistics associated with a particular wake lock. */ public static abstract class Wakelock { + @UnsupportedAppUsage public abstract Timer getWakeTime(int type); } @@ -652,6 +660,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Integer sensor ids to Uid.Sensor objects. */ + @UnsupportedAppUsage public abstract SparseArray<? extends Sensor> getSensorStats(); /** @@ -664,6 +673,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Strings to Uid.Proc objects. */ + @UnsupportedAppUsage public abstract ArrayMap<String, ? extends Proc> getProcessStats(); /** @@ -671,6 +681,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Strings to Uid.Pkg objects. */ + @UnsupportedAppUsage public abstract ArrayMap<String, ? extends Pkg> getPackageStats(); public abstract ControllerActivityCounter getWifiControllerActivity(); @@ -680,6 +691,7 @@ public abstract class BatteryStats implements Parcelable { /** * {@hide} */ + @UnsupportedAppUsage public abstract int getUid(); public abstract void noteWifiRunningLocked(long elapsedRealtime); @@ -694,8 +706,11 @@ public abstract class BatteryStats implements Parcelable { public abstract void noteWifiMulticastDisabledLocked(long elapsedRealtime); public abstract void noteActivityResumedLocked(long elapsedRealtime); public abstract void noteActivityPausedLocked(long elapsedRealtime); + @UnsupportedAppUsage public abstract long getWifiRunningTime(long elapsedRealtimeUs, int which); + @UnsupportedAppUsage public abstract long getFullWifiLockTime(long elapsedRealtimeUs, int which); + @UnsupportedAppUsage public abstract long getWifiScanTime(long elapsedRealtimeUs, int which); public abstract int getWifiScanCount(int which); /** @@ -709,10 +724,14 @@ public abstract class BatteryStats implements Parcelable { * Returns the timer keeping track of background wifi scans. */ public abstract Timer getWifiScanBackgroundTimer(); + @UnsupportedAppUsage public abstract long getWifiBatchedScanTime(int csphBin, long elapsedRealtimeUs, int which); public abstract int getWifiBatchedScanCount(int csphBin, int which); + @UnsupportedAppUsage public abstract long getWifiMulticastTime(long elapsedRealtimeUs, int which); + @UnsupportedAppUsage public abstract Timer getAudioTurnedOnTimer(); + @UnsupportedAppUsage public abstract Timer getVideoTurnedOnTimer(); public abstract Timer getFlashlightTurnedOnTimer(); public abstract Timer getCameraTurnedOnTimer(); @@ -842,8 +861,10 @@ public abstract class BatteryStats implements Parcelable { public abstract int getUserActivityCount(int type, int which); public abstract boolean hasNetworkActivity(); + @UnsupportedAppUsage public abstract long getNetworkActivityBytes(int type, int which); public abstract long getNetworkActivityPackets(int type, int which); + @UnsupportedAppUsage public abstract long getMobileRadioActiveTime(int which); public abstract int getMobileRadioActiveCount(int which); @@ -903,10 +924,13 @@ public abstract class BatteryStats implements Parcelable { * the sensor HAL, and therefore out of our control */ // Magic sensor number for the GPS. + @UnsupportedAppUsage public static final int GPS = -10000; + @UnsupportedAppUsage public abstract int getHandle(); + @UnsupportedAppUsage public abstract Timer getSensorTime(); /** Returns a Timer for sensor usage when app is in the background. */ @@ -928,8 +952,11 @@ public abstract class BatteryStats implements Parcelable { public static final int TYPE_WAKE = 1; public static final int TYPE_CPU = 2; + @UnsupportedAppUsage public int type; + @UnsupportedAppUsage public long overTime; + @UnsupportedAppUsage public long usedTime; } @@ -943,6 +970,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract long getUserTime(int which); /** @@ -950,6 +978,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract long getSystemTime(int which); /** @@ -957,6 +986,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract int getStarts(int which); /** @@ -978,10 +1008,13 @@ public abstract class BatteryStats implements Parcelable { * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. * @return foreground cpu time in microseconds */ + @UnsupportedAppUsage public abstract long getForegroundTime(int which); + @UnsupportedAppUsage public abstract int countExcessivePowers(); + @UnsupportedAppUsage public abstract ExcessivePower getExcessivePower(int i); } @@ -995,11 +1028,13 @@ public abstract class BatteryStats implements Parcelable { * package. The mapping keys are tag names for the alarms, the counter contains * the number of times the alarm was triggered while on battery. */ + @UnsupportedAppUsage public abstract ArrayMap<String, ? extends Counter> getWakeupAlarmStats(); /** * Returns a mapping containing service statistics. */ + @UnsupportedAppUsage public abstract ArrayMap<String, ? extends Serv> getServiceStats(); /** @@ -1014,6 +1049,7 @@ public abstract class BatteryStats implements Parcelable { * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. * @return */ + @UnsupportedAppUsage public abstract long getStartTime(long batteryUptime, int which); /** @@ -1021,6 +1057,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract int getStarts(int which); /** @@ -1028,6 +1065,7 @@ public abstract class BatteryStats implements Parcelable { * * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract int getLaunches(int which); } } @@ -1490,8 +1528,10 @@ public abstract class BatteryStats implements Parcelable { public HistoryItem next; // The time of this event in milliseconds, as per SystemClock.elapsedRealtime(). + @UnsupportedAppUsage public long time; + @UnsupportedAppUsage public static final byte CMD_UPDATE = 0; // These can be written as deltas public static final byte CMD_NULL = -1; public static final byte CMD_START = 4; @@ -1500,6 +1540,7 @@ public abstract class BatteryStats implements Parcelable { public static final byte CMD_RESET = 7; public static final byte CMD_SHUTDOWN = 8; + @UnsupportedAppUsage public byte cmd = CMD_NULL; /** @@ -1509,12 +1550,17 @@ public abstract class BatteryStats implements Parcelable { return cmd == CMD_UPDATE; } + @UnsupportedAppUsage public byte batteryLevel; + @UnsupportedAppUsage public byte batteryStatus; + @UnsupportedAppUsage public byte batteryHealth; + @UnsupportedAppUsage public byte batteryPlugType; public short batteryTemperature; + @UnsupportedAppUsage public char batteryVoltage; // The charge of the battery in micro-Ampere-hours. @@ -1561,6 +1607,7 @@ public abstract class BatteryStats implements Parcelable { public static final int SETTLE_TO_ZERO_STATES = 0xffff0000 & ~MOST_INTERESTING_STATES; + @UnsupportedAppUsage public int states; // Constants from WIFI_SUPPL_STATE_* @@ -1596,6 +1643,7 @@ public abstract class BatteryStats implements Parcelable { public static final int SETTLE_TO_ZERO_STATES2 = 0xffff0000 & ~MOST_INTERESTING_STATES2; + @UnsupportedAppUsage public int states2; // The wake lock that was acquired at this point. @@ -1704,6 +1752,7 @@ public abstract class BatteryStats implements Parcelable { public final HistoryTag localWakeReasonTag = new HistoryTag(); public final HistoryTag localEventTag = new HistoryTag(); + @UnsupportedAppUsage public HistoryItem() { } @@ -1995,6 +2044,7 @@ public abstract class BatteryStats implements Parcelable { public abstract int getHistoryUsedSize(); + @UnsupportedAppUsage public abstract boolean startIteratingHistoryLocked(); public abstract int getHistoryStringPoolSize(); @@ -2005,6 +2055,7 @@ public abstract class BatteryStats implements Parcelable { public abstract int getHistoryTagPoolUid(int index); + @UnsupportedAppUsage public abstract boolean getNextHistoryLocked(HistoryItem out); public abstract void finishIteratingHistoryLocked(); @@ -2031,6 +2082,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getScreenOnTime(long elapsedRealtimeUs, int which); /** @@ -2071,6 +2123,7 @@ public abstract class BatteryStats implements Parcelable { "0", "1", "2", "3", "4" }; + @UnsupportedAppUsage public static final int NUM_SCREEN_BRIGHTNESS_BINS = 5; /** @@ -2079,6 +2132,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getScreenBrightnessTime(int brightnessBin, long elapsedRealtimeUs, int which); @@ -2187,6 +2241,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getPhoneOnTime(long elapsedRealtimeUs, int which); /** @@ -2202,6 +2257,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getPhoneSignalStrengthTime(int strengthBin, long elapsedRealtimeUs, int which); @@ -2284,6 +2340,7 @@ public abstract class BatteryStats implements Parcelable { "ehrpd", "hspap", "gsm", "td_scdma", "iwlan", "lte_ca", "other" }; + @UnsupportedAppUsage public static final int NUM_DATA_CONNECTION_TYPES = DATA_CONNECTION_OTHER+1; /** @@ -2446,6 +2503,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getWifiOnTime(long elapsedRealtimeUs, int which); /** @@ -2462,6 +2520,7 @@ public abstract class BatteryStats implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public abstract long getGlobalWifiRunningTime(long elapsedRealtimeUs, int which); public static final int WIFI_STATE_OFF = 0; @@ -2667,6 +2726,7 @@ public abstract class BatteryStats implements Parcelable { /** * Returns a SparseArray containing the statistics for each uid. */ + @UnsupportedAppUsage public abstract SparseArray<? extends Uid> getUidStats(); /** @@ -2674,6 +2734,7 @@ public abstract class BatteryStats implements Parcelable { * * @param curTime the amount of elapsed realtime in microseconds. */ + @UnsupportedAppUsage public abstract long getBatteryUptime(long curTime); /** @@ -2754,6 +2815,7 @@ public abstract class BatteryStats implements Parcelable { * @param curTime the elapsed realtime in microseconds. * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract long computeBatteryUptime(long curTime, int which); /** @@ -2762,6 +2824,7 @@ public abstract class BatteryStats implements Parcelable { * @param curTime the current elapsed realtime in microseconds. * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. */ + @UnsupportedAppUsage public abstract long computeBatteryRealtime(long curTime, int which); /** @@ -2804,6 +2867,7 @@ public abstract class BatteryStats implements Parcelable { * * @param curTime The current elepsed realtime in microseconds. */ + @UnsupportedAppUsage public abstract long computeBatteryTimeRemaining(long curTime); // The part of a step duration that is the actual time. @@ -2938,6 +3002,7 @@ public abstract class BatteryStats implements Parcelable { * * @param curTime The current elepsed realtime in microseconds. */ + @UnsupportedAppUsage public abstract long computeChargeTimeRemaining(long curTime); /** @@ -3222,6 +3287,7 @@ public abstract class BatteryStats implements Parcelable { * @param type type of data (e.g. "wakelock", "sensor", "process", "apk" , "process", "network") * @param args type-dependent data arguments */ + @UnsupportedAppUsage private static final void dumpLine(PrintWriter pw, int uid, String category, String type, Object... args ) { dumpLineHeader(pw, uid, category, type); diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 3bc1e93853af..3de11837bfd1 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.util.ExceptionUtils; import android.util.Log; import android.util.Slog; @@ -221,6 +222,7 @@ public class Binder implements IBinder { /** * Raw native pointer to JavaBBinderHolder object. Owned by this Java object. Not null. */ + @UnsupportedAppUsage private final long mObject; private IInterface mOwner; @@ -720,6 +722,7 @@ public class Binder implements IBinder { private static native long getFinalizer(); // Entry point from android_util_Binder.cpp's onTransact + @UnsupportedAppUsage private boolean execTransact(int code, long dataObj, long replyObj, int flags) { BinderCallsStats binderCallsStats = BinderCallsStats.getInstance(); diff --git a/core/java/android/os/Broadcaster.java b/core/java/android/os/Broadcaster.java index 70dcdd8ac886..6ac7f1a9c970 100644 --- a/core/java/android/os/Broadcaster.java +++ b/core/java/android/os/Broadcaster.java @@ -16,9 +16,12 @@ package android.os; +import android.annotation.UnsupportedAppUsage; + /** @hide */ public class Broadcaster { + @UnsupportedAppUsage public Broadcaster() { } @@ -29,6 +32,7 @@ public class Broadcaster * When this broadcaster pushes a message with senderWhat in the what field, * target will be sent a copy of that message with targetWhat in the what field. */ + @UnsupportedAppUsage public void request(int senderWhat, Handler target, int targetWhat) { synchronized (this) { @@ -96,6 +100,7 @@ public class Broadcaster /** * Unregister for notifications for this senderWhat/target/targetWhat tuple. */ + @UnsupportedAppUsage public void cancelRequest(int senderWhat, Handler target, int targetWhat) { synchronized (this) { @@ -168,6 +173,7 @@ public class Broadcaster * Send out msg. Anyone who has registered via the request() method will be * sent the message. */ + @UnsupportedAppUsage public void broadcast(Message msg) { synchronized (this) { diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 6de575960f48..1c319fb4ea36 100755 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -20,6 +20,7 @@ import android.Manifest; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.app.Application; import android.content.Context; import android.text.TextUtils; @@ -102,6 +103,7 @@ public class Build { * Whether this build was for an emulator device. * @hide */ + @UnsupportedAppUsage public static final boolean IS_EMULATOR = getString("ro.kernel.qemu").equals("1"); /** @@ -285,6 +287,7 @@ public class Build { /** * @hide */ + @UnsupportedAppUsage public static final String[] ACTIVE_CODENAMES = "REL".equals(ALL_CODENAMES[0]) ? new String[0] : ALL_CODENAMES; @@ -1083,6 +1086,7 @@ public class Build { * Returns true if we are running a debug build such as "user-debug" or "eng". * @hide */ + @UnsupportedAppUsage public static final boolean IS_DEBUGGABLE = SystemProperties.getInt("ro.debuggable", 0) == 1; @@ -1131,6 +1135,7 @@ public class Build { return TextUtils.isEmpty(propVal) ? null : propVal; } + @UnsupportedAppUsage private static String getString(String property) { return SystemProperties.get(property, UNKNOWN); } @@ -1144,6 +1149,7 @@ public class Build { } } + @UnsupportedAppUsage private static long getLong(String property) { try { return Long.parseLong(SystemProperties.get(property)); diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java index 7ae5a673f630..6b5eff705c83 100644 --- a/core/java/android/os/Bundle.java +++ b/core/java/android/os/Bundle.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.util.ArrayMap; import android.util.Size; import android.util.SizeF; @@ -173,6 +174,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * * @hide */ + @UnsupportedAppUsage public static Bundle forPair(String key, String value) { Bundle b = new Bundle(1); b.putString(key, value); @@ -229,6 +231,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { } /** {@hide} */ + @UnsupportedAppUsage public static Bundle setDefusable(Bundle bundle, boolean defusable) { if (bundle != null) { bundle.setDefusable(defusable); @@ -303,6 +306,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * * @hide */ + @UnsupportedAppUsage public int getSize() { if (mParcelledData != null) { return mParcelledData.dataSize(); @@ -385,6 +389,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * Filter values in Bundle to only basic types. * @hide */ + @UnsupportedAppUsage public Bundle filterValues() { unparcel(); Bundle bundle = this; @@ -557,6 +562,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { } /** {@hide} */ + @UnsupportedAppUsage public void putParcelableList(String key, List<? extends Parcelable> value) { unparcel(); mMap.put(key, value); @@ -728,6 +734,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * @deprecated * @hide This is the old name of the function. */ + @UnsupportedAppUsage @Deprecated public void putIBinder(@Nullable String key, @Nullable IBinder value) { unparcel(); @@ -1180,6 +1187,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * @deprecated * @hide This is the old name of the function. */ + @UnsupportedAppUsage @Deprecated @Nullable public IBinder getIBinder(@Nullable String key) { diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java index e6069644caa5..eab451c7447a 100644 --- a/core/java/android/os/Debug.java +++ b/core/java/android/os/Debug.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.app.AppGlobals; import android.content.Context; import android.util.Log; @@ -87,6 +88,7 @@ public final class Debug // set/cleared by waitForDebugger() private static volatile boolean mWaiting = false; + @UnsupportedAppUsage private Debug() {} /* @@ -115,8 +117,10 @@ public final class Debug public int dalvikPss; /** The proportional set size that is swappable for dalvik heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int dalvikSwappablePss; /** @hide The resident set size for dalvik heap. (Without other Dalvik overhead.) */ + @UnsupportedAppUsage public int dalvikRss; /** The private dirty pages used by dalvik heap. */ public int dalvikPrivateDirty; @@ -124,23 +128,29 @@ public final class Debug public int dalvikSharedDirty; /** The private clean pages used by dalvik heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int dalvikPrivateClean; /** The shared clean pages used by dalvik heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int dalvikSharedClean; /** The dirty dalvik pages that have been swapped out. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int dalvikSwappedOut; /** The dirty dalvik pages that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int dalvikSwappedOutPss; /** The proportional set size for the native heap. */ public int nativePss; /** The proportional set size that is swappable for the native heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int nativeSwappablePss; /** @hide The resident set size for the native heap. */ + @UnsupportedAppUsage public int nativeRss; /** The private dirty pages used by the native heap. */ public int nativePrivateDirty; @@ -148,23 +158,29 @@ public final class Debug public int nativeSharedDirty; /** The private clean pages used by the native heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int nativePrivateClean; /** The shared clean pages used by the native heap. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int nativeSharedClean; /** The dirty native pages that have been swapped out. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int nativeSwappedOut; /** The dirty native pages that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int nativeSwappedOutPss; /** The proportional set size for everything else. */ public int otherPss; /** The proportional set size that is swappable for everything else. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int otherSwappablePss; /** @hide The resident set size for everything else. */ + @UnsupportedAppUsage public int otherRss; /** The private dirty pages used by everything else. */ public int otherPrivateDirty; @@ -172,19 +188,24 @@ public final class Debug public int otherSharedDirty; /** The private clean pages used by everything else. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int otherPrivateClean; /** The shared clean pages used by everything else. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int otherSharedClean; /** The dirty pages used by anyting else that have been swapped out. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int otherSwappedOut; /** The dirty pages used by anyting else that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ + @UnsupportedAppUsage public int otherSwappedOutPss; /** Whether the kernel reports proportional swap usage */ /** @hide */ + @UnsupportedAppUsage public boolean hasSwappedOutPss; /** @hide */ @@ -231,6 +252,7 @@ public final class Debug // Needs to be declared here for the DVK_STAT ranges below. /** @hide */ + @UnsupportedAppUsage public static final int NUM_OTHER_STATS = 17; // Dalvik subsections. @@ -291,6 +313,7 @@ public final class Debug public static final int OTHER_DVK_STAT_ART_END = OTHER_ART_BOOT - NUM_OTHER_STATS; /** @hide */ + @UnsupportedAppUsage public static final int NUM_DVK_STATS = 14; /** @hide */ @@ -315,6 +338,7 @@ public final class Debug /** @hide */ public static final int OFFSET_SWAPPED_OUT_PSS = 8; + @UnsupportedAppUsage private int[] otherStats = new int[(NUM_OTHER_STATS+NUM_DVK_STATS)*NUM_CATEGORIES]; public MemoryInfo() { @@ -330,6 +354,7 @@ public final class Debug /** * @hide Return total PSS memory usage in kB. */ + @UnsupportedAppUsage public int getTotalUss() { return dalvikPrivateClean + dalvikPrivateDirty + nativePrivateClean + nativePrivateDirty @@ -396,6 +421,7 @@ public final class Debug } /** @hide */ + @UnsupportedAppUsage public int getOtherPss(int which) { return otherStats[which * NUM_CATEGORIES + OFFSET_PSS]; } @@ -411,11 +437,13 @@ public final class Debug } /** @hide */ + @UnsupportedAppUsage public int getOtherPrivateDirty(int which) { return otherStats[which * NUM_CATEGORIES + OFFSET_PRIVATE_DIRTY]; } /** @hide */ + @UnsupportedAppUsage public int getOtherSharedDirty(int which) { return otherStats[which * NUM_CATEGORIES + OFFSET_SHARED_DIRTY]; } @@ -426,6 +454,7 @@ public final class Debug } /** @hide */ + @UnsupportedAppUsage public int getOtherPrivate(int which) { return getOtherPrivateClean(which) + getOtherPrivateDirty(which); } @@ -446,6 +475,7 @@ public final class Debug } /** @hide */ + @UnsupportedAppUsage public static String getOtherLabel(int which) { switch (which) { case OTHER_DALVIK_OTHER: return "Dalvik Other"; @@ -623,6 +653,7 @@ public final class Debug * such thing as private clean for the Java Heap. * @hide */ + @UnsupportedAppUsage public int getSummaryJavaHeap() { return dalvikPrivateDirty + getOtherPrivate(OTHER_ART); } @@ -635,6 +666,7 @@ public final class Debug * such thing as private clean for the Native Heap. * @hide */ + @UnsupportedAppUsage public int getSummaryNativeHeap() { return nativePrivateDirty; } @@ -644,6 +676,7 @@ public final class Debug * the application. * @hide */ + @UnsupportedAppUsage public int getSummaryCode() { return getOtherPrivate(OTHER_SO) + getOtherPrivate(OTHER_JAR) @@ -662,6 +695,7 @@ public final class Debug * such thing as private clean for the stack. * @hide */ + @UnsupportedAppUsage public int getSummaryStack() { return getOtherPrivateDirty(OTHER_STACK); } @@ -677,6 +711,7 @@ public final class Debug * memory into the System category. * @hide */ + @UnsupportedAppUsage public int getSummaryGraphics() { return getOtherPrivate(OTHER_GL_DEV) + getOtherPrivate(OTHER_GRAPHICS) @@ -688,6 +723,7 @@ public final class Debug * accounted for. * @hide */ + @UnsupportedAppUsage public int getSummaryPrivateOther() { return getTotalPrivateClean() + getTotalPrivateDirty() @@ -704,6 +740,7 @@ public final class Debug * * Includes all shared memory. * @hide */ + @UnsupportedAppUsage public int getSummarySystem() { return getTotalPss() - getTotalPrivateClean() @@ -1743,6 +1780,7 @@ public final class Debug * as the caller. * @hide */ + @UnsupportedAppUsage public static native void getMemoryInfo(int pid, MemoryInfo memoryInfo); /** @@ -1798,6 +1836,7 @@ public final class Debug * as defined by MEMINFO_* offsets. * @hide */ + @UnsupportedAppUsage public static native void getMemInfo(long[] outSizes); /** @@ -1886,6 +1925,7 @@ public final class Debug * * @hide */ + @UnsupportedAppUsage public static native void dumpNativeHeap(FileDescriptor fd); /** @@ -1900,6 +1940,7 @@ public final class Debug * * @hide */ + @UnsupportedAppUsage public static long countInstancesOfClass(Class cls) { return VMDebug.countInstancesOfClass(cls, true); } @@ -1959,6 +2000,7 @@ public final class Debug * * @hide */ + @UnsupportedAppUsage public static final void dumpReferenceTables() { VMDebug.dumpReferenceTables(); } @@ -2325,6 +2367,7 @@ public final class Debug * @return a string describing the call stack. * {@hide} */ + @UnsupportedAppUsage public static String getCallers(final int depth) { final StackTraceElement[] callStack = Thread.currentThread().getStackTrace(); StringBuffer sb = new StringBuffer(); @@ -2371,6 +2414,7 @@ public final class Debug * @return a String describing the immediate caller of the calling method. * {@hide} */ + @UnsupportedAppUsage public static String getCaller() { return getCaller(Thread.currentThread().getStackTrace(), 0); } diff --git a/core/java/android/os/DropBoxManager.java b/core/java/android/os/DropBoxManager.java index 97f0e0cf31e9..89fef68dc2c0 100644 --- a/core/java/android/os/DropBoxManager.java +++ b/core/java/android/os/DropBoxManager.java @@ -19,6 +19,7 @@ package android.os; import android.annotation.SdkConstant; import android.annotation.SystemService; import android.annotation.SdkConstant.SdkConstantType; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.util.Log; @@ -45,6 +46,7 @@ public class DropBoxManager { private static final String TAG = "DropBoxManager"; private final Context mContext; + @UnsupportedAppUsage private final IDropBoxManagerService mService; /** Flag value: Entry's content was deleted to save space. */ diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 213260fa9162..207eb36a6987 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.os.storage.StorageManager; @@ -66,6 +67,7 @@ public class Environment { private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor"); private static final File DIR_PRODUCT_ROOT = getDirectory(ENV_PRODUCT_ROOT, "/product"); + @UnsupportedAppUsage private static UserEnvironment sCurrentUser; private static boolean sUserRequired; @@ -74,6 +76,7 @@ public class Environment { } /** {@hide} */ + @UnsupportedAppUsage public static void initForCurrentUser() { final int userId = UserHandle.myUserId(); sCurrentUser = new UserEnvironment(userId); @@ -83,10 +86,12 @@ public class Environment { public static class UserEnvironment { private final int mUserId; + @UnsupportedAppUsage public UserEnvironment(int userId) { mUserId = userId; } + @UnsupportedAppUsage public File[] getExternalDirs() { final StorageVolume[] volumes = StorageManager.getVolumeList(mUserId, StorageManager.FLAG_FOR_WRITE); @@ -97,11 +102,13 @@ public class Environment { return files; } + @UnsupportedAppUsage @Deprecated public File getExternalStorageDirectory() { return getExternalDirs()[0]; } + @UnsupportedAppUsage @Deprecated public File getExternalStoragePublicDirectory(String type) { return buildExternalStoragePublicDirs(type)[0]; @@ -149,6 +156,7 @@ public class Environment { } /** {@hide} */ + @UnsupportedAppUsage public static File getStorageDirectory() { return DIR_ANDROID_STORAGE; } @@ -159,6 +167,7 @@ public class Environment { * * @hide */ + @UnsupportedAppUsage public static File getOemDirectory() { return DIR_OEM_ROOT; } @@ -178,6 +187,7 @@ public class Environment { * software that should persist across simple reflashing of the "system" partition. * @hide */ + @UnsupportedAppUsage public static File getVendorDirectory() { return DIR_VENDOR_ROOT; } @@ -250,6 +260,7 @@ public class Environment { } /** {@hide} */ + @UnsupportedAppUsage public static File getDataSystemDirectory() { return new File(getDataDirectory(), "system"); } @@ -482,11 +493,13 @@ public class Environment { } /** {@hide} */ + @UnsupportedAppUsage public static File getLegacyExternalStorageDirectory() { return new File(System.getenv(ENV_EXTERNAL_STORAGE)); } /** {@hide} */ + @UnsupportedAppUsage public static File getLegacyExternalStorageObbDirectory() { return buildPath(getLegacyExternalStorageDirectory(), DIR_ANDROID, DIR_OBB); } @@ -742,6 +755,7 @@ public class Environment { * Returns the path for android-specific data on the SD card. * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAndroidDataDirs() { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAndroidDataDirs(); @@ -751,6 +765,7 @@ public class Environment { * Generates the raw path to an application's data * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAppDataDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppDataDirs(packageName); @@ -760,6 +775,7 @@ public class Environment { * Generates the raw path to an application's media * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAppMediaDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppMediaDirs(packageName); @@ -769,6 +785,7 @@ public class Environment { * Generates the raw path to an application's OBB files * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAppObbDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppObbDirs(packageName); @@ -778,6 +795,7 @@ public class Environment { * Generates the path to an application's files. * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAppFilesDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppFilesDirs(packageName); @@ -787,6 +805,7 @@ public class Environment { * Generates the path to an application's cache. * @hide */ + @UnsupportedAppUsage public static File[] buildExternalStorageAppCacheDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppCacheDirs(packageName); @@ -1021,6 +1040,7 @@ public class Environment { * * @hide */ + @UnsupportedAppUsage public static File[] buildPaths(File[] base, String... segments) { File[] result = new File[base.length]; for (int i = 0; i < base.length; i++) { @@ -1060,6 +1080,7 @@ public class Environment { * * @hide */ + @UnsupportedAppUsage public static File maybeTranslateEmulatedPathToInternal(File path) { return StorageManager.maybeTranslateEmulatedPathToInternal(path); } diff --git a/core/java/android/os/FileObserver.java b/core/java/android/os/FileObserver.java index dd85e1584f0e..2a88e32a0b0a 100644 --- a/core/java/android/os/FileObserver.java +++ b/core/java/android/os/FileObserver.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.util.Log; import java.lang.ref.WeakReference; @@ -103,6 +104,7 @@ public abstract class FileObserver { stopWatching(m_fd, descriptor); } + @UnsupportedAppUsage public void onEvent(int wfd, int mask, String path) { // look up our observer, fixing up the map if necessary... FileObserver observer = null; @@ -133,6 +135,7 @@ public abstract class FileObserver { private native void stopWatching(int fd, int wfd); } + @UnsupportedAppUsage private static ObserverThread s_observerThread; static { diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java index ddeb8380c331..d3b791c2d941 100644 --- a/core/java/android/os/FileUtils.java +++ b/core/java/android/os/FileUtils.java @@ -35,6 +35,7 @@ import static android.system.OsConstants.S_ISREG; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.provider.DocumentsContract.Document; import android.system.ErrnoException; import android.system.Os; @@ -118,6 +119,7 @@ public class FileUtils { * @param gid to apply through {@code chown}, or -1 to leave unchanged * @return 0 on success, otherwise errno. */ + @UnsupportedAppUsage public static int setPermissions(File path, int mode, int uid, int gid) { return setPermissions(path.getAbsolutePath(), mode, uid, gid); } @@ -130,6 +132,7 @@ public class FileUtils { * @param gid to apply through {@code chown}, or -1 to leave unchanged * @return 0 on success, otherwise errno. */ + @UnsupportedAppUsage public static int setPermissions(String path, int mode, int uid, int gid) { try { Os.chmod(path, mode); @@ -158,6 +161,7 @@ public class FileUtils { * @param gid to apply through {@code chown}, or -1 to leave unchanged * @return 0 on success, otherwise errno. */ + @UnsupportedAppUsage public static int setPermissions(FileDescriptor fd, int mode, int uid, int gid) { try { Os.fchmod(fd, mode); @@ -203,6 +207,7 @@ public class FileUtils { * Perform an fsync on the given FileOutputStream. The stream at this * point must be flushed but not yet closed. */ + @UnsupportedAppUsage public static boolean sync(FileOutputStream stream) { try { if (stream != null) { @@ -217,6 +222,7 @@ public class FileUtils { /** * @deprecated use {@link #copy(File, File)} instead. */ + @UnsupportedAppUsage @Deprecated public static boolean copyFile(File srcFile, File destFile) { try { @@ -240,6 +246,7 @@ public class FileUtils { /** * @deprecated use {@link #copy(InputStream, OutputStream)} instead. */ + @UnsupportedAppUsage @Deprecated public static boolean copyToFile(InputStream inputStream, File destFile) { try { @@ -507,6 +514,7 @@ public class FileUtils { * Check if a filename is "safe" (no metacharacters or spaces). * @param file The file to check */ + @UnsupportedAppUsage public static boolean isFilenameSafe(File file) { // Note, we check whether it matches what's known to be safe, // rather than what's known to be unsafe. Non-ASCII, control @@ -522,6 +530,7 @@ public class FileUtils { * @return the contents of the file, possibly truncated * @throws IOException if something goes wrong reading the file */ + @UnsupportedAppUsage public static String readTextFile(File file, int max, String ellipsis) throws IOException { InputStream input = new FileInputStream(file); // wrapping a BufferedInputStream around it because when reading /proc with unbuffered @@ -575,6 +584,7 @@ public class FileUtils { } } + @UnsupportedAppUsage public static void stringToFile(File file, String string) throws IOException { stringToFile(file.getAbsolutePath(), string); } @@ -605,6 +615,7 @@ public class FileUtils { * @param string * @throws IOException */ + @UnsupportedAppUsage public static void stringToFile(String filename, String string) throws IOException { bytesToFile(filename, string.getBytes(StandardCharsets.UTF_8)); } @@ -616,6 +627,7 @@ public class FileUtils { * @param file the file to checksum, must not be null * @return the checksum value or an exception is thrown. */ + @UnsupportedAppUsage public static long checksumCrc32(File file) throws FileNotFoundException, IOException { CRC32 checkSummer = new CRC32(); CheckedInputStream cis = null; @@ -645,6 +657,7 @@ public class FileUtils { * @param minAgeMs Always keep files younger than this age, in milliseconds. * @return if any files were deleted. */ + @UnsupportedAppUsage public static boolean deleteOlderFiles(File dir, int minCount, long minAgeMs) { if (minCount < 0 || minAgeMs < 0) { throw new IllegalArgumentException("Constraints must be positive or 0"); @@ -726,6 +739,7 @@ public class FileUtils { } } + @UnsupportedAppUsage public static boolean deleteContents(File dir) { File[] files = dir.listFiles(); boolean success = true; diff --git a/core/java/android/os/Handler.java b/core/java/android/os/Handler.java index 2b5f3da5431e..4c2637b2d2b0 100644 --- a/core/java/android/os/Handler.java +++ b/core/java/android/os/Handler.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.util.Log; import android.util.Printer; @@ -168,6 +169,7 @@ public class Handler { * * @hide */ + @UnsupportedAppUsage public Handler(boolean async) { this(null, async); } @@ -229,6 +231,7 @@ public class Handler { * * @hide */ + @UnsupportedAppUsage public Handler(Looper looper, Callback callback, boolean async) { mLooper = looper; mQueue = looper.mQueue; @@ -274,6 +277,7 @@ public class Handler { } /** @hide */ + @UnsupportedAppUsage @NonNull public static Handler getMain() { if (MAIN_THREAD_HANDLER == null) { @@ -801,6 +805,7 @@ public class Handler { * * @hide */ + @UnsupportedAppUsage public final boolean hasCallbacks(Runnable r) { return mQueue.hasMessages(this, r, null); } @@ -839,6 +844,7 @@ public class Handler { + "}"; } + @UnsupportedAppUsage final IMessenger getIMessenger() { synchronized (mQueue) { if (mMessenger != null) { @@ -862,6 +868,7 @@ public class Handler { return m; } + @UnsupportedAppUsage private static Message getPostMessage(Runnable r, Object token) { Message m = Message.obtain(); m.obj = token; @@ -873,10 +880,13 @@ public class Handler { message.callback.run(); } + @UnsupportedAppUsage final Looper mLooper; final MessageQueue mQueue; + @UnsupportedAppUsage final Callback mCallback; final boolean mAsynchronous; + @UnsupportedAppUsage IMessenger mMessenger; private static final class BlockingRunnable implements Runnable { diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java index 9e3e83e14a48..09afdc7f934e 100644 --- a/core/java/android/os/HwBinder.java +++ b/core/java/android/os/HwBinder.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import libcore.util.NativeAllocationRegistry; @@ -151,6 +152,7 @@ public abstract class HwBinder implements IHwBinder { * * @hide */ + @UnsupportedAppUsage public static void reportSyspropChanged() { native_report_sysprop_change(); } diff --git a/core/java/android/os/HwParcel.java b/core/java/android/os/HwParcel.java index dc640c95b515..cfb582ef442e 100644 --- a/core/java/android/os/HwParcel.java +++ b/core/java/android/os/HwParcel.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import libcore.util.NativeAllocationRegistry; @@ -49,6 +50,7 @@ public class HwParcel { private static final NativeAllocationRegistry sNativeRegistry; + @UnsupportedAppUsage private HwParcel(boolean allocate) { native_setup(allocate); diff --git a/core/java/android/os/HwRemoteBinder.java b/core/java/android/os/HwRemoteBinder.java index a07e42c720c5..72ec958ca6d6 100644 --- a/core/java/android/os/HwRemoteBinder.java +++ b/core/java/android/os/HwRemoteBinder.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import libcore.util.NativeAllocationRegistry; /** @hide */ @@ -24,6 +25,7 @@ public class HwRemoteBinder implements IHwBinder { private static final NativeAllocationRegistry sNativeRegistry; + @UnsupportedAppUsage public HwRemoteBinder() { native_setup_empty(); diff --git a/core/java/android/os/IBinder.java b/core/java/android/os/IBinder.java index e74b0bb9e3f0..83f88ad41cfc 100644 --- a/core/java/android/os/IBinder.java +++ b/core/java/android/os/IBinder.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import java.io.FileDescriptor; @@ -149,6 +150,7 @@ public interface IBinder { int LIKE_TRANSACTION = ('_'<<24)|('L'<<16)|('I'<<8)|'K'; /** @hide */ + @UnsupportedAppUsage int SYSPROPS_TRANSACTION = ('_'<<24)|('S'<<16)|('P'<<8)|'R'; /** diff --git a/core/java/android/os/IDeviceIdleController.aidl b/core/java/android/os/IDeviceIdleController.aidl index 827170144dea..974745f5f0cb 100644 --- a/core/java/android/os/IDeviceIdleController.aidl +++ b/core/java/android/os/IDeviceIdleController.aidl @@ -39,6 +39,7 @@ interface IDeviceIdleController { int[] getAppIdTempWhitelist(); boolean isPowerSaveWhitelistExceptIdleApp(String name); boolean isPowerSaveWhitelistApp(String name); + @UnsupportedAppUsage void addPowerSaveTempWhitelistApp(String name, long duration, int userId, String reason); long addPowerSaveTempWhitelistAppForMms(String name, int userId, String reason); long addPowerSaveTempWhitelistAppForSms(String name, int userId, String reason); diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 8ced7225b0d4..f62a999a7d39 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -38,11 +38,13 @@ interface INetworkManagementService /** * Register an observer to receive events. */ + @UnsupportedAppUsage void registerObserver(INetworkManagementEventObserver obs); /** * Unregister an observer from receiving events. */ + @UnsupportedAppUsage void unregisterObserver(INetworkManagementEventObserver obs); /** @@ -54,16 +56,19 @@ interface INetworkManagementService * Retrieves the specified interface config * */ + @UnsupportedAppUsage InterfaceConfiguration getInterfaceConfig(String iface); /** * Sets the configuration of the specified interface */ + @UnsupportedAppUsage void setInterfaceConfig(String iface, in InterfaceConfiguration cfg); /** * Clear all IP addresses on the specified interface */ + @UnsupportedAppUsage void clearInterfaceAddresses(String iface); /** @@ -79,22 +84,26 @@ interface INetworkManagementService /** * Set interface IPv6 privacy extensions */ + @UnsupportedAppUsage void setInterfaceIpv6PrivacyExtensions(String iface, boolean enable); /** * Disable IPv6 on an interface */ + @UnsupportedAppUsage void disableIpv6(String iface); /** * Enable IPv6 on an interface */ + @UnsupportedAppUsage void enableIpv6(String iface); /** * Set IPv6 autoconf address generation mode. * This is a no-op if an unsupported mode is requested. */ + @UnsupportedAppUsage void setIPv6AddrGenMode(String iface, int mode); /** @@ -124,37 +133,44 @@ interface INetworkManagementService /** * Returns true if IP forwarding is enabled */ + @UnsupportedAppUsage boolean getIpForwardingEnabled(); /** * Enables/Disables IP Forwarding */ + @UnsupportedAppUsage void setIpForwardingEnabled(boolean enabled); /** * Start tethering services with the specified dhcp server range * arg is a set of start end pairs defining the ranges. */ + @UnsupportedAppUsage void startTethering(in String[] dhcpRanges); /** * Stop currently running tethering services */ + @UnsupportedAppUsage void stopTethering(); /** * Returns true if tethering services are started */ + @UnsupportedAppUsage boolean isTetheringStarted(); /** * Tethers the specified interface */ + @UnsupportedAppUsage void tetherInterface(String iface); /** * Untethers the specified interface */ + @UnsupportedAppUsage void untetherInterface(String iface); /** @@ -189,11 +205,13 @@ interface INetworkManagementService * The address and netmask of the external interface is used for * the NAT'ed network. */ + @UnsupportedAppUsage void enableNat(String internalInterface, String externalInterface); /** * Disables Network Address Translation between two interfaces. */ + @UnsupportedAppUsage void disableNat(String internalInterface, String externalInterface); /** @@ -311,6 +329,7 @@ interface INetworkManagementService /** * Return status of bandwidth control module. */ + @UnsupportedAppUsage boolean isBandwidthControlEnabled(); /** diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl index 13e4e38df5f6..93b80aa9fee9 100644 --- a/core/java/android/os/IPowerManager.aidl +++ b/core/java/android/os/IPowerManager.aidl @@ -40,10 +40,14 @@ interface IPowerManager void updateWakeLockWorkSource(IBinder lock, in WorkSource ws, String historyTag); boolean isWakeLockLevelSupported(int level); + @UnsupportedAppUsage void userActivity(long time, int event, int flags); + @UnsupportedAppUsage void wakeUp(long time, String reason, String opPackageName); + @UnsupportedAppUsage void goToSleep(long time, int reason, int flags); void nap(long time); + @UnsupportedAppUsage boolean isInteractive(); boolean isPowerSaveMode(); PowerSaveState getPowerSaveState(int serviceType); @@ -51,6 +55,7 @@ interface IPowerManager boolean isDeviceIdleMode(); boolean isLightDeviceIdleMode(); + @UnsupportedAppUsage void reboot(boolean confirm, String reason, boolean wait); void rebootSafeMode(boolean confirm, boolean wait); void shutdown(boolean confirm, String reason, boolean wait); diff --git a/core/java/android/os/IRemoteCallback.aidl b/core/java/android/os/IRemoteCallback.aidl index f0c6c73ee8fd..71f3b066bb80 100644 --- a/core/java/android/os/IRemoteCallback.aidl +++ b/core/java/android/os/IRemoteCallback.aidl @@ -21,5 +21,6 @@ import android.os.Bundle; /** @hide */ oneway interface IRemoteCallback { + @UnsupportedAppUsage void sendResult(in Bundle data); } diff --git a/core/java/android/os/IServiceManager.java b/core/java/android/os/IServiceManager.java index 89bf7b98a6c0..bc0690dbceab 100644 --- a/core/java/android/os/IServiceManager.java +++ b/core/java/android/os/IServiceManager.java @@ -16,6 +16,8 @@ package android.os; +import android.annotation.UnsupportedAppUsage; + /** * Basic interface for finding and publishing system services. * @@ -33,12 +35,14 @@ public interface IServiceManager extends IInterface * service manager. Blocks for a few seconds waiting for it to be * published if it does not already exist. */ + @UnsupportedAppUsage IBinder getService(String name) throws RemoteException; /** * Retrieve an existing service called @a name from the * service manager. Non-blocking. */ + @UnsupportedAppUsage IBinder checkService(String name) throws RemoteException; /** diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index 3017f258ed2d..24afb56da1c0 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -59,6 +59,7 @@ interface IUserManager { boolean canAddMoreManagedProfiles(int userHandle, boolean allowedToRemoveOne); UserInfo getProfileParent(int userHandle); boolean isSameProfileGroup(int userHandle, int otherUserHandle); + @UnsupportedAppUsage UserInfo getUserInfo(int userHandle); String getUserAccount(int userHandle); void setUserAccount(int userHandle, String accountName); diff --git a/core/java/android/os/LocaleList.java b/core/java/android/os/LocaleList.java index 87e1b7d21f53..6da72aaf8aa4 100644 --- a/core/java/android/os/LocaleList.java +++ b/core/java/android/os/LocaleList.java @@ -20,6 +20,7 @@ import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Size; +import android.annotation.UnsupportedAppUsage; import android.content.LocaleProto; import android.icu.util.ULocale; import android.util.proto.ProtoOutputStream; @@ -558,6 +559,7 @@ public final class LocaleList implements Parcelable { * * {@hide} */ + @UnsupportedAppUsage public static void setDefault(@NonNull @Size(min=1) LocaleList locales, int localeIndex) { if (locales == null) { throw new NullPointerException("locales is null"); diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java index 684a8ee43c87..a7d59e5c1553 100644 --- a/core/java/android/os/Looper.java +++ b/core/java/android/os/Looper.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.LooperProto; import android.util.Log; import android.util.Printer; @@ -68,12 +69,16 @@ public final class Looper { private static final String TAG = "Looper"; // sThreadLocal.get() will return null unless you've called prepare(). + @UnsupportedAppUsage static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>(); + @UnsupportedAppUsage private static Looper sMainLooper; // guarded by Looper.class + @UnsupportedAppUsage final MessageQueue mQueue; final Thread mThread; + @UnsupportedAppUsage private Printer mLogging; private long mTraceTag; @@ -290,6 +295,7 @@ public final class Looper { } /** {@hide} */ + @UnsupportedAppUsage public void setTraceTag(long traceTag) { mTraceTag = traceTag; } diff --git a/core/java/android/os/MemoryFile.java b/core/java/android/os/MemoryFile.java index ff3258f806c9..5a1e3d429830 100644 --- a/core/java/android/os/MemoryFile.java +++ b/core/java/android/os/MemoryFile.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.system.ErrnoException; import java.io.FileDescriptor; @@ -40,7 +41,9 @@ public class MemoryFile { private static String TAG = "MemoryFile"; // Returns 'true' if purged, 'false' otherwise + @UnsupportedAppUsage private static native boolean native_pin(FileDescriptor fd, boolean pin) throws IOException; + @UnsupportedAppUsage private static native int native_get_size(FileDescriptor fd) throws IOException; private SharedMemory mSharedMemory; @@ -79,6 +82,7 @@ public class MemoryFile { * * @hide */ + @UnsupportedAppUsage void deactivate() { if (mMapping != null) { SharedMemory.unmap(mMapping); @@ -222,6 +226,7 @@ public class MemoryFile { * * @hide */ + @UnsupportedAppUsage public FileDescriptor getFileDescriptor() throws IOException { return mSharedMemory.getFileDescriptor(); } @@ -234,6 +239,7 @@ public class MemoryFile { * * @hide */ + @UnsupportedAppUsage public static int getSize(FileDescriptor fd) throws IOException { return native_get_size(fd); } diff --git a/core/java/android/os/Message.java b/core/java/android/os/Message.java index 47659a295c50..3d77711b7c61 100644 --- a/core/java/android/os/Message.java +++ b/core/java/android/os/Message.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.os.MessageProto; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; @@ -96,17 +97,22 @@ public final class Message implements Parcelable { /** Flags to clear in the copyFrom method */ /*package*/ static final int FLAGS_TO_CLEAR_ON_COPY_FROM = FLAG_IN_USE; + @UnsupportedAppUsage /*package*/ int flags; + @UnsupportedAppUsage /*package*/ long when; /*package*/ Bundle data; + @UnsupportedAppUsage /*package*/ Handler target; + @UnsupportedAppUsage /*package*/ Runnable callback; // sometimes we store linked lists of these things + @UnsupportedAppUsage /*package*/ Message next; @@ -292,6 +298,7 @@ public final class Message implements Parcelable { * Recycles a Message that may be in-use. * Used internally by the MessageQueue and Looper when disposing of queued Messages. */ + @UnsupportedAppUsage void recycleUnchecked() { // Mark the message as in use while it remains in the recycled object pool. // Clear out all other details. @@ -373,6 +380,7 @@ public final class Message implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public Message setCallback(Runnable r) { callback = r; return this; @@ -486,6 +494,7 @@ public final class Message implements Parcelable { return ((flags & FLAG_IN_USE) == FLAG_IN_USE); } + @UnsupportedAppUsage /*package*/ void markInUse() { flags |= FLAG_IN_USE; } @@ -500,6 +509,7 @@ public final class Message implements Parcelable { return toString(SystemClock.uptimeMillis()); } + @UnsupportedAppUsage String toString(long now) { StringBuilder b = new StringBuilder(); b.append("{ when="); diff --git a/core/java/android/os/MessageQueue.java b/core/java/android/os/MessageQueue.java index b1c33c2dac00..183ef8b281ee 100644 --- a/core/java/android/os/MessageQueue.java +++ b/core/java/android/os/MessageQueue.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.UnsupportedAppUsage; import android.os.MessageQueueProto; import android.util.Log; import android.util.Printer; @@ -42,12 +43,16 @@ public final class MessageQueue { private static final boolean DEBUG = false; // True if the message queue can be quit. + @UnsupportedAppUsage private final boolean mQuitAllowed; + @UnsupportedAppUsage @SuppressWarnings("unused") private long mPtr; // used by native code + @UnsupportedAppUsage Message mMessages; + @UnsupportedAppUsage private final ArrayList<IdleHandler> mIdleHandlers = new ArrayList<IdleHandler>(); private SparseArray<FileDescriptorRecord> mFileDescriptorRecords; private IdleHandler[] mPendingIdleHandlers; @@ -58,10 +63,12 @@ public final class MessageQueue { // The next barrier token. // Barriers are indicated by messages with a null target whose arg1 field carries the token. + @UnsupportedAppUsage private int mNextBarrierToken; private native static long nativeInit(); private native static void nativeDestroy(long ptr); + @UnsupportedAppUsage private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native static void nativeWake(long ptr); private native static boolean nativeIsPolling(long ptr); @@ -259,6 +266,7 @@ public final class MessageQueue { } // Called from native code. + @UnsupportedAppUsage private int dispatchEvents(int fd, int events) { // Get the file descriptor record and any state that might change. final FileDescriptorRecord record; @@ -307,6 +315,7 @@ public final class MessageQueue { return newWatchedEvents; } + @UnsupportedAppUsage Message next() { // Return here if the message loop has already quit and been disposed. // This can happen if the application tries to restart a looper after quit @@ -458,6 +467,7 @@ public final class MessageQueue { * * @hide */ + @UnsupportedAppUsage public int postSyncBarrier() { return postSyncBarrier(SystemClock.uptimeMillis()); } @@ -501,6 +511,7 @@ public final class MessageQueue { * * @hide */ + @UnsupportedAppUsage public void removeSyncBarrier(int token) { // Remove a sync barrier token from the queue. // If the queue is no longer stalled by a barrier then wake it. @@ -604,6 +615,7 @@ public final class MessageQueue { } } + @UnsupportedAppUsage boolean hasMessages(Handler h, Runnable r, Object object) { if (h == null) { return false; diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 210404ce4d71..ae743fbda482 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; @@ -196,6 +197,7 @@ public final class Parcel { private static final boolean DEBUG_ARRAY_MAP = false; private static final String TAG = "Parcel"; + @UnsupportedAppUsage @SuppressWarnings({"UnusedDeclaration"}) private long mNativePtr; // used by native code @@ -445,9 +447,11 @@ public final class Parcel { } /** @hide */ + @UnsupportedAppUsage public static native long getGlobalAllocSize(); /** @hide */ + @UnsupportedAppUsage public static native long getGlobalAllocCount(); /** @@ -641,6 +645,7 @@ public final class Parcel { * {@hide} * {@SystemApi} */ + @UnsupportedAppUsage public final void writeBlob(byte[] b) { writeBlob(b, 0, (b != null) ? b.length : 0); } @@ -724,6 +729,7 @@ public final class Parcel { * growing dataCapacity() if needed. * @hide */ + @UnsupportedAppUsage public final void writeCharSequence(CharSequence val) { TextUtils.writeToParcel(val, this, 0); } @@ -882,6 +888,7 @@ public final class Parcel { /** * @hide For testing only. */ + @UnsupportedAppUsage public void writeArrayMap(ArrayMap<String, Object> val) { writeArrayMapInternal(val); } @@ -893,6 +900,7 @@ public final class Parcel { * * @hide */ + @UnsupportedAppUsage public void writeArraySet(@Nullable ArraySet<? extends Object> val) { final int size = (val != null) ? val.size() : -1; writeInt(size); @@ -1454,6 +1462,7 @@ public final class Parcel { * @see #readParcelableList(List, ClassLoader) * @hide */ + @UnsupportedAppUsage public final <T extends Parcelable> void writeParcelableList(List<T> val, int flags) { if (val == null) { writeInt(-1); @@ -1683,6 +1692,7 @@ public final class Parcel { } /** @hide */ + @UnsupportedAppUsage public final void writeParcelableCreator(Parcelable p) { String name = p.getClass().getName(); writeString(name); @@ -1881,6 +1891,7 @@ public final class Parcel { * * @hide */ + @UnsupportedAppUsage public final int readExceptionCode() { int code = readInt(); if (code == EX_HAS_REPLY_HEADER) { @@ -2023,6 +2034,7 @@ public final class Parcel { * Read a CharSequence value from the parcel at the current dataPosition(). * @hide */ + @UnsupportedAppUsage public final CharSequence readCharSequence() { return TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(this); } @@ -2043,6 +2055,7 @@ public final class Parcel { } /** {@hide} */ + @UnsupportedAppUsage public final FileDescriptor readRawFileDescriptor() { return nativeReadFileDescriptor(mNativePtr); } @@ -2225,6 +2238,7 @@ public final class Parcel { * {@hide} * {@SystemApi} */ + @UnsupportedAppUsage public final byte[] readBlob() { return nativeReadBlob(mNativePtr); } @@ -2233,6 +2247,7 @@ public final class Parcel { * Read and return a String[] object from the parcel. * {@hide} */ + @UnsupportedAppUsage public final String[] readStringArray() { String[] array = null; @@ -2519,6 +2534,7 @@ public final class Parcel { * @see #writeParcelableList(List, int) * @hide */ + @UnsupportedAppUsage public final <T extends Parcelable> List<T> readParcelableList(List<T> list, ClassLoader cl) { final int N = readInt(); if (N == -1) { @@ -2761,6 +2777,7 @@ public final class Parcel { } /** @hide */ + @UnsupportedAppUsage @SuppressWarnings("unchecked") public final <T extends Parcelable> T readCreator(Parcelable.Creator<?> creator, ClassLoader loader) { @@ -2773,6 +2790,7 @@ public final class Parcel { } /** @hide */ + @UnsupportedAppUsage public final Parcelable.Creator<?> readParcelableCreator(ClassLoader loader) { String name = readString(); if (name == null) { @@ -3050,6 +3068,7 @@ public final class Parcel { /** * @hide For testing only. */ + @UnsupportedAppUsage public void readArrayMap(ArrayMap outVal, ClassLoader loader) { final int N = readInt(); if (N < 0) { @@ -3065,6 +3084,7 @@ public final class Parcel { * * @hide */ + @UnsupportedAppUsage public @Nullable ArraySet<? extends Object> readArraySet(ClassLoader loader) { final int size = readInt(); if (size < 0) { diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java index 36b99d28f2a5..36ffd7a738c8 100644 --- a/core/java/android/os/ParcelFileDescriptor.java +++ b/core/java/android/os/ParcelFileDescriptor.java @@ -33,6 +33,7 @@ import static android.system.OsConstants.S_ISLNK; import static android.system.OsConstants.S_ISREG; import static android.system.OsConstants.S_IWOTH; +import android.annotation.UnsupportedAppUsage; import android.content.BroadcastReceiver; import android.content.ContentProvider; import android.os.MessageQueue.OnFileDescriptorEventListener; @@ -178,6 +179,7 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { } /** {@hide} */ + @UnsupportedAppUsage public ParcelFileDescriptor(FileDescriptor fd) { this(fd, null); } @@ -577,6 +579,7 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { * @return A ParcelFileDescriptor. * @throws IOException if there is an error while creating the shared memory area. */ + @UnsupportedAppUsage @Deprecated public static ParcelFileDescriptor fromData(byte[] data, String name) throws IOException { if (data == null) return null; @@ -629,6 +632,7 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { * * @hide */ + @UnsupportedAppUsage public static File getFile(FileDescriptor fd) throws IOException { try { final String path = Os.readlink("/proc/self/fd/" + fd.getInt$()); @@ -682,6 +686,7 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { * and I really don't think we want it to be public. * @hide */ + @UnsupportedAppUsage public long seekTo(long pos) throws IOException { if (mWrapped != null) { return mWrapped.seekTo(pos); diff --git a/core/java/android/os/ParcelableParcel.java b/core/java/android/os/ParcelableParcel.java index 5bbe6488d514..61f39686c9e6 100644 --- a/core/java/android/os/ParcelableParcel.java +++ b/core/java/android/os/ParcelableParcel.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.MathUtils; /** @@ -26,6 +27,7 @@ public class ParcelableParcel implements Parcelable { final Parcel mParcel; final ClassLoader mClassLoader; + @UnsupportedAppUsage public ParcelableParcel(ClassLoader loader) { mParcel = Parcel.obtain(); mClassLoader = loader; @@ -44,11 +46,13 @@ public class ParcelableParcel implements Parcelable { mParcel.appendFrom(src, pos, size); } + @UnsupportedAppUsage public Parcel getParcel() { mParcel.setDataPosition(0); return mParcel; } + @UnsupportedAppUsage public ClassLoader getClassLoader() { return mClassLoader; } @@ -64,6 +68,7 @@ public class ParcelableParcel implements Parcelable { dest.appendFrom(mParcel, 0, mParcel.dataSize()); } + @UnsupportedAppUsage public static final Parcelable.ClassLoaderCreator<ParcelableParcel> CREATOR = new Parcelable.ClassLoaderCreator<ParcelableParcel>() { public ParcelableParcel createFromParcel(Parcel in) { diff --git a/core/java/android/os/PerformanceCollector.java b/core/java/android/os/PerformanceCollector.java index be1cf6df6b92..33c86b8b05b9 100644 --- a/core/java/android/os/PerformanceCollector.java +++ b/core/java/android/os/PerformanceCollector.java @@ -17,6 +17,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import java.util.ArrayList; /** @@ -285,6 +286,7 @@ public class PerformanceCollector { private long mCpuTime; private long mExecTime; + @UnsupportedAppUsage public PerformanceCollector() { } @@ -302,6 +304,7 @@ public class PerformanceCollector { * @param label description of code block between beginSnapshot and * endSnapshot, used to label output */ + @UnsupportedAppUsage public void beginSnapshot(String label) { if (mPerfWriter != null) mPerfWriter.writeBeginSnapshot(label); @@ -346,6 +349,7 @@ public class PerformanceCollector { * <li>{@link #METRIC_KEY_OTHER_SHARED_DIRTY other_shared_dirty} * </ul> */ + @UnsupportedAppUsage public Bundle endSnapshot() { endPerformanceSnapshot(); if (mPerfWriter != null) @@ -359,6 +363,7 @@ public class PerformanceCollector { * @param label description of code block between startTiming and * stopTiming, used to label output */ + @UnsupportedAppUsage public void startTiming(String label) { if (mPerfWriter != null) mPerfWriter.writeStartTiming(label); @@ -408,6 +413,7 @@ public class PerformanceCollector { * between calls to startTiming and stopTiming. List of iterations * is keyed by {@link #METRIC_KEY_ITERATIONS iterations}. */ + @UnsupportedAppUsage public Bundle stopTiming(String label) { addIteration(label); if (mPerfWriter != null) diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 9c258487447e..cae54f5c16d3 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -22,6 +22,7 @@ import android.annotation.SdkConstant; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.util.Log; import android.util.proto.ProtoOutputStream; @@ -282,6 +283,7 @@ public final class PowerManager { * Brightness value for fully on. * @hide */ + @UnsupportedAppUsage public static final int BRIGHTNESS_ON = 255; /** @@ -364,6 +366,7 @@ public final class PowerManager { * Go to sleep reason code: Going to sleep due to a screen timeout. * @hide */ + @UnsupportedAppUsage public static final int GO_TO_SLEEP_REASON_TIMEOUT = 2; /** @@ -608,6 +611,7 @@ public final class PowerManager { public @interface LocationPowerSaveMode {} final Context mContext; + @UnsupportedAppUsage final IPowerManager mService; final Handler mHandler; @@ -628,6 +632,7 @@ public final class PowerManager { * this is the minimum value that can be set by the user. * @hide */ + @UnsupportedAppUsage public int getMinimumScreenBrightnessSetting() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_screenBrightnessSettingMinimum); @@ -639,6 +644,7 @@ public final class PowerManager { * this is the maximum value that can be set by the user. * @hide */ + @UnsupportedAppUsage public int getMaximumScreenBrightnessSetting() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_screenBrightnessSettingMaximum); @@ -648,6 +654,7 @@ public final class PowerManager { * Gets the default screen brightness setting. * @hide */ + @UnsupportedAppUsage public int getDefaultScreenBrightnessSetting() { return mContext.getResources().getInteger( com.android.internal.R.integer.config_screenBrightnessSettingDefault); @@ -762,6 +769,7 @@ public final class PowerManager { } /** @hide */ + @UnsupportedAppUsage public static void validateWakeLockParameters(int levelAndFlags, String tag) { switch (levelAndFlags & WAKE_LOCK_LEVEL_MASK) { case PARTIAL_WAKE_LOCK: @@ -894,6 +902,7 @@ public final class PowerManager { * * @hide Requires signature permission. */ + @UnsupportedAppUsage public void goToSleep(long time, int reason, int flags) { try { mService.goToSleep(time, reason, flags); @@ -932,6 +941,7 @@ public final class PowerManager { /** * @hide */ + @UnsupportedAppUsage public void wakeUp(long time, String reason) { try { mService.wakeUp(time, reason, mContext.getOpPackageName()); @@ -1142,6 +1152,7 @@ public final class PowerManager { * * @hide */ + @UnsupportedAppUsage public boolean setPowerSaveMode(boolean mode) { try { return mService.setPowerSaveMode(mode); @@ -1217,6 +1228,7 @@ public final class PowerManager { * restrictions have been lifted. * @hide */ + @UnsupportedAppUsage public boolean isLightDeviceIdleMode() { try { return mService.isLightDeviceIdleMode(); @@ -1339,6 +1351,7 @@ public final class PowerManager { * This broadcast is only sent to registered receivers. * @hide */ + @UnsupportedAppUsage @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED = "android.os.action.LIGHT_DEVICE_IDLE_MODE_CHANGED"; @@ -1365,11 +1378,13 @@ public final class PowerManager { * * @hide */ + @UnsupportedAppUsage @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_POWER_SAVE_MODE_CHANGING = "android.os.action.POWER_SAVE_MODE_CHANGING"; /** @hide */ + @UnsupportedAppUsage public static final String EXTRA_POWER_SAVE_MODE = "mode"; /** @@ -1401,7 +1416,9 @@ public final class PowerManager { * </p> */ public final class WakeLock { + @UnsupportedAppUsage private int mFlags; + @UnsupportedAppUsage private String mTag; private final String mPackageName; private final IBinder mToken; diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 64d14c0b51ca..b986669ed198 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.system.Os; import android.system.OsConstants; import android.webkit.WebViewZygote; @@ -58,30 +59,35 @@ public class Process { * Defines the UID/GID for the log group. * @hide */ + @UnsupportedAppUsage public static final int LOG_UID = 1007; /** * Defines the UID/GID for the WIFI supplicant process. * @hide */ + @UnsupportedAppUsage public static final int WIFI_UID = 1010; /** * Defines the UID/GID for the mediaserver process. * @hide */ + @UnsupportedAppUsage public static final int MEDIA_UID = 1013; /** * Defines the UID/GID for the DRM process. * @hide */ + @UnsupportedAppUsage public static final int DRM_UID = 1019; /** * Defines the UID/GID for the group that controls VPN services. * @hide */ + @UnsupportedAppUsage public static final int VPN_UID = 1016; /** @@ -94,6 +100,7 @@ public class Process { * Defines the UID/GID for the NFC service process. * @hide */ + @UnsupportedAppUsage public static final int NFC_UID = 1027; /** @@ -565,6 +572,7 @@ public class Process { * Returns the identifier of this process' parent. * @hide */ + @UnsupportedAppUsage public static final int myPpid() { return Os.getppid(); } @@ -623,6 +631,7 @@ public class Process { } /** {@hide} */ + @UnsupportedAppUsage public static final boolean isIsolated(int uid) { uid = UserHandle.getAppId(uid); return uid >= FIRST_ISOLATED_UID && uid <= LAST_ISOLATED_UID; @@ -648,6 +657,7 @@ public class Process { * @return the uid of the process, or -1 if the process is not running. * @hide pending API council review */ + @UnsupportedAppUsage public static final int getUidForPid(int pid) { String[] procStatusLabels = { "Uid:" }; long[] procStatusValues = new long[1]; @@ -662,6 +672,7 @@ public class Process { * @return the parent process id of the process, or -1 if the process is not running. * @hide */ + @UnsupportedAppUsage public static final int getParentPid(int pid) { String[] procStatusLabels = { "PPid:" }; long[] procStatusValues = new long[1]; @@ -765,6 +776,7 @@ public class Process { * * Always sets cpusets. */ + @UnsupportedAppUsage public static final native void setProcessGroup(int pid, int group) throws IllegalArgumentException, SecurityException; @@ -906,6 +918,7 @@ public class Process { * * {@hide} */ + @UnsupportedAppUsage public static final native void setArgV0(String text); /** @@ -956,50 +969,67 @@ public class Process { public static final native void sendSignalQuiet(int pid, int signal); /** @hide */ + @UnsupportedAppUsage public static final native long getFreeMemory(); /** @hide */ + @UnsupportedAppUsage public static final native long getTotalMemory(); /** @hide */ + @UnsupportedAppUsage public static final native void readProcLines(String path, String[] reqFields, long[] outSizes); /** @hide */ + @UnsupportedAppUsage public static final native int[] getPids(String path, int[] lastArray); /** @hide */ + @UnsupportedAppUsage public static final int PROC_TERM_MASK = 0xff; /** @hide */ + @UnsupportedAppUsage public static final int PROC_ZERO_TERM = 0; /** @hide */ + @UnsupportedAppUsage public static final int PROC_SPACE_TERM = (int)' '; /** @hide */ + @UnsupportedAppUsage public static final int PROC_TAB_TERM = (int)'\t'; /** @hide */ + @UnsupportedAppUsage public static final int PROC_COMBINE = 0x100; /** @hide */ + @UnsupportedAppUsage public static final int PROC_PARENS = 0x200; /** @hide */ + @UnsupportedAppUsage public static final int PROC_QUOTES = 0x400; /** @hide */ public static final int PROC_CHAR = 0x800; /** @hide */ + @UnsupportedAppUsage public static final int PROC_OUT_STRING = 0x1000; /** @hide */ + @UnsupportedAppUsage public static final int PROC_OUT_LONG = 0x2000; /** @hide */ + @UnsupportedAppUsage public static final int PROC_OUT_FLOAT = 0x4000; /** @hide */ + @UnsupportedAppUsage public static final native boolean readProcFile(String file, int[] format, String[] outStrings, long[] outLongs, float[] outFloats); /** @hide */ + @UnsupportedAppUsage public static final native boolean parseProcLine(byte[] buffer, int startIndex, int endIndex, int[] format, String[] outStrings, long[] outLongs, float[] outFloats); /** @hide */ + @UnsupportedAppUsage public static final native int[] getPidsForCommands(String[] cmds); /** @@ -1010,6 +1040,7 @@ public class Process { * or -1 if the value cannot be determined * @hide */ + @UnsupportedAppUsage public static final native long getPss(int pid); /** diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 3ee54ceebaa9..6a01e56cdf52 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -22,6 +22,7 @@ import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.UnsupportedAppUsage; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ContentResolver; @@ -355,6 +356,7 @@ public class RecoverySystem { * * @return the verification result. */ + @UnsupportedAppUsage private static boolean verifyPackageCompatibility(InputStream inputStream) throws IOException { ArrayList<String> list = new ArrayList<>(); ZipInputStream zis = new ZipInputStream(inputStream); diff --git a/core/java/android/os/Registrant.java b/core/java/android/os/Registrant.java index 705cc5d75b72..8fb123aa3da4 100644 --- a/core/java/android/os/Registrant.java +++ b/core/java/android/os/Registrant.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.os.Handler; import android.os.Message; @@ -24,6 +25,7 @@ import java.lang.ref.WeakReference; /** @hide */ public class Registrant { + @UnsupportedAppUsage public Registrant(Handler h, int what, Object obj) { @@ -32,6 +34,7 @@ public class Registrant userObj = obj; } + @UnsupportedAppUsage public void clear() { @@ -39,12 +42,14 @@ public class Registrant userObj = null; } + @UnsupportedAppUsage public void notifyRegistrant() { internalNotifyRegistrant (null, null); } + @UnsupportedAppUsage public void notifyResult(Object result) { @@ -60,6 +65,7 @@ public class Registrant /** * This makes a copy of @param ar */ + @UnsupportedAppUsage public void notifyRegistrant(AsyncResult ar) { @@ -88,6 +94,7 @@ public class Registrant * NOTE: May return null if weak reference has been collected */ + @UnsupportedAppUsage public Message messageForRegistrant() { diff --git a/core/java/android/os/RegistrantList.java b/core/java/android/os/RegistrantList.java index 9ab61f5954cc..6e562ffc88ea 100644 --- a/core/java/android/os/RegistrantList.java +++ b/core/java/android/os/RegistrantList.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.os.Handler; import java.util.ArrayList; @@ -25,12 +26,14 @@ public class RegistrantList { ArrayList registrants = new ArrayList(); // of Registrant + @UnsupportedAppUsage public synchronized void add(Handler h, int what, Object obj) { add(new Registrant(h, what, obj)); } + @UnsupportedAppUsage public synchronized void addUnique(Handler h, int what, Object obj) { @@ -39,6 +42,7 @@ public class RegistrantList add(new Registrant(h, what, obj)); } + @UnsupportedAppUsage public synchronized void add(Registrant r) { @@ -46,6 +50,7 @@ public class RegistrantList registrants.add(r); } + @UnsupportedAppUsage public synchronized void removeCleared() { @@ -58,6 +63,7 @@ public class RegistrantList } } + @UnsupportedAppUsage public synchronized int size() { @@ -79,6 +85,7 @@ public class RegistrantList } } + @UnsupportedAppUsage public /*synchronized*/ void notifyRegistrants() { @@ -91,6 +98,7 @@ public class RegistrantList internalNotifyRegistrants (null, exception); } + @UnsupportedAppUsage public /*synchronized*/ void notifyResult(Object result) { @@ -98,12 +106,14 @@ public class RegistrantList } + @UnsupportedAppUsage public /*synchronized*/ void notifyRegistrants(AsyncResult ar) { internalNotifyRegistrants(ar.result, ar.exception); } + @UnsupportedAppUsage public synchronized void remove(Handler h) { diff --git a/core/java/android/os/RemoteCallbackList.java b/core/java/android/os/RemoteCallbackList.java index bbb8a7b5d5f6..b13e68df3e7c 100644 --- a/core/java/android/os/RemoteCallbackList.java +++ b/core/java/android/os/RemoteCallbackList.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.ArrayMap; import android.util.Slog; @@ -53,6 +54,7 @@ import java.util.function.Consumer; public class RemoteCallbackList<E extends IInterface> { private static final String TAG = "RemoteCallbackList"; + @UnsupportedAppUsage /*package*/ ArrayMap<IBinder, Callback> mCallbacks = new ArrayMap<IBinder, Callback>(); private Object[] mActiveBroadcast; diff --git a/core/java/android/os/RemoteException.java b/core/java/android/os/RemoteException.java index 4e8b9716e852..2e673a857a93 100644 --- a/core/java/android/os/RemoteException.java +++ b/core/java/android/os/RemoteException.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.AndroidException; /** @@ -54,6 +55,7 @@ public class RemoteException extends AndroidException { * * @hide */ + @UnsupportedAppUsage public RuntimeException rethrowFromSystemServer() { if (this instanceof DeadObjectException) { throw new RuntimeException(new DeadSystemException()); diff --git a/core/java/android/os/SELinux.java b/core/java/android/os/SELinux.java index a96618a92cc6..8ffafe4bc364 100644 --- a/core/java/android/os/SELinux.java +++ b/core/java/android/os/SELinux.java @@ -42,12 +42,14 @@ public class SELinux { * Determine whether SELinux is disabled or enabled. * @return a boolean indicating whether SELinux is enabled. */ + @UnsupportedAppUsage public static final native boolean isSELinuxEnabled(); /** * Determine whether SELinux is permissive or enforcing. * @return a boolean indicating whether SELinux is enforcing. */ + @UnsupportedAppUsage public static final native boolean isSELinuxEnforced(); /** @@ -91,6 +93,7 @@ public class SELinux { * Gets the security context of the current process. * @return a String representing the security context of the current process. */ + @UnsupportedAppUsage public static final native String getContext(); /** @@ -98,6 +101,7 @@ public class SELinux { * @param pid an int representing the process id to check. * @return a String representing the security context of the given pid. */ + @UnsupportedAppUsage public static final native String getPidContext(int pid); /** @@ -108,6 +112,7 @@ public class SELinux { * @param perm The permission name. * @return a boolean indicating whether permission was granted. */ + @UnsupportedAppUsage public static final native boolean checkSELinuxAccess(String scon, String tcon, String tclass, String perm); /** @@ -167,6 +172,7 @@ public class SELinux { * * @return a boolean indicating whether the relabeling succeeded. */ + @UnsupportedAppUsage public static boolean restoreconRecursive(File file) { try { return native_restorecon(file.getCanonicalPath(), SELINUX_ANDROID_RESTORECON_RECURSE); diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java index 165276d5c17e..b2ba92849133 100644 --- a/core/java/android/os/ServiceManager.java +++ b/core/java/android/os/ServiceManager.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.Log; import com.android.internal.annotations.GuardedBy; @@ -30,11 +31,13 @@ public final class ServiceManager { private static final String TAG = "ServiceManager"; private static final Object sLock = new Object(); + @UnsupportedAppUsage private static IServiceManager sServiceManager; /** * Cache for the "well known" services, such as WM and AM. */ + @UnsupportedAppUsage private static HashMap<String, IBinder> sCache = new HashMap<String, IBinder>(); /** @@ -98,6 +101,7 @@ public final class ServiceManager { "getService()", }); + @UnsupportedAppUsage private static IServiceManager getIServiceManager() { if (sServiceManager != null) { return sServiceManager; @@ -115,6 +119,7 @@ public final class ServiceManager { * @param name the name of the service to get * @return a reference to the service, or <code>null</code> if the service doesn't exist */ + @UnsupportedAppUsage public static IBinder getService(String name) { try { IBinder service = sCache.get(name); @@ -151,6 +156,7 @@ public final class ServiceManager { * @param name the name of the new service * @param service the service object */ + @UnsupportedAppUsage public static void addService(String name, IBinder service) { addService(name, service, false, IServiceManager.DUMP_FLAG_PRIORITY_DEFAULT); } @@ -164,6 +170,7 @@ public final class ServiceManager { * @param allowIsolated set to true to allow isolated sandboxed processes * to access this service */ + @UnsupportedAppUsage public static void addService(String name, IBinder service, boolean allowIsolated) { addService(name, service, allowIsolated, IServiceManager.DUMP_FLAG_PRIORITY_DEFAULT); } @@ -178,6 +185,7 @@ public final class ServiceManager { * @param dumpPriority supported dump priority levels as a bitmask * to access this service */ + @UnsupportedAppUsage public static void addService(String name, IBinder service, boolean allowIsolated, int dumpPriority) { try { @@ -191,6 +199,7 @@ public final class ServiceManager { * Retrieve an existing service called @a name from the * service manager. Non-blocking. */ + @UnsupportedAppUsage public static IBinder checkService(String name) { try { IBinder service = sCache.get(name); @@ -210,6 +219,7 @@ public final class ServiceManager { * @return an array of all currently running services, or <code>null</code> in * case of an exception */ + @UnsupportedAppUsage public static String[] listServices() { try { return getIServiceManager().listServices(IServiceManager.DUMP_FLAG_PRIORITY_ALL); diff --git a/core/java/android/os/ServiceManagerNative.java b/core/java/android/os/ServiceManagerNative.java index 589b8c492ab3..b7c026c7f87c 100644 --- a/core/java/android/os/ServiceManagerNative.java +++ b/core/java/android/os/ServiceManagerNative.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import java.util.ArrayList; @@ -30,6 +31,7 @@ public abstract class ServiceManagerNative extends Binder implements IServiceMan * Cast a Binder object into a service manager interface, generating * a proxy if needed. */ + @UnsupportedAppUsage static public IServiceManager asInterface(IBinder obj) { if (obj == null) { @@ -117,6 +119,7 @@ class ServiceManagerProxy implements IServiceManager { return mRemote; } + @UnsupportedAppUsage public IBinder getService(String name) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); @@ -196,5 +199,6 @@ class ServiceManagerProxy implements IServiceManager { data.recycle(); } + @UnsupportedAppUsage private IBinder mRemote; } diff --git a/core/java/android/os/SharedMemory.java b/core/java/android/os/SharedMemory.java index e6c7a1716941..6025c348853c 100644 --- a/core/java/android/os/SharedMemory.java +++ b/core/java/android/os/SharedMemory.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; @@ -156,6 +157,7 @@ public final class SharedMemory implements Parcelable, Closeable { * * @hide Exposed for native ASharedMemory_dupFromJava() */ + @UnsupportedAppUsage public int getFd() { return mFileDescriptor.getInt$(); } diff --git a/core/java/android/os/ShellCommand.java b/core/java/android/os/ShellCommand.java index fa05a5e1b22e..0d61a6044097 100644 --- a/core/java/android/os/ShellCommand.java +++ b/core/java/android/os/ShellCommand.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.Slog; import com.android.internal.util.FastPrintWriter; @@ -300,6 +301,7 @@ public abstract class ShellCommand { } } + @UnsupportedAppUsage public String peekNextArg() { if (mCurArgData != null) { return mCurArgData; diff --git a/core/java/android/os/StatFs.java b/core/java/android/os/StatFs.java index 4e0b23806555..881d0b4d9c8e 100644 --- a/core/java/android/os/StatFs.java +++ b/core/java/android/os/StatFs.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.system.ErrnoException; import android.system.Os; import android.system.StructStatVfs; @@ -25,6 +26,7 @@ import android.system.StructStatVfs; * wrapper for Unix statvfs(). */ public class StatFs { + @UnsupportedAppUsage private StructStatVfs mStat; /** diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index f22455047ae5..b396f757dd42 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -19,6 +19,7 @@ import android.animation.ValueAnimator; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.app.ActivityManager; import android.app.ActivityThread; import android.app.IActivityManager; @@ -448,6 +449,7 @@ public final class StrictMode { /** The default, lax policy which doesn't catch anything. */ public static final ThreadPolicy LAX = new ThreadPolicy(0, null, null); + @UnsupportedAppUsage final int mask; final OnThreadViolationListener mListener; final Executor mCallbackExecutor; @@ -738,6 +740,7 @@ public final class StrictMode { /** The default, lax policy which doesn't catch anything. */ public static final VmPolicy LAX = new VmPolicy(0, EMPTY_CLASS_LIMIT_MAP, null, null); + @UnsupportedAppUsage final int mask; final OnVmViolationListener mListener; final Executor mCallbackExecutor; @@ -783,6 +786,7 @@ public final class StrictMode { * </pre> */ public static final class Builder { + @UnsupportedAppUsage private int mMask; private OnVmViolationListener mListener; private Executor mExecutor; @@ -1173,6 +1177,7 @@ public final class StrictMode { * @return the bitmask of all the DETECT_* and PENALTY_* bits currently enabled * @hide */ + @UnsupportedAppUsage public static int getThreadPolicyMask() { return BlockGuard.getThreadPolicy().getPolicyMask(); } @@ -1372,6 +1377,7 @@ public final class StrictMode { * * @hide */ + @UnsupportedAppUsage public static void enableDeathOnFileUriExposure() { sVmPolicy = new VmPolicy( @@ -1389,6 +1395,7 @@ public final class StrictMode { * * @hide */ + @UnsupportedAppUsage public static void disableDeathOnFileUriExposure() { sVmPolicy = new VmPolicy( @@ -1426,6 +1433,7 @@ public final class StrictMode { } } + @UnsupportedAppUsage private static final ThreadLocal<ArrayList<ViolationInfo>> violationsBeingTimed = new ThreadLocal<ArrayList<ViolationInfo>>() { @Override @@ -1840,6 +1848,7 @@ public final class StrictMode { } /** @hide */ + @UnsupportedAppUsage public static void conditionallyCheckInstanceCounts() { VmPolicy policy = getVmPolicy(); int policySize = policy.classInstanceLimit.size(); @@ -1996,6 +2005,7 @@ public final class StrictMode { } /** @hide */ + @UnsupportedAppUsage public static void onWebViewMethodCalledOnWrongThread(Throwable originStack) { onVmPolicyViolation(new WebViewMethodCalledOnWrongThreadViolation(originStack)); } @@ -2063,6 +2073,7 @@ public final class StrictMode { } // Map from VM violation fingerprint to uptime millis. + @UnsupportedAppUsage private static final HashMap<Integer, Long> sLastVmViolationTime = new HashMap<>(); /** @hide */ @@ -2188,6 +2199,7 @@ public final class StrictMode { * Binder for its current (native) thread-local policy value and synchronize it to libcore's * (Java) thread-local policy value. */ + @UnsupportedAppUsage private static void onBinderStrictModePolicyChange(int newPolicy) { setBlockGuardPolicy(newPolicy); } @@ -2224,6 +2236,7 @@ public final class StrictMode { * * @hide */ + @UnsupportedAppUsage public void finish() { ThreadSpanState state = mContainerState; synchronized (state) { @@ -2295,6 +2308,7 @@ public final class StrictMode { } }; + @UnsupportedAppUsage private static Singleton<IWindowManager> sWindowManager = new Singleton<IWindowManager>() { protected IWindowManager create() { @@ -2315,6 +2329,7 @@ public final class StrictMode { * * @hide */ + @UnsupportedAppUsage public static Span enterCriticalSpan(String name) { if (Build.IS_USER) { return NO_OP_SPAN; @@ -2424,6 +2439,7 @@ public final class StrictMode { } /** @hide */ + @UnsupportedAppUsage public static void incrementExpectedActivityCount(Class klass) { if (klass == null) { return; diff --git a/core/java/android/os/SystemClock.java b/core/java/android/os/SystemClock.java index b254166303bc..e695a1b21593 100644 --- a/core/java/android/os/SystemClock.java +++ b/core/java/android/os/SystemClock.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.NonNull; +import android.annotation.UnsupportedAppUsage; import android.app.IAlarmManager; import android.content.Context; import android.util.Slog; @@ -104,6 +105,7 @@ public final class SystemClock { /** * This class is uninstantiable. */ + @UnsupportedAppUsage private SystemClock() { // This space intentionally left blank. } @@ -241,6 +243,7 @@ public final class SystemClock { * * @hide */ + @UnsupportedAppUsage @CriticalNative public static native long currentThreadTimeMicro(); @@ -251,6 +254,7 @@ public final class SystemClock { * * @hide */ + @UnsupportedAppUsage @CriticalNative public static native long currentTimeMicro(); diff --git a/core/java/android/os/SystemProperties.java b/core/java/android/os/SystemProperties.java index 7d3ba6a3cf26..abb47b4fee0f 100644 --- a/core/java/android/os/SystemProperties.java +++ b/core/java/android/os/SystemProperties.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.util.Log; import android.util.MutableInt; @@ -46,11 +47,13 @@ public class SystemProperties { * uses reflection to read this whenever text is selected (http://b/36095274). * @hide */ + @UnsupportedAppUsage public static final int PROP_NAME_MAX = Integer.MAX_VALUE; /** @hide */ public static final int PROP_VALUE_MAX = 91; + @UnsupportedAppUsage @GuardedBy("sChangeCallbacks") private static final ArrayList<Runnable> sChangeCallbacks = new ArrayList<Runnable>(); @@ -78,9 +81,11 @@ public class SystemProperties { } } + @UnsupportedAppUsage private static native String native_get(String key); private static native String native_get(String key, String def); private static native int native_get_int(String key, int def); + @UnsupportedAppUsage private static native long native_get_long(String key, long def); private static native boolean native_get_boolean(String key, boolean def); private static native void native_set(String key, String def); @@ -174,6 +179,7 @@ public class SystemProperties { * @throws IllegalArgumentException if the {@code val} exceeds 91 characters * @hide */ + @UnsupportedAppUsage public static void set(@NonNull String key, @Nullable String val) { if (val != null && !val.startsWith("ro.") && val.length() > PROP_VALUE_MAX) { throw new IllegalArgumentException("value of system property '" + key @@ -190,6 +196,7 @@ public class SystemProperties { * changes. * @hide */ + @UnsupportedAppUsage public static void addChangeCallback(@NonNull Runnable callback) { synchronized (sChangeCallbacks) { if (sChangeCallbacks.size() == 0) { @@ -222,10 +229,12 @@ public class SystemProperties { * Notifies listeners that a system property has changed * @hide */ + @UnsupportedAppUsage public static void reportSyspropChanged() { native_report_sysprop_change(); } + @UnsupportedAppUsage private SystemProperties() { } } diff --git a/core/java/android/os/SystemService.java b/core/java/android/os/SystemService.java index 41e7546784b2..968c761c5ff0 100644 --- a/core/java/android/os/SystemService.java +++ b/core/java/android/os/SystemService.java @@ -18,6 +18,7 @@ package android.os; import com.google.android.collect.Maps; +import android.annotation.UnsupportedAppUsage; import java.util.HashMap; import java.util.concurrent.TimeoutException; @@ -58,11 +59,13 @@ public class SystemService { } /** Request that the init daemon start a named service. */ + @UnsupportedAppUsage public static void start(String name) { SystemProperties.set("ctl.start", name); } /** Request that the init daemon stop a named service. */ + @UnsupportedAppUsage public static void stop(String name) { SystemProperties.set("ctl.stop", name); } diff --git a/core/java/android/os/SystemVibrator.java b/core/java/android/os/SystemVibrator.java index f776c17e56be..c5c113903c0d 100644 --- a/core/java/android/os/SystemVibrator.java +++ b/core/java/android/os/SystemVibrator.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.media.AudioAttributes; import android.util.Log; @@ -31,10 +32,12 @@ public class SystemVibrator extends Vibrator { private final IVibratorService mService; private final Binder mToken = new Binder(); + @UnsupportedAppUsage public SystemVibrator() { mService = IVibratorService.Stub.asInterface(ServiceManager.getService("vibrator")); } + @UnsupportedAppUsage public SystemVibrator(Context context) { super(context); mService = IVibratorService.Stub.asInterface(ServiceManager.getService("vibrator")); diff --git a/core/java/android/os/Trace.java b/core/java/android/os/Trace.java index 583f060f2e0c..38e6842cf45c 100644 --- a/core/java/android/os/Trace.java +++ b/core/java/android/os/Trace.java @@ -18,6 +18,7 @@ package android.os; import com.android.internal.os.Zygote; +import android.annotation.UnsupportedAppUsage; import dalvik.annotation.optimization.FastNative; /** @@ -50,6 +51,7 @@ public final class Trace { /** @hide */ public static final long TRACE_TAG_INPUT = 1L << 2; /** @hide */ + @UnsupportedAppUsage public static final long TRACE_TAG_VIEW = 1L << 3; /** @hide */ public static final long TRACE_TAG_WEBVIEW = 1L << 4; @@ -68,6 +70,7 @@ public final class Trace { /** @hide */ public static final long TRACE_TAG_HAL = 1L << 11; /** @hide */ + @UnsupportedAppUsage public static final long TRACE_TAG_APP = 1L << 12; /** @hide */ public static final long TRACE_TAG_RESOURCES = 1L << 13; @@ -100,10 +103,12 @@ public final class Trace { private static final int MAX_SECTION_NAME_LEN = 127; // Must be volatile to avoid word tearing. + @UnsupportedAppUsage private static volatile long sEnabledTags = TRACE_TAG_NOT_READY; private static int sZygoteDebugFlags = 0; + @UnsupportedAppUsage private static native long nativeGetEnabledTags(); private static native void nativeSetAppTracingAllowed(boolean allowed); private static native void nativeSetTracingEnabled(boolean allowed); @@ -167,6 +172,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static boolean isTagEnabled(long traceTag) { long tags = sEnabledTags; if (tags == TRACE_TAG_NOT_READY) { @@ -184,6 +190,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void traceCounter(long traceTag, String counterName, int counterValue) { if (isTagEnabled(traceTag)) { nativeTraceCounter(traceTag, counterName, counterValue); @@ -196,6 +203,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void setAppTracingAllowed(boolean allowed) { nativeSetAppTracingAllowed(allowed); @@ -231,6 +239,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void traceBegin(long traceTag, String methodName) { if (isTagEnabled(traceTag)) { nativeTraceBegin(traceTag, methodName); @@ -245,6 +254,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void traceEnd(long traceTag) { if (isTagEnabled(traceTag)) { nativeTraceEnd(traceTag); @@ -264,6 +274,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void asyncTraceBegin(long traceTag, String methodName, int cookie) { if (isTagEnabled(traceTag)) { nativeAsyncTraceBegin(traceTag, methodName, cookie); @@ -281,6 +292,7 @@ public final class Trace { * * @hide */ + @UnsupportedAppUsage public static void asyncTraceEnd(long traceTag, String methodName, int cookie) { if (isTagEnabled(traceTag)) { nativeAsyncTraceEnd(traceTag, methodName, cookie); diff --git a/core/java/android/os/UEventObserver.java b/core/java/android/os/UEventObserver.java index 69a3922585ce..dc98c4267a37 100644 --- a/core/java/android/os/UEventObserver.java +++ b/core/java/android/os/UEventObserver.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.util.Log; import java.util.ArrayList; @@ -49,6 +50,7 @@ public abstract class UEventObserver { private static native void nativeAddMatch(String match); private static native void nativeRemoveMatch(String match); + @UnsupportedAppUsage public UEventObserver() { } @@ -93,6 +95,7 @@ public abstract class UEventObserver { * are expensive to parse. For example, some devices may send one netlink message * for each vsync period. */ + @UnsupportedAppUsage public final void startObserving(String match) { if (match == null || match.isEmpty()) { throw new IllegalArgumentException("match substring must be non-empty"); @@ -107,6 +110,7 @@ public abstract class UEventObserver { * This process's UEvent thread will never call onUEvent() on this * UEventObserver after this call. Repeated calls have no effect. */ + @UnsupportedAppUsage public final void stopObserving() { final UEventThread t = peekThread(); if (t != null) { @@ -118,6 +122,7 @@ public abstract class UEventObserver { * Subclasses of UEventObserver should override this method to handle * UEvents. */ + @UnsupportedAppUsage public abstract void onUEvent(UEvent event); /** @@ -146,10 +151,12 @@ public abstract class UEventObserver { } } + @UnsupportedAppUsage public String get(String key) { return mMap.get(key); } + @UnsupportedAppUsage public String get(String key, String defaultValue) { String result = mMap.get(key); return (result == null ? defaultValue : result); diff --git a/core/java/android/os/UpdateLock.java b/core/java/android/os/UpdateLock.java index 40603268fa26..ea273cea8835 100644 --- a/core/java/android/os/UpdateLock.java +++ b/core/java/android/os/UpdateLock.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.util.Log; @@ -50,6 +51,7 @@ public class UpdateLock { * locker releases theirs. The broadcast is sticky but is sent only to * registered receivers. */ + @UnsupportedAppUsage public static final String UPDATE_LOCK_CHANGED = "android.os.UpdateLock.UPDATE_LOCK_CHANGED"; /** @@ -58,6 +60,7 @@ public class UpdateLock { * update operation. True means that updates are okay right now; false indicates * that perhaps later would be a better time. */ + @UnsupportedAppUsage public static final String NOW_IS_CONVENIENT = "nowisconvenient"; /** @@ -66,6 +69,7 @@ public class UpdateLock { * in the System.currentTimeMillis() time base, which may be non-monotonic especially * around reboots. */ + @UnsupportedAppUsage public static final String TIMESTAMP = "timestamp"; /** @@ -90,6 +94,7 @@ public class UpdateLock { /** * Is this lock currently held? */ + @UnsupportedAppUsage public boolean isHeld() { synchronized (mToken) { return mHeld; @@ -99,6 +104,7 @@ public class UpdateLock { /** * Acquire an update lock. */ + @UnsupportedAppUsage public void acquire() { if (DEBUG) { Log.v(TAG, "acquire() : " + this, new RuntimeException("here")); @@ -125,6 +131,7 @@ public class UpdateLock { /** * Release this update lock. */ + @UnsupportedAppUsage public void release() { if (DEBUG) Log.v(TAG, "release() : " + this, new RuntimeException("here")); checkService(); diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java index de41ce2e08c5..1a2b971c0a6a 100644 --- a/core/java/android/os/UserHandle.java +++ b/core/java/android/os/UserHandle.java @@ -19,6 +19,7 @@ package android.os; import android.annotation.AppIdInt; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import java.io.PrintWriter; @@ -32,9 +33,11 @@ public final class UserHandle implements Parcelable { /** * @hide Range of uids allocated for a user. */ + @UnsupportedAppUsage public static final int PER_USER_RANGE = 100000; /** @hide A user id to indicate all users on the device */ + @UnsupportedAppUsage public static final @UserIdInt int USER_ALL = -1; /** @hide A user handle to indicate all users on the device */ @@ -43,6 +46,7 @@ public final class UserHandle implements Parcelable { public static final UserHandle ALL = new UserHandle(USER_ALL); /** @hide A user id to indicate the currently active user */ + @UnsupportedAppUsage public static final @UserIdInt int USER_CURRENT = -2; /** @hide A user handle to indicate the current user of the device */ @@ -53,14 +57,17 @@ public final class UserHandle implements Parcelable { /** @hide A user id to indicate that we would like to send to the current * user, but if this is calling from a user process then we will send it * to the caller's user instead of failing with a security exception */ + @UnsupportedAppUsage public static final @UserIdInt int USER_CURRENT_OR_SELF = -3; /** @hide A user handle to indicate that we would like to send to the current * user, but if this is calling from a user process then we will send it * to the caller's user instead of failing with a security exception */ + @UnsupportedAppUsage public static final UserHandle CURRENT_OR_SELF = new UserHandle(USER_CURRENT_OR_SELF); /** @hide An undefined user id */ + @UnsupportedAppUsage public static final @UserIdInt int USER_NULL = -10000; /** @@ -68,6 +75,7 @@ public final class UserHandle implements Parcelable { * @deprecated Consider using either {@link UserHandle#USER_SYSTEM} constant or * check the target user's flag {@link android.content.pm.UserInfo#isAdmin}. */ + @UnsupportedAppUsage @Deprecated public static final @UserIdInt int USER_OWNER = 0; @@ -76,13 +84,16 @@ public final class UserHandle implements Parcelable { * @deprecated Consider using either {@link UserHandle#SYSTEM} constant or * check the target user's flag {@link android.content.pm.UserInfo#isAdmin}. */ + @UnsupportedAppUsage @Deprecated public static final UserHandle OWNER = new UserHandle(USER_OWNER); /** @hide A user id constant to indicate the "system" user of the device */ + @UnsupportedAppUsage public static final @UserIdInt int USER_SYSTEM = 0; /** @hide A user serial constant to indicate the "system" user of the device */ + @UnsupportedAppUsage public static final int USER_SERIAL_SYSTEM = 0; /** @hide A user handle to indicate the "system" user of the device */ @@ -94,21 +105,29 @@ public final class UserHandle implements Parcelable { * @hide Enable multi-user related side effects. Set this to false if * there are problems with single user use-cases. */ + @UnsupportedAppUsage public static final boolean MU_ENABLED = true; /** @hide */ + @UnsupportedAppUsage public static final int ERR_GID = -1; /** @hide */ + @UnsupportedAppUsage public static final int AID_ROOT = android.os.Process.ROOT_UID; /** @hide */ + @UnsupportedAppUsage public static final int AID_APP_START = android.os.Process.FIRST_APPLICATION_UID; /** @hide */ + @UnsupportedAppUsage public static final int AID_APP_END = android.os.Process.LAST_APPLICATION_UID; /** @hide */ + @UnsupportedAppUsage public static final int AID_SHARED_GID_START = android.os.Process.FIRST_SHARED_APPLICATION_GID; /** @hide */ + @UnsupportedAppUsage public static final int AID_CACHE_GID_START = android.os.Process.FIRST_APPLICATION_CACHE_GID; + @UnsupportedAppUsage final int mHandle; /** @@ -128,6 +147,7 @@ public final class UserHandle implements Parcelable { * @return whether the appId is the same for both uids * @hide */ + @UnsupportedAppUsage public static boolean isSameApp(int uid1, int uid2) { return getAppId(uid1) == getAppId(uid2); } @@ -136,6 +156,7 @@ public final class UserHandle implements Parcelable { * Whether a UID is an "isolated" UID. * @hide */ + @UnsupportedAppUsage public static boolean isIsolated(int uid) { if (uid > 0) { final int appId = getAppId(uid); @@ -150,6 +171,7 @@ public final class UserHandle implements Parcelable { * "it's system", because of isolated UIDs. Use {@link #isCore} for that. * @hide */ + @UnsupportedAppUsage public static boolean isApp(int uid) { if (uid > 0) { final int appId = getAppId(uid); @@ -185,6 +207,7 @@ public final class UserHandle implements Parcelable { * Returns the user id for a given uid. * @hide */ + @UnsupportedAppUsage public static @UserIdInt int getUserId(int uid) { if (MU_ENABLED) { return uid / PER_USER_RANGE; @@ -194,6 +217,7 @@ public final class UserHandle implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public static @UserIdInt int getCallingUserId() { return getUserId(Binder.getCallingUid()); } @@ -213,6 +237,7 @@ public final class UserHandle implements Parcelable { * Returns the uid that is composed from the userId and the appId. * @hide */ + @UnsupportedAppUsage public static int getUid(@UserIdInt int userId, @AppIdInt int appId) { if (MU_ENABLED) { return userId * PER_USER_RANGE + (appId % PER_USER_RANGE); @@ -259,6 +284,7 @@ public final class UserHandle implements Parcelable { * Returns the app id for a given shared app gid. Returns -1 if the ID is invalid. * @hide */ + @UnsupportedAppUsage public static @AppIdInt int getAppIdFromSharedAppGid(int gid) { final int appId = getAppId(gid) + Process.FIRST_APPLICATION_UID - Process.FIRST_SHARED_APPLICATION_GID; @@ -394,6 +420,7 @@ public final class UserHandle implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public UserHandle(int h) { mHandle = h; } diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index b5918519d872..3edd06b38905 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -25,6 +25,7 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import android.annotation.WorkerThread; import android.app.Activity; @@ -69,6 +70,7 @@ import java.util.List; public class UserManager { private static final String TAG = "UserManager"; + @UnsupportedAppUsage private final IUserManager mService; private final Context mContext; @@ -781,6 +783,7 @@ public class UserManager { * @see #getUserRestrictions() * @hide */ + @UnsupportedAppUsage public static final String DISALLOW_RECORD_AUDIO = "no_record_audio"; /** @@ -1123,6 +1126,7 @@ public class UserManager { } /** @hide */ + @UnsupportedAppUsage public static UserManager get(Context context) { return (UserManager) context.getSystemService(Context.USER_SERVICE); } @@ -1188,6 +1192,7 @@ public class UserManager { * @return the user handle of this process. * @hide */ + @UnsupportedAppUsage public @UserIdInt int getUserHandle() { return UserHandle.myUserId(); } @@ -1259,6 +1264,7 @@ public class UserManager { * Returns whether the caller is running as an admin user. There can be more than one admin * user. */ + @UnsupportedAppUsage public boolean isAdminUser() { return isUserAdmin(UserHandle.myUserId()); } @@ -1268,6 +1274,7 @@ public class UserManager { * Returns whether the provided user is an admin user. There can be more than one admin * user. */ + @UnsupportedAppUsage public boolean isUserAdmin(@UserIdInt int userId) { UserInfo user = getUserInfo(userId); return user != null && user.isAdmin(); @@ -1277,6 +1284,7 @@ public class UserManager { * @hide * @deprecated Use {@link #isRestrictedProfile()} */ + @UnsupportedAppUsage @Deprecated public boolean isLinkedUser() { return isRestrictedProfile(); @@ -1328,6 +1336,7 @@ public class UserManager { * @return whether user is a guest user. * @hide */ + @UnsupportedAppUsage public boolean isGuestUser(int id) { UserInfo user = getUserInfo(id); return user != null && user.isGuest(); @@ -1534,6 +1543,7 @@ public class UserManager { } /** {@hide} */ + @UnsupportedAppUsage public boolean isUserUnlocked(@UserIdInt int userId) { try { return mService.isUserUnlocked(userId); @@ -1562,6 +1572,7 @@ public class UserManager { * * @hide */ + @UnsupportedAppUsage public long getUserStartRealtime() { try { return mService.getUserStartRealtime(); @@ -1576,6 +1587,7 @@ public class UserManager { * * @hide */ + @UnsupportedAppUsage public long getUserUnlockRealtime() { try { return mService.getUserUnlockRealtime(); @@ -1591,6 +1603,7 @@ public class UserManager { * @return the UserInfo object for a specific user. * @hide */ + @UnsupportedAppUsage public UserInfo getUserInfo(@UserIdInt int userHandle) { try { return mService.getUserInfo(userHandle); @@ -1670,6 +1683,7 @@ public class UserManager { * @param restrictionKey the string key representing the restriction * @param userHandle the UserHandle of the user for whom to retrieve the restrictions. */ + @UnsupportedAppUsage public boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) { try { return mService.hasBaseUserRestriction(restrictionKey, userHandle.getIdentifier()); @@ -1752,6 +1766,7 @@ public class UserManager { * @param restrictionKey the string key representing the restriction * @param userHandle the UserHandle of the user for whom to retrieve the restrictions. */ + @UnsupportedAppUsage public boolean hasUserRestriction(String restrictionKey, UserHandle userHandle) { try { return mService.hasUserRestriction(restrictionKey, @@ -1812,6 +1827,7 @@ public class UserManager { * @return the UserInfo object for the created user, or null if the user could not be created. * @hide */ + @UnsupportedAppUsage public UserInfo createUser(String name, int flags) { UserInfo user = null; try { @@ -1860,6 +1876,7 @@ public class UserManager { * could not be created. * @hide */ + @UnsupportedAppUsage public UserInfo createProfileForUser(String name, int flags, @UserIdInt int userHandle) { return createProfileForUser(name, flags, userHandle, null); } @@ -2148,6 +2165,7 @@ public class UserManager { * @return the list of users that exist on the device. * @hide */ + @UnsupportedAppUsage public List<UserInfo> getUsers() { try { return mService.getUsers(false); @@ -2273,6 +2291,7 @@ public class UserManager { * @return the list of profiles. * @hide */ + @UnsupportedAppUsage public List<UserInfo> getProfiles(@UserIdInt int userHandle) { try { return mService.getProfiles(userHandle, false /* enabledOnly */); @@ -2306,6 +2325,7 @@ public class UserManager { * @return the list of profiles. * @hide */ + @UnsupportedAppUsage public List<UserInfo> getEnabledProfiles(@UserIdInt int userHandle) { try { return mService.getProfiles(userHandle, true /* enabledOnly */); @@ -2351,6 +2371,7 @@ public class UserManager { * @see #getProfileIds(int, boolean) * @hide */ + @UnsupportedAppUsage public int[] getProfileIdsWithDisabled(@UserIdInt int userId) { return getProfileIds(userId, false /* enabledOnly */); } @@ -2384,6 +2405,7 @@ public class UserManager { * * @hide */ + @UnsupportedAppUsage public UserInfo getProfileParent(@UserIdInt int userHandle) { try { return mService.getProfileParent(userHandle); @@ -2532,6 +2554,7 @@ public class UserManager { * @return the list of users that were created. * @hide */ + @UnsupportedAppUsage public @NonNull List<UserInfo> getUsers(boolean excludeDying) { try { return mService.getUsers(excludeDying); @@ -2546,6 +2569,7 @@ public class UserManager { * @param userHandle the integer handle of the user, where 0 is the primary user. * @hide */ + @UnsupportedAppUsage public boolean removeUser(@UserIdInt int userHandle) { try { return mService.removeUser(userHandle); @@ -2607,6 +2631,7 @@ public class UserManager { * @see com.android.internal.util.UserIcons#getDefaultUserIcon for a default. * @hide */ + @UnsupportedAppUsage public Bitmap getUserIcon(@UserIdInt int userHandle) { try { ParcelFileDescriptor fd = mService.getUserIcon(userHandle); @@ -2632,6 +2657,7 @@ public class UserManager { * @hide * @return a value greater than or equal to 1 */ + @UnsupportedAppUsage public static int getMaxSupportedUsers() { // Don't allow multiple users on certain builds if (android.os.Build.ID.startsWith("JVP")) return 1; @@ -2681,6 +2707,7 @@ public class UserManager { /** * @hide */ + @UnsupportedAppUsage public static boolean isDeviceInDemoMode(Context context) { return Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 0) > 0; @@ -2693,6 +2720,7 @@ public class UserManager { * @return a serial number associated with that user, or -1 if the userHandle is not valid. * @hide */ + @UnsupportedAppUsage public int getUserSerialNumber(@UserIdInt int userHandle) { try { return mService.getUserSerialNumber(userHandle); @@ -2710,6 +2738,7 @@ public class UserManager { * is not valid. * @hide */ + @UnsupportedAppUsage public @UserIdInt int getUserHandle(int userSerialNumber) { try { return mService.getUserHandle(userSerialNumber); diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java index d2d8f1e159e5..0e92e357884f 100644 --- a/core/java/android/os/Vibrator.java +++ b/core/java/android/os/Vibrator.java @@ -19,6 +19,7 @@ package android.os; import android.annotation.IntDef; import android.annotation.RequiresPermission; import android.annotation.SystemService; +import android.annotation.UnsupportedAppUsage; import android.app.ActivityThread; import android.content.Context; import android.media.AudioAttributes; @@ -82,6 +83,7 @@ public abstract class Vibrator { /** * @hide to prevent subclassing from outside of the framework */ + @UnsupportedAppUsage public Vibrator() { mPackageName = ActivityThread.currentPackageName(); final Context ctx = ActivityThread.currentActivityThread().getSystemContext(); diff --git a/core/java/android/os/VintfObject.java b/core/java/android/os/VintfObject.java index fb22194098b6..c63dc0576298 100644 --- a/core/java/android/os/VintfObject.java +++ b/core/java/android/os/VintfObject.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import java.util.Map; @@ -33,6 +34,7 @@ public class VintfObject { * If any error in getting one of the manifests, it is not included in * the list. */ + @UnsupportedAppUsage public static native String[] report(); /** @@ -66,11 +68,13 @@ public class VintfObject { * ["android.hidl.manager@1.0", "android.hardware.camera.device@1.0", * "android.hardware.camera.device@3.2"]. There are no duplicates. */ + @UnsupportedAppUsage public static native String[] getHalNamesAndVersions(); /** * @return the BOARD_SEPOLICY_VERS build flag available in device manifest. */ + @UnsupportedAppUsage public static native String getSepolicyVersion(); /** @@ -79,6 +83,7 @@ public class VintfObject { * [("27", ["libjpeg.so", "libbase.so"]), * ("28", ["libjpeg.so", "libbase.so"])] */ + @UnsupportedAppUsage public static native Map<String, String[]> getVndkSnapshots(); /** @@ -86,5 +91,6 @@ public class VintfObject { * indicating the FCM version that the device manifest implements. Null if * device manifest doesn't specify this number (for legacy devices). */ + @UnsupportedAppUsage public static native Long getTargetFrameworkCompatibilityMatrixVersion(); } diff --git a/core/java/android/os/VintfRuntimeInfo.java b/core/java/android/os/VintfRuntimeInfo.java index 29698b9fa684..77e61bc0bdd4 100644 --- a/core/java/android/os/VintfRuntimeInfo.java +++ b/core/java/android/os/VintfRuntimeInfo.java @@ -16,6 +16,8 @@ package android.os; +import android.annotation.UnsupportedAppUsage; + /** * Java API for ::android::vintf::RuntimeInfo. Methods return null / 0 on any error. * @@ -32,31 +34,38 @@ public class VintfRuntimeInfo { /** * @return content of /proc/cpuinfo */ + @UnsupportedAppUsage public static native String getCpuInfo(); /** * @return os name extracted from uname() native call */ + @UnsupportedAppUsage public static native String getOsName(); /** * @return node name extracted from uname() native call */ + @UnsupportedAppUsage public static native String getNodeName(); /** * @return os release extracted from uname() native call */ + @UnsupportedAppUsage public static native String getOsRelease(); /** * @return os version extracted from uname() native call */ + @UnsupportedAppUsage public static native String getOsVersion(); /** * @return hardware id extracted from uname() native call */ + @UnsupportedAppUsage public static native String getHardwareId(); /** * @return kernel version extracted from uname() native call. Format is * {@code x.y.z}. */ + @UnsupportedAppUsage public static native String getKernelVersion(); /** * @return libavb version in OS. Format is {@code x.y}. diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java index 327071906e18..43f579d21ce2 100644 --- a/core/java/android/os/WorkSource.java +++ b/core/java/android/os/WorkSource.java @@ -2,6 +2,7 @@ package android.os; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.WorkSourceProto; import android.provider.Settings; @@ -23,8 +24,11 @@ public class WorkSource implements Parcelable { static final String TAG = "WorkSource"; static final boolean DEBUG = false; + @UnsupportedAppUsage int mNum; + @UnsupportedAppUsage int[] mUids; + @UnsupportedAppUsage String[] mNames; private ArrayList<WorkChain> mChains; @@ -83,6 +87,7 @@ public class WorkSource implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public WorkSource(int uid) { mNum = 1; mUids = new int[] { uid, 0 }; @@ -101,6 +106,7 @@ public class WorkSource implements Parcelable { mChains = null; } + @UnsupportedAppUsage WorkSource(Parcel in) { mNum = in.readInt(); mUids = in.createIntArray(); @@ -127,16 +133,19 @@ public class WorkSource implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public int size() { return mNum; } /** @hide */ + @UnsupportedAppUsage public int get(int index) { return mUids[index]; } /** @hide */ + @UnsupportedAppUsage public String getName(int index) { return mNames != null ? mNames[index] : null; } @@ -327,6 +336,7 @@ public class WorkSource implements Parcelable { * @deprecated for internal use only. WorkSources are opaque and no external callers should need * to be aware of internal differences. */ + @UnsupportedAppUsage @Deprecated public WorkSource[] setReturningDiffs(WorkSource other) { synchronized (sTmpWorkSource) { @@ -378,6 +388,7 @@ public class WorkSource implements Parcelable { * @hide * @deprecated meant for unit testing use only. Will be removed in a future API revision. */ + @UnsupportedAppUsage @Deprecated public WorkSource addReturningNewbs(WorkSource other) { synchronized (sTmpWorkSource) { @@ -388,6 +399,7 @@ public class WorkSource implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public boolean add(int uid) { if (mNum <= 0) { mNames = null; @@ -407,6 +419,7 @@ public class WorkSource implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public boolean add(int uid, String name) { if (mNum <= 0) { insert(0, uid, name); diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java index 66ace2d69603..e8f46417dd7d 100644 --- a/core/java/android/os/ZygoteProcess.java +++ b/core/java/android/os/ZygoteProcess.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.UnsupportedAppUsage; import android.net.LocalSocket; import android.net.LocalSocketAddress; import android.util.Log; @@ -37,10 +38,12 @@ import java.util.List; import java.util.UUID; /*package*/ class ZygoteStartFailedEx extends Exception { + @UnsupportedAppUsage ZygoteStartFailedEx(String s) { super(s); } + @UnsupportedAppUsage ZygoteStartFailedEx(Throwable cause) { super(cause); } diff --git a/core/jni/Android.bp b/core/jni/Android.bp index f9813fdb65ab..6024f68a1c3a 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -134,7 +134,6 @@ cc_library_shared { "android/graphics/GIFMovie.cpp", "android/graphics/GraphicBuffer.cpp", "android/graphics/Graphics.cpp", - "android/graphics/HarfBuzzNGFaceSkia.cpp", "android/graphics/ImageDecoder.cpp", "android/graphics/Interpolator.cpp", "android/graphics/MaskFilter.cpp", diff --git a/core/jni/android/graphics/HarfBuzzNGFaceSkia.cpp b/core/jni/android/graphics/HarfBuzzNGFaceSkia.cpp deleted file mode 100644 index dcb787462a13..000000000000 --- a/core/jni/android/graphics/HarfBuzzNGFaceSkia.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 2012 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#define LOG_TAG "TextLayoutCache" - -#include "HarfBuzzNGFaceSkia.h" - -#include <stdlib.h> - -#include <log/log.h> - -#include <SkPaint.h> -#include <SkPath.h> -#include <SkPoint.h> -#include <SkRect.h> -#include <SkTypeface.h> - -#include <hb.h> - -namespace android { - -static const bool kDebugGlyphs = false; - -// Our implementation of the callbacks which Harfbuzz requires by using Skia -// calls. See the Harfbuzz source for references about what these callbacks do. - -struct HarfBuzzFontData { - explicit HarfBuzzFontData(SkPaint* paint) : m_paint(paint) { } - SkPaint* m_paint; -}; - -static void SkiaGetGlyphWidthAndExtents(SkPaint* paint, hb_codepoint_t codepoint, hb_position_t* width, hb_glyph_extents_t* extents) -{ - ALOG_ASSERT(codepoint <= 0xFFFF); - paint->setTextEncoding(SkPaint::kGlyphID_TextEncoding); - - SkScalar skWidth; - SkRect skBounds; - uint16_t glyph = codepoint; - - paint->getTextWidths(&glyph, sizeof(glyph), &skWidth, &skBounds); - if (kDebugGlyphs) { - ALOGD("returned glyph for %i: width = %f", codepoint, skWidth); - } - if (width) - *width = SkScalarToHBFixed(skWidth); - if (extents) { - // Invert y-axis because Skia is y-grows-down but we set up harfbuzz to be y-grows-up. - extents->x_bearing = SkScalarToHBFixed(skBounds.fLeft); - extents->y_bearing = SkScalarToHBFixed(-skBounds.fTop); - extents->width = SkScalarToHBFixed(skBounds.width()); - extents->height = SkScalarToHBFixed(-skBounds.height()); - } -} - -static hb_bool_t harfbuzzGetGlyph(hb_font_t* hbFont, void* fontData, hb_codepoint_t unicode, hb_codepoint_t variationSelector, hb_codepoint_t* glyph, void* userData) -{ - HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData); - SkPaint* paint = hbFontData->m_paint; - paint->setTextEncoding(SkPaint::kUTF32_TextEncoding); - - if (unicode > 0x10ffff) { - unicode = 0xfffd; - } - SkUnichar unichar = unicode; - - uint16_t glyph16; - paint->textToGlyphs(&unichar, sizeof(unichar), &glyph16); - *glyph = glyph16; - return !!*glyph; -} - -static hb_position_t harfbuzzGetGlyphHorizontalAdvance(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, void* userData) -{ - HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData); - hb_position_t advance = 0; - - SkiaGetGlyphWidthAndExtents(hbFontData->m_paint, glyph, &advance, 0); - return advance; -} - -static hb_bool_t harfbuzzGetGlyphHorizontalOrigin(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, hb_position_t* x, hb_position_t* y, void* userData) -{ - // Just return true, following the way that Harfbuzz-FreeType - // implementation does. - return true; -} - -static hb_bool_t harfbuzzGetGlyphExtents(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, hb_glyph_extents_t* extents, void* userData) -{ - HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData); - - SkiaGetGlyphWidthAndExtents(hbFontData->m_paint, glyph, 0, extents); - return true; -} - -static hb_font_funcs_t* harfbuzzSkiaGetFontFuncs() -{ - static hb_font_funcs_t* harfbuzzSkiaFontFuncs = 0; - - // We don't set callback functions which we can't support. - // Harfbuzz will use the fallback implementation if they aren't set. - if (!harfbuzzSkiaFontFuncs) { - harfbuzzSkiaFontFuncs = hb_font_funcs_create(); - hb_font_funcs_set_glyph_func(harfbuzzSkiaFontFuncs, harfbuzzGetGlyph, 0, 0); - hb_font_funcs_set_glyph_h_advance_func(harfbuzzSkiaFontFuncs, harfbuzzGetGlyphHorizontalAdvance, 0, 0); - hb_font_funcs_set_glyph_h_origin_func(harfbuzzSkiaFontFuncs, harfbuzzGetGlyphHorizontalOrigin, 0, 0); - hb_font_funcs_set_glyph_extents_func(harfbuzzSkiaFontFuncs, harfbuzzGetGlyphExtents, 0, 0); - hb_font_funcs_make_immutable(harfbuzzSkiaFontFuncs); - } - return harfbuzzSkiaFontFuncs; -} - -hb_blob_t* harfbuzzSkiaReferenceTable(hb_face_t* face, hb_tag_t tag, void* userData) -{ - SkTypeface* typeface = reinterpret_cast<SkTypeface*>(userData); - - const size_t tableSize = typeface->getTableSize(tag); - if (!tableSize) - return 0; - - char* buffer = reinterpret_cast<char*>(malloc(tableSize)); - if (!buffer) - return 0; - size_t actualSize = typeface->getTableData(tag, 0, tableSize, buffer); - if (tableSize != actualSize) { - free(buffer); - return 0; - } - - return hb_blob_create(const_cast<char*>(buffer), tableSize, - HB_MEMORY_MODE_WRITABLE, buffer, free); -} - -static void destroyHarfBuzzFontData(void* data) { - delete (HarfBuzzFontData*)data; -} - -hb_font_t* createFont(hb_face_t* face, SkPaint* paint, float sizeX, float sizeY) { - hb_font_t* font = hb_font_create(face); - - // Note: this needs to be reworked when we do subpixels - int x_ppem = floor(sizeX + 0.5); - int y_ppem = floor(sizeY + 0.5); - hb_font_set_ppem(font, x_ppem, y_ppem); - hb_font_set_scale(font, HBFloatToFixed(sizeX), HBFloatToFixed(sizeY)); - - HarfBuzzFontData* data = new HarfBuzzFontData(paint); - hb_font_set_funcs(font, harfbuzzSkiaGetFontFuncs(), data, destroyHarfBuzzFontData); - - return font; -} - -} // namespace android diff --git a/core/jni/android/graphics/HarfBuzzNGFaceSkia.h b/core/jni/android/graphics/HarfBuzzNGFaceSkia.h deleted file mode 100644 index 3308d5d51b58..000000000000 --- a/core/jni/android/graphics/HarfBuzzNGFaceSkia.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2011, The Android Open Source Project - * Copyright 2011, Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _ANDROID_GRAPHICS_HARF_BUZZ_NG_FACE_SKIA_H_ -#define _ANDROID_GRAPHICS_HARF_BUZZ_NG_FACE_SKIA_H_ - -#include <SkScalar.h> -#include <SkPaint.h> - -#include <hb.h> - -namespace android { - -static inline float -HBFixedToFloat (hb_position_t v) -{ - return scalbnf (v, -8); -} - -static inline hb_position_t -HBFloatToFixed (float v) -{ - return scalbnf (v, +8); -} - -static inline hb_position_t SkScalarToHBFixed(SkScalar value) { - return HBFloatToFixed(SkScalarToFloat(value)); -} - -hb_blob_t* harfbuzzSkiaReferenceTable(hb_face_t* face, hb_tag_t tag, void* userData); - -hb_font_t* createFont(hb_face_t* face, SkPaint* paint, float sizeX, float sizeY); - -} // namespace android - -#endif // _ANDROID_GRAPHICS_HARF_BUZZ_NG_FACE_SKIA_H_ diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreSpi.java index 105af6e829f8..51c42520ccc9 100644 --- a/keystore/java/android/security/keystore/AndroidKeyStoreSpi.java +++ b/keystore/java/android/security/keystore/AndroidKeyStoreSpi.java @@ -16,7 +16,6 @@ package android.security.keystore; -import libcore.util.EmptyArray; import android.security.Credentials; import android.security.GateKeeper; import android.security.KeyStore; @@ -31,6 +30,8 @@ import android.security.keystore.SecureKeyImportUnavailableException; import android.security.keystore.WrappedKeyEntry; import android.util.Log; +import libcore.util.EmptyArray; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -123,7 +124,14 @@ public class AndroidKeyStoreSpi extends KeyStoreSpi { final Certificate[] caList; - final byte[] caBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias, mUid); + // Suppress the key not found warning for this call. It seems that this error is exclusively + // being thrown when there is a self signed certificate chain, so when the keystore service + // attempts to query for the CA details, it obviously fails to find them and returns a + // key not found exception. This is WAI, and throwing a stack trace here can be very + // misleading since the trace is not clear. + final byte[] caBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias, + mUid, + true /* suppressKeyNotFoundWarning */); if (caBytes != null) { final Collection<X509Certificate> caChain = toCertificates(caBytes); diff --git a/media/OWNERS b/media/OWNERS index eb26367d3d29..72c89529974b 100644 --- a/media/OWNERS +++ b/media/OWNERS @@ -3,7 +3,9 @@ dwkang@google.com elaurent@google.com etalvala@google.com gkasten@google.com +hdmoon@google.com hunga@google.com +insun@google.com jaewan@google.com jmtrivi@google.com jsharkey@android.com diff --git a/media/java/android/media/MediaHTTPConnection.java b/media/java/android/media/MediaHTTPConnection.java index d72476269e18..3838a99969f0 100644 --- a/media/java/android/media/MediaHTTPConnection.java +++ b/media/java/android/media/MediaHTTPConnection.java @@ -37,6 +37,7 @@ import java.net.URL; import java.net.UnknownServiceException; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; /** @hide */ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @@ -46,27 +47,23 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { // connection timeout - 30 sec private static final int CONNECT_TIMEOUT_MS = 30 * 1000; - @UnsupportedAppUsage - private long mCurrentOffset = -1; - @UnsupportedAppUsage - private URL mURL = null; - @UnsupportedAppUsage - private Map<String, String> mHeaders = null; - @UnsupportedAppUsage - private HttpURLConnection mConnection = null; - @UnsupportedAppUsage - private long mTotalSize = -1; - private InputStream mInputStream = null; - - @UnsupportedAppUsage - private boolean mAllowCrossDomainRedirect = true; - @UnsupportedAppUsage - private boolean mAllowCrossProtocolRedirect = true; - // from com.squareup.okhttp.internal.http private final static int HTTP_TEMP_REDIRECT = 307; private final static int MAX_REDIRECTS = 20; + class ConnectionState { + public HttpURLConnection mConnection = null; + public InputStream mInputStream = null; + public long mCurrentOffset = -1; + public Map<String, String> mHeaders = null; + public URL mURL = null; + public long mTotalSize = -1; + public boolean mAllowCrossDomainRedirect = true; + public boolean mAllowCrossProtocolRedirect = true; + } + private final AtomicReference<ConnectionState> mConnectionStateHolder = + new AtomicReference<ConnectionState>(); + @UnsupportedAppUsage public MediaHTTPConnection() { CookieHandler cookieHandler = CookieHandler.getDefault(); @@ -84,13 +81,23 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { Log.d(TAG, "connect: uri=" + uri + ", headers=" + headers); } + ConnectionState connectionState = mConnectionStateHolder.get(); + synchronized (this) { + if (connectionState == null) { + connectionState = new ConnectionState(); + mConnectionStateHolder.set(connectionState); + } + } + try { disconnect(); - mAllowCrossDomainRedirect = true; - mURL = new URL(uri); - mHeaders = convertHeaderStringToMap(headers); + connectionState.mAllowCrossDomainRedirect = true; + connectionState.mURL = new URL(uri); + connectionState.mHeaders = convertHeaderStringToMap(headers, connectionState); } catch (MalformedURLException e) { return null; + } finally { + mConnectionStateHolder.set(connectionState); } return native_getIMemory(); @@ -106,18 +113,21 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } /* returns true iff header is internal */ - private boolean filterOutInternalHeaders(String key, String val) { + private boolean filterOutInternalHeaders( + String key, String val, ConnectionState connectionState) { if ("android-allow-cross-domain-redirect".equalsIgnoreCase(key)) { - mAllowCrossDomainRedirect = parseBoolean(val); + connectionState.mAllowCrossDomainRedirect = parseBoolean(val); // cross-protocol redirects are also controlled by this flag - mAllowCrossProtocolRedirect = mAllowCrossDomainRedirect; + connectionState.mAllowCrossProtocolRedirect = + connectionState.mAllowCrossDomainRedirect; } else { return false; } return true; } - private Map<String, String> convertHeaderStringToMap(String headers) { + private Map<String, String> convertHeaderStringToMap(String headers, + ConnectionState connectionState) { HashMap<String, String> map = new HashMap<String, String>(); String[] pairs = headers.split("\r\n"); @@ -127,7 +137,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { String key = pair.substring(0, colonPos); String val = pair.substring(colonPos + 1); - if (!filterOutInternalHeaders(key, val)) { + if (!filterOutInternalHeaders(key, val, connectionState)) { map.put(key, val); } } @@ -139,25 +149,28 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @Override @UnsupportedAppUsage public void disconnect() { - teardownConnection(); - mHeaders = null; - mURL = null; + ConnectionState connectionState = mConnectionStateHolder.getAndSet(null); + if (connectionState != null) { + teardownConnection(connectionState); + connectionState.mHeaders = null; + connectionState.mURL = null; + } } - private void teardownConnection() { - if (mConnection != null) { - if (mInputStream != null) { + private void teardownConnection(ConnectionState connectionState) { + if (connectionState.mConnection != null) { + if (connectionState.mInputStream != null) { try { - mInputStream.close(); + connectionState.mInputStream.close(); } catch (IOException e) { } - mInputStream = null; + connectionState.mInputStream = null; } - mConnection.disconnect(); - mConnection = null; + connectionState.mConnection.disconnect(); + connectionState.mConnection = null; - mCurrentOffset = -1; + connectionState.mCurrentOffset = -1; } } @@ -184,42 +197,44 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { return false; } - private void seekTo(long offset) throws IOException { - teardownConnection(); + private void seekTo(long offset, ConnectionState connectionState) throws IOException { + teardownConnection(connectionState); try { int response; int redirectCount = 0; - URL url = mURL; + URL url = connectionState.mURL; // do not use any proxy for localhost (127.0.0.1) boolean noProxy = isLocalHost(url); while (true) { if (noProxy) { - mConnection = (HttpURLConnection)url.openConnection(Proxy.NO_PROXY); + connectionState.mConnection = + (HttpURLConnection) url.openConnection(Proxy.NO_PROXY); } else { - mConnection = (HttpURLConnection)url.openConnection(); + connectionState.mConnection = (HttpURLConnection) url.openConnection(); } - mConnection.setConnectTimeout(CONNECT_TIMEOUT_MS); + connectionState.mConnection.setConnectTimeout(CONNECT_TIMEOUT_MS); // handle redirects ourselves if we do not allow cross-domain redirect - mConnection.setInstanceFollowRedirects(mAllowCrossDomainRedirect); + connectionState.mConnection.setInstanceFollowRedirects( + connectionState.mAllowCrossDomainRedirect); - if (mHeaders != null) { - for (Map.Entry<String, String> entry : mHeaders.entrySet()) { - mConnection.setRequestProperty( + if (connectionState.mHeaders != null) { + for (Map.Entry<String, String> entry : connectionState.mHeaders.entrySet()) { + connectionState.mConnection.setRequestProperty( entry.getKey(), entry.getValue()); } } if (offset > 0) { - mConnection.setRequestProperty( + connectionState.mConnection.setRequestProperty( "Range", "bytes=" + offset + "-"); } - response = mConnection.getResponseCode(); + response = connectionState.mConnection.getResponseCode(); if (response != HttpURLConnection.HTTP_MULT_CHOICE && response != HttpURLConnection.HTTP_MOVED_PERM && response != HttpURLConnection.HTTP_MOVED_TEMP && @@ -233,7 +248,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { throw new NoRouteToHostException("Too many redirects: " + redirectCount); } - String method = mConnection.getRequestMethod(); + String method = connectionState.mConnection.getRequestMethod(); if (response == HTTP_TEMP_REDIRECT && !method.equals("GET") && !method.equals("HEAD")) { // "If the 307 status code is received in response to a @@ -241,34 +256,35 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { // automatically redirect the request" throw new NoRouteToHostException("Invalid redirect"); } - String location = mConnection.getHeaderField("Location"); + String location = connectionState.mConnection.getHeaderField("Location"); if (location == null) { throw new NoRouteToHostException("Invalid redirect"); } - url = new URL(mURL /* TRICKY: don't use url! */, location); + url = new URL(connectionState.mURL /* TRICKY: don't use url! */, location); if (!url.getProtocol().equals("https") && !url.getProtocol().equals("http")) { throw new NoRouteToHostException("Unsupported protocol redirect"); } - boolean sameProtocol = mURL.getProtocol().equals(url.getProtocol()); - if (!mAllowCrossProtocolRedirect && !sameProtocol) { + boolean sameProtocol = + connectionState.mURL.getProtocol().equals(url.getProtocol()); + if (!connectionState.mAllowCrossProtocolRedirect && !sameProtocol) { throw new NoRouteToHostException("Cross-protocol redirects are disallowed"); } - boolean sameHost = mURL.getHost().equals(url.getHost()); - if (!mAllowCrossDomainRedirect && !sameHost) { + boolean sameHost = connectionState.mURL.getHost().equals(url.getHost()); + if (!connectionState.mAllowCrossDomainRedirect && !sameHost) { throw new NoRouteToHostException("Cross-domain redirects are disallowed"); } if (response != HTTP_TEMP_REDIRECT) { // update effective URL, unless it is a Temporary Redirect - mURL = url; + connectionState.mURL = url; } } - if (mAllowCrossDomainRedirect) { + if (connectionState.mAllowCrossDomainRedirect) { // remember the current, potentially redirected URL if redirects // were handled by HttpURLConnection - mURL = mConnection.getURL(); + connectionState.mURL = connectionState.mConnection.getURL(); } if (response == HttpURLConnection.HTTP_PARTIAL) { @@ -276,10 +292,9 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { // because what we want is not just the length of the range // returned but the size of the full content if available. - String contentRange = - mConnection.getHeaderField("Content-Range"); + String contentRange = connectionState.mConnection.getHeaderField("Content-Range"); - mTotalSize = -1; + connectionState.mTotalSize = -1; if (contentRange != null) { // format is "bytes xxx-yyy/zzz // where "zzz" is the total number of bytes of the @@ -291,7 +306,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { contentRange.substring(lastSlashPos + 1); try { - mTotalSize = Long.parseLong(total); + connectionState.mTotalSize = Long.parseLong(total); } catch (NumberFormatException e) { } } @@ -299,7 +314,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } else if (response != HttpURLConnection.HTTP_OK) { throw new IOException(); } else { - mTotalSize = mConnection.getContentLength(); + connectionState.mTotalSize = connectionState.mConnection.getContentLength(); } if (offset > 0 && response != HttpURLConnection.HTTP_PARTIAL) { @@ -308,14 +323,14 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { throw new ProtocolException(); } - mInputStream = - new BufferedInputStream(mConnection.getInputStream()); + connectionState.mInputStream = + new BufferedInputStream(connectionState.mConnection.getInputStream()); - mCurrentOffset = offset; + connectionState.mCurrentOffset = offset; } catch (IOException e) { - mTotalSize = -1; - teardownConnection(); - mCurrentOffset = -1; + connectionState.mTotalSize = -1; + teardownConnection(connectionState); + connectionState.mCurrentOffset = -1; throw e; } @@ -324,10 +339,14 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @Override @UnsupportedAppUsage public int readAt(long offset, int size) { - return native_readAt(offset, size); + ConnectionState connectionState = mConnectionStateHolder.get(); + if (connectionState != null) { + return native_readAt(offset, size, connectionState); + } + return -1; } - private int readAt(long offset, byte[] data, int size) { + private int readAt(long offset, byte[] data, int size, ConnectionState connectionState) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); @@ -335,12 +354,12 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { try { synchronized(this) { - if (offset != mCurrentOffset) { - seekTo(offset); + if (offset != connectionState.mCurrentOffset) { + seekTo(offset, connectionState); } } - int n = mInputStream.read(data, 0, size); + int n = connectionState.mInputStream.read(data, 0, size); if (n == -1) { // InputStream signals EOS using a -1 result, our semantics @@ -348,7 +367,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { n = 0; } - mCurrentOffset += n; + connectionState.mCurrentOffset += n; if (VERBOSE) { Log.d(TAG, "readAt " + offset + " / " + size + " => " + n); @@ -380,35 +399,47 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @Override public synchronized long getSize() { - if (mConnection == null) { - try { - seekTo(0); - } catch (IOException e) { - return -1; + ConnectionState connectionState = mConnectionStateHolder.get(); + if (connectionState != null) { + if (connectionState.mConnection == null) { + try { + seekTo(0, connectionState); + } catch (IOException e) { + return -1; + } } + return connectionState.mTotalSize; } - return mTotalSize; + return -1; } @Override @UnsupportedAppUsage public synchronized String getMIMEType() { - if (mConnection == null) { - try { - seekTo(0); - } catch (IOException e) { - return "application/octet-stream"; + ConnectionState connectionState = mConnectionStateHolder.get(); + if (connectionState != null) { + if (connectionState.mConnection == null) { + try { + seekTo(0, connectionState); + } catch (IOException e) { + return "application/octet-stream"; + } } + return connectionState.mConnection.getContentType(); } - return mConnection.getContentType(); + return null; } @Override @UnsupportedAppUsage public String getUri() { - return mURL.toString(); + ConnectionState connectionState = mConnectionStateHolder.get(); + if (connectionState != null) { + return connectionState.mURL.toString(); + } + return null; } @Override @@ -421,7 +452,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { private native final void native_finalize(); private native final IBinder native_getIMemory(); - private native final int native_readAt(long offset, int size); + private native int native_readAt(long offset, int size, ConnectionState connectionState); static { System.loadLibrary("media_jni"); diff --git a/media/jni/android_media_MediaHTTPConnection.cpp b/media/jni/android_media_MediaHTTPConnection.cpp index 365e045689f0..d28c15c98d16 100644 --- a/media/jni/android_media_MediaHTTPConnection.cpp +++ b/media/jni/android_media_MediaHTTPConnection.cpp @@ -109,7 +109,8 @@ static void android_media_MediaHTTPConnection_native_init(JNIEnv *env) { gFields.context = env->GetFieldID(clazz.get(), "mNativeContext", "J"); CHECK(gFields.context != NULL); - gFields.readAtMethodID = env->GetMethodID(clazz.get(), "readAt", "(J[BI)I"); + gFields.readAtMethodID = env->GetMethodID( + clazz.get(), "readAt", "(J[BILandroid/media/MediaHTTPConnection$ConnectionState;)I"); } static void android_media_MediaHTTPConnection_native_setup( @@ -132,7 +133,7 @@ static jobject android_media_MediaHTTPConnection_native_getIMemory( } static jint android_media_MediaHTTPConnection_native_readAt( - JNIEnv *env, jobject thiz, jlong offset, jint size) { + JNIEnv *env, jobject thiz, jlong offset, jint size, jobject connectionState) { sp<JMediaHTTPConnection> conn = getObject(env, thiz); if (size > JMediaHTTPConnection::kBufferSize) { size = JMediaHTTPConnection::kBufferSize; @@ -141,7 +142,7 @@ static jint android_media_MediaHTTPConnection_native_readAt( jbyteArray byteArrayObj = conn->getByteArrayObj(); jint n = env->CallIntMethod( - thiz, gFields.readAtMethodID, offset, byteArrayObj, size); + thiz, gFields.readAtMethodID, offset, byteArrayObj, size, connectionState); if (n > 0) { env->GetByteArrayRegion( @@ -158,7 +159,7 @@ static const JNINativeMethod gMethods[] = { { "native_getIMemory", "()Landroid/os/IBinder;", (void *)android_media_MediaHTTPConnection_native_getIMemory }, - { "native_readAt", "(JI)I", + { "native_readAt", "(JILandroid/media/MediaHTTPConnection$ConnectionState;)I", (void *)android_media_MediaHTTPConnection_native_readAt }, { "native_init", "()V", diff --git a/packages/SystemUI/res/drawable/ic_5g_mobiledata.xml b/packages/SystemUI/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000000..2aa6e57f6f82 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,27 @@ +<!-- + Copyright (C) 2018 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="14dp" + android:height="17dp" + android:viewportWidth="14" + android:viewportHeight="17"> + <path + android:fillColor="#FF000000" + android:pathData="M13.9,12.24l-0.22,0.27c-0.63,0.73 -1.55,1.1 -2.76,1.1c-1.08,0 -1.92,-0.36 -2.53,-1.07s-0.93,-1.72 -0.94,-3.02V7.56c0,-1.39 0.28,-2.44 0.84,-3.13s1.39,-1.04 2.51,-1.04c0.95,0 1.69,0.26 2.23,0.79s0.83,1.28 0.89,2.26h-1.25c-0.05,-0.62 -0.22,-1.1 -0.52,-1.45s-0.74,-0.52 -1.34,-0.52c-0.72,0 -1.24,0.23 -1.57,0.7S8.72,6.37 8.71,7.4v2.03c0,1 0.19,1.77 0.57,2.31c0.38,0.54 0.93,0.8 1.65,0.8c0.67,0 1.19,-0.16 1.54,-0.49l0.18,-0.17V9.59h-1.82V8.52h3.07V12.24z"/> + <path + android:fillColor="#FF000000" + android:pathData="M1.15,8.47l0.43,-4.96h4.33v1.17H2.6L2.37,7.39C2.78,7.1 3.22,6.96 3.69,6.96c0.77,0 1.38,0.3 1.83,0.9s0.66,1.41 0.66,2.43c0,1.03 -0.24,1.84 -0.72,2.43S4.32,13.6 3.48,13.6c-0.75,0 -1.36,-0.24 -1.83,-0.73s-0.74,-1.16 -0.81,-2.02h1.13c0.07,0.57 0.23,1 0.49,1.29c0.26,0.29 0.59,0.43 1.01,0.43c0.47,0 0.84,-0.2 1.1,-0.61c0.26,-0.41 0.4,-0.96 0.4,-1.65c0,-0.65 -0.14,-1.18 -0.43,-1.59S3.88,8.09 3.4,8.09c-0.4,0 -0.72,0.1 -0.96,0.31L2.11,8.73L1.15,8.47z"/> +</vector> diff --git a/packages/SystemUI/res/drawable/ic_5g_plus_mobiledata.xml b/packages/SystemUI/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000000..10bbcc7b3737 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,33 @@ +<!-- + Copyright (C) 2018 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:viewportWidth="22" + android:viewportHeight="17" + android:width="22dp" + android:height="17dp"> + <group> + <group> + <path android:fillColor="#FF000000" + android:pathData="M1.03 8.47l0.43-4.96h4.33v1.17H2.48L2.25 7.39C2.66 7.1 3.1 6.96 3.57 6.96c0.77 0 1.38 0.3 1.83 0.9 s0.66 1.41 0.66 2.43c0 1.03-0.24 1.84-0.72 2.43S4.2 13.6 3.36 13.6c-0.75 0-1.36-0.24-1.83-0.73s-0.74-1.16-0.81-2.02h1.13 c0.07 0.57 0.23 1 0.49 1.29s0.59 0.43 1.01 0.43c0.47 0 0.84-0.2 1.1-0.61c0.26-0.41 0.4-0.96 0.4-1.65 c0-0.65-0.14-1.18-0.43-1.59S3.76 8.09 3.28 8.09c-0.4 0-0.72 0.1-0.96 0.31L1.99 8.73L1.03 8.47z"/> + </group> + <group> + <path android:fillColor="#FF000000" + android:pathData="M 18.93,5.74 L 18.93,3.39 L 17.63,3.39 L 17.63,5.74 L 15.28,5.74 L 15.28,7.04 L 17.63,7.04 L 17.63,9.39 L 18.93,9.39 L 18.93,7.04 L 21.28,7.04 L 21.28,5.74 z"/> + </group> + <path android:fillColor="#FF000000" + android:pathData="M13.78 12.24l-0.22 0.27c-0.63 0.73-1.55 1.1-2.76 1.1c-1.08 0-1.92-0.36-2.53-1.07s-0.93-1.72-0.94-3.02V7.56 c0-1.39 0.28-2.44 0.84-3.13s1.39-1.04 2.51-1.04c0.95 0 1.69 0.26 2.23 0.79s0.83 1.28 0.89 2.26h-1.25 c-0.05-0.62-0.22-1.1-0.52-1.45s-0.74-0.52-1.34-0.52c-0.72 0-1.24 0.23-1.57 0.7S8.6 6.37 8.59 7.4v2.03c0 1 0.19 1.77 0.57 2.31 c0.38 0.54 0.93 0.8 1.65 0.8c0.67 0 1.19-0.16 1.54-0.49l0.18-0.17V9.59h-1.82V8.52h3.07V12.24z"/> + </group> +</vector> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 997b50b8a5a2..4437f49fd335 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -390,6 +390,12 @@ <!-- Content description of the data connection type LTE+. [CHAR LIMIT=NONE] --> <string name="data_connection_lte_plus">LTE+</string> + <!-- Content description of the data connection type 5G. [CHAR LIMIT=NONE] --> + <string name="data_connection_5g" translate="false">5G</string> + + <!-- Content description of the data connection type 5G+. [CHAR LIMIT=NONE] --> + <string name="data_connection_5g_plus" translate="false">5G+</string> + <!-- Content description of the data connection type CDMA. [CHAR LIMIT=NONE] --> <string name="data_connection_cdma">1X</string> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index a0466754eb96..9734918f624c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -22,6 +22,7 @@ import android.net.NetworkCapabilities; import android.os.Handler; import android.os.Looper; import android.provider.Settings.Global; +import android.telephony.NetworkRegistrationState; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SignalStrength; @@ -457,7 +458,13 @@ public class MobileSignalController extends SignalController< mCurrentState.level = mSignalStrength.getLevel(); } } - if (mNetworkToIconLookup.indexOfKey(mDataNetType) >= 0) { + + // When the device is camped on a 5G Non-Standalone network, the data network type is still + // LTE. In this case, we first check which 5G icon should be shown. + MobileIconGroup nr5GIconGroup = getNr5GIconGroup(); + if (nr5GIconGroup != null) { + mCurrentState.iconGroup = nr5GIconGroup; + } else if (mNetworkToIconLookup.indexOfKey(mDataNetType) >= 0) { mCurrentState.iconGroup = mNetworkToIconLookup.get(mDataNetType); } else { mCurrentState.iconGroup = mDefaultIcons; @@ -484,6 +491,36 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } + private MobileIconGroup getNr5GIconGroup() { + if (mServiceState == null) return null; + + int nrStatus = mServiceState.getNrStatus(); + if (nrStatus == NetworkRegistrationState.NR_STATUS_CONNECTED) { + // Check if the NR 5G is using millimeter wave and the icon is config. + if (mServiceState.getNrFrequencyRange() == ServiceState.FREQUENCY_RANGE_MMWAVE) { + if (mConfig.nr5GIconMap.containsKey(Config.NR_CONNECTED_MMWAVE)) { + return mConfig.nr5GIconMap.get(Config.NR_CONNECTED_MMWAVE); + } + } + + // If NR 5G is not using millimeter wave or there is no icon for millimeter wave, we + // check the normal 5G icon. + if (mConfig.nr5GIconMap.containsKey(Config.NR_CONNECTED)) { + return mConfig.nr5GIconMap.get(Config.NR_CONNECTED); + } + } else if (nrStatus == NetworkRegistrationState.NR_STATUS_NOT_RESTRICTED) { + if (mConfig.nr5GIconMap.containsKey(Config.NR_NOT_RESTRICTED)) { + return mConfig.nr5GIconMap.get(Config.NR_NOT_RESTRICTED); + } + } else if (nrStatus == NetworkRegistrationState.NR_STATUS_RESTRICTED) { + if (mConfig.nr5GIconMap.containsKey(Config.NR_RESTRICTED)) { + return mConfig.nr5GIconMap.get(Config.NR_RESTRICTED); + } + } + + return null; + } + private boolean isDataDisabled() { return !mPhone.getDataEnabled(mSubscriptionInfo.getSubscriptionId()); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index 326147df184d..b83fa6252a27 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.policy; +import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -54,18 +56,18 @@ import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; +import com.android.systemui.statusbar.policy.MobileSignalController.MobileIconGroup; -import com.android.systemui.statusbar.policy.MobileSignalController.MobileState; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.BitSet; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.List; import java.util.Locale; - -import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; +import java.util.Map; /** Platform implementation of the network controller. **/ public class NetworkControllerImpl extends BroadcastReceiver @@ -1026,6 +1028,13 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting static class Config { + static final int NR_CONNECTED_MMWAVE = 1; + static final int NR_CONNECTED = 2; + static final int NR_NOT_RESTRICTED = 3; + static final int NR_RESTRICTED = 4; + + Map<Integer, MobileIconGroup> nr5GIconMap = new HashMap<>(); + boolean showAtLeast3G = false; boolean alwaysShowCdmaRssi = false; boolean show4gForLte = false; @@ -1034,6 +1043,19 @@ public class NetworkControllerImpl extends BroadcastReceiver boolean inflateSignalStrengths = false; boolean alwaysShowDataRatIcon = false; + /** + * Mapping from NR 5G status string to an integer. The NR 5G status string should match + * those in carrier config. + */ + private static final Map<String, Integer> NR_STATUS_STRING_TO_INDEX; + static { + NR_STATUS_STRING_TO_INDEX = new HashMap<>(4); + NR_STATUS_STRING_TO_INDEX.put("connected_mmwave", NR_CONNECTED_MMWAVE); + NR_STATUS_STRING_TO_INDEX.put("connected", NR_CONNECTED); + NR_STATUS_STRING_TO_INDEX.put("not_restricted", NR_NOT_RESTRICTED); + NR_STATUS_STRING_TO_INDEX.put("restricted", NR_RESTRICTED); + } + static Config readConfig(Context context) { Config config = new Config(); Resources res = context.getResources(); @@ -1058,8 +1080,46 @@ public class NetworkControllerImpl extends BroadcastReceiver CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); config.hideLtePlus = b.getBoolean( CarrierConfigManager.KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL); + String nr5GIconConfiguration = + b.getString(CarrierConfigManager.KEY_5G_ICON_CONFIGURATION_STRING); + if (!TextUtils.isEmpty(nr5GIconConfiguration)) { + String[] nr5GIconConfigPairs = nr5GIconConfiguration.trim().split(","); + for (String pair : nr5GIconConfigPairs) { + add5GIconMapping(pair, config); + } + } } + return config; } + + /** + * Add a mapping from NR 5G status to the 5G icon. All the icon resources come from + * {@link TelephonyIcons}. + * + * @param keyValuePair the NR 5G status and icon name separated by a colon. + * @param config container that used to store the parsed configs. + */ + @VisibleForTesting + static void add5GIconMapping(String keyValuePair, Config config) { + String[] kv = (keyValuePair.trim().toLowerCase()).split(":"); + + if (kv.length != 2) { + if (DEBUG) Log.e(TAG, "Invalid 5G icon configuration, config = " + keyValuePair); + return; + } + + String key = kv[0], value = kv[1]; + + // There is no icon config for the specific 5G status. + if (value.equals("none")) return; + + if (NR_STATUS_STRING_TO_INDEX.containsKey(key) + && TelephonyIcons.ICON_NAME_TO_ICON.containsKey(value)) { + config.nr5GIconMap.put( + NR_STATUS_STRING_TO_INDEX.get(key), + TelephonyIcons.ICON_NAME_TO_ICON.get(value)); + } + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java index bd768202aa7a..7347f66de8ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java @@ -19,6 +19,9 @@ package com.android.systemui.statusbar.policy; import com.android.systemui.R; import com.android.systemui.statusbar.policy.MobileSignalController.MobileIconGroup; +import java.util.HashMap; +import java.util.Map; + class TelephonyIcons { //***** Data connection icons static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_airplane_mode; @@ -33,6 +36,8 @@ class TelephonyIcons { static final int ICON_4G = R.drawable.ic_4g_mobiledata; static final int ICON_4G_PLUS = R.drawable.ic_4g_plus_mobiledata; static final int ICON_1X = R.drawable.ic_1x_mobiledata; + static final int ICON_5G = R.drawable.ic_5g_mobiledata; + static final int ICON_5G_PLUS = R.drawable.ic_5g_plus_mobiledata; static final MobileIconGroup CARRIER_NETWORK_CHANGE = new MobileIconGroup( "CARRIER_NETWORK_CHANGE", @@ -199,6 +204,34 @@ class TelephonyIcons { TelephonyIcons.ICON_LTE_PLUS, true); + static final MobileIconGroup NR_5G = new MobileIconGroup( + "5G", + null, + null, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH, + 0, + 0, + 0, + 0, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0], + R.string.data_connection_5g, + TelephonyIcons.ICON_5G, + true); + + static final MobileIconGroup NR_5G_PLUS = new MobileIconGroup( + "5G_PLUS", + null, + null, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH, + 0, + 0, + 0, + 0, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0], + R.string.data_connection_5g_plus, + TelephonyIcons.ICON_5G_PLUS, + true); + static final MobileIconGroup DATA_DISABLED = new MobileIconGroup( "DataDisabled", null, @@ -211,5 +244,27 @@ class TelephonyIcons { R.string.cell_data_off_content_description, 0, false); + + /** Mapping icon name(lower case) to the icon object. */ + static final Map<String, MobileIconGroup> ICON_NAME_TO_ICON; + static { + ICON_NAME_TO_ICON = new HashMap<>(); + ICON_NAME_TO_ICON.put("carrier_network_change", CARRIER_NETWORK_CHANGE); + ICON_NAME_TO_ICON.put("3g", THREE_G); + ICON_NAME_TO_ICON.put("wfc", WFC); + ICON_NAME_TO_ICON.put("unknown", UNKNOWN); + ICON_NAME_TO_ICON.put("e", E); + ICON_NAME_TO_ICON.put("1x", ONE_X); + ICON_NAME_TO_ICON.put("g", G); + ICON_NAME_TO_ICON.put("h", H); + ICON_NAME_TO_ICON.put("h+", H_PLUS); + ICON_NAME_TO_ICON.put("4g", FOUR_G); + ICON_NAME_TO_ICON.put("4g+", FOUR_G_PLUS); + ICON_NAME_TO_ICON.put("lte", LTE); + ICON_NAME_TO_ICON.put("lte+", LTE_PLUS); + ICON_NAME_TO_ICON.put("5g", NR_5G); + ICON_NAME_TO_ICON.put("5g_plus", NR_5G_PLUS); + ICON_NAME_TO_ICON.put("datadisable", DATA_DISABLED); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java index 55b4d27ff354..c1f88855ac24 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java @@ -213,6 +213,11 @@ public class NetworkControllerBaseTest extends SysuiTestCase { NetworkCapabilities.TRANSPORT_CELLULAR, true, true); } + public void setupDefaultNr5GIconConfiguration() { + NetworkControllerImpl.Config.add5GIconMapping("connected_mmwave:5g_plus", mConfig); + NetworkControllerImpl.Config.add5GIconMapping("connected:5g", mConfig); + } + public void setConnectivityViaBroadcast( int networkType, boolean validated, boolean isConnected) { setConnectivityCommon(networkType, validated, isConnected); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java index d42940a3d2a2..2baea1ae3b19 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java @@ -1,11 +1,14 @@ package com.android.systemui.statusbar.policy; import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.net.NetworkCapabilities; import android.os.Looper; +import android.telephony.NetworkRegistrationState; +import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; @@ -16,6 +19,7 @@ import com.android.settingslib.net.DataUsageController; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; @SmallTest @RunWith(AndroidTestingRunner.class) @@ -141,6 +145,47 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { } @Test + public void testNr5GIcon_NrConnectedWithoutMMWave_show5GIcon() { + setupDefaultNr5GIconConfiguration(); + setupDefaultSignal(); + updateDataConnectionState(TelephonyManager.DATA_CONNECTED, + TelephonyManager.NETWORK_TYPE_LTE); + ServiceState ss = Mockito.mock(ServiceState.class); + doReturn(NetworkRegistrationState.NR_STATUS_CONNECTED).when(ss).getNrStatus(); + doReturn(ServiceState.FREQUENCY_RANGE_HIGH).when(ss).getNrFrequencyRange(); + mPhoneStateListener.onServiceStateChanged(ss); + + verifyDataIndicators(TelephonyIcons.ICON_5G); + } + + @Test + public void testNr5GIcon_NrConnectedWithMMWave_show5GPlusIcon() { + setupDefaultNr5GIconConfiguration(); + setupDefaultSignal(); + updateDataConnectionState(TelephonyManager.DATA_CONNECTED, + TelephonyManager.NETWORK_TYPE_LTE); + ServiceState ss = Mockito.mock(ServiceState.class); + doReturn(NetworkRegistrationState.NR_STATUS_CONNECTED).when(ss).getNrStatus(); + doReturn(ServiceState.FREQUENCY_RANGE_MMWAVE).when(ss).getNrFrequencyRange(); + mPhoneStateListener.onServiceStateChanged(ss); + + verifyDataIndicators(TelephonyIcons.ICON_5G_PLUS); + } + + @Test + public void testNr5GIcon_NrRestricted_showLteIcon() { + setupDefaultNr5GIconConfiguration(); + setupDefaultSignal(); + updateDataConnectionState(TelephonyManager.DATA_CONNECTED, + TelephonyManager.NETWORK_TYPE_LTE); + ServiceState ss = Mockito.mock(ServiceState.class); + doReturn(NetworkRegistrationState.NR_STATUS_RESTRICTED).when(ss).getNrStatus(); + mPhoneStateListener.onServiceStateChanged(mServiceState); + + verifyDataIndicators(TelephonyIcons.ICON_LTE); + } + + @Test public void testDataDisabledIcon_UserNotSetup() { setupNetworkController(); when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); @@ -222,5 +267,4 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { true, DEFAULT_QS_SIGNAL_STRENGTH, dataIcon, false, false); } - } diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index e78ae5547b5a..d2a0d7bc23fa 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -1806,7 +1806,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { TelephonyManager tm = (TelephonyManager) mContext.getSystemService( Context.TELEPHONY_SERVICE); - mEmergencyNumberList = tm.getCurrentEmergencyNumberList(); + mEmergencyNumberList = tm.getEmergencyNumberList(); for (Record r : mRecords) { if (r.matchPhoneStateListenerEvent( diff --git a/services/core/java/com/android/server/media/OWNERS b/services/core/java/com/android/server/media/OWNERS index 8adea0e85d12..4bc937347e04 100644 --- a/services/core/java/com/android/server/media/OWNERS +++ b/services/core/java/com/android/server/media/OWNERS @@ -1,4 +1,6 @@ -lajos@google.com elaurent@google.com -sungsoo@google.com +hdmoon@google.com +insun@google.com jaewan@google.com +lajos@google.com +sungsoo@google.com diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 4dcb410e277a..549c04420ce0 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -25,12 +25,11 @@ import android.annotation.IntDef; import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; -import android.content.res.Resources; import android.database.Cursor; import android.location.CountryDetector; import android.net.Uri; -import android.os.SystemProperties; import android.os.PersistableBundle; +import android.os.SystemProperties; import android.provider.Contacts; import android.provider.ContactsContract; import android.telecom.PhoneAccount; @@ -1738,7 +1737,7 @@ public class PhoneNumberUtils { * @return true if the number is in the list of emergency numbers * listed in the RIL / SIM, otherwise return false. * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} instead. + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} instead. */ @Deprecated public static boolean isEmergencyNumber(String number) { @@ -1754,7 +1753,7 @@ public class PhoneNumberUtils { * @return true if the number is in the list of emergency numbers * listed in the RIL / SIM, otherwise return false. * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} * instead. * * @hide @@ -1785,7 +1784,7 @@ public class PhoneNumberUtils { * listed in the RIL / SIM, *or* if the number starts with the * same digits as any of those emergency numbers. * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide @@ -1814,7 +1813,7 @@ public class PhoneNumberUtils { * listed in the RIL / SIM, *or* if the number starts with the * same digits as any of those emergency numbers. * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide @@ -1883,7 +1882,7 @@ public class PhoneNumberUtils { * @return if the number is an emergency number for the specific country, then return true, * otherwise false * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} * instead. * * @hide @@ -1903,7 +1902,7 @@ public class PhoneNumberUtils { * @return if the number is an emergency number for the specific country, then return true, * otherwise false * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} * instead. * * @hide @@ -1934,7 +1933,7 @@ public class PhoneNumberUtils { * country, *or* if the number starts with the same digits as * any of those emergency numbers. * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide @@ -1964,7 +1963,7 @@ public class PhoneNumberUtils { * country, *or* if the number starts with the same digits as * any of those emergency numbers. * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide @@ -2017,7 +2016,7 @@ public class PhoneNumberUtils { private static boolean isEmergencyNumberInternal(int subId, String number, String defaultCountryIso, boolean useExactMatch) { - return TelephonyManager.getDefault().isCurrentEmergencyNumber(number); + return TelephonyManager.getDefault().isEmergencyNumber(number); } /** @@ -2028,7 +2027,7 @@ public class PhoneNumberUtils { * @return true if the specified number is an emergency number for the country the user * is currently in. * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} * instead. */ @Deprecated @@ -2045,7 +2044,7 @@ public class PhoneNumberUtils { * @return true if the specified number is an emergency number for the country the user * is currently in. * - * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} * instead. * * @hide @@ -2079,7 +2078,7 @@ public class PhoneNumberUtils { * * @see android.location.CountryDetector * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide @@ -2110,7 +2109,7 @@ public class PhoneNumberUtils { * @return true if the specified number is an emergency number for a local country, based on the * CountryDetector. * - * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)} + * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)} * instead. * * @hide diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 7ea50b02b9f6..6e960cb7b0b0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -58,6 +58,8 @@ import android.os.SystemProperties; import android.os.WorkSource; import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; +import android.telecom.CallScreeningService; +import android.telecom.InCallService; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; @@ -617,7 +619,13 @@ public class TelephonyManager { * <p class="note"> * Retrieve with * {@link android.content.Intent#getStringExtra(String)}. + * <p> + * + * @deprecated Companion apps for wearable devices should use the {@link InCallService} API + * to retrieve the phone number for calls instead. Apps performing call screening should use + * the {@link CallScreeningService} API instead. */ + @Deprecated public static final String EXTRA_INCOMING_NUMBER = "incoming_number"; /** @@ -5164,6 +5172,40 @@ public class TelephonyManager { } /** + * Opens a logical channel to the ICC card using the physical slot index. + * + * Use this method when no subscriptions are available on the SIM and the operation must be + * performed using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CCHO command. + * + * <p>Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}. + * + * @param slotIndex the physical slot index of the ICC card + * @param aid Application id. See ETSI 102.221 and 101.220. + * @param p2 P2 parameter (described in ISO 7816-4). + * @return an IccOpenLogicalChannelResponse object. + * @hide + */ + @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + @SystemApi + @Nullable + public IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot(int slotIndex, + @Nullable String aid, int p2) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.iccOpenLogicalChannelBySlot(slotIndex, getOpPackageName(), aid, + p2); + } + } catch (RemoteException ex) { + } catch (NullPointerException ex) { + } + return null; + } + + /** * Opens a logical channel to the ICC card. * * Input parameters equivalent to TS 27.007 AT+CCHO command. @@ -5207,6 +5249,38 @@ public class TelephonyManager { } /** + * Closes a previously opened logical channel to the ICC card using the physical slot index. + * + * Use this method when no subscriptions are available on the SIM and the operation must be + * performed using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CCHC command. + * + * <p>Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}. + * + * @param slotIndex the physical slot index of the ICC card + * @param channel is the channel id to be closed as returned by a successful + * iccOpenLogicalChannel. + * @return true if the channel was closed successfully. + * @hide + */ + @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + @SystemApi + @Nullable + public boolean iccCloseLogicalChannelBySlot(int slotIndex, int channel) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.iccCloseLogicalChannelBySlot(slotIndex, channel); + } + } catch (RemoteException ex) { + } catch (NullPointerException ex) { + } + return false; + } + + /** * Closes a previously opened logical channel to the ICC card. * * Input parameters equivalent to TS 27.007 AT+CCHC command. @@ -5215,7 +5289,7 @@ public class TelephonyManager { * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling * app has carrier privileges (see {@link #hasCarrierPrivileges}). * - * @param channel is the channel id to be closed as retruned by a successful + * @param channel is the channel id to be closed as returned by a successful * iccOpenLogicalChannel. * @return true if the channel was closed successfully. */ @@ -5233,7 +5307,7 @@ public class TelephonyManager { * app has carrier privileges (see {@link #hasCarrierPrivileges}). * * @param subId The subscription to use. - * @param channel is the channel id to be closed as retruned by a successful + * @param channel is the channel id to be closed as returned by a successful * iccOpenLogicalChannel. * @return true if the channel was closed successfully. * @hide @@ -5250,6 +5324,48 @@ public class TelephonyManager { } /** + * Transmit an APDU to the ICC card over a logical channel using the physical slot index. + * + * Use this method when no subscriptions are available on the SIM and the operation must be + * performed using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CGLA command. + * + * <p>Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}. + * + * @param slotIndex the physical slot index of the ICC card + * @param channel is the channel id to be closed as returned by a successful + * iccOpenLogicalChannel. + * @param cla Class of the APDU command. + * @param instruction Instruction of the APDU command. + * @param p1 P1 value of the APDU command. + * @param p2 P2 value of the APDU command. + * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU + * is sent to the SIM. + * @param data Data to be sent with the APDU. + * @return The APDU response from the ICC card with the status appended at + * the end. + * @hide + */ + @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + @SystemApi + @Nullable + public String iccTransmitApduLogicalChannelBySlot(int slotIndex, int channel, int cla, + int instruction, int p1, int p2, int p3, @Nullable String data) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.iccTransmitApduLogicalChannelBySlot(slotIndex, channel, cla, + instruction, p1, p2, p3, data); + } + } catch (RemoteException ex) { + } catch (NullPointerException ex) { + } + return null; + } + + /** * Transmit an APDU to the ICC card over a logical channel. * * Input parameters equivalent to TS 27.007 AT+CGLA command. @@ -5313,6 +5429,46 @@ public class TelephonyManager { } /** + * Transmit an APDU to the ICC card over the basic channel using the physical slot index. + * + * Use this method when no subscriptions are available on the SIM and the operation must be + * performed using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CSIM command. + * + * <p>Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}. + * + * @param slotIndex the physical slot index of the ICC card to target + * @param cla Class of the APDU command. + * @param instruction Instruction of the APDU command. + * @param p1 P1 value of the APDU command. + * @param p2 P2 value of the APDU command. + * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU + * is sent to the SIM. + * @param data Data to be sent with the APDU. + * @return The APDU response from the ICC card with the status appended at + * the end. + * @hide + */ + @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + @SystemApi + @NonNull + public String iccTransmitApduBasicChannelBySlot(int slotIndex, int cla, int instruction, int p1, + int p2, int p3, @Nullable String data) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.iccTransmitApduBasicChannelBySlot(slotIndex, getOpPackageName(), + cla, instruction, p1, p2, p3, data); + } + } catch (RemoteException ex) { + } catch (NullPointerException ex) { + } + return null; + } + + /** * Transmit an APDU to the ICC card over the basic channel. * * Input parameters equivalent to TS 27.007 AT+CSIM command. @@ -9989,18 +10145,21 @@ public class TelephonyManager { * a SecurityException if the caller does not have the permission. */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) - @Nullable - public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() { + @NonNull + public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList() { + Map<Integer, List<EmergencyNumber>> emergencyNumberList = new HashMap<>(); try { ITelephony telephony = getITelephony(); - if (telephony == null) { - return null; + if (telephony != null) { + return telephony.getEmergencyNumberList(mContext.getOpPackageName()); + } else { + throw new IllegalStateException("telephony service is null."); } - return telephony.getCurrentEmergencyNumberList(mContext.getOpPackageName()); } catch (RemoteException ex) { - Log.e(TAG, "getCurrentEmergencyNumberList RemoteException", ex); + Log.e(TAG, "getEmergencyNumberList RemoteException", ex); + ex.rethrowAsRuntimeException(); } - return null; + return emergencyNumberList; } /** @@ -10039,31 +10198,34 @@ public class TelephonyManager { * a SecurityException if the caller does not have the permission. */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) - @Nullable - public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList( + @NonNull + public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList( @EmergencyServiceCategories int categories) { + Map<Integer, List<EmergencyNumber>> emergencyNumberList = new HashMap<>(); try { ITelephony telephony = getITelephony(); - if (telephony == null) { - return null; - } - Map<Integer, List<EmergencyNumber>> numberMap = telephony - .getCurrentEmergencyNumberList(mContext.getOpPackageName()); - if (numberMap != null) { - for (Integer subscriptionId : numberMap.keySet()) { - List<EmergencyNumber> numberList = numberMap.get(subscriptionId); - for (EmergencyNumber number : numberList) { - if (!number.isInEmergencyServiceCategories(categories)) { - numberList.remove(number); + if (telephony != null) { + emergencyNumberList = telephony.getEmergencyNumberList( + mContext.getOpPackageName()); + if (emergencyNumberList != null) { + for (Integer subscriptionId : emergencyNumberList.keySet()) { + List<EmergencyNumber> numberList = emergencyNumberList.get(subscriptionId); + for (EmergencyNumber number : numberList) { + if (!number.isInEmergencyServiceCategories(categories)) { + numberList.remove(number); + } } } } + return emergencyNumberList; + } else { + throw new IllegalStateException("telephony service is null."); } - return numberMap; } catch (RemoteException ex) { - Log.e(TAG, "getCurrentEmergencyNumberList with Categories RemoteException", ex); + Log.e(TAG, "getEmergencyNumberList with Categories RemoteException", ex); + ex.rethrowAsRuntimeException(); } - return null; + return emergencyNumberList; } /** @@ -10077,15 +10239,17 @@ public class TelephonyManager { * @return {@code true} if the given number is an emergency number based on current locale, * sim, modem and network; {@code false} otherwise. */ - public boolean isCurrentEmergencyNumber(@NonNull String number) { + public boolean isEmergencyNumber(@NonNull String number) { try { ITelephony telephony = getITelephony(); - if (telephony == null) { - return false; + if (telephony != null) { + return telephony.isEmergencyNumber(number, true); + } else { + throw new IllegalStateException("telephony service is null."); } - return telephony.isCurrentEmergencyNumber(number, true); } catch (RemoteException ex) { - Log.e(TAG, "isCurrentEmergencyNumber RemoteException", ex); + Log.e(TAG, "isEmergencyNumber RemoteException", ex); + ex.rethrowAsRuntimeException(); } return false; } @@ -10114,15 +10278,17 @@ public class TelephonyManager { */ @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public boolean isCurrentPotentialEmergencyNumber(@NonNull String number) { + public boolean isPotentialEmergencyNumber(@NonNull String number) { try { ITelephony telephony = getITelephony(); - if (telephony == null) { - return false; + if (telephony != null) { + return telephony.isEmergencyNumber(number, false); + } else { + throw new IllegalStateException("telephony service is null."); } - return telephony.isCurrentEmergencyNumber(number, false); } catch (RemoteException ex) { - Log.e(TAG, "isCurrentEmergencyNumber RemoteException", ex); + Log.e(TAG, "isEmergencyNumber RemoteException", ex); + ex.rethrowAsRuntimeException(); } return false; } diff --git a/telephony/java/android/telephony/emergency/EmergencyNumber.java b/telephony/java/android/telephony/emergency/EmergencyNumber.java index e68256d086bc..397975fe58cf 100644 --- a/telephony/java/android/telephony/emergency/EmergencyNumber.java +++ b/telephony/java/android/telephony/emergency/EmergencyNumber.java @@ -302,7 +302,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * * @return the dialing number. */ - public String getNumber() { + public @NonNull String getNumber() { return mNumber; } @@ -311,7 +311,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * * @return the country code string (lowercase character) in ISO 3166 format. */ - public String getCountryIso() { + public @NonNull String getCountryIso() { return mCountryIso; } @@ -320,7 +320,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * * @return the Mobile Network Code of the emergency number. */ - public String getMnc() { + public @NonNull String getMnc() { return mMnc; } @@ -328,6 +328,8 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * Returns the bitmask of emergency service categories of the emergency number. * * @return bitmask of the emergency service categories + * + * @hide */ public @EmergencyServiceCategories int getEmergencyServiceCategoryBitmask() { return mEmergencyServiceCategoryBitmask; @@ -357,7 +359,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * * @return a list of the emergency service categories */ - public List<Integer> getEmergencyServiceCategories() { + public @NonNull List<Integer> getEmergencyServiceCategories() { List<Integer> categories = new ArrayList<>(); if (serviceUnspecified()) { categories.add(EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED); @@ -384,7 +386,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * number does not have a specified emergency Uniform Resource Name. */ public @NonNull List<String> getEmergencyUrns() { - return mEmergencyUrns; + return Collections.unmodifiableList(mEmergencyUrns); } /** @@ -421,6 +423,8 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * Returns the bitmask of the sources of the emergency number. * * @return bitmask of the emergency number sources + * + * @hide */ public @EmergencyNumberSources int getEmergencyNumberSourceBitmask() { return mEmergencyNumberSourceBitmask; @@ -431,7 +435,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu * * @return a list of emergency number sources */ - public List<Integer> getEmergencyNumberSources() { + public @NonNull List<Integer> getEmergencyNumberSources() { List<Integer> sources = new ArrayList<>(); for (Integer source : EMERGENCY_NUMBER_SOURCE_SET) { if ((mEmergencyNumberSourceBitmask & source) == source) { diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java index 907dbbd20403..568c11be9077 100644 --- a/telephony/java/android/telephony/ims/ImsCallProfile.java +++ b/telephony/java/android/telephony/ims/ImsCallProfile.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.os.Bundle; @@ -837,7 +838,7 @@ public final class ImsCallProfile implements Parcelable { * 3gpp 22.101, Section 10 - Emergency Calls. */ @VisibleForTesting - public void setEmergencyUrns(List<String> emergencyUrns) { + public void setEmergencyUrns(@NonNull List<String> emergencyUrns) { mEmergencyUrns = emergencyUrns; } @@ -911,7 +912,7 @@ public final class ImsCallProfile implements Parcelable { * Reference: 3gpp 24.503, Section 5.1.6.8.1 - General; * 3gpp 22.101, Section 10 - Emergency Calls. */ - public List<String> getEmergencyUrns() { + public @NonNull List<String> getEmergencyUrns() { return mEmergencyUrns; } diff --git a/telephony/java/android/telephony/ims/ImsException.java b/telephony/java/android/telephony/ims/ImsException.java index bdaad5bffe5e..02eddf67e25b 100644 --- a/telephony/java/android/telephony/ims/ImsException.java +++ b/telephony/java/android/telephony/ims/ImsException.java @@ -19,6 +19,7 @@ package android.telephony.ims; import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.content.pm.PackageManager; import android.text.TextUtils; import java.lang.annotation.Retention; @@ -48,7 +49,9 @@ public class ImsException extends Exception { /** * This device or carrier configuration does not support IMS for this subscription. * <p> - * This is a permanent configuration error and there should be no retry. + * This is a permanent configuration error and there should be no retry. Usually this is + * because {@link PackageManager#FEATURE_TELEPHONY_IMS} is not available + * or the device has no ImsService implementation to service this request. */ public static final int CODE_ERROR_UNSUPPORTED_OPERATION = 2; diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java index 10457fc49327..e9aede7336f0 100644 --- a/telephony/java/android/telephony/ims/ImsMmTelManager.java +++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java @@ -25,6 +25,8 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.Context; +import android.content.pm.IPackageManager; +import android.content.pm.PackageManager; import android.net.Uri; import android.os.Binder; import android.os.RemoteException; @@ -314,7 +316,7 @@ public class ImsMmTelManager { private int mSubId; /** - * Create an instance of ImsManager for the subscription id specified. + * Create an instance of {@link ImsMmTelManager} for the subscription id specified. * * @param subId The ID of the subscription that this ImsMmTelManager will use. * @see android.telephony.SubscriptionManager#getActiveSubscriptionInfoList() @@ -366,12 +368,14 @@ public class ImsMmTelManager { if (executor == null) { throw new IllegalArgumentException("Must include a non-null Executor."); } + if (!isImsAvailableOnDevice()) { + throw new ImsException("IMS not available on device.", + ImsException.CODE_ERROR_UNSUPPORTED_OPERATION); + } c.setExecutor(executor); try { getITelephony().registerImsRegistrationCallback(mSubId, c.getBinder()); - } catch (RemoteException e) { - throw e.rethrowAsRuntimeException(); - } catch (IllegalStateException e) { + } catch (RemoteException | IllegalStateException e) { throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } } @@ -434,6 +438,10 @@ public class ImsMmTelManager { if (executor == null) { throw new IllegalArgumentException("Must include a non-null Executor."); } + if (!isImsAvailableOnDevice()) { + throw new ImsException("IMS not available on device.", + ImsException.CODE_ERROR_UNSUPPORTED_OPERATION); + } c.setExecutor(executor); try { getITelephony().registerMmTelCapabilityCallback(mSubId, c.getBinder()); @@ -800,6 +808,22 @@ public class ImsMmTelManager { } } + private static boolean isImsAvailableOnDevice() { + IPackageManager pm = IPackageManager.Stub.asInterface(ServiceManager.getService("package")); + if (pm == null) { + // For some reason package manger is not available.. This will fail internally anyways, + // so do not throw error and allow. + return true; + } + try { + return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS, 0); + } catch (RemoteException e) { + // For some reason package manger is not available.. This will fail internally anyways, + // so do not throw error and allow. + } + return true; + } + private static ITelephony getITelephony() { ITelephony binder = ITelephony.Stub.asInterface( ServiceManager.getService(Context.TELEPHONY_SERVICE)); diff --git a/telephony/java/android/telephony/ims/ImsReasonInfo.java b/telephony/java/android/telephony/ims/ImsReasonInfo.java index d8d2d9e5951a..ace3caf3c0df 100644 --- a/telephony/java/android/telephony/ims/ImsReasonInfo.java +++ b/telephony/java/android/telephony/ims/ImsReasonInfo.java @@ -142,6 +142,11 @@ public final class ImsReasonInfo implements Parcelable { * Call was disconnected because a handover is not feasible due to network conditions. */ public static final int CODE_LOCAL_HO_NOT_FEASIBLE = 149; + /** + * This device does not support IMS. + * @hide + */ + public static final int CODE_LOCAL_IMS_NOT_SUPPORTED_ON_DEVICE = 150; /* * TIMEOUT (IMS -> Telephony) diff --git a/telephony/java/android/telephony/ims/ProvisioningManager.java b/telephony/java/android/telephony/ims/ProvisioningManager.java index d12cda8a30a4..8cdf6a235749 100644 --- a/telephony/java/android/telephony/ims/ProvisioningManager.java +++ b/telephony/java/android/telephony/ims/ProvisioningManager.java @@ -24,6 +24,8 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.WorkerThread; import android.content.Context; +import android.content.pm.IPackageManager; +import android.content.pm.PackageManager; import android.os.Binder; import android.os.RemoteException; import android.os.ServiceManager; @@ -209,12 +211,14 @@ public class ProvisioningManager { @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(@NonNull @CallbackExecutor Executor executor, @NonNull Callback callback) throws ImsException { + if (!isImsAvailableOnDevice()) { + throw new ImsException("IMS not available on device.", + ImsException.CODE_ERROR_UNSUPPORTED_OPERATION); + } callback.setExecutor(executor); try { getITelephony().registerImsProvisioningChangedCallback(mSubId, callback.getBinder()); - } catch (RemoteException e) { - throw e.rethrowAsRuntimeException(); - } catch (IllegalStateException e) { + } catch (RemoteException | IllegalStateException e) { throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } } @@ -232,8 +236,7 @@ public class ProvisioningManager { @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull Callback callback) { try { - getITelephony().unregisterImsProvisioningChangedCallback(mSubId, - callback.getBinder()); + getITelephony().unregisterImsProvisioningChangedCallback(mSubId, callback.getBinder()); } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); } @@ -373,6 +376,22 @@ public class ProvisioningManager { } } + private static boolean isImsAvailableOnDevice() { + IPackageManager pm = IPackageManager.Stub.asInterface(ServiceManager.getService("package")); + if (pm == null) { + // For some reason package manger is not available.. This will fail internally anyways, + // so do not throw error and allow. + return true; + } + try { + return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS, 0); + } catch (RemoteException e) { + // For some reason package manger is not available.. This will fail internally anyways, + // so do not throw error and allow. + } + return true; + } + private static ITelephony getITelephony() { ITelephony binder = ITelephony.Stub.asInterface( ServiceManager.getService(Context.TELEPHONY_SERVICE)); diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 9e1332a6dc41..02a5bc8937ee 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -553,6 +553,20 @@ interface ITelephony { void setCellInfoListRate(int rateInMillis); /** + * Opens a logical channel to the ICC card using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CCHO command. + * + * @param slotIndex The physical slot index of the target ICC card + * @param callingPackage the name of the package making the call. + * @param AID Application id. See ETSI 102.221 and 101.220. + * @param p2 P2 parameter (described in ISO 7816-4). + * @return an IccOpenLogicalChannelResponse object. + */ + IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot( + int slotIndex, String callingPackage, String AID, int p2); + + /** * Opens a logical channel to the ICC card. * * Input parameters equivalent to TS 27.007 AT+CCHO command. @@ -567,12 +581,24 @@ interface ITelephony { int subId, String callingPackage, String AID, int p2); /** + * Closes a previously opened logical channel to the ICC card using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CCHC command. + * + * @param slotIndex The physical slot index of the target ICC card + * @param channel is the channel id to be closed as returned by a + * successful iccOpenLogicalChannel. + * @return true if the channel was closed successfully. + */ + boolean iccCloseLogicalChannelBySlot(int slotIndex, int channel); + + /** * Closes a previously opened logical channel to the ICC card. * * Input parameters equivalent to TS 27.007 AT+CCHC command. * * @param subId The subscription to use. - * @param channel is the channel id to be closed as retruned by a + * @param channel is the channel id to be closed as returned by a * successful iccOpenLogicalChannel. * @return true if the channel was closed successfully. */ @@ -580,12 +606,33 @@ interface ITelephony { boolean iccCloseLogicalChannel(int subId, int channel); /** + * Transmit an APDU to the ICC card over a logical channel using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CGLA command. + * + * @param slotIndex The physical slot index of the target ICC card + * @param channel is the channel id to be closed as returned by a + * successful iccOpenLogicalChannel. + * @param cla Class of the APDU command. + * @param instruction Instruction of the APDU command. + * @param p1 P1 value of the APDU command. + * @param p2 P2 value of the APDU command. + * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU + * is sent to the SIM. + * @param data Data to be sent with the APDU. + * @return The APDU response from the ICC card with the status appended at + * the end. + */ + String iccTransmitApduLogicalChannelBySlot(int slotIndex, int channel, int cla, int instruction, + int p1, int p2, int p3, String data); + + /** * Transmit an APDU to the ICC card over a logical channel. * * Input parameters equivalent to TS 27.007 AT+CGLA command. * * @param subId The subscription to use. - * @param channel is the channel id to be closed as retruned by a + * @param channel is the channel id to be closed as returned by a * successful iccOpenLogicalChannel. * @param cla Class of the APDU command. * @param instruction Instruction of the APDU command. @@ -602,6 +649,26 @@ interface ITelephony { int p1, int p2, int p3, String data); /** + * Transmit an APDU to the ICC card over the basic channel using the physical slot index. + * + * Input parameters equivalent to TS 27.007 AT+CSIM command. + * + * @param slotIndex The physical slot index of the target ICC card + * @param callingPackage the name of the package making the call. + * @param cla Class of the APDU command. + * @param instruction Instruction of the APDU command. + * @param p1 P1 value of the APDU command. + * @param p2 P2 value of the APDU command. + * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU + * is sent to the SIM. + * @param data Data to be sent with the APDU. + * @return The APDU response from the ICC card with the status appended at + * the end. + */ + String iccTransmitApduBasicChannelBySlot(int slotIndex, String callingPackage, int cla, + int instruction, int p1, int p2, int p3, String data); + + /** * Transmit an APDU to the ICC card over the basic channel. * * Input parameters equivalent to TS 27.007 AT+CSIM command. @@ -1765,12 +1832,12 @@ interface ITelephony { /** * Return the emergency number list from all the active subscriptions. */ - Map getCurrentEmergencyNumberList(String callingPackage); + Map getEmergencyNumberList(String callingPackage); /** * Identify if the number is emergency number, based on all the active subscriptions. */ - boolean isCurrentEmergencyNumber(String number, boolean exactMatch); + boolean isEmergencyNumber(String number, boolean exactMatch); /** * Return a list of certs in hex string from loaded carrier privileges access rules. diff --git a/tests/net/java/android/net/DnsPacketTest.java b/tests/net/java/android/net/DnsPacketTest.java index 9ede2b85af00..975abf416944 100644 --- a/tests/net/java/android/net/DnsPacketTest.java +++ b/tests/net/java/android/net/DnsPacketTest.java @@ -69,7 +69,7 @@ public class DnsPacketTest { try { new TestDnsPacket(null); fail("Exception not thrown for null byte array"); - } catch (DnsPacket.ParseException e) { + } catch (ParseException e) { } } |