ShadowKat Studios
Blog
Projects
About

Android is braindead

Or rather, whoever designed it is. postmarketOS can’t come soon enough.

I spent a few hours yesterday organising my music collection. It’s now organised as Artist/Album (Year)/Number. Track name.extension. I also wrote a script to convert all the FLAC music to ogg, for use on my phone. I did all of this quite happily, though it was tedious to organise it. The issue came when I tried to copy the music to my phone.

I’m still using my 2015 Moto G3, running Lineage OS. It’s a great phone - solid, reasonably powerful, decent battery life. However, Android - what Lineage OS is based on - is terrible. If you’ve ever used MTP, the Media Transfer Protocol, you’ll know it’s horrible. This is hardly surprising, considering it was developed by Microsoft, but apparently it’s one of two ways to put files on an Android device, the other being using adb push, using the Android platform tools.

Don’t get me wrong - there’s plenty of other methods, FTP, SFTP, SMB, etc. to copy files directly to an Android device. The issue? None of them work. Allow me to detail what I tried.

MTP

At first I tried MTP, to copy my 40GB of music to my phone’s SD card. Strictly speaking, it worked. However, I needed to take my phone away from my computer within the next week, which was how long it was telling me it would take, so I cancelled that after a few hours.

I then tried to delete the files I copied over, however, it refused to let me both over MTP and via the file manager on the phone itself. I had to open a terminal on the phone, log in as root, go to the Music folder and rm -r everything in there. The problem here? Android security being hostile to normal use of the device.

SFTP

Next I tried SFTP, because surely I can transfer 40GB over wifi faster than I can transfer 40GB over a 300-baud serial connection. That was a great idea, however, primitive ftpd, the server I was trying to use, wasn’t allowed to write to my SD card. For no particular reason, beyond “apps aren’t allowed to write to shared storage.” Thanks, Google. The issue here? Android security being hostile to normal usage of the device.

adb push

Ah, the Android Debugging Bridge. The only reliable piece of software in the Android ecosystem. I’m currently using adb push to copy the music to my phone. Do you see a problem with this picture?

The only vaguely practical method for copying files to an Android device is by using the developer tools. That’s kind of okay on Linux - kind of - because you can probably get the platform tools separately with little hassle from your package manager. On Windows, however, though you can separately download the platform tools, the preferred method, is via the 800MB or so Android studio. This is so you can copy some music to your phone.

Syncthing? Google Drive?

I did try Syncthing a while ago. The only way it was allowed to write to my SD card was if I ran it as root. After a few hours, days, or at one point a week, it would crash, then I’d have to reinstall it and set up my shared folders again. That isn’t usable.

And Google drive? Ignoring that you only get 15GB unless you pay for it, I said directly, not uploading it to a server somewhere in another country, then downloading it again on another device. Of course, that is proprietary software anyway, and I’ve avoided having nonfree software (besides the hardware drivers) on my phone so far, including Google services, and I have no intention of ruining that.

Conclusion

The root of this issue is that while Android is technically a Linux distribution, it acts more like Windows or OS X - it treats the user as a child that doesn’t know what they’re doing with their machine, and restricts them from getting anything done to make sure they don’t hurt themselves. This is not how you do security. This is how you frustrate competent users.

postmarketOS can’t be usable on my phone soon enough.

By Izaya
2018/03/17 18:42 +1100

Tags: bad-software android software tech

<---
Fediring
--->

© ShadowKat Studios
The software used to generate this page is licensed under the Mozilla Public License version 2 and can be found here