arn-c0de / arn-c0de/Geograbber
[Feature] Bypass WiFi Scan Throttling – Auto-Refresh via Accessibility (vs. External Auto-Clicker)
- Dominant language
- Java
- Stars
- 29
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
# Bypass Android WiFi Scan Throttling (Android 9+)
**Core Problem:**
Android 9+ limits WiFi scans to **~4 every 2 minutes in background** → **15–30 sec delay** → **unusable for real-time wardriving**.
---
## Current Workarounds
| Method | How It Works | Scan Rate | Drawbacks |
|-------|--------------|-----------|---------|
| **Manual Refresh** | Open WiFi Settings → Tap "Refresh" | **1–2 sec** | Manual effort |
| **External Auto-Clicker** (3rd-party app) | Auto-tap on "Refresh" button | **~20–30/min** | **Clunky, unreliable, battery drain, needs extra app** |
| **GeoGrabber (current)** | Foreground service + system scan | **15–30 sec** | Too slow |
> **User feedback:** *"I use an auto-clicker on the WiFi refresh button – it works, but it’s annoying to set up every time."*
---
## Goal: Built-in, Reliable, Smart Auto-Refresh
### **Solution 1: Native Accessibility Auto-Refresh** (Recommended)
```java
// GeoGrabber does it internally
AccessibilityService → Detect WiFi Settings → Auto-click "Refresh" every 3 sec
```
**Advantages:**
- No external app needed
- Works **silently in background**
- Full control over timing
- **~25 scans/min** reliably
---
### **Solution 2: Root Bypass** (Optional, Advanced)
```bash
su -c "settings put global wifi_scan_throttle_enabled 0"
```
→ **Unlimited scans** (60+/min)
---
## Why Not Rely on External Auto-Clickers?
| Issue | Explanation |
|------|-------------|
| **Fragile** | Breaks if UI changes (Android update) |
| **Battery drain** | Runs separately, no optimization |
| **Setup overhead** | User must install + configure another app |
| **Security risk** | Grants full screen control to 3rd-party |
| **Not scalable** | Can’t integrate with GeoGrabber DB, map, stats |
> **Conclusion:** Auto-clicker *works*, but it’s a **hack** – we can do **better natively**.
---
## Proposed Feature: "Turbo Scan Mode"
```text
Settings → [x] Turbo Scan (Auto-Refresh)
→ "Enable Accessibility Service for GeoGrabber"
→ Live counter: "Scans/sec: 2.1"
```
### Hybrid Logic:
```text
On App Start:
├─ Root available? → Enable Root Turbo (Unlimited)
└─ Else → Enable Accessibility Turbo (~25/min)
└─ Fallback: Normal Scan (4/min)
```
---
## Expected Performance
| Mode | Scan Rate | Root? | Setup |
|------|-----------|-------|-------|
| **Normal** | 4/min | No | None |
| **Accessibility Turbo** | **20–30/min** | No | 1-click permission |
| **Root Turbo** | **60+/min** | Yes | Root + toggle |
---
## Implementation Steps
| Step | Task | Time |
|------|------|------|
| 1 | Add `AccessibilityService` for WiFi Settings detection | 2h |
| 2 | Auto-find + click "Refresh" button | 1h |
| 3 | Add "Turbo Scan" toggle + live stats | 30min |
| 4 | Root detection + SU command fallback | 1h |
| 5 | Battery + stability monitoring | 30min |
---
## User Experience
```
[Settings]
☐ Turbo Scan Mode (Beta)
↳ Uses Accessibility to auto-refresh WiFi list
↳ ~25 scans/min · +15% battery
↳ No external auto-clicker needed!
```
---
## Acceptance Criteria
- [ ] **No external app required**
- [ ] **>20 scans/min** on Android 9–15 (non-root)
- [ ] Root mode: **>50 scans/min**
- [ ] Toggle ON/OFF works instantly
- [ ] No crashes in WiFi Settings
- [ ] Battery warning if active >30min
- [ ] Clear opt-in + disable option
---
Contributor guide
Research direction
The issue names no files or tests. Start by locating the current foreground-service and system-scan flow, then evaluate the proposed AccessibilityService and optional root paths against Android 9–15 behavior. Done means meeting the listed scan-rate, toggle, stability, battery-warning, opt-in, and disable criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- mobile, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100