Commit 64f322b7 authored by W1nst0n's avatar W1nst0n
Browse files

Documentation improvement (mostly wording and layout)

parent 603bf03e
......@@ -13,38 +13,38 @@
#
##########################################################################################
# nanodroid_microg: whether to install microG
# supported packages: Full, microG
# nanodroid_microg: microG installation
# supported packages: Full, microG
# supported values:
# 0 = don't install microG at all (Note: does not effect NanoDroid-microG package)
# 1 = install microG GmsCore, GsfProxy and DroidGuard Helper and Nominatim Geocoder Backend
# 0 = do not install microG microG (note: does not effect NanoDroid-microG package)
# 1 = install microG GmsCore, GsfProxy, DroidGuard Helper and Nominatim Geocoder Backend
# 2 = install microG GmsCore and Nominatim Geocoder Backend only
nanodroid_microg=1
# nanodroid_nlpbackend: what uNlp backends to install
# supported packages: Full, microG
# this setting is four digits long, each digit represents one uNlp backend:
# 0 = for each digit means don't install the backend
# 1 = for each digit means install the backend
# supported packages: Full, microG
# this setting is 4 digits long, each digit represents one uNlp backend:
# 0 = don't install the backend
# 1 = install the backend
# digits represent the following backends:
# 1st digit = Déjà Vu backend
# 2nd digit = Ichnaea (Mozilla) backend
# 3rd digit = Apple backend
# 4th digit = Radiocells.org backend
# examples:
# nanodroid_nlpbackend=1000 = install Déjà Vu backend
# nanodroid_nlpbackend=1000 = install Déjà Vu backend only
# nanodroid_nlpbackend=1010 = install Déjà Vu and Apple backends
nanodroid_nlpbackend=1000
# nanodroid_mapsv1: whether to install Google Maps version 1 API support
# supported packages: Full, microG
# nanodroid_mapsv1: Google Maps version 1 API support
# supported packages: Full, microG
# supported values:
# 0 = don't install Maps v1 API support
# 1 = install Maps v1 API support
nanodroid_mapsv1=1
# nanodroid_play: what app store to install
# supported packages: Full, microG
# nanodroid_play: App store installation
# supported packages: Full, microG
# supported values:
# 00 = install no app store
# 10 = install Google Play (patched with microG (in-)app-purchase support)
......@@ -54,8 +54,8 @@ nanodroid_mapsv1=1
# 30 = install Google Play (patched with microG (in-)app-purchase support) and Aurora Store (alongside Aurora Services addon)
nanodroid_play=21
# nanodroid_fdroid: whether to install F-Droid
# supported packages: Full, F-Droid
# nanodroid_fdroid: F-droid installation
# supported packages: Full, F-Droid
# supported values:
# 0 = don't install F-Droid at all (Note: does not effect NanoDroid-FDroid package)
# 1 = install official F-Droid client (alongside priviledged extension)
......@@ -63,30 +63,31 @@ nanodroid_play=21
# 3 = install both official and Aurora F-Droid clients (alongside their addons)
nanodroid_fdroid=1
# nanodroid_apps: whether to install appliations
# supported packages: Full
# nanodroid_apps: Apps installation
# supported packages: Full
# supported values:
# 0 = don't install applications
# 1 = install applications
# 0 = don't install any applications
# 1 = install all applications listed in .nanodroid-apps file
# see: https://gitlab.com/Nanolx/NanoDroid/-/blob/master/doc/Applications.md
nanodroid_apps=1
# nanodroid_overlay: whether to utilize NanoDroid-Overlay
# supported packages: Full, microG
# nanodroid_overlay: use NanoDroid-Overlay
# supported packages: Full, microG
# NanoDroid-Overlay can be used to pseudo-debloat `/system` applications in Magisk Mode, or force-debloat on System Mode
# for more information: https://gitlab.com/Nanolx/NanoDroid/-/blob/master/doc/NanoDroidOverlay.md
# supported values:
# 0 = don't utilize NanoDroid-Overlay
# 1 = utilize NanoDroid-Overlay
# 0 = don't use NanoDroid-Overlay
# 1 = use NanoDroid-Overlay
nanodroid_overlay=1
# nanodroid_bash: whether to install GNU Bash (alongside the less pager)
# supported packages: Full
# nanodroid_bash: GNU Bash installation
# supported packages: Full
# supported values:
# 0 = don't install GNU Bash
# 1 = install GNU Bash
nanodroid_bash=1
# nanodroid_init: whether and what init scripts to install
# nanodroid_init: init scripts installation
# supported packages: Full
# for more information: https://gitlab.com/Nanolx/NanoDroid#init-scripts
# this setting is a list of init scripts, each listed item will be installed, possible values
......@@ -95,26 +96,27 @@ nanodroid_bash=1
# 30_logcat
# 40_external_sd
# 50_logscleaner
# leave empty (nanodroid_init="") to install no init scipts, "" are mandatory in any case
# Empty quotes (nanodroid_init="") to not install any init scipts.
nanodroid_init="10_sqlite 20_fstrim 30_logcat 40_external_sd 50_logscleaner"
# nanodroid_gsync: whether to install Google Sync Adapters
# supported packages: Google
# nanodroid_gsync: Google Sync Adapters installation
# supported packages: Google
# supported values:
# 0 = don't install Google Sync Adapters
# 1 = install Google Sync Adapters
nanodroid_gsync=1
# nanodroid_swipe: whether to install Swipe libraries
# supported packages: Google
# nanodroid_swipe: Swipe libraries installation
# supported packages: Google
# supported values:
# 0 = don't install Swipe libraries
# 1 = install Swipe libraries
nanodroid_swipe=0
# nanodroid_forcesystem: force direct /system installation (else NanoDroid will
# autodetect whether Magisk is installed and will prefer Magisk Module installation)
# supported packages: Full, miroG, F-Droid, Bromite System WebView, OSM Android, Google
# nanodroid_forcesystem: force direct /system installation
# If not set to 1, if Magisk is installed, NanoDroid will prefer Magisk Module installation)
# Note: You should keep this setting to 0 unless you really know what you are doing.
# supported packages: Full, miroG, F-Droid, Bromite System WebView, OSM Android, Google
# supported values:
# 0 = auto detect installation mode
# 1 = force /system installation
......
......@@ -23,73 +23,63 @@ Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
## Configuration File
To alter the installation you can create the file
To alter the installation you can create the file `.nanodroid-setup` on your device, in one of the following directories:
`.nanodroid-setup`
on your device, in one of the following directories
* `/data/media/0` (internal storage (TWRP))
* `/sdcard1` (internal storage (ORANGEFOX))
* `/data/media/0` (internal storage **[TWRP]**)
* `/sdcard1` (internal storage **[ORANGEFOX]**)
* `/external_sd` (TWRP path to SD Card (if any))
* `/data` (fallback)
* `/system/addon.d/` (fallback if TWRP can't mount `/data`)
* `/tmp` (fallback if TWRP can't mount `/data`)
You can use the [default configuration file](.nanodroid-setup) as a starting point. Below follows the detailed information on what each setting does (also described in the file itself); also which setting is support by what package. If an required entry is missing from your configuration file, the default setting will be added to your configuration file.
You can use the [default configuration file](.nanodroid-setup) as a starting point. Below follows its detailed description. If a required entry is missing from your configuration file, the default setting will be added to your configuration file.
## Detailed Description
### nanodroid_microg
whether to install **microG**
**microG** installation
* supported packages
* Full package
* microG package
**supported packages:** *Full package*, *microG package*
Syntax: `nanodroid_microg=1`, value can be 0, 1 or 2:
**Syntax:** `nanodroid_microg=1`, value can be 0, 1 or 2:
* 0 = don't install microG at all (Note: does not effect NanoDroid-microG package)
* 1 = install microG GmsCore, GsfProxy and DroidGuard Helper and Nominatim Geocoder Backend
* 1 = install microG GmsCore, GsfProxy, DroidGuard Helper and Nominatim Geocoder Backend
* 2 = install microG GmsCore and Nominatim Geocoder Backend only
* note: OpenSource purists setting; this will leave you
* without Push Messaging support through GCM
* without the ability to pass SafetyNet attestation
* note: OpenSource purists setting; this will leave you without
* Push Messaging support through GCM
* SafetyNet attestation
### nanodroid_nlpbackend
what uNlp backends to install
* supported packages
* Full package
* microG package
**supported packages:** *Full package*, *microG package*
Syntax: `nanodroid_nlpbackend=1000`
**Syntax:** `nanodroid_nlpbackend=1000`
this setting is four digits long, each digit represents one uNlp backend:
* 0 = for each digit means don't install the backend
* 1 = for each digit means install the backend
* 0 = don't install the backend
* 1 = install the backend
digits represent the following backends:
* 1st digit = Déjà Vu backend
* 2nd digit = Ichnaea (Mozilla) backend
* 3rd digit = Apple backend
* 4th digit = Radiocells.org backend
* 1st digit = `Déjà Vu` backend
* 2nd digit = `Ichnaea` (Mozilla) backend
* 3rd digit = `Apple` backend
* 4th digit = `Radiocells.org` backend
examples:
* nanodroid_nlpbackend=1000 = install Déjà Vu backend
* nanodroid_nlpbackend=1010 = install Déjà Vu and Apple backends
* nanodroid_nlpbackend=1000 = install `Déjà Vu backend` only
* nanodroid_nlpbackend=1010 = install `Déjà Vu` and `Apple` backends
### nanodroid_mapsv1
whether to provide **microG** Maps API v1
**microG** Maps API v1 support
* supported packages
* Full package
* microG package
**supported packages:** *Full package*, *microG package*
Syntax: `nanodroid_mapsv1=1`, value can be or 1:
**Syntax:** `nanodroid_mapsv1=1`
* 0 = don't install Maps v1 API support
* 1 = install Maps v1 API support
......@@ -98,11 +88,9 @@ Syntax: `nanodroid_mapsv1=1`, value can be or 1:
what app store to install
* supported packages
* Full package
* microG package
**supported packages:** *Full package*, *microG package*
Syntax: `nanodroid_play=21`, this setting is value pair, the first digit declares the app store, the second whether to install Fake store alongside:
**Syntax:** `nanodroid_play=21`, the first digit declares the app store, the second whether to install Fake store alongside:
* 00 = install no app store
* 10 = install Google Play (patched with microG (in-)app-purchase support)
......@@ -112,35 +100,32 @@ Syntax: `nanodroid_play=21`, this setting is value pair, the first digit declare
* 30 = install Google Play (patched with microG (in-)app-purchase support) and Aurora Store (alongside Aurora Services addon)
Note:
* if `nanodroid_play=11` or `nanodroid_play=31` it will be silently treated as `10` or `30`
* if `nanodroid_play=11` or `nanodroid_play=31` it will be silently treated as `10` or `30`
* you can't install both Play Store and Fake Store at the same time
### nanodroid_fdroid
whether to install **F-Droid**
**F-Droid** installation
* supported packages
* Full package
* F-Droid package
**supported packages:** *Full package*, *F-droid package*
Syntax: `nanodroid_fdroid=1`, value can be 0, 1, 2 or 3:
**Syntax:** `nanodroid_fdroid=1`, value can be 0, 1, 2 or 3:
* 0 = don't install F-Droid at all (Note: does not effect NanoDroid-FDroid package)
* 0 = don't install F-Droid at all (**Note:** does not effect NanoDroid-FDroid package)
* 1 = install official F-Droid client (alongside priviledged extension)
* 2 = install unofficial Aurora F-Droid client (alongside Aurora Services addon)
* 3 = install both official and Aurora F-Droid clients (alongside their addons)
### nanodroid_apps
whether to install applications
Apps installation
* supported packages
* Full package
**supported packages:** *Full package*
Syntax: `nanodroid_apps=1`, value can be 0 or 1:
**Syntax:** `nanodroid_apps=1`, value can be 0 or 1:
* 0 = don't install applications
* 1 = install applications
* 1 = install all applications listed in .nanodroid-apps file
see [> Applications](Applications.md) for detailed information
......@@ -148,7 +133,9 @@ see [> Applications](Applications.md) for detailed information
whether to utilize the NanoDroid-Overlay to pseudo-debloat `/system` applications in Magisk Mode, or force-debloat on System Mode
Syntax: `nanodroid_overlay=1`, value can be 0 or 1:
**supported packages:** *Full package*, *microG package*
**Syntax:** `nanodroid_overlay=1`, value can be 0 or 1:
* 0 = don't utilize NanoDroid-Overlay
* 1 = utilize NanoDroid-Overlay
......@@ -157,24 +144,24 @@ see [> NanoDroid-Overlay](NanoDroidOverlay.md) for detailed information
### nanodroid_bash
whether to install GNU Bash (alongside the less pager)
GNU Bash (alongside the less pager) installation
* supported packages
* Full package
**supported packages:** *Full package*
Syntax: `nanodroid_bash=1`, value can be 0: 1:
**Syntax:** `nanodroid_bash=1`, value can be 0: 1:
* 0 = don't install GNU Bash
* 1 = install GNU Bash
### nanodroid_init
whether and what init scripts to install
init scripts installation
* supported packages
* Full package
**supported packages:** *Full package*
this setting is a list of init scripts, each listed item will be installed, possible values
**Syntax:** `nanodroid_init="10_sqlite 20_fstrim"`
This setting is a list of init scripts, each listed item will be installed, possible values
```
10_sqlite
......@@ -184,47 +171,41 @@ this setting is a list of init scripts, each listed item will be installed, poss
50_logscleaner
```
to install no init scripts, leave empty (`nanodroid_init=""`), the `""` are mandatory in any case
Leave an empty quote (`nanodroid_init=""`) to not install any init script
see [here for more information](../README.md#init-scripts)
see [init-scripts](../README.md#init-scripts) for more information
### nanodroid_gsync
whether to install Google Sync Adapters
Google Sync Adapters installation
* supported packages
* Google
**supported packages:** *Google*
Syntax: `nanodroid_gsync=1`, value can be 0 or 1:
**Syntax:** `nanodroid_gsync=1`, value can be 0 or 1:
* 0 = don't install Google Sync Adapters
* 1 = install Google Sync Adapters
### nanodroid_swipe
whether to install Swipe libraries
Swipe libraries installation
* supported packages
* Google
**supported packages:** *Google*
Syntax: `nanodroid_swipe=1`, value can be 0 or 1:
**Syntax:** `nanodroid_swipe=1`, value can be 0 or 1:
* 0 = don't install Swipe libraries
* 1 = install Swipe libraries
### nanodroid_forcesystem
force direct /system installation (else NanoDroid will autodetect whether Magisk is installed and will prefer Magisk Module installation)
Force `/system` installation instrad of Magisk Module installation (if Magisk available)
**Note:** You shouldn't touch this settings unless you really know what you are doing.
* supported packages
* Full package
* microG package
* F-Droid package
* Bromite System WebView package
* OSM Android
* Google package
**supported packages:** *Full*, *miroG*, *F-Droid*, *Bromite System WebView*, *OSM Android*, *Google*
Syntax: `nanodroid_forcesystem=0`, value can be 0 or 1:
**Syntax:** `nanodroid_forcesystem=0`, value can be 0 or 1:
* 0 = auto detect installation mode
* 0 = auto detect installation mode (default)
* 1 = force /system installation
......@@ -21,7 +21,7 @@ On GNU/Linux, MacOS or xBSD clone this repository and use the provided `build-pa
download required files:
* `build-package pull` to download all required apks and libraries for the Full, microG and F-Droid packages
for apks downloaded from F-Droid repositories or from APK Mirror, `build-package` checks the SHA256 hash.
For apks downloaded from F-Droid repositories or from APK Mirror, `build-package` checks the SHA256 hash.
update required files:
* `build-package u-microg` to update microG
......@@ -62,14 +62,14 @@ The `build-package` script additionally supports the following parameters:
If you want to use custom APKs in your build, place them into the `local` directory in the root of the NanoDroid tree.
The name of your APK must match the targetname in the NanoDroid package, e. g. `GmsCore` for a custom microG build or `Phonesky` for a custom Play Store build.
The name of your APK must match the targetname in the NanoDroid package, e.g. `GmsCore` for a custom microG build or `Phonesky` for a custom Play Store build.
See the `file_database` in [build-package.database](../data/build-package.database).
Note: sideloading libraries is currently not supported!
**Note:** sideloading libraries is currently not supported!
## "Secret" parameters
* `export BP_DEBUG=1` allows seeing debug messages when repos are fetched and APKs are downloaded
* `export BP_USE_WGET=1` tells the script to use wget for downloading indices and APks
* `export BP_USE_WGET=1` tells the script to use wget for downloading indices and APKs
Table of Contents
=================
......@@ -14,11 +13,11 @@ Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
Here you can find instructions on how to manually deodex `services.jar` as preparation for Signature Spoofing support.
If you want to check beforehand (or afterwards), if your ROM supports Signature Spoofing, use this [tool](https://f-droid.org/de/packages/lanchon.sigspoof.checker/).
If you want to check beforehand (or afterwards) if your ROM supports Signature Spoofing, use this [tool](https://f-droid.org/de/packages/lanchon.sigspoof.checker/).
## Pre-Check
If your `/system/framework/services.jar` file contains the file `classes.dex`, you can skip deodexing and start patching right-away, else following these instructions.
If your `/system/framework/services.jar` file contains the file `classes.dex`, you can skip deodexing and start patching right-away. Else follow these instructions.
## Android 9.0 Pie
......@@ -28,9 +27,9 @@ VdexExtractor will create CompatDex for Android 9.0 (more precisely VDEX 019 fil
## VDEX
If you can see `/system/framework/oat/[arch]/services.vdex`, where [arch] is the device architecture (arm, arm64, x86 or x86_64), you should follow theese instructions.
If you can see `/system/framework/oat/[arch]/services.vdex`, where `[arch]` is the device architecture (arm, arm64, x86 or x86_64), you should follow theese instructions.
the instructions are basically simple, though plenty commands:
The instructions are basically simple, though there is a lot of commands:
* connect phone with PC while in TWRP, mount `/system` **read-write**
* get latest `vdexExtractor`
......@@ -38,46 +37,45 @@ the instructions are basically simple, though plenty commands:
* zip/unzip utilities for commandline (or some UI tool)
* common sense on using commandline (or some UI tool instead)
```
```bash
adb pull /system/framework framework
cp framework/services.jar services.jar-backup
```
now deodex `services.vdex`:
```
```bash
vdexExtractor -i framework/oat/[arch]/services.vdex --ignore-crc-error
```
this will create the following file:
* framework/oat/[arch]/services.apk_classes.dex
This will create the following file: `framework/oat/[arch]/services.apk_classes.dex`
if it's properly been created rename it to classes.dex and add it to `services.jar`, if there are additional files like services.apk_classes2.dex, rename them to classes2.dex and so on and add them to services.jar like:
If it has been properly created, rename it to `classes.dex` and add it to `services.jar`. If there are additional files like `services.apk_classes2.dex`, rename them to `classes2.dex` and add them to `services.jar` like this:
```
```bash
mv framework/oat/[arch]/services.apk_classes.dex classes.dex
... mv for other dex files ...
zip -j framework/services.jar classes*.dex
```
next install the new `services.jar` to device:
Then, install the new `services.jar` on the device:
```
```bash
adb push framework/services.jar /system/framework
adb shell
chmod 0644 /system/framework/services.jar
chown root:root /system/framework/services.jar
```
unmount `/system` and flash the NanoDroid-Patcher.
Unmount `/system` and flash the **NanoDroid-Patcher**.
If something goes wrong you still have the unpatched `services.jar`, as we created a copy named `services.jar-backup`.
If something goes wrong, you still have the unpatched `services.jar`, as we created a copy named `services.jar-backup`.
## ODEX
If you can see `/system/framework/oat/[arch]/services.odex`, where [arch] is the device architecture (arm, arm64, x86 or x86_64), you should follow theese instructions.
If you can see `/system/framework/oat/[arch]/services.odex`, where `[arch]` is the device architecture (arm, arm64, x86 or x86_64), you should follow theese instructions:
the instructions are basically simple, though plenty commands:
The instructions are basically simple, though there is a lot of commands:
* connect phone with PC while in TWRP, mount `/system` **read-write**
* get latest `baksmali.jar` and `smali.jar`
......@@ -85,35 +83,35 @@ the instructions are basically simple, though plenty commands:
* zip/unzip utilities for commandline (or some UI tool)
* common sense on using commandline (or some UI tool instead)
```
```bash
adb pull /system/framework framework
cp framework/services.jar services.jar-backup
```
```
```bash
java -jar baksmali.jar x framework/oat/[arch]/services.odex -d framework/[arch] -d framework/ -o services-new
java -jar smali.jar a services-new -o classes.dex
```
somestimes baksmali.jar can't find the bootclasses file itself, in this case pass it manually using `-b`, for example:
Sometimes `baksmali.jar` can't find the bootclasses file itself. In this case, you need to pass it manually using `-b`, for example:
`-b framework/[arch]/boot.oat`
in any case, if a new classes.dex was successfully created in the services-new directory, re-package it into the services.jar we previously pulled:
In any case, if a new `classes.dex` was successfully created in the services-new directory, re-package it into the `services.jar` we previously pulled:
```
```bash
zip -j framework/services.jar classes*.dex
```
next install the new `services.jar` to device:
Then, install the new `services.jar` on the device:
```
```bash
adb push framework/services.jar /system/framework
adb shell
chmod 0644 /system/framework/services.jar
chown root:root /system/framework/services.jar
```
unmount `/system` and flash the NanoDroid-Patcher.
Unmount `/system` and flash the NanoDroid-Patcher.
If something goes wrong you still have the unpatched `services.jar`, as we created a copy named `services.jar-backup`.
......@@ -17,7 +17,7 @@ Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
# NanoDroid
This lists features unique to NanoDroid.
This lists unique NanoDroid features.
## NanoDroid-Overlay
......@@ -80,13 +80,9 @@ The following init scripts are bundled with NanoDroid
When in Magisk Mode the init scripts create their log files in
`/magisk/NanoDroid/logs/${script}.log.${date}`
`/magisk/NanoDroid/logs/${script}.log.${date}`
When installed to /system your ROM needs to support running scripts in
`/system/etc/init.d`
or you can use **Kernel Adiutor's** init.d emulation.
When installed to /system your ROM needs to support running scripts in `/system/etc/init.d` or you can use **Kernel Adiutor's** init.d emulation.
## GNU Bash
......@@ -126,7 +122,7 @@ NanoDroid includes microG as follows
## F-Droid
F-Droid [> Website](http://www.fdroid.org) is an app store for OpenSource applications.
F-Droid [> Website](http://www.fdroid.org) is an app store for FOSS (Free and Open Source Software) applications only.
NanoDroid includes both F-Droid and it's Privileged Extension [> F-Droid](https://f-droid.org/repository/browse/?fdfilter=f-droid&fdid=org.fdroid.fdroid.privileged), so you don't need to enable `Unknown Sources`. Alternatively (or additionally) you can install Aurora Droid [> F-Droid](https://f-droid.org/de/packages/com.aurora.adroid/).
......
Table of Contents
=================
* [GApps Removal](#gapps-removal)
* [List of removed GApps](#list-of-removed-gapps)
* [List of removed location services](#list-of-removed-location-services)
* [GApps Removal](#gapps-removal)
* [List of removed GApps](#list-of-removed-gapps)
* [List of removed location services](#list-of-removed-location-services)
Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
# GApps Removal
GApps and several location services conflict with microG and unified Nlp. Thus they are removed during NanoDroid installation
* using [> NanoDroid-Overlay](NanoDroidOverlay.md)
the Uninstaller will restore them (or re-flash the ROM)
GApps and several location services conflict with **microG** and **unified Nlp**. Thus they are removed during NanoDroid installation
using **[NanoDroid-Overlay](NanoDroidOverlay.md)**. The Uninstaller will restore them (or re-flash the ROM)
List of applications by ale5000
List of applications by @ale5000
## List of removed GApps
......
Table of Contents
=================
* [Installation](#installation)
* [Installation Setup](#installation-setup)
* [Parallel Installations](#parallel-installations)
* [Installation on Stock ROM without GApps, custom ROM with/without OpenGApps](#installation-on-stock-rom-without-gapps-custom-rom-withwithout-opengapps)
* [Installation on Stock ROM with GApps](#installation-on-stock-rom-with-gapps)
* [Upgrading NanoDroid](#upgrading-nanodroid)
* [Installation Logfiles](#installation-logfiles)
* [Installation](#installation)
* [Installation Setup](#installation-setup)
* [Parallel Installations](#parallel-installations)
* [Installation on Stock ROM without GApps, custom ROM with/without OpenGApps](#installation-on-stock-rom-without-gapps-custom-rom-withwithout-opengapps)
* [Installation on Stock ROM with GApps](#installation-on-stock-rom-with-gapps)
* [Upgrading NanoDroid](#upgrading-nanodroid)
* [Installation Logfiles](#installation-logfiles)