Compare commits

..

1 commit

Author SHA1 Message Date
baf717ccfc
feat: icc get atr 2025-03-23 15:39:53 +08:00
2 changed files with 6 additions and 21 deletions

View file

@ -69,12 +69,8 @@ class TelephonyManagerApduInterface(
override val atr: ByteArray?
get() = try {
tm.iccGetAtr(slotIndex)?.decodeHex()
} catch (e: NoSuchMethodException) {
try {
tm.getAtrUsingSlotId(slotIndex)
} catch (e: Exception) {
null
}
tm.iccGetATR(port.card.physicalSlotIndex)
} catch (e: Exception) {
null
}
}

View file

@ -64,18 +64,12 @@ private val getITelephony: Method by lazy {
}
}
fun TelephonyManager.getAtrUsingSlotId(slotId: Int): ByteArray? {
fun TelephonyManager.iccGetATR(slotId: Int): ByteArray? {
val telephony = getITelephony.invoke(this)
val getAtrUsingSlotId = telephony.javaClass.getMethod("getAtrUsingSlotId", Int::class.java)
return getAtrUsingSlotId.invoke(telephony, slotId) as ByteArray?
}
fun TelephonyManager.iccGetAtr(slotId: Int): String? {
val telephony = getITelephony.invoke(this)
val iccGetAtr = telephony.javaClass.getMethod("iccGetAtr", Int::class.java)
return iccGetAtr.invoke(telephony, slotId) as String?
}
fun TelephonyManager.iccOpenLogicalChannelBySlot(
slotId: Int, appletId: String?, p2: Int
): IccOpenLogicalChannelResponse =
@ -113,15 +107,10 @@ fun TelephonyManager.iccTransmitApduLogicalChannelByPort(
var TelephonyManager.simSlotMapping: Collection<UiccSlotMapping>
get() = getSimSlotMapping.invoke(this) as Collection<UiccSlotMapping>
set(new) {
setSimSlotMapping.invoke(this, new)
}
set(new) { setSimSlotMapping.invoke(this, new) }
private val requestEmbeddedSubscriptionInfoListRefresh: Method by lazy {
SubscriptionManager::class.java.getMethod(
"requestEmbeddedSubscriptionInfoListRefresh",
Int::class.java
)
SubscriptionManager::class.java.getMethod("requestEmbeddedSubscriptionInfoListRefresh", Int::class.java)
}
fun SubscriptionManager.requestEmbeddedSubscriptionInfoListRefresh(cardId: Int) {