I’ve just learned about the “swap apps” feature in F-droid. Maybe it could be added to this wiki?
I hate to quote the employer of child-labourers, but it’s a wiki, so just do it!
What do you mean?
Edit: oh, I got that. I personally don’t have any trainers from them.
You’re right, I’ve just done it!
I have created a flashable ZIP that installs microG + Google Play Store easily.
PS: It contains an old version of Play Store (but with this version the in-app purchases are working fine).
Obviously you have to disable Play Store auto-update in some way otherwise it will auto-update itself.
this is not adressed in you github readme – i figured out that i want to use “1”, but it would be nice to have it explained in the readme
thanks for your efforts with tingle!
edit: could you also have a look here? =) – thx
The option 1 does everything automatically, the option 2 is needed if you manually copy the file to patch in the pc and put it in the input folder, the hidden option 3 if you patch directly from the phone.
I will update the readme in the future.
great, thanks (from the future users )
I have another question: after patching with Tingle, do i need to leave the developer and usb debugging and root options enabled or may i turn them off?
No, after patching you can disable developer options, usb debugging and root if you want.
I have added a small explanation in the readme, but I will add a more complete guide later since I have to change a lot of things.
edit: @paulakreuzer, and probably @Roboe this is a long post. below i am notifying you that i edited the guide – can you please read this post here and check whether the edits are ok?)
ok, I still managed yesterday. it was indeed the microG version which was wrong.
Here is how it happened:
After adding the µG repo to fdroid, when i searched for “microg” among the results are
- microG DroidGuardHelper
- microG Services Framework Proxy …
- µG UnifiedNlp (GAPPS)
- µG UnifiedNlp (no GAPPS)
- µG UnifiedNlp (GAPPS) (legacy)
When I selected “µG UnifiedNlp (no GAPPS)” it showed that it is from the µG repo. So I installed it. It installed version 1.6.7.
After it became obvious to me that this is not the real version (you asked me to check the "microG Settings, I only hat UnifiedNlp settings), I had fdroid only show me the contents of the µG repos. And only then did “microG Services Core” appear in the list. When I selected it, it indicated that it is installed and that it wants to “update” from version 1.6.7 to 0.2.4. After I did this, everything worked.
(And now I see that I could have achieved the same by selecting the version 0.2.4-39 from the list it gives you in fdroid when you select “µG UnifiedNlp (no GAPPS)”. By default it installs version 1.6.7 which is from the “F-Droid” repo (which I did not notice, because it is somewhere down in the list! I just saw that it says “microG F-Droid repo” (first list entry) and thought that it’s ok then.)
I see now that this is pretty much the link that you posted @Roboe (twice )
I took the liberty to add a corresponding comment to the wiki guide! While I was at it, i tried to polish the guide a bit (most importantly, I removed the “Level” words, as they seemed really confusing to me – it’s not a consecutive list of steps you have to do (hehe, you might think this trivial, but honestly it took me a very long time before I dared to try this, because it sounds like an awful lot to do. but no, it’s just: install µG, patch with tingle. DONE (I am laughing now… after my extensive list of issues, this seems a bit ridiculous ))
I hope you appreciate the edits, please feel free to improve (or revert if it does not make any sense to you)
Can you please check point 5.1b – is this still up to date? I only had to “deactivate” root after patching with Tingle (actually did I even have to?)
Also at the end of point 4, it sayd "Install the Xposed Module “Fake GAPPS” as you installed other Modules above
As this is not necessary – µG + (optional) FakeStore + (optional) Tingle is enough – I put an “Optional” there. Maybe clarify what this would take care of (the FakeStore? anything else?)
For now I saved my edit. Can somebody please look at it, I think point 5 should be completely reordered to make it clear that most of it is optional (Making Signature spoofing point 1 seems unnecessary, this is probably rather the last step as only some apps will need it? or will it always be necessary?).
But we might also want to keep it for historic reasons (e.g., references to "point 5.5, like I gave above). For now I only mentioned that steps might be optional.
(We could also copy my edit to a new wiki post, revert all my changes in the “old” guide and then properly rework the new guide and link to it from the old one. That way, all the references to “levels”/“points”/“steps” from other threads would still be understandable – what do you think?)
I moved this post here as this is the meta-discussion for the wiki, as the wiki states
You should have posted the suggested edits here first to discuss before such extensive changes. I haven’t looked through all the changes yet as they are hard to identify when the whole thing changed so much, but from the top of my head I can say that I’m not happy with you changing the headlines and moving things from one to another.
The guide is being referred to all around the forum as (do level x step y to z from this guide…) and now if someone reads that they won’t have any idea what to do.
I’d suggest you write down everything you changed, I reset to a previous state and then we decide together how to implement your changes.
yes, see the last few lines of my previous post.
well, sorry i wasn’t aware of the “discussion” policy. just wanted to try and make it more understandable. but of course, as i also stated, the references to the guide from all the other threads need to work.
i copied “my” current version. you may revert it. (honestly, i think the comparison feature works quite well, you can see in green and red what changed. (compare ver. 17 vs 18, ver. 19 were just minor edits.) EDIT: actually, I just saw that it does not work well at all also note that i did not “move things from one to another” – it’s mostly cosmetic changes and a bit more info (mostly with microG))
but as i stated, it would make it much more understandable if it would not sound like a list of points that you have to check off – that’s what i tried to achieve with my edits. do you think it would be a good idea to just make a new wiki post with “version 2” of that guide?
It was more meant like this: Immagine an app you want to install as a monster in a computer game. In the first level the monsters can simply be defeated by tapping on them, but the more you level up the more resilient the monsters get. Level 1 is the basic guide to installing apps, then if you find apps that won’t work (harder monsters), you’ll try the next level, then the next,…
Well yeah I first thought that you had moved it but now I see you totally removed the “Mocking Google with microg” part. It was in level 4, because for many apps that was all you needed to do, no Tingle, no root-removing-or-hiding, no DroidGuard, …
No I think that’s a bad idea, because then we’d have to maintain two wikis with the same content. Some parts would be up to date in one of them, other parts in the other one.
Just post here your changes and we’ll figure this out (PS: tomorrow).
PPS: Hopefully @oli.sax can help then as he knows the correct procedure for level 5. I stepped back once you had to remove root and Xposed to bypass SafetyNet.
ok, for now: below is the whole post after my edits.
I already understand that I misinterpreted the end of ‘your’ level 4.
My main idea with the edits (apart from providing a few more details, mostly on the µG part) was to convey that you do not need to think of this as a list of things you need to do.
Example: I had to get my app from apkmirror (so level 3 monster? but then it’s an apk file that i installed, so level 1?) and then “only” patch with Tingle and set up µG (so part-time level 5? – e.g. i did not have the issue you mentioned in your PPS since i did not have Xposed installed (which I believed I needed for a long time and thus was very reluctant to give everything a try)).
Also, there might be an app which needs µG but does/does not work with root. So here “level4” and “level 5” get mixed up.
As for the installation procedures: I find it much easier/comfortable/carefree to trust f-droid and just install sth. by clicking on a button instead of downloading something from some shady website … and so forth. So “my” Level 1 is F-Droid App Store.
So those were my thoughts on the levels and why i removed them – i tried to rather present everything as “alternatives” or a set of options. As stated before, I see the issue with the references to the guide that already exist. – I don’t see the problem, however, with leaving the current guide as it is and only add a link to a new version (“This guide will not be updated anymore, see here for a new version” or the like). that way we could rewrite it and not mess up all existing references. if anybody follows an old link, they will still see what was meant (“do step 5 in level 5”) but get a chance to see the updated guide as well.
ALL THAT BEING SAID: It should me made such that it is most helpful for future “solution seekers” maybe i am the only one who is(was) confused by the levels and the amount of information.
This is a list of the different possible ways to install apps on FP Open OS. For some apps only one way will be possible and for some you might have to trick them to work.
Since it’s a #wiki you can make it better by editing it. If you want to discuss the guide please do so here.
#Installing from .apk-files.
To install an App on Android you need an .apk file. This is a package that contains the app. But first, to be able to install such an .apk file you need to allow the installation from unknown sources in the phone’s settings. To Android an unknown source is anything but the Play Store unfortunately.
So go to Settings > Security and toggle “unknown sources”.
Now download the .apk file to your phone or copy it from your computer via USB.
E.g. download F-Droid from here: https://f-droid.org/
Once it’s downloaded you can tap on the notification or navigate to the file (depending on your browser either in “Downloads” or the browser’s folder) with the preinstalled App “Amaze”. After tapping the .apk file or the notification the installation window opens and you just have to tap “next” and “install”.
Troubleshooting - issues that may occur:
- You can’t tap the “install” button.
- This is another strange security feature of Android and usually caused by an app that is creating an overlay over your screen - e.g. to dim the screen in the evening. Another example is the App OpenWLANMap. Quit these apps (within the app or by going to Settings > Apps > All and tapping “force stop”) - then the “install” button should work again.
- After I tap “install” I get an error message.
- This usually happens if the app you try to install is not compatible with the phone. Make sure you are trying to install the right version of the app. Some apps will not install on modified Operating Systems (e.g. rooted). Either find an alternative app or see below for how to mock a unmodified OS.
#Installing from App Stores
App Stores - or app repositories - are Apps that show you a collection of Apps to download and install and - usually - automatically check for updates of apps installed via the app store.
The most used App Store on Open OS is probably F-Droid. It contains only free (as in freedom and as in free beer) apps and it’s a very secure source for apps as the people who run it compile the apps themselves - making sure there is no malware or spyware embedded in them. You don’t need an account as with most other app stores.
I dare say you’ll get everything you need on F-Droid, unless you need a specific app that is not available there and you can’t use alternatives.
In that case you can try other App Stores like the Amazon Store or you can get apps from the Play Store from alternative sources (see below).
Troubleshooting - issues that may occur:
- “Can’t update app from different source”
- If you have different app stores you can run into trouble updating. Basically you can only update each app within the same app store as you installed it in the first place. If you want to update it with another store - e.g. because Store 2 has a newer version than Store 1 - or even downgrade it - because you trust Store 1 more than Store 2 - then you need to uninstall the app first.
#Alternative sources for Play Store apps
So you switched to Open OS to get back a bit of your freedom from Google, but now you still want to use some apps that are not available on alternative stores?
That’s usually not a problem. You can download .apk files of Play Store Apps that don’t cost anything from
- Use Raccoon (You’ll need to log in with a Google Account)
- Swap apps with F-droid
- Install Yalp Store from f-droid (You’ll need to log in with a Google Account)
Most apps installed that way will work on Open OS. Some apps will claim they need Google Services, but still work. Some will really not work, but you can trick them into working (see below).
If you have troubles getting an app to work (because, for example, it requires Play Services or does not want to run on rooted phones) you can try one of the following:
#Tricking apps to work using Xposed modules
If you run into troubles caused by trying what is described below Fairphone Support may not be able to help you until you revert to a previous state. So make sure you make a good backup first - preferably with TWRP.
If an App you installed refuses to work (properly) because you don’t have Google Play Services installed or because your phone is rooted here are some tricks to work around this. For some apps these tricks won’t be enough and you’ll need to make them believe you have an unmodified OS (see below).
###Hiding root with Root Cloak
If an App says it won’t work on “rooted or jailbroken” devices and simply switching off root (in Settings > Developer (If there are no developer settings then root is not enabled)) doesn’t do the trick or you need root while using the app, you can try root cloak to hide your root status.
Here is how:
- You’ll first need to enable root in the developer settings. If you don’t have developer settings then go to Settings > About phone and tap the build number 10 times.
- Now go to Settings >Developer and enable root.
- Now you’ll need XPosed. There are two versions - the official Xposed Framework and Systemless Xposed. Since the latter also works with Level 5: Mocking an unmodified OS I’ll explain how to install it here.
- Install the Xposed Installer from here.
- Start it and swipe to the left twice to get to the systemless tab. There download the Framework.
- Xposed will ask for root access (allow it) and then reboot to recovery (TWRP).
- In TWRP tap install and navigate to the downloaded file (it’s not in downloads but in Xposed.)
- Install it and after you get the blue “Success” message reboot to system.
- Now open Xposed Installer again and go to download and search for root cloak.
- Download and install it, then go to Modules.
- Enable root cloak and reboot the phone.
###Surpressing “This App needs Google Play Services” messages
If you have an app that works, but you constantly get error messages about the missing Google Play Services you can try the XPosed Module “This App will run without Google Play Services”.
Do the exact same thing as explained above for root cloak except don’t download the “root cloak” module but “This App will run without Google Play Services”.
If this doesn’t do the trick you’ll need microG. See Step 5 in Mocking an unmodified OS. (Optional: Install the Xposed Module “Fake GAPPS” as you installed other Modules above.)
#Mocking an unmodified OS with microG
This could brick your device.
You’ll lose root and have to uninstall Xposed!
Note that some of these steps are optional. Your app might be happy with just µG with Nlp backends. Or it might additionally need the play store (i.e. “FakeStore”) or it might additionally need signature spoofing.
###Step 0: Prepare
- Make a full backup with TWRP
- If you already tried different ways and following this guide doesn’t work it may be best to start fresh, so wipe everything with TWRP (make sure you saved the backup somewhere else).
- After you wipe the system with TWRP you’ll have to reinstall the OS, but before you can do that you’ll have to reboot to Recovery ( make sure you don’t reboot to system as there is none).
- As TWRP starts again it will ask you whether it should be allowed to make changes to system. You’ll have to say yes!
- You can then restore “Data” from your backup and continue with step 1.
###Step 1a: Patch the framework.jar with Tingle to be able to spoof signatures.
- On your computer, download Tingle (https://github.com/ale5000-git/tingle) and its dependencies (java, p7zip-full, adb, python)
- Connect your phone to your computer, make sure that
- USB debugging is activated
- adb has root access
- multimedia usb sharing is deactivated (select PTP instead of MTP as usb connection option).
- Verify that adb sees your device (you might have to add its USB ID first)
- In your computer’s terminal type python main.py (or python3 main.py), select option “1 - patch file from a device (adb)” and keep a copy of the output
###Step 1b: Uninstall root (skip if not applicable)
@Roboe made a free flashable ZIP.
- Download ZIP to your FP2 (from here)
- Flash from TWRP
- Reboot to System
Alternative version with a proprietary app
- Download and install Root Explorer from https://rootexplorer.co/ (thanks @oli.sax)
- Open it, grant superuser rights.
- Navigate to system/bin and delete “su”
- Navigate to system/xbin, mount R/W and delete “su” ( make sure you do it in this order, otherwise you won’t be able to delete the /bin su file. )
- Reboot, now you don’t have any root rights anymore.
You can test with Root Verifier or by trying to navigate to /root with Amaze. If you get an error message like “Amaze was not granted root rights” than you succeeded!
Steps 2-4 are not necessary anymore. So they are hidden here.
###Step 2: Flash & Install Magisk.
Get the latest Magisk zip and apk from here flash the zip in TWRP and then install the apk.
If you start the app it and it tells you that root is not installed and everything is green then you succeeded!
###Step 3: Flash & Install phh’s SuperUser.
Get the zip file from (direct link, thanks @oli.sax) and the apk from here. Flash the zip then install the apk.
TWRP doesn’t detect this way of implementing superuser either so every time you reboot from TWRP it will ask you to install superuser. Make sure to decline!
Now in magisk the root status should be “mounted” in red. Use the toggle, allow root rights and it should turn to a green “not mounted”. If so: Success!
###Step 4: Install &Flash systemless Xposed.
Install the Xposed installer from here. If you have flashed Xposed before download the correct uninstalled within the app and flash it with TWRP. Now download the systemless Xposed and flash it.
If you open the Xposed Installer it should now show you a big white on green checkmark meaning you installed Xposed successfully!
Install the “Fake GAPPS” module in systemless XPosed if you haven’t yet.
- Enable the module
###Step 5: Install microG.
- Uninstall any microG apps you may have downloaded from the standard F-Droid repository
- Add the microG repository to F-Droid.
- Go to the microG website and either
- add the repository address manually in F-Droid->Options->Repositories->"+", or
- use a QR-code reader (from F-Droid) to scan the code and then select to open the link in F-Droid to add the microG Repository)
- Install the latest
- microG Services Core
- may be called “µg UnifiedNlp (no GAPPS)” instead. In the list of versions, make sure to select the latest version from the “microG F-Droid repo”, since then both versions from “microG F-Droid repo” and “F-Droid” are listed (the ones from “F-Droid” have higher version numbers, which might be confusing at first)
- microG Services Framework Proxy
- and at least one Unified NLP backend (from F-Droid repository, see this list to get an idea of what you might want).
- Open microG Settings
- Enable device checkin and cloud messaging (currently called “Google device registration” and “Google cloud Messaging”).
- Do the “Self-Check”
- Ensure that all points are checked. If one of the points is not checked, read its description.
- Open the UnifiedNlp Settings and set up the Nlp Backends you installed in the previous point
- Open microG Settings > Self-check again. Now all points should be checked. If so then you succeeded!
###Step 6 (optional): Install microG DroidGuard Helper.
From microG’s F-Droid Repo.
Can be tested with com.scottyab.safetynet.sample. (from here thanks @oli.sax)
If it tells you “SafetyNet request: success” “Response validation: Success”, “CTS profile match: false”, then you succeeded!
###Step 7 (outdated): Updating the OS with this setting
This part is outdated
If there is a new update you won’t be able to apply it via the updater.
- Download the “OTA” file from here and save it to your SD card along with the .zip files of the latest magisk, SuperUser and systemless XPosed (download from within the app or here)
- Install the OS in TWRP and then flash magisk, Superuser and XPosed.
- Reboot to System
- Open Magisk and make sure it’s all still green and the superuser toggle works.
- Open XPosed and make sure all Modules you need are enabled - if some weren’t reboot afterwards.
- Open microG Settings and do the selfcheck to see everything still works.
- Disable root with magisk and check the Safetynet helper
- If anything doesn’t work as expected make sure you have all the latest versions installed. If the problems persists let’s discuss here.
#Alternative/Workaround: “Multiboot” to FP OS
Follow this wiki to install EFIdroid and use it to install FP OS alongside FP Open OS.
Possible Issues & Cons:
- For me Security Settings in FP OS kept crashing so someone who knows their way around ADB had to enable “allow unknown sources” remotely so I could install apps without a Google account.
- You can use the guide from the first spoiler of this wiki to get rid of google as much as possible, but you won’t be as free and protected as on Open OS.
- Also some apps will only work if you enable at least Google Play Store & Services.
Note: I just merged it with the point before, because it directly refers to that. “if shutting of the warnings is not enough: mock play services”
I don’t think it’s that confusing since in level 5 it never says that you need Xposed.
On the other hand I believe that maybe all you needed was Level 4. Level 5 is for apps that access Google’s SafetyNet to verify that you have an unmodified OS, so in that case you’ll need to remove root.
In Level 4 you’ll only mock the existance of Google Apps with microg and you’ll spoof signatures by installing the NoGAPPS Xposed Module if I remember correctly. (Maybe we should mention there that you can alternatively do that with Tingel, although I believe flashing a zip file in TWRP is easier for basic-ish users than patching something via a computer’s terminal.
No, that’s simply Level 5.
It’s the same for me. But still for first time smartphone/android users you’ll first have to explain the general concept of installing app packages. Once F-Droid will be preinstalled like it’s planned for future updates (probably with Android 6) Level 2 may come first.
But as for now, Level 1 explains how you install F-Droid, which of course comes first.
I actually think that is a bigger source of confusion than the levels. Now when I tell someone: Do Level 5, they know to follow everything there, but in your guide if I tell someone to Mock an unmodified OS how would they know which of your optional steps are mandatory for them?
First Case is an app that you already installed and that generally works already, it just has problems with the location, so that is the wrong wiki, you’ll find that in the #gpsguide or the first steps with Open OS wiki.
EDIT: Third Case is Level 4’s Mocking Google with microg. Second case is nothing, as microg without signature spoofing doesn’t do anything.
Well I don’t think that would make any sense. If the guide is outdated it wouldn’t help anybody. No I think we should figure out a way to incorporate your changes in the current guide, without messing with the levels. Maybe we should explain the levels better first.
Could you mark the changes in your version?
Hi paul !
At the moment the “Level 5” description is up-to-date. There were no recent change in the security measures of DroidGuard/SafetyNet and I’m still able to play “Poke Mongo” on my unrooted FP2-OpenOS with Tingle and MicroG
Thanks for the clarification.
Just a few more questions.
Did I get this right, or am I mixing up things there?
And do you happen to know about Signal? Does it need full Level 5 procedure (i.e. does it work with safety net?) or Level 4 (just microg) or something in between?
Level 4 as described in the guide do 3 things
- Hide root (with a Xposed module called Root Cloak)
- Spoof signature (prerequisite for microG) with an Xposed module called NoGAPPS (*).
- Mocking GoogleApps with MicroG
(*) Of course step2 could also be achieved with Tingle (as described in Level 5), but as we are already installing Xposed for step1 this is much easier to continue with Xposed and install a second module…
I don’t use Signal and I have no clue of the Level requested