As I understand it, you’d like to create a preloaded image that can be flashed onto multiple devices where they won’t be able to connect to the balenaCloud service.
Whilst you can’t use exactly the same image for each, what you can do (from an Internet connected machine) is:
- Preload a provisioning image with an application which will be used as the ‘master’ image
- Pre-register a UUID for each device that you’d like to provision the image on
- Copy the ‘master’ image, and then generate a new config for the pre-registered UUID and inject this into the copy
- Provision a device with the specific copy of the preloaded image
This does require that a new image with a unique config is used for each unique device, but it’s a process that’s been successfully used by customers in their manufacturing environments to preload devices before being shipped.
Unfortunately, as I’m currently looking, Github is down so I can’t give you the example I was thinking of, but you need:
balena device register <App> to register a new device UUID, which will be returned when the command completes (there is also an API version here: https://www.balena.io/docs/reference/sdk/node-sdk/#balena.models.device.register)
balena config generate --device <UUID> --output <UUID>.config.json to generate a new config for injecting into the copy of the preloaded image
balena config inject <config> --type <deviceType> <preloadedCopiedImage> to injeect the generated config into the copy of the preloaded image
Please let us know if you’ve any further questions, or more information on what might work for you!
Best regards, Heds