57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/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
|