Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
Evidência comparável com método, versão e limites.
- Um dispositivo físico com uma chave de destino documentada e uma política de implantação aprovada.
- Um caminho de recuperação que não depende da chave remapeada.
- Uma decisão explícita sobre se a mudança é no nível do aplicativo ou no nível do dispositivo.
Padrão de publicação
Integre Android empresarial com evidência versionada.
Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
- 01
Decida a menor superfície de controle
Use a manipulação de chaves no nível do aplicativo quando o fluxo de trabalho puder permanecer dentro do aplicativo. Use o mapeamento em nível de dispositivo somente quando a política e o modelo de implantação oferecerem suporte.
- 02
Instantâneo antes de mudar
Leia e armazene o código-chave original, a ação e o estado de interceptação em um registro de implantação controlado. Nunca presuma que o mapeamento de fábrica é idêntico em todas as variantes.
- 03
Mapeie uma chave por vez
Aplique uma alteração reversível, verifique-a no fluxo de trabalho de destino e mantenha as chaves de navegação, emergência, pagamento e sistema fora da demonstração.
- 04
Restaurar e reiniciar
Verifique a restauração, a persistência da reinicialização, o comportamento da redefinição de fábrica e um procedimento de recuperação física. Um remapeamento bem-sucedido sem recuperação não está pronto para implantação.
Aplicações de exemplo / Kotlin
Padrões de SDK e API
O exemplo público modela transições de estado seguras; o mapeamento real em nível de dispositivo permanece específico do modelo e da política.
data class KeySnapshot(
val keyCode: Int,
val action: String?,
val intercepted: Boolean,
)
interface KeyPort {
fun snapshot(keyCode: Int): KeySnapshot
fun apply(keyCode: Int, action: String)
fun restore(snapshot: KeySnapshot)
}
fun applyTemporaryMapping(port: KeyPort, keyCode: Int, action: String) {
val original = port.snapshot(keyCode)
try {
port.apply(keyCode, action)
// Verify the workflow here before the device leaves the lab.
} catch (error: Throwable) {
port.restore(original)
throw error
}
}Distribuição de SDK
Controle de publicação
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.
Pare e registre a limitação específica do modelo; não escreva um mapeamento adivinhado.
Use o caminho de recuperação física, restaure o snapshot e remova o mapeamento da implantação.
Marque-o como somente sessão e mova a persistência para a configuração de implantação, se aprovado.
Estados da evidência
Evidência comparável com método, versão e limites.
- 01
Registre o mapeamento original e teste uma restauração antes de aplicar a alteração.
- 02
Verifique a ação em cenários de primeiro plano, segundo plano, reinicialização e redefinição.
- 03
Confirme se a navegação do sistema e o comportamento de emergência permanecem disponíveis.
- 04
Mantenha uma instrução de recuperação ao lado do dispositivo durante o teste.
Recursos
Padrões de SDK e API
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.