Why Accessibility?
Aido is not a traditional app; it is an "overlay" tool designed to help you write better in other apps (like WhatsApp, Telegram, Gmail). Android does not allow apps to read or write text in other apps unless they use the Accessibility API.
We use this powerful permission for exactly two technical reasons:
- To "Read" Triggers: We monitor for specific keywords (like
@aidoor@fixg) so we know when to activate. - To "Write" Responses: Once the AI generates a response, we use this permission to insert the text into the field for you.
The Accessibility Service is activated only after explicit user action and remains inactive otherwise.
Strict Boundaries
Because this permission is sensitive, we have hard-coded strict boundaries into the
AidoAccessibilityService.kt file.
The Accessibility Service does NOT run continuously. It reacts only to user-initiated text input events and immediately returns to an idle state.
Critical: Trigger-Only Processing
Your text is ONLY processed when you use a trigger command (like
@aido or @fixg).
- We do NOT continuously read your text
- We do NOT send anything to AI unless you explicitly trigger it
- If you don't use a trigger, nothing is processed or transmitted
WE NEVER ACCESS:
- Password Fields: The service is programmed to ignore fields marked as
InputType.TYPE_TEXT_VARIATION_PASSWORD. - Secure Apps: We do not collect credit card numbers or sensitive data. Android automatically prevents screen reading in secure fields (like passwords), and you can manually block specific apps in Settings.
- Biometric Data: We do not interact with fingerprint or face scanners.
Technical Logic Disclosure
For technical transparency, here is how our event processing loop works conceptually:
fun onAccessibilityEvent(event: Event) {
// 1. Safety Check: Is app disabled or paused?
if (isPaused || disabledApps.contains(event.packageName)) return;
// 2. Event Filter: Only look at text changes
if (event.type != TYPE_VIEW_TEXT_CHANGED) return;
// 3. Trigger Detection: Does text end with command?
val text = event.text.toString()
if (text.endsWith("@aido")) {
processAiCommand(text)
}
}
Note the disabledApps check. You can blacklist any app in Aido settings, and our
service will completely ignore all events from that app at the code level.
User Control
You have absolute control over this service.
- Opt-In Only: You must manually enable this in Android Settings.
- Revocable: You can turn it off at any time.
- Selective: You can use the "Blacklist" feature to block Aido from running in specific sensitive apps.