FahadBinHussain/blindspot
GitHub: FahadBinHussain/blindspot
Stars: 0 | Forks: 0
# BlindSpot
BlindSpot is an Android hardening toolkit for cases where a normal app blocker is not enough.
It combines Device Owner policy controls with LSPosed hooks, so it can restrict apps at the
Android policy layer and also patch specific in-app escape hatches that Android policy APIs
cannot see.
## What's Inside
| Area | Path | Notes |
| --- | --- | --- |
| Android app and LSPosed module | [`android/`](android/) | Main BlindSpot app, Device Owner controls, protection rules, and Xposed hooks. |
| Android README | [`android/README.md`](android/README.md) | Deeper notes on setup, hooks, implementation details, and device-owner flow. |
| Aliucord plugin workspace | [`aliucord plugin/`](aliucord%20plugin/) | Plugin workspace currently carrying the ChannelBlocker plugin. |
| Root scripts | [`package.json`](package.json) | Convenience commands for Android build, install, run, clean, release, and adb logs. |
## What It Does
- Discovers, applies, imports, and exports Android managed app restrictions.
- Blocks apps by suspending packages and protecting their data from easy clearing.
- Protects apps from uninstall, force-stop, and data-clearing paths exposed through normal Settings.
- Delay-locks sensitive changes to rules, protected apps, delay settings, and hook toggles.
- Enforces automatic time/timezone while delay locks are active, so clock changes cannot skip waiting.
- Transfers Device Owner to another admin app when needed.
- Hooks specific app internals through LSPosed:
- Morphe: TextView watchdog for forbidden on-screen text.
- Messenger: blocks Meta AI/search entry points while keeping stickers, GIFs, and emoji usable.
- Facebook: feed/doom-scroll blocker that still allows more direct destinations.
- X/Twitter and Instagram: timeline, reel, and feed scroll-lock style hooks.
- Edge/Chrome variants: preview/context-menu hardening.
- Reddit: text selection and copy extraction helpers.
## Comparison
`✅` means the tool is built around that capability. `partial` means it has a related feature, but
not the same layer or depth. `-` means it is not the point of that tool.
The closest overlap is Andoff: it is also a serious Device Owner app for hard Android lockdown.
The difference is that Andoff's docs explicitly say it does not filter content itself; it is usually
paired with another filter such as Plucky. BlindSpot is more experimental and narrower, but it
combines Device Owner controls with app-process hooks for the specific places where policy-only
or browser-only blockers do not reach.
Test DPC is the official Android Enterprise reference/sample DPC, not a self-control product.
Plucky is stronger as an internet/media filter with a delay philosophy. Family Link, Digital
Wellbeing, and normal app blockers are easier consumer tools, but they do not modify the inside
of social apps through LSPosed.
## Quick Commands
pnpm android:build
pnpm android:install
pnpm android:run
pnpm adb:logcat
The root scripts expect Android tooling, `adb`, and a cached Gradle wrapper under
`%USERPROFILE%\.gradle\wrapper\dists`. If that is missing, build any Gradle project once or add
normal Gradle wrapper files to this repo.
## Device Owner Setup
BlindSpot needs Device Owner privileges for the policy features:
adb shell dpm set-device-owner com.hardening.blindspot/.BlindSpotAdminReceiver
Device Owner status is powerful and intentionally hard to undo. Use a test device unless you know
exactly what the policy state is.
## LSPosed Scope
Enable the BlindSpot module in LSPosed and include the apps you want to hook:
- `app.morphe.android.youtube`
- `com.facebook.orca`
- `com.facebook.katana`
- `com.microsoft.emmx`
- `com.microsoft.msedge`
- `com.android.chrome`
- `com.reddit.frontpage`
- `com.twitter.android`
- `com.instagram.android`
Force-stop target apps after changing scope or hook state.
## License
MIT, see [android/LICENSE](android/LICENSE).
标签:域名枚举