diff --git a/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelManager.kt b/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelManager.kt index dd57eab..93fa8df 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelManager.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/DefaultEuiccChannelManager.kt @@ -258,7 +258,7 @@ open class DefaultEuiccChannelManager( } } catch (e: Exception) { // Ignored -- skip forward - e.printStackTrace() + Log.e(TAG, "Failed to open eUICC channel on USB device ${device.deviceId}:${device.vendorId}", e) } Log.i(TAG, "No valid eUICC channel found on USB device ${device.deviceId}:${device.vendorId}") } diff --git a/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt b/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt index b3f42b5..cc914f1 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/OmapiApduInterface.kt @@ -82,8 +82,7 @@ class OmapiApduInterface( throw RuntimeException("Retransmit attempts exhausted; this was likely caused by checksum errors") } catch (e: Exception) { - Log.e(TAG, "OMAPI APDU exception") - e.printStackTrace() + Log.e(TAG, "OMAPI APDU exception", e) throw e } } diff --git a/app-common/src/main/java/im/angry/openeuicc/core/usb/UsbApduInterface.kt b/app-common/src/main/java/im/angry/openeuicc/core/usb/UsbApduInterface.kt index f9e764b..0798575 100644 --- a/app-common/src/main/java/im/angry/openeuicc/core/usb/UsbApduInterface.kt +++ b/app-common/src/main/java/im/angry/openeuicc/core/usb/UsbApduInterface.kt @@ -42,7 +42,7 @@ class UsbApduInterface( // https://www.usb.org/sites/default/files/DWG_Smart-Card_USB-ICC_ICCD_rev10.pdf atr = transceiver.iccPowerOn().data } catch (e: Exception) { - e.printStackTrace() + Log.e(TAG, "Failed to power on ICC", e) throw e } } @@ -60,7 +60,7 @@ class UsbApduInterface( val resp = try { transmitApduByChannel(req, 0) } catch (e: Exception) { - e.printStackTrace() + Log.e(TAG, "OPEN LOGICAL CHANNEL failed", e) return -1 } diff --git a/app-common/src/main/java/im/angry/openeuicc/util/LPAUtils.kt b/app-common/src/main/java/im/angry/openeuicc/util/LPAUtils.kt index 9f95412..9e865aa 100644 --- a/app-common/src/main/java/im/angry/openeuicc/util/LPAUtils.kt +++ b/app-common/src/main/java/im/angry/openeuicc/util/LPAUtils.kt @@ -99,7 +99,7 @@ suspend inline fun EuiccChannelManager.beginTrackedOperation( } } catch (e: Exception) { // Ignore any error during notification handling - e.printStackTrace() + Log.e(TAG, "Error during notification handling", e) } } Log.d(TAG, "Operation complete") diff --git a/app-unpriv/src/main/java/im/angry/openeuicc/UnprivilegedOpenEuiccApplication.kt b/app-unpriv/src/main/java/im/angry/openeuicc/UnprivilegedOpenEuiccApplication.kt index 7993b50..fbf56e8 100644 --- a/app-unpriv/src/main/java/im/angry/openeuicc/UnprivilegedOpenEuiccApplication.kt +++ b/app-unpriv/src/main/java/im/angry/openeuicc/UnprivilegedOpenEuiccApplication.kt @@ -1,6 +1,7 @@ package im.angry.openeuicc import android.content.Intent +import android.util.Log import im.angry.openeuicc.di.UnprivilegedAppContainer import im.angry.openeuicc.ui.LogsActivity import im.angry.openeuicc.util.* @@ -16,7 +17,7 @@ class UnprivilegedOpenEuiccApplication : OpenEuiccApplication() { super.onCreate() Thread.setDefaultUncaughtExceptionHandler { _, e -> - e.printStackTrace() + Log.e(TAG, "Uncaught exception", e) Intent(this, LogsActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) diff --git a/app-unpriv/src/main/java/im/angry/openeuicc/util/CompatibilityCheck.kt b/app-unpriv/src/main/java/im/angry/openeuicc/util/CompatibilityCheck.kt index 8424c55..91f7c62 100644 --- a/app-unpriv/src/main/java/im/angry/openeuicc/util/CompatibilityCheck.kt +++ b/app-unpriv/src/main/java/im/angry/openeuicc/util/CompatibilityCheck.kt @@ -5,6 +5,7 @@ import android.content.pm.PackageManager import android.os.Build import android.se.omapi.Reader import android.telephony.TelephonyManager +import android.util.Log import im.angry.easyeuicc.R import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -155,7 +156,7 @@ internal class IsdrChannelAccessCheck(private val context: Context): Compatibili // SecurityException is only thrown when Channel is constructed, which means everything else needs to succeed Pair(it.slotIndex, State.SUCCESS) } catch (e: IOException) { - e.printStackTrace() + Log.e(TAG, "Failed to open logical channel", e) if (e.message?.contains("Secure Element is not present") == true) { failureDescription = context.getString(R.string.compatibility_check_isdr_channel_desc_unknown) Pair(it.slotIndex, State.FAILURE_UNKNOWN) @@ -163,7 +164,7 @@ internal class IsdrChannelAccessCheck(private val context: Context): Compatibili Pair(it.slotIndex, State.FAILURE) } } catch (e: Exception) { - e.printStackTrace() + Log.e(TAG, "Failed to open logical channel", e) Pair(it.slotIndex, State.FAILURE) } }.fold(Pair(mutableListOf(), State.SUCCESS)) { (ids, result), (id, ok) -> diff --git a/app/src/main/java/im/angry/openeuicc/util/PrivilegedTelephonyUtils.kt b/app/src/main/java/im/angry/openeuicc/util/PrivilegedTelephonyUtils.kt index 650fe74..96ee446 100644 --- a/app/src/main/java/im/angry/openeuicc/util/PrivilegedTelephonyUtils.kt +++ b/app/src/main/java/im/angry/openeuicc/util/PrivilegedTelephonyUtils.kt @@ -3,6 +3,7 @@ package im.angry.openeuicc.util import android.telephony.SubscriptionManager import android.telephony.TelephonyManager import android.telephony.UiccSlotMapping +import android.util.Log import im.angry.openeuicc.core.EuiccChannel import im.angry.openeuicc.core.EuiccChannelManager import kotlinx.coroutines.flow.onEach @@ -68,7 +69,7 @@ suspend fun TelephonyManager.updateSimSlotMapping( try { simSlotMapping = newMapping } catch (e: Exception) { - e.printStackTrace() + Log.e(TAG, "Failed to update sim slot mapping", e) undo.forEach { it() } // Undo what we just did throw e // Rethrow for caller to handle } diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/HttpInterfaceImpl.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/HttpInterfaceImpl.kt index c1b15f7..36cc07b 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/HttpInterfaceImpl.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/impl/HttpInterfaceImpl.kt @@ -75,7 +75,7 @@ class HttpInterfaceImpl( return HttpInterface.HttpResponse(conn.responseCode, bytes) } catch (e: Exception) { - e.printStackTrace() + Log.e(TAG, "Failed to transmit", e) throw e } }