[Moto G7 Power ROMs, Kernels, Recoveries, & Other D] joefidler:
I installed MicroG and cdDroid 6 onto my Ocean over the July 4th weekend (cold windy weekend - southern hemisphere) - good time to de-google. First a big thanks [MENTION=7543015]Rondeau79[/MENTION] for all the hard work you do on this device - this is irrelevant without that.

There are issues with MicroG on Android 10 - for example some location providers are not yet working including radiocells.org - it's a work in progress. I ended up using the Nanodroid zips to install MicroG but MinMicroG also works well and has some newer Microg versions and a "slimmer" approach. I used the Patcher for Android Q Linux bash script to patch signature spoofing as I am not sure if Nanodroid's patcher now works with Android 10 (edit: according to their readme the Nandroid patcher now works on Android10 - will try that next time), and the bash script works well. Magisk does a good job of keeping things in place (using addon.d scripts) during ROM updates and makes it easier to switch between MicroG providers.

If you don't want to patch signature spoofing, I think the HAVOC ROM is patched by default - and there are ROMs like ArrowOS on other phones which have it. If you don't want to mess with any of this, LinageOS4MicroG is a great ROM for Ocean, but seems to be getting a bit stale (looking at you [MENTION=10574335]Bernie_nix[/MENTION]).

Stuff you will need to get started:

- Nanodroid: https://gitlab.com/Nanolx/NanoDroid

Nanodroid can (and probably should be ) customized before installing by altering the .nanaodroid-setup file. I used the full package but flashing the MicroG + Fdroid packages also works fine. see https://gitlab.com/Nanolx/NanoDroid/-/blob/master/doc/AlterInstallation.md

- minMicroG also has several package options. https://github.com/friendlyneighborhoodshane/minmicrog_releases/releases

- Magisk: https://github.com/topjohnwu/Magisk/releases

- Signature Spoof patch: This approach uses a Linux bash shell script running in terminal on a PC and needs some pre-reqs to be installed (see the script itself for details). If you are using Windows, the SmaliPatcher may work - haven't tried it (bit too closed source / cloaked for me). Before using the script confirm the URLs of the files in scripts header - especially the dxdepatcher - so you don't get download errors. Script is here: https://gist.github.com/CHEF-KOCH/510cdac327c0132e550554a33e25baf4

First time installation:

You can do a dirty install starting with the ROM flash + TWRP_install step, but not if you have any Gapps or previous Microg installed. Clean flashing will give better results. Having the SIMs in helps with setup after the install.

- Boot recovery. If a recovery is not already installed, boot bootloader on the phone, plug in a cable to a PC and boot recovery using "fastboot boot TWRPxxxxx.img"

- Wipe data, dalvik, system and internal storage, then format userdata.

- Flash ROM + TWRP_installer zips

- reboot to recovery

- plug in a cable and run the signature patcher script on the PC (something like ./signaturepatcher.sh)

- flash Magisk

- Reboot to System

- Confirm the phone boots and has Magisk installed. If boot looping to TWRP - wipe data, format user data.

- Boot to recovery

- Flash nanodroid or minMicrog zips

- Boot to system

Post install:

- run microg self checker, tap signature spoofing to grant that permission, enable device registration and cloud messaging as needed, enable and configure location backends, grant permissions.

- reboot to system (just cause sometimes microg likes it)

- check microg self checker again. see notes below for anything unchecked.

Updating crDroid:

- Boot recovery

- Flash ROM + TWRP_installer

- reboot to recovery

- flash Magisk

- Reboot > System

Notes:

- 'Phonesky has correct signature' issue can be solved by using a terminal app (say termux)and typing :

su	(grant root permission when asked by Magisk)

pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE

exit	(exit su)

exit	(exit terminal)

restart to system

- 'UnifiedNLP do not have Location to test Geocoder' - run some apps that use location services and this should then show checked.