arn-c0de / arn-c0de/Geograbber

[Feature] Bypass WiFi Scan Throttling – Auto-Refresh via Accessibility (vs. External Auto-Clicker)

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
area: scanning feature performance
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.