3.21-r0
- reset-default: add reset_default_custom.sh
- schedule_ts: fix '00:15 tomorrow' handled incorrectly as 15:00
- make-installer:
  - mark 2nd partition as 'Microsoft basic data' (fix mounting on Win11)
  - do not check installer signature time (fix working offline/without ntp)
  - do not require md5 file if there is a signature, also try for sha256 file
  - check network before trying to install mkfs.exfat, don't ask for network
- persist_file: add --force to not error on unknown file
- status: handle upgrade_available=00 for rollback status
- rtos-logger: log rtos version to syslog

2.20-r0 (2025-08-28, 3.22.1-at.2)
- swupdate-usb: fix utf8 labels not recognized since 2.18-r0
- sysctl: harden kernel.dmesg_restrict/kernel.kptr_restrict
- usb-filter: log devices allow to syslog, deny to syslog+console

2.19-r0 (2025-07-30, 3.22.1-at.1)
- reset-default:
  - improve failure modes to reset as much as possible and reboot even if
    something failed
  - fail instead of hanging if swupdate lock cannot be taken (e.g. running
    within swupdate)
  - fix example configuration file's name (extra s)
- fsck-atlog: fix messages (too many [ok] lines) in case of reformatting
- swupdate-url: handle schedules such as '17:00' without 'tomorrow': if
  the returned time was within the previous day add 24 hours to the deadline

2.18-r0 (2025-06-25, 3.21.3-at.14)
- podman_start:
  - optionally print something on tty1 at service start, this goes in pair
    with the removal of tty[1-6] from inittab in ABOS to confirm displays work
  - add AT_SE_PARAM to add_armadillo_env
  - use --allow-downgrade with healthcheck --action=rollback. Given the
    service always starts after reset_bootcount it does not really make sense
    otherwise after upgrade (ideally reset_bootcount should remember it was
    the first boot after upgrade and we could handle this separately, but this
    is not worth it when we can recommend to use rollback-clone)
- swupdate-usb:
  - limit swupdate-usb to ext4, btrfs, vfat and exfat.


2.17.1-r0 (2025-06-03, 3.21.3-at.13)
- podman_start:
  - hotplug: add stop hook to kill udevfw on container stop
    (after podman fix to run hook everytime, that fixes
     hotplug after container restart broke in ABOS 3.20)
This was meant for 2.17 but was not included in the tag somehow...
- usb-filter:
  - fix allow-class to require all classes to be present when
    allowing devices (2.17 incorrectly allowed device if any
    of the classes were present)

2.17-r0 (2025-05-21, 3.21.3-at.11)

- make-installer:
  - print installer image version (mostly for diagnostic)
  - add --dl-only option to make factory reset installer
- usb-filter:
  - add allow-device --vendor-id... command, and --verbose mode
    for listings
  - make allow-class, remove-rule accept multiple arguments
  - refresh rules after every command (enable/disable, allow
    class, remove rules...)
  - fix running from swu

2.16-r2 (2025-04-23, 3.21.3-at.7)

- add support for a900-evaboard
- indicator_signals: use PWR_IND/STDWN_IND leds if present
- make-installer: check the installer is for the correct board
  (so if you run make-installer with a SD card for G4 on A9E it will
   download a new image)
- fix at-debian-image.conf.example for A9E

2.16-r1 (2025-04-03, 3.21.3-at.4)

- sysctls: enable fs.protected_fifos and fs.protected_regular
- make_installer: a900 secure-boot fixes

2.16-r0 (NOT in 3.21.3-at.3, only apk released on 2025-03-27)

- podman_start:
  - add `--foreground` option
  - also parse conf.d/*.conf files
- abos-ctrl rtos: new command for a900
- abos-ctrl podman-storage:
  - fix bug when new snapshot cannot be deleted
- abos-ctrl make-installer:
  - a900 secure-boot support

2.15-r0 (2025-03-05, 3.21.3-at.2)

- reset-default: ensure files are not easily recoverable after deletion
  - wait for subvolumes background deletion
  - recreate /var/log from scratch
  - run fstrim explicitly

2.14-r0 (2025-02-26, 3.21.3-at.1)

- detect udev rules dir (changed to /usr/lib/udev/rules.d in alpine 3.21)
- make-installer: verity: fix small sizes being written over bootloader

2.13-r0 (2025-01-29, 3.20.5-at.8)

- abos-ctrl usb-filter: new command

2.12-r0 (2024-12-23, 3.20.3-at.7)

- make-installer:
  - verity: check linux image contains initrd to verify hashes
- podman_start: print container name on error
- abos-ctrl status: fix printing 0 instead of 'undef' when upgrading
  from zero version
- abos-ctrl/persist_file: explicitly error if run by non-root (except
  abos-ctrl status)

2.11-r0 (2024-11-27, 3.20.3-at.5)

- certs:
  - add atmark-3
  - remove atmark-1 from 'restore-atmark'
  - add 'restore-atmark-old' to restore atmark-1 if needed (tests etc)
- installer:
  - add option to disable boot prompt
  - verify downloaded image's signature against atmark certificate
    (or ask for manual confirmation if unsigned)
  - support secure boot:
    - --copy-sd option
    - 'secureboot' installer-setting
    - store encrypted boot image in /boot_image.lzo
  - support verity image creation (for secure boot)
  - fix another 'broken pipe' problem, the fix in 2.10 was incomplete.
  - use baseos.conf directly instead of installer.conf for jtag/sd boot
    security settings
- atlog: prefer /var/log/swupdate/atlog if /var/log is encrypted
- podman_start: add 'add_pre_command' helper
- A9E support:
  - add case for make-installer (dl url)/restore-kernel (kernel package)

2.10.1-r0 (2024-10-30, 3.20.3-at.4)

- fix swupdate-usb inhibiting itself when inserting removable
  device with multiple partitions

2.10-r0 (unreleased)

- new abos-ctrl commands: installer-setting, check-secure
  - supported settings are disable jtag and sd_boot
  - check-secure only checks these two settings
- make-installer:
  - do not run swupdate-usb while installer is running; this avoids
    racing when mounting/checking the device with udev
  - fix possible broken pipe errors on tee when writing image
    (busybox unzip does not read till the end)

2.9-r0 (2024-09-25, 3.20.3-at.3)

- new `abos-ctrl reset-default` command
- make-installer: check sd at the end (if sd)

2.8-r0 (2024-08-28, 3.20.2-at.2)

- getty_console: replace script that was in a600's build-rootfs
- abos-ctrl rollback-clone: fix to ensure we clone as encrypted
  if current side is encrypted, even if B side wasn't already
  encrypted

2.7-r0 (2024-07-24, 3.20.2-at.1)

- podman_start:
  - add soft dependency on ip6?tables to avoid rules being overridden by
    iptables (note: could also `podman network reload -a` after iptables
    restart)
  - fix default network json template for alpine 3.20
  - fix healthcheck with no timeout -- that fix was supposed to be in
    2.6-r0 but was not tagged properly...
- schedule_ts: likewise, all fixes described for 2.6-r0
- sysctl: extend net.ipv4.ping_group_range to include root
  This allows pings without CAP_RAW in net=host containers
- mkbootscr: fix some overflows
- abos-ctrl certificates: improve message when swupdate.pem is corrupted
- emmc-sref: import from other repo
- micron-emmc-reten service: add workaround for g4 mmc boot partition

2.6-r0 (2024-06-26, 3.19.2-at.5)

- rollback rework:
  - the rollback logic now differentiate betweens up to date and older
    software on other partition: automatic rollbacks can only happen
    immediately after an update or if the rollback would not downgrade
    the software
- abos-ctrl rollback:
  - add '--allow-downgrade' option to allow rollback to older software
  - the '--force' argument has been made optional, but force option should
    now never be used in practice.
- abos-ctrl rollback-clone:
  - add a --fstype option to allow more easily testing btrfs as a rootfs.
    This can be useful if some command (e.g. restore-kernel) failed due to
    not enough space.
- podman_start healthcheck rework:
  - BREAKING CHANGE: the timeout setting used to be parsed by podman and is
    now parsed by 'timeout', which is less flexible; container will not start
    if timeout does not understand the time.
  - podman's built-in healthcheck feature is no longer used, so podman ps will
    no longer show the container as healthy or not. Logs in /var/log/messages
    should be checked to see the container state.
  - the timeout setting now properly interrupts the command if it was longer
    than expected
  - extra commands can be executed at various point of the healthcheck cycle
    through set_healthcheck_*_command helpers
- schedule_ts:
  - fix parsing immediately after a digit, e.g. '3pm' works and '3garbage'
  now fails instead of ignoring the garbage.
  - fix 12 am/pm time (was inverted)
  - be more strict about '+ [digit]' pattern, e.g. 'now + 3' now fails instead
    of setting time to 3:00 in current day

2.5-r0 (2024-05-29, 3.19.1-at.4)

- abos-ctrl new commands: mount, certificates, update
- abos-ctrl umount: fix trying to umount 'umount' directory
- abos-ctrl make-installer:
  - check output file fits in filesystem
  - fix one-time cert check (broken in 3.18.4-at.5)
  - re-allow size in MiB or without suffix (broken in 3.18.4-at.5)
- abos-ctrl rollback: add a640 old mmc workaround
- persist_file: fix handling of non-existing paths

2.4.1-r0 (2024-04-23, 3.19.1-at.3)

- abos-ctrl make-installer:
  - fix "could not remount rootfs read-only" check when rootfs is ext4
  - fix typo (locale -> local)
  - add message before installer fsck at the very start

2.4-r0 (unreleased)

- tools:
  - wrap non-static C programs (renameat2, mkbootscr, schedule_ts) in a
    multicall binary to save space
  - add fsfreeze
- persist_file:
  - fix 'persist_file -r .' when directory already existed
- abos-ctrl make-installer:
  - when used with --output, write to a temporary '-in-progress' file and
    rename at the end to avoid confusion if make-installer was interrupted
  - remove ssh host keys from image unless --insecure is passed
  - enforce minimum base installer version (for said ssh host keys
    regeneration)
  - remember console kernel parameter in installer if set on system
  - avoid "could not remount rootfs read-only" hard errors and suggest
    alternative if it happens.
- abos-ctrl rollback:
  - do not reboot when rollback failed and invoked with --reboot
- abos-ctrl:
  - update various locking to mkswu 6.0/swupdate 2023.12 standard

2.3.1-r0 (2024-02-27, ABOS 3.19.1-at.1)

- abos-ctrl podman*: offer to stop containers if they are running

2.3-r0 (2024-01-29, ABOS 3.18.6-at.10)

- abos-ctrl make-installer:
  - add --noprompt switch
  - add --insecure switch to bypass onetime cert check and node-red port close
  - close node-red container port if open
  - fix bogus 'output image in use' check
- abos-ctrl mount-old:
  - fix is_mountpoint typo resulting in visible error
- abos-ctrl rollback-clone:
  - fix for usage from sd card
- abos-ctrl:
  - fix is_mountpoint to work with non-absolute paths; this in
    particular fixes cleanup with make-installer and other commands
- abos-ctrl podman-rw/storage:
  - support podman 4.8 new db location

2.2-r0 (2023-12-26, ABOS 3.18.5-at.7)

- podman_start:
  - add add_armadillo_env
- persist_file:
  - fix errors when using out of overlay
  - properly report rm error as failures
- abos-ctrl make-installer:
  - make 'n' default for podman-storage=disk check
  - fix output a bit (fsck errors, useless size info)
  - do not mount as discard (prints harmless errors with loop device on fat)
- abos-ctrl podman*
  - run podman commands with a separate tmpdir to cleanup

2.1-r0 (2023-11-28, ABOS 3.18.4-at.6)

- podman_start improvements:
  - fix previous healthcheck cleanup on restart
  - keep healthcheck around for podman start/stop to work
  - add podman_start --create/set_autostart create modes for remote podman
    start
- abos-ctrl podman-storage:
  - kill any udevfw process left behind (fix umount failure on disk -> tmpfs
    switch)
  - make sure partition is umountable before starting (e.g. don't fail
    halfway)
- abos-ctrl container-clear: use recursive subvolume delete instead of rm -rf
  for /var/app/volumes

2.0-r1 (2023-10-30, ABOS 3.18.4-at.5)

- add Changelog. Any entry before this will be incomplete
- support for removing coreutils/util-inux/dosfstools:
  - command compatibility with busybox
  - add sig_forward and schedule_ts tools to replace catatonit and date
- abos-ctrl status: print details of last update
- podman_start: handle macvlan network (netavark-dhcp-proxy)
- abos-ctrl container-clear: add --force switch
- fix 'abos-ctrl' invocation without action (default status)

1.23-r0 (2023-09-26, ABOS 3.18.3-at.4)
1.22-r0 (2023-08-23, ABOS 3.18.3-at.3)
1.21-r1 (2023-07-25, ABOS 3.18.2-at.1)

- fsck_atlog: check /var/log and log unclean shutdowns

1.20-r3 (2023-06-27, ABOS 3.17.4-at.7)

- first functional version of abos-ctrl rollback-clone
- abos-ctrl make-installer: remove /installer_swus directory
- a6e/a640: abos-ctrl make-installer: do not destroy installer's u-boot
(would fall back to eMMC u-boot)

1.18-r2 (2023-05-29, ABOS 3.17.3-at.6)
1.17-r0 (2023-04-20, ABOS 3.17.3-at.5)

- abos-ctrl: add container-clear command

1.16-r0 (2023-03-22, ABOS 3.17.2-at.4)

- podman_start: add add_hotplugs
- a6e/a640: fix abos-ctrl make-installer to download correct image
instead of g4 image
- add make-installer --output option

1.15-r0 (2023-01-23, ABOS 3.17.1-at.2)
1.14-r0 (2022-12-23, ABOS 3.16.3-at.7)
1.13-r0 (2022-11-22, ABOS 3.16.3-at.6)
1.12-r0 (2022-10-20, ABOS 3.16.2-at.5)

- podman-storage --disk: snapshot readonly side instead of keeping it as
additional store

1.11-r0 (2022-09-26, ABOS 3.16.2-at.4)
1.10-r0 (2022-08-26, ABOS 3.16.2-at.3)
1.9-r0 (2022-07-05, ABOS 3.16.1-at.2)
1.8-r1 (2022-06-24, ABOS 3.16.0-at.1)
1.6-r0 (2022-05-24, ABOS 3.15.4-at.7)
1.5-r1 (2022-04-27, ABOS 3.15.4-at.6)
1.4-r0 (2022-04-25, ABOS 3.15.4-at.5)
1.4-r0 (2022-03-25, ABOS 3.15.3-at.4)
1.3-r0 (2022-02-21, ABOS 3.15.0-at.3)
1.2-r0 (2022-01-21, ABOS 3.15.0-at.2)
1.1-r4 (2021-12-21, ABOS 3.15.0-at.1)
1.0-r0 (2021-11-16, ABOS 3.14.3-at.2)

- Initial release
