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
..

mkdosfs - Make DOS filesystem utilty.


I wrote this, partially to complement the dosfsck utility written by Werner
Almesberger (who graciously gave me some pointers when I asked for some
advice about writing this code), and also to avoid me having to boot DOS
just to create data partitions (I use Linux to back up DOS :-) ).

The code is really derived from Remy Card's mke2fs utility - I used this as a
framework, although all of the filesystem specific stuff was removed and the
DOS stuff inserted.  I believe originally mke2fs was based on Linus' mkfs
code, hence the acknowledgements in the source code.

Neither Remy nor Linus have had any involvement with mkdosfs, so if there are
any bugs they're almost certainly "all my own work".

The code has been available for ftp since 1st September 1993, and I have yet
to receive any bug reports from users.  I don't know of any bugs, but if you
do find a bug or have any constructive comments, please mail me!

The only bug I found with version 0.1 was an obscure fault that could lead
to an invalid (for MS-DOS, not Linux's dos fs) number of sectors used in the
file allocation table(s).


Dave Hudson
dave@humbug.demon.co.uk


FAT32 support
=============

mkdosfs now can also create filesystems in the new FAT32 format. To do
this, give mkdosfs a "-F 32" option. FAT32 isn't selected
automatically (yet), even if very large clusters are needed with
FAT16. With FAT32 you have two additional options, -R to select the
number of reserved sectors (usually 32), and -b to select the location
of the backup boot sector (default 6). Of course such a backup is
created, as well as the new info sector. On FAT32, the root directory
is always created as a cluster chain. Sorry, there's no switch to
generate an old static root dir.

One bigger bug fix besides FAT32 was to reject filesystems that need a
16 bit FAT to fit all possible clusters, but the bigger FAT needs some
more sectors, so the total number of clusters drop below the border
where MS-DOS expects a 12 bit FAT. So such filesystems would be FAT16,
but interpreted as FAT32 by DOS. The fix is to reduce filesystem size
a bit.

- Roman <roman@hodek.net>