Hacker News new | ask | show | jobs
by bosswipe 2054 days ago
I hate the direction Google is taking Android. They're on an appliance-ification quest trying to hide any exposed linux-ness of the OS, including trying to remove developer access to all file handles. They always claim it's in the name of security but my suspicion is that it's an effort to transition from Linux to Fuchsia.
7 comments

For me so far the worst thing Google did was disabling API for call recording. That makes new phones pretty much useless for me. I always record calls, so that I can go back to them if I forget something or that nobody can claim they said something when they didn't (most recently insurance salesperson told me I will have option X if I take their insurance and they once I bought it, there was no such option. Once I pulled the "I have recorded your salesman lying to me", I got a prompt refund and apologies).
I got around this limitation by using LineageOS. Unfortunately, I'm forced to compile my own builds with call recording enabled for the US because there's no way to tell which state you're in through MNC-MCC numbers and states like California and Pennsylvania have lame two-party consent laws for recording calls[1][2]. My state is single party consent. Just super lame that all my featurephones from the mid-2000's could record without modification.

[1] https://en.wikipedia.org/wiki/Telephone_call_recording_laws#...

[2] File to edit: https://github.com/LineageOS/android_packages_apps_Dialer/bl...

I'm surprised and disappointed LineageOS disables it as well. Do they block apps with the word "torrent" in them as well?
One would think a stern warning dialog would be sufficient...
"This call may be recorded..."
I assume you're up on all the various local laws on recording conversations, so this is for others, not you. Look into it before doing this.
Ok but then why don't they disable the camera and a microphone when you record videos? You can hide the phone in a way that the person you talk to won't see you are recording it. I don't accept this explanation.
Yes, laws overlap. The ones I'm talking about are generally about "intercepting communications" i.e., "recording conversations". In general, the US requires one-party consent, but there are 15 states that require two-party consent.
So you can put your phone on recording e.g. in a restaurant "intercepting communications", but when someone calls you it's a no-no. Regardless, in my country recording is perfectly legal and yet Google has disabled it. If this is the law, then don't you think they should either follow it or not? I am not sure how you can only partially follow the law.
They are doing the lazy thing and configuring it for "lowest common denominator". Yes, it's irritating. The effort to integrate GPS and allow/not-allow would be low.

Maybe it's complicated for telephone conversations where you're not breaking a law locally, but are breaking a law remotely?

Not against the law in Finland at least and thus seems unfair that rooting is needed to do this.
You may be better off with a VoIP service and a softphone client, though I don't think any are as smooth as the phone native performance
This is more a limitation of smartphone hardware than of Android. In most phones, calls are entirely handled by the baseband processor, and the ARM chip never sees any of the audio data.

Android doesn't expose it because the hardware doesn't expose it to the OS in the first place.

I am not sure if that is true. I am running Samsung S9 with an early Android version and call recording works just fine. The Samsung released an update that disables call recording altogether (and does not allow you to turn off updates, so I've been postponing the OS update for almost two years now every day or so).
DISCLAIMER: It's been some time since I used to read release notes for every new api level

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

Ironically, the biggest concern I have with "security" on my Android phone is Google itself. Their overzealous collection of private data makes them a constant liability which I have practically no control over other than to abandon the Android platform altogether. I've ditched Google for almost everything else, but Android is one of the few things which I don't have a reasonable alternative for.
That's why I decided to get a PinePhone this year.
Android was always about Java (now Kotlin).

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.

But Java has interfaces for interacting with the host OS, for example you can create a file by writing `new File("myfile").createNewFile()` which makes a Linux call under the hood. Android 11 breaks that File API.
The same API on Windows does a Windows call under the hood, on IBM I does a TIMI call under the hood and on PTC bare metal it does the work itself.

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's a shame as it you can make much more powerful apps with a native API.
On modern Android Java is native both ways.

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.

> They always claim it's in the name of security

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.

I heard somebody mispronounce the color fuchsia as fucks-ya. Seems apt in this case?
The color fuchsia is named after the plant which is names after the German botanist Leonhart Fuchs, whose surname means "fox" and is pronounced roughly "fooks". I strongly suspect that the usual English pronunciation is the result of taboo avoidance. (If it were a regular sound change, you'd expect "axial" to be pronounced "ashal" as well.)
This.