mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 06:08:30 +09:00
[Refactor] (TraceReplay): reorganize trace skills into uniform packages with bundled scripts
This commit is contained in:
+65
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
REMOTE_ROOT = "/sdcard/FCL/mobilegl-trace"
|
||||
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||
DEFAULT_WRAPPER = SCRIPT_DIR / "out" / "egltrace.so"
|
||||
|
||||
|
||||
def adb(serial, args):
|
||||
cmd = ["adb"]
|
||||
if serial:
|
||||
cmd += ["-s", serial]
|
||||
cmd += args
|
||||
print("+", " ".join(cmd), flush=True)
|
||||
subprocess.run(cmd, check=True)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--serial")
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
install = sub.add_parser("install-wrapper")
|
||||
install.add_argument("--wrapper", default=str(DEFAULT_WRAPPER))
|
||||
|
||||
sub.add_parser("enable")
|
||||
sub.add_parser("disable")
|
||||
sub.add_parser("capture-once")
|
||||
|
||||
pull = sub.add_parser("pull-latest")
|
||||
pull.add_argument("--output", default=".trace-work/pulled-mobilegl-captures")
|
||||
|
||||
args = parser.parse_args()
|
||||
serial = args.serial
|
||||
|
||||
if args.command == "install-wrapper":
|
||||
wrapper = Path(args.wrapper)
|
||||
if not wrapper.exists():
|
||||
raise SystemExit(f"missing wrapper: {wrapper}")
|
||||
adb(serial, ["shell", "mkdir", "-p", REMOTE_ROOT])
|
||||
adb(serial, ["push", str(wrapper), f"{REMOTE_ROOT}/egltrace.so"])
|
||||
elif args.command == "enable":
|
||||
adb(serial, ["shell", "mkdir", "-p", REMOTE_ROOT])
|
||||
adb(serial, ["shell", f"printf enabled > {REMOTE_ROOT}/enable"])
|
||||
elif args.command == "disable":
|
||||
adb(serial, ["shell", "rm", "-f", f"{REMOTE_ROOT}/enable"])
|
||||
elif args.command == "capture-once":
|
||||
adb(serial, ["shell", "mkdir", "-p", REMOTE_ROOT])
|
||||
adb(serial, ["shell", f"date +%s%3N > {REMOTE_ROOT}/capture-once.request"])
|
||||
elif args.command == "pull-latest":
|
||||
tmp = subprocess.check_output((["adb"] + (["-s", serial] if serial else []) +
|
||||
["shell", "cat", f"{REMOTE_ROOT}/latest-session.txt"]),
|
||||
text=True, encoding="utf-8", errors="replace").strip()
|
||||
if not tmp:
|
||||
raise SystemExit("no latest-session.txt on device")
|
||||
output = Path(args.output)
|
||||
output.mkdir(parents=True, exist_ok=True)
|
||||
adb(serial, ["pull", tmp, str(output / Path(tmp).name)])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user