Files
EuiccSlotsFix/module/esimd-manual.sh
T

57 lines
1.7 KiB
Bash
Raw Normal View History

2026-10-07 00:46:54 +03:00
#!/system/bin/sh
ESIM_SVC="vendor.oplus.hardware.esim.IOplusEsim/default"
SUB_SVC="vendor.oplus.hardware.subsys_interface.subsys_radio.ISubsysRadio/slot1"
LOG=/data/adb/euicc_daemon.log
M1="i32 2 i32 1 i32 0 i32 0 i32 0 i32 1 i32 1 i32 0 i32 1 i32 1 i32 1"
M2="i32 2 i32 1 i32 0 i32 0 i32 0 i32 1 i32 1 i32 0 i32 1 i32 1 i32 2"
log() {
echo "$(date '+%F %T') [manual] $*" >> "$LOG"
echo "$*"
}
gpio_state() {
service call "$ESIM_SVC" 1 2>/dev/null | grep -oE '[0-9a-f]{8} [0-9a-f]{8}' | head -1 | awk '{print $2}'
}
detected() {
dumpsys isub 2>/dev/null | grep -c 'simSlotIndex=1 portIndex=0 isEmbedded=1'
}
log "=== manual cycle start ==="
service call "$ESIM_SVC" 5 i32 0 >/dev/null 2>&1
service call "$SUB_SVC" 289 i32 91 i32 1 >/dev/null 2>&1
service call "$ESIM_SVC" 3 i32 1 >/dev/null 2>&1
service call "$ESIM_SVC" 5 i32 1 >/dev/null 2>&1
sleep 1
log "gpio=$(gpio_state)"
logcat -c -b radio 2>/dev/null
service call phone 175 $M1 >/dev/null 2>&1
sleep 2
log "SET_SIM_TYPE[1,1] sent, restarting qcrild..."
setprop ctl.restart vendor.qcrild
setprop ctl.restart vendor.qcrild2
t=0
while [ $t -lt 40 ]; do
n=$(logcat -d -b radio 2>/dev/null | grep -c "Received GET_SIM_TYPE_INFO")
[ "${n:-0}" -ge 1 ] 2>/dev/null && break
sleep 1
t=$((t+1))
done
log "ril sync after ${t}s"
service call phone 175 $M2 >/dev/null 2>&1
log "SET_SIM_TYPE[1,2] sent, waiting for eSIM detection..."
p=0
while [ $p -lt 15 ]; do
sleep 3
p=$((p+1))
d=$(detected)
[ "${d:-0}" -ge 1 ] 2>/dev/null && break
done
log "=== manual cycle done: detect=$(detected) ($((p * 3))s) ==="
pgrep -f esimd.sh >/dev/null 2>&1 || setsid /system/bin/sh /data/adb/modules/euicc_slots_fix/esimd.sh >/dev/null 2>&1 </dev/null &
exit 0