Skip to content
Tarek edited this page Jun 8, 2015 · 11 revisions
$ incept autoroot -h
usage: autoroot [-h] (-b BASE | -v VARIANT) [-o OUTPUT]

Creates Inception Auto-Root package that you can flash to your device. An
Inception Auto-Root package will install root and supersu on your device, and
then reinstalls stock recovery back.

optional arguments:
  -h, --help            show this help message and exit

Required args:
  -b BASE, --base BASE  base config code to use, in the format A.B
  -v VARIANT, --variant VARIANT
                        variant config code to use, in the format A.B.C

Optional args:
  -o OUTPUT, --output OUTPUT
                        Override default output path


$ incept autoroot --base samsung.degaswifi

According to ChainFire, creator of CF-Auto-Root

CF-Auto-Root is built on an automated system that I am constantly improving that takes a stock recovery image and returns an automated rooting packages. These packages are designed to install and enable SuperSU on your device, so apps can gain root access, and nothing more.

inception's autoroot command does a similar thing. It creates an on the fly a temporary configuration, sets all necessary properties to generate an autoroot package. That is, a package that you can flash using Heimdall or Odin and does the following:

  • Installs a temporary custom recovery
  • Boots into the custom recovery
  • Custom recovery will automatically install SuperSU and root the device
  • Stock recovery is installed back to your device

This enables you create autoroot packages yourself, for example when a device is not supported by ChainFire.

Requirements

An autoroot package generation needs the following:

  • Temporary Custom recovery like twrp, PhilZ or cwm
    • recovery.img = "/path/to/recoveryfile.img"
  • Stock recovery
    • recovery.stock = "/path/to/stockrecoveryfile.img"
    • recovery.dev = "/dev/block/mmcblkXpY"
  • SuperSU
    • update.root_method = "supersu"
  • Setting the cache partition Size
    • cache.size = 209715200

Ideally a "base" would have all those properties set for you. However, ff the base/variant you are using for autoroot is missing one of those properties, you'll need to bootstrap a variant first, set those missing properties, and then use this variant for generating autoroot.

The following is an example of a minimum autoroot config, that the incept autoroot command generates and uses:

{
    "common": {
        "root": {
            "methods": {
                "supersu": {
                    "path": "/path/to/supersu.zip",
                    "include_archs": [],
                    "include_apk": true
                }
            }
        }
    },
    "boot": {
        "__make__": false  
    },
    "recovery": {
        "__make__": true,
        "img": "/path/to/recovery.img",
        "stock": "/path/to/stockrecovery.img",
        "dev": "/dev/block/mmcblkXpY"
    },
    "cache": {
        "__make__": true,
        "size": 209715200
    },
    "update": {
        "__make__": true,
        "restore_stock_recovery": true,
        "root_method": "supersu",
        "settings": {
            "__make__": false
        },
        "network": {
            "__make__": false
        },
        "property": {
            "__make__": false
        },
        "apps": {
            "__make__": false
        },
        "adb": {
            "__make__": false
        }
    },
    "odin": {
        "__make__": true,
        "checksum": true
    }
}