[ROM][UNOFFICIAL][potter] LineageOS MicroG builds

htsmi

Member
Jul 15, 2016
41
14
0
If anyone, for any reason, objects to me posting these here, please let me know! I am not a developer, just a user who has compiled something that may be useful to others.

Thanks to vache for the LineageOS development. Thanks to the entire LineageOS team. I have taken sources from here (15.1) and here (14.1) and built them using this build setup and set of patches.

I have been running 14.1 for several weeks and everything seems to be fully functional. I have not been using 15.1 due to issues with VoLTE, but MicroG integration seems to work fine.

Builds available here. They are signed with test keys.

I'll update this as I have the chance -- monthly or so to get the new security patches. I can also post manifests and scripts so you can build your own. It's pretty simple really, just need some free gigabytes and let it run overnight.
 

Azphreal

Member
Jan 11, 2014
35
6
0
My SIM cards aren't working on the 15.1 build. Both are reported as "SIM not allowed". The second is recognised by the carrier, but the first seems completely rejected. Both work on other ROMs.

EDIT: Restored from a backup, wiped, then flashed again. Working now.

EDIT2: Camera is very broken. Logs show "Camera service is unavailable," and everything related to it (LED flash, rear proximity sensor) fails.

EDIT3: Noticed /system was partially corrupted after the camera issue was appearing on my backup as well. fsck'd the partition, clean flash everything, everything (currently) working smoothly.
 
Last edited:
Aug 27, 2015
8
2
0
Hi @htsmi, thanks for your work!

I am also trying to build LineageOS for microG for this device, but I am currently getting the following errors:

Code:
drivers/built-in.o: In function `mods_codec_dai_probe':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1042: undefined reference to `mods_codec_register_device'
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1061: undefined reference to `mods_codec_unregister_device'
drivers/built-in.o: In function `mods_codec_dai_remove':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1091: undefined reference to `mods_codec_unregister_device'
drivers/built-in.o: In function `gb_usb_ext_connection_exit':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/usb-ext.c:111: undefined reference to `usb_ext_set_state'
drivers/built-in.o: In function `gb_usb_ext_handle_attach':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/usb-ext.c:78: undefined reference to `usb_ext_set_state'
/srv/src/LINEAGE_15_1/kernel/motorola/msm8953/Makefile:974: recipe for target 'vmlinux' failed
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory '/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
make: Leaving directory '/srv/src/LINEAGE_15_1/kernel/motorola/msm8953'
I used the following local manifest:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
	<project name="LineageOS/android_external_bson" path="external/bson" remote="github" revision="lineage-15.1" />
	<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="lineage-15.1" />
	<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" revision="staging/lineage-15.1" />
	<project name="boulzordev/android_device_motorola_potter" path="device/motorola/potter" remote="github" revision="lineage-15.1-64" />
	<project name="boulzordev/android_vendor_motorola_potter" path="vendor/motorola/potter" remote="github" revision="lineage-15.1-64" />
	<project name="boulzordev/android_kernel_motorola_msm8953" path="kernel/motorola/msm8953" remote="github" revision="lineage-15.1-64" />
</manifest>
Can you please share your local manifest you have used to build it?
 

htsmi

Member
Jul 15, 2016
41
14
0
I used the following local manifest:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
	<project name="LineageOS/android_external_bson" path="external/bson" remote="github" revision="lineage-15.1" />
	<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="lineage-15.1" />
	<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" revision="staging/lineage-15.1" />
	<project name="boulzordev/android_device_motorola_potter" path="device/motorola/potter" remote="github" revision="lineage-15.1-64" />
	<project name="boulzordev/android_vendor_motorola_potter" path="vendor/motorola/potter" remote="github" revision="lineage-15.1-64" />
	<project name="boulzordev/android_kernel_motorola_msm8953" path="kernel/motorola/msm8953" remote="github" revision="lineage-15.1-64" />
</manifest>
Can you please share your local manifest you have used to build it?
My manifest.xml appears to be identical. The only other file I have in the manifests directory is the prebuilt.xml for the prebuilt apks as described in the instruction page.

Are you using the same command line arguments (replace $1 with your toplevel directory):

Code:
docker run \
    -e "BRANCH_NAME=lineage-15.1" \
    -e "DEVICE_LIST=potter" \
    -e "INCLUDE_PROPRIETARY=false" \
    -e "SIGNATURE_SPOOFING=restricted" \
    -e "CUSTOM_PACKAGES=GmsCore GsfProxy FakeStore MozillaNlpBackend NominatimNlpBackend com.google.android.maps.jar FDroid FDroidPrivilegedExtension " \
    -v "$1/lineage:/srv/src" \
    -v "$1/zips:/srv/zips" \
    -v "$1/logs:/srv/logs" \
    -v "$1/ccache:/srv/ccache" \
    -v "$1/manifests-potter:/srv/local_manifests" \
    lineageos4microg/docker-lineage-cicd
 

kentdobias

New member
Dec 3, 2017
3
1
0
I am also trying to build LineageOS for microG for this device, but I am currently getting the following errors:

Code:
drivers/built-in.o: In function `mods_codec_dai_probe':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1042: undefined reference to `mods_codec_register_device'
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1061: undefined reference to `mods_codec_unregister_device'
drivers/built-in.o: In function `mods_codec_dai_remove':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/mods_codec.c:1091: undefined reference to `mods_codec_unregister_device'
drivers/built-in.o: In function `gb_usb_ext_connection_exit':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/usb-ext.c:111: undefined reference to `usb_ext_set_state'
drivers/built-in.o: In function `gb_usb_ext_handle_attach':
/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ/../../../../../../kernel/motorola/msm8953/drivers/misc/motomods/greybus/usb-ext.c:78: undefined reference to `usb_ext_set_state'
/srv/src/LINEAGE_15_1/kernel/motorola/msm8953/Makefile:974: recipe for target 'vmlinux' failed
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory '/srv/src/LINEAGE_15_1/out/target/product/potter/obj/KERNEL_OBJ'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
make: Leaving directory '/srv/src/LINEAGE_15_1/kernel/motorola/msm8953'
The greybus code was added in a commit on July 21 and relies on functions defined in drivers/misc/mods_codec_bus.c and drivers/misc/usb_ext_bridge.c. Checking the Makefile in drivers/misc, this code is only built if CONFIG_MODS_CODEC_BUS and CONFIG_MODS_USB_EXT_BRIDGE are set in the kernel build configuration, respectively. A quick check of the defconfigs for the target architecture (arm64) in arch/arm64/configs reveals that they are not set. The following patch fixes the problem.

Code:
diff --git a/arch/arm64/configs/potter_defconfig b/arch/arm64/configs/potter_defconfig
index 006ac5b5897a..5b74f92233d4 100644
--- a/arch/arm64/configs/potter_defconfig
+++ b/arch/arm64/configs/potter_defconfig
@@ -1263,8 +1263,8 @@ CONFIG_HAPTIC_DRV2605=y
 # CONFIG_HAPTIC_DRV2624 is not set
 CONFIG_ALSA_TO_H2W=y
 CONFIG_DROPBOX=y
-# CONFIG_MODS_USB_EXT_BRIDGE is not set
-# CONFIG_MODS_CODEC_BUS is not set
+CONFIG_MODS_USB_EXT_BRIDGE=y
+CONFIG_MODS_CODEC_BUS=y
 # CONFIG_MODS_MODBUS_EXT is not set
 # CONFIG_HD3SS460_MUX is not set
 # CONFIG_USB3813 is not set
 

htsmi

Member
Jul 15, 2016
41
14
0
Thanks for this! Do you think you'll have a chance soon for your first update?
New 14.1 build in the original link. I haven't built 15.1 since the issues I've had with VoLTE. I may give it another try, but I don't have enough space for both source trees to exist on my computer right now, so I'm sticking with building 14.1 now.

Just to note, Google Maps and other google apps are complaining about the version of Google Play Services still, and I have doubts about whether MicroG will get brought up to date again. The lack of support for FCM and almost zero commits from the sole developer over the past few months makes me wonder if MicroG will actually be maintained too much longer...
 
Aug 27, 2015
8
2
0
My manifest.xml appears to be identical. The only other file I have in the manifests directory is the prebuilt.xml for the prebuilt apks as described in the instruction page.

Are you using the same command line arguments (replace $1 with your toplevel directory):
Thanks @htsmi and sorry for the late response! It is now building properly with the shown configuration. @attack11
helped me with this post: I needed to downgrade the kernel repository to an earlier commit, due to some motomod changes causing this problem. With the most recent commits it is fixed, though.
 

awoolf

Senior Member
Aug 21, 2008
66
12
8
Just to note, Google Maps and other google apps are complaining about the version of Google Play Services still, and I have doubts about whether MicroG will get brought up to date again. The lack of support for FCM and almost zero commits from the sole developer over the past few months makes me wonder if MicroG will actually be maintained too much longer...
Sadly, I've found the same thing as you - more and more apps aren't working with the last release of MicroG. But, looks like some other folks have picked up the torch and have created a fork called "NoGoolag". I haven't tried it yet, but will be using your ROM as a starting point.

Many thanks!
 

awoolf

Senior Member
Aug 21, 2008
66
12
8
more and more apps aren't working with the last release of MicroG. But, looks like some other folks...have created a fork called "NoGoolag". I haven't tried it yet, but will be using your ROM as a starting point.
Your ROM + NoGooLag's MinMicroG pack works magically. No apps (so far) complain about the version of Google Play Services. Yay! But, you can't just download NoGooLag files; you have to join their Telegram group. ("MinMicroG-2.2-NoGoolag" is what I used. As a courtesy, I've attached the latest version to this post.)

But, apparently a new problem is surfacing - GCM (Google Cloud Messaging) has been superseded by FCM (Firebase Cloud Messaging), and MicroG doesn't yet work with FCM. GCM will be retired in early 2019, so there is now a bounty for updating MicroG to support FCM. (Currently at $165.)
 

Attachments

Last edited:
  • Like
Reactions: Squeeto

Ayax28

Member
Jul 29, 2018
24
3
0
Santiago
Your ROM + NoGooLag's MinMicroG pack works magically. No apps (so far) complain about the version of Google Play Services. Yay! But, you can't just download NoGooLag files; you have to join their Telegram group. ("MinMicroG-2.2-NoGoolag" is what I used. As a courtesy, I've attached the latest version to this post.)

But, apparently a new problem is surfacing - GCM (Google Cloud Messaging) has been superseded by FCM (Firebase Cloud Messaging), and MicroG doesn't yet work with FCM. GCM will be retired in early 2019, so there is now a bounty for updating MicroG to support FCM. (Currently at $165.)
Hey!

Sorry but I got confused.

I can install NoGooLag in every ROM? Or just with Signature spoofing?
 

awoolf

Senior Member
Aug 21, 2008
66
12
8
Hey, it's me again.

I was reading about the FCM issue and I wanted to know if it was already fixed or not.
Yes, the issue was resolved. I'm not familiar with the details, but the bounty site describes it as "The bugs were fixed by commits 9e0ee10, f94d140 and 719cd51, now part of the 0.2.6 release. "
 

Squeeto

Member
May 3, 2012
15
0
0
Your ROM + NoGooLag's MinMicroG pack works magically
I have this loaded now. Aurora gives "malformed request" for Google login and "no network connection" for anon login. I will have to update Aurora probably.

Do you know if there an update to NoGooLag since 2018?

Thx for the file btw. (Gave thx)


edit: updated Aurora via F-Droid (don't know if this is the cleanest way)
Google login works, anonymous doesn't
 
Last edited:

Squeeto

Member
May 3, 2012
15
0
0
Also microG just had an update to the Services GMS Core to v0.2.10.19420.
https://github.com/microG

I uninstalled NoGoolag, installed GMS Core, Fake Store, UnifiedNlp and Framework Proxy.
I allowed permissions but clicking "System grants signature spoofing permission" does nothing.
I can't get spoofing set up.

Help please. Is there a check somewhere that I need to set?