← Docs hub

SK-Intellix Framework and SDK Hub

이 허브는 a1-packages와 platform vendor AOSP overlay를 기준으로, 현재 제품에 들어가는 Android system package, DeviceAgent API, peer agent, vendor HAL/service, init/VINTF/sepolicy/DTS 연결을 근거 기반으로 정리한다.

여기서 말하는 Framework/SDK는 현재 코드에 이미 제품 형태로 완성된 별도 SDK가 있다는 뜻이 아니다. 현재 확인된 사실은 다음에 가깝다.

Client apps / privileged packages
  -> DeviceControlAPIJavaLib 또는 직접 Binder bind
  -> DeviceAgent IDeviceControl.sendModuleCommand(Bundle)
  -> MainApi / framework command / task package / domain managers
  -> peer agents 또는 vendor.<platform-vendor>.hardware.* HAL
  -> UM vendor service / MCU / SoundFlow / sysfs / DTS-backed device nodes

따라서 이 문서의 목적은 “새로운 상위 지능 계층”을 설명하는 것이 아니라, A1에 이미 존재하는 Android platform package와 DeviceAgent 중심 API를 어떤 기준으로 안정화하고, 필요하면 SDK 형태로 포장할 수 있는지 정리하는 것이다.

이 구조에서 DeviceAgent는 단순 기능 앱이 아니다. Android OS의 system_server 프로세스 자체는 아니지만, 제품 기능 관점에서는 그에 가까운 product-level SystemServer / service hub 역할을 한다. 외부 client의 Binder 진입점, domain manager, peer agent binding, HAL bridge, 상태/정책/event 처리가 DeviceAgent에 모여 있기 때문이다.

SK-Intellix AOSP Layer Stack

1. 권장 읽기 순서

단계 문서 목적
0 · Orientation 현재 문서 현재 A1 package와 SDK 후보의 범위
1 · Why / Product Transformation Roadmap 현재 구조를 깨지 않고 API를 안정화하는 이유
2 · Architecture System Design DeviceAgent Binder API, peer agent, HAL/service 경계
3 · Contract / Data SDK Contract DeviceControlAPIJavaLibIDeviceControl 위 client API 후보
4 · Implementation DeviceAgent / SoC Category TaskManager와 domain executor 실제 연결
5 · Validation Source and Evidence Catalog 주장을 source/test/evidence에 연결
6 · Operations / Roadmap QCS6490 Platform Vendor Brief QSSI/UM, HAL, DTS, driver 업체 전달

상위/하위 연결점:

위치 연결 이유
SK-Intellix Engineering Hub 전체 위키의 최상위 진입점
Book Shelf 책처럼 읽을 때 A1 platform/runtime 정리 파트
DeviceAgent / SoC Category DeviceAgent API, TaskManager, domain executor 상세
Vendor Category 업체 구현 범위와 evidence 제출 기준
QCS6490 Platform Vendor Brief QCS6490/QSSI/UM/HAL/DTS 업체 회의 시작점

2. 확인된 코드 근거

영역 확인된 근거 의미
A1 package inventory a1-packages/docs/architecture/MODULE_INVENTORY.md apps/, service/, libs/, sepolicy로 구성된 Android 제품 패키지
제품 패키지 포함 a1-packages/packages.mk DeviceAgent, AMRAgent, IotAgent, StartupService, PairingAgent, SKMLauncher, UpdateAgent, VisionAgent, ethernetagent, logwriter 등 포함
QSSI overlay <qssi-vendor-overlay>/vendor.mk, <qssi-vendor-overlay>/prebuilts/packages.mk system/priv-app, permissions, sysconfig, HIDL interface 정의를 QSSI 쪽에 반영
UM overlay <um-vendor-overlay>/vendor.mk, <um-vendor-overlay>/airbot/airbot.mk vendor service, vendor sepolicy, Kardome/SoundFlow, HAL backend를 UM 쪽에 반영
DeviceAgent Binder API apps/DeviceAgent/app/src/main/aidl/com/sk/airbot/devicecontrol/IDeviceControl.aidl registerCallback, sendModuleCommand(Bundle), callback 등록 API 제공
Client API apps/DeviceControlAPI/java/com/sk/airbot/devicecontrol/DeviceControlProxy.java com.sk.airbot.devicecontrol.IDeviceControl action으로 DeviceAgent에 bind
DeviceAgent service export apps/DeviceAgent/app/src/main/AndroidManifest.xml signature/privileged permission으로 보호되는 exported service
DeviceAgent build apps/DeviceAgent/app/src/main/Android.mk system/priv-app, platform certificate, private platform API, platform vendor HAL Java lib 의존
HAL interface <qssi-vendor-overlay>/airbot/hardware/interfaces/device_manager/1.0, soundflowservice/1.0 vendor.<platform-vendor>.hardware.device_manager@1.0, vendor.<platform-vendor>.hardware.soundflowservice@1.0 HIDL
HAL implementation <um-vendor-overlay>/airbot/external/device_manager/service, <um-vendor-overlay>/airbot/external/sndflow/service /vendor/bin/hw service, init rc, VINTF fragment 제공
Platform policy <um-vendor-overlay>/airbot/device/sepolicy/*, device_framework_matrix_vendor.xml service domain, hwservice context, file context, matrix 정합성

2.1 BSP / Build Flow 근거

Framework/SDK 문서가 BSP와 연결되는 지점은 QSSI/UM split build다. g13qcs6490/build_project.sh는 QSSI를 qssi lunch로 --qssi_only, UM을 lahaina lunch로 --target_only 빌드한 뒤 Qualcomm build_image_standalone.py --image super로 merge OTA를 만든다. platform vendor overlay는 <qssi-vendor-overlay>/vendor.mk, <um-vendor-overlay>/vendor.mk, sync_vendor_overlay.sh를 통해 각각 QSSI/UM의 vendor/<platform-vendor>로 들어간다.

따라서 이 허브에서 BSP를 말할 때는 “Android SDK 앱 개발”이 아니라 다음 chain을 뜻한다.

a1-packages source/prebuilt package
  -> <qssi-vendor-overlay> system-side overlay
  -> <um-vendor-overlay> vendor-side HAL/service overlay
  -> QSSI/UM split build
  -> merged super / OTA / PKG release

3. 현재 A1 레이어

이 허브의 레이어는 Android/AOSP 배치와 실제 호출 경계를 기준으로 본다.

레이어 현재 구조 이 문서에서의 의미
Client / Consumer SKMLauncher, SKMLauncher2, ICT, PairingAgent, 테스트 앱 DeviceAgent API를 호출하는 앱/패키지
Client API DeviceControlAPIJavaLib, DeviceControlProxy Binder 연결과 callback 등록을 감싸는 현재 API
Product SystemServer DeviceAgent, IDeviceControl, MainApi, domain managers Android system_server는 아니지만 제품 기능 제어의 central service hub
DeviceAgent Binder boundary IDeviceControl.aidl, DeviceAgent.java, sendModuleCommand(Bundle) 외부 호출이 DeviceAgent로 들어오는 안정화 대상
DeviceAgent runtime code MainApi, framework/command/*, task/*, policy/*, event/*, domain managers 제품 기능 라우팅, 정책, 상태, event, HAL/peer agent 연결의 중심
Peer agent services AMRAgent, IotAgent, UpdateAgent, PairingAgent, VisionAgent, LLMAgent DeviceAgent가 bind하거나 호출하는 기능별 프로세스
QSSI contract/package <qssi-vendor-overlay>, HIDL interface, permissions, sysconfig, priv-app package system/system_ext 성격의 제품 반영 영역
UM vendor runtime <um-vendor-overlay>, DeviceManager service, SoundFlow service, sepolicy_vndr vendor partition과 HAL backend 영역
Kernel / board kernel/msm-5.4, board DTS include, device nodes UART/MCU/fan/thermal/audio 등 실기기 검증 대상

3.1 DeviceAgent 위치 해석

DeviceAgent를 Android system_server로 쓰면 안 된다. 실제 Android system_server는 AOSP framework process다. 하지만 A1 제품 기능 관점에서는 DeviceAgent가 central Binder entry, command dispatcher, peer agent coordinator, state/policy/event owner, HAL bridge를 동시에 담당하므로 제품 기능의 SystemServer 역할이라고 표현하는 것이 정확하다.

이 표현의 의미는 다음처럼 제한한다.

표현 맞는 의미 틀린 의미
product-level SystemServer A1 제품 기능 호출이 DeviceAgent로 모이고 DeviceAgent가 peer agent/HAL로 분배한다 Android OS system_server를 교체한다
service hub IDeviceControl entry와 AMR/IoT/Update/Pairing/Vision binding이 DeviceAgent에 모인다 모든 agent의 내부 구현이 DeviceAgent 안에 있다
HAL bridge system/priv-app DeviceAgent가 platform vendor HIDL Java lib를 통해 vendor HAL service와 통신한다 DeviceAgent가 vendor daemon 자체다

4. 그림 읽는 기준

그림 설명
Build Partition Flow QSSI/UM split build, platform vendor overlay 반영, merge/package/release gate
Runtime Call Flow Client API -> DeviceAgent -> domain manager/task -> platform vendor HAL -> vendor/kernel 경로
DeviceAgent Peer Agent Topology DeviceAgent가 AMR/IoT/Update/Pairing/Vision/LLM agent와 Binder/callback으로 연결되는 구조
HAL DTS Driver Validation Flow HAL, DTS, driver, SELinux, device node evidence chain

표현 기준:

5. A1 Package 구성

a1-packages는 단일 앱 저장소가 아니라 Android 제품 이미지에 들어가는 system app, privileged app, native daemon, shared library, SELinux policy 묶음이다.

DeviceAgent는 이 묶음 안에서 다음 책임을 동시에 가진다.

DeviceAgent 책임 설명 근거
Product service registry 외부 client가 IDeviceControl action으로 bind하는 제품 기능 진입점 AndroidManifest.xml, IDeviceControl.aidl
Command dispatcher sendModuleCommand(Bundle)를 받아 MainApi, framework command, task package로 전달 DeviceAgent.java, MainApi.java, framework/command/*, task/*
Peer service coordinator AMR/IoT/Update/Pairing/Vision/LLM agent와 연결 SERVICE_MAP.md, MainService.java, AMRService.java, VisionAIManager.java
Product state/policy owner 상태, event, command policy, task reason을 관리 event/StateManager.java, event/EventManager.java, policy/CmdPolicyManager.java, task/TaskReasonContract.java
HAL bridge DeviceManager/SoundFlow HAL Java binding을 통해 vendor service로 내려감 Android.mk, DeviceAgent.java, SoundFlowManager.java

그래서 이 문서에서 DeviceAgent를 “앱 하나”로 표현하면 실제 역할이 축소된다. 더 정확한 표현은 “A1 제품 기능의 system service hub”다.

5.1 서비스 Agent 연동 구조

DeviceAgent는 외부 client와 peer agent 사이의 중심점이다. 외부 앱은 DeviceControlAPIJavaLib 또는 직접 Binder bind로 IDeviceControl에 들어오고, DeviceAgent는 내부 command/runtime 처리 후 필요한 경우 기능별 peer agent나 HAL로 분배한다.

DeviceAgent Peer Agent Topology

연결 Binder action / API DeviceAgent 쪽 연결 근거 역할
Client -> DeviceAgent com.sk.airbot.devicecontrol.IDeviceControl, sendModuleCommand(Bundle) DeviceControlProxy.java, DeviceAgent.java 제품 기능 외부 진입점
DeviceAgent -> AMRAgent com.sk.airbot.amrcontrol.IAMRControl AMRService.java, MainService.mAMRControlCallback 이동, 지도, docking, battery/status callback
DeviceAgent -> IotAgent com.sk.airbot.iotcontrol.IIotControl DeviceAgent.connectServices(), MainService.mServiceConnectionIot IoT 상태 publish/control
DeviceAgent -> UpdateAgent com.sk.airbot.updatecontrol.IUpdateControl DeviceAgent.connectServices(), MainService.mServiceConnectionUpdate OTA/update control
DeviceAgent -> PairingAgent com.sk.airbot.pairingcontrol.IPairingControl DeviceAgent.connectServices(), MainService.mServiceConnectionPairing pairing/BLE 연동
DeviceAgent -> VisionAgent com.sk.airbot.visioncontrol.IVisionControl VisionAIManager.bindService() vision recognition/control
DeviceAgent -> LLMAgent com.sk.airbot.llmcontrol.ILLMControl MODULE_INVENTORY.md, LLMAgent AIDL/manifest LLM/TTS 관련 peer package. DeviceAgent 직접 bind path는 별도 확인 필요
DeviceAgent -> platform vendor HAL IDeviceManager.getService(), ISoundFlowService.getService() DeviceAgent.java, SoundFlowManager.java, Android.mk HAL Java lib 의존 MCU/device manager, SoundFlow/Kardome vendor service 연결
구성 현재 역할 근거
apps/DeviceAgent IDeviceControl Binder 진입점, MainApi, domain managers, HAL/peer agent 연결 SERVICE_MAP.md, AndroidManifest.xml, Android.mk
apps/DeviceControlAPI DeviceAgent에 bind하는 Java client library DeviceControlProxy.java
apps/AMRAgent AMR 이동/맵/로봇 상태 peer service SERVICE_MAP.md
apps/IotAgent IoT 상태 publish/control peer service SERVICE_MAP.md
apps/UpdateAgent OTA/update peer service SERVICE_MAP.md
apps/PairingAgent pairing control peer service SERVICE_MAP.md
apps/VisionAgent vision control/recognition peer service SERVICE_MAP.md
apps/LLMAgent LLM/TTS 관련 제어 패키지 MODULE_INVENTORY.md
apps/SKMLauncher, apps/SKMLauncher2, apps/ICT DeviceAgent API consumer SERVICE_MAP.md
service/ethernetagent, service/logwriter, service/decrypt native executable/init rc 기반 시스템 지원 서비스 MODULE_INVENTORY.md, packages.mk
libs/serial_port serial port shared library MODULE_INVENTORY.md
sepolicy system app 권한 보강 정책 packages.mk

6. SDK라는 표현의 정확한 범위

현재 근거 기준으로 “SDK”라고 말할 수 있는 것은 완성된 신규 product가 아니라 다음 두 단계다.

단계 상태 설명
현재 DeviceControlAPIJavaLib + DeviceControlProxy DeviceAgent Binder 연결을 감싸는 client library가 존재
후보 sk-intellix-sdk-core.aar 같은 별도 AAR 기존 Bundle/method string을 숨기고 domain별 API를 제공하는 전환 후보

따라서 이 허브에서는 SDK를 “현재 존재하는 client API를 제품형 API로 정리할 수 있는 후보”로만 다룬다. 실제 SDK 구현, API diff, sample app, Maven/internal artifact 배포는 별도 구현과 검증이 필요하다.

7. 완료 판단

이 영역의 완료 판단은 문서 동의가 아니라 Android platform evidence로 한다.

판단 항목 필요한 evidence
QSSI package 반영 vendor/<platform-vendor> include, PRODUCT_PACKAGES, permissions/sysconfig 산출물
UM vendor service 반영 /vendor/bin/hw service, init rc, VINTF fragment, hwservicemanager 등록
DeviceAgent API 동작 IDeviceControl bind, sendModuleCommand(Bundle), callback 등록/해제 log
HAL 연결 IDeviceManager.getService(), ISoundFlowService.getService(), callback/event log
SELinux/VINTF 정합성 avc: denied 정리, lshal, VINTF check, service context 확인
DTS/driver/device node boot dmesg, node permission, UART/MCU/fan/thermal/audio 기능 log

8. 빠른 URL

Framework/SDK Hub:
https://sk-intellix-wiki.pages.dev/docs/sk-intellix/framework-sdk/

System Design:
https://sk-intellix-wiki.pages.dev/docs/sk-intellix/framework-sdk/system-design.html

SDK Contract:
https://sk-intellix-wiki.pages.dev/docs/sk-intellix/framework-sdk/sdk-contract.html

Transformation Roadmap:
https://sk-intellix-wiki.pages.dev/docs/sk-intellix/framework-sdk/transformation-roadmap.html

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date