Repository navigation
fix(core): Android 9·10 생체 인증 호환성 복구 (#2200) - #2226
Merged
Merged
Conversation
1hyok
added this pull request to stack #2227
October 1, 2026 10:06
1hyok
removed this pull request from stack #2227
October 1, 2026 12:06
1hyok
added this pull request to stack #2234
October 1, 2026 12:06
6 of 7 tasks
Sadturtleman
approved these changes
Oct 4, 2026
Sadturtleman
left a comment
Collaborator
There was a problem hiding this comment.
API 28·29 에서만 BIOMETRIC_STRONG + 취소 버튼으로 분기하고 나머지 버전의 허용자·CryptoObject 정책을 유지하는 것, 그리고 v29 한정자로 테마 영향 범위를 제한한 것을 확인했습니다. 승인합니다.
Contributor
|
이 PR 은
|
Base automatically changed from
refactor/2195-core-biometric-prompt
to
develop
October 6, 2026 07:48
1hyok
force-pushed
the
fix/2200-legacy-biometric-auth
branch
from
October 6, 2026 07:48
ff60ecf to
41636a9
Compare
Sadturtleman
approved these changes
Oct 6, 2026
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
먼저
BiometricAuth.kt의 API별 허용자 분기,gradle/libs.versions.toml의 호환 버전, 앱의values/themes.xml과values-v29/themes.xml을 확인해 주세요.📌 Issues
Closes #2200
실제 base는 선행 PR #2202의
refactor/2195-core-biometric-prompt입니다. 공통 래퍼를 실제로 소비하는 두 기능에 동일한 수정이 적용됩니다.📎 변경 내용
Android 9·10에서 지문이 등록되어도 인증을 시작할 수 없었습니다. 공통 래퍼가 지원되지 않는
BIOMETRIC_STRONG | DEVICE_CREDENTIAL조합을 요청했고, Biometric 1.1.0은 Core 1.19의 비활성화된FingerprintManagerCompat에 의존해 일반 API29 기기의 지문도 사용 불가로 판정했습니다.API28·29에서만
BIOMETRIC_STRONG과 시스템 취소 버튼을 사용합니다. API26·27 및 API30 이상은 기존 강한 생체 인증·기기 자격 조합을 유지합니다. API30 이상의 앱 소유 CryptoObject와 반환 cipher의 실제 암호 연산 검증도 유지합니다. 설정의 등록 상태, ViewModel, 이동 배선은 변경하지 않습니다.API26 기기 검증에서는 AndroidX 지문 대화상자가 기존 플랫폼 테마의 AppCompat 속성 부재로 종료되는 문제도 확인했습니다. 일부 API28 Samsung 기기도 같은 AndroidX 대화상자로 폴백하므로 API26·27·28의 Activity 테마에 AppCompat 호환을 적용하고, API29 이상은 리소스 한정자로 기존 플랫폼 테마를 유지합니다.
Biometric을 내부 fingerprint 호환 구현이 있는
1.4.0-alpha07로 갱신합니다. 현재 안정판 1.1.0에는 이 수정이 없습니다. AndroidX 릴리스 기록과 실제 배포 소스를 대조했습니다. 기존 compileSdk37·AGP9.3.2는 이 버전의 최소 요구사항을 충족합니다. API28·29에서 PIN 폴백을 새로 제공하는 변경은 포함하지 않습니다.검증
:app:ktlintCheck,:feature:setting:presentation:ktlintCheck,:core:common:ktlintCheck,git diff --check통과.다중 SDK 리소스 테스트를 앱 전체와 함께 실행하면 기본 512MB 테스트 JVM에서 기존 알림 권한 테스트 3건이 리소스 로딩 중 OOM으로 실패했습니다. 같은 82건으로 재현한 뒤 앱 단위 테스트 JVM만 1GB로 설정해 전부 통과했습니다. Gradle 데몬이나 앱 런타임 메모리 설정은 변경하지 않습니다.
자동 회귀 명령:
./gradlew :app:testDebugUnitTest :feature:setting:presentation:testDebugUnitTest --tests 'com.afternote.feature.setting.presentation.passkey.PassKeyMakingApi29Test' :app:ktlintCheck :feature:setting:presentation:ktlintCheck :konsist:test ./gradlew :core:common:testDebugUnitTest :core:common:ktlintCheck🧪 CI Test Plan
{ "androidTest": { "mode": "full", "reason": "Biometric 버전 카탈로그와 앱 테마가 바뀌므로 전체 Android 계측 회귀를 실행한다. 등록된 생체 정보와 센서 입력이 필요한 수동 인증 경로는 별도 로컬 AVD로 검증한다.", "tests": [] } }