<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://porthole-dev.github.io/porthole/</loc></url><url><loc>https://porthole-dev.github.io/porthole/about/</loc></url><url><loc>https://porthole-dev.github.io/porthole/agents-rules/</loc></url><url><loc>https://porthole-dev.github.io/porthole/agents/</loc></url><url><loc>https://porthole-dev.github.io/porthole/architecture/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/browse/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/devices/google-taimen/device-google-taimen/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-comment-cannot-unset-an-inherited-dt-property/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-created-mvm-carries-call-audio/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-dev-snapshot-blocks-install-and-says-nothing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-killed-build-is-resurrected-by-the-log-it-died-writing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-level-irq-with-a-pull-up-storms-when-its-chip-is-off/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-magic-packet-does-wake-this-phone/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-phone-in-the-bootloader-can-be-off-the-bus/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-shebang-probe-is-a-subset-of-running-the-tool/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-short-power-collapse-leaves-the-a5xx-cp-alive/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-tap-on-an-armed-suspended-screen-hangs-the-resume/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-trustzone-command-can-succeed-and-do-nothing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a-venus-firmware-assert-wedges-the-gdsc-and-recovery-spins-forever/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a5xx-gmem-never-resolves-multisample-buffers/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/a540-lm-is-mostly-vendor-parity/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/acp-splits-a-verb-with-two-outputs-into-two-profiles/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/android-interaction-boost-is-the-remaining-perf-delta/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/ap-accepts-us-intermittently/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/ap-refuses-us-our-assocreq-is-clean/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/app-jank-is-app-shaped-once-the-stack-is-clean/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/call-audio-needs-a-voice-service-the-kernel-does-not-have/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/chromium-segfaults-because-a-phone-sends-no-xkb-keymap/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/clipping-webkit-compositing-to-damage-is-worth-8-percent/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/crossdirect-hands-the-linker-to-qemu-on-purpose/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/deep-sleep-is-blocked-by-the-tick-not-a-voter/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/disabling-cpu-retention-is-parity-theatre/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/eas-never-starts-without-an-energy-model/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/envkernel-activation-is-cheap-once-the-chroot-is-warm/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/envkernel-disables-ccache/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/epiphany-is-a-memory-ceiling-not-a-gpu-fault/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/epiphanys-frame-is-20ms-of-compositor-cpu-plus-a-10ms-gpu-tail-not-a5xx-batches/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/epiphanys-window-updates-at-15-fps-because-texturemapper-composites-237-layers/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/every-command-exiting-1-with-no-output-is-a-full-disk/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/forcing-3a-input-current-collapses-vbus-and-resets-the-usb-port/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/fpc-enrolment-is-gated-behind-a-keymaster-signed-auth-token/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/fresh-install-media-stack-is-self-sufficient/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/fuse2fs-cannot-replace-the-loop-device/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/gold-osm-acd-autoxfer-timeout/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/gstreamer-copies-every-venus-frame-when-the-sink-lacks-video-meta/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/hardware-decode-works-in-webkit-the-ceiling-is-webkits-process-count/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/holding-vdd-mx-does-not-stop-the-wake-crash/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/kernel-7-2-rebase-is-cheap/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/lax-build-buys-nothing-measurable/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/mainline-a540-gpmu-takes-five-voltage-levels/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/mainline-a540-init-matches-kgsl-except-allflatoptdis/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/mainline-msm8998-has-no-rpm-sleep-handshake/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/networkmanager-unmanages-wifi-on-sleep-so-wol-never-arrives/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/no-hardware-video-decode-is-built/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/nothing-polls-an-idle-link-on-ath10k/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/opening-a-pcm-is-not-starting-it/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/panel-corruption-was-gpu-reset-wreckage-not-tearing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/phosh-aborts-on-a-gpu-reset-and-takes-the-session-with-it/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/pm-test-cannot-go-above-platform-on-s2idle/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/pmbootstrap-shutdown-unmounts-portholes-own-binds/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/qmi-data-len-is-u32-on-the-host/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/ram-does-not-survive-a-reset-here/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/request-firmware-from-open-shares-the-openers-symlink-budget/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/resume-is-two-drivers-not-the-pm-core/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/rust-builds-natively-with-pmbootstrap-cross-native2/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/rust-does-not-fix-the-errors-agents-make-here/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/taimen-has-no-factory-wlan-mac/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/taimen-rear-module-is-three-i2c-parts/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/taimens-skin-sensor-is-one-devicetree-change/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-30fps-lock-is-not-power-the-panel-runs-at-60/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-a5xx-first-tile-restore-runs-with-the-previous-submits-msaa-state/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-a540-skia-gpu-faults-are-blur-shaders-stalling-the-shader-core/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-aport-ships-the-tree-is-a-workshop/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-auto-preview-builds-a-package-nobody-reads/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-browser-stutter-is-a-blocked-webkit-main-thread/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-browsers-blank-band-is-a-main-thread-record-not-a-prepaint-shortfall/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-camera-hold-was-the-whole-244mw/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-compositor-period-is-cpu-paint-plus-gpu-tail-serialized/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-frame-period-is-quantised-so-sub-refresh-wins-are-invisible/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-memory-bound-is-not-too-tight-the-phone-is-full/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-missing-eapol-is-ath10ks-rx-confused-latch/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-monitor-vif-was-never-deaf-the-parser-was/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-msm8998-thermal-trip-is-a-cliff/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-reserved-vht-width-pair-is-why-the-ap-refused/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-resume-tail-is-easel-and-the-firmware-cache/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-scroll-stall-is-the-pages-own-javascript/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-session-is-back-to-30fps-on-7-2-and-ctl-start-is-not-why/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-sigkill-venus-wedge-was-vp9-bandwidth-starvation/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-skin-ladder-caps-the-die-22c-and-is-self-limiting/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-skin-thermal-adc-tm-storms-at-1600-irq-per-second/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-slpi-gates-its-ftm4-driver-on-tlmm-75/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-slpi-needs-the-irq-not-just-the-mux/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-top-right-corruption-is-freedreno-gmem/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-vendor-runs-four-thermal-layers/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-venus-wedge-was-wrapper-clock-auto-gating/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-vocproc-refuses-a-volume-step-without-cal/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-wake-crash-dies-inside-a5xx-hw-init/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-wake-crash-is-devfreq-not-a-register-access/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-wake-crash-is-not-in-msms-devfreq-callbacks/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-webkit-session-env-was-lost-with-the-home-directory/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-webkit-snapshot-crash-is-epiphanys-full-document-thumbnail/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-workspace-caches-kernel-compiles/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/the-workspace-loop-is-seconds-and-still-uncached/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/three-always-on-blocks-cost-244mw-at-idle/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/touch-drags-scroll-on-the-scrolling-thread-and-r61-removed-the-layout-storm/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/two-thirds-of-associations-never-get-keys/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/unblank-corruption-is-below-the-compositor/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/va-api-cannot-wrap-a-stateful-v4l2-decoder/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/venus-decode-works-and-what-it-took/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/venus-dies-below-printk-on-msm8998/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/venus-wedges-on-the-first-vbif-write/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/vht-capa-overrides-cannot-touch-channel-width/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/waylandsink-5fps-was-two-upstream-policies-colliding/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/waylandsink-delivers-5fps-where-other-sinks-do-60/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/webkit-recomposites-the-whole-viewport-because-damage-clipping-is-off-by-default/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/webkits-frame-loop-is-one-frame-in-flight-and-a5xx-is-batch-bound/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/what-a-rootless-workspace-cannot-do/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/where-the-build-minutes-actually-go/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/wifi-dies-while-still-reporting-connected/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/wlroots-drm-layers-need-libliftoff/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/wlroots-never-re-imports-a-texture-after-a-renderer-swap/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/youtube-judder-is-2160p60-plus-a-lockstep-decoder-not-venus-throughput/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/findings/youtube-video-freezes-are-a-software-css-blur-on-the-main-thread/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/a-check-that-fires-on-a-healthy-tree-gets-muted/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/a-null-from-an-unexecuted-path-is-not-a-refutation/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/empty-must-mean-unknown-never-changed/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/every-test-needs-a-positive-control/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/exit-codes-are-an-api/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/instrument-guilty-until-proven-innocent/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/never-judge-a-boot-by-the-screen/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/poll-never-sleep/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/read-the-vendor-before-inventing-a-mechanism/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/shipped-configuration-is-not-running-configuration/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/laws/the-lock-says-who-not-what/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/memory/agent-memory/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/00-device-protocol/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/10-first-boot/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/15-vendor-blobs/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/20-storage-usb-ssh/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/25-device-tree/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/30-display/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/40-suspend/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/50-wifi-bt-modem/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/55-nfc/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/60-daily-driver/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/playbooks/90-upstreaming/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/readme/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/audio/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/boot/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/bringup/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/browser/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/build/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/camera/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/ci/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/cpufreq/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/debug/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/device/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/diagnosis/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/display/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/firmware/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/general/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/gpu/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/graphics/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/host/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/input/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/interrupts/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/kernel/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/media/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/memory/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/method/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/netconsole/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/network/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/nvmem/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/overview/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/packaging/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/perf/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/performance/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/pm/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/power/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/process/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/radio/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/sensors/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/setup/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/statusline/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/testing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/thermal/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/tooling/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/usb/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/userspace/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/video/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/wifi/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/topics/workflow/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-444-test-clip-makes-working-hardware-decode-look-broken/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-board-name-is-not-a-soc-name/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-browser-arm-runs-on-a-throttled-phone-that-is-discharging-on-the-pc-port/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-build-outlives-the-porthole-run-that-tracks-it/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-count-based-poll-loop-caps-the-experiment-it-measures/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-fresh-kernel-cannot-ram-boot-against-installed-modules/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-freshness-indicator-must-measure-the-thing-you-actually-read/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-full-zap-inside-the-workspace-unmounts-it/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-hard-hang-writes-nothing-to-disk/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-journal-grep-matches-your-own-command-line/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-launch-that-skips-the-user-manager-loses-environment-d/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-lax-workspace-never-installs-sccache-for-rust/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-long-sudo-cache-is-unlimited-root/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-module-parameter-that-does-not-exist-is-ignored/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-module-reload-does-not-reset-this-cards-audio-state/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-new-window-lands-in-recents-when-the-phosh-grid-is-open/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-noarch-dependency-asks-for-a-cross-compiler-that-cannot-exist/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-package-mirror-needs-a-host-arch-index/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-partial-chroot-umount-leaves-placeholder-device-nodes/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-ram-booted-kernel-cannot-survive-a-long-sleep/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-shared-log-and-a-staged-apkbuild-are-not-a-build/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-shipped-default-is-not-an-answer/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-sideloaded-device-apk-can-eat-the-radio-stack/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-stale-inherited-env-outbuilds-the-profile/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-stall-catcher-must-pick-the-busiest-webkitwebprocess/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-systemd-dropin-cannot-remove-an-ordering-dependency/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-test-that-passes-either-way-is-not-a-guard/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-tree-built-module-carries-btf-the-running-kernel-rejects/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/a-ucm-device-switch-cycles-the-whole-verb/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/ab-retry-counter-is-a-countdown-not-a-glitch/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/abuild-checksums-follow-source-order/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/an-arm-behind-the-phosh-lockscreen-measures-a-still-page/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/an-injected-touch-does-not-wake-a-blanked-screen/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/an-instrument-that-fails-quietly-is-worse-than-none/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/an-unblanked-screen-can-still-be-locked/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/androidboot-bootreason-always-says-watchdog-here/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/anubis-blocks-the-wiki-the-api-does-not/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/apk-artifact-directory-appears-after-build/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/apk-info-w-wants-the-path-the-package-recorded/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/apk3-reads-only-etc-apk-keys/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/apr-service-inherits-a-protection-domain-the-board-deletes/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/base-a-kernel-aport-on-a-pinned-tag-not-a-vendor-fork/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/build-mod-against-an-aport-kernel-fails-at-the-next-boot/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/busybox-reboot-eats-the-mode-string/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/ci-floor-copies-release-cache/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/critical-chain-shows-the-longest-path-not-the-floor/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/crossdirect-replaces-the-environment-on-exec/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/dmesg-can-be-empty-about-boot/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/dtbo-must-match-the-kernel/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/dtbo-package-padding-hides-correct-overlay/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/every-manifest-commit-predating-pkg-fork-says-unknown/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/fastboot-boot-ignores-the-ramdisk-on-newer-pixels/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/fixing-one-read-leaves-the-other-reads-stale/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/frozen-is-not-hung/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/git-ancestry-is-not-a-maintenance-inventory/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/git-apply-silently-skips-diff-git-patches/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/image-build-cannot-find-verifier/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/initramfs-is-not-frozen/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/installing-firmware-can-flash-the-boot-partition/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/memory-high-arms-systemd-oomd-against-the-browser/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/mod-rung-pushes-an-unstripped-module-into-a-stripped-set/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/monitor-mode-alongside-managed-captures-no-rx/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/never-flash-a-tree-built-kernel-when-the-device-ships-from-an-aport/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/no-cgroup-io-control-without-kernel-config/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/no-log-channel-survives-s2idle-on-this-device/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/no-passwordless-sudo-disables-the-whole-toolbox/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/olddefconfig-silently-drops-symbols/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/one-arm-cannot-resolve-a-browser-change-here/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/parallel-artifact-extraction-corrupts-apks/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/pmbootstrap-never-runs-the-shell-in-an-apkbuild/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/private-container-dev-hides-loop-partitions/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/prove-which-kernel-answered/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/pstore-has-never-worked-on-7-2/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/pushing-one-module-of-a-pair-corrupts-the-other/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/reading-the-qfprom-corrected-region-through-nvmem-hard-resets-the-phone/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/retrying-an-upload-must-rebuild-stale-indexes/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/running-a-device-script-on-the-host/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/rust-wrapper-missing-with-prebuilt-dependencies/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/settings-subpage-is-compiled-but-not-navigable/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/ssh-host-keys-change-every-boot/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/stacked-bind-mounts-break-pmbootstrap/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/stale-dev-package-outranks-your-build/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/systemd-sorts-statedirectory-so-the-first-one-is-not-yours/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-av1-demotion-deleted-the-v4l2-ranks/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-boot-header-hash-does-not-cover-the-cmdline/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-bootloader-reboot-can-drop-the-phone-off-usb-entirely/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-debug-cable-starves-the-battery/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-default-kernel-tree-can-be-a-stale-branch/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-device-keeps-a-default-route-through-a-link-that-is-gone/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-dpu-counter-is-phocs-frame-rate-not-the-apps/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-msm-reset-debugfs-does-not-make-a-client-lose-its-context/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-panel-follower-registers-but-never-fires/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-slpi-subscription-must-come-after-the-handover/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-taimen-v7-2-tree-was-ten-venus-patches-behind-its-own-aport-series/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/the-usb-gadget-can-steal-the-hosts-default-route/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/timestamps-cannot-prove-a-build-is-fresh/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/two-config-copies-at-one-commit-break-every-module/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/two-pmbootstrap-builds-destroy-each-other/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/unmasked-suspend-during-an-automated-wait-is-a-death-loop/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/uprobes-do-not-attach-to-an-already-mapped-library/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/usb-gadget-rerandomises-the-host-mac/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/usb-ids-cannot-tell-booted-from-bootloader/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/wait-long-enough-before-calling-a-boot-failed/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/watchdog-out-of-range-disarms-instead-of-clamping/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/traps/wayland-debug-is-not-a-free-instrument/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/workflow/agent-protocol/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/workflow/commit-conventions/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/workflow/device-etiquette/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/workflow/evidence-discipline/</loc></url><url><loc>https://porthole-dev.github.io/porthole/brain/workflow/handoff-format/</loc></url><url><loc>https://porthole-dev.github.io/porthole/cli/</loc></url><url><loc>https://porthole-dev.github.io/porthole/config/</loc></url><url><loc>https://porthole-dev.github.io/porthole/contributing/</loc></url><url><loc>https://porthole-dev.github.io/porthole/devices/</loc></url><url><loc>https://porthole-dev.github.io/porthole/devices/google-cheetah/</loc></url><url><loc>https://porthole-dev.github.io/porthole/devices/google-taimen/</loc></url><url><loc>https://porthole-dev.github.io/porthole/downloads/</loc></url><url><loc>https://porthole-dev.github.io/porthole/images/</loc></url><url><loc>https://porthole-dev.github.io/porthole/install/</loc></url><url><loc>https://porthole-dev.github.io/porthole/new-host/</loc></url><url><loc>https://porthole-dev.github.io/porthole/packages/</loc></url><url><loc>https://porthole-dev.github.io/porthole/performance/</loc></url><url><loc>https://porthole-dev.github.io/porthole/pipelines/</loc></url><url><loc>https://porthole-dev.github.io/porthole/profile-keys/</loc></url><url><loc>https://porthole-dev.github.io/porthole/project-status/</loc></url><url><loc>https://porthole-dev.github.io/porthole/releases/</loc></url><url><loc>https://porthole-dev.github.io/porthole/sandbox/</loc></url><url><loc>https://porthole-dev.github.io/porthole/tools/</loc></url><url><loc>https://porthole-dev.github.io/porthole/upstream-naming/</loc></url><url><loc>https://porthole-dev.github.io/porthole/working-guide/</loc></url></urlset>