[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81340":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":18,"lastSyncTime":28,"discoverSource":29},81340,"SocketSweep","VishnuSrivatsava\u002FSocketSweep","VishnuSrivatsava","A high-performance Android storage analyzer that bypasses MTP using a native C++ daemon, a Rust TCP bridge, and a React Treemap UI.","https:\u002F\u002Fyoutu.be\u002Fttsc6Xf6Xb4",null,"TypeScript",54,3,1,0,6,12,2,1.81,"GNU General Public License v3.0",false,"main",true,[],"2026-06-12 02:04:13","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fsocket_sweep_logo.png\" alt=\"SocketSweep Logo\" width=\"200\" \u002F>\n  \u003Ch1>SocketSweep\u003C\u002Fh1>\n  \u003Cp>\u003Cstrong>A high-performance Android storage analyzer built to completely bypass the agonizingly slow USB MTP.\u003C\u002Fstrong>\u003C\u002Fp>\n  \n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPL_3.0-blue.svg\" alt=\"License: GPL 3.0\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-v2-FFC131.svg?logo=tauri&logoColor=white\" alt=\"Tauri v2\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB.svg?logo=react&logoColor=black\" alt=\"React 19\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FC%2B%2B-17-00599C.svg?logo=c%2B%2B&logoColor=white\" alt=\"C++17\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRust-1.70+-000000.svg?logo=rust&logoColor=white\" alt=\"Rust\" \u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\nBy pushing a custom C++ daemon directly to your Android device via ADB and communicating over a local TCP tunnel, SocketSweep achieves near-instantaneous filesystem traversals and deletions. If you have ever waited minutes just to see the contents of your Android's `\u002Fsdcard` directory over a USB cable, SocketSweep is the ultimate, blazing-fast alternative.\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>📺 Watch the Full Architecture Breakdown\u003C\u002Fh3>\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fttsc6Xf6Xb4\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Fttsc6Xf6Xb4\u002Fmaxresdefault.jpg\" alt=\"SocketSweep Demo Video\" width=\"70%\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fttsc6Xf6Xb4\">\u003Cstrong>▶ USB File Transfer is Broken. So I Built My Own Protocol.\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n---\n\n## 📸 Screenshots\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fui.png\" alt=\"SocketSweep Dashboard\" width=\"45%\" \u002F>\n  \u003Cimg src=\"assets\u002Ftree.png\" alt=\"SocketSweep Treemap\" width=\"45%\" \u002F>\n  \u003Cbr \u002F>\n  \u003Cp>\u003Cem>Left: The Connection Dashboard | Right: The Interactive Treemap Visualization\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n---\n\n## 📥 Downloads\n\n**[Download SocketSweep v1.0.0](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0)**\n\n* **🪟 Windows:** [Standard Installer (.exe)](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0) | [Enterprise Package (.msi)](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0)\n* **🍎 macOS (Apple Silicon):** [Disk Image (.dmg)](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0)\n  * *Note: Since the macOS build is ad-hoc signed, please run `xattr -cr \u002FApplications\u002FSocketSweep.app` in your Terminal once after moving the app to your Applications folder.*\n* **🐧 Linux:** [Standalone AppImage](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0) | [Debian\u002FUbuntu Package (.deb)](https:\u002F\u002Fgithub.com\u002FVishnuSrivatsava\u002FSocketSweep\u002Freleases\u002Ftag\u002Fv1.0.0)\n\n---\n\n## 🏗 System Architecture\n\nSocketSweep operates across a three-layer stack: **The Glass** (Frontend), **The Bridge** (Rust Backend), and **The Engine** (C++ Android Daemon).\n\n```mermaid\nflowchart TB\n    subgraph Host[\"Host Desktop\"]\n        UI[\"React + Recharts\u003Cbr>Interactive Dashboard\"]\n        Bridge[\"Rust \u002F Tauri Backend\u003Cbr>Command Orchestrator\"]\n        \n        UI \u003C--> Bridge\n    end\n\n    subgraph Transport[\"ADB Protocol\"]\n        Tunnel[\"ADB Port Forwarding\u003Cbr>TCP:5050 -> TCP:5050\"]\n    end\n\n    subgraph Device[\"Android Device\"]\n        Daemon[\"C++17 Daemon\u003Cbr>Headless Socket Server\"]\n        Storage[(\"POSIX Filesystem\u003Cbr>\u002Fsdcard\")]\n        \n        Daemon \u003C--> Storage\n    end\n\n    Bridge \u003C--> Tunnel\n    Tunnel \u003C--> Daemon\n```\n\n## 🔄 Interaction Lifecycle\n\n```mermaid\nsequenceDiagram\n    participant U as React UI\n    participant R as Rust (Tauri)\n    participant A as ADB Shell\n    participant D as C++ Daemon (Android)\n    \n    %% Connect Phase\n    U->>R: invoke(\"init_daemon\")\n    R->>A: pkill daemon (Cleanup)\n    R->>A: push daemon \u002Fdata\u002Flocal\u002Ftmp\n    R->>A: appops set MANAGE_EXTERNAL_STORAGE allow\n    R->>A: nohup .\u002Fdaemon &\n    R->>A: adb forward tcp:5050 tcp:5050\n    R->>D: Ping-Retry Loop (150ms)\n    D-->>R: ACK Connection\n    R-->>U: Connected!\n    \n    %% Scan Phase\n    U->>R: invoke(\"run_scan\", { path: \"\u002Fsdcard\" })\n    R->>D: TCP Send: `SCAN \u002Fsdcard\\n`\n    Note over D: Recursive Fast POSIX Traversal\n    D-->>R: Stream Large JSON Tree\n    R-->>U: Parse & Render Treemap\n    \n    %% Delete Phase\n    U->>R: invoke(\"delete_item\", { path })\n    R->>D: TCP Send: `DELETE \u002Fsdcard\u002F... \\n`\n    Note over D: std::filesystem::remove_all\n    D-->>R: {\"status\":\"ok\"}\n    R-->>U: Update UI \u002F Rescan\n```\n\n---\n\n## 🚀 Development Setup & Build\n\n### Prerequisites\n1. **Node.js** (v18+)\n2. **Rust** (v1.70+ with Cargo)\n3. **Android NDK** (v26d or newer)\n4. **Android SDK \u002F ADB** installed and added to your system `$PATH`.\n\n### 1. Compile the C++ Engine (Android Daemon)\nYou must cross-compile the C++ daemon for `aarch64-linux-android` before running the app.\n```bash\n# Set your NDK path\nexport NDK=\u002Fpath\u002Fto\u002Fyour\u002Fandroid-ndk-r26d\n\n# Build the daemon\ncd engine\nbash .\u002Fbuild.sh\n```\n*This will generate the stripped `daemon` binary in the `engine\u002F` directory.*\n\n### 2. Install Frontend Dependencies\n```bash\n# Return to project root\ncd ..\nnpm install\n```\n\n### 3. Run the App\n```bash\nnpm run tauri dev\n```\n*Ensure your Android device is plugged in via USB and **USB Debugging** is enabled.*\n\n---\n\n## 🛠 Troubleshooting\n\n### \"0 Files\" or Missing Folders on Android 11+\nAndroid 11 introduced Scoped Storage, heavily restricting file access. SocketSweep automatically attempts to grant itself bypass permissions via ADB:\n```bash\nadb shell appops set com.android.shell MANAGE_EXTERNAL_STORAGE allow\n```\nIf your device still refuses to scan `\u002Fsdcard`, ensure that you haven't blocked ADB from managing permissions in your developer options (some OEMs like Xiaomi require \"USB Debugging (Security settings)\" to be toggled on).\n\n### Daemon Fails to Start\nIf the daemon is killed immediately or throws `Permission denied`, ensure it is being executed from `\u002Fdata\u002Flocal\u002Ftmp\u002F`. Modern Android versions prevent executing binaries stored directly on the `\u002Fsdcard\u002F`. SocketSweep handles this automatically by pushing to `\u002Fdata\u002Flocal\u002Ftmp\u002Fsocketsweep_daemon`.\n\n---\n\n## 📄 License\n\nSocketSweep is released under the **GNU General Public License v3.0**. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n## 👋 Author\n\nBuilt by **Vishnu Srivatsava**. Currently looking for Backend \u002F Systems Engineering roles. Feel free to reach out on [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fvishnu-srivatsava-642222238\u002F) or via [email](mailto:vishnusrivatsava@gmail.com).\n\n📺 **[Watch the full demo & architecture breakdown on YouTube](https:\u002F\u002Fyoutu.be\u002Fttsc6Xf6Xb4)**\n","SocketSweep 是一个高性能的 Android 存储分析工具，通过绕过 USB MTP 协议，实现近乎即时的文件系统遍历和删除。项目利用原生 C++ 守护进程、Rust TCP 桥接以及 React Treemap 用户界面来提升数据传输速度。其核心功能包括快速访问 Android 设备上的存储内容，并提供直观的数据可视化。适用于需要高效管理 Android 设备存储空间的场景，尤其是对传统 MTP 传输速度不满的用户。支持 Windows、macOS 和 Linux 平台。","2026-06-11 04:04:41","CREATED_QUERY"]