You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
minmicrog/README.md

176 lines
7.6 KiB

# MinMicroG
### By MOVZX and FatherJony and FriendlyNeighborhoodShane
*A simple, flexible MicroG/gang Installer*
**Licensed under the GNU GPL v3**
### Repositories
* [GitHub](https://github.com/FriendlyNeighborhoodShane/MinMicroG)
* [GitLab](https://gitlab.com/FriendlyNeighborhoodShane/MinMicroG)
### microG communities
* [/r/microG](https://reddit.com/r/microG) on Reddit
* [microG user group](https://t.me/microg) on Telegram
### What is this?
This is a simple MicroG installer. It can install MicroG and other stuff into
your system partition or as a Magisk module. It supports virtually all mobile
architectures (arm/64, x86/64, mips/64) and fully supports KitKat and above. It
can also (mostly) support much older versions, but sync adapters and some
location providers won't work. It can even uninstall itself from your device,
just rename it and flash it again.
The things included in the `Standard` Edition zip are:
- MicroG (GMSCore, GSFProxy, Maps APIv1) (from MicroG FDroid repo)
- Google Play store (modded for IAPs by Setialpha)
- UNLP backends (Dejá vu, LocalGSM, LocalWiFi, Mozilla, Nominatim) (From FDroid repo)
- AuroraDroid (From Whyorean's GitLab)
- AuroraServices (From Whyorean's GitLab)
- Swype libs for AOSP keyboard (From OpenGApps GitHub repo)
- Some Google DRM jars (From OpenGApps GitHub repo)
- Google Sync adapters for KK to R (From OpenGApps GitHub repo)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
The things included in the `NoGoolag` Edition zip are:
- MicroG (GMSCore, GSFProxy, Maps APIv1) (from MicroG FDroid repo)
- FakeStore (from MicroG FDroid repo)
- UNLP backends (Dejá vu, LocalGSM, LocalWiFi, Mozilla, Nominatim) (From FDroid repo)
- AuroraStore (From Whyorean's GitLab)
- AuroraDroid (From Whyorean's GitLab)
- AuroraServices (From Whyorean's GitLab)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
The things included in the `UNLP` Edition zip are:
- UNLP (From FDroid repo)
- Maps APIv1
- UNLP backends (Dejá vu, LocalGSM, LocalWiFi, Mozilla, Nominatim) (From FDroid repo)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
The things included in the `Minimal` Edition zip are:
- MicroG (GMSCore, GSFProxy, Maps APIv1) (from MicroG FDroid repo)
- FakeStore (from MicroG FDroid repo)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
The things included in the `MinimalIAP` zip are:
- MicroG (GMSCore, GSFProxy, Maps APIv1) (from MicroG FDroid repo)
- Google Play store (modded for IAPs by Setialpha)
- Some Google DRM jars (From OpenGApps GitHub repo)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
The things included in the `AuroraServices` Edition zip are:
- AuroraServices (From Whyorean's GitLab)
- Permission files for all of this
- An addon.d file to backup/restore everything on a rom flash
### Notes
Dirty flashing not recommended. you'll mess up all your permissions and may
even cause conflicts in app data, leading to crashes.
The maker does not support or endorse dirty flashing. It will harm you and your
loved ones. Don't come complaining to me.
You can flash this zip either from your recovery (recommended) or through
Magisk Manager. Newer LOS recoveries are usually missing important tools,
so you will probably require a full-fledged custom recovery like TWRP.
How to control the zip by changing its name:
NOTE: Control by name is not possible in Magisk Manager, since it copies the
zip to a cache directory and renames it install.zip. This is unavoidable
behaviour.
- Add `system` to its filename to force it to install/uninstall from system.
Otherwise, it looks for Magisk, and if not found, installs to system.
Obviously, if you flash it through Magisk Manager, you want to install it to
Magisk. If not, you have to flash it through recovery.
- Remember that choosing Magisk mode (which is the default if Magisk is
installed already) will remove the MinMicroG package if you uninstall
Magisk.
- Add `uninstall` to its filename to uninstall it from your device, whether in
Magisk mode or system mode. If you use Magisk Manager, your preffered method
of uninstallation is from there.
Just rename it and flash it again for the intended effect. For example,
`MinMicroG-variant-version-signed.zip` to
`system-MinMicroG-variant-version-signed.zip` (and the same for uninstall).
NOTE: If you have made a system install but have Magisk installed as well, you
will have to use both `system` and `uninstall` keywords in the name for an
uninstall flash.
The zip debloats three specific Google apps from your phone (GmsCore,
GoogleServicesFramework, Phonesky and their MicroG counterparts) and 4 NLP
providers when the pack contents conflicts with them. In Magisk mode, they
won't be removed from system, and if you uninstall the pack, they'll come back.
If you install in system, the debloated stuff will be stored in
`internal-storage/MinMicroG/Backup`.
WARNING: This zip does not and never will debloat anything else because that is
the minimum coming in MicroG's way. I have had my own share of PTSD with
debloating. I believe (through instinct) that it should work even on flashes
over GApped ROMs, but don't take my word for it. Debloat before you flash.
For support with flashing:
If you flashed through recovery, provide its logs.
If you used Magisk Manager, provide its logs.
### How do I build these packs myself?
List of hard dependencies:
- coreutils or equivalent [POSIX-compatible]
- `curl` (update.sh)
- `jq` (update.sh)
- `unzip` (update.sh)
- `zip` (build.sh)
`cd` to this directory and run:
```
> ./update.sh
```
To download all the assets to `resdl` directory.
```
> ./build.sh all
```
To build all the packs and place them in the `releases` directory.
That's it! If it tells you that some dependency is missing, install it.
You can pass `update.sh` several extended regexes as arguments to only download
specific files.
You can pass `build.sh` some specific pack's conf names instead of all to build
only the specific packs.
If you have `apksigner` and `openssl` installed, the update script will dump
the signing certificates of all downloaded APKs and repo jars to
`resdl/util/certs`. It will compare all future downloads with those certs, and
in case of any signature errors or mismatches, will warn you.
If you have `aapt` installed, the update script will download the permission
docs from the Android website, check the priv-apps for any new privileged
permissions and tell you to add them to the whitelist in
`res/system/etc/permissions/[package].xml` files.
To build your own custom pack, refer to `conf/custom-conf.md`.
Any changes made to the code should ideally be tested with `test.sh`, which
runs the `shellcheck` linter program on every script.
Use `bump.sh` to automatically bump the `ver`, `verc` and `date` values across
all defconf files.
### Credits
- Thanks to @osm0sis for the base magisk/recovery code and inspiration and
guidance on the majority of the stuff in here.
- Thanks to @Setialpha, the creator of NanoDroid, and ale5000 for the lib
installation code, permissions code, and patched play.
- Thanks to FDroid and the MicroG project for actively resisting monopoly and
control so we can actually use our devices without fear.
- Thanks to Whyorean for his amazing works in the form of the Aurora Apps.
- Thanks to my friends over at NoGoolag for their help and patience over
however long it took me to learn to do shit without "rm -rf /"-ing devices.
And most of all, thank you Google & gang for being so shitty to people and thus
giving us a mission.