Testing microG (on a FP1, unofficial 4.4.4 build)

I’m just trying to test microG to better understand what it can do.

The app “microG Settings” (Section: Selfcheck) tells me to use GmsCore I need “signature spoofing”. So I installed xposed (never used it much before) and the FakeGapps module, but microG’s Selfcheck still tells me I’m missing something.

Any hints/ideas?

Update: On 4.4.4 the Xposed Framework is not working, I needed to copy the files manually. I hope this will get fixed soon.

Currently installed are:
Xposed Framework: app_process/XposedBridge.jar [2.6.1]
Xposed Modules: FakeGapps (… guide says “dial in your phone app ##CHECKIN##”?)

[Provided by f-droid/git-hub]
GmsCore.apk
GsfProxy.apk
FakeStore.apk

The fake GApps github (https://github.com/thermatk/FakeGApps) mentions a different route to GmsCore build, but I’d hope it’s not going to be that picky…
Did you remember to do the whole “dial in your phone app *#*#CHECKIN#*#* to register GCM and start using your Gapps-free device as usual” thing and to then reinstall any apps that require GCM? (Not that I’d say what you’re trying to do depends on GCM)

1 Like

Yep, funny, I just added the step you mentioned. Using the “Phone” app you end up with #*#24325464#*# anyway. But nothing happens.

While I see that this might be necessary for GCM, I wonder if this really related to “signature spoofing” that seems to be the biggest problem right now.

Screenshot

There is a problem with the Xposed Framework on 4.4.4. After reinstalling it, it “worked”.

Screenshot

Update: I was playing around with “nl_ns_android_activity-285” (Reisplanner NL/4.2.5) and get a lot less error messages now. Not sure if it will run stable, but I don’t see any strange error messages.

Update 2: I guess my FP1 usb-port will soon be dead :frowning:

[747586.903987] usb 1-4: USB disconnect, device number 83
[747587.175764] usb 1-4: new full-speed USB device number 84 using xhci_hcd
[747587.287713] usb 1-4: device descriptor read/64, error -71
[747587.503546] usb 1-4: device descriptor read/64, error -71
[747587.719459] usb 1-4: new full-speed USB device number 85 using xhci_hcd
[747587.831406] usb 1-4: device descriptor read/64, error -71
[747588.047283] usb 1-4: device descriptor read/64, error -71
[747588.263152] usb 1-4: new full-speed USB device number 86 using xhci_hcd
[747588.263287] usb 1-4: Device not responding to setup address.
[747588.467158] usb 1-4: Device not responding to setup address.
[747588.670909] usb 1-4: device not accepting address 86, error -71
[747782.573767] usb 1-4: new full-speed USB device number 88 using xhci_hcd
[747782.685713] usb 1-4: device descriptor read/64, error -71
[747782.901590] usb 1-4: device descriptor read/64, error -71
[747783.117459] usb 1-4: new high-speed USB device number 89 using xhci_hcd
[747783.245924] usb 1-4: New USB device found, idVendor=0bb4, idProduct=0c02
[747783.245927] usb 1-4: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[747783.245928] usb 1-4: Product: MT65xx Android Phone
[747783.245929] usb 1-4: Manufacturer: MediaTek
[747783.245929] usb 1-4: SerialNumber: XXXXXX
[747783.992424] usb 1-4: USB disconnect, device number 89
3 Likes

Wops, it seems I’m late. I installed microG on my former Nexus 4 (CyanogenMod + Freecyngn + NoGApps) for intellectual curiosity (well, I just love to tinker with OS and privacy things) and to see if I could help you, but you have already solved your problem, :slightly_smiling:

For the record, I used Needle, not Xposed, to enable signature spoofing, and had to reboot the phone several times in the process. To be honest, I wiped cache and Dalvik cache (on Lollipop, I suppose that means ART dexes) on TWRP on every reboot.

What a coincidence, my Nexus 4 data pins are dead, and I had to struggle a little reading and debugging the Python script of Needle because of using ADB over network, :joy:

Glad you solved the issue by yourself, :blush:

1 Like

Thanks! It’s good to know that there are people here who think like that. Highly appreciated.

I have not fully understood what microG really does and how useful it really is in the end (without a google account/phone number). But I want to understand the difference between the different possible ‘use’ scenarios (messaging services, location provider, maps).

Stuff like:
com.google.android.c2dm.permission.RECEIVE
com.google.android.providers.gsf.permission.READ_GSERVICES

I think the whole GAPPS/“OpenGAPPS” vs mircoG/NOGAPPS is a bit confusing, but more clarity here is important for users that don’t want to use a Google rom.

Because in the end it boils down to the question: If a free transit app just don’t want to run because it thinks there is no app store/google logging service on the device, fine. But if the app uses google’s servers for pulling/pushing information … it’s not a “really fair use” to “fake” the app into running any longer.

But as I said, I haven’t understood that all yet. There is a lot of old and new Info out there.

com.google.android.gms (microG: GmsCore = Google play services), com.android.vending (microG: FakeStore = Google PlayStore) and com.google.android.gsf (microG: microG gsf proxy = Google Services Framwork Proxy/“Push-Notifications”). I’m still not sure about the signature spoofing part, I have never used google stuff on my phone before.

1 Like

(Sorry, this post is going to be very extensive)

(I think I’ll be finishing this post tomorrow. You have NoGApps and microG info on their respective topics, linked at the bottom)

OpenGApps, GApps (GMS) and Android/AOSP

I have a disagreement with the name OpenGApps from the first day I heard/red it because of its confusion-prone constitution. OpenGApps are just flashable ZIPs of different sizes with the apps and services of the Google Mobile Services (GMS) suite, useful for flashing on top of custom ROMs, which cannot include them by default for licensing issues (extra: this side effect cause benefit for FOSS philosophy, independence and privacy at the end).

The GMS suite is commonly named GApps or Google Apps, is proprietary software, and use remote web services from Google, thus it cannot be included on Android Open Source Project (AOSP). It is shipped with (almost) every comercial Android™ device and contain usable apps (Google’s Play Store, Mail, Maps, Drive, Chrome, Youtube, etc), and other invisible apps that adds capabilities to the system (Google-backed network location, Google Maps API for embedding maps into apps, GCM push notifications and Google sign in).

The GMS suite is installed on Android as system apps. This means that, although Android base (AOSP) is open source, the reality is that there is opaque software (proprietary software) in your mobile running with root permissions and reaching 3rd party services without your clear knowledge. This can be considered a security vulnerability or a freedom cage, but mostly (for me, at least) it is a privacy concern. I cannot completely own a device I’ve bought, nor use alternative for some of those services. Other extended reason to avoid the use of GMS is excesive energy consumption.

Living without Google

Using an Android device without GMS is not as easy as it can be thought. The Android™ platform is controlled by Google. Google’s business model is hardly based on the use and popularization of their services, so Google encourage developers to use their own services and distribute their apps through their official store, Google Play Store. That means some apps cannot be obtained from other sources, and that some of those apps depend of these non-free services and cannot be used whithout them.

I’ve had the repetitive experience of my phone refusing to install some apps because of the need of Google Maps API installed (mostly Spanish bus information apps), or some other apps installing and closing when opened (showing a pretty message: “Google Services are required and blah, blah, blah”, or simply crashing), or some other apps notifications malfunctioning because the absence of GCM push services (Slack, which I need for working; Tumblr, which I needed for procrastinating).

NoGApps and microG projects

So, if GMS are needed, but for some reason you don’t want to use it (or not use it in its whole, only some parts), you are in a dilemma. This is the point in which NoGApps and microG comes to the rescue.

NoGApps and microG are open source replacements of GMS mainly developed by Mar-v-in. I’ve been following those projects for some time (roughtly two years). My guess is that microG is a renewed version of NoGApps.

(To be continued)

3 Likes

Great post! I was thinking of writing something similar myself!

I tried a few things here and here, but you did it much better. Maybe it can be wiki-fied one day? Thanks!

1 Like

@fp1_wo_sw_updates
Hi,
it would be nice if you can test Tingle (it patch the phone to enable signature spoofing) with the FP1 phone, it should work correctly but I hadn’t any report back yet for FP1 phones.

@ale5000: @fp1_wo_sw_updates has left the forum (asked for his account to be terminated/suspended) so I think it’s better not to revive this thread.