diff --git a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelImpl.kt b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelImpl.kt index 3da829a..a82cb97 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelImpl.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/EuiccChannelImpl.kt @@ -15,21 +15,12 @@ class EuiccChannelImpl( verboseLoggingFlow: Flow, ignoreTLSCertificateFlow: Flow ) : EuiccChannel { - companion object { - // TODO: This needs to go somewhere else. - val ISDR_AID = "A0000005591010FFFFFFFF8900000100".decodeHex() - } - override val slotId = port.card.physicalSlotIndex override val logicalSlotId = port.logicalSlotIndex override val portId = port.portIndex override val lpa: LocalProfileAssistant = - LocalProfileAssistantImpl( - ISDR_AID, - apduInterface, - HttpInterfaceImpl(verboseLoggingFlow, ignoreTLSCertificateFlow) - ) + LocalProfileAssistantImpl(apduInterface, HttpInterfaceImpl(verboseLoggingFlow, ignoreTLSCertificateFlow)) override val atr: ByteArray? get() = (apduInterface as? ApduInterfaceAtrProvider)?.atr diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/LpacJni.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/LpacJni.kt index fa9474f..370fcab 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/LpacJni.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/LpacJni.kt @@ -5,11 +5,7 @@ internal object LpacJni { System.loadLibrary("lpac-jni") } - external fun createContext( - isdrAid: ByteArray, - apduInterface: ApduInterface, - httpInterface: HttpInterface - ): Long + external fun createContext(apduInterface: ApduInterface, httpInterface: HttpInterface): Long external fun destroyContext(handle: Long) external fun euiccInit(handle: Long): Int diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt index 8aafe94..7310acd 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/LocalProfileAssistantImpl.kt @@ -12,7 +12,6 @@ import net.typeblog.lpac_jni.LocalProfileNotification import net.typeblog.lpac_jni.ProfileDownloadCallback class LocalProfileAssistantImpl( - isdrAid: ByteArray, rawApduInterface: ApduInterface, rawHttpInterface: HttpInterface ): LocalProfileAssistant { @@ -77,7 +76,7 @@ class LocalProfileAssistantImpl( private val httpInterface = HttpInterfaceWrapper(rawHttpInterface) private var finalized = false - private var contextHandle: Long = LpacJni.createContext(isdrAid, apduInterface, httpInterface) + private var contextHandle: Long = LpacJni.createContext(apduInterface, httpInterface) init { if (LpacJni.euiccInit(contextHandle) < 0) { diff --git a/libs/lpac-jni/src/main/jni/lpac b/libs/lpac-jni/src/main/jni/lpac index 90f7104..a5a0516 160000 --- a/libs/lpac-jni/src/main/jni/lpac +++ b/libs/lpac-jni/src/main/jni/lpac @@ -1 +1 @@ -Subproject commit 90f7104847d4bb392b275746da20a55177a67573 +Subproject commit a5a0516f084936e7e87cf7420fb99283fa3052ef diff --git a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c index 6ea9d3e..38d4f3a 100644 --- a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c +++ b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c @@ -37,30 +37,17 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEXPORT jlong JNICALL Java_net_typeblog_lpac_1jni_LpacJni_createContext(JNIEnv *env, jobject thiz, - jbyteArray isdr_aid, jobject apdu_interface, jobject http_interface) { struct lpac_jni_ctx *jni_ctx = NULL; struct euicc_ctx *ctx = NULL; - jbyte *isdr_java = NULL; - uint32_t isdr_len = 0; - uint8_t *isdr_c = NULL; ctx = calloc(1, sizeof(struct euicc_ctx)); jni_ctx = calloc(1, sizeof(struct lpac_jni_ctx)); - - isdr_java = (*env)->GetByteArrayElements(env, isdr_aid, JNI_FALSE); - isdr_len = (*env)->GetArrayLength(env, isdr_aid); - isdr_c = calloc(isdr_len, sizeof(uint8_t)); - memcpy(isdr_c, isdr_java, isdr_len); - (*env)->ReleaseByteArrayElements(env, isdr_aid, isdr_java, JNI_ABORT); - ctx->apdu.interface = &lpac_jni_apdu_interface; ctx->http.interface = &lpac_jni_http_interface; jni_ctx->apdu_interface = (*env)->NewGlobalRef(env, apdu_interface); jni_ctx->http_interface = (*env)->NewGlobalRef(env, http_interface); - ctx->aid = (const uint8_t *) isdr_c; - ctx->aid_len = isdr_len; ctx->userdata = (void *) jni_ctx; return (jlong) ctx; } @@ -73,7 +60,6 @@ Java_net_typeblog_lpac_1jni_LpacJni_destroyContext(JNIEnv *env, jobject thiz, jl (*env)->DeleteGlobalRef(env, jni_ctx->apdu_interface); (*env)->DeleteGlobalRef(env, jni_ctx->http_interface); free(jni_ctx); - free((void *) ctx->aid); free(ctx); }