Repository navigation
Releases: shell-ninja/Blocker-App
Release list
v1.0.3
Blocker v1.0.3 Release Notes
Release Date: October 2026
Version: 1.0.3
Build: 19
Blocker v1.0.3 fixes tamper protection bypasses on the Android Settings App Info page, improves uninstall interception routing, and adds offline tooling support to the build system.
Anti-Tamper & Security
- App Info Interception: Accessing Blocker's App Info page in Settings now triggers an immediate exit back to the previous screen. This closes the App Info activity and prevents access to "Deactivate device admin", "Force stop", "Storage & cache", and "Uninstall" options.
- Settings Routing: Fixed an issue where the presence of the "Uninstall" button on Blocker's App Info page caused it to be misclassified as a package installer uninstall dialog, preventing the settings kick handler from executing.
- Package Installer Handling: Direct uninstallation attempts from outside Settings (such as launcher shortcuts or package manager dialogs) continue to be automatically canceled and redirected to the home screen.
- Screen Flicker Prevention: Settings background polling is paused during the exit transition with a short cooldown window to prevent rapid event loops or screen flickering on custom OEM skins (such as Transsion / Infinix / Tecno).
- Secondary Back Verification: Added a short delayed check after the initial back action to ensure nested sub-menus or confirmation dialogs within App Info are completely dismissed.
Build System & Tooling
- Offline SDK & Dependency Detection:
build_apk.shandenv.shnow support local SDK, NDK, and Gradle archive detection within the repository root, allowing builds without re-downloading large packages over slow networks. - Manifest Queries: Added queries for
android.settings.SETTINGSandandroid.settings.APPLICATION_DETAILS_SETTINGSto ensure reliable settings intent resolution on Android 11+.
v1.0.2
Blocker v1.0.2 Release Notes
Release Date: October 2026
Build: v1.0.2
Blocker v1.0.2 introduces in-app GitHub updater capabilities, enhanced anti-tamper controls with wireless debugging locks, per-app usage limits, Islamic reminder block overlays, and comprehensive UI & security enhancements.
π What's New
1. In-App GitHub Release Updater & Changelog Viewer
- Automatic & Manual Checks: Periodically checks GitHub releases for updates every 24 hours, with on-demand manual checking in Settings.
- Direct APK Installation: Downloads and prompts for APK installation directly from GitHub release assets without needing a browser.
- Interactive Release Notes Modal: View rich markdown changelogs, release details, and APK download progress with real-time percentage indicators.
- In-App Notification Banners: Discrete, dismissible banners notify users when a new version is available.
2. Wireless Debugging & ADB Lockdown
- Instant ADB Shield: Automatically detects and switches off USB and Wireless debugging when uninstall & settings protection is active.
- Secure Settings Integration: Supports optional instant ADB lockdown via
android.permission.WRITE_SECURE_SETTINGS.
3. Per-App Daily Usage Timers
- App Usage Limits: Set maximum daily usage durations for distracting apps.
- Lock Protection: Integrated with Blocker's delay timer to prevent bypassing or modifying usage limits impulsively.
4. Islamic Block Overlay & Encouragement
- Inspirational Warnings: Thoughtful Islamic reminders, Quranic reflections, and motivational quotes replace blocked content overlays.
- Refined Styling: Clean, modern purple glassmorphic aesthetics that match the overall application design.
π‘οΈ Security & Defensive Enhancements
- HTTPS & Domain Enforcement: APK update downloads are strictly restricted to encrypted HTTPS connections from official GitHub domains (
github.comand*.githubusercontent.com). - Path Traversal Defense: Strict validation of version strings and canonical cache path checking prevents directory traversal attacks.
- DoS & File Size Protection: Download size limits (200MB max) and stream abort mechanisms prevent disk exhaustion.
- Integrity Validation: Partial, interrupted, or truncated APK downloads are automatically purged and rejected before installation.
- Scoped FileProvider: FileProvider sharing is restricted solely to the internal
updates/cache directory.
π¨ UI & UX Improvements
- App Updates Card Redesign: Symmetrical flex-based action buttons ("Check Updates" and "Release Notes") eliminate button clipping and layout overflow on compact screens.
- Visual Action Hierarchy: Distinct primary accent and secondary ghost button styles provide clear focus.
- Intelligent Version Status Pills: Clear status badges (
Public,Up to date,Update) differentiate local dev builds from public GitHub releases. - Accurate Modal Badging: Fixed release tag labels to distinguish current stable releases from development builds.
π Bug Fixes & Refinements
- Fixed an issue where manual update checks opened the update modal even when already up-to-date.
- Resolved installer update conflicts when reinstalling signed releases.
- Fixed keyword scanning false positives on safe words (e.g., 'bare').
- From release mode to debug mode updating is restricted.
v1.0.1
Blocker v1.0.1
What's New & Enhancements
- Seamless App Updates: The protection shield now differentiates between package installations/updates and uninstallations. You can now update Blocker to new versions directly without having to disable protection or get blocked by the installer guard.
- Recommended Setup Guide: Added a streamlined onboarding step and home screen guide that highlights the 3 recommended buttons to enable by default for full device safeguarding.
- Clean Dashboard Experience: The setup checklist automatically collapses once all recommended protections are active, keeping the Home dashboard focused on your active protection status and blocking metrics.
- Subtle Technical Background Watermark: Replaced heavy background animations with a lightweight, low-opacity technical security watermark pattern to keep the app fast and battery-friendly.
Security & Anti-Tamper Hardening
- Enhanced Settings & App List Shield: Faster and more accurate blocking when attempting to access Settings > App Management > App List > Blocker to prevent unauthorized deactivation or uninstallation.
- Smart Installer Filtering: Tightly enforces package uninstall blocking while permitting legitimate APK package updates.
Bug Fixes & Polish
- Fixed an issue where the permission status badge (e.g. Display over other apps) was clipped off-screen on certain device widths.
- Fixed a layout crowding issue where badges and title headers touched inside setup cards.
- Fixed missing icon references in the onboarding flow.
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What is this
Blocker is an Android app I built for myself to get off distracting websites, short-form video, and adult content β without being able to wriggle out of it on a bad day.
Everything runs on the phone. There are no servers, no accounts, no telemetry, and no subscription. It works through Android's Accessibility Service, which lets it watch what's on the screen without reading anything into a file or sending it anywhere.
What it blocks
Websites and keywords β Any browser address bar is checked as you type. If you try to open a blocked site, the tab redirects to Google and a small popup tells you why. The same keyword check runs across every app's visible text, so it catches content inside apps too, not only in browsers. Browsers with address-bar coverage: Chrome, Edge, Brave, Firefox, Opera, Samsung Internet, DuckDuckGo, Vivaldi, Kiwi.
Short-form video β YouTube Shorts, Instagram Reels, and Facebook Reels are detected by their screen layout and closed.
Specific apps β You can block any installed app outright. Trying to open it sends you back to the home screen.
Adult domains β The built-in block list ships with 9,355 domains, 60 keywords, and 4 TLDs.
How the lock works
The whole point is that you can't just turn it off the moment you want to. Any change that weakens protection β disabling it, shortening the delay timer, adding a whitelist entry, removing an app block β goes into a pending state and only takes effect after a delay you set yourself (1β30 days, default 24 hours). Changes that make blocking stricter take effect immediately.
Uninstalling the app while protection is on is also blocked via Device Administrator.
The debug build shortens every "day" to one minute so you can test the locking behaviour without actually waiting.
Focus mode
Focus mode locks you to a small list of essential apps (up to five) for a set amount of time. Everything else β including Blocker's own other tabs β gets kicked out. You can set a one-off countdown, recurring daily schedules, or both. Ending focus early or loosening the allowed-apps list goes through the same delay timer as everything else.
Whitelist and scan exemptions
If a legitimate word is getting caught β "adulthood," "sex education," a security app whose own UI mentions blocked terms β you can whitelist a phrase or exempt a specific app from screen scanning. Adding either one requires the delay timer while protection is on.
Files in this release
| File | What it is |
|---|---|
Blocker-release-1.0.0.apk |
The real build. Timers run for real (1β30 days). Install this for daily use. |
Blocker-release-debug-1.0.0.apk |
Same code, but every "day" is compressed to 1 minute. Use this to test the lock behaviour before committing to the release build. |
Install the debug build first. Run through everything in the GUIDE (especially the timer and focus mode tests). When you're satisfied, install the release build over it β your settings carry over.
There is no back door in the release build. That's intentional. Only install it once you're ready.
Permissions the app asks for
- Accessibility Service β watches the active window and visible text on screen. Nothing is stored or sent.
- Display over other apps β used only to show the brief "blocked" notification banner (5 seconds, then it disappears).
- Device Administrator β prevents uninstalling the app while protection is active.
- Usage access β lets the app know which app is currently in the foreground, used for app blocking and focus mode.
Password fields are never read. Screen content is checked locally and never leaves the device.
Permissions the app does NOT have
No internet permission. No access to contacts, camera, microphone, location, storage, or any other sensitive API. The APK is self-contained.
Building it yourself
The source is included in the repo. If you're on Linux:
git clone https://github.com/shell-ninja/Blocker-App
cd Blocker-App
./build_apk.sh releaseThe script checks and installs its own dependencies (Java 17, Node, Android SDK). On a fresh machine the first run takes 20β45 minutes and downloads roughly 3β5 GB. Rebuilds after that take a minute or two. See GUIDE.md for the full walkthrough.
Known limits
- Android only. Tested on Android 12β14.
- Screen monitoring only reads text Android exposes through accessibility APIs β not text inside images, video frames, or apps that draw their own canvas (most games, banking apps).
- The Device Administrator API cannot fully veto its own deactivation once a user reaches the confirmation dialog. This is a known Android limitation across all apps using this API. Device Owner mode would prevent it but isn't available to a normally installed app.
- Some OEM battery optimisations (Xiaomi, Oppo, Samsung) kill background services. Fix: Settings β Battery β Blocker β Unrestricted.
Changelog (v1.0.0)
This is the first public release. The main things that landed in this build:
- Multiple named daily schedules in focus mode, each with its own 12-hour clock-dial picker and on/off switch
- Delay timer now applies to whitelist additions and scan exemptions, not only to protection on/off
- Device admin screen is now blocked directly by activity class, not by on-screen text, making it harder to reach the deactivation dialog
- Launcher and system UI fully excluded from screen scanning β this was the main cause of false positives showing "blocked" for words appearing in home screen widgets
- Repeat-popup loop fixed: a short cooldown per app prevents a static piece of blocked text from continuously re-triggering the overlay
- Screen monitoring is always on β the setting toggle for it is removed since it's not optional
- "adult" removed from the keyword list β it was matching "adulthood," "adult education," and similar
- Focus mode countdown no longer drifts after timer changes; the screen polls every 2 seconds while focus is active
- Confirmation dialogs use the app's own theme instead of the system's grey dialog
- App icon is no longer masked or reshaped by the adaptive icon layer
- Version number shown at the bottom of Settings (Blocker 1.0.0 (build N))
Important
Google Play Store might not let you to install the apk. Just disable it for a while, install the apk and enable Google Play Store again.