Solution to SIM Card HAL Error
@TheHan45
framework.jar
TelephonyManager.smali enter this
and delete the codes I gave below
Landroid/telephony/TelephonyManager$HalService;,
.field public static final HAL_SERVICE_DATA:I = 0x1
.field public static final HAL_SERVICE_IMS:I = 0x7
.field public static final HAL_SERVICE_MESSAGING:I = 0x2
.field public static final HAL_SERVICE_MODEM:I = 0x3
.field public static final HAL_SERVICE_NETWORK:I = 0x4
.field public static final HAL_SERVICE_RADIO:I = 0x0
.field public static final HAL_SERVICE_SIM:I = 0x5
.field public static final HAL_SERVICE_VOICE:I = 0x6
.field public static final HAL_VERSION_UNKNOWN:Landroid/util/Pair;
.field public static final HAL_VERSION_UNSUPPORTED:Landroid/util/Pair;
new-instance v0, Landroid/util/Pair;
const/4 v1, -0x1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-direct {v0, v1, v1}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
sput-object v0, Landroid/telephony/TelephonyManager;->HAL_VERSION_UNKNOWN:Landroid/util/Pair;
new-instance v0, Landroid/util/Pair;
const/4 v1, -0x2
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-direct {v0, v1, v1}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
sput-object v0, Landroid/telephony/TelephonyManager;->HAL_VERSION_UNSUPPORTED:Landroid/util/Pair;
**Delete this method
.method public getHalVersion(I)Landroid/util/Pair;
**Replace the existing method with the one below
.method public getRadioHalVersion()Landroid/util/Pair;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
const/4 v0, -0x1
:try_start_1
invoke-static {}, Landroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
move-result-object v1
if-eqz v1, :cond_2d
invoke-interface {v1}, Lcom/android/internal/telephony/ITelephony;->getRadioHalVersion()I
move-result v2
if-ne v2, v0, :cond_1b
new-instance v3, Landroid/util/Pair;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-direct {v3, v4, v5}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
return-object v3
:cond_1b
new-instance v3, Landroid/util/Pair;
div-int/lit8 v4, v2, 0x64
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
rem-int/lit8 v5, v2, 0x64
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-direct {v3, v4, v5}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
:try_end_2c
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_2c} :catch_2e
return-object v3
:cond_2d
goto :goto_36
:catch_2e
move-exception v1
const-string v2, "TelephonyManager"
const-string v3, "getRadioHalVersion() RemoteException"
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_36
new-instance v1, Landroid/util/Pair;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-direct {v1, v2, v0}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
return-object v1
.end method