Skip to content
Tarek edited this page Jun 19, 2015 · 5 revisions

If there isn't a base config yet for a device that you have, you can create a base config yourself in simple steps

1- Find a compatible recovery img file

Stock recovery, or a custom one would do. Inception modifies the supplied recovery img and injects public keys that match the ones it used to sign the update package. Otherwise your device won't accept the update package.

2- Bootstrap your new config as a variant

If there is already a base config for the device's model, for example samsung.common, use this as a base for the new variant, otherwise use inception.device

With custom recovery installed

If you have access to a physical device that is already rooted, or has a custom recovery installed, you can tell inception to automatically fetch all necessary configuration options from the device. Connect the device via USB in recovery mode and running the following:

incept bootstrap --base inception.device --variant mydevice --learn-settings --learn-props --learn-imgs --learn-partitions

If all went fine, then you are basically done and can skip directly to step 5

Otherwise:

incept bootstrap --base inception.device --variant mydevice

3- Find some device info

Inception needs to learn some information about the target device to be able to generate compatible output.

4- Configuring the recovery img

Create a new directory called imgs beside your bootstrapped mydevice.json file, and save the recovery.img file inside. Update mydevice.json with this:

{
    "recovery": {
        "img": "imgs/recovery.img"
    }
}

If the recovery is a stock recovery or if you also have a stock recovery img, then also set recovery.stock, allows you/others create an autoroot package, or to just have the option to restore stock recovery after installation.

{
    "recovery": {
        "img": "imgs/recovery.img",
        "stock": "imgs/stock_recovery.img"
    }
}

5- Test

Make

Make the new config an make sure all looks good

incept make --variant inception.device.mydevice

Bootstrap variants out of it

incept bootstrap --base inception.device.mydevice --variant homeconfig
inception make --variant inception.device.homeconfig

6- Convert to a base config

Converting a variant config to a base config is done by simply moving the config directory to the base directory, by default at "~/.inception/base", under exactly 1 parent.

For example the above config dir should move from

~/.inception/variants/inception/device/mydevice

to

~/.inception/base/someparent/mydevice

and then you bootstrap new variants out of it via

incept bootstrap --base someparent.mydevice --variant new_variant