> NOTICE: Termux is broken on Android 12. Android OS will kill any (phantom) processes greater than 32 (limit is for all apps combined) and also kill any processes using excessive CPU. You may get [Process completed (signal 9) - press Enter] message in the terminal without actually exiting the shell process yourself.
What do you mean by direct access? You'll need to build a separate app to access these things because they are only accessible via APIs that are only exposed in the java land. But you can build an Android app right on your Android phone. AIDE allows you to do just that, and I believe you can install the raw SDK in Termux and use it as well.
In other words, you can use an Android phone on its own, unmodified, to program it to do arbitrary things. Yes it's awkward and yes you have to jump through some hoops to get it set up. Nevertheless, this fits my definition of a general-purpose computing device.
You could technically do the same on iOS. The only problem here is that Apple would never approve an app that gives a user this much control over their own device. It's not a technical issue, but rather an organizational one.
"Parsing music metadata is actually really fast, it's the process of getting a file handle from the android system thats the real bottleneck. MediaStore is a system-level daemon, so it doesn't have that restriction, but I do. This is why Vanilla and VLC take so long to load media, not because the metadata indexer is slow but because reading files is slow. Google prefers this as it furthers their quest to kill the filesystem, so there's nothing I can do about it."