[1] https://en.wikipedia.org/wiki/Telephone_call_recording_laws#...
[2] File to edit: https://github.com/LineageOS/android_packages_apps_Dialer/bl...
Maybe it's complicated for telephone conversations where you're not breaking a law locally, but are breaking a law remotely?
Android doesn't expose it because the hardware doesn't expose it to the OS in the first place.
Well... IIRC there was never an official call recording API, and in fact on some phones it was physically impossible to snoop on the telephony audio.
Most recording apps used to either work only on some qualcomm single chip phones where baseband exposed audio path to application processor, or enabled microphone recording in hopes of catching the audio from speakers (and not all phones allowed simultaneous mic use like that).
The NDK was only added in 2.0 to appease game developers and workaround for Dalvik anemic performance.
Any access to Linux APIs was accidental and never part of the official native APIs.
Android ported to any of those platforms would still make use of File("myfile").createNewFile() with zero dependencies on a Linux implementation.
No it doesn't, the API call is still valid in Android 11, as long as the filesystem reserved for the application is used.
Even so, it has to do with the Java implementation.
It is the main userspace programming APIs are written in. Followed by the increased use of Kotlin.
In both cases, the final execution tier does produce a pure binary, when the device is idle, after getting the PGO data from the JIT tier.
The NDK C and C++ APIs are based on ISO C, ISO C++, OpenGL, Vulkan, OpenSL (now replaced by AAudio), and Android specific native APIs.
Plenty of choice, just not Linux specific APIs.
Like pretty much everything that goes against the user and people are way too quick to accept anything that has the word "security" applied to it.