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

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
  --no-recovery         Don't make recovery


$ 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 version of the stock recovery that inception slightly modified
  • Boots into that modified recovery
  • The modified 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:

  • Some recovery img (stock recovery or custom one)
    • recovery.img = "/path/to/recovery.img"
  • Stock recovery
    • recovery.stock = "/path/to/stockrecoveryfile.img"
  • SuperSU
    • update.root_method = "supersu"
  • Cache properties
    • cache.sparsed = true/false

Ideally a "base" would have all those properties set for you. However, if 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.