Les ressources publiques ciblent des modèles reproductibles. SDK, firmware et documents fabricant restreints restent dans leurs canaux approuvés.
Des preuves comparables avec méthode, version et limites.
- Un appareil physique avec une clé cible documentée et une politique de déploiement approuvée.
- Un chemin de récupération qui ne dépend pas de la clé remappée.
- Une décision explicite quant à savoir si le changement s'effectue au niveau de l'application ou au niveau de l'appareil.
Norme de publication
Intégrer Android en entreprise avec des preuves versionnées.
Les ressources publiques ciblent des modèles reproductibles. SDK, firmware et documents fabricant restreints restent dans leurs canaux approuvés.
- 01
Décidez de la plus petite surface de contrôle
Utilisez la gestion des clés au niveau de l’application lorsque le flux de travail peut rester à l’intérieur de l’application. Utilisez le mappage au niveau de l’appareil uniquement lorsque la stratégie de déploiement et le modèle le prennent en charge.
- 02
Instantané avant de changer
Lisez et stockez le code clé d'origine, l'action et l'état d'interception dans un enregistrement de déploiement contrôlé. Ne présumez jamais que le mappage d’usine est identique entre les variantes.
- 03
Mapper une clé à la fois
Appliquez une modification réversible, vérifiez-la dans le flux de travail cible et conservez les clés de navigation, d'urgence, de paiement et système en dehors de la démo.
- 04
Restaurer et redémarrer
Vérifiez la restauration, la persistance du redémarrage, le comportement de réinitialisation d'usine et une procédure de récupération physique. Un remappage réussi sans récupération n’est pas prêt pour le déploiement.
Applications exemples / Kotlin
Modèles SDK et API
L'exemple public modélise des transitions d'état sûres ; Le mappage réel au niveau de l’appareil reste spécifique au modèle et à la politique.
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
}
}Distribution des SDK
Contrôle de publication
Aucun binaire fournisseur, référence d'API, firmware ou exemple de code source n'est publié sans autorisation de redistribution et périmètre pris en charge enregistrés.
Arrêtez et enregistrez la limitation spécifique au modèle ; n'écrivez pas une cartographie devinée.
Utilisez le chemin de récupération physique, restaurez l'instantané et supprimez le mappage du déploiement.
Marquez-le comme session uniquement et déplacez la persistance dans la configuration de déploiement si elle est approuvée.
États de preuve
Des preuves comparables avec méthode, version et limites.
- 01
Enregistrez le mappage d'origine et testez une restauration avant d'appliquer la modification.
- 02
Vérifiez l'action dans les scénarios de premier plan, d'arrière-plan, de redémarrage et de réinitialisation.
- 03
Confirmez que la navigation du système et le comportement d’urgence restent disponibles.
- 04
Conservez une instruction de récupération à côté de l'appareil pendant le test.
Ressources
Modèles SDK et API
Aucun binaire fournisseur, référence d'API, firmware ou exemple de code source n'est publié sans autorisation de redistribution et périmètre pris en charge enregistrés.