I finally forced Android 16 to behave like a real operating system again.
I carved out a sane workflow inside an OS that keeps trying to turn into iOS, and I did it without surrendering my /0000 Unix /usr/local philosophy.
The entire HTML book named book1 displays perfectly on Android while remaining in the user's own custom directory (/0000) so that it can
be copied over during backups along with the rest of the users' data.
Maria Sophia wrote:
I finally forced Android 16 to behave like a real operating system again.
I carved out a sane workflow inside an OS that keeps trying to turn into
iOS, and I did it without surrendering my /0000 Unix /usr/local philosophy.
SUMMARY (Linux users added because it was Linux to the rescue this time!)
Windows and Linux can easily open HTML books stored in custom top-level hierarchies, even if the books contain tens of thousands of pages & jpegs.
Unfortunately, Android 10 through 16 cannot open HTML book stored in custom top-level POSIX folders such as /storage/emulated/0/0000/books/book1/.
On 2026-07-05 05:57, Maria Sophia wrote:
Maria Sophia wrote:
I finally forced Android 16 to behave like a real operating system again. >>> I carved out a sane workflow inside an OS that keeps trying to turn into >>> iOS, and I did it without surrendering my /0000 Unix /usr/local philosophy. >>SUMMARY (Linux users added because it was Linux to the rescue this time!)
Windows and Linux can easily open HTML books stored in custom top-level
hierarchies, even if the books contain tens of thousands of pages & jpegs. >>
Unfortunately, Android 10 through 16 cannot open HTML book stored in custom >> top-level POSIX folders such as /storage/emulated/0/0000/books/book1/.
I don't know what are "books" in this context.
If you mean electronic books, for me they are epubs, and I handle them
with Calibre.
https://www.gutenberg.org/ebooks/79019
I see html format is available, but I see no reason to use it, unless as
an intermediary to transform to something else.
I don't know what are "books" in this context.
If you mean electronic books, for me they are epubs, and I handle them
with Calibre.
https://www.gutenberg.org/ebooks/79019
I see html format is available, but I see no reason to use it, unless as
an intermediary to transform to something else.
Quite a lot of technical documentation is published as an html
'book'. This for example:
https://doc.rust-lang.org/book/
Historically html is a dialect of sgml, which was designed for
documentation
Maria Sophia wrote:
Data =
content://com.android.externalstorage.documents/document/pages/2.html
Yikes. What's happening? This isn't a real file-system path at all.
It's an SAF document URI.
The index.html is written using normal standard relative links such as
pages/2.html
images/foo.png
css/style.css
These only work if the browser knows the real directory.
But the fashuganeh Android SAF apparently hides the directory.
Therefore, SAF URIs cannot be used for relative links inside HTML files.
So when the HTML says: <a href="pages/2.html">
Android tries to resolve it relative to the SAF URI, not the filesystem.
Worse, when I tap an HTML file in ZArchiver, it passes the file using
content://ru.zdevs.zarchiver.external/...
Which is ZArchiver's own SAF wrapper, not a real path.
When I paste the full URI into Privacy Browser, I get the error
Webpage not available.
The webpage at file:///storage/emulated/0/0000/book/name/index.html
could not be loaded because: net::ERR_ACCESS_DENIED
The normal HTML manual expects a real filesystem:
/storage/emulated/0/0000/book/name/index.html
/storage/emulated/0/0000/book/name/pages/2.html
But Android 16 rewrites everything into SAF URIs:
content://com.android.externalstorage.documents/document/primary%3A0000%2Fbook%2Fname%2Findex.html
This means the relative link
pages/2.html
Becomes
content://com.android.externalstorage.documents/document/pages/2.html
which is not a real path. It's a virtual document reference.
So why did file:///storage/emulated/0/0000/book/name/index.html fail?
Android 10+ treats any custom top-level folder as restricted.
Apparently, Android only allows browsers to read:
/storage/emulated/0/Download/
/storage/emulated/0/Documents/
/storage/emulated/0/DCIM/
/storage/emulated/0/Pictures/
Apparently, Occam's Razor says the simplest explanation that fits the facts
is that Android 16 blocks browsers from reading custom top-level folders.
I remember that issue (we were replicating hundreds of safety documents
down to a fire engine, but then android didn't like opening shortcuts as file:// URLs
The answer in our case was to install a web server and open them as http://localhost URLs
"Carlos E. R." <robin_listas@es.invalid> Wrote in message:
On 2026-07-05 05:57, Maria Sophia wrote:
Maria Sophia wrote:
I finally forced Android 16 to behave like a real operating system again. >>>> I carved out a sane workflow inside an OS that keeps trying to turn into >>>> iOS, and I did it without surrendering my /0000 Unix /usr/local philosophy.
SUMMARY (Linux users added because it was Linux to the rescue this time!) >>>
Windows and Linux can easily open HTML books stored in custom top-level
hierarchies, even if the books contain tens of thousands of pages & jpegs. >>>
Unfortunately, Android 10 through 16 cannot open HTML book stored in custom >>> top-level POSIX folders such as /storage/emulated/0/0000/books/book1/.
I don't know what are "books" in this context.
If you mean electronic books, for me they are epubs, and I handle them
with Calibre.
https://www.gutenberg.org/ebooks/79019
I see html format is available, but I see no reason to use it, unless as
an intermediary to transform to something else.
Quite a lot of technical documentation is published as an html
'book'. This for example:
https://doc.rust-lang.org/book/
Historically html is a dialect of sgml, which was designed for
documentation
May I ask how long it took you and your team to arrive at that conclusion
and more importantly, what server mechanism you employed, if it's a free ad free easily available web server, because the Termux method has issues too.
On 2026-07-05 15:48, Dave Royal wrote:
"Carlos E. R." <robin_listas@es.invalid> Wrote in message:
On 2026-07-05 05:57, Maria Sophia wrote:
Maria Sophia wrote:
I finally forced Android 16 to behave like a real operating system again. >>>>> I carved out a sane workflow inside an OS that keeps trying to turn into >>>>> iOS, and I did it without surrendering my /0000 Unix /usr/local philosophy.
SUMMARY (Linux users added because it was Linux to the rescue this time!) >>>>
Windows and Linux can easily open HTML books stored in custom top-level >>>> hierarchies, even if the books contain tens of thousands of pages & jpegs. >>>>
Unfortunately, Android 10 through 16 cannot open HTML book stored in custom
top-level POSIX folders such as /storage/emulated/0/0000/books/book1/.
I don't know what are "books" in this context.
If you mean electronic books, for me they are epubs, and I handle them
with Calibre.
https://www.gutenberg.org/ebooks/79019
I see html format is available, but I see no reason to use it, unless as >>> an intermediary to transform to something else.
Quite a lot of technical documentation is published as an html
'book'. This for example:
https://doc.rust-lang.org/book/
Historically html is a dialect of sgml, which was designed for
documentation
Ok...
Heh, they charge 45$ for the epub version.
No ZIP that I can see :-?
I would have to download using wget, and this tool modifies the links so that they are correct for your local installation.
I wonder if Calibre can convert that to epub.
Andy Burns wrote:
Maria Sophia wrote:
Hi Andy,
THANK YOU for confirming the diagnosis and agreeing with the workaround.
Having always dealt with huge HTML references on the desktop, I was wholly unprepared for the shock that Android 10+ is no longer POSIX compliant.
In terms of WebView, Android 10+ is apparently only POXIX compliant in
a. /storage/emulated/0/Download/
b. /storage/emulated/0/Documents/
c. /storage/emulated/0/DCIM/
d. /storage/emulated/0/Pictures/
I "could" have solved the problem by putting the repair manual in one of those directories, but they're thoroughly polluted much like similar directories are on Windows, so my linux-learned rule is to use /usr/local instead (e.g., on Windows it's c:\data & on Android it's /0000 or /0001).
Maria Sophia wrote:
May I ask how long it took you and your team to arrive at that conclusion
and more importantly, what server mechanism you employed, if it's a free ad >> free easily available web server, because the Termux method has issues too.
Spent a few hours trying to create working content:// URLs, but when
that didn't work out, used AWebServer, an android build of apache httpd
with a minimal GUI ...
<https://play.google.com/store/apps/details?id=com.sylkat.apache>
In the end we paid the developer to produce a custom build that
1) auto started the web server
and 2) let us set our own document root
It looks like the latest version has included ftp, mySQL and myPHPadmin
In terms of WebView, Android 10+ is apparently only POXIX compliant in
a. /storage/emulated/0/Download/
b. /storage/emulated/0/Documents/
c. /storage/emulated/0/DCIM/
d. /storage/emulated/0/Pictures/
I "could" have solved the problem by putting the repair manual in one of
those directories, but they're thoroughly polluted much like similar
directories are on Windows, so my linux-learned rule is to use /usr/local
instead (e.g., on Windows it's c:\data & on Android it's /0000 or /0001).
Why not /storage/emulated/0/Documents/Books ?
I have {external card}/Movies to store movies in my new tablet and it
works fine with VLC. I also have {external card}/eBooks, but I need yet
a reader (Calibre is not available that I can find).
I just installed "Librera" from F-droid. It doesn't see the books in
that folder, even though it asked for permission to see all files. It sees:
/storage/emulated/0/Android
/storage/emulated/0/Download
/storage/emulated/0/Librera
However, if I browse to:
/storage/emulated/0/eBooks using cX file exprorer, and tap on a book, it offers me to upload to "Play Libros" (maybe Play Books?) or use "Librera FD", and the later works.
It seems that browsing and opening with CX, apps inherits the permission
in runtime to open that file.
I don't like storing a multithousand file thing in a card that is
possibly FAT or eFAT. Too many writes to the FAT area.
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,126 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 49:09:58 |
| Calls: | 14,414 |
| Calls today: | 2 |
| Files: | 186,400 |
| D/L today: |
10,329 files (2,797M bytes) |
| Messages: | 2,548,842 |
| Posted today: | 1 |