this post was submitted on 19 Jul 2023
1890 points (100.0% liked)
196
16450 readers
1995 users here now
Be sure to follow the rule before you head out.
Rule: You must post before you leave.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Android's file structure is so incomprehensible. I'm genuinely surprised there hasn't been any significant effort made to make it more readable. Pictures saved in app directories, downloads, camera, images, pictures, media, DCIM???.
Open source developer and Linux enthusiast here. Although cluttered, Android's home directory is fairly simple to understand
The nightmare begins when you take a look at the root filesystem.
One time I was trying to port an OS to my phone and I had to figure out the Android init system. Went to source.android.com and what. the. fuck. Just as a side-by-side comparison:
Linux boot sequence: Android boot sequence (unmodded, SIMPLE):
There are so many wrong things about it like why are there 11, 12 places to put programs (/system/bin, /bin, /usr/bin /system/usr/bin, /sbin, /system/usr/share/bin...)
Why the fuck drivers are scattered around folders instead of just /lib/modules
Why is the home directory /storage/emulated/0/ instead of just /home/0/ (also why the user is named "0")
Where the fuck is everything???
God (Linus Torvalds) forgive me but even Windows is better than that shit
i wonder if that graphic is up to date with system as root and A/B dynamic partitioning and whatever crazy new bullshit google invents with every release
I raise you all of these monstrosities:
In Android's defense however, a phone would likely use only one of these layouts at a time. The question of which of these layouts does a said phone uses though, that's a more complicated question.
That's not correct though. The GNU+Linux version is missing the bootloader and initramfs.
The Linux boot sequence link doesn't work for me
Init
^
|
Linux Kernel
It's a graph, showing a red oval with the text "Linux Kernel", an arrow points from the red oval to a light-green oval titled "Init".
"Linux Kernel" --→ "Init"
Thanks