← Docs hub

SKIX Root Binder Admission Core

결론

향후 ISkixFrameworkService의 모든 요청이 Control, Execution, Product-domain ManagerService로 전달되기 전에 통과할 단일 fail-closed admission 경계를 구현했다. 권한·호출 범위·Runtime 준비 상태 판정을 각 ManagerService나 DeviceAgent handler에 복제하지 않는 기반이다.

공개 계약 SkixFrameworkContract에는 root service 이름 skix_framework, signature permission 이름, API version 1과 24개 Manager ID가 정의돼 있다. 서버 내부의 FrameworkAdmissionController는 Android/Binder 타입에 의존하지 않는다.

SKIX Root Binder admission 구조

원본 SVG 열기

판정 순서

Android에서 검증해 만든 caller identity + request metadata
  -> 필수 metadata가 있는가
  -> 지원 API version인가
  -> 알려진 Manager ID인가
  -> 신뢰된 caller인가
  -> 해당 read/mutation 범위가 허용되는가
  -> Runtime lifecycle이 요청을 받을 수 있는가
  -> ALLOWED 또는 안정된 denial code

형식 오류, 알 수 없는 Manager, 신뢰되지 않은 호출자, 범위 밖 요청, 확인 불가능한 내부 오류는 모두 아래 서비스로 전달하지 않는다. 접근 정책 또는 lifecycle 조회 중 예외도 허용으로 흘려보내지 않고 retry 가능한 INTERNAL_ERROR로 닫는다.

Runtime 상태 discovery/health read mutation
READY 허용 허용
DEGRADED 허용 거부, retry 가능
CREATED, STARTING, RECOVERING, FAILED, STOPPING, STOPPED 거부 거부

DEGRADED에서 discovery/health만 읽게 하는 이유는 실행을 안전하다고 오인하지 않으면서 복구 상태를 관측할 수 있게 하기 위해서다.

AOSP 정합성

로컬 Android 13 QSSI frameworks/base에서 SystemService.onStart()의 Binder publish와 boot phase 500·520·600·1000, 외곽 Binder 경계의 calling UID·permission 검사 패턴을 확인했다. SKIX는 승인한 하이브리드 구조에 따라 무거운 로보틱스 Runtime을 system_server 밖에 유지한다.

Android caller resolver는 Android UID/PID인 Binder.getCallingUid()/getCallingPid()와 UID 소유 package를 기준으로 CallerIdentity를 만들고, shared UID로 package가 모호하면 fail-closed 거부한다. AndroidCallerAccessPolicy는 UID/package ownership, com.sk.airbot.permission.ACCESS_SKIX_FRAMEWORK, framework package signature match를 검증하고 제품별 Manager operation grant는 주입된 ManagerScopePolicy에 위임한다. payload 안의 package 이름을 신뢰해서는 안 된다.

구현됨 / 아직 아님

구현·JVM 검증:

후속 구현:

따라서 현재 판정은 root AIDL·caller resolver·trust policy·admission·root endpoint·Binder Stub의 source/JVM 및 Android release compile 검증 완료, SystemServer publish·제품 이미지·실기기 미검증이다. 제품의 service list에 skix_framework가 노출된다는 증거는 아직 아니다.

바로 다음 구현

구현된 versioned root AIDL과 얇은 Android Binder Stub/trust adapter 다음에는 제품별 ManagerScopePolicy grant, 24 concrete Manager Binder 조립과 SystemServer publication을 연결한다. 공개 SDK에는 도메인 구현체를 노출하지 않는다.

그 경계가 생긴 다음 MR6 producer를 MR7 StateManager로 dual-publish하여 legacy/typed 동등성을 측정한다. 이 순서가 cross-process seam 없이 DeviceAgent wiring부터 만드는 것을 막는다.

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