← Docs hub

SKIX Runtime Composition 구현 현황

이 문서의 작은 기본 구성과 후속 목록은 9월 5일 단계 기록이다. 현재 실제 7개 서비스 구성은 Resource·Capability·Task Runtime을 기준으로 본다.

결론

SKIX Runtime은 도메인별 Android Service를 여러 개 만드는 구조가 아니라, 하나의 격리된 privileged process 안에서 서로 독립된 다수 ManagerService를 생명주기와 의존성 순서에 따라 운영하는 구조로 고정한다. 얇은 system_server bridge는 이후 root Binder 공개와 Runtime 감시만 담당하고, 기존 Agent·ROS 2·MCU·HAL은 물리 실행 provider로 남는다.

2026-09-05 기준 Runtime 구성 기반은 91a5017, 첫 concrete Control owner인 StateManagerService와 Runtime+State 기본 조립은 b77c2c5에 반영됐다. 이후 다섯 typed observation adapter와 독립 Power domain은 b579a36부터 5fbf2e4까지 반영됐다. 이는 전송 계층 없는 Runtime/State seam의 JVM 검증이며 Binder 공개, SystemServer 등록, 제품 makefile·SELinux, 실제 observation producer 연결 또는 실기기 부팅 완료를 의미하지 않는다.

SKIX Runtime Composition 상세 구조

원본 SVG 열기

AOSP 골격을 적용한 방식

AOSP 관념 SKIX 적용 현재 판정
SystemServer가 부팅 순서와 Binder 공개를 통제 얇은 SkixFrameworkSystemService가 root Binder와 Runtime 생존 감시 담당 설계, 미구현
한 서버 프로세스 내부에 여러 논리 SystemService 격리 SkixFrameworkService process 내부에 다수 ManagerService Runtime+State 최소 composition 소스 반영
service dependency와 boot phase FrameworkComponent graph와 FrameworkBootPhase 500/520/600/1000 JVM 검증
lifecycle 실패의 명시적 건강 상태 callback 실패를 component FAILED로 기록하고 startup rollback JVM 검증
클라이언트 API와 서버 구현 분리 공개 Skix*Manager와 내부 *ManagerService 경계 구조 반영, Binder 미연결
HAL·daemon·provider를 프레임워크와 분리 Agent·ROS 2·MCU·HAL adapter가 물리 실행 소유 설계, 실제 연결 미구현

프로세스와 책임 경계

System app / Launcher / 상위 지능 서비스 Planner
  -> public Skix*Manager
  -> root ISkixFrameworkService                    [후속]
  -> SkixFrameworkSystemService in system_server  [후속]
  -> isolated SkixFrameworkService process
  -> SkixFrameworkCompositionRoot                 [구현]
  -> FrameworkServiceRegistry                     [구현]
  -> Control / Execution / Product ManagerService
  -> typed provider port                          [후속]
  -> Agent / ROS 2 / MCU / HAL                    [기존 owner 유지]

CleaningManagerService, AirQualityManagerService, PowerManagerService, UiManagerService는 같은 process를 공유해도 각각 별도 component ID, lifecycle, domain state와 정책 책임을 가진다. AMR, IoT, LLM, Vision, MCU, Update, Pairing, EventAsset, System, Diagnostics, Security도 같은 원칙을 따른다.

현재 구현 계약

FrameworkManagedService

FrameworkServiceRegistry

SkixFrameworkCompositionRoot

생산 Runtime에서 ManagerService를 생성·연결할 유일한 진입점이다. createBaseRuntime()는 하나의 ServiceLifecycleSupervisor로 Runtime과 StateManagerService를 명시 조립한다. 일반 생성 경로도 lifecycle affinity가 다르면 lifecycle_mismatch로 등록 전에 원자적으로 거부한다. 아직 Evidence·Policy·Resource·Capability·Task·Workflow와 제품 도메인을 가짜 구현으로 채우지 않으므로, 구성 root 존재와 전체 제품 연결 완료를 혼동하지 않는다.

StateManagerService

StateManager 구현·이식 경계 상세 · StateManager 원본 SVG

현재 StateManager에 넣을 typed 변환 계층은 IoT Connectivity, AMR StationLocation, LLM Pipeline, AirQuality, Power/Battery 다섯 종류가 구현·JVM 검증됐다. 이것은 adapter 준비 완료이며 DeviceAgent producer가 실제로 이 경로를 호출한다는 뜻은 아니다.

시작 순서

  1. Runtime·Health
  2. State·Evidence
  3. Policy·Resource·Capability
  4. Task·Workflow·TaskScheduler
  5. AMR·IoT·LLM·Vision·MCU·Update·Pairing·EventAsset
  6. Cleaning·AirQuality·Power·UI·System·Diagnostics·Security
  7. Agent·ROS 2·MCU·HAL provider reconciliation
  8. 외부 호출 준비 완료

이 순서는 lifecycle 순서다. 각 도메인의 MOVING, CLEANING, STREAMING, UPDATING 같은 operation state는 해당 ManagerService가 별도로 소유한다. lifecycle READY와 물리 동작 완료는 서로 다른 증거다.

검증 원장

항목 결과 의미
Runtime registry/composition/State unit suite PASS dependency order, phase, failure, lifecycle affinity, typed projection 동작
전체 FrameworkService :app:testDebugUnitTest PASS, 104 tests lifecycle·State·다섯 observation adapter, root admission과 endpoint registry JVM 회귀 없음
SDK :devicecontrolapi:testDebugUnitTest PASS, 37 tests root AIDL 계약, 공개 계약, 새 Power Manager와 기존 Manage battery forwarding 호환 포함
git diff --check PASS patch whitespace 이상 없음
spec review PASS 승인 설계의 첫 구현 slice와 일치
quality review APPROVED phase partial delivery·startup cleanup·재진입 문제 보정 후 승인
Root admission PASS, JVM 공개 식별자와 fail-closed identity·scope·lifecycle 판정 구현
Binder/SystemServer/AOSP product 부분 구현 root AIDL은 SDK 생성·JVM 검증. Android caller evidence·Binder Stub/publish는 미구현
APK 서명·실기기 부팅·물리 명령 미검증 제품 완료 주장 불가

검증 환경은 ANDROID_HOME과 ANDROID_SDK_ROOT를 /home/silogood/Android/Sdk로 지정한 로컬 JVM/Gradle 환경이다.

후속 구현 순서

  1. 구현된 root AIDL과 admission core 사이에 UID·package·user·permission·signature evidence adapter 연결
  2. 명시적 Manager Binder registry와 system_server bridge/runtime bind·death 복구 연결
  3. MR6 다섯 observation producer에 구현된 typed adapter를 연결하고 State dual-publish 동등성 검증
  4. Evidence·Capability·Resource ManagerService의 실제 managed lifecycle 연결
  5. Workflow·TaskScheduler와 MR6 TaskManager persistence/compatibility 이식
  6. AMR·Cleaning vertical slice에서 command owner를 하나로 고정하고 evidence를 Task에 환류
  7. IoT·LLM·Vision 등 나머지 도메인과 provider adapter 연결
  8. product makefile, permission XML, SELinux과 동일 서명 APK·AOSP boot·실기기 Gate

Connections

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