Hi! I’m swapping my daily android phone for the nth time today and going through my set-up “check-list”. As apps are updating/installing, I thought I’d check in with the hive-mind, what are you all doing to make the process easier? Maybe you know of a way to self-host some sort of android profile server? I’ll post my process + list of goals & gripes below and if you have any tips or suggestions about what I can do better, I’d love to hear them!!
Current Process
- flash clean rom
- walk through the setup process
- enable developer mode + adb
- go through default app list disabling/uninstalling crap i don’t want
- use ‘fdroidcl’ to install all my fdroid apps
- adb push a gpg private key to import into OpenKeychain
- generate a ssh keypair in Password Store, put public key on my server via ConnectBot, clone passwords repo
- log into firefox sync
- log into joplin
- configure fairmail
- configure davx
- log in to google account
- download play store apps I was missing
- go through apps one by one, logging in to accounts + doing configuration
- deal with fucking whatsapp
- hold old phone + new phone side by side and made sure i got everything
Goals & Gripes
App Installation
fdroidcl helps a LOT here, i can have a list of my minimal required packages - password management solution, browser, and notes get installed and it solves a lot of bootstrapping problems for me. I never need to do the dance of opening chrome, downloading fdroid, giving chrome install permissions, installing fdroid, etc.
that said, it is /slow/ and obviously limited to installing apps from fdroid repositories. maybe the slowness i can solve with self-hosting an fdroid repo, but i’m still stuck with having to install a bunch of apps manually either through aurora store, or play store.
App configuration
If i could push in arbitrary app configurations i would be sooooo happy. certain apps have config export/import, like my launcher, but that’s far from all of them. i’ve tried a number of “backup” options, like Titanium, but obviously they don’t work without root and don’t always work /with/ root, especially going across devices. I’ve vaguely considered using Appium for this but … ehhhh.
De-googling
Okay, so I can probably solve the apk problem somehow… I can solve the contacts sync… but I really like android auto, and that’s a non-starter without a system google account afaik.
i’ve never once managed to successfully move whatsapp to another device and not lose my chat history. it starts restoring from a backup, fails, and kicks me into being logged in without any chance of a restore.
Edit: oh and if you have any suggestion that’d make me not hate re-pairing wearos watch… 🥺
Oh nice a nicely-formatted list of reasons I don’t switch phones more frequently than once every 5 years: I loathe setting them up as specifically as I want them to behave
It’s not just the initial setup either. You spend those 5 years tweaking the phone continuously. It’s hard to let go of something that’s been chiseled to perfection and start all over again.
Yeah, my list would end up being longer than some novels. Also, software churn makes it an ever evolving process, so having a list where half of it is wrong by the next time I need it seems less than ideal.
It’s pretty new but if you are interested in degoogling and looking for ways to use android auto, there is apparently a working solution with GrapheneOS but I have not tested so can not verify it.
https://grapheneos.org/features#android-auto
Edit: typo
It works. Been using it without fail.
I can also vouch that Android Auto works in a work profile.
That’s an interesting suggestion, thanks! I might wind up trying that for android auto + google voice 🤔
Possible alternative for Whatsapp is to run matrix and a WhatsApp bridge, then all of your messages will be stored in the WhatsApp bridge, and you can access them via a matrix client. Pretty long winded though. As for Android auto, I can’t afford a fancy new car with a screen in it so I just mount my phone on the dashboard and use it like that with no Android auto.
Strikes me that there should be some kind of provisioning tool similar to Ansible for Android devices, what does industry do when they need to automate provisioning of thousands of devices for POS, retail, barcode scanning, delivery drivers, etc.
what does industry do when they need to automate provisioning of thousands of devices for POS, retail, barcode scanning, delivery drivers, etc.
MDM doesn’t help with the kind of stuff OP is trying to automate, but it does usually cover most business use cases and if you need more than that, you generally either have a contract to get the manufacturer to do it for you or just put what you need into the org-specific superapp you already have to have.
Check Robotnix, this is a Nixos module for declarative building of Android You can specify stuff to be installed, maybe you can automate some other stuff you do
Hmm, thanks for the suggestion… this looks like it might be mainly for only pixel devices? Or devices that have a LineageOS build? I might be frustrated enough with the problem to learn Nix, but I don’t want to be limited to particular hardware.
I believe it can do all(if you know how), pixels just are widely spread and supported
Basically this, but update the system, then install GrapheneOS, set that up, setup Google, setup bitwarden, start to load apps from Obtainium, setup each (and uninstall the app from the old device as I go). Then gp apps, same thing. Then device settings. Using FX file manager at some point to login to my nas and pull config and backup files, as necessary.
Takes me a full day, but I can be confident that I have everything migrated and not have to do anything else. I use my phone for many things (tasks.org, calendula, the usual calendar and email, banking…) and also for safety/reassurance (all my medical details are input and updated whenever there is a change, my watch detects falls and has LTE if my phone is dead, etc) which is very important to me being disabled.
It’s a bitch to do but once you have a rhythm, it’s actually pretty much zombie auto-pilot. The initial setup for bitwarden (g play) which has the prerequisite of Google (account) as a whole without having a simple way to input passwords 60+ characters long quickly is oof. Once I had bw ready, it’s just boom boom boom. I get a new phone whenever a family member needs to upgrade to my current one, so it can be a yearly process, or like 3 years. The new device keeps me excited and powering through the dull process.
restoring the whatsapp chat history from its own backup worked every time i tried it.
Maybe the backup was created by an older version of whatsapp than the version you were trying to restore to?
A backup solution like “seedvault” which is built in to lineageOS might help. It includes settings like wifi passwords, app-data and the apk’s.
Since seedvault is integrated as a system app in lineageOS, it doesn’t require a rooted system like titanium.
There are some limitations though, for example some apps don’t allow backups and seedvault respects that setting.
After installing Lineage, I root the phone and install Neo Backup.
Then I just make an up to date backup on my old phone, copy that over (easiest with KDE Connect), and restore. That deals with about 60% of the apps and their data. The rest are mostly apps where I have to log in again and some special cases like WhatsApp or Signal where using their own backups is required.I made a list when I changed my phone last year of working/non-working apps from my phone at that point.
Permissions don’t carry over and have to be regranted to every app.
Hey, thanks for that, I appreciate you sharing your list.
One option you can consider with fairmail and gmail is to use an “app password” to authenticate to IMAP, instead of oauth. That might work better when backing up with neo backup?