公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。
方法、バージョン、制約を伴う比較可能な根拠。
- 文書化されたターゲット キーと承認された展開ポリシーを持つ物理デバイス。
- 再マップされたキーに依存しない回復パス。
- 変更がアプリレベルであるかデバイスレベルであるかについての明示的な決定。
公開基準
版管理された根拠とともにAndroid業務連携を構築。
公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。
- 01
最小の制御面を決定する
ワークフローがアプリ内に留まる場合は、アプリケーション レベルのキー処理を使用します。デバイスレベルのマッピングは、展開ポリシーとモデルがサポートしている場合にのみ使用してください。
- 02
変更前のスナップショット
元のキーコード、アクション、および傍受状態を読み取り、制御された展開レコードに保存します。工場出荷時のマッピングがバリアント間で同一であると想定しないでください。
- 03
一度に 1 つのキーをマップします
1 つの元に戻せる変更を適用し、それをターゲット ワークフローで検証し、ナビゲーション、緊急キー、支払いキー、およびシステム キーをデモの外に置きます。
- 04
復元して再起動する
復元、再起動の永続性、工場出荷時設定へのリセットの動作、および物理的な回復手順を確認します。リカバリを行わずに再マップが成功した場合は、デプロイメントの準備ができていません。
サンプルアプリ / Kotlin
SDK・APIパターン
公開されている例では、安全な状態遷移をモデル化しています。実際のデバイスレベルのマッピングはモデルおよびポリシー固有のままです。
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
}
}SDK配布
公開ゲート
ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。
モデル固有の制限を停止して記録します。推測されたマッピングを書き込まないでください。
物理回復パスを使用してスナップショットを復元し、展開からマッピングを削除します。
セッションのみとマークし、承認された場合は永続性をデプロイメント構成に移動します。
証拠ステータス
方法、バージョン、制約を伴う比較可能な根拠。
- 01
変更を適用する前に、元のマッピングを記録し、復元をテストします。
- 02
フォアグラウンド、バックグラウンド、再起動、リセットのシナリオでアクションを確認します。
- 03
システムのナビゲーションと緊急時の動作が引き続き利用可能であることを確認します。
- 04
テスト中は、回復手順をデバイスの横に保管してください。
資料
SDK・APIパターン
ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。