mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 17:14:08 +01:00
The whole Device Owner design assumed setApplicationHidden persists across a reboot, and that had never been tested -- while both shell primitives were measured to be cleared by one. Settling it looked like it needed a factory reset. It does not: a managed profile is removable and takes its profile-owner grant with it, so the DPM API can be exercised and then erased. pm create-user --profileOf 0 --managed -> user 10 dpm set-profile-owner --user 10 ... ... hide, reboot, re-check ... pm remove-user 10 hidden=true before the reboot, hidden=true after, agreed by dumpsys and by the DPM API itself. Afterwards: Device Owner Type -1, no restrictions, and Chrome in user 0 untouched. Scope limit, stated because it is easy to overclaim: this proves the API's hidden state persists under PROFILE OWNER inside a work profile. It does not prove a DEVICE OWNER can hide a given app in user 0, which is what the design actually needs -- DO there additionally cannot touch the launcher, the default dialer/SMS/IME or packages the system deems critical, and the call can return false silently. That must be tested in the first minute after provisioning, while clearDeviceOwnerApp() is still a cheap exit. On top of that, EnforcementDecision turns policy plus conditions into a hide/show set. It is a pure function, so the whole decision layer is tested without a device, a clock or a location provider. packagesToShow is deliberately the complete allowed set rather than a delta. Failing to hide something is a mild disappointment; failing to UNHIDE strands the user without a dialer or a bank at 09:00 because the phone rebooted during curfew. Applying the full set on every evaluation makes a missed run self-repairing, which matters because BOOT_COMPLETED does not fire until first unlock -- observed directly, the phone sat at RUNNING_LOCKED for minutes after a reboot with no network at all. The workout exception is expressed as packages rather than domains. The rooted system unblocked youtube.com in a hosts file; hiding an app cannot target a domain, so the package set is derived from the configured domains and config.sh stays the source of truth for intent. Signal sources were checked on the device before being built: StrongLifts is granted health.WRITE_EXERCISE and Health Connect is installed, so that path is viable; com.kuhy.workout_app exposes only a MainActivity and Flutter boilerplate; org.runnerup is not installed here at all. Only the two that can actually produce a signal will be wired. HideTestReceiver is temporary and must be deleted before any provisioned build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AwepyL5Lxs5QKbKkMpxxxL |
||
|---|---|---|
| .. | ||
| agent-automation-bootstrap.json | ||
| app-icons-generator-2026-07-19.json | ||
| billsplit-apk-buildable-2026-08-03.json | ||
| billsplit-move-2026-08-03.json | ||
| brother-printer-file-length-split-2026-07-17.json | ||
| brother-printer-status-accuracy-2026-07-17.json | ||
| bucket-catch-2026-06-27.json | ||
| byox-ladder-2026-07-17.json | ||
| cloud-gallery-2026-07-12.json | ||
| cloud-gallery-coverage-lint-deploy-2026-07-12.json | ||
| code-tutor-2026-07-10.json | ||
| diet-guard-gatelock-migration-2026-06.json | ||
| diet-guard-meal-and-trigger-fix-2026-06-10.json | ||
| digital-wellbeing-bypass-hardening-2026-05.json | ||
| dns-filtering-parked-2026-08-05.json | ||
| dot-resolver-and-policy-asset-2026-08-05.json | ||
| epopeja-karta-icon-2026-08-03.json | ||
| extract-dufs-cloud-repo-2026-07-12.json | ||
| extract-inline-python-2026-06-06.json | ||
| extract-session-autopsy-2026-07-26.json | ||
| file-length-split-2026-06-14.json | ||
| focus-mode-daemon-file-length-2026-07-17.json | ||
| focus-owner-enforcement-engine-2026-08-09.json | ||
| guard-lib-migration-2026-07-04.json | ||
| import-media-archives-2026-07-12.json | ||
| kcd2-balatro-single-joker-face-2026-07-25.json | ||
| kcd2-dice-solver-deploy-responsive-io-2026-07-26.json | ||
| kcd2-dice-solver-initial-commit-2026-07-21.json | ||
| keepass-multidevice-sync-2026-07-12.json | ||
| linux-config-cleanup-2026-05.json | ||
| linux-config-polling-hardening-2026-05-14.json | ||
| linux-config-runtime-hardening-2026-05-08.json | ||
| linux-config-scripts-split-2026-05.json | ||
| makepkg-stale-lock-wrapper-2026-07-16.json | ||
| mandatory-hooks-2026-08-03.json | ||
| media-cloud-sync-2026-07-12.json | ||
| morning-routine-unified-2026-05-25.json | ||
| mtk-root-toolkit-2026-08-04.json | ||
| pacman-hook-stall-2026-08-03.json | ||
| pc-polling-runtime-validation-2026-05-10.json | ||
| persistent-adb-2026-08-03.json | ||
| phone-curfew-demo-net-stopgap-2026-06-13.json | ||
| phone-focus-cpu-hardening-2026-07-10.json | ||
| phone-focus-mode-fresh-install-2026-05-31.json | ||
| phone-focus-mode-netd-cache-fix-2026-05.json | ||
| phone-night-curfew-2026-06-13.json | ||
| protondb-gold-silver-fix.json | ||
| pylint10-r0801-schema-validation-2026-06.json | ||
| reverse-survivors-2026-08-03.json | ||
| root-cleanup-2026-05-14.json | ||
| run-sh-wrapper-smoke.json | ||
| screen-locker-scheduled-skip-2026-05.json | ||
| screen-locker-sick-tracker-2026-05-14.json | ||
| screen-locker-weekly-check-2026-05-28.json | ||
| session-autopsy-package-2026-07-25.json | ||
| session-autopsy-turn-efficiency-2026-07-26.json | ||
| shell-tests-arch-container-2026-07-19.json | ||
| shellcheck-ci-green-2026-08-04.json | ||
| shellcheck-strict-gate-2026-08-03.json | ||
| shutdown-override-i3blocks-sync-2026-07-10.json | ||
| stats-hltb-fixes-2026-05-28.json | ||
| steam-backlog-cache-refetch-reduction-2026-05-08.json | ||
| steam-backlog-finished-only-next-pick-2026-05.json | ||
| steam-backlog-module-split-2026-05.json | ||
| steam-backlog-protected-ids-2026-05-14.json | ||
| steam-backlog-whitelist-hardening-2026-05.json | ||
| steam-library-hide-fix-2026-05-17.json | ||
| sync-tests-fix-coverage-2026-05.json | ||
| template.json | ||
| tether-enforcer-hotspot-bypass-2026-07-13.json | ||
| unrooted-focus-mode-policy-and-owner-app-2026-08-05.json | ||
| usage-report-hz-cpu-fix-20260604.json | ||
| vendor-agent-skills-import.json | ||
| wake-alarm-gatelock-migration-2026-06-22.json | ||
| wake-alarm-hibernate-2026-05.json | ||
| wake-alarm-loudness-typeable-2026-05.json | ||
| wake-alarm-plug-fans-warnings-2026-05.json | ||
| wake-alarm-refactor-2026-05-30.json | ||
| wake-alarm-restore-display-test-gap-2026-06-22.json | ||
| wsg-grabber-2026-07-27.json | ||