Repository navigation
v1.3.1: 네임스페이스 마이그레이션, LiteRT 실측 벤치마크 연동 및 Keystore 보안 결함 해소
Local LLM Android v1.3.1 Release Notes
v1.3.0 머지 이후 발견된 잔여 기술 부채 및 불일치(네임스페이스 미반영, 토큰 속도 추정치 잔존, UI 라우팅 원시 문자열 호출, Keystore 조용한 폴백 취약점)를 전면 해소한 완성형 릴리즈입니다.
🏛️ P0 & P3 — 완전한 네임스페이스 및 패키지 마이그레이션
com.localllm.android전면 적용:applicationId뿐만 아니라 빌드namespace및 소스/테스트 코드 디렉토리 전체를com.localllm.android로 이전 완료- ProGuard/R8 keep 규칙 동기화 및
com.example잔여 레거시 레퍼런스 100% 제거
🎯 P1 & P2 — LiteRT-LM C++ 런타임 실측 지표 연동
length/3추정치 완전 제거:- LiteRT C++ 코어의
conv.getBenchmarkInfo()네이티브 지표 연동 lastPrefillTokensPerSecond(프롬프트 처리 속도),lastDecodeTokensPerSecond(생성 TPS),lastPrefillTokenCount,lastDecodeTokenCount를 실측치로 정확하게 산출 및 표기
- LiteRT C++ 코어의
🔒 P0 — Android Keystore 보안 결함(Silent Downgrade) 원천 차단
- 실기기 런타임 하드코딩 키 폴백 차단:
- 실기기 환경에서 Keystore 예외 발생 시 하드코딩 키로 조용히 폴백(Silent Fallback)하던 취약점 제거 ->
SecurityException명시적 발생 - JVM/Robolectric 유닛 테스트 환경에서만 안전하게 테스트 키가 동작하도록 런타임 환경 분리
- 실기기 환경에서 Keystore 예외 발생 시 하드코딩 키로 조용히 폴백(Silent Fallback)하던 취약점 제거 ->
🛡️ P1 — 사전 OOM 진단 및 실질적 크래시 방지 가드
checkMemoryDiagnostics구현:- 단순 Logcat Warning 출력을 넘어, 기기 가용 RAM이 심각하게 고갈된 상황(
availMemMb < 150MB및 모델 크기 초과)에서 네이티브 프로세스 강제 종료(SIGSEGV)를 예방하기 위한 조기 로드 차단 및 사용자 안내 메시지 반환 - 모델 로딩 중 실시간 메모리 상태 인디케이터 반영
- 단순 Logcat Warning 출력을 넘어, 기기 가용 RAM이 심각하게 고갈된 상황(
🧭 P2 & P3 — 전 UI 컴포넌트 타입 안전한 네비게이션 (AppScreen)
- UI 화면 호출부 11곳 전면 전환:
ChatScreen,ModelManagerScreen,SettingsScreen,VoiceModeScreen,ApiServerScreen내 모든 화면 이동 호출부를AppScreenenum으로 완전 교체MainViewModel.navigateTo(String)오버로드에@Deprecated부여
- APK 패키징:
Localllmandroid-v1.3.1-release.apk(R8 / Minify 최적화 적용, 99.9MB) - 테스트: 로컬 유닛 테스트 100% 통과 (Robolectric / JUnit)