Android without Google: Shiftphones
Like the well-known Fairphones, Shiftphones are modular devices. Right from the shop they ship with no bloat, just the minimal set of Google Apps are installed. And never was it easier to go Google-free: no bootloader unlocking or the like required, simply use the standard update feature to switch to the alternative version!
Android without Google:
- 1: Introduction
- 2: ownCloud
- 3: Getting rid of unwanted bloatware
- 4: App Replacements
- 5: Free your Droid!
- 5a: microG (update to NOGAPPS in part 5)
- 6: Self-Experiment (still running)
- 7: Where do I get my apps now?
- 8: Shiftphones – the most easy way to reach your goal!
Started before this series, but clearly belonging here:
First things first: no, this is no commercial. Nobody paid for this article, nobody even asked for it. I write it as I am fascinated by this device – and by its easy way to go Google- and Bloat-free. SHIFTPHONES donated 3 SHIFT6mq devices to the F-Droid core team, which I am a member of – no strings attached. I’m taking this chance to say thanks to this generous gesture, also in the name of the team (and at F-Droid we are currently discussing how to express our thanks as well; did you e.g. notice that the device frame on the F-Droid start page no longer is a Pixel, but – a SHIFT6mq?). I got one of those devices – and before making it my „main driver“ take the chance to explore it a bit more in detail. These experiences I want to share with you here.
Their slogan is „SHIFT happens“ – so let’s go shifting and make it happen! True to their philosophy of sustainability, the device ships in a box of recycled cardboard. No glazing sheet – just what’s needed: the device (with a protecting bumper (on the picture: in the box, with the SHIFT logo printed upon); the USB plug you might have noticed at the bottom of the device was added by me for my „magnetic charger/data cable“), a USB-C cable for charging and data transfer, a screw driver (again wrapped in recycled paper for protection), the deposit paper (a voucher so you get your 22€ deposit back when returning the device), a quick-starting guide and two short info sheets. No manual – not only would most users ignore that anyway, but most likely they won’t need it either. The guide lists some links, though – and the SHIFTPHONES Forum is well maintained, you will get fast and helpful responses there.
My SHIFT6mq shipped with ShiftOS-G 3.7. As the device is Google certified, the company is only allowed to ship the Google variant. OK, let’s have a look at that first then.
First highlight is the bootscreen itself already (see screenshots below), sending a warm shiver down my spine: this does not seem to be an „attention-grabbing capitalist object“ but something made with love indeed! For those who cannot read the images, let me quote the text of the first screen:
WARNING: smartphones can be time killers.
there is no greater gift for you today, than the next 24 hours.
use them wisely. people are more important than machines.
Gets you thinking, huh? and here comes the second screen:
with love. from germany.
My feeling: They mean it.
The next two screenshots show the app launcher and the homescreen: pretty clean, right? No bloat, no crap. I‘ve just disabled 8 apps (Google Drive, Google Photos, Gmail, Playstore, Google TV, Google Maps, Meet (aka Google Duo), Youtube and Youtube Music). So altogether, there were just 10 Google Apps pre-installed – the absolute minimum Google demands for certification. No Facebook, Instagram, Twitter etc (which all can be installed manually by those who want them – a „wisdom“ true not only here, but most vendors simply did not learn it yet). All clean and smooth. For a full view, see the device‘s Adebar Report which was created right after the first startup and before I disabled those apps. And also gives you some details on the hardware the device is equipped with.
First start and first adjustments
So right after the first start, the „usual“ setup wizard guides you through. It lets you copy data from your previous device if any (which I skipped), asks you to signup to Google (I skipped that as well), wants you to confirm all Google services are allowed to grab your data (just switch the toggles off and ignore the warning). Now a little surprise again: you can pick a provider for the search widget1. Quite a list, including e.g. Ecosia, Mojeek, Quant, DuckDuckGo and many more (yes, also Google and Bing if you insist). Take your pick.
Once through the wizard, your homescreen appears. And there’s a notification waiting: more things to configure if you like. I liked! It‘s the same wizard again (so we can skip the steps we already processed), but with a few steps added: set up fingerprint lock – and fix the design Google forces upon all vendors (you must use their font and their „greenish stuff“). In Backgrounds › Design choose „user defined“, then:
- font: Open Sans (the one in the middle)
- symbols: 4
- color: black
- form: squircle
- name: anything you want it named
Who wants to go another step can now enable developer options (go to Settings › About Device and tap the build number seven times), enable USB debugging if you want it, activate the advanced power menu – and disable checking USB-installed apps with Play Protect. If you enabled USB debugging and now connect your „axolotl“ (code name of the device) to a Linux PC, you might be surprised again: it is detected out of the box – no adjustments to
/etc/udev/rules.d needed2. Wow.
Should you want to go Google-free, just skip to the next section. But if you plan to stick with the Google-variant, you might wish to make a few more privacy adjustments: open Settings › Google and disable personalized ads, Google autofill, sharing phone number – and everything else you‘d rather not have Google doing/seeing. Also go to Settings › Apps and disable those apps you don‘ want to have (see above list), power-users might also decide to
adb uninstall --user 0 <packageName> for a more resistant getting-rid-of.
Switching to ShiftOS-L
You want to go Google-free? While with most devices this is „easier said than done“, with devices from SHIFTPHONES this is almost the opposite: everyone can do it! No bootloader unlocking needed, not even developer options or any other „technical stuff“. You just download the ROM from their forum to your Shiftphone, tell your device to install it, and you’re done. Basically. You can find the full instructions here in the spoiler. This will only work if the OS to be installed is newer than the one present on the device – so if you plan for this step, better do not perform an OTA before or you’ll have to wait for the next OTA release.
The abbreviated procedure (for full instructions, see above link) is as follows:
- download, copy to internal storage
- Settings › System › Advanced › System Updates: open 3-dot „kebab“ menu, choose Local update and pick the downloaded file
- run the install, do NOT restart yet, even when prompted!!! Instead go to Settings and perform a factory reset. This is needed to get rid of the Google-dependent things from the original OS.
- after the device booted up again (factory-reset involves a reboot) verify: Settings › System › Advanced › System Updates: should now show ShiftOS version 3.7L (not G) or later, Android 10 (or later), axolotl - release-light.
If you want to root your device, this is the moment to do it – because installing Magisk will require another factory reset due to bootloader unlocking. Otherwise, just skip that section and continue with microG – or go straight to the finale should you want to skip microG, too. Though it might be an interesting read at least.
For those interested: here’s the Adebar Report at this stage.
With great power comes great responsibility! While unlocking your bootloader and rooting your SHIFT6mq won’t void your warranty, be sure you know the implications – and act accordingly! Stay safe!
As bootloader unlocking implies a factory reset, you might wish to do that right at the beginning (before configuring the device and before installing your apps) – if you plan to root and/or install a custom ROM (otherwise, you will NOT need this and better keep your bootloader locked as a safety measure).
That said, it’s perfectly fine to skip this section – if you dont know whether you need root, you probably won‘t need it. If you’re unsure whether you might need it later, you might also decide just to perform the preparational steps now (i.e. up to unlocking the bootloader, which implies a factory reset) so you don’t need to do everything again then. And if you just unlocked but skipped the other steps here, then decide later you don‘t need root and do not perform them at all: you can lock the bootloader again – at least as long as you didn’t perform any action like flashing a custom recovery, custom boot image or custom ROM.
Rooting is pretty much straight-forward again. Basically, the following steps are required:
- Go to Settings › About phone, scroll down to the bottom of the page, and tap „Build number“ seven times to unlock the „Developer options“
- Go to Settings › System › Advanced › Developer options and enable „OEM unlocking“
- Boot into the bootloader and run
fastboot flashing unlock
WARNING: This will delete all your data as it implies a factory reset!
- Confirm. The device will then reboot.
- As unlocking the bootloader implies a factory reset, you will have to re-enable developer options and activate USB Debugging now.
Now your system is prepared to accept modified images via
fastboot flash. So lets prepare Magisk:
- Get hold of the boot image. Either you extract it yourself from an OTA downloaded from SHIFT using the OTA Payload Extractor – or download it from the very same forum. Make sure it matches the ShiftOS version you have installed. Copy it to your SHIFT6mq (via MTP,
adb pushor any other means familiar to you).
- Download Magisk.
- Install Magisk APK, start it, tap on „install“, choose „Select and Patch a File“ and select your downloaded
boot.img, finally grab the patched boot image and copy it back to your computer.
- Reboot your SHIFT6mq to its bootloader . Then run
fastboot flash boot magisk_boot.img(replace the file name with that of your patched boot image).
- if the process is stuck and won’t display SUCCESS after about 30 Seconds: Press Ctrl-C on your computer; then on the SHIFT6mq press the volume-down, select "Reboot Bootloader", confirm & try again
- after it displayed SUCCESS: type
fastboot rebootand hit Enter. Your device now should boot back into the system – and that should be rooted, which you can check via the Magisk app.
Note that on first launch, the Magisk app (at this point still carrying the default Android icon) will ask you to „Upgrade to full Magisk to finish the setup“. This will need an internet connection and consume some data, so you might wish to have WiFi available at this point. And you will need to allow Magisk to install apps from „unknown sources“ (a prompt will guide you with that). Now at the next start you will see a popup that Magisk „Requires Additional Setup“. Confirm that; a few seconds later your device will reboot once more. After this step, your device should be properly rooted.
Keep in mind that modules hook deeply into the system and could cause problems. So choose wisely – and be prepared for potential boot-loops and the like. Should that happen to you, it‘s not the end of the world. You can remove offending modules in multiple ways, even if your device no longer starts up completely (boot-loop). Pick one of the following, whichever works best for you:
- boot into safe-mode (power off completely, power on again and after the white SHIFT circle has disappeared, press and hold the vol- key until the device vibrates). In this mode, Magisk doesnt load any modules, so the boot should succeed and you can disable/remove the problematic module(s)
- power off the device completely. Connect it to your PC using a USB cable. On the PC now run
adb wait-for-device shell magisk --remove-modules, then start the device again. This will remove all magisk modules before the stage causing the boot-loop is reached.
- use the Magisk Manager for Recovery Mode (if you did not have it installed before, you can do so from within TWRP – and if you dont have TWRP installed either, you can simply boot it from an image using
fastboot boot <twrp.img>)
- as precaution, you could also install the SystemUI Bootloop Saver module, which detects boot-loops and then automatically disables all Magisk modules. Check its Readme first for instructions.
Magisk no longer has a repository browser integrated. To find and install modules, you can use Fox’s Magisk Module Manager. Or you download the modules from their resp. developers, save them to your SD card, and choose „install from storage“ from within Magisk’s module section.
While most modules are rather chosen on personal requirements, and there are not really any „Must-have-Modules“, there are some generic ones which are generally useful:
- Magisk Manager for Recovery Mode (see above)
- SystemUI Bootloop Saver (see above; available from within Fox)
- Shamiko if you need a replacement for the nolonger available „Magisk Hide“. Note this is not FOSS (no license declared, no source code provided).
Should you for some reason also want to use the Xposed framework (e.g. to use XPrivacyLua or GravityBox), this can be achieved by 3 additional steps:
- in Magisk settings, enable Zygisk (this will ask to reboot, so just do it – cannot hurt)
- download and install LSPosed zygisk-release in Magisk as module
- Reboot, then follow the prompt to add LSPosed shortcut to launcher
Note you wont find their „Parasitic Manager“ in your app drawer. It‘s just the launcher shortcut placed there on first start. Should you accidentally have removed it, a reboot should bring the promt back – or dial
*#*#5776733#*#* (aka LSPosed) to launch the manager and add the shortcut again from its settings.
Installing microG to your „axolotl“ is as easy as installing any other app – or rather several of them, as that’s what this framework consists of. I recommend you enabling its repository in your F-Droid client (with the official client you have to manually add it first – with e.g. Neo Store it comes pre-configured and you just have to switch it on) at least for updates. When I wanted to perform the install, there were issues installing it via the F-Droid client: I had to download the APKs and use
adb install. Hopefully the underlying issue has been solved once you reach this point.
Section 2 from this guide explains the installation process in detail, so I’ll just list the steps in abbreviated manner here:
- enable microG repo in the F-Droid client (either install Neo Store, or add
https://microg.org/fdroid/repo?fingerprint=9BD06727E62796C0130EB6DAB39B73157451582CBD138E86C468ACC395D14165to the official client, e.g. by clicking here from your on-device web browser)
- install microG Services Core, microG Services Framework Proxy and FakeStore from the microG repo (or via
adb installshould it fail)
- open microG Settings (optionally DISABLE Google device registration should it be enabled if you do not want any Google stuff like FCM) and grant all requested permissions by tapping the text (not the boxes!) of those entries missing the check-marks
- open microG Settings again and perform the „self-check“; tick missing check-boxes (the texts next to them). Also check the other settings; you might e.g. wish to make sure there’s no Google stuff in use (with my install I’ve noticed Google Device Registration was turned on, which should be off by default)
- install location backends. NominatimNlpBackend (resolving coordinates to names) is without alternative, I use LocalGsmNlpBackend (which works completely offline but requires you to regularly create your own offline database, so you might prefer some „online service“ like MozillaNlpBackend for the Mozilla Location Serives – and (optionally) the Local NLP Backend (successor of Deja Vu; storing your locations on-the-go and remember them when you pass them next time without GPS enabled). Then check their configuration (and push/pull the latest GSM database if you decided for LocalGsmNlpBackend)
- enable location in Settings › Security & Location -> Location -> Mode (only available with ShiftOS-G? I could not find this in ShiftOS-L and didn’t need it either; guide recommends option 2 (battery-saving), but the thread says „high“)
- self-check once more (now location should be retrieved), and cross-check with (recommended by me) Irfan’s My Location
The resulting system is lean and clean, as the last series of screenshots (made without/prior-to rooting) show: no bloat (even by default), the F-Droid client pre-installed instead of the Play Store client, a browser with privacy focus (Firefox Klar3, but still the Android-default Chrome Webview provided by Google, but future versions shall include Bromite-patches). From this point again it’s your choice to amend according to your needs – installing the apps you want to use. Some examples of what you might wish to look at include:
- Maps & Navigation: OsmAnd, Organic Maps
- Web Browser (only if Firefox Klar or (with ShiftOS-G) DuckDuckGo is insufficient for you): FOSS Browser, Fennec (Firefox), DuckDuckGo Privacy Browser, Bromite (via their own F-Droid repo)
- Camera: Open Camera; also see this SHIFTPHONE Forum thread: if you insist, there are GCam-clones adjusted for the SHIFT6mq)
- Gallery: Aves Libre or (if you want more maps to show your pics on) Aves
- Email: K-9 Mail, FairEmail
- Music: Odyssey Music Player, Simple Music Player
- File Manager: Simple File Manager, Material Files, Amaze
These are just suggestions, not a complete list of recommendations (and for those interested, there‘s also an Adebar Report at this stage, with some apps added). For more, there are always the App Listings on this very same website
So whether you decide to stay with the Google-variant (ShiftOS-G as shipped) or take the few extra steps to go Google-free (with ShiftOS-L), coming at a price of currently 650€4 this is an Android device configured as it should be: sustainable, easy to set up, no bloat at all but everything you need ready-to-go, full freedom to adjust to YOUR needs. Truly YOURs as you bought it, well supported, great community. What more could you wish for?
- 2022-12-04: instructions for rooting were added
- 2022-12-06: added sub-section on Magisk modules and LSPosed
- 2022-12-08: add gallery app recomendation (Aves) and link to Adebar report at „final state“
Surprised that I am surprised? That doesn’t surprise me. You might be aware that since 3/2020, in EEA (European Economy Area) devices with Google apps must let you choose the search provider. My latest device before I got the SHIFT6mq was from 2016, and I’ve long degoogled it ↩︎
the device simply identifies to the USB sub system as
18d1:4ee7 Google Inc. SHIFT6mq, with
18d1being the same „vendor“ used for Google Nexus/Pixel devices ↩︎
not available at F-Droid, so the question of updates arises: they’re included with OTA and/or the pre-configured SHIFT F-Droid repo. ↩︎
including the mentioned 22€ deposit; true to their philosophy of sustainability they also offer refurbished devices at a lower price, but the waiting list for those is quite long ↩︎