Skip to content

v0.2.0-beta.12

Pre-release
Pre-release

Choose a tag to compare

@UniqueDroid UniqueDroid released this 25 Oct 16:54
· 74 commits to main since this release
90f2398

ShareOS 0.2.0-beta.12 – test version for test devices only.

New system base: buildroot 2026.08.1, kernel 6.18.58, GCC 15.3 (Tailscale 1.104.1, autobrr 1.89).
Storage: disk health page (SMART rating, SSD life left, self-tests), disks can sleep without being woken, RAID mirrors wait for a late second disk (DNS-325), fewer flash writes.
Files: trash in the file browser with restore and automatic emptying.
USB button: a short press copies the USB drives into a dated folder.
SMB: access through a group works (ksmbd-tools 3.5.3).
Apps: new permission "notify" – apps send messages through the box's notifications.

Update from a running ShareOS: System → Update → Check now.

Full Changelog: v0.2.0-beta.11...v0.2.0-beta.12


  • System: buildroot 2026.08.1 (2026.02 gets no more fixes), kernel 6.18.58, GCC 15.3. Newer packages, among them OpenSSL 3.6.5, curl 8.22, dropbear 2026.94, BusyBox 1.38, mdadm 4.6, ntfs-3g 2026.7.7, e2fsprogs 1.47.4, nfs-utils 2.9.1, rsync 3.5.0, SQLite 3.53, expat 2.9, Transmission 4.1.3, time zones 2026e and new CA certificates. System apps: Tailscale 1.104.1 (1.104.2 needs a newer Go), autobrr 1.89, OpenVPN 2.7.8, Transmission 4.1.3, htop 3.5.1, strace 7.1, iperf3 3.21, nano 9.0. The real hdparm is in the firmware now (before: the BusyBox applet). ShareOS patches: mdadm (musl) refreshed, one uhttpd patch dropped (fixed upstream), libgpiod without GLib bindings. ksmbd-tools stays on the own 3.5.3 package (buildroot still has 3.5.2).
  • SMB: access through a group works (ksmbd-tools 3.5.3). A user who only got a share through a group (@family in the share's access list) was refused over SMB – the Finder said "the original item can't be found" – while the same user named directly worked. ksmbd-tools 3.5.2, the version of the pinned buildroot, does not pass the supplementary groups of a user to the kernel, so the POSIX ACL entry group:<name> never applied (ksmbd issue #461); 3.5.3 is the first release that does. Buildroot has no newer ksmbd-tools, so the firmware uses the package ksmbd-tools-shareos (ksmbd-tools 3.5.3) of the ShareOS tree instead of buildroot's BR2_PACKAGE_KSMBD_TOOLS; it goes away when buildroot has caught up. Checked on a DNS-325 rev A1 with kernel 6.18: a user with the share only through a group opens it from macOS.
  • RAID: a mirror no longer starts with one disk when the second disk comes up late (#65). The DNS-325 brings its disks up one after the other (the second bay about 10 s after the first), and shareos-storage boot assembled the arrays before the second disk was there: the mirror ran on one disk ([2/1] [U_]) until a manual --re-add; a stripe or span stayed inactive. Now the members of the arrays in /etc/mdadm.conf are offered to mdadm --incremental as they appear, for at most 40 s – mdadm starts an array when its last member is there. After that, whatever is there is started (a really missing disk still gives a degraded mirror, logged as "RAID incomplete after 40s"). USB disks and foreign RAID members are not touched; without mdadm.conf there is no wait. New host test tests/test-raid-wait.sh with a fake mdadm (also in CI).
  • Storage → Health (SMART of disks and SSDs): a page per disk with a rating (GUT / ACHTUNG / KRITISCH) and the reasons in plain words, temperature (with the lifetime maximum), running time, power cycles, motor start-ups, reallocated / pending / unreadable sectors, transfer errors (CRC – usually the connector, not the disk), error log, for SSDs the life left (device statistics or the vendor attribute) and the data written; all attributes as a table. Self-tests (short / long) from the page, with progress and the last result; by schedule (short test every Sunday or long test on the 1st of the month, 3:30) through shareos-storage smart-test, which reads the values again when the tests are done. The messages use the same rating (warning or error, with the reasons). rpcd: shareos.storage smart_test, smart_schedule; smartctl -a -l devstat instead of -H -A -i. New host test tests/test-smart.sh with smartctl JSON of a healthy HDD, a worn SSD and a failing HDD.
  • Disks may sleep, the flash is spared: the storage page shows whether a disk is running or asleep (AKTIV / SCHLÄFT, hdparm -C, which does not wake it). The Paperless inboxes (every 2 minutes) are skipped while all disks below them sleep – nobody can have put a file there. A message for a problem that stays (checked every 10 minutes) only rewrites the message list in the flash once an hour instead of every time.
  • Interface: a hidden tab or the app in the background no longer asks the box every few seconds (overview, header chips, messages, storage); it catches up when it is shown again – less load on the box and on the phone's battery.
  • Trash in the file browser: deleting moves into a trash per folder root (personal folder, each share, each drive: <root>/.shareos-trash, same disk, so only a rename; it counts towards the storage limit). Papierkorb in the file browser lists what was deleted there with its origin, time and account: restore (back into its folder, a taken name gets " (2)", to the top when the folder is gone), delete for good, empty. Admins switch it on/off and set after how many days entries go for good (7–90, or never) under Freigaben → Dateien; old entries are removed when that trash is used next, so no timer wakes the disks. SMB and apps delete directly (for those there are the snapshots). rpcd: shareos.files delete (+ permanent), trash_list, trash_restore, trash_empty, trash_config.
  • USB copy with the USB button: switched on under Speicher → Einstellungen → USB-Taste, a short press copies every mounted USB drive into a new dated folder on a chosen drive (<drive>/<folder>/YYYY-MM-DD_HHMM-<name>, default folder USB-Kopien; nothing on the NAS is overwritten or deleted, not enough space → nothing is copied); holding it 3 s or longer ejects as before. The USB light blinks while copying, the result comes as a message and shows on the page; Jetzt kopieren does the same from the interface. shareos-usb copy, rpcd shareos.storage usb_copy, usb_copy_config; without the switch the button only ejects, as before.
  • Apps can send messages (permission notify). Apps like HomePing or TuyaPulse can now report through the box's notification service – the messages appear under System → Messages and go out by e-mail or push like the box's own. A scheduled task calls shareos-app-notify <info|warn|error> <key> <title> [text] (or clear <key>); the messages are sent when the task has finished (at most 10 per run). In the browser the SDK has ShareOS.notify.send(level, key, title, text) and .clear(key) (permissions files + notify, admin accounts only). The same key is one message (counted, sent again after 24 h at most); the app's name is put in front of the title; an app may send at most 20 messages an hour, so a broken app cannot flood the inbox or wear out the flash. Removing an app marks its open messages as resolved. Tested in tests/test-sysperms.sh.