#!/system/bin/sh
# Persistent frida IMEI spoof injector — spawned from KSU service.sh at boot
# Waits for frida-server + com.android.phone, then injects imei_spoof.js
# Runs in background, re-injects if phone process restarts

FRIDA_HOST="127.0.0.1"
SPOOF_JS="/data/local/tmp/imei_spoof.js"
LOG="/data/local/tmp/.pn_inject.log"
INJECTED_PID=""

log() { echo "$(date '+%Y%m%d-%H%M%S') $*" >> "$LOG"; }

log "INJECT_LOOP_START"

# Wait for frida-server to be ready (max 120s)
i=0
until frida-ps -H "$FRIDA_HOST" > /dev/null 2>&1; do
    i=$((i+1)); [ $i -gt 24 ] && { log "FRIDA_TIMEOUT"; exit 1; }
    sleep 5
done
log "FRIDA_SERVER_OK"

while true; do
    # Check if com.android.phone is running
    PHONE_PID=$(frida-ps -H "$FRIDA_HOST" 2>/dev/null | awk '/com\.android\.phone/{print $1}')
    if [ -n "$PHONE_PID" ] && [ "$PHONE_PID" != "$INJECTED_PID" ]; then
        log "INJECT_START pid=$PHONE_PID"
        frida -H "$FRIDA_HOST" -n com.android.phone \
            -l "$SPOOF_JS" > /dev/null 2>&1 &
        INJECTED_PID="$PHONE_PID"
        log "INJECT_DONE"
    fi
    sleep 30
done
