mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 19:54:01 +01:00
Leaving the house was an off switch. The AWAY branch returned early with packagesToShow = every installed package, so walking 150m from home restored YouTube -- which is the exact affordance device owner was provisioned to remove. always_blocked_packages is exempt from all four branches: AWAY hides them, the allowlist loop cannot show them, and the workout release skips them, because otherwise "go for a run" is the off switch instead. Chrome is included as a second route to the same content; Firefox stays, and carries the uBlock filters. Play is deliberately left geofenced so apps can still be installed away from home -- and a hidden package cannot be reinstalled from Play anyway. infakt moves from the allowlist to SYSTEM_NEVER_DISABLE. Allowlisting only held while it stayed in BOTH the day and night lists, and dropping it from either would silently make it hideable; isAllowed() consults the never-disable list before the curfew split, so it now holds under every condition. It is device-paired to a bank over SMS, so losing it strands the same re-authentication chain a hidden Messages app would. The exporter now refuses an always-blocked package that is not also blockable: the runner filters unopted system packages out of installedPackages, so such an entry would never be hidden and nothing would say so. Verified: 128 Python tests at 100% branch coverage, 16 Kotlin tests, the new ones canary-checked by breaking an assertion and confirming the suite actually fails. On device, youtube/music/chrome/vending are hidden=true, infakt hidden=false, uninstall still refused. The AWAY path itself is unit-tested but NOT verified on hardware: with no home_location.json every pass decides LOCATION_UNKNOWN, so the branch is unreachable on this phone until coordinates can be provisioned. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DqEd1uUhyT52KjaNeLanC
227 lines
6.0 KiB
JSON
227 lines
6.0 KiB
JSON
{
|
|
"allowed_packages": [
|
|
"ac.mdiq.podcini.X",
|
|
"ch.protonmail.android",
|
|
"com.Splitwise.SplitwiseMobile",
|
|
"com.anthropic.claude",
|
|
"com.aurora.store",
|
|
"com.azure.authenticator",
|
|
"com.beemdevelopment.aegis",
|
|
"com.blackview.launcher",
|
|
"com.blackview.launcher.overlay.framework",
|
|
"com.bnyro.clock",
|
|
"com.discord",
|
|
"com.facebook.katana",
|
|
"com.facebook.orca",
|
|
"com.fitatu.tracker",
|
|
"com.fsck.k9",
|
|
"com.github.android",
|
|
"com.google.android.apps.maps",
|
|
"com.google.android.calendar",
|
|
"com.google.android.contactkeys",
|
|
"com.google.android.gm",
|
|
"com.google.android.safetycore",
|
|
"com.ichi2.anki",
|
|
"com.jksalcedo.librefind",
|
|
"com.jwang123.splitbills",
|
|
"com.kolejeslaskie.mss",
|
|
"com.kuhy.diet_guard_app",
|
|
"com.kuhy.dufs_client",
|
|
"com.kuhy.epopeja_karta",
|
|
"com.kuhy.focus_owner",
|
|
"com.kuhy.focusstatus",
|
|
"com.kuhy.habit_stack",
|
|
"com.kuhy.home_inventory",
|
|
"com.kuhy.horatio",
|
|
"com.kuhy.pomodoro_app",
|
|
"com.kuhy.untools",
|
|
"com.kuhy.vaultkitbypass",
|
|
"com.kuhy.wake_alarm_sync",
|
|
"com.kuhy.workout_app",
|
|
"com.kunzisoft.keepass.libre",
|
|
"com.machiav3lli.fdroid",
|
|
"com.maksimowiczm.foodyou",
|
|
"com.metrolist.music",
|
|
"com.microsoft.office.outlook",
|
|
"com.microsoft.teams",
|
|
"com.qqlabs.minimalistlauncher",
|
|
"com.rama.teyin",
|
|
"com.revolut.revolut",
|
|
"com.schwegelbin.openbible",
|
|
"com.shazam.android",
|
|
"com.sosauce.cutecalc",
|
|
"com.stronglifts.app",
|
|
"com.topjohnwu.magisk",
|
|
"com.tplink.iot",
|
|
"com.vayunmathur.camera",
|
|
"com.waist.line",
|
|
"com.xiaomi.smarthome",
|
|
"com.yoshi.rain",
|
|
"com.zaneschepke.wireguardautotunnel",
|
|
"de.kicktipp.mbookmark",
|
|
"de.schildbach.oeffi",
|
|
"de.thomaskuenneth.benice",
|
|
"dev.kuhy.todo",
|
|
"eu.kanade.tachiyomi.sy",
|
|
"is.xyz.mpv",
|
|
"me.phh.superuser",
|
|
"moe.shizuku.privileged.api",
|
|
"net.bible.android.activity",
|
|
"net.cozic.joplin",
|
|
"net.osmand",
|
|
"net.thunderbird.android.beta",
|
|
"oracle.idm.mobile.authenticator",
|
|
"org.connectbot",
|
|
"org.fdroid.fdroid",
|
|
"org.fossify.contacts",
|
|
"org.fossify.messages",
|
|
"org.fossify.phone",
|
|
"org.mozilla.fenix",
|
|
"org.runnerup",
|
|
"org.thoughtcrime.securesms",
|
|
"pkp.ic.eicmobile",
|
|
"pl.infakt.infakt",
|
|
"pl.mbank",
|
|
"pl.nask.mobywatel",
|
|
"pl.orange.mojeorange",
|
|
"pl.pkobp.iko",
|
|
"pl.plksa.portalpasazera",
|
|
"ws.xsoh.etar"
|
|
],
|
|
"always_blocked_packages": [
|
|
"com.android.chrome",
|
|
"com.google.android.apps.youtube.music",
|
|
"com.google.android.youtube"
|
|
],
|
|
"blockable_system_packages": [
|
|
"com.android.chrome",
|
|
"com.android.vending",
|
|
"com.google.android.apps.youtube.music",
|
|
"com.google.android.videos",
|
|
"com.google.android.youtube"
|
|
],
|
|
"browser_packages": [
|
|
"com.android.chrome",
|
|
"org.mozilla.fenix"
|
|
],
|
|
"curfew": {
|
|
"end": "05:00",
|
|
"start": "23:00"
|
|
},
|
|
"home": {
|
|
"hysteresis_m": 30.0,
|
|
"latitude": null,
|
|
"longitude": null,
|
|
"radius_m": 150.0
|
|
},
|
|
"launcher_package": "com.qqlabs.minimalistlauncher",
|
|
"never_disable_prefixes": [
|
|
"android",
|
|
"com.android.bluetooth",
|
|
"com.android.camera",
|
|
"com.android.camera2",
|
|
"com.android.captiveportallogin",
|
|
"com.android.certinstaller",
|
|
"com.android.contacts",
|
|
"com.android.dialer",
|
|
"com.android.documentsui",
|
|
"com.android.emergency",
|
|
"com.android.externalstorage",
|
|
"com.android.inputmethod",
|
|
"com.android.keychain",
|
|
"com.android.launcher",
|
|
"com.android.launcher3",
|
|
"com.android.location",
|
|
"com.android.messaging",
|
|
"com.android.mms",
|
|
"com.android.networkstack",
|
|
"com.android.nfc",
|
|
"com.android.permissioncontroller",
|
|
"com.android.phone",
|
|
"com.android.providers",
|
|
"com.android.se",
|
|
"com.android.settings",
|
|
"com.android.shell",
|
|
"com.android.systemui",
|
|
"com.android.vpndialogs",
|
|
"com.android.wifi",
|
|
"com.google.android.apps.messaging",
|
|
"com.google.android.contacts",
|
|
"com.google.android.deskclock",
|
|
"com.google.android.dialer",
|
|
"com.google.android.ext.services",
|
|
"com.google.android.ext.shared",
|
|
"com.google.android.gms",
|
|
"com.google.android.gsf",
|
|
"com.google.android.inputmethod.latin",
|
|
"com.google.android.permissioncontroller",
|
|
"com.google.android.setupwizard",
|
|
"com.google.android.trichromelibrary",
|
|
"com.google.android.webview",
|
|
"com.mediatek",
|
|
"com.qualcomm",
|
|
"pl.infakt.infakt"
|
|
],
|
|
"night_allowed_packages": [
|
|
"com.azure.authenticator",
|
|
"com.beemdevelopment.aegis",
|
|
"com.blackview.launcher",
|
|
"com.blackview.launcher.overlay.framework",
|
|
"com.bnyro.clock",
|
|
"com.fitatu.tracker",
|
|
"com.google.android.apps.maps",
|
|
"com.google.android.calendar",
|
|
"com.google.android.contactkeys",
|
|
"com.google.android.safetycore",
|
|
"com.kuhy.diet_guard_app",
|
|
"com.kuhy.focus_owner",
|
|
"com.kuhy.focusstatus",
|
|
"com.kuhy.habit_stack",
|
|
"com.kuhy.vaultkitbypass",
|
|
"com.kuhy.wake_alarm_sync",
|
|
"com.kuhy.workout_app",
|
|
"com.kunzisoft.keepass.libre",
|
|
"com.maksimowiczm.foodyou",
|
|
"com.metrolist.music",
|
|
"com.qqlabs.minimalistlauncher",
|
|
"com.revolut.revolut",
|
|
"com.stronglifts.app",
|
|
"com.topjohnwu.magisk",
|
|
"com.tplink.iot",
|
|
"com.waist.line",
|
|
"com.xiaomi.smarthome",
|
|
"de.thomaskuenneth.benice",
|
|
"dev.kuhy.todo",
|
|
"me.phh.superuser",
|
|
"moe.shizuku.privileged.api",
|
|
"oracle.idm.mobile.authenticator",
|
|
"org.fossify.contacts",
|
|
"org.fossify.messages",
|
|
"org.fossify.phone",
|
|
"org.runnerup",
|
|
"pl.infakt.infakt",
|
|
"pl.mbank",
|
|
"pl.nask.mobywatel",
|
|
"pl.pkobp.iko",
|
|
"ws.xsoh.etar"
|
|
],
|
|
"schema_version": 1,
|
|
"workout_unblock_domains": [
|
|
"googlevideo.com",
|
|
"i.ytimg.com",
|
|
"i9.ytimg.com",
|
|
"m.youtube.com",
|
|
"s.ytimg.com",
|
|
"www.youtube-nocookie.com",
|
|
"www.youtube.com",
|
|
"youtu.be",
|
|
"youtube-nocookie.com",
|
|
"youtube.com",
|
|
"youtube.googleapis.com",
|
|
"youtubei.googleapis.com",
|
|
"yt3.ggpht.com",
|
|
"yt3.googleusercontent.com",
|
|
"ytimg.com"
|
|
]
|
|
}
|