chore: uprev lpac & lpac-jni w/ breaking changes

This commit is contained in:
Peter Cai 2023-12-30 10:00:18 -05:00
parent 8dc8e60619
commit 21b9eeb2ad
4 changed files with 43 additions and 69 deletions

View file

@ -9,7 +9,6 @@ data class EuiccInfo2(
val globalPlatformVersion: String,
val sasAccreditationNumber: String,
val ppVersion: String,
val installedApp: Int,
val freeNvram: Int,
val freeRam: Int,
)

View file

@ -1,7 +1,5 @@
package net.typeblog.lpac_jni
import java.lang.IllegalArgumentException
data class LocalProfileInfo(
val iccid: String,
val state: State,
@ -13,29 +11,33 @@ data class LocalProfileInfo(
) {
enum class State {
Enabled,
Disabled
Disabled;
companion object {
@JvmStatic
fun fromString(str: String?) =
when (str?.lowercase()) {
"enabled" -> Enabled
"disabled" -> Disabled
else -> Disabled
}
}
}
enum class Clazz {
Testing,
Provisioning,
Operational
}
Operational;
companion object {
fun stateFromString(state: String?): State =
if (state == "0") {
State.Disabled
} else {
State.Enabled
}
fun classFromString(clazz: String?): Clazz =
when (clazz) {
"0" -> Clazz.Testing
"1" -> Clazz.Provisioning
"2" -> Clazz.Operational
else -> throw IllegalArgumentException("Unknown profile class $clazz")
}
companion object {
@JvmStatic
fun fromString(str: String?) =
when (str?.lowercase()) {
"testing" -> Testing
"provisioning" -> Provisioning
"operational" -> Operational
else -> Operational
}
}
}
}

@ -1 +1 @@
Subproject commit 29984b34220581ec3779876d964b41bb566851f5
Subproject commit 76baec728ada6e9a7705bffc2e6bd68482acb839

View file

@ -12,12 +12,11 @@ JavaVM *jvm = NULL;
jclass local_profile_info_class;
jmethodID local_profile_info_constructor;
jobject local_profile_state_enabled;
jobject local_profile_state_disabled;
jclass local_profile_state_class;
jmethodID local_profile_state_from_string;
jobject local_profile_class_testing;
jobject local_profile_class_provisioning;
jobject local_profile_class_operational;
jclass local_profile_class_class;
jmethodID local_profile_class_from_string;
jstring empty_string;
@ -42,28 +41,17 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) {
local_profile_info_constructor = (*env)->GetMethodID(env, local_profile_info_class, "<init>",
"(Ljava/lang/String;Lnet/typeblog/lpac_jni/LocalProfileInfo$State;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;)V");
jclass local_profile_state_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$State");
jfieldID field_enabled = (*env)->GetStaticFieldID(env, local_profile_state_class, "Enabled", "Lnet/typeblog/lpac_jni/LocalProfileInfo$State;");
local_profile_state_enabled = (*env)->GetStaticObjectField(env, local_profile_state_class, field_enabled);
local_profile_state_enabled = (*env)->NewGlobalRef(env, local_profile_state_enabled);
jfieldID field_disabled = (*env)->GetStaticFieldID(env, local_profile_state_class, "Disabled", "Lnet/typeblog/lpac_jni/LocalProfileInfo$State;");
local_profile_state_disabled = (*env)->GetStaticObjectField(env, local_profile_state_class, field_disabled);
local_profile_state_disabled = (*env)->NewGlobalRef(env, local_profile_state_disabled);
local_profile_state_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$State");
local_profile_state_class = (*env)->NewGlobalRef(env, local_profile_state_class);
local_profile_state_from_string = (*env)->GetStaticMethodID(env, local_profile_state_class, "fromString", "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$State;");
jclass local_profile_class_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$Clazz");
jfieldID field_testing = (*env)->GetStaticFieldID(env, local_profile_class_class, "Testing", "Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
local_profile_class_testing = (*env)->GetStaticObjectField(env, local_profile_class_class, field_testing);
local_profile_class_testing = (*env)->NewGlobalRef(env, local_profile_class_testing);
jfieldID field_provisioning = (*env)->GetStaticFieldID(env, local_profile_class_class, "Provisioning", "Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
local_profile_class_provisioning = (*env)->GetStaticObjectField(env, local_profile_class_class, field_provisioning);
local_profile_class_provisioning = (*env)->NewGlobalRef(env, local_profile_class_provisioning);
jfieldID field_operational = (*env)->GetStaticFieldID(env, local_profile_class_class, "Operational", "Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
local_profile_class_operational = (*env)->GetStaticObjectField(env, local_profile_class_class, field_operational);
local_profile_class_operational = (*env)->NewGlobalRef(env, local_profile_class_operational);
local_profile_class_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$Clazz");
local_profile_class_class = (*env)->NewGlobalRef(env, local_profile_class_class);
local_profile_class_from_string = (*env)->GetStaticMethodID(env, local_profile_class_class, "fromString", "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
euicc_info2_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/EuiccInfo2");
euicc_info2_class = (*env)->NewGlobalRef(env, euicc_info2_class);
euicc_info2_constructor = (*env)->GetMethodID(env, euicc_info2_class, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;III)V");
euicc_info2_constructor = (*env)->GetMethodID(env, euicc_info2_class, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V");
const char _unused[1];
empty_string = (*env)->NewString(env, _unused, 0);
@ -153,30 +141,15 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cGetProfilesInfo(JNIEnv *env, jobject th
jstring nickName = info[i].profileNickname ? toJString(env, info[i].profileNickname) : (*env)->NewLocalRef(env, empty_string);
jstring serviceProvider = info[i].serviceProviderName ? toJString(env, info[i].serviceProviderName) : (*env)->NewLocalRef(env, empty_string);
jobject state;
switch (info[i].profileState) {
case ES10C_PROFILE_INFO_STATE_ENABLED:
state = local_profile_state_enabled;
break;
case ES10C_PROFILE_INFO_STATE_DISABLED:
state = local_profile_state_disabled;
break;
}
state = (*env)->NewLocalRef(env, state);
jobject state =
(*env)->CallStaticObjectMethod(env, local_profile_state_class,
local_profile_state_from_string,
toJString(env, info[i].profileState));
jobject class;
switch (info[i].profileClass) {
case ES10C_PROFILE_INFO_CLASS_TEST:
class = local_profile_class_testing;
break;
case ES10C_PROFILE_INFO_CLASS_PROVISIONING:
class = local_profile_class_provisioning;
break;
case ES10C_PROFILE_INFO_CLASS_OPERATIONAL:
class = local_profile_class_operational;
break;
}
class = (*env)->NewLocalRef(env, class);
jobject class =
(*env)->CallStaticObjectMethod(env, local_profile_class_class,
local_profile_class_from_string,
toJString(env, info[i].profileClass));
jobject jinfo = (*env)->NewObject(env, local_profile_info_class, local_profile_info_constructor,
iccid, state, name, nickName, serviceProvider, isdpAid, class);
@ -266,7 +239,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cexGetEuiccInfo2(JNIEnv *env, jobject th
profile_version, sgp22_version, euicc_firmware_version,
uicc_firmware_version, global_platform_version,
sas_accreditation_number, pp_version,
info.installed_app, info.free_nvram, info.free_ram);
info.free_nvram, info.free_ram);
out:
(*env)->DeleteLocalRef(env, profile_version);