# Pixelwall
Privacy and hardening app for Google Pixel phones (Pixel 8 – 10, Android 15/16, no root).
Audit your device, fine-tune permissions and settings, and undo every change.
[
](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22org.pixelwall.app%22%2C%22url%22%3A%22https%3A%2F%2Fgit.mrblake.cc%2FMrBlake%2FPixelwall%22%2C%22author%22%3A%22MrBlake%22%2C%22name%22%3A%22Pixelwall%22%2C%22overrideSource%22%3A%22Codeberg%22%2C%22additionalSettings%22%3A%22%7B%5C%22apkFilterRegEx%5C%22%3A%5C%22pixelwall-core-%5C%22%7D%22%7D)
> Status: early development (milestone 1 of 9). Architecture and roadmap: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) (German).
## Install
**Android 14 or newer.** Made for Google Pixel 8 – 10 on Android 15/16.
- **Obtainium (recommended):** tap the badge above on your phone. It installs the `core` APK (no network permission)
and keeps Pixelwall up to date. For the `full` variant use [this Obtainium link](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22org.pixelwall.app.full%22%2C%22url%22%3A%22https%3A%2F%2Fgit.mrblake.cc%2FMrBlake%2FPixelwall%22%2C%22author%22%3A%22MrBlake%22%2C%22name%22%3A%22Pixelwall%20%28full%29%22%2C%22overrideSource%22%3A%22Codeberg%22%2C%22additionalSettings%22%3A%22%7B%5C%22apkFilterRegEx%5C%22%3A%5C%22pixelwall-full-%5C%22%7D%22%7D) instead.
Manual setup: add `https://git.mrblake.cc/MrBlake/Pixelwall` in Obtainium, choose **Forgejo (Codeberg)** as the source
and set the APK filter to `pixelwall-core-` (or `pixelwall-full-`).
- **Direct download:** get `pixelwall-core-v.apk` or `pixelwall-full-v.apk` from the
[releases page](https://git.mrblake.cc/MrBlake/Pixelwall/releases) and install it.
## Build variants
| Flavor | applicationId | Network |
|---|---|---|
| `core` | `org.pixelwall.app` | no `INTERNET` permission (enforced by `./gradlew check`) |
| `full` | `org.pixelwall.app.full` | `INTERNET` for the DNS filter and optional rule updates |
## Building
Requirements: JDK 21, Android SDK (platform 37).
```sh
./gradlew assembleCoreDebug # debug APK without network access
./gradlew check # unit tests, lint, network permission check
```
## Releasing
Release APKs are signed with a key kept outside the repository. Configure it in `~/.gradle/gradle.properties`
(`pixelwall.signing.storeFile`, `.storePassword`, `.keyAlias`, `.keyPassword`); without it the release APKs are unsigned.
```sh
./gradlew dist # signed APKs in dist/ as pixelwall--v.apk
```
## License
GPLv3, see [LICENSE](LICENSE).