구현 해석의 주의점·정정·검증 범위
기준:
a1-packages-mr6,quber/mr7,7695c9a85fedf6d756490e51c07f6e09f568a4bd. 추적 소스의 정적 분석이다. 미추적 TaskManagerClient 및 작업 산출물은 포함하지 않는다. APK·AOSP 빌드나 기기 동작 검증은 이번 분석 범위가 아니다.
이 항목들은 구현을 수정한 결과가 아니다. 현재 코드의 설명을 정확하게 만들기 위해 확인한 사실과 추가 검증 항목이다. DA/는 apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/다.
정적 확인 사실
| 항목 | 확인 사실 | 해석·후속 확인 |
|---|---|---|
| 청정 정책 반환 | mPolicy 계산 이후 POLICY_NOT_DEFINED 반환, 호출자의 else는 시작 허용 | 정책 계산값과 반환값을 분리해 기술. 경로별 실제 차단 검증 필요 |
| WSS 공통 차단 | CmdPolicy의 WSS 중 차단 return이 주석 처리 | 로그 문구를 활성 차단으로 간주하지 않음 |
| 예약 Streaming | 해당 if는 로그만 기록 | 다른 State/CmdPolicy 검사가 있는 경로와 없는 예외 경로를 구분 |
| Security 예약 예외 | 일반 검사 실패 뒤 원인별 정보 없이 재허용 검사 | privacy/night/lock 등 실패 원인이 다른 경우의 결과를 조합별 검증 |
| S02 복귀 | ignoreOtherCond 기본 true | 과거 주석과 실행값을 구별, 전 조건 무시로 일반화하지 않음 |
| WSS 결과 | allowed 계산에서 battery reason 제외, LLM trigger 재계산 | boolean과 reason 비트를 함께 해석 |
| queue ID | WSS와 STREAMING command ID base가 모두 2000 | 동일 Handler의 has/removeMessages가 기능간 같은 ID에 영향을 줄 가능성. 실제 충돌 재현은 미수행 |
| 일반 Binder 반환 | 초기 ret=0을 그대로 반환 | 거절/수락/물리 완료를 반환값 하나로 판정 불가 |
| Manager 파일 수 | 51개 이름 중 6개는 0 byte, 1개는 동작 없는 클래스 | 51개 독립 동작 컴포넌트라고 집계하지 않음 |
근거: DA/cleaning/AirCleaningPolicy.java:201; DA/cleaning/BaseCleaningManager.java:223–258; DA/policy/CmdPolicyManager.java:132, :461–465; DA/schedule/ScheduleAlarmReceiver.java:231–312; DA/wss/policy/WssPolicyChecker.java:171–187; DA/wss/WssManager.java:520–540; DA/ipc/TaskExecutor.java:17–35, :78–102; DA/DeviceAgent.java:264–282; 전체 Manager 목록.
앞선 개요에서 정정하는 부분
이전 1398d109 문서의 AirCleaningPolicy 설명은 내부 계산 분기를 곧바로 유효한 실행 정책으로 요약했다. 이번에는 호출자의 반환값 소비까지 확인해, 홈잠금 조기 반환, AMR 미연결 예외, 최종 NOT_DEFINED 반환 및 caller의 허용 처리를 명시했다. self-test 분기는 TODO이며 실제 검사 완료로 보지 않는다. 기준 간 실행 코드 변경으로 생긴 차이가 아니라 분석을 더 깊게 수행하며 확인한 정정이다.
기기에서 확인해야 할 연결
| 시나리오 | 소스상 기대되는 관찰점 | 실제 완료의 근거 |
|---|---|---|
| 새 청정 거절/허용 | MainApi → CmdPolicy → BaseCleaning 분기 | fan/이동 상태 및 후속 이벤트 |
| 저전력 복귀 | S02 이벤트 → 3초 게시 → returnToStation | AMR 이동·도킹·충전 상태 |
| 예약 | DB 활성/시간 → Receiver 조건 → Launcher setSchedule callback | Launcher의 후속 요청과 기능 시작/종료 |
| Privacy | Preferences/property·Vision/SoundFlow/LLM 전달 | 각 서비스의 반영 로그와 센서/음성 상태 |
| WSS/LiveView | caller 검사 → queue → policy → 세션 상태 | 영상/이벤트 자산·업로드 및 종료 callback |
| OTA | UPGRADE 전이와 입구 차단 → UpdateEngine | 적용 상태, 재부팅, 설치 버전 |
이번 작업은 문서 생성·근거 대조·링크/SVG/사이트 검증을 수행한다. Android 소스 수정, APK 빌드·설치, Binder/로봇 실동작 검증은 수행하지 않는다.
재현 방법
git -C ~/work/1.A1_SoC_new/SoC/a1-packages-mr6 rev-parse quber/mr7
git -C ~/work/1.A1_SoC_new/SoC/a1-packages-mr6 diff --stat 1398d109 7695c9a8
git -C ~/work/1.A1_SoC_new/SoC/a1-packages-mr6 show 7695c9a8:apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AirCleaningPolicy.java
경로와 행 번호는 이 커밋 기준이다. 이후 브랜치 이동이나 코드 변경으로 행 번호가 달라질 수 있다.
Connections
상세 분석 목차 · 기존 전체 SVG 지도 · 정책 조건표 · 실행 시나리오