Go to file
Krzysztof kuhy Rudnicki 2d4d2a2eb2
Some checks failed
Pre-commit checks / pre-commit (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
Python tests / test (push) Has been cancelled
Block by hiding apps, which the phone cannot undo
The network layer was the wrong place for this. Tested remotely today: opening RethinkDNS and switching off its device blocklists un-blocked YouTube in a few taps, and no device owner API can stop that -- an on-device filter app always owns its own rules.

App hiding is different. 'pm unhide' from adb shell throws a SecurityException and the package stays hidden; only the device owner can reverse it, and reaching that costs a factory reset. So the block moves there, scoped to an explicit allowlist and the home geofence.

Both whitelists are rewritten from the apps that actually exist on this phone. The old ones described the rooted Blackview. Every browser is excluded now, so at home a link does not open at all -- confirmed as intended.

LAUNCHER_PACKAGE was still the Blackview's launcher, which is not installed here. The exporter refused to render the policy twice over it -- precisely what that check is for.

The network layer stays a soft deterrent by choice: pinned and uninstall-blocked, but without lockdown, and its blocklists remain switchable.

Private DNS is implemented but ships disabled. stunnel logged zero connections from the handset across two pin attempts, so the router does not forward 853.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014DqEd1uUhyT52KjaNeLanC
2026-08-11 19:49:11 +02:00
.github ci: install jq for the shell tests, and probe for it explicitly 2026-08-10 15:40:42 +02:00
.hippo style: prettier format .hippo memory files 2026-05-28 07:05:24 +02:00
.vscode chore: archive 41 unmaintained directories to testsAndMisc-archive 2026-05-14 20:21:05 +02:00
billsplit billsplit: build a real APK by dropping file_picker for file_selector 2026-08-03 14:15:40 +02:00
bucket_catch bucket_catch: introduce a real design-token system, fix reversed gradients 2026-07-22 19:18:12 +02:00
docs Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
focus_owner Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
kcd2_dice_solver kcd2 dice solver: lock deploy_build.sh so two runs cannot publish half a bundle 2026-07-26 20:33:38 +02:00
linux_configuration Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
meta Add android_ui: drive Android apps by element, never by coordinates 2026-08-10 17:01:28 +02:00
phone_focus_mode Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
python_pkg Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
reverse_survivors reverse_survivors: difficulty tiers 2026-08-09 23:17:07 +02:00
third_party/agent-skills style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
.binary-allowlist Move billsplit Flutter app into the monorepo 2026-08-03 12:22:22 +02:00
.copilotignore chore: archive 41 unmaintained directories to testsAndMisc-archive 2026-05-14 20:21:05 +02:00
.fvmrc chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +02:00
.gitignore feedback: local-only pacman package build, and ignore build artifacts 2026-08-10 15:33:18 +02:00
.pre-commit-config.yaml Add android_ui: drive Android apps by element, never by coordinates 2026-08-10 17:01:28 +02:00
.prettierignore Exempt the generated policy asset from prettier 2026-08-05 09:40:44 +02:00
.shellcheckrc Fail the build on any shellcheck finding; fix the 222 the old gate hid 2026-08-03 19:49:11 +02:00
CLAUDE.md Move billsplit Flutter app into the monorepo 2026-08-03 12:22:22 +02:00
DESIGN_AUDIT_TODO.md Format last three markdown files; cap billsplit's Android build memory 2026-08-03 13:25:48 +02:00
lint_python.sh chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +02:00
pyproject.toml chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +02:00
README.md Move billsplit Flutter app into the monorepo 2026-08-03 12:22:22 +02:00
requirements.txt chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +02:00
run.sh chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +02:00

testsAndMisc

A collection of personal projects, scripts, and experiments — from a GPS-based phone focus tool to Linux/Arch automation, with CI, linting, and pre-commit hooks across the board.

Highlights

Phone Focus Mode

Location-based app restriction for rooted Android. Automatically disables non-whitelisted apps within 500 m of home using ADB + Magisk. Features Haversine distance calculation, hysteresis to prevent toggling, fail-safe unlock, and state persistence. Bash, Android ADB.

Linux Configuration

Automated Arch Linux setup: fresh-install scripts, i3 window manager config, LaTeX environment, and system tests. Includes documentation and test result logging.

Scripts

Utility scripts for development workflows — build file validation, secret detection, and custom makepkg helpers.

Repository Layout

Path Description
python_pkg/ Python packages (each maintained subpackage lives here)
billsplit/ Receipt bill-splitting Flutter app — people, groups, per-item assignment, e-paragon import and xlsx export (Dart, 100 % line coverage gate)
linux_configuration/ Arch Linux setup, i3 config, system maintenance scripts
phone_focus_mode/ GPS-based Android focus enforcer
reverse_survivors/ Reverse Survivors — React/Vite game where you play the horde against an AI survivor (TypeScript, 100 % coverage gate)
scripts/ Workspace-level helper scripts and pre-commit hooks
docs/ Reference docs and historical reports
third_party/ Vendored upstream skills/agents
meta/ Repo-wide tooling: pyproject.toml, requirements.txt, .pre-commit-config.yaml, run.sh, lint_python.sh, .fvmrc. Symlinked into the repo root so tools that auto-discover from root keep working.

Archived / unmaintained projects live in the sibling repository testsAndMisc-archive.

Tooling

  • Python linting: Ruff with all rules enabled (see meta/pyproject.toml)
  • Dependencies: pip install -r meta/requirements.txt (combined runtime + dev)
  • CI: GitHub Actions — lint, build, and test on push
  • Testing: pytest (Python), custom shell-based test harness for scripts