-
-
Notifications
You must be signed in to change notification settings - Fork 21
Support any device
If there isn't a base config yet for a device that you have, you can create a base config yourself in simple steps
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.
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
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
incept bootstrap --base inception.device --variant mydevice
Inception needs to learn some information about the target device to be able to generate compatible output.
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"
}
}
Make the new config an make sure all looks good
incept make --variant inception.device.mydevice
incept bootstrap --base inception.device.mydevice --variant homeconfig
inception make --variant inception.device.homeconfig
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