import frida, subprocess, time
ADB="/opt/android-sdk/platform-tools/adb"
pid=int(subprocess.run([ADB,"shell","pidof","se.foglo.svt"],capture_output=True,text=True).stdout.split()[0])
print("attach",pid,flush=True)
JS=r"""
var B=Process.findModuleByName("libil2cpp.so").base;
var calls=0, ctor=0, inAPL=false;
Interceptor.attach(B.add(0xe5a928),{onEnter:function(){inAPL=true;ctor=0;},onLeave:function(r){inAPL=false;calls++;if(calls<=4)send({g:"APL RET="+r+" GamePlayer.ctor="+ctor});}});
Interceptor.attach(B.add(0xe5a77e),{onEnter:function(){if(inAPL)ctor++;}});
setTimeout(function(){send({g:"5s: APL calls="+calls});},5000);
send({g:"live"});
"""
dev=frida.get_usb_device(timeout=10); s=dev.attach(pid); sc=s.create_script(JS)
sc.on("message",lambda m,d: print(m.get("payload",{}).get("g",""),flush=True) if isinstance(m.get("payload"),dict) else None)
sc.load(); time.sleep(7); print("done",flush=True)
