OreBolt-OS/CHANGELOG.md

8.0 KiB

Changelog

All notable changes to OreBolt OS are documented in this file. Format roughly follows Keep-a-Changelog; dates are YYYY-MM-DD.

[v1.4] -- 2026-07-13

Rebrand: "Project Orebolt" -> "OreBolt OS"

The project has been rebranded from "Project Orebolt" to OreBolt OS. All human-facing text (documentation, source comments, init-script descriptions, banner messages, PDF reports, license docs) now uses the new name. Technical identifiers are intentionally preserved as-is to avoid breaking the build pipeline and to maintain filesystem compatibility:

  • liborebolt.a -- static archive name (lowercase, code-level)
  • Makefile.orebolt-v1.4 -- sub-makefile filename (lowercase, path)
  • modules/orebolt-*/ -- module directory names (lowercase, paths)
  • OREBOLT_VERSION, OREBOLT_TARGET_SOC -- environment variables
  • orebolt-broker.pid -- PID file name

This follows standard rebrand practice (cf. Firefox retaining mozilla identifiers for years after the Firefox rebrand): user-visible names change immediately; code-level identifiers migrate only when there is a specific reason to do so.

The v1.4 release is a build-and-licensing cleanup pass driven by the research file h2-and-related-devices.text. v1.3 shipped an overlay-only drop with an internally inconsistent SHA256SUMS, the wrong target SoC, and a headers-sourcing workflow that did not match the actual build path. v1.4 corrects all three and adds the AGPL-licensed bitchat mesh module.

Fixed

  • Target SoC corrected: T31 -> X1000E. The H2 and its rebadged siblings (Surfans F20, Aigo Eros Q, Phinistec Z6, Agptek H3) all use the Ingenic X1000E (JZ4760 family), not the T31/X2000. Updated the master Makefile header comment, PREREQUISITES.md §1, and ARCHITECTURE.md §1. Build flags unchanged (-march=mips32r2 -mhard-float is correct for both SoCs, but the register-level headers differ).
  • Module count reconciled to 16. v1.3 master Makefile line 55 advertised "(16 modules)" but SHA256SUMS only listed 13 module .c files and PREREQUISITES §5.1 listed 16. v1.4 ships all 16: vault, nettap, deploy, studio, probe, vterm, radar, ducky, extract, noise, reset, emulate, emulator_input_mapper, rfid, wifi, glitch, pwdb (restored), plus the new bitchat module (NEW).
  • macOS and Windows payload folders now exist. v1.3's Provision.txt itself flagged that "macos/63-100 and windows/101-150 sections were not generated in the source installer." v1.4's inject_payloads.sh regenerates the canonical 50+50+50 layout under overlay/data/payloads/{linux,macos,windows}/. Existing v1.3 flat .macro files are migrated to overlay/data/payloads/legacy/ on first run.
  • SHA256SUMS now matches what ships. v1.3's SHA256SUMS listed 38 files; only 3 of them were in the zip. v1.4 SHA256SUMS lists every file in the tree and the build verifies them.
  • Init scripts restored. S98emulator-input, S99broker, and bt_input_daemon.sh are present. v1.3's SHA256SUMS listed bt_input_daemon.sh but the zip did not ship it; the other two were referenced by PREREQUISITES §5.1 but absent from both zip and SHA256SUMS.
  • Headers/source stubs restored. All files referenced by v1.3 SHA256SUMS but missing from the zip are present in v1.4: h2_ui.h, log_manager.h, lv_conf.h.dist, main.c, panic_purge_api.h, build.sh, inject_payloads.sh, Makefile.h2-core-v6.0 (renamed to Makefile.h2-core-v6.1 in v1.4), Makefile.orebolt-v1.3 (renamed to Makefile.orebolt-v1.4), and all module .c files.

Changed

  • Headers source: Rockbox -> FiiO M3K GPL kernel tree. v1.3 PREREQUISITES §3 asked operators to clone Rockbox as a header reference and hand-write register definitions (because Rockbox is GPL and OreBolt OS was proprietary). v1.4 vendors the FiiO M3K GPL kernel tree (Linux 3.10.14, Ingenic BSP) as the canonical headers source -- same X1000E SoC, GPL-clean, ships the exact uapi headers, no reverse engineering. See the new HEADERS.md for the full workflow and the XBurst BSP fallback.
  • Rockbox demoted to optional bare-metal reference. v1.3 listed Rockbox as the primary header reference; v1.4 explicitly scopes it to a future bare-metal "OreBolt OS Native" port and notes that the current Linux userspace build path does not use Rockbox at all.
  • Sub-Makefile names bumped to reflect the SoC correction. Makefile.h2-core-v6.0 -> Makefile.h2-core-v6.1, Makefile.orebolt-v1.3 -> Makefile.orebolt-v1.4. Master Makefile references updated.
  • HARDWARE_GPIO default flipped to 0. v1.3 left the default unspecified; v1.4 explicitly defaults to 0 (safe stubs) so host development builds do not accidentally trigger real GPIO operations. Set HARDWARE_GPIO=1 only on real H2 hardware.
  • build.sh Phase 0 now probes for KERNEL_HEADERS. Exits with a clear error if the FiiO M3K tree is not at the expected path.
  • build.sh Phase 7 now verifies the bitchat AGPL marker. Runs strings overlay/apps/bitchat.mod | grep -q AGPL_BITCHAT and fails the build if the marker is missing (i.e., bitchat was compiled without -DAGPL_BITCHAT, which would mean it was compiled without its AGPL license obligations enforced).
  • LVGL clone fallback baked into Phase 5. v1.3 PREREQUISITES §8 documented an offline LVGL-clone fallback in the troubleshooting section; v1.4 build.sh Phase 5 implements it inline.

Added

  • bitchat mesh module (modules/orebolt-bitchat/bitchat.c, src/modules/mod_bitchat_mesh.c). Licensed under AGPL-3.0-only. See LICENSE.md for the multi-tier licensing strategy and the AGPL boundary analysis. The bitchat module is the only OreBolt OS component that runs as a networked service; AGPL v3 §13 closes the SaaS loophole for mesh operators who fork and run modified bitchat nodes.
  • HEADERS.md -- dedicated kernel-headers sourcing strategy doc. Replaces v1.3 PREREQUISITES §3.
  • LICENSE.md -- multi-tier licensing strategy. Documents the AGPL boundary, operator obligations under AGPL v3 §13(d), and the practical compliance checklist for deploying a modified H2 with bitchat.
  • licenses/ directory -- AGPL-3.0.txt, GPL-2.0.txt, MIT.txt stub files. Replace with full canonical texts before shipping (download URLs in each file).
  • make headers-check target -- verifies the kernel headers tree is installed and exposes the expected JZ4760 SoC header path before the build starts.
  • BITCHAT_MSG_LICENSE wire message type -- every bitchat mesh HELLO advertises the source-code Written Offer URL to peers, so operators downstream of a modified node are automatically informed of their AGPL v3 §13 source rights.

Removed

  • v1.3 PREREQUISITES §3 "Rockbox Headers for Ingenic T31" workflow -- replaced by HEADERS.md. The §3 section in v1.4 PREREQUISITES now points operators to HEADERS.md instead of reproducing the (wrong) Rockbox-mining workflow.

Known limitations

  • All module .c files (except mod_bitchat_mesh.c) are currently build-linkable stubs with the correct SPDX headers and module surface (init/deinit). Real implementation must be restored from the upstream source set tracked in SHA256SUMS. Stubs log their init/deinit calls so the launcher UI works end-to-end.
  • licenses/AGPL-3.0.txt is a stub referencing the canonical URL. Run curl -o licenses/AGPL-3.0.txt https://www.gnu.org/licenses/agpl-3.0.txt before shipping.
  • BITCHAT_SOURCE_URL in mod_bitchat_mesh.c is a placeholder (https://example.invalid/orebolt-bitchat-src). Replace with the real Written Offer URL before any bitchat deployment that other operators will interact with over the mesh.

[v1.3] -- 2026-07-13 (pre-cleanup)

Initial public drop. Shipped the overlay tree (payloads, init scripts, vault data) but omitted the buildable source set. Targeted the wrong SoC (T31 instead of X1000E). Listed Rockbox as the primary header reference despite being a bare-metal OS unsuitable for the Linux userspace build path. See CHANGELOG.md v1.4 entry for the full cleanup.