Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the bundled HTTP Toolkit Android hook backend with an original, experimental Scope Java engine on Frida. This PR remains draft: actual Android/Frida/TLS/unpinning/Stop acceptance is NOT RUN.
The engine admits fallback only after validating a peer chain against the configured Scope CA, preserving hostname/expiry checks and unrelated original trust/pin errors. Readiness requires every requested installed capability. The worker validates a complete single public X.509 CA before Frida import/contact. Recognized lazy
check$okhttpconfigurations fail explicitly; the ordinary-Java acceptance target is real OkHttp 3.14.9.Rust validates worker receipts, persists attempted-spawn/PID recovery, allows bounded cleanup and drains final output before accepting termination. Stop ends the worker-spawned app. Missing acknowledgments or ambiguous state retain recovery; saved PIDs are never killed during restart reconciliation. Root hiding and automatic system-CA installation are removed; system-proxy HTTPS needs manually configured app trust. Legacy cleanup, the unchanged attributed Frida bridge/licenses and source history remain. Core HTTP(S) proxy/archive behavior is unchanged.
The original lab APK uses checksum-locked OkHttp/Okio, a deliberately wrong pin, default/isolated public-CA controls and bounded loopback TLS fixtures. See engine coverage and the acceptance recipe.
Diagnostic memory optimization and testing
The follow-up bounds stdout/stderr framing before JSON parsing to 64 KiB, with fixed input/frame buffers. Oversized/invalid stdout latches a terminal failure; later ready/stopped receipts cannot erase it. Receipts are never truncated and parsed. Stderr drains oversized lines and resumes, preserving generation isolation. Stored log strings are limited to 4 KiB UTF-8 including the truncation marker, with at most 200 entries and bounded allocation capacity.
For the same synthetic profile (205 entries × 16 KiB, retain latest 200), stored payload fell 3,276,800 → 819,200 bytes (75% less); candidate String capacities also total 819,200. This is diagnostic storage, not total RSS or Android throughput. Normal Python messages were already bounded; malformed/custom stdout and unbounded stderr motivated the additional host limits.
A proposed class-wrapper cache was rejected: Frida already caches wrappers, warm class-factory misses were zero before/after and Node timings were mixed. No JNI/Android speedup is claimed. TLS decisions and certificate validity/path checks remain uncached.
Observed validation and provenance
Text file busy; isolated and final full checks passed without weakening behavior.4edeb09: three-platform package/smoke CI and four CodeQL analyses. These results precede the diagnostic optimization.f738ab4bb8f235f2a1055602f162b4b36aa52852: full Windows/macOS/Linux checks, including package, real desktop/MCP smoke, public resources and uploads; all four CodeQL analyses. Logs confirm JS engine 16/Python device 23 on each platform and host fixture helpers 10 on Linux; macOS confirms all 45 device Rust tests. This supersedes the earlier hosted evidence for the current source.NOT RUN: actual Android hook/TLS/pin/hostname/Stop/proxy behavior, API/ABI compatibility and interactive desktop acceptance. The controlled emulator prerequisite progressed beyond an initial crash with ordinary private directory preparation, but ADB aborts on read-only standard user storage in this executor. A functioning lab executor is required; no host security/home/trust-store change was made. Host doubles, certificate fixtures and a signed APK do not establish Android behavior.
No merge, ready transition, release, tag move, manual workflow dispatch or engine/service change is included.