Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Merge hold (owner request, 2026-10-21): Keep this vold exFAT timeout change out of |
Vold module review — deployment not yet ready (2026-10-21)The isolated upstream change is sensible: on the pinned LineageOS I made two small commits to this draft to prevent unintended release churn when the module is off: the existing selection fingerprint bytes are retained until vold is selected, and Blockers before merge + scheduled enablement + force-publish:
Current decision: retain draft status; do not merge, enable scheduled production builds, or publish an untested |
…ope GrapheneOS out
…rotates out nightly
Baseline-first CI progress (2026-10-22 UTC)The ordering is now enforced in code: Historical source identity is now pinned to the SHA-256 CI: #39697359803 passed the complete normal test job at exact PR head The rollout remains draft and unmerged; both LineageOS and GrapheneOS production defaults remain off for this module, the approved patched binary hash/staging tag remain blank, and no OTA release or force-publish was dispatched. Next gate is to provision that runner and obtain a real |
Stage-1 baseline prerequisite merged — 2026-10-22The independent, unmodified-vold-only infrastructure has been merged to
Retain this #157 draft unmerged. Do not enable the scheduled selector or force-publish a replacement |
2026-10-22 — Build-scope correction / dependency feasibility findingThe baseline workflow already invokes Additional reproducibility blocker: the pinned
Neither Review the exact The manual baseline run #39699955476 did not reach compilation: Suggested safe next engineering sequence: (1) audit/recover/pin the vendor configuration and its provenance; (2) create a separate read-only, nonpublishing, bounded |
Acquire exact TheMuppets vendor candidates with complete inventories and real pinned-source regeneration. Add persistent local setup, staged source builds, authenticated fresh reference extraction, and unchanged exact-byte acceptance. No Actions runner is required for local builds. Validated head: 768df41 CI: https://github.com/0cwa/ModOS/actions/runs/39786297037 78 local tests and workflow contracts passed. Real vendor preparation and no-fetch resume succeeded; official Repo/avbroot setup succeeded. Android compilation and original-vold equality remain unproved. Draft timeout module #157 and production gates remain unchanged.
Purpose
Prepare a baseline-first, fail-closed LineageOS pdx235
voldtimeout replacement. The production exFAT patch must NOT be applied until an unmodifiedvoldhas been built by CI and proven byte-for-byte identical to the executable in the publisher-authenticated LineageOS source OTA.Gate 0 — reproduce the unmodified original (NOT YET COMPLETED)
8af46661a1440e98018bb2abb155317d6d4ae54e051160f0786b75c1e6806c82, recovered from successful verified production runs #39632433468 and #39678546023.src/ci/resolve_lineage_vold_ota.pyprefers the exact official builds-API record and refuses a conflicting digest. A missing historical API entry can fall back only to the immutable original official archive URL/digest pin.src/ci/prepare_lineage_vold_reference.shchecks the downloaded ZIP SHA-256, independent official LineageOS publisher key, and whole-OTA signature usingavbroot ota verify, then extracts the original/system/bin/voldas read-only reference bytes.src/ci/build_lineage_vold.py baselinesyncs/verifies the full pinned 1,243-project source tree and builds the unmodified daemon without even opening/applying the timeout patch. It compares all binary bytes, records exact SHA-256 hashes/ELF identities/sizes/first differing offset, and fails closed on any difference.lineage_vold_exact_baselineis opt-in only on this owned review branch, hascontents: read, uploads justbaseline-report.json, and does not build or publish a modified OTA. It needs an isolated[self-hosted, linux, x64, modos-lineage-large]runner with Android build prerequisites and at least 220 GB free scratch. SetMODOS_LINEAGE_LARGE_SCRATCHandMODOS_VOLD_BASELINE_RUNNER_READY=truerepository variables after provisioning.byte_identical: truereport for the genuine OTA, this gate remains blocked.Gate 1 — only after Gate 0: timeout patch (NOT ENABLED)
buildcommand now requires--baseline-report,--baseline-binary, and--reference-vold, and independently rechecks exact bytes/source identity before applying the patch. It is NOT part of the baseline CI job.pdx235;ro.lineage.*properties are checked in the product partition and original executable ownership, SELinux xattr and filesystem metadata must survive injection.Gate 2 — unpublished OTA + device acceptance (NOT COMPLETED)
Require reviewed patched artifact provenance, authenticated OTA postflight and nonpublishing rootless/Magisk builds. Independently test device boot, FBE/storage mounting, and exFAT behavior before any production use. Each newer nightly requires a fresh exact baseline and patch qualification.
Gate 3 — staging/publication (NOT AUTHORIZED)
The binary and staging provenance digest-approval fields in
locks/lineage-vold-exfat-timeout.jsonremain blank. The scheduled and manual module selectors are wired but default off. Published use fails closed until the exact reviewed binary/staging provenance SHA-256s are pinned. GrapheneOS is explicitly excluded. Do not merge, select it in production, or force-publish merely because ordinary CI passed.Documentation:
docs/lineage-vold-exfat-timeout.md.