# anyuer9837/wifiadbauto architecture

> Architecture diagram of the GitHub repository anyuer9837/wifiadbauto, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anyuer9837/wifiadbauto
- Repository: https://github.com/anyuer9837/wifiadbauto

## Overview

WifiAdbAuto is a rooted Android utility for enabling persistent wireless ADB and exposing controls over a local web service. The main workflow is opening the app or booting the phone, enabling ADB over TCP, then connecting from a computer on the same Wi-Fi; the web interface provides IP and connection details plus controls. The README documents the web and boot capabilities, but the sampled source did not include runtime implementations, so some internal wiring is omitted.

Main entry points: [`app/src/main/java/com/example/wifiadb/MainActivity.java`](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/MainActivity.java) (App home), [`app/src/main/java/com/example/wifiadb/AdbWireless.java`](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/AdbWireless.java) (ADB controls), [`app/src/main/java/com/example/wifiadb/SimpleHttpServer.java`](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/SimpleHttpServer.java) (HTTP server), [`app/src/main/java/com/example/wifiadb/BootReceiver.java`](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/BootReceiver.java) (Boot receiver)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Android app"]
  node_activity["App home<br/>[MainActivity.java]"]
  node_bootreceiver["Boot receiver<br/>[BootReceiver.java]"]
  node_iputils["IP utilities<br/>[IpUtils.java]"]
end

subgraph group_adb["Wireless ADB"]
  node_adbwireless["ADB controls<br/>[AdbWireless.java]"]
  node_rootshell["Root shell<br/>[RootShell.java]"]
  node_adbd["Android adbd"]
end

subgraph group_web["Web discovery"]
  node_webservice["Discovery service<br/>[WebService.java]"]
  node_httpserver["HTTP server"]
end

node_user(("Phone user"))
node_computer(("Computer"))
node_browser(("Web browser"))
node_boot(("Android boot"))

node_user -->|"opens"| node_activity
node_activity -->|"starts"| node_webservice
node_activity -->|"toggles ADB"| node_adbwireless
node_activity -->|"gets IP"| node_iputils
node_boot -->|"broadcasts"| node_bootreceiver
node_bootreceiver -->|"enables ADB"| node_adbwireless
node_adbwireless -->|"runs commands"| node_rootshell
node_rootshell -->|"restarts"| node_adbd
node_adbwireless -->|"sets TCP port"| node_adbd
node_webservice -->|"starts server"| node_httpserver
node_computer -->|"opens page"| node_browser
node_browser -->|"requests page"| node_httpserver
node_httpserver -->|"serves controls"| node_browser
node_computer -->|"connects on 5555"| node_adbd

click node_activity "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/MainActivity.java"
click node_bootreceiver "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/BootReceiver.java"
click node_iputils "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/IpUtils.java"
click node_adbwireless "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/AdbWireless.java"
click node_rootshell "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/RootShell.java"
click node_webservice "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/WebService.java"
click node_httpserver "https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/SimpleHttpServer.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_activity,node_bootreceiver,node_iputils,node_user,node_browser toneBlue
class node_adbwireless,node_rootshell,node_adbd toneAmber
class node_webservice,node_httpserver toneMint
class node_computer,node_boot toneIndigo
```

## Components

### Android app

- [App home](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/MainActivity.java): `app/src/main/java/com/example/wifiadb/MainActivity.java`
- [Boot receiver](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/BootReceiver.java): `app/src/main/java/com/example/wifiadb/BootReceiver.java`
- [IP utilities](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/IpUtils.java): `app/src/main/java/com/example/wifiadb/IpUtils.java`

### Wireless ADB

- [ADB controls](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/AdbWireless.java): `app/src/main/java/com/example/wifiadb/AdbWireless.java`
- [Root shell](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/RootShell.java): `app/src/main/java/com/example/wifiadb/RootShell.java`
- **Android adbd**

### Web discovery

- [Discovery service](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/WebService.java): `app/src/main/java/com/example/wifiadb/WebService.java`
- [HTTP server](https://github.com/anyuer9837/wifiadbauto/blob/main/app/src/main/java/com/example/wifiadb/SimpleHttpServer.java): `app/src/main/java/com/example/wifiadb/SimpleHttpServer.java`

### Other components

- **Phone user**
- **Computer**
- **Web browser**
- **Android boot**

## Connections

- Phone user → App home: opens
- App home → Discovery service: starts
- App home → ADB controls: toggles ADB
- App home → IP utilities: gets IP
- Android boot → Boot receiver: broadcasts
- Boot receiver → ADB controls: enables ADB
- ADB controls → Root shell: runs commands
- Root shell → Android adbd: restarts
- ADB controls → Android adbd: sets TCP port
- Discovery service → HTTP server: starts server
- Computer → Web browser: opens page
- Web browser → HTTP server: requests page
- HTTP server → Web browser: serves controls
- Computer → Android adbd: connects on 5555
