SK-Intellix Framework SDK Transformation Roadmap
이 로드맵은 A1 Android platform package와 DeviceAgent API를 근거 기반으로 정리하고, 필요한 경우 client SDK 후보로 분리하는 단계다.
1. 전환 원칙
| 원칙 | 설명 |
|---|---|
| 현재 구조 우선 | a1-packages, QSSI/UM overlay, DeviceAgent/HAL 경계를 먼저 고정 |
| DeviceAgent 중심성 인정 | DeviceAgent는 제품 기능의 product-level SystemServer/service hub로 문서화한다 |
| 기존 호출 보존 | DeviceControlAPIJavaLib와 IDeviceControl.sendModuleCommand(Bundle) 경로를 깨지 않는다 |
| 문서와 구현 분리 | 후보 SDK/API 이름을 현재 구현 완료 사실처럼 쓰지 않는다 |
| partition 경계 명확화 | QSSI system package와 UM vendor service/HAL 책임을 분리 |
| evidence 기반 완료 | build/lint가 아니라 boot/service/HAL/logcat/dmesg/AVC evidence까지 확인 |
2. Phase 계획
| Phase | 목표 | 주요 작업 | 산출물 |
|---|---|---|---|
| Phase 0: 문서 정정 | 허브와 하위 문서를 실제 A1 구조 기준으로 정리 | 제품 외부 판단 계층 표현 제거, 근거 경로 추가 | corrected framework-sdk/ 문서 |
| Phase 1: Baseline source map | A1 package, DeviceAgent API, peer agent, HAL 경계 고정 | MODULE_INVENTORY.md, SERVICE_MAP.md, QSSI/UM makefile 연결 |
source map v1 |
| Phase 2: API contract freeze | 기존 Bundle/method/callback 계약 문서화 |
caller 목록, method 목록, callback/event 목록 | DeviceControl API contract |
| Phase 3: Client API adapter | raw Bundle을 숨기는 wrapper 후보 작성 | 기존 path parity test, adapter unit test | SDK candidate skeleton |
| Phase 4: DeviceAgent runtime cleanup | MainApi, framework/command, task, policy/event 경계 정리 |
source ownership map, regression test | runtime cleanup report |
| Phase 5: Platform enablement gate | QSSI/UM build와 vendor HAL/service 검증 | service registration, VINTF, sepolicy, DTS/device node evidence | platform acceptance kit |
| Phase 6: Release packaging | 내부 AAR 또는 기존 Java lib 확장 방식 결정 | artifact, consumer migration guide, rollback plan | release candidate |
3. 기존 자료의 위치
| 자료 | 이 로드맵에서의 의미 |
|---|---|
a1-packages/docs/architecture/MODULE_INVENTORY.md |
A1 package baseline |
a1-packages/docs/architecture/SERVICE_MAP.md |
Binder/peer/HAL service map |
a1-packages/docs/framework-sdk-transformation-* |
전환 후보와 과거 설계 메모. 현재 사실과 구분해서 사용 |
a1-packages/docs/task-manager/* |
DeviceAgent/SoC TaskManager 상세. 이 허브에서는 링크만 제공 |
<qssi-vendor-overlay>/* |
QSSI system package/HIDL/permissions 반영 근거 |
<um-vendor-overlay>/* |
UM vendor service/HAL/sepolicy/DTS 반영 근거 |
| QCS6490 Platform Vendor Brief | 업체 구현/검증 범위 |
| Source/Evidence Catalog | 문서 주장과 검증 증거 연결 |
4. 단기 우선순위
| 우선순위 | 작업 | 완료 증거 |
|---|---|---|
| P0 | Framework/SDK 허브에서 사실과 후보를 분리 | 허브에 현재 API, 후보 SDK, evidence gate가 분리되어 표시 |
| P0 | DeviceAgent를 product-level SystemServer로 표현 | 허브와 system design에 service hub 책임 표 포함 |
| P0 | 제품 외부 판단 계층 표현 제거 | framework-sdk/ 문서가 A1 package, DeviceAgent, QSSI/UM, HAL 근거 중심으로 읽힘 |
| P0 | QSSI/UM 레이어 표현 보정 | build partition flow와 문서가 <qssi-vendor-overlay>, <um-vendor-overlay> 경계를 일치시킴 |
| P0 | device evidence owner 보정 | 플랫폼 벤더 제출, validation gate 검증으로 표시 |
| P1 | DeviceControlAPI method/caller inventory 작성 |
caller source와 Bundle key 목록 |
| P1 | SDK candidate 여부 결정 | AAR 신규 생성 vs 기존 Java lib 확장 결정 기록 |
| P2 | adapter skeleton과 parity test 구현 | Gradle/JVM/device smoke evidence |
5. 완료 기준
| 요구 | 완료 증거 |
|---|---|
| 현재 구조가 사실 기반이다 | 각 핵심 주장에 source path가 붙어 있음 |
| SDK 표현이 과장되지 않는다 | 현재 구현과 candidate가 문서에서 분리됨 |
| QSSI/UM 경계가 명확하다 | system package/HIDL과 vendor service/HAL이 분리 설명됨 |
| DeviceAgent API 흐름이 보인다 | client -> DeviceControlAPI -> IDeviceControl -> DeviceAgent -> peer/HAL chain |
| 업체 evidence 기준이 보인다 | boot/service/HAL/VINTF/sepolicy/DTS evidence gate |
6. 후속 구현 후보
실제 SDK 구현은 이 문서가 아니라 별도 development task로 다룬다.
DeviceControlAPIcaller inventoryIDeviceControl.sendModuleCommandBundle contract inventory- adapter request/result model 최소안
- 기존 caller parity test
- AAR 또는 Java library packaging 결정
- QSSI package 반영
- 실기기 bind/callback/HAL smoke evidence