Version 1.0 - Jaguatirica
Android app that blocks 100% of calls not on your trusted list (whitelist). Built for the Brazilian people tired of scam calls, silent calls that record your voice, and phone spam.
Lifetime protection against scams. Anyone not on your list gets hung up on β no ring, no missed call, no notification, no fright.
Application ID: org.floatingskies.Quiet
Contact: arielcloss@gmail.com
- β Trust whitelist: only people you authorize can call you
- β Silent blocking: the call is rejected and hung up without you even knowing
- β No missed call: doesn't appear in the call log
- β No notification: no "someone tried to call you" alert
- β Block hidden/private numbers (configurable)
- β Paranoid mode: if the list is empty, ALL calls are blocked
- β Blocked call log: see who tried and how many times
- β Export CSV: for filing complaints with Anatel (Brazilian telecom agency) or Civil Police
- β
Doesn't replace Google Phone: you only authorize Quiet to filter calls (via
ROLE_CALL_SCREENING) - β Lifetime activation: 1 donation, 9-line code, works forever
- β Shareable: the code can be sent to family members
- β Works offline: code validation is 100% local (SHA-256)
| Feature | Free | Lifetime (donor) |
|---|---|---|
| Whitelist contacts | up to 11 | β UNLIMITED |
| Silent blocking | β | β |
| Block hidden numbers | β | β |
| Blocked calls log | β | β |
| Export CSV | β | β |
| Future updates | β | β |
| Price | R$ 0.00 | R$ 4.99 (one-time lifetime donation) |
This is a donation, not a purchase. It helps the developer keep the project alive, pay for servers, and improve the app for all Brazilians.
| Type | Key |
|---|---|
| π Phone | +55 69 9342-7132 |
| π§ Email | arielcloss@gmail.com |
| π¦ Bank | NUBANK |
| π€ Recipient | Ariel Closs Novais |
- User pays R$ 4.99 via PIX β either by tapping "Open bank app" inside Quiet (which opens the official Nubank payment link) or by manually using one of the keys above
- User enters their email and the transaction ID inside the app
- The developer (Ariel) receives the PIX notification at NUBANK
- Generates a 9-line code with
ferramentas/gerar_codigo.py - Sends the code via email from
arielcloss@gmail.comto the customer - Customer pastes the code into the app's activation screen β done!
β οΈ The app itself does not send emails automatically. The developer needs to generate the code and send it manually via email. In a future version, a backend can be added (e.g., Google Apps Script + Gmail API) to automate the flow.
| Android | Version | Status | Blocking method |
|---|---|---|---|
| 5.0-5.1 | Lollipop | β Works with limitations | ITelephony.endCall() via reflection |
| 6.0 | Marshmallow | β Works | ITelephony.endCall() via reflection |
| 7.0-9.0 | Nougat-Pie | β 100% silent | CallScreeningService (direct) |
| 10-14 | Q-UpsideDownCake | β 100% silent | CallScreeningService (via ROLE_CALL_SCREENING) |
On Android 10+, Quiet uses ROLE_CALL_SCREENING (via RoleManager) to be authorized as the "call screening app". This means:
- β Google Phone (or Samsung Phone, etc.) remains the default dialer
- β You make and receive calls normally through the native dialer
- β
Quiet only decides whether to block each incoming call (via
CallScreeningServicecallback) - β Same approach used by Truecaller, Should I Answer?, etc.
On these older versions, Android has no official API for silent blocking. The app uses reflection to call endCall() from ITelephony. The following may occur:
- π‘ The call may ring once before being hung up (depends on manufacturer)
- π‘ May appear as "missed call" on some devices (LG, older Xiaomi)
- π΄ May not work on rooted devices or custom ROMs
On Android 7+, blocking is 100% silent and official via CallScreeningService.
Tested and compatible with:
- β Stock Android (Pixel, Nexus, Motorola, Android One)
- β MIUI (Xiaomi, Redmi, Poco) β requires "Auto-start" enabled
- β OneUI (Samsung Galaxy) β works perfectly
- β LG UI (LG K-series, G-series) β works
- β EMUI (Huawei) β requires "Battery protection" disabled for the app
- β ColorOS (Oppo, Realme) β requires "Background start" allowed
- Android Studio Hedgehog or newer (download: https://developer.android.com/studio)
- JDK 17 (recommended: bundled jbr-17 or OpenJDK 17)
- Android SDK Platform 34 (Android 14) β Android Studio installs it automatically
- Build Tools 34.0.0
- Internet connection to download Gradle dependencies the first time
# 1. Copy the BloqueadorChamadasBR folder to your computer
# 2. Open Android Studio β "Open" β select the BloqueadorChamadasBR folder
# 3. Choose the Gradle JDK: jbr-17 (preferred) or Embedded JDK
# 4. Wait for Gradle to sync (5-15 min the first time)
# 5. To build a debug APK (for testing):
# Menu Build β Build Bundle(s)/APK(s) β Build APK(s)
# 6. To build a release APK (for distribution):
# Menu Build β Generate Signed Bundle / APK β APK
# Create a keystore (first time) and fill in the detailsThe APK will be generated at:
- Debug:
app/build/outputs/apk/debug/app-debug.apk - Release:
app/build/outputs/apk/release/app-release.apk
# Linux/Mac
./gradlew assembleRelease
# Windows
gradlew.bat assembleRelease- The app generates a 9-line code in the format
XXXX-XXXX-XXXXper line - The first 8 lines are random (the body)
- The 9th line is the signature = SHA-256(body + secret) β 12 chars β formatted
- The app validates offline: recalculates the signature and compares it with the 9th line
- No internet required to validate
Use the Python script in the ferramentas/ folder:
cd ferramentas
# Generate 1 code
python3 gerar_codigo.py
# Generate 5 codes
python3 gerar_codigo.py -n 5
# Generate 10 codes and save to a file
python3 gerar_codigo.py -n 10 -o codigos_clientes.txt
# Compact format (with pipes | for sending via WhatsApp)
python3 gerar_codigo.py --compactoExample generated code:
0Z1R-7SR1-Y0U0
CUQF-L80H-QUSI
2EWN-BF7C-P21Z
96UU-X0ZV-MZZE
4O8R-3ERD-OYOT
TXDY-E03L-K3RV
6D55-BPVC-DRFQ
AY70-Y8QI-DL4L
6435-4860-50F0
- Customer pays R$ 4.99 via PIX (keys:
+55 69 9342-7132orarielcloss@gmail.com) - Customer enters their email inside the app
- You (Ariel) receive the PIX notification at NUBANK
- Generate the code:
python3 ferramentas/gerar_codigo.py -n 1 - Copy the code
- Send an email from
arielcloss@gmail.comto the customer with:- Subject: "Your lifetime Quiet code π‘οΈ"
- Body: the 9-line code + instructions to paste it into the app
- Customer pastes the code into the activation screen β lifetime unlocked!
Important: The secret
BloqueadorBR-2024-Lifetime-Protect-Keyis embedded in the APK. A technical user could extract it (via reverse engineering) and generate their own codes. For maximum security, in a future version, consider adding online validation (backend) that checks the code against a database of issued codes.
BloqueadorChamadasBR/
βββ app/
β βββ build.gradle # Module config + dependencies
β βββ proguard-rules.pro # Obfuscation rules
β βββ src/main/
β βββ AndroidManifest.xml # Permissions + service declarations
β βββ java/org/floatingskies/quiet/
β β βββ App.kt # Application class (init)
β β βββ MainActivity.kt # Main dashboard
β β βββ data/ # Room layer (Whitelist + BlockedCalls)
β β βββ service/
β β β βββ CallBlockerService.kt # β CallScreeningService (silent blocking)
β β βββ receiver/
β β β βββ CallReceiver.kt # Legacy receiver (Android 5-6)
β β β βββ BootReceiver.kt # Re-activates on boot
β β βββ ui/
β β β βββ dialer/
β β β β βββ ProxyDialerActivity.kt # Fallback for default dialer
β β β βββ onboarding/ # Initial screen + permissions
β β β βββ whitelist/ # Trust list
β β β βββ payment/ # PIX donation
β β β βββ activation/ # Code activation
β β β βββ blocked/ # Blocked calls log
β β β βββ settings/ # Settings
β β βββ util/
β β βββ PhoneUtils.kt # BR phone number normalization
β β βββ ActivationValidator.kt # SHA-256 validation
β β βββ PermissionHelper.kt # Permissions + ROLE_CALL_SCREENING
β β βββ PrefsManager.kt # SharedPreferences
β βββ res/
β βββ layout/ # XML screens
β βββ values/ # Colors, strings (PT-BR), styles
β βββ drawable/ # Vector icons + PNG logo
β βββ mipmap-*/ # Launcher icon in 5 densities
βββ ferramentas/
β βββ gerar_codigo.py # Activation code generator
βββ build.gradle # Top-level
βββ settings.gradle
βββ gradle.properties
- Language: Kotlin 1.9.20
- minSdk: 21 (Android 5.0 Lollipop)
- targetSdk: 34 (Android 14)
- UI: Material Design 3 (dark, accessibility-focused)
- DB: Room 2.6.1
- Build: Gradle 8.2 + Android Gradle Plugin 8.1.4
- Logo:
org.floatingskies.Quiet.png(PNG 512x512 RGBA, in all densities)
| Version | Codename | Description |
|---|---|---|
| 1.0 | Jaguatirica | Initial public release. Silent blocking via CallScreeningService, whitelist, R$ 4.99 lifetime donation, role-based call screening. |
This app is a personal protection tool. It does not replace:
- π¨ Formal complaints to Anatel (https://www.anatel.gov.br/consumidor)
- π¨ Police reports at the Civil Police in case of an actual scam
- π¨ Notifications to Procon in case of improper charges
The app blocks calls based solely on the phone number. It does not identify the caller's intent. It is up to the user to keep their whitelist updated with legitimate numbers (bank, doctor, family, etc.).
Tip: When adding your bank's number to the whitelist, confirm the official number on the bank's website or app. Never add numbers received via suspicious SMS or WhatsApp.
| Problem | Solution |
|---|---|
| "The app doesn't block anything" | Make sure you granted ROLE_CALL_SCREENING (Android 10+) on the initial screen |
| "The call filtering dialog doesn't appear" | Tap "Call filtering app" on the app's initial screen |
| "Missed call still appears" | You're on Android 5.0-6.0 (system limitation). On 7+ it works 100% silently |
| "The app stops working after a while" | Enable "Ignore battery optimization" in the permissions |
| "MIUI kills the app in the background" | Enable "Auto-start" in MIUI settings β Apps β Quiet |
| "I can't receive calls from my bank" | Add the bank's number to the whitelist (use the official number, not the one shown in SMS) |
| "I donated but didn't receive the code" | Check your email spam folder. The sender is arielcloss@gmail.com. If it hasn't arrived in 30 min, contact the developer |
- Developer email: arielcloss@gmail.com To report bugs or suggest improvements, email the developer.
Made with β€οΈ for Brazil. Version 1.0 - Jaguatirica