Loading config/hiddenapi-light-greylist.txt +0 −93 Original line number Diff line number Diff line Loading @@ -2252,47 +2252,7 @@ Lcom/android/internal/statusbar/IStatusBarService;->removeIcon(Ljava/lang/String Lcom/android/internal/statusbar/IStatusBarService;->setIconVisibility(Ljava/lang/String;Z)V Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; Lcom/android/internal/telecom/ITelecomService;->getCallState()I Lcom/android/internal/telephony/CallerInfo;-><init>()V Lcom/android/internal/telephony/CallerInfo;->contactIdOrZero:J Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;I)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->name:Ljava/lang/String; Lcom/android/internal/telephony/CallerInfo;->numberLabel:Ljava/lang/String; Lcom/android/internal/telephony/CallerInfo;->numberType:I Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String; Lcom/android/internal/telephony/EncodeException;-><init>(C)V Lcom/android/internal/telephony/EncodeException;-><init>(Ljava/lang/String;)V Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;-><init>(I)V Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->languageCode:I Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->septetCounts:[I Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->unencodableCounts:[I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitCount:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitSize:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitsRemaining:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageShiftTable:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageTable:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->msgCount:I Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(C)I Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(CZ)I Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptets(CZ)I Lcom/android/internal/telephony/GsmAlphabet;->findGsmSeptetLimitIndex(Ljava/lang/String;IIII)I Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BIIIII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BIILjava/lang/String;)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsmToChar(I)C Lcom/android/internal/telephony/GsmAlphabet;->packSmsChar([BII)V Lcom/android/internal/telephony/GsmAlphabet;->sCharsToGsmTables:[Landroid/util/SparseIntArray; Lcom/android/internal/telephony/GsmAlphabet;->sCharsToShiftTables:[Landroid/util/SparseIntArray; Lcom/android/internal/telephony/GsmAlphabet;->sEnabledLockingShiftTables:[I Lcom/android/internal/telephony/GsmAlphabet;->sEnabledSingleShiftTables:[I Lcom/android/internal/telephony/GsmAlphabet;->sHighestEnabledSingleShiftCode:I Lcom/android/internal/telephony/GsmAlphabet;->sLanguageShiftTables:[Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->sLanguageTables:[Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;IZII)[B Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPackedWithHeader(Ljava/lang/String;[BII)[B Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm8BitPacked(Ljava/lang/String;)[B Lcom/android/internal/telephony/ICarrierConfigLoader;->getConfigForSubId(ILjava/lang/String;)Landroid/os/PersistableBundle; Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms; Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener; Loading Loading @@ -2367,62 +2327,9 @@ Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/I Lcom/android/internal/telephony/IWapPushManager;->addPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z Lcom/android/internal/telephony/IWapPushManager;->deletePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z Lcom/android/internal/telephony/IWapPushManager;->updatePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/OperatorInfo$State;)V Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaLong:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaShort:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mOperatorNumeric:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mState:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo;->rilStateToState(Ljava/lang/String;)Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/SmsAddress;->origBytes:[B Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_0:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_1:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_2:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_3:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->UNKNOWN:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V Lcom/android/internal/telephony/SmsHeader$ConcatRef;->msgCount:I Lcom/android/internal/telephony/SmsHeader$ConcatRef;->refNumber:I Lcom/android/internal/telephony/SmsHeader$ConcatRef;->seqNumber:I Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V Lcom/android/internal/telephony/SmsHeader$PortAddrs;->destPort:I Lcom/android/internal/telephony/SmsHeader$PortAddrs;->origPort:I Lcom/android/internal/telephony/SmsHeader;-><init>()V Lcom/android/internal/telephony/SmsHeader;->concatRef:Lcom/android/internal/telephony/SmsHeader$ConcatRef; Lcom/android/internal/telephony/SmsHeader;->fromByteArray([B)Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsHeader;->languageShiftTable:I Lcom/android/internal/telephony/SmsHeader;->languageTable:I Lcom/android/internal/telephony/SmsHeader;->portAddrs:Lcom/android/internal/telephony/SmsHeader$PortAddrs; Lcom/android/internal/telephony/SmsHeader;->toByteArray(Lcom/android/internal/telephony/SmsHeader;)[B Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedMessage:[B Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedScAddress:[B Lcom/android/internal/telephony/SmsMessageBase;-><init>()V Lcom/android/internal/telephony/SmsMessageBase;->getDisplayMessageBody()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getDisplayOriginatingAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getMessageBody()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getOriginatingAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getProtocolIdentifier()I Lcom/android/internal/telephony/SmsMessageBase;->getPseudoSubject()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getServiceCenterAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getStatus()I Lcom/android/internal/telephony/SmsMessageBase;->getTimestampMillis()J Lcom/android/internal/telephony/SmsMessageBase;->getUserData()[B Lcom/android/internal/telephony/SmsMessageBase;->getUserDataHeader()Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsMessageBase;->isReplace()Z Lcom/android/internal/telephony/SmsMessageBase;->isReplyPathPresent()Z Lcom/android/internal/telephony/SmsMessageBase;->isStatusReportMessage()Z Lcom/android/internal/telephony/SmsMessageBase;->mIsMwi:Z Lcom/android/internal/telephony/SmsMessageBase;->mMessageBody:Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->mMessageRef:I Lcom/android/internal/telephony/SmsMessageBase;->mMwiDontStore:Z Lcom/android/internal/telephony/SmsMessageBase;->mMwiSense:Z Lcom/android/internal/telephony/SmsMessageBase;->mOriginatingAddress:Lcom/android/internal/telephony/SmsAddress; Lcom/android/internal/telephony/SmsMessageBase;->mPdu:[B Lcom/android/internal/telephony/SmsMessageBase;->mScAddress:Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->mUserDataHeader:Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsRawData;-><init>([B)V Lcom/android/internal/telephony/SmsRawData;->CREATOR:Landroid/os/Parcelable$Creator; Lcom/android/internal/telephony/SmsRawData;->getBytes()[B Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Lcom/android/internal/util/HexDump;->toHexString([BZ)Ljava/lang/String; Lcom/android/internal/view/BaseIWindow;-><init>()V Loading config/hiddenapi-vendor-list.txt +0 −10 Original line number Diff line number Diff line Loading @@ -261,17 +261,7 @@ Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/S Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V Lcom/android/internal/R$styleable;->NumberPicker:[I Lcom/android/internal/R$styleable;->TwoLineListItem:[I Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;)[B Lcom/android/internal/telephony/ITelephony;->getDataEnabled(I)Z Lcom/android/internal/telephony/OperatorInfo$State;->CURRENT:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo$State;->FORBIDDEN:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V Lcom/android/internal/telephony/OperatorInfo;->CREATOR:Landroid/os/Parcelable$Creator; Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaLong()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaShort()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getOperatorNumeric()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getState()Lcom/android/internal/telephony/OperatorInfo$State; Ljava/lang/System;->arraycopy([BI[BII)V Ljava/net/Inet4Address;->ALL:Ljava/net/InetAddress; Ljava/net/Inet4Address;->ANY:Ljava/net/InetAddress; Loading telephony/java/com/android/internal/telephony/CallerInfo.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.annotation.UnsupportedAppUsage; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; Loading Loading @@ -83,7 +84,9 @@ public class CallerInfo { * field here, NOT name. We're NOT always guaranteed to have a name * for a connection, but the number should be displayable. */ @UnsupportedAppUsage public String name; @UnsupportedAppUsage public String phoneNumber; public String normalizedNumber; public String geoDescription; Loading @@ -95,12 +98,15 @@ public class CallerInfo { public String phoneLabel; /* Split up the phoneLabel into number type and label name */ @UnsupportedAppUsage public int numberType; @UnsupportedAppUsage public String numberLabel; public int photoResource; // Contact ID, which will be 0 if a contact comes from the corp CP2. @UnsupportedAppUsage public long contactIdOrZero; public boolean needUpdate; public Uri contactRefUri; Loading Loading @@ -155,6 +161,7 @@ public class CallerInfo { private boolean mIsEmergency; private boolean mIsVoiceMail; @UnsupportedAppUsage public CallerInfo() { // TODO: Move all the basic initialization here? mIsEmergency = false; Loading Loading @@ -300,6 +307,7 @@ public class CallerInfo { * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, Uri contactRef) { CallerInfo info = null; ContentResolver cr = CallerInfoAsyncQuery.getCurrentProfileContentResolver(context); Loading @@ -324,6 +332,7 @@ public class CallerInfo { * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number) { if (VDBG) Rlog.v(TAG, "getCallerInfo() based on number..."); Loading @@ -342,6 +351,7 @@ public class CallerInfo { * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number, int subId) { if (TextUtils.isEmpty(number)) { Loading telephony/java/com/android/internal/telephony/EncodeException.java +4 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony; import android.annotation.UnsupportedAppUsage; /** * {@hide} */ Loading @@ -24,10 +26,12 @@ public class EncodeException extends Exception { super(); } @UnsupportedAppUsage public EncodeException(String s) { super(s); } @UnsupportedAppUsage public EncodeException(char c) { super("Unencodable char: '" + c + "'"); } Loading telephony/java/com/android/internal/telephony/GsmAlphabet.java +32 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.res.Resources; import android.text.TextUtils; import android.util.SparseIntArray; import android.annotation.UnsupportedAppUsage; import android.telephony.Rlog; import java.nio.ByteBuffer; Loading Loading @@ -84,6 +85,7 @@ public class GsmAlphabet { /** *The number of SMS's required to encode the text. */ @UnsupportedAppUsage public int msgCount; /** Loading @@ -92,28 +94,33 @@ public class GsmAlphabet { * septets for the standard ASCII and GSM encodings, and 16 * bits for Unicode. */ @UnsupportedAppUsage public int codeUnitCount; /** * How many code units are still available without spilling * into an additional message. */ @UnsupportedAppUsage public int codeUnitsRemaining; /** * The encoding code unit size (specified using * android.telephony.SmsMessage ENCODING_*). */ @UnsupportedAppUsage public int codeUnitSize; /** * The GSM national language table to use, or 0 for the default 7-bit alphabet. */ @UnsupportedAppUsage public int languageTable; /** * The GSM national language shift table to use, or 0 for the default 7-bit extension table. */ @UnsupportedAppUsage public int languageShiftTable; @Override Loading @@ -138,6 +145,7 @@ public class GsmAlphabet { * @param c the character to convert * @return the GSM 7 bit table index for the specified character */ @UnsupportedAppUsage public static int charToGsm(char c) { try { Loading @@ -160,6 +168,7 @@ public class GsmAlphabet { * @throws EncodeException encode error when throwException is true * @return the GSM 7 bit table index for the specified character */ @UnsupportedAppUsage public static int charToGsm(char c, boolean throwException) throws EncodeException { int ret; Loading Loading @@ -215,6 +224,7 @@ public class GsmAlphabet { * @param gsmChar the GSM 7 bit table index to convert * @return the decoded character */ @UnsupportedAppUsage public static char gsmToChar(int gsmChar) { if (gsmChar >= 0 && gsmChar < 128) { Loading Loading @@ -293,6 +303,7 @@ public class GsmAlphabet { * @return Byte array containing header and encoded data. * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPackedWithHeader(String data, byte[] header, int languageTable, int languageShiftTable) throws EncodeException { Loading Loading @@ -327,6 +338,7 @@ public class GsmAlphabet { * @return the encoded string * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPacked(String data) throws EncodeException { return stringToGsm7BitPacked(data, 0, true, 0, 0); Loading Loading @@ -377,6 +389,7 @@ public class GsmAlphabet { * * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPacked(String data, int startingSeptetOffset, boolean throwException, int languageTable, int languageShiftTable) throws EncodeException { Loading Loading @@ -428,6 +441,7 @@ public class GsmAlphabet { * (septet index * 7) * @param value the 7-bit character to store */ @UnsupportedAppUsage private static void packSmsChar(byte[] packedChars, int bitOffset, int value) { int byteOffset = bitOffset / 8; Loading @@ -451,6 +465,7 @@ public class GsmAlphabet { * @param lengthSeptets string length in septets, not bytes * @return String representation or null on decoding exception */ @UnsupportedAppUsage public static String gsm7BitPackedToString(byte[] pdu, int offset, int lengthSeptets) { return gsm7BitPackedToString(pdu, offset, lengthSeptets, 0, 0, 0); Loading @@ -472,6 +487,7 @@ public class GsmAlphabet { * GSM extension table * @return String representation or null on decoding exception */ @UnsupportedAppUsage public static String gsm7BitPackedToString(byte[] pdu, int offset, int lengthSeptets, int numPaddingBits, int languageTable, int shiftTable) { StringBuilder ret = new StringBuilder(lengthSeptets); Loading Loading @@ -555,6 +571,7 @@ public class GsmAlphabet { * @param length the number of bytes to decode * @return the decoded string */ @UnsupportedAppUsage public static String gsm8BitUnpackedToString(byte[] data, int offset, int length) { return gsm8BitUnpackedToString(data, offset, length, ""); Loading @@ -570,6 +587,7 @@ public class GsmAlphabet { * Additionally, in some country(ex. Korea), there are non-ASCII or MBCS characters. * If a character set is given, characters in data are treat as MBCS. */ @UnsupportedAppUsage public static String gsm8BitUnpackedToString(byte[] data, int offset, int length, String characterset) { boolean isMbcs = false; Loading Loading @@ -649,6 +667,7 @@ public class GsmAlphabet { * @param s the string to encode * @return the 8-bit GSM encoded byte array for the string */ @UnsupportedAppUsage public static byte[] stringToGsm8BitPacked(String s) { byte[] ret; Loading Loading @@ -736,6 +755,7 @@ public class GsmAlphabet { * @return the number of septets for this character * @throws EncodeException the character can't be encoded and throwsException is true */ @UnsupportedAppUsage public static int countGsmSeptets(char c, boolean throwsException) throws EncodeException { if (sCharsToGsmTables[0].get(c, -1) != -1) { Loading Loading @@ -978,6 +998,7 @@ public class GsmAlphabet { * @return index of first character that won't fit, or the length * of the entire string if everything fits */ @UnsupportedAppUsage public static int findGsmSeptetLimitIndex(String s, int start, int limit, int langTable, int langShiftTable) { int accumulator = 0; Loading Loading @@ -1076,18 +1097,23 @@ public class GsmAlphabet { } /** Reverse mapping from Unicode characters to indexes into language tables. */ @UnsupportedAppUsage private static final SparseIntArray[] sCharsToGsmTables; /** Reverse mapping from Unicode characters to indexes into language shift tables. */ @UnsupportedAppUsage private static final SparseIntArray[] sCharsToShiftTables; /** OEM configured list of enabled national language single shift tables for encoding. */ @UnsupportedAppUsage private static int[] sEnabledSingleShiftTables; /** OEM configured list of enabled national language locking shift tables for encoding. */ @UnsupportedAppUsage private static int[] sEnabledLockingShiftTables; /** Highest language code to include in array of single shift counters. */ @UnsupportedAppUsage private static int sHighestEnabledSingleShiftCode; /** Flag to bypass check for country-specific overlays (for test cases only). */ Loading @@ -1098,9 +1124,13 @@ public class GsmAlphabet { * the single shift tables that it can be paired with. */ private static class LanguagePairCount { @UnsupportedAppUsage final int languageCode; @UnsupportedAppUsage final int[] septetCounts; @UnsupportedAppUsage final int[] unencodableCounts; @UnsupportedAppUsage LanguagePairCount(int code) { this.languageCode = code; int maxSingleShiftCode = sHighestEnabledSingleShiftCode; Loading Loading @@ -1130,6 +1160,7 @@ public class GsmAlphabet { * GSM default 7 bit alphabet plus national language locking shift character tables. * Comment lines above strings indicate the lower four bits of the table position. */ @UnsupportedAppUsage private static final String[] sLanguageTables = { /* 3GPP TS 23.038 V9.1.1 section 6.2.1 - GSM 7 bit Default Alphabet 01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....0.....1 */ Loading Loading @@ -1323,6 +1354,7 @@ public class GsmAlphabet { /** * GSM default extension table plus national language single shift character tables. */ @UnsupportedAppUsage private static final String[] sLanguageShiftTables = new String[]{ /* 6.2.1.1 GSM 7 bit Default Alphabet Extension Table 0123456789A.....BCDEF0123456789ABCDEF0123456789ABCDEF.0123456789ABCDEF0123456789ABCDEF */ Loading Loading
config/hiddenapi-light-greylist.txt +0 −93 Original line number Diff line number Diff line Loading @@ -2252,47 +2252,7 @@ Lcom/android/internal/statusbar/IStatusBarService;->removeIcon(Ljava/lang/String Lcom/android/internal/statusbar/IStatusBarService;->setIconVisibility(Ljava/lang/String;Z)V Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; Lcom/android/internal/telecom/ITelecomService;->getCallState()I Lcom/android/internal/telephony/CallerInfo;-><init>()V Lcom/android/internal/telephony/CallerInfo;->contactIdOrZero:J Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Ljava/lang/String;I)Lcom/android/internal/telephony/CallerInfo; Lcom/android/internal/telephony/CallerInfo;->name:Ljava/lang/String; Lcom/android/internal/telephony/CallerInfo;->numberLabel:Ljava/lang/String; Lcom/android/internal/telephony/CallerInfo;->numberType:I Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String; Lcom/android/internal/telephony/EncodeException;-><init>(C)V Lcom/android/internal/telephony/EncodeException;-><init>(Ljava/lang/String;)V Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;-><init>(I)V Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->languageCode:I Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->septetCounts:[I Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;->unencodableCounts:[I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitCount:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitSize:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->codeUnitsRemaining:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageShiftTable:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->languageTable:I Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;->msgCount:I Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(C)I Lcom/android/internal/telephony/GsmAlphabet;->charToGsm(CZ)I Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptets(CZ)I Lcom/android/internal/telephony/GsmAlphabet;->findGsmSeptetLimitIndex(Ljava/lang/String;IIII)I Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BIIIII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsm8BitUnpackedToString([BIILjava/lang/String;)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->gsmToChar(I)C Lcom/android/internal/telephony/GsmAlphabet;->packSmsChar([BII)V Lcom/android/internal/telephony/GsmAlphabet;->sCharsToGsmTables:[Landroid/util/SparseIntArray; Lcom/android/internal/telephony/GsmAlphabet;->sCharsToShiftTables:[Landroid/util/SparseIntArray; Lcom/android/internal/telephony/GsmAlphabet;->sEnabledLockingShiftTables:[I Lcom/android/internal/telephony/GsmAlphabet;->sEnabledSingleShiftTables:[I Lcom/android/internal/telephony/GsmAlphabet;->sHighestEnabledSingleShiftCode:I Lcom/android/internal/telephony/GsmAlphabet;->sLanguageShiftTables:[Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->sLanguageTables:[Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;IZII)[B Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPackedWithHeader(Ljava/lang/String;[BII)[B Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm8BitPacked(Ljava/lang/String;)[B Lcom/android/internal/telephony/ICarrierConfigLoader;->getConfigForSubId(ILjava/lang/String;)Landroid/os/PersistableBundle; Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms; Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener; Loading Loading @@ -2367,62 +2327,9 @@ Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/I Lcom/android/internal/telephony/IWapPushManager;->addPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z Lcom/android/internal/telephony/IWapPushManager;->deletePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z Lcom/android/internal/telephony/IWapPushManager;->updatePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/OperatorInfo$State;)V Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaLong:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mOperatorAlphaShort:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mOperatorNumeric:Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->mState:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo;->rilStateToState(Ljava/lang/String;)Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/SmsAddress;->origBytes:[B Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_0:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_1:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_2:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->CLASS_3:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsConstants$MessageClass;->UNKNOWN:Lcom/android/internal/telephony/SmsConstants$MessageClass; Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V Lcom/android/internal/telephony/SmsHeader$ConcatRef;->msgCount:I Lcom/android/internal/telephony/SmsHeader$ConcatRef;->refNumber:I Lcom/android/internal/telephony/SmsHeader$ConcatRef;->seqNumber:I Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V Lcom/android/internal/telephony/SmsHeader$PortAddrs;->destPort:I Lcom/android/internal/telephony/SmsHeader$PortAddrs;->origPort:I Lcom/android/internal/telephony/SmsHeader;-><init>()V Lcom/android/internal/telephony/SmsHeader;->concatRef:Lcom/android/internal/telephony/SmsHeader$ConcatRef; Lcom/android/internal/telephony/SmsHeader;->fromByteArray([B)Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsHeader;->languageShiftTable:I Lcom/android/internal/telephony/SmsHeader;->languageTable:I Lcom/android/internal/telephony/SmsHeader;->portAddrs:Lcom/android/internal/telephony/SmsHeader$PortAddrs; Lcom/android/internal/telephony/SmsHeader;->toByteArray(Lcom/android/internal/telephony/SmsHeader;)[B Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedMessage:[B Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;->encodedScAddress:[B Lcom/android/internal/telephony/SmsMessageBase;-><init>()V Lcom/android/internal/telephony/SmsMessageBase;->getDisplayMessageBody()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getDisplayOriginatingAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getMessageBody()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getOriginatingAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getProtocolIdentifier()I Lcom/android/internal/telephony/SmsMessageBase;->getPseudoSubject()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getServiceCenterAddress()Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->getStatus()I Lcom/android/internal/telephony/SmsMessageBase;->getTimestampMillis()J Lcom/android/internal/telephony/SmsMessageBase;->getUserData()[B Lcom/android/internal/telephony/SmsMessageBase;->getUserDataHeader()Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsMessageBase;->isReplace()Z Lcom/android/internal/telephony/SmsMessageBase;->isReplyPathPresent()Z Lcom/android/internal/telephony/SmsMessageBase;->isStatusReportMessage()Z Lcom/android/internal/telephony/SmsMessageBase;->mIsMwi:Z Lcom/android/internal/telephony/SmsMessageBase;->mMessageBody:Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->mMessageRef:I Lcom/android/internal/telephony/SmsMessageBase;->mMwiDontStore:Z Lcom/android/internal/telephony/SmsMessageBase;->mMwiSense:Z Lcom/android/internal/telephony/SmsMessageBase;->mOriginatingAddress:Lcom/android/internal/telephony/SmsAddress; Lcom/android/internal/telephony/SmsMessageBase;->mPdu:[B Lcom/android/internal/telephony/SmsMessageBase;->mScAddress:Ljava/lang/String; Lcom/android/internal/telephony/SmsMessageBase;->mUserDataHeader:Lcom/android/internal/telephony/SmsHeader; Lcom/android/internal/telephony/SmsRawData;-><init>([B)V Lcom/android/internal/telephony/SmsRawData;->CREATOR:Landroid/os/Parcelable$Creator; Lcom/android/internal/telephony/SmsRawData;->getBytes()[B Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V Lcom/android/internal/util/HexDump;->toHexString([BZ)Ljava/lang/String; Lcom/android/internal/view/BaseIWindow;-><init>()V Loading
config/hiddenapi-vendor-list.txt +0 −10 Original line number Diff line number Diff line Loading @@ -261,17 +261,7 @@ Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/S Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V Lcom/android/internal/R$styleable;->NumberPicker:[I Lcom/android/internal/R$styleable;->TwoLineListItem:[I Lcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BII)Ljava/lang/String; Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;)[B Lcom/android/internal/telephony/ITelephony;->getDataEnabled(I)Z Lcom/android/internal/telephony/OperatorInfo$State;->CURRENT:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo$State;->FORBIDDEN:Lcom/android/internal/telephony/OperatorInfo$State; Lcom/android/internal/telephony/OperatorInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V Lcom/android/internal/telephony/OperatorInfo;->CREATOR:Landroid/os/Parcelable$Creator; Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaLong()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getOperatorAlphaShort()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getOperatorNumeric()Ljava/lang/String; Lcom/android/internal/telephony/OperatorInfo;->getState()Lcom/android/internal/telephony/OperatorInfo$State; Ljava/lang/System;->arraycopy([BI[BII)V Ljava/net/Inet4Address;->ALL:Ljava/net/InetAddress; Ljava/net/Inet4Address;->ANY:Ljava/net/InetAddress; Loading
telephony/java/com/android/internal/telephony/CallerInfo.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.annotation.UnsupportedAppUsage; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; Loading Loading @@ -83,7 +84,9 @@ public class CallerInfo { * field here, NOT name. We're NOT always guaranteed to have a name * for a connection, but the number should be displayable. */ @UnsupportedAppUsage public String name; @UnsupportedAppUsage public String phoneNumber; public String normalizedNumber; public String geoDescription; Loading @@ -95,12 +98,15 @@ public class CallerInfo { public String phoneLabel; /* Split up the phoneLabel into number type and label name */ @UnsupportedAppUsage public int numberType; @UnsupportedAppUsage public String numberLabel; public int photoResource; // Contact ID, which will be 0 if a contact comes from the corp CP2. @UnsupportedAppUsage public long contactIdOrZero; public boolean needUpdate; public Uri contactRefUri; Loading Loading @@ -155,6 +161,7 @@ public class CallerInfo { private boolean mIsEmergency; private boolean mIsVoiceMail; @UnsupportedAppUsage public CallerInfo() { // TODO: Move all the basic initialization here? mIsEmergency = false; Loading Loading @@ -300,6 +307,7 @@ public class CallerInfo { * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, Uri contactRef) { CallerInfo info = null; ContentResolver cr = CallerInfoAsyncQuery.getCurrentProfileContentResolver(context); Loading @@ -324,6 +332,7 @@ public class CallerInfo { * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number) { if (VDBG) Rlog.v(TAG, "getCallerInfo() based on number..."); Loading @@ -342,6 +351,7 @@ public class CallerInfo { * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number, int subId) { if (TextUtils.isEmpty(number)) { Loading
telephony/java/com/android/internal/telephony/EncodeException.java +4 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony; import android.annotation.UnsupportedAppUsage; /** * {@hide} */ Loading @@ -24,10 +26,12 @@ public class EncodeException extends Exception { super(); } @UnsupportedAppUsage public EncodeException(String s) { super(s); } @UnsupportedAppUsage public EncodeException(char c) { super("Unencodable char: '" + c + "'"); } Loading
telephony/java/com/android/internal/telephony/GsmAlphabet.java +32 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.res.Resources; import android.text.TextUtils; import android.util.SparseIntArray; import android.annotation.UnsupportedAppUsage; import android.telephony.Rlog; import java.nio.ByteBuffer; Loading Loading @@ -84,6 +85,7 @@ public class GsmAlphabet { /** *The number of SMS's required to encode the text. */ @UnsupportedAppUsage public int msgCount; /** Loading @@ -92,28 +94,33 @@ public class GsmAlphabet { * septets for the standard ASCII and GSM encodings, and 16 * bits for Unicode. */ @UnsupportedAppUsage public int codeUnitCount; /** * How many code units are still available without spilling * into an additional message. */ @UnsupportedAppUsage public int codeUnitsRemaining; /** * The encoding code unit size (specified using * android.telephony.SmsMessage ENCODING_*). */ @UnsupportedAppUsage public int codeUnitSize; /** * The GSM national language table to use, or 0 for the default 7-bit alphabet. */ @UnsupportedAppUsage public int languageTable; /** * The GSM national language shift table to use, or 0 for the default 7-bit extension table. */ @UnsupportedAppUsage public int languageShiftTable; @Override Loading @@ -138,6 +145,7 @@ public class GsmAlphabet { * @param c the character to convert * @return the GSM 7 bit table index for the specified character */ @UnsupportedAppUsage public static int charToGsm(char c) { try { Loading @@ -160,6 +168,7 @@ public class GsmAlphabet { * @throws EncodeException encode error when throwException is true * @return the GSM 7 bit table index for the specified character */ @UnsupportedAppUsage public static int charToGsm(char c, boolean throwException) throws EncodeException { int ret; Loading Loading @@ -215,6 +224,7 @@ public class GsmAlphabet { * @param gsmChar the GSM 7 bit table index to convert * @return the decoded character */ @UnsupportedAppUsage public static char gsmToChar(int gsmChar) { if (gsmChar >= 0 && gsmChar < 128) { Loading Loading @@ -293,6 +303,7 @@ public class GsmAlphabet { * @return Byte array containing header and encoded data. * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPackedWithHeader(String data, byte[] header, int languageTable, int languageShiftTable) throws EncodeException { Loading Loading @@ -327,6 +338,7 @@ public class GsmAlphabet { * @return the encoded string * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPacked(String data) throws EncodeException { return stringToGsm7BitPacked(data, 0, true, 0, 0); Loading Loading @@ -377,6 +389,7 @@ public class GsmAlphabet { * * @throws EncodeException if String is too large to encode */ @UnsupportedAppUsage public static byte[] stringToGsm7BitPacked(String data, int startingSeptetOffset, boolean throwException, int languageTable, int languageShiftTable) throws EncodeException { Loading Loading @@ -428,6 +441,7 @@ public class GsmAlphabet { * (septet index * 7) * @param value the 7-bit character to store */ @UnsupportedAppUsage private static void packSmsChar(byte[] packedChars, int bitOffset, int value) { int byteOffset = bitOffset / 8; Loading @@ -451,6 +465,7 @@ public class GsmAlphabet { * @param lengthSeptets string length in septets, not bytes * @return String representation or null on decoding exception */ @UnsupportedAppUsage public static String gsm7BitPackedToString(byte[] pdu, int offset, int lengthSeptets) { return gsm7BitPackedToString(pdu, offset, lengthSeptets, 0, 0, 0); Loading @@ -472,6 +487,7 @@ public class GsmAlphabet { * GSM extension table * @return String representation or null on decoding exception */ @UnsupportedAppUsage public static String gsm7BitPackedToString(byte[] pdu, int offset, int lengthSeptets, int numPaddingBits, int languageTable, int shiftTable) { StringBuilder ret = new StringBuilder(lengthSeptets); Loading Loading @@ -555,6 +571,7 @@ public class GsmAlphabet { * @param length the number of bytes to decode * @return the decoded string */ @UnsupportedAppUsage public static String gsm8BitUnpackedToString(byte[] data, int offset, int length) { return gsm8BitUnpackedToString(data, offset, length, ""); Loading @@ -570,6 +587,7 @@ public class GsmAlphabet { * Additionally, in some country(ex. Korea), there are non-ASCII or MBCS characters. * If a character set is given, characters in data are treat as MBCS. */ @UnsupportedAppUsage public static String gsm8BitUnpackedToString(byte[] data, int offset, int length, String characterset) { boolean isMbcs = false; Loading Loading @@ -649,6 +667,7 @@ public class GsmAlphabet { * @param s the string to encode * @return the 8-bit GSM encoded byte array for the string */ @UnsupportedAppUsage public static byte[] stringToGsm8BitPacked(String s) { byte[] ret; Loading Loading @@ -736,6 +755,7 @@ public class GsmAlphabet { * @return the number of septets for this character * @throws EncodeException the character can't be encoded and throwsException is true */ @UnsupportedAppUsage public static int countGsmSeptets(char c, boolean throwsException) throws EncodeException { if (sCharsToGsmTables[0].get(c, -1) != -1) { Loading Loading @@ -978,6 +998,7 @@ public class GsmAlphabet { * @return index of first character that won't fit, or the length * of the entire string if everything fits */ @UnsupportedAppUsage public static int findGsmSeptetLimitIndex(String s, int start, int limit, int langTable, int langShiftTable) { int accumulator = 0; Loading Loading @@ -1076,18 +1097,23 @@ public class GsmAlphabet { } /** Reverse mapping from Unicode characters to indexes into language tables. */ @UnsupportedAppUsage private static final SparseIntArray[] sCharsToGsmTables; /** Reverse mapping from Unicode characters to indexes into language shift tables. */ @UnsupportedAppUsage private static final SparseIntArray[] sCharsToShiftTables; /** OEM configured list of enabled national language single shift tables for encoding. */ @UnsupportedAppUsage private static int[] sEnabledSingleShiftTables; /** OEM configured list of enabled national language locking shift tables for encoding. */ @UnsupportedAppUsage private static int[] sEnabledLockingShiftTables; /** Highest language code to include in array of single shift counters. */ @UnsupportedAppUsage private static int sHighestEnabledSingleShiftCode; /** Flag to bypass check for country-specific overlays (for test cases only). */ Loading @@ -1098,9 +1124,13 @@ public class GsmAlphabet { * the single shift tables that it can be paired with. */ private static class LanguagePairCount { @UnsupportedAppUsage final int languageCode; @UnsupportedAppUsage final int[] septetCounts; @UnsupportedAppUsage final int[] unencodableCounts; @UnsupportedAppUsage LanguagePairCount(int code) { this.languageCode = code; int maxSingleShiftCode = sHighestEnabledSingleShiftCode; Loading Loading @@ -1130,6 +1160,7 @@ public class GsmAlphabet { * GSM default 7 bit alphabet plus national language locking shift character tables. * Comment lines above strings indicate the lower four bits of the table position. */ @UnsupportedAppUsage private static final String[] sLanguageTables = { /* 3GPP TS 23.038 V9.1.1 section 6.2.1 - GSM 7 bit Default Alphabet 01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....0.....1 */ Loading Loading @@ -1323,6 +1354,7 @@ public class GsmAlphabet { /** * GSM default extension table plus national language single shift character tables. */ @UnsupportedAppUsage private static final String[] sLanguageShiftTables = new String[]{ /* 6.2.1.1 GSM 7 bit Default Alphabet Extension Table 0123456789A.....BCDEF0123456789ABCDEF0123456789ABCDEF.0123456789ABCDEF0123456789ABCDEF */ Loading