Archives

Categories

Android Without Play

A while ago I was given a few reasonably high-end Android phones to give away. I gave two very nice phones to someone who looks after refugees so a couple of refugee families could make video calls to relatives. The third phone is a Huawei Nova 7i [1] which doesn’t have the Google Play Store. The Nova 7i is a ridiculously powerful computer (8G of RAM in a phone!!!) but without the Google Play Store it’s not much use to the average phone user. It has the “HuaWei App Gallery” which isn’t as bad as most of the proprietary app stores of small players in the Android world, it has SnapChat, TikTok, Telegram, Alibaba, WeChat, and Grays auction (an app I didn’t even know existed) along with many others. It also links to ApkPure (apparently a 3rd party app installer that “obtains” APK files for major commercial apps) for Facebook among others. The ApkPure thing might be Huawei outsourcing the violation of Facebook terms of service. For the moment I’ve decided to only use free software on this phone and use my old phone for non-free stuff (Facebook, LinkedIn, etc). The eventual aim is that I can only carry a phone with free software for normal use and carry a second phone if I’m active on LinkedIn or something. My recollection is that when I first got the phone (almost 2 years ago) it didn’t have such a range of apps.

The first thing to install was f-droid [2] as the app repository. F-droid has a repository of thousands of free software Android apps as well as some apps that are slightly less free which are tagged appropriately. You can install the F-Droid app from the web site. As an aside I had to go to settings and enable “force old index format” to get the list of packages, I don’t know why as other phones had worked without it.

Here are the F-Droid apps I installed:

  • Kdeconnect to transfer files to PC. This has some neat features including using the PC keyboard on Android. One downside is that there’s no convenient way to kill it. I don’t want it hanging around, I want to transfer a file and close it down to minimise exposure.
  • K9 is an Android app for email that I’ve used for over a decade now. Previously I’ve used it from the Play Store but it’s available in F-droid. I used Kdeconnect to transfer the exported configuration from my old phone to my PC and then from my PC to my new phone.
  • I’m now using SchildiChat for Matrix as a replacement for Google Hangouts (I previously wrote about how Google is killing Hangouts [3]). One advantage of SchildiChat is that it keeps a notification running 24*7 to reduce the incidence of Android killing it. The process of sending private messages with Matrix seems noticeably slower than Hangouts, while Google will inevitably be faster than a federated system (if only because they buy better hardware than I rent) the difference shouldn’t be enough to notice (my Matrix servers might need some work).
  • I used ffupdater to install Firefox. It can also install other browsers that don’t publish APK files. One of the options is “Ungoogled Chromium” which I’m not going to use even though I’ve found Google Chrome to be a great browser, I think I should go all the way in avoiding Google. There’s no description in the app of the differences between the browsers, the ffupdater web page has information about the browsers [4].
  • I use Tusky for Mastodon which is a replacement for Twitter. My Mastodon address is @etbe@mastodon.nzoss.nz. Currently Mastodon needs more users, there are plenty of free servers out there and the New Zealand Open Source Society is just one I have contact with.
  • I have used ConnectBot for ssh connections from Android for over 10 years, previously via the Play Store but it’s also in F-droid. To get the hash of a key from a server in the way ConnectBot displays it run “ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub“.
  • I initially changed Keyboard from MS Swiftkey to the Celia keyboard that came with the phone. But it’s spelling correction was terrible, almost never suggesting words with apostrophes when appropriate and also having no apparent option to disable adult words. I’m now using OpenBoard which is a port of the Google Android keyboard which works well.
  • I’ve just installed “primitive ftpd” for file transfer, it supports ftp and sftp protocols and is well written.
  • I’ve installed the mpv video player which plays FullHD video at high quality using hardware decoding. I don’t need to do that sort of thing (the screen is too small to make it worth FullHD video), but it’s nice to have.
  • For barcodes and QR codes I’m using Binary Eye which seems better than the Play Store one I had used previously.
  • For playing music I’ve tried using the Simple Music Player (which is nice for mp3s), but it doesn’t play m4a or webm files. Auxio and Music Player Go play mp3 and m4a but not webm. So far the only programs I’ve found that can play webm are VLC and MPV, so I’m trying out VLC as a music player which it basically does but a program with the same audio features and no menu options about video would be better. Webm is important to me because I have some music videos downloaded from YouTube and webm allows me to put a binary copy of the audio data into an audio file.

Future Plans

The current main things I’m missing are a calendar, a contact list, and a shared note taking system (like Google Keep). For calendaring and a contact list the CalDAV and CardDAV protocols seem best. The most common implementation on the server side appears to be DAViCal [5]. The Nextcloud system supports CalDAV, CardDAV, web editing of notes and documents (including LibreOffice if you install that plugin) [6]. But it is huge and demands write access to all it’s own code (bad for security), and it’s not packaged for Debian. Also in my tests it gave me an error 401 when I tried to authenticate to it from the Android Nextcloud client. I’ve seen a positive review about Radicale, a simple CalDAV and CardDAV server that doesn’t need a database [7]. I prefer the Unix philosophy of keeping things simple with file storage unless there’s a real need for anything else. I don’t think that anything I ever do with calendaring will require the PostgreSQL database that DAViCal uses.

I’ll give Radicale a go for CalDAV and CardDAV, but I still need something for shared notes (shopping lists etc). Suggestions welcome.

Current Status

Lack of a contacts list is a major loss of functionality in a phone. I could store contacts in the phone memory or on the SIM, but I would still have to get all my old contacts in there and also getting something half working reduces motivation for getting it working properly. Lack of a calendar is also a problem, again I could work around that by exporting all my Google calendars as iCal URLs but I’d rather get it working correctly.

The lack of shared notes may be a harder problem to solve given the failure of Nextcloud. For that I would consider just having the keep.google.com web site always open in Mozilla at least in the short term.

At the moment I require two phones, my new Android phone without Google and the old one for my contacts list etc. Hopefully in a week or so I’ll have my new phone doing contacts, calendaring, and notes. Then my old phone will just be for proprietary apps which I don’t need most of the time and I can leave it at home when I don’t need that sort of thing.

5 comments to Android Without Play

  • benedek

    You can install Aurora Store from f-droid which will let you install all the apps inside Google Play without an account. A good replacement for KDEConnect is Syncthing, you should give it a try.

  • Andrew

    Thank you for recommending primitive ftpd. I haven’t tried it yet but seems like the answer that I was looking for. I was trying to figure out a way to have my phone talk to a ftp/sftp/whatever from my computer, but I always drag my feet because a.) the lack of applications that can talk with old file transfer protocols and b.) I don’t like setting up, for example, sshd on a computer I don’t need remote access to. Seems like a needless security issue. I never thought to have my phone host the server. Should make it easier to move/push/pull files in bulk too from the computer side rather than trying to do that on the phone.

    For notes I mostly just use markor, a markdown (and more) editor. Although I just use it for plaintext because I’m too lazy to do any fancy formatting. You could probably sync the notes easily with Syncthing, which will sync files with your computer without a centralized server to store the files. Just both devices need to be on the same LAN or be online (I believe they can discover one another by using some of the discovery servers set up; you can disable this behavior). I would just set it up so that Syncthing only runs when plugged in for your phone so it won’t eat your battery. File conflicts are also solved rather well when they do occur. Disclaimer I haven’t used Syncthing in awhile, nowadays I only keep a grocery list on my phone which I just add and delete items on my phone without my computer.

    If that won’t work for notes, these are some things I’ve seen on F-Droid but have not tried myself:
    Carnet seems to be a drop in replacement for Google Keep. Seems to support nextcloud syncing and has a linux companion app. You can import from Google Keep apparently and sync the notes from your phone via either a nextcloud or some server the dev (presumably) set up.
    – I think nextcloud has a notes app on F-Droid?

    For music apps, I use Vanilla Music. I don’t know if it supports webm audio, but I know it supports m4a audio files nicely. I mostly use it because I really like how it handles queueing of music (I love me a ‘play next’ option, which some apps don’t have for some reason). It also allows you to limit where it looks for audio files, which is nice if you have, say, audiobooks you don’t want mixed in with your music, which is very annoying. Most apps for some reason do not allow you to limit the directories the app searches for compatible files, but this one does and it does it very well.

    Other recommendations from me:
    Aegis Authenticaticator is a nice 2FA authenticator.

    Feeder is a nice RSS feed client.

    NewPipe is an awesome FOSS youtube frontend that even allows you to download videos or stripped audio. Download this from github releases though, as F-Droid doesn’t update often. Youtube sometimes changes stuff that breaks the program randomly and while the devs will fix it overnight, F-Droid won’t get the new version sometimes until weeks later.

    keepassDX works nice for passwords.

    AntennaPod works well for podcasts.

    Libra Reader is good for reading epubs. The apps is a bit bloated for my tastes, but it does what it says on the tin (and well).

    I will also recommend binary eye; I was using SecScanQR but it does not allow for you to scan static image files for QR codes. SecScanQR has a more robust QR or other barcode generator though (i.e. want a contact QR generated?), so there’s that.

    OpenContacts is nice on a phone when apps you use require your contacts but you don’t actually want to give them your contacts. The app keeps a private contact list in the app (that supports importing, exporting, etc.). You can call contacts from the app as well as open a sms app for a contact. Since the dialer won’t have access to contacts in the app either, a popup will come up indicating who’s calling if it is in OpenContacts’ contact list. My biggest gripe is that it doesn’t support the overlay in sms apps. I mostly use this because I am currently using a googled phone and I don’t want my contact list syncing with my google account, which I find annoying how it strong arms you to do so. It also allows importing and exporting contacts without hassle. I don’t know why it is sometimes so hard to have your phone give you a bloody contact database. The app is rather ugly and kind of clunky, admittedly, which is a shame because of how useful it is. Oh, and it supports contact syncing with nextcloud and the likes, although the app warns that the feature is in beta.

    AudioAnchor is a great app for audiobooks. Also allows you to tell it where to look for audiobooks like Vanilla Music.

    Equate is nice for doing unit conversions, as I find it annoying having to use a search engine for that.

    KISS launcher is my go-to home screen launcher. Super fast, super simple, and no organizing your homescreen. It just works. I love it.

    Geometic Weather is a super pretty weather app that fetches data from accuweather.

    All the apps in this list I’ve gotten from F-Droid. Oh, and also, I don’t use nextcloud but I assume you do because you mentioned it a few times.

    (Thanks for writing to this blog by the way. I don’t generally comment on stuff but I find a lot of the stuff you post super useful.)

  • benedek: Thanks for the suggestion of Aurora store. I won’t use it myself but I’m sure it will be useful for some people. As for syncthing, I only use the basics of KDEConnect and don’t need any more. But it’s good to mention it for the benefit of others who have different needs.

    Andrew: There are plenty of FTP servers, in the past I had used Olive Tree FTPD from the Play store which did the job.

    Syncthing won’t satisfy my need for notes, I want something where someone can add items to a shopping list while someone else is on the way to the shops.

    Carnet only supports NextCloud which I couldn’t get working.

    Vanilla Music doesn’t do webm.

    Thanks for all the suggestions.

  • Someone sent the following by private mail which is worth sharing:

    in your Android Without Play post you mentioned indending to try out
    Radicale. Feel free to share what I write here freely.

    I am running Radicale and it sort of works. I however have it in my todo
    list to try migrating to Xandikos:
    https://vdirsyncer.pimutils.org/en/stable/tutorials/xandikos.html

    This is motivated by this report of Radicale issues, which suggests to
    use Xandikos instead: https://vdirsyncer.pimutils.org/en/stable/tutorials/radicale.html

    I am extremely happy with DAVx² for managing contact list and calendar,
    using my server (currently with radicale) as a backend, and vdirsyncer,
    khal and khard on my laptop.

    As a little extra on that setup,
    https://f-droid.org/en/packages/com.minar.birday/ is a little app that
    will look for birthday info on the local addressbook and give you
    notifications for birthdays.

    For notes I use Markor like Andrew in the blog comments, and syncthing
    for syncing them (and camera pictures) to my laptop, but I’m reluctant
    to leave syncthing running on both and I end up bringing it up and down
    manually when I need syncing, which is annoying.

    syncthing is a Go thing, that in Debian only gets limited security
    support[1], and it’s explicitly designed to make the local system
    reachable through firewalls, so leaving it running on my laptop seems
    like a spectacularly bad idea.

    [1] https://salsa.debian.org/debian/debian-security-support/-/blob/master/security-support-limited

    Other apps I use that were not mentioned:

    * andOTP as a 2FA authenticator
    * AndrOBD for speaking to an OBD bluetooth adapter to get more details
    about a “Check engine light” on my car (this was quite useful when my
    old car was getting olded and developed odd quirks)
    * Blitzortung for realtime lightning maps (it helps to see if a storm
    is coming where you are
    * ccgt for tuning a guitar
    * Conversations because I still use XMPP and it’s quite nice these days
    * DeepL for translations
    * E numbers for a quick reference on harder to read ingredients in
    foodstuff
    * Fast shopping for quick shopping and todo lists, though it’s unshared
    so I wouldn’t recommend it for you
    * Flashlight can do red-screen as a flashlight, which is good when you
    need to look for something in the dark without losing night vision
    * Frost as a facebook client
    * ImgurViewer to access imgurl and other image links without ending up
    in messy sites
    * Jitsi Meet
    * M.A.L.P. to control mpd at home (at some point I need to consider
    figuring out DLNA)
    * Mirror Mirror for a quick and simple front-camera mirror
    * MoneyBalance / Tricky tripper for maintaning an account of shared
    expenses while traveling
    * Night Screen because with an AMOLED display it allows me to use the
    phone in the middle of the night without flashing strong light in my
    face and disrupting my ability to sleep again
    * OneTwo for rolling dices, picking a volunteer, or similar social
    things
    * OONI Probe for bandwidth and connectivity/censorship testing
    * Open Camera for a more featureful camera
    * OsmAnd~ for navigation
    * Sky Map for a map of the night sky
    * SMS Gate to backup SMS to an IMAP account
    * StreetComplete for micromapping
    * Suntimes to figure out remaining daylight for walks
    * Transportr for public transportation routing
    * Voice for audiobooks
    * WebApps to sort of turn mobile sites into apps, and access things
    like Messenger without installing apps
    * WiFiAnalyzer to debug WiFi
    * Wikipedia as a wikipedia client
    * Yet Another Call Blocker to mitigate phone spam

    Thank you for your post!

  • I also use Radicale, with its db hooked into git for historical tracking. For notes I use jtx Board, configured as an alternative Tasks handler in DAVx5, which then adds support for Notes, Journals and Tasks stored on the Radicale server, which is rather nice.