Files
oxmc f6176009b1 Add recovery_ui and recovery_toolkit scaffolding (first draft, not build-tested)
Stages TWRP's GUI engine and standalone tooling as PawletOS-owned modules
instead of a bootable/recovery fork, per the plugin-architecture finding in
NOTES-ota-recovery-ab.md: stock recovery_main.cpp already dlopen()s
librecovery_ui_ext.so and dlsym()s make_device() from it at runtime, so the
UI layer doesn't require touching stock bootable/recovery at all. Confirmed
via source grep that recovery.cpp/install.cpp have zero references into the
partition manager/backup engine/GUI code and vice versa.

recovery_ui/: TWRP's gui/, minuitwrp/, libpixelflinger/ (copied verbatim,
GPL-3.0), plus a new device/ providing PawletTwrpUI (a ScreenRecoveryUI
subclass) and make_device() — written from scratch against stock's
RecoveryUI/ScreenRecoveryUI virtual-method contract, since TWRP's own fork
never ships a make_device() (every real TWRP device provides its own, and
no reference device tree was available to copy from). Top-level Android.bp
defines librecovery_ui_pawlet_twrp, the module TARGET_RECOVERY_UI_LIB should
point at. gui/Android.bp and minuitwrp/Android.bp had their include_dirs
rewritten for the new paths.

recovery_toolkit/: partition manager, backup engine (tar/digest/adbbu/apex),
filesystem/format support (exfat/dosfstools/gpt/fuse/mtp/crypto), scripting
(openrecoveryscript/orscmd/twrpinstall), shared helpers. Source only, no
Android.bp yet for any of it.

Known gap blocking recovery_ui from actually linking: gui/'s libguitwrp
depends on libaosprecovery, built from recovery_toolkit/helpers/twrp.cpp via
a Go Soong plugin (libaosprecovery_defaults.go) not yet ported. Neither repo
has been build-tested — no local AOSP build environment available in this
workspace. See each directory's README.md for a precise done/not-done
breakdown.
2026-07-11 16:34:35 -07:00

61 lines
2.8 KiB
Plaintext

Atari format support
====================
Both mkdosfs and dosfsck now can also handle the Atari variation of
the MS-DOS filesystem format. The Atari format has some minor
differences, some caused by the different machine architecture (m68k),
some being "historic" (Atari didn't change some things that M$
changed).
Both tools automatically select Atari format if they run on an Atari.
Additionally the -A switch toggles between Atari and MS-DOS format.
I.e., on an Atari it selects plain DOS format, on any other machine it
switches to Atari format.
The differences are in detail:
- Atari TOS doesn't like cluster sizes != 2, so the usual solution
for bigger partitions was to increase the logical sector size. So
mkdosfs can handle sector sizes != 512 now, you can also manually
select it with the -S option. On filesystems larger than approx. 32
MB, the sector size is automatically increased (stead of the
cluster size) to make the filesystem fit. mkdosfs will always use 2
sectors per cluster (also with the floppy standard configurations),
except when directed otherwise on the command line.
- From the docs, all values between 0xfff8 and 0xffff in the FAT mark
an end-of-file. However, DOS usually uses 0xfff8 and Atari 0xffff.
This seems to be only an consmetic difference. At least TOS doesn't
complain about 0xffff EOF marks. Don't know what DOS thinks of
0xfff8 :-) Anyway, both tools use the EOF mark common to the
system (DOS/Atari).
- Something similar of the bad cluster marks: On Atari the FAT values
0xfff0 to 0xfff7 are used for this, under DOS only 0xfff7 (the
others can be normal cluster numbers, allowing 7 more clusters :-)
However, both systems usually mark with 0xfff7. Just dosfsck has to
interpret 0xfff0...0xfff7 differently.
- Some fields in the boot sector are interpreted differently. For
example, Atari has a disk serial number (used to aid disk change
detection) where DOS stores the system name; the 'hidden' field is
32 bit for DOS, but 16 bit for Atari, and there's no 'total_sect'
field; the 12/16 bit FAT decision is different: it's not based on
the number of clusters, but always FAT12 on floppies and FAT16 on
hard disks. mkdosfs nows about these differences and constructs the
boot sector accordingly.
- In dosfsck, the boot sector differences also have to known, to not
warn about things that are no error on Atari. In addition, most
Atari formatting tools fill the 'tracks' and 'heads' fields with 0
for hard disks, because they're meaningless on SCSI disks (Atari
has/had no IDE). Due to this, the check that they should be
non-zero is switched off.
- Under Atari TOS, some other characters are illegal in filenames:
'<', '>', '|', '"', and ':' are allowed, but all non-ASCII chars
(codes >= 128) are forbidden.
- Roman <Roman.Hodek@informatik.uni-erlangen.de>