De acordo com developer.ubuntu.com , existem basicamente dois propósitos :
- Declarar recursos de hardware para o sistema
Citando a partir da documentação do Ubuntu :
O snap ao gadget é responsável por definir e manipular as propriedades do sistema que são específicas para um ou mais dispositivos que geralmente se parecem entre si a partir de uma perspectiva de implementação. Esse snap deve necessariamente ser produzido e assinado pela marca do dispositivo, que é definida por meio da asserção do modelo. A marca sabe onde e como esse dispositivo será usado e projeta o gadget de acordo.
Por exemplo, a marca pode saber que o dispositivo é realmente uma VM especial para ser usada em uma nuvem específica, ou pode saber que será fabricado em uma fábrica específica. O snap ao gadget pode codificar os mecanismos de inicialização do dispositivo - geração de chave e certificação de identidade -, bem como processos específicos para o ciclo de vida do dispositivo, como redefinições de fábrica. É perfeitamente possível que diferentes modelos compartilhem um snap de gadget.
- Permitir acesso antecipadamente a snaps que precisam usar este hardware
Também da documentação do Ubuntu :
O gancho opcional do dispositivo de preparação é um script que será chamado no gadget no início do processo de inicialização do dispositivo, após a instalação do snap do gadget. O gancho também será chamado se esse processo for repetido mais tarde do zero, em caso de falhas na inicialização.
O processo de inicialização do dispositivo é, por exemplo, responsável por definir a identificação serial do dispositivo por meio de uma troca com um serviço do dispositivo. O gancho do dispositivo de preparação pode, por exemplo, redirecionar essa troca e definir dinamicamente opções relevantes a ela.