## page was copied from UbuntuCore/AddingAppliances Adding new Ubuntu Core images/devices to the build process is very similar to that of Ubuntu Appliances. * Make sure the new image/device has all the required snaps present in the snapstore. Some questions to answer: * Is it a completely new device with completely new gadget+kernel combination? * Is the kernel snap available for the device? Is it on the right track? (20/* for UC20, 18/* for UC18 etc) * Is the gadget snap available for the device? Same for the tracks. * What arches should it be provided for? Some devices support multiple architectures (armhf, arm64 etc.) * Does it need any other device-specific snaps preinstalled? * What should be the name of the new model? We usually follow the naming of: `ubuntu-core--[-][-]`, e.g. `ubuntu-core-20-pi-arm64-dangerous`. * Create the new image model assertion JSON files, one per each supported arch. Please consult existing model JSON files for reference on how the fields should look like. There is a [[https://github.com/snapcore/models|snapcore/models]] git repository with all the officially supported models so far. * When creating a model JSON file remember to bump the timestamp at the bottom to the current date * The publisher and brand should be 'canonical' * Do a test build of the new model to make sure no error sneaked in. This can be done by substituting the brand-id and authority-id's from `canonical` to your private ones and signing the assertions locally, then using `ubuntu-image snap` as usual. * Create an RT for IS to sign the model assertion with the canonical key, attaching the relevant .json files to the RT. * Example request - RT: 131731. * Commit the new assertion and related JSON file to the [[https://github.com/snapcore/models|snapcore/models]] github repository. * Once the model assertion is signed, send the signed model files to snap-store-admins@lists.canonical.com for upload to the Snap Store. * Add support for the new model in `livecd-rootfs` for the selected series (UC20 = focal, UC18 = bionic etc.). * livecd-rootfs translates the `+` cdimage pair into the model name. * This requires deciding on what SUBARCH should be used for the new image. When planning, keep in mind the possibility of us enabling the same platform for classic images. * The actual support for the translation to model name is in `live-build/auto/config` in livecd-rootfs. Look for a conditional switch for `ubuntu-image` IMAGEFORMAT. * Prepare SRU for the livecd-rootfs changes, make sure it's verified and released into -updates * To officially build the new image alongside all the other default Ubuntu Core images, add the new `+` pair to `etc/default-arches` in lp:ubuntu-cdimage (under the `ubuntu-core` project) * Once there is a physical image built on cdimage, give the link to the new builds to the CertificationTeam (contact: Paul or Jonathan)