BatteryControl 1.0.1 — macOS 14/15/26/27 and M5 support
BatteryControl 1.0.1
This release widens the range of systems BatteryControl will run on — and keeps the honesty rules that got 1.0.0 out the door.
What changed
- Supported OS versions are now macOS 14 Sonoma, 15 Sequoia, 26 Tahoe, and 27. The platform gate admits all four; what BatteryControl can actually do is still decided at runtime by probing which SMC mechanisms your firmware exposes. An unknown key signature gets read-only diagnostics on any of these OS versions.
- M5-generation Macs are now admitted too. The old exclusion existed because M5 Macs couldn't run macOS 15 — with macOS 26/27 in scope that reason is gone. Same rule as everything else: chip generation gets you in the door, capability decides what happens next. No M5 Mac is in the verified evidence set, so none can be reported as verified.
- Apple's built-in Charge Limit (macOS 26.4+, 80–100%) is now accounted for. BatteryControl never writes that setting. When you have no BatteryControl limit set, the app and CLI tell you who is actually managing charging; when you set a BatteryControl limit, the daemon verifies it against the real battery state and is the authoritative controller.
- Custom limits below Apple's 80% floor are the headline use: presets are now 60/70/75/80/85/90/95/100 (plus custom), with the same hysteresis, readback verification, and safety floor as before.
- Minimum macOS is now 14. The whole app builds for it with zero availability shims — no 15-only APIs were in use.
Honest status
- Physically verified: one configuration. M3 MacBook Air (Mac15,13), mBoot-20457.1.29, macOS 15.8 (24H23). Firmware-managed limit + CHIE discharge, with full write/readback evidence.
- Capability-tested, never physically run: every macOS 14/26/27 combination, and every M5 Mac. The classification logic, ownership model, and per-write verification are unit-tested for them (225 tests), but that is not a substitute for hardware. If your Mac reports "compatible by capability", control is enabled with per-write verification; if it reports untested, it stays read-only.
- Compatibility reports from other machines are what grow the verified set — the read-only export command is in the README.
Fixed in 1.0.1 (already shipped in 1.0.0 artifacts, formalized here)
None — 1.0.0 had no known defects. This release is scope expansion plus version alignment.
Checksums
Verify with shasum -a 256 -c SHA256SUMS — attached, covering all three artifacts. Packages remain unsigned (no Developer ID credentials); Gatekeeper will ask for approval on first install.