(state: string)
| 164 | type AndroidFingerprintAction = 'match' | 'nonmatch'; |
| 165 | |
| 166 | function parseAndroidFingerprintAction(state: string): AndroidFingerprintAction { |
| 167 | const normalized = state.trim().toLowerCase(); |
| 168 | if (normalized === 'match') return 'match'; |
| 169 | if (normalized === 'nonmatch') return 'nonmatch'; |
| 170 | throw new AppError('INVALID_ARGS', `Invalid fingerprint state: ${state}. Use match|nonmatch.`); |
| 171 | } |
| 172 | |
| 173 | async function runAndroidFingerprintCommand( |
| 174 | device: DeviceInfo, |